diff --git a/.eslintrc.json b/.eslintrc.json index 805e5e7efe6..d2928e50fdc 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -28,7 +28,7 @@ ], "unicorn/no-instanceof-array": "error", "unicorn/no-static-only-class": "error", - "unicorn/consistent-destructuring": "off", + "unicorn/consistent-destructuring": "error", "unicorn/better-regex": "error", "unicorn/no-for-loop": "error", "unicorn/prefer-array-some": "error", @@ -40,29 +40,31 @@ "unicorn/no-useless-spread": "error", "unicorn/no-useless-length-check": "error", "unicorn/prefer-export-from": "error", - "import/no-dynamic-require": "warn", - "no-param-reassign": "warn", + "import/no-dynamic-require": "error", + "no-param-reassign": "error", "sonarjs/prefer-immediate-return": "off", "sonarjs/no-nested-template-literals": "off", - "sonarjs/max-switch-cases": "off", - "sonarjs/no-small-switch": "warn", + "sonarjs/max-switch-cases": "error", + "sonarjs/no-small-switch": "error", "sonarjs/cognitive-complexity": ["error", 60], "@typescript-eslint/no-var-requires": "off", - "global-require": "off", - "@typescript-eslint/naming-convention": "off", - "@typescript-eslint/ban-types": "off", + "global-require": "error", + "@typescript-eslint/naming-convention": "error", + "@typescript-eslint/ban-types": "error", + "@typescript-eslint/no-explicit-any": "off", "class-methods-use-this": "off", - "@typescript-eslint/return-await": "off", + "@typescript-eslint/return-await": "error", "import/prefer-default-export": "off", - "sonarjs/no-ignored-return": "off", - "no-new": "off", - "@typescript-eslint/no-shadow": "off", - "@typescript-eslint/no-loop-func": "off", - "sonarjs/no-same-line-conditional": "off", - "no-restricted-syntax": "off", - "sonarjs/no-duplicate-string": "off", - "sonarjs/no-identical-functions": "off", + "sonarjs/no-ignored-return": "error", + "no-new": "error", + "@typescript-eslint/no-shadow": "error", + "@typescript-eslint/no-loop-func": "error", + "sonarjs/no-same-line-conditional": "error", + "no-restricted-syntax": "error", + "sonarjs/no-duplicate-string": "error", + "sonarjs/no-identical-functions": "error", "no-prototype-builtins": "off", - "@typescript-eslint/dot-notation": "off" + "@typescript-eslint/dot-notation": "error", + "@typescript-eslint/no-unused-vars": "error" } } diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000000..5b716b7e9fc --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,57 @@ +## What are the changes introduced in this PR? + +Write a brief explainer on your code changes. + +## Please explain the objectives of your changes below + +Put down any required details on the broader aspect of your changes. If there are any dependent changes, **mandatorily** mention them here + +### Type of change + +If the pull request is a **bug-fix**, **enhancement** or a **refactor**, please fill in the details on the changes made. + +- Existing capabilities/behavior + +- New capabilities/behavior + +If the pull request is a **new feature**, + +### Any technical or performance related pointers to consider with the change? + +N/A + +### Any new dependencies introduced with this change? + +N/A + +### Any new generic utility introduced or modified. Please explain the changes. + +N/A + +### If the PR has changes in more than 10 files, please mention why the changes were not split into multiple PRs. + +N/A + +### If multiple linear tasks are associated with the PR changes, please elaborate on the reason: + +N/A + +
+ +### Developer checklist + +- [ ] **No breaking changes are being introduced.** + +- [ ] Are all related docs linked with the PR? + +- [ ] Are all changes manually tested? + +- [ ] Does this change require any documentation changes? + +- [ ] Are relevant unit and component test-cases added? + +### Reviewer checklist + +- [ ] Is the type of change in the PR title appropriate as per the changes? + +- [ ] Verified that there are no credentials or confidential data exposed with the changes. diff --git a/.github/workflows/build-push-docker-image.yml b/.github/workflows/build-push-docker-image.yml index 4bf431ddada..3d19dbdf926 100644 --- a/.github/workflows/build-push-docker-image.yml +++ b/.github/workflows/build-push-docker-image.yml @@ -21,6 +21,8 @@ on: push_target: required: true type: string + build_type: + type: string secrets: DOCKERHUB_PROD_TOKEN: required: true @@ -34,9 +36,9 @@ env: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} jobs: - build-transformer-image: - name: Build Transformer Docker Image - runs-on: ubuntu-latest + build-transformer-image-arm64: + name: Build Transformer Docker Image ARM64 + runs-on: [self-hosted, Linux, ARM64] steps: - name: Checkout uses: actions/checkout@v3.5.3 @@ -61,12 +63,12 @@ jobs: target: ${{ inputs.load_target }} load: true tags: ${{ inputs.build_tag }} - cache-from: type=gha - cache-to: type=gha,mode=max + # cache-from: type=gha + # cache-to: type=gha,mode=max - name: Run Tests run: | - docker run ${{ inputs.build_tag }} npm run test:js:ci + docker run ${{ inputs.build_tag }} npm run test:js:ci docker run ${{ inputs.build_tag }} npm run test:ts:ci - name: Build and Push Multi-platform Images @@ -76,12 +78,92 @@ jobs: file: ${{ inputs.dockerfile }} target: ${{ inputs.push_target }} push: true - tags: ${{ inputs.push_tags }} + tags: ${{ inputs.push_tags }}-arm64 platforms: | - linux/amd64 linux/arm64 build-args: | - version=${{ inputs.img_tag }} + version=${{ inputs.img_tag }}-arm64 GIT_COMMIT_SHA=${{ github.sha }} - cache-from: type=gha - cache-to: type=gha,mode=max + # cache-from: type=gha + # cache-to: type=gha,mode=max + + build-transformer-image-amd64: + name: Build Transformer Docker Image AMD64 + runs-on: [self-hosted, Linux, X64] + steps: + - name: Checkout + uses: actions/checkout@v3.5.3 + with: + fetch-depth: 1 + + - name: Setup Docker Buildx + uses: docker/setup-buildx-action@v2.9.1 + + - name: Login to DockerHub + uses: docker/login-action@v2.1.0 + with: + username: ${{ env.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PROD_TOKEN }} + + - name: Build Docker Image + uses: docker/build-push-action@v4.1.1 + with: + context: . + file: ${{ inputs.dockerfile }} + target: ${{ inputs.load_target }} + load: true + tags: ${{ inputs.build_tag }} + # cache-from: type=gha + # cache-to: type=gha,mode=max + + - name: Run Tests + run: | + docker run ${{ inputs.build_tag }} npm run test:js:ci + docker run ${{ inputs.build_tag }} npm run test:ts:ci + + - name: Build and Push Multi-platform Images + uses: docker/build-push-action@v4.1.1 + with: + context: . + file: ${{ inputs.dockerfile }} + target: ${{ inputs.push_target }} + push: true + tags: ${{ inputs.push_tags }}-amd64 + platforms: | + linux/amd64 + build-args: | + version=${{ inputs.img_tag }}-amd64 + GIT_COMMIT_SHA=${{ github.sha }} + # cache-from: type=gha + # cache-to: type=gha,mode=max + + create-manifest: + name: Create multi-arch manifest + runs-on: ubuntu-latest + needs: [build-transformer-image-amd64, build-transformer-image-arm64] + + steps: + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2.9.1 + + - name: Login to DockerHub + uses: docker/login-action@v2.1.0 + with: + username: ${{ env.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PROD_TOKEN }} + + - name: Create multi-arch manifest + run: | + docker buildx imagetools create -t ${{ inputs.push_tags }} ${{ inputs.push_tags }}-amd64 ${{ inputs.push_tags }}-arm64 + + - name: Create latest multi-arch manifest + # To be triggered only for release/hotfix PR merges coming from `prepare-for-prod-dt-deploy.yaml` + if: ${{ inputs.build_type == 'dt' }} + run: | + docker buildx imagetools create -t rudderstack/rudder-transformer:latest ${{ inputs.push_tags }}-amd64 ${{ inputs.push_tags }}-arm64 + + - name: Create latest ut multi-arch manifest + # To be triggered only for release/hotfix PR merges coming from `prepare-for-prod-ut-deploy.yaml` + if: ${{ inputs.build_type == 'ut' }} + run: | + docker buildx imagetools create -t rudderstack/rudder-transformer:ut-latest ${{ inputs.push_tags }}-amd64 ${{ inputs.push_tags }}-arm64 diff --git a/.github/workflows/create-hotfix-branch.yml b/.github/workflows/create-hotfix-branch.yml index db6f4118e46..03c79e0df17 100644 --- a/.github/workflows/create-hotfix-branch.yml +++ b/.github/workflows/create-hotfix-branch.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest # Only allow these users to create new hotfix branch from 'main' - if: github.ref == 'refs/heads/main' && (github.actor == 'ItsSudip' || github.actor == 'krishna2020' || github.actor == 'saikumarrs' || github.actor == 'sandeepdsvs' || github.actor == 'shrouti1507') && (github.triggering_actor == 'ItsSudip' || github.triggering_actor == 'krishna2020' || github.triggering_actor == 'saikumarrs' || github.triggering_actor == 'sandeepdsvs' || github.triggering_actor == 'shrouti1507') + if: github.ref == 'refs/heads/main' && (github.actor == 'ItsSudip' || github.actor == 'krishna2020' || github.actor == 'saikumarrs' || github.actor == 'sandeepdsvs' || github.actor == 'shrouti1507' || github.actor == 'anantjain45823' || github.actor == 'chandumlg' || github.actor == 'mihir-4116' || github.actor == 'ujjwal-ab') && (github.triggering_actor == 'ItsSudip' || github.triggering_actor == 'krishna2020' || github.triggering_actor == 'saikumarrs' || github.triggering_actor == 'sandeepdsvs' || github.triggering_actor == 'shrouti1507' || github.triggering_actor == 'anantjain45823' || github.triggering_actor == 'chandumlg' || github.triggering_actor == 'mihir-4116' || github.triggering_actor == 'ujjwal-ab') steps: - name: Create Branch uses: peterjgrainger/action-create-branch@v2.4.0 diff --git a/.github/workflows/draft-new-release.yml b/.github/workflows/draft-new-release.yml index 5df37bd6cb3..57dd33f0b40 100644 --- a/.github/workflows/draft-new-release.yml +++ b/.github/workflows/draft-new-release.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest # Only allow release stakeholders to initiate releases - if: (github.ref == 'refs/heads/develop' || startsWith(github.ref, 'refs/heads/hotfix/')) && (github.actor == 'ItsSudip' || github.actor == 'krishna2020' || github.actor == 'saikumarrs' || github.actor == 'sandeepdsvs' || github.actor == 'shrouti1507') && (github.triggering_actor == 'ItsSudip' || github.triggering_actor == 'krishna2020' || github.triggering_actor == 'saikumarrs' || github.triggering_actor == 'sandeepdsvs' || github.triggering_actor == 'shrouti1507') + if: (github.ref == 'refs/heads/develop' || startsWith(github.ref, 'refs/heads/hotfix/')) && (github.actor == 'ItsSudip' || github.actor == 'krishna2020' || github.actor == 'saikumarrs' || github.actor == 'sandeepdsvs' || github.actor == 'koladilip' || github.actor == 'shrouti1507' || github.actor == 'anantjain45823' || github.actor == 'chandumlg' || github.actor == 'mihir-4116' || github.actor == 'yashasvibajpai' || github.actor == 'sanpj2292' || github.actor == 'ujjwal-ab') && (github.triggering_actor == 'ItsSudip' || github.triggering_actor == 'krishna2020' || github.triggering_actor == 'koladilip' || github.triggering_actor == 'saikumarrs' || github.triggering_actor == 'sandeepdsvs' || github.triggering_actor == 'shrouti1507' || github.triggering_actor == 'anantjain45823' || github.triggering_actor == 'chandumlg' || github.triggering_actor == 'mihir-4116' || github.triggering_actor == 'yashasvibajpai' || github.triggering_actor == 'sanpj2292' || github.triggering_actor == 'ujjwal-ab') steps: - name: Checkout uses: actions/checkout@v3.5.3 diff --git a/.github/workflows/housekeeping.yml b/.github/workflows/housekeeping.yml index 6c94b1c4214..7b5847035e8 100644 --- a/.github/workflows/housekeeping.yml +++ b/.github/workflows/housekeeping.yml @@ -4,6 +4,7 @@ on: schedule: # Run everyday at 1 AM - cron: '0 1 * * *' + workflow_dispatch: jobs: prs: @@ -41,5 +42,5 @@ jobs: date: '3 months ago' dry_run: false delete_tags: false - extra_protected_branch_regex: ^(main|release/.*|develop|hotfix/.*|hotfix-release/.*)$ + extra_protected_branch_regex: ^(main|develop)$ exclude_open_pr_branches: true diff --git a/.github/workflows/prepare-for-prod-deploy.yml b/.github/workflows/prepare-for-prod-dt-deploy.yml similarity index 96% rename from .github/workflows/prepare-for-prod-deploy.yml rename to .github/workflows/prepare-for-prod-dt-deploy.yml index 9102daedf36..7b858672192 100644 --- a/.github/workflows/prepare-for-prod-deploy.yml +++ b/.github/workflows/prepare-for-prod-dt-deploy.yml @@ -1,4 +1,4 @@ -name: Prepare for Production Environment Deployment +name: Prepare for DT Production Environment Deployment on: push: @@ -52,6 +52,7 @@ jobs: dockerfile: Dockerfile load_target: development push_target: production + build_type: dt secrets: DOCKERHUB_PROD_TOKEN: ${{ secrets.DOCKERHUB_PROD_TOKEN }} DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} @@ -127,7 +128,7 @@ jobs: git commit -m "chore: upgrade shared transformers to $TAG_NAME" git push -u origin shared-transformer-$TAG_NAME - hub pull-request -m "chore: upgrade shared transformers to $TAG_NAME" + gh pr create --fill - name: Update Helm Chart and Raise Pull Request For Hosted Transformer env: @@ -144,4 +145,4 @@ jobs: git commit -m "chore: upgrade hosted transformer to $TAG_NAME" git push -u origin hosted-transformer-$TAG_NAME - hub pull-request -m "chore: upgrade hosted transformer to $TAG_NAME" + gh pr create --fill diff --git a/.github/workflows/prepare-for-prod-rollback.yml b/.github/workflows/prepare-for-prod-rollback.yml index 3a2a60abc43..9ac144a21e0 100644 --- a/.github/workflows/prepare-for-prod-rollback.yml +++ b/.github/workflows/prepare-for-prod-rollback.yml @@ -10,7 +10,7 @@ jobs: # Only allow to be deployed from tags and main branch # Only allow specific actors to trigger - if: (startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/heads/main')) && (github.actor == 'ItsSudip' || github.actor == 'krishna2020' || github.actor == 'saikumarrs') && (github.triggering_actor == 'ItsSudip' || github.triggering_actor == 'krishna2020' || github.triggering_actor == 'saikumarrs') + if: (startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/heads/main')) && (github.actor == 'ItsSudip' || github.actor == 'krishna2020' || github.actor == 'saikumarrs' || github.actor == 'chandumlg') && (github.triggering_actor == 'ItsSudip' || github.triggering_actor == 'krishna2020' || github.triggering_actor == 'saikumarrs' || github.triggering_actor == 'chandumlg') steps: - name: Get Target Version @@ -56,4 +56,4 @@ jobs: git commit -m "chore: rollback shared transformers to ${{ steps.target-version.outputs.tag_name }}" git push -u origin shared-transformer-rollback-${{ steps.target-version.outputs.tag_name }} - hub pull-request -m "chore: rollback shared transformers to ${{ steps.target-version.outputs.tag_name }}" + gh pr create --fill diff --git a/.github/workflows/prepare-for-prod-ut-deploy.yml b/.github/workflows/prepare-for-prod-ut-deploy.yml index c5037f51872..09f5cd0935d 100644 --- a/.github/workflows/prepare-for-prod-ut-deploy.yml +++ b/.github/workflows/prepare-for-prod-ut-deploy.yml @@ -1,4 +1,4 @@ -name: Prepare for Production Environment Deployment +name: Prepare for UT Production Environment Deployment on: push: @@ -55,6 +55,7 @@ jobs: dockerfile: Dockerfile-ut-func load_target: development push_target: production + build_type: ut secrets: DOCKERHUB_PROD_TOKEN: ${{ secrets.DOCKERHUB_PROD_TOKEN }} DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} @@ -112,7 +113,7 @@ jobs: git commit -m "chore: upgrade shared user-transformers to $UT_TAG_NAME" git push -u origin shared-user-transformer-$UT_TAG_NAME - hub pull-request -m "chore: upgrade shared user-transformers to $UT_TAG_NAME" + gh pr create --fill - name: Update Helm Chart and Raise Pull Request For Hosted Transformer env: @@ -129,4 +130,4 @@ jobs: git commit -m "chore: upgrade hosted user-transformer to $UT_TAG_NAME" git push -u origin hosted-user-transformer-$UT_TAG_NAME - hub pull-request -m "chore: upgrade hosted user-transformer to $UT_TAG_NAME" + gh pr create --fill diff --git a/.github/workflows/prepare-for-staging-deploy.yml b/.github/workflows/prepare-for-staging-deploy.yml index 494c6adf87d..6acaa8a24a0 100644 --- a/.github/workflows/prepare-for-staging-deploy.yml +++ b/.github/workflows/prepare-for-staging-deploy.yml @@ -72,6 +72,7 @@ jobs: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_PROD_TOKEN }} + create-pull-request: name: Update Helm Charts For Staging and Create Pull Request runs-on: ubuntu-latest @@ -123,5 +124,5 @@ jobs: git commit -m "chore: upgrade staging env transformers to \"$TAG_NAME\"" git push -u origin $BRANCH_NAME - hub pull-request -m "chore: upgrade staging env transformers to \"$TAG_NAME\"" + gh pr create --fill fi diff --git a/CHANGELOG.md b/CHANGELOG.md index 0aa1a58d3d9..bc9a32f4cd2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,385 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [1.52.1](https://github.com/rudderlabs/rudder-transformer/compare/v1.52.0...v1.52.1) (2023-12-14) + + +### Bug Fixes + +* update response handling for v1 proxy ([7d275ca](https://github.com/rudderlabs/rudder-transformer/commit/7d275ca1d58c38859fce95d7d0677e11342c662a)) + +## [1.52.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.51.1...v1.52.0) (2023-12-12) + + +### Features + +* onboard msl changes for new record event ([#2644](https://github.com/rudderlabs/rudder-transformer/issues/2644)) ([36d3f25](https://github.com/rudderlabs/rudder-transformer/commit/36d3f258ed5ea4ba1899c8b2cae8203bf73d90ed)), closes [#2813](https://github.com/rudderlabs/rudder-transformer/issues/2813) +* onboard reddit cloud mode destination ([#2829](https://github.com/rudderlabs/rudder-transformer/issues/2829)) ([babb89a](https://github.com/rudderlabs/rudder-transformer/commit/babb89a5bf6d1b84d1319b967953c7c1b6de7c2c)) +* tiktok_ads: add support for custom events ([#2891](https://github.com/rudderlabs/rudder-transformer/issues/2891)) ([091354c](https://github.com/rudderlabs/rudder-transformer/commit/091354c4427b33c9f8ac2678db3a4ab38b008e7d)) + + +### Bug Fixes + +* active_campaign error handler ([#2895](https://github.com/rudderlabs/rudder-transformer/issues/2895)) ([5a6d296](https://github.com/rudderlabs/rudder-transformer/commit/5a6d296b0ce83f3b6b4e215839fb65d4e0f2de41)) +* add check to remove empty properties object from payload ([#2896](https://github.com/rudderlabs/rudder-transformer/issues/2896)) ([1a86a07](https://github.com/rudderlabs/rudder-transformer/commit/1a86a0723e3f5fb6fdf9cf1dc716a47c6da16745)) +* adobe_analytics event field check ([#2890](https://github.com/rudderlabs/rudder-transformer/issues/2890)) ([bf39215](https://github.com/rudderlabs/rudder-transformer/commit/bf39215dd1bbed482665c837a2bfabfcb751c753)) +* covert toString before toLowercase ([#2830](https://github.com/rudderlabs/rudder-transformer/issues/2830)) ([bed431e](https://github.com/rudderlabs/rudder-transformer/commit/bed431e1de94ab28df1ee592d083a1481b960b6d)) +* **dm:** add workspaceId in common metadata to be returned to the callers ([#2868](https://github.com/rudderlabs/rudder-transformer/issues/2868)) ([b3437a3](https://github.com/rudderlabs/rudder-transformer/commit/b3437a34358d5fd5b1eb63f30a5a695f39aa84ff)) +* **integrations:** onboard sprig destination ([#2857](https://github.com/rudderlabs/rudder-transformer/issues/2857)) ([ede22e3](https://github.com/rudderlabs/rudder-transformer/commit/ede22e3f8fb60a9e36e2a3f5a5e86260255c49ef)) +* mailjet source transformation by adding email exists check ([#2889](https://github.com/rudderlabs/rudder-transformer/issues/2889)) ([4a7eaa0](https://github.com/rudderlabs/rudder-transformer/commit/4a7eaa09000bcb82eb7f217d500223939bd9b07b)) +* missing null check in braze populateCustomAttributesWithOperation ([#2897](https://github.com/rudderlabs/rudder-transformer/issues/2897)) ([50e921d](https://github.com/rudderlabs/rudder-transformer/commit/50e921d1451bf7016e60b2e238b8f842d72b5b71)) +* removed retry logic from v1 cm360, added adapter for v1 to v0 conversion ([#2860](https://github.com/rudderlabs/rudder-transformer/issues/2860)) ([776d2c4](https://github.com/rudderlabs/rudder-transformer/commit/776d2c4abe23cd279195064684b9ccc807d83afc)) +* **dm:** use clones as false for tracking plan node cache ([#2899](https://github.com/rudderlabs/rudder-transformer/issues/2899)) ([8f47db8](https://github.com/rudderlabs/rudder-transformer/commit/8f47db8bcf581d1807cfa2aa823ef400a30a09e3)) + +### [1.51.1](https://github.com/rudderlabs/rudder-transformer/compare/v1.51.0...v1.51.1) (2023-12-06) + + +### Bug Fixes + +* marketo backward compatibility ([#2880](https://github.com/rudderlabs/rudder-transformer/issues/2880)) ([af6aebb](https://github.com/rudderlabs/rudder-transformer/commit/af6aebba9a9891fadc91fe2dc4ae4db4b1e269c9)) +* marketo new field introduction backward compatibility ([cd6c3b0](https://github.com/rudderlabs/rudder-transformer/commit/cd6c3b0672a0b17078627f28f6613a2ef1898ee7)) +* remove ErrorResponse type from postTransfomration delivery ([b13f0a6](https://github.com/rudderlabs/rudder-transformer/commit/b13f0a6340177a56417692ad7dcf3829d4990826)) + +## [1.51.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.50.1...v1.51.0) (2023-12-06) + + +### Features + +* cm360 router batching ([#2836](https://github.com/rudderlabs/rudder-transformer/issues/2836)) ([4b260e4](https://github.com/rudderlabs/rudder-transformer/commit/4b260e4ec6d25875903830004b3e4975b3402b2d)) +* cm360 transformerproxy V1 flag ([#2848](https://github.com/rudderlabs/rudder-transformer/issues/2848)) ([27f0797](https://github.com/rudderlabs/rudder-transformer/commit/27f0797c6dcd626a713c11a48c6e85a69e0a4963)) +* **INT-305:** onboard gladly destination ([#2786](https://github.com/rudderlabs/rudder-transformer/issues/2786)) ([ff80b88](https://github.com/rudderlabs/rudder-transformer/commit/ff80b885fe0507c137b3c9eacffcef331010da0c)) +* marketo: migrate config fields and fix test cases ([#2789](https://github.com/rudderlabs/rudder-transformer/issues/2789)) ([7910dba](https://github.com/rudderlabs/rudder-transformer/commit/7910dba2318f92cec3be1b7c7aa6b00428ecae94)) +* mixpanel set once feature onboard ([#2820](https://github.com/rudderlabs/rudder-transformer/issues/2820)) ([9eda50e](https://github.com/rudderlabs/rudder-transformer/commit/9eda50e850c5a1ccb46f1b54c3d176edb915eb27)) +* onboard webhook to component tests ([#2837](https://github.com/rudderlabs/rudder-transformer/issues/2837)) ([284d141](https://github.com/rudderlabs/rudder-transformer/commit/284d1411514c26dda2403a4a18967e5f40e255ea)) +* update facebook destinations API version to v18.0 ([#2828](https://github.com/rudderlabs/rudder-transformer/issues/2828)) ([3127a1c](https://github.com/rudderlabs/rudder-transformer/commit/3127a1ca8dc1b887f9158a1d839c5504f40c4678)) + + +### Bug Fixes + +* add support for custom properties for braze purchase events ([#2856](https://github.com/rudderlabs/rudder-transformer/issues/2856)) ([be6ef26](https://github.com/rudderlabs/rudder-transformer/commit/be6ef2605f04e9182534b9633eeec1091cf7a431)) +* bugsnag issue in moengage identify event ([#2845](https://github.com/rudderlabs/rudder-transformer/issues/2845)) ([0e7adc6](https://github.com/rudderlabs/rudder-transformer/commit/0e7adc66ff88d9510e48a5651460b4e02cc57c78)) +* encode &, < and > to html counterparts in adobe analytics ([#2854](https://github.com/rudderlabs/rudder-transformer/issues/2854)) ([571dbf5](https://github.com/rudderlabs/rudder-transformer/commit/571dbf5bd65e7d0e261562ff3da3b393f27f27b6)) +* error handling in active_campaign ([#2843](https://github.com/rudderlabs/rudder-transformer/issues/2843)) ([a015460](https://github.com/rudderlabs/rudder-transformer/commit/a015460f0a6d2d5320f633abc151febf22561b6b)) +* make supportTransformerProxyV1 false ([#2861](https://github.com/rudderlabs/rudder-transformer/issues/2861)) ([80cf69d](https://github.com/rudderlabs/rudder-transformer/commit/80cf69dc40bb4dc7c0a6d516814f36d962018745)) +* remove errorCategory for braze dedup error ([#2850](https://github.com/rudderlabs/rudder-transformer/issues/2850)) ([91d4cd1](https://github.com/rudderlabs/rudder-transformer/commit/91d4cd16f9839b0be5a663ca5010bdd72cff9bdc)) +* sfmc bug fix for track event validations ([#2852](https://github.com/rudderlabs/rudder-transformer/issues/2852)) ([cd9a046](https://github.com/rudderlabs/rudder-transformer/commit/cd9a046f66eab8363373cb9a0fa1afeef3137d78)) +* unhandled error code in facebook_custom_audience ([#2853](https://github.com/rudderlabs/rudder-transformer/issues/2853)) ([8c02b8c](https://github.com/rudderlabs/rudder-transformer/commit/8c02b8ccb2101147ac84b4555e7fd07235ebf9fc)) +* updated transformerProxyV1 name ([#2859](https://github.com/rudderlabs/rudder-transformer/issues/2859)) ([1a8d825](https://github.com/rudderlabs/rudder-transformer/commit/1a8d825ccbb87d34d8ae5ff2cb02f4be9700eee6)) + +### [1.50.1](https://github.com/rudderlabs/rudder-transformer/compare/v1.50.0...v1.50.1) (2023-12-05) + + +### Bug Fixes + +* salesforce transformer proxy response handling issue for authorization flow ([#2873](https://github.com/rudderlabs/rudder-transformer/issues/2873)) ([4cec65e](https://github.com/rudderlabs/rudder-transformer/commit/4cec65e4103e99021f5108fcc7c557b952f1c5eb)) + +## [1.50.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.49.1...v1.50.0) (2023-11-13) + + +### Features + +* add clickId support for tiktok and pinterest destination ([#2784](https://github.com/rudderlabs/rudder-transformer/issues/2784)) ([0e14296](https://github.com/rudderlabs/rudder-transformer/commit/0e1429663d167a2c5cded0d9130374eb586a18c0)) +* add delivery_category as part of contents, remove flattening custom_data in FB conversions ([#2812](https://github.com/rudderlabs/rudder-transformer/issues/2812)) ([e82cef8](https://github.com/rudderlabs/rudder-transformer/commit/e82cef88e154d47519f0deeb60f55773f25fd3ad)) +* add delivery_category as part of contents, update flattening custom_data in FB Pixel ([#2816](https://github.com/rudderlabs/rudder-transformer/issues/2816)) ([ee1f473](https://github.com/rudderlabs/rudder-transformer/commit/ee1f4733e82291375d85a6de8b8626ffdc8907b1)) +* adding support for future oauth facility in salesforce ([#2746](https://github.com/rudderlabs/rudder-transformer/issues/2746)) ([916ea4c](https://github.com/rudderlabs/rudder-transformer/commit/916ea4c8d08f69b68b7795dd513a25a3cded55fa)) +* introduce v1/source/sourceType endpoint ([#2722](https://github.com/rudderlabs/rudder-transformer/issues/2722)) ([0996e81](https://github.com/rudderlabs/rudder-transformer/commit/0996e816d3671c3e25561f76e3219be99225f24b)) +* move cdkV1 to cdkv2 component tests ([#2804](https://github.com/rudderlabs/rudder-transformer/issues/2804)) ([195b48a](https://github.com/rudderlabs/rudder-transformer/commit/195b48ac0f438a200933e4bbb956fcc3941b7aed)) +* use custom screen name amplitude ([#2823](https://github.com/rudderlabs/rudder-transformer/issues/2823)) ([93a82bd](https://github.com/rudderlabs/rudder-transformer/commit/93a82bd4856b462768d0213ae3de8b9b78e9858c)) + + +### Bug Fixes + +* source_transform_error stat label correction ([#2825](https://github.com/rudderlabs/rudder-transformer/issues/2825)) ([f3bcd7c](https://github.com/rudderlabs/rudder-transformer/commit/f3bcd7c9338ef96267be84f845c63f5234d37e33)) +* shopify redis metric when there is no data returned for a key ([#2811](https://github.com/rudderlabs/rudder-transformer/issues/2811)) ([c02370e](https://github.com/rudderlabs/rudder-transformer/commit/c02370e38fabb581698baa00e1ddd3da93dc07fa)) +* snapchat_conversion category mapping ([#2826](https://github.com/rudderlabs/rudder-transformer/issues/2826)) ([7acd004](https://github.com/rudderlabs/rudder-transformer/commit/7acd004e4290dfb5ea20402929041462eddb4496)) + +### [1.49.1](https://github.com/rudderlabs/rudder-transformer/compare/v1.49.0...v1.49.1) (2023-11-10) + + +### Bug Fixes + +* update create-hotfix-branch.yml ([#2815](https://github.com/rudderlabs/rudder-transformer/issues/2815)) ([dd884dd](https://github.com/rudderlabs/rudder-transformer/commit/dd884ddc78898bd7de155ec4f05ce8fe6e2c4b80)) + +## [1.49.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.48.0...v1.49.0) (2023-11-06) + + +### Features + +* add new destination tiktok_audience ([#2710](https://github.com/rudderlabs/rudder-transformer/issues/2710)) ([9bc0fd8](https://github.com/rudderlabs/rudder-transformer/commit/9bc0fd8efcee44871a190bd6cb9e89c5cf035ff8)) +* onboard one signal to router transform ([#2785](https://github.com/rudderlabs/rudder-transformer/issues/2785)) ([818858e](https://github.com/rudderlabs/rudder-transformer/commit/818858e046ce5f9735bbb97715c43a959ad3aa3c)) +* onboard revenuecat as a source ([#2774](https://github.com/rudderlabs/rudder-transformer/issues/2774)) ([55f9637](https://github.com/rudderlabs/rudder-transformer/commit/55f96374b4d73db7013c1d5e72bfc9c8257b224b)) + + +### Bug Fixes + +* add check to remove null and undefined properties before sending ([#2796](https://github.com/rudderlabs/rudder-transformer/issues/2796)) ([6e89cd3](https://github.com/rudderlabs/rudder-transformer/commit/6e89cd3f67ea887ba17c1cd5ffbca6675f54d96c)) +* allow support for full url from UI in freshsales and freshmarketer ([#2780](https://github.com/rudderlabs/rudder-transformer/issues/2780)) ([570532c](https://github.com/rudderlabs/rudder-transformer/commit/570532ce790c05a69621d9289758a1b1a7acda8c)) +* busgnag issues for klaviyo, freshsales, customeio ([#2795](https://github.com/rudderlabs/rudder-transformer/issues/2795)) ([11fb7c4](https://github.com/rudderlabs/rudder-transformer/commit/11fb7c47910681833e37d25a1573d2005e62742b)) + +## [1.48.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.47.0...v1.48.0) (2023-11-02) + + +### Features + +* add support to add custom network policies for specific workspaces in faas pods ([bc1a760](https://github.com/rudderlabs/rudder-transformer/commit/bc1a76066c0aeb43776ded0b266ec48f5e69aa16)) + +## [1.47.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.46.5...v1.47.0) (2023-10-30) + + +### Features + +* add custom utm parameters to mixpanel ([#2771](https://github.com/rudderlabs/rudder-transformer/issues/2771)) ([9c4fcd3](https://github.com/rudderlabs/rudder-transformer/commit/9c4fcd3595534a8b563df3467e23c94c580f08a6)) +* add support filtering component tests by feature and index ([#2748](https://github.com/rudderlabs/rudder-transformer/issues/2748)) ([146f1c6](https://github.com/rudderlabs/rudder-transformer/commit/146f1c63db4e895c7d5ce2848a1b60e7c5bb9fb6)) +* onboard destination ortto ([#2730](https://github.com/rudderlabs/rudder-transformer/issues/2730)) ([9be5740](https://github.com/rudderlabs/rudder-transformer/commit/9be5740d8670890b0318da3d37f258ddc5e35445)) +* onboard facebook custom audience to transformer proxy ([#2769](https://github.com/rudderlabs/rudder-transformer/issues/2769)) ([14c5e40](https://github.com/rudderlabs/rudder-transformer/commit/14c5e40284af7df9e4f5b262ad226dd3afef226e)) +* add custom event name support in pinterest v5 ([#2773](https://github.com/rudderlabs/rudder-transformer/pull/2773)) ([a586a92](https://github.com/rudderlabs/rudder-transformer/commit/a586a92bf410679d0f3aa7012d4d10f8e2f515d5)) + + +### Bug Fixes + +* bugsnag error for salesforce ([#2753](https://github.com/rudderlabs/rudder-transformer/issues/2753)) ([a2ccdad](https://github.com/rudderlabs/rudder-transformer/commit/a2ccdad52a1fb88f962745800cb45d605b5e0bf3)) +* oom kill while stringifying large response json ([#2754](https://github.com/rudderlabs/rudder-transformer/issues/2754)) ([c8baf5b](https://github.com/rudderlabs/rudder-transformer/commit/c8baf5b2b6325d9e30200339055dcbefd780936c)) +* salesforce: handle ECONNABORTED error ([#2732](https://github.com/rudderlabs/rudder-transformer/issues/2732)) ([6b23a9b](https://github.com/rudderlabs/rudder-transformer/commit/6b23a9b33acd28fdacaa2390c1970a1fa4415ffa)) + +### [1.46.5](https://github.com/rudderlabs/rudder-transformer/compare/v1.46.4...v1.46.5) (2023-10-23) + + +### Bug Fixes + +* **hubspot:** property mismatch ([5530031](https://github.com/rudderlabs/rudder-transformer/commit/553003192a1492220e3930c6b6f2dd11ebac1bcb)) + +### [1.46.4](https://github.com/rudderlabs/rudder-transformer/compare/v1.46.3...v1.46.4) (2023-10-20) + + +### Bug Fixes + +* **hs:** time stamp and contact not found issue ([391c7cd](https://github.com/rudderlabs/rudder-transformer/commit/391c7cdc5576152576bbd2c6d335a04ce6795833)) + +### [1.46.3](https://github.com/rudderlabs/rudder-transformer/compare/v1.46.2...v1.46.3) (2023-10-20) + + +### Bug Fixes + +* deduplication key issue ([#2757](https://github.com/rudderlabs/rudder-transformer/issues/2757)) ([bc76305](https://github.com/rudderlabs/rudder-transformer/commit/bc76305e3fcc3c9ac69e639e90a37499566d0837)) + +### [1.46.2](https://github.com/rudderlabs/rudder-transformer/compare/v1.46.1...v1.46.2) (2023-10-19) + + +### Bug Fixes + +* do not send 298 event for aborted ones in ut ([d414064](https://github.com/rudderlabs/rudder-transformer/commit/d414064aac1c8d769607346bc48b8db549e7a8dc)) + +### [1.46.1](https://github.com/rudderlabs/rudder-transformer/compare/v1.46.0...v1.46.1) (2023-10-19) + +### Bug Fixes + +* add gzip support compatibility ([#2745](https://github.com/rudderlabs/rudder-transformer/issues/2745)) ([d72410f](https://github.com/rudderlabs/rudder-transformer/commit/d72410f7962e702218be3c2414de62341ca29e39)) + +## [1.46.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.45.3...v1.46.0) (2023-10-18) + + +### Features + +* enhancement: snapchat_conversion add new fields ([#2721](https://github.com/rudderlabs/rudder-transformer/issues/2721)) ([45da19d](https://github.com/rudderlabs/rudder-transformer/commit/45da19db1e583d80f9fc5b508316f7a8bdd415b6)) +* facebook pixel audit refactor ([#2713](https://github.com/rudderlabs/rudder-transformer/issues/2713)) ([43e1a61](https://github.com/rudderlabs/rudder-transformer/commit/43e1a61e19ad8b9c0fb999fe900b91347acb7ef8)) +* mixpanel gzip support for import endpoint ([#2667](https://github.com/rudderlabs/rudder-transformer/issues/2667)) ([6b6bb66](https://github.com/rudderlabs/rudder-transformer/commit/6b6bb6633ed26d466bd80d04ae2c008d1435faca)) +* onboard facebook_conversions destination ([#2720](https://github.com/rudderlabs/rudder-transformer/issues/2720)) ([5269af4](https://github.com/rudderlabs/rudder-transformer/commit/5269af47cdbceefec16be3b44910ca27aea35c35)) +* onboard source ortto ([#2693](https://github.com/rudderlabs/rudder-transformer/issues/2693)) ([4682268](https://github.com/rudderlabs/rudder-transformer/commit/4682268d8396a40685a343a5c4f3978e7316d2d3)) + + +### Bug Fixes + +* fix getFbGenderVal function ([#2724](https://github.com/rudderlabs/rudder-transformer/issues/2724)) ([3aabe81](https://github.com/rudderlabs/rudder-transformer/commit/3aabe81252a09010d2b2e54e44c32e2c6302c057)) + +### [1.45.3](https://github.com/rudderlabs/rudder-transformer/compare/v1.45.2...v1.45.3) (2023-10-17) + + +### Bug Fixes + +* ut metadata map ts type ([c8d3882](https://github.com/rudderlabs/rudder-transformer/commit/c8d3882baccc57d7b892c55ff9811c951afb5ec6)) + +### [1.45.2](https://github.com/rudderlabs/rudder-transformer/compare/v1.45.1...v1.45.2) (2023-10-17) + + +### Bug Fixes + +* add event metadata to 298 status code responses ([f0493dc](https://github.com/rudderlabs/rudder-transformer/commit/f0493dccfd47bfe1897ebcec27141e2df31393c0)) + +### [1.45.1](https://github.com/rudderlabs/rudder-transformer/compare/v1.45.0...v1.45.1) (2023-10-17) + + +### Bug Fixes + +* **clevertap:** invalid parameters ordering issue ([a70d4db](https://github.com/rudderlabs/rudder-transformer/commit/a70d4db57b302abc710907aadb8570944d54165a)) +* **clevertap:** parameters ordering issue ([#2727](https://github.com/rudderlabs/rudder-transformer/issues/2727)) ([bd6e096](https://github.com/rudderlabs/rudder-transformer/commit/bd6e096db3dc6b9bd2d607084b8a38ff315fab9c)) + +## [1.45.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.44.2...v1.45.0) (2023-10-11) + + +### Features + +* **integrations:** introduced new status codes to suppress or filter events ([#2611](https://github.com/rudderlabs/rudder-transformer/issues/2611)) ([6bdb01e](https://github.com/rudderlabs/rudder-transformer/commit/6bdb01e1152f52339dc6d1936cbe686e64faf070)) +* onboard braze stats ([#2703](https://github.com/rudderlabs/rudder-transformer/issues/2703)) ([f205325](https://github.com/rudderlabs/rudder-transformer/commit/f2053255bedac6017f909fe8b6de3775dd50bc93)) +* support page call in snapchat conversion ([#2688](https://github.com/rudderlabs/rudder-transformer/issues/2688)) ([d681d5e](https://github.com/rudderlabs/rudder-transformer/commit/d681d5e1a39c1914e3a237e1020553518c297416)) + + +### Bug Fixes + +* added matchId check and timestamp conversion ([#2709](https://github.com/rudderlabs/rudder-transformer/issues/2709)) ([f49244d](https://github.com/rudderlabs/rudder-transformer/commit/f49244dce6cf15812d894d22c43d2432b5a4756a)) +* bugsnag event sent as an object for track call ([#2681](https://github.com/rudderlabs/rudder-transformer/issues/2681)) ([b211840](https://github.com/rudderlabs/rudder-transformer/commit/b21184019691b472650901f6002ef81b579a1146)) +* correct handling of permission_denied error for GAEC & GARL ([#2699](https://github.com/rudderlabs/rudder-transformer/issues/2699)) ([eca3be1](https://github.com/rudderlabs/rudder-transformer/commit/eca3be1fdcb7ac0ebf9432e9686a75fad2d6dc78)) +* **garl:** partial failure handling ([#2666](https://github.com/rudderlabs/rudder-transformer/issues/2666)) ([d4cac26](https://github.com/rudderlabs/rudder-transformer/commit/d4cac268193e0db9540f95c7aab39157d70765c1)) +* **kafka:** add status code & batched value in response structure ([#2684](https://github.com/rudderlabs/rudder-transformer/issues/2684)) ([99f39f5](https://github.com/rudderlabs/rudder-transformer/commit/99f39f5cd62ceb82bd8f51d1de84442b1e59c004)) +* **klaviyo:** sending error field at root level for suppress events ([#2707](https://github.com/rudderlabs/rudder-transformer/issues/2707)) ([bc88f13](https://github.com/rudderlabs/rudder-transformer/commit/bc88f1303ec4f60a466492c72e8c3b57dd5070af)) +* snapchat conversion introduce missing fields ([#2704](https://github.com/rudderlabs/rudder-transformer/issues/2704)) ([d6488d5](https://github.com/rudderlabs/rudder-transformer/commit/d6488d5a189ea90d1142e4ecb34b2af0bb940fe9)) + +### [1.44.2](https://github.com/rudderlabs/rudder-transformer/compare/v1.44.1...v1.44.2) (2023-10-09) + + +### Bug Fixes + +* create instance of transformedObj ([37495e3](https://github.com/rudderlabs/rudder-transformer/commit/37495e3e4a90dc9c5abbf74e7d58152a9af10daf)) + +### [1.44.1](https://github.com/rudderlabs/rudder-transformer/compare/v1.44.0...v1.44.1) (2023-10-06) + + +### Bug Fixes + +* criteo_aud auth_token expire code incorporated ([#2687](https://github.com/rudderlabs/rudder-transformer/issues/2687)) ([cbe333a](https://github.com/rudderlabs/rudder-transformer/commit/cbe333a9e4eea7088bfe46a2aaf09d489a7bc7c7)) + +## [1.44.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.43.1...v1.44.0) (2023-09-29) + + +### Features + +* add geolocation support for python transformations ([#2678](https://github.com/rudderlabs/rudder-transformer/issues/2678)) ([b688c4a](https://github.com/rudderlabs/rudder-transformer/commit/b688c4a6889250bacfd2a81c9de8a1436281daa9)) +* add axios mocking to component test-suite ([#2638](https://github.com/rudderlabs/rudder-transformer/issues/2638)) ([100c808](https://github.com/rudderlabs/rudder-transformer/commit/100c80881eb99716198231deb9ec0e69dc3fa2a0)) +* add circular reference check in flattern json ([#2650](https://github.com/rudderlabs/rudder-transformer/issues/2650)) ([a21ea3a](https://github.com/rudderlabs/rudder-transformer/commit/a21ea3aaecfc3d10de3f4eaa34425dda388032ff)) +* **gaec:** partial failures handling ([#2631](https://github.com/rudderlabs/rudder-transformer/issues/2631)) ([0008277](https://github.com/rudderlabs/rudder-transformer/commit/0008277fe43d20ced4066f8f1f1b0f1d12345f01)) +* **iterable:** user deletion support ([#2621](https://github.com/rudderlabs/rudder-transformer/issues/2621)) ([c0ab19a](https://github.com/rudderlabs/rudder-transformer/commit/c0ab19a293a72ea0a7575b863356aea9a0e6762f)) +* tslint rules enable ([#2604](https://github.com/rudderlabs/rudder-transformer/issues/2604)) ([4d6c4b8](https://github.com/rudderlabs/rudder-transformer/commit/4d6c4b834de005484dc1099a52c69ab6212273e8)) + + +### Bug Fixes +* add optional chaining for traits ([#2677](https://github.com/rudderlabs/rudder-transformer/issues/2677)) ([b80bfbc](https://github.com/rudderlabs/rudder-transformer/commit/b80bfbc8a6afdef57ad5f2560bb803c8e00bcbfc)) +* add auth status inactive category handling to GA in userDeletion flow ([#2669](https://github.com/rudderlabs/rudder-transformer/issues/2669)) ([b784800](https://github.com/rudderlabs/rudder-transformer/commit/b7848004e2679ec7278c8381560cb1a77da6c642)) +* add optional chaining for error message in network handler of Intercom ([#2648](https://github.com/rudderlabs/rudder-transformer/issues/2648)) ([10a13bc](https://github.com/rudderlabs/rudder-transformer/commit/10a13bcf7f987de45540b52d414883664e43f9cd)) +* bqstream event ordering fix ([#2624](https://github.com/rudderlabs/rudder-transformer/issues/2624)) ([e97e7ca](https://github.com/rudderlabs/rudder-transformer/commit/e97e7caed20ffb007f1c543e15c15c6e89e2dfb7)) +* **hubspot:** add validation for hubspotEvents ([#2643](https://github.com/rudderlabs/rudder-transformer/issues/2643)) ([b49d0ee](https://github.com/rudderlabs/rudder-transformer/commit/b49d0ee576f55e5f95e3d02b7111e995fc9b8ada)) +* **mixpanel:** batch event ordering ([#2608](https://github.com/rudderlabs/rudder-transformer/issues/2608)) ([36c7f06](https://github.com/rudderlabs/rudder-transformer/commit/36c7f06ccfa534b751ca9b3f5c41e9bb6d2e9f00)) +* refactor adjust using optional chaining ([#2671](https://github.com/rudderlabs/rudder-transformer/issues/2671)) ([f63b493](https://github.com/rudderlabs/rudder-transformer/commit/f63b4932d5ba467a82a36d3e8b80578f81f729cf)) +* **snyk:** fix dependencies version from snyk ([#2640](https://github.com/rudderlabs/rudder-transformer/issues/2640)) ([8422744](https://github.com/rudderlabs/rudder-transformer/commit/8422744b3af48f71358f7acbe2df7b3688ce04a8)) +* **snyk:** removed aws-sdk dependency ([08a3535](https://github.com/rudderlabs/rudder-transformer/commit/08a3535257e5d84566c95cebc701613478f0e039)) +* **snyk:** removed the new added dependencies ([364779c](https://github.com/rudderlabs/rudder-transformer/commit/364779ce959d7548e5cf1cc8c718b71331dcb378)) +* **snyk:** snyk updated versions merged to oen pr ([16a9b8e](https://github.com/rudderlabs/rudder-transformer/commit/16a9b8e6cc26a8df1331cb1af8774df7cc05c959)) +* use promise for prompts in personalize create tracking script ([#2635](https://github.com/rudderlabs/rudder-transformer/issues/2635)) ([5fbddd1](https://github.com/rudderlabs/rudder-transformer/commit/5fbddd1490b16dbda6bca19df4cac5bef6ff78c5)) + +### [1.43.1](https://github.com/rudderlabs/rudder-transformer/compare/v1.43.0...v1.43.1) (2023-09-26) + + +### Bug Fixes + +* **dm:** updated the stats definition for the tracking plan service ([eb2724f](https://github.com/rudderlabs/rudder-transformer/commit/eb2724f135d2c3c2a1fb8a88051cfb0f2720b5ed)) +* **iterable:** event id mapping ([#2659](https://github.com/rudderlabs/rudder-transformer/issues/2659)) ([84083aa](https://github.com/rudderlabs/rudder-transformer/commit/84083aa671312e3934414b5534489fba87d9b29f)) + +## [1.43.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.42.0...v1.43.0) (2023-09-25) + + +### Features + +* update google_cloud_function implementation as per custom destination ([#2652](https://github.com/rudderlabs/rudder-transformer/issues/2652)) ([5c981e1](https://github.com/rudderlabs/rudder-transformer/commit/5c981e12c8e203c80229881a07704c6413c842a9)) + +## [1.42.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.41.1...v1.42.0) (2023-09-18) + + +### Features + +* added profiling endpoints to fetch profiles ([#2540](https://github.com/rudderlabs/rudder-transformer/issues/2540)) ([e537364](https://github.com/rudderlabs/rudder-transformer/commit/e537364841729f738e75bfbf859abad745f1f78f)) +* google ads v14 upgrade ([#2578](https://github.com/rudderlabs/rudder-transformer/issues/2578)) ([f44a951](https://github.com/rudderlabs/rudder-transformer/commit/f44a951fc2a23135e3d0950d7a29421ca939de1a)) +* introduce de-activation of authStatus for access_denied or inva… ([#2598](https://github.com/rudderlabs/rudder-transformer/issues/2598)) ([3b1fef6](https://github.com/rudderlabs/rudder-transformer/commit/3b1fef63c7aee376dd67c6b3235095f311d673fb)) +* **mixpanel:** add incremental properties support ([#2550](https://github.com/rudderlabs/rudder-transformer/issues/2550)) ([e98ea84](https://github.com/rudderlabs/rudder-transformer/commit/e98ea84265ee37bfc6d3e99104af7bb4a3d78007)) +* onboard fullstory cloud mode ([#2536](https://github.com/rudderlabs/rudder-transformer/issues/2536)) ([dfd6117](https://github.com/rudderlabs/rudder-transformer/commit/dfd6117fbba521941876bc9681858d4a6d32b0bf)) +* onboard intercom to transformer proxy ([#2548](https://github.com/rudderlabs/rudder-transformer/issues/2548)) ([ed27a11](https://github.com/rudderlabs/rudder-transformer/commit/ed27a11799ded0e9f7f77401ddc58061a5908b37)) +* onboard launchdarkly audience ([#2529](https://github.com/rudderlabs/rudder-transformer/issues/2529)) ([082e1d1](https://github.com/rudderlabs/rudder-transformer/commit/082e1d190f4df152cd7dc3141cc33b406720215f)) + + +### Bug Fixes + +* **INT-339:** marketo response handler to handle static list removed and skipped statuses ([#2606](https://github.com/rudderlabs/rudder-transformer/issues/2606)) ([e3fed49](https://github.com/rudderlabs/rudder-transformer/commit/e3fed49d2725a6c60409db00cfda2a997da78e71)) +* **INT-339:** marketo response handler to handle static list removed and skipped statuses ([#2620](https://github.com/rudderlabs/rudder-transformer/issues/2620)) ([87d8216](https://github.com/rudderlabs/rudder-transformer/commit/87d82165089b706da1213cb3859f0f6d73f917db)) +* **INT-523:** replaced flag with dropdown for datacenter selection ([#2575](https://github.com/rudderlabs/rudder-transformer/issues/2575)) ([735d5d1](https://github.com/rudderlabs/rudder-transformer/commit/735d5d1e4f1d84edaed488642eefe8d41bf6f20a)) +* **INT-568:** slack send event to event specific channel based on channel webhook ([#2563](https://github.com/rudderlabs/rudder-transformer/issues/2563)) ([0f3b39e](https://github.com/rudderlabs/rudder-transformer/commit/0f3b39e64f50cec54a5fcd59e0da298092ca0f22)) +* **INT-591:** added support of id parameter for update events ([#2595](https://github.com/rudderlabs/rudder-transformer/issues/2595)) ([a2a9c37](https://github.com/rudderlabs/rudder-transformer/commit/a2a9c374517826738ba9677511c6247316fc836e)) +* **iterable:** updated mappings ([#2602](https://github.com/rudderlabs/rudder-transformer/issues/2602)) ([23bb1f6](https://github.com/rudderlabs/rudder-transformer/commit/23bb1f64168f0e0a2ded4cbce8c99ef807fef9ad)) +* pyroscope endpoints ([#2613](https://github.com/rudderlabs/rudder-transformer/issues/2613)) ([7d268f0](https://github.com/rudderlabs/rudder-transformer/commit/7d268f046f92d86f48ced06c586b0d098a913113)) +* remove hashing on twclid for twitter ads ([#2605](https://github.com/rudderlabs/rudder-transformer/issues/2605)) ([6c984a4](https://github.com/rudderlabs/rudder-transformer/commit/6c984a4821124e1054be1c81a9bf110c36311f13)) +* seperate build steps for ruddestack and rudderlabs repo ([#2625](https://github.com/rudderlabs/rudder-transformer/issues/2625)) ([fcafacd](https://github.com/rudderlabs/rudder-transformer/commit/fcafacd10be7f1c9c001a6a805b4cb9daafd4413)) +* **transformation:** block ipv6 requests in user transformer ([#2618](https://github.com/rudderlabs/rudder-transformer/issues/2618)) ([fd81211](https://github.com/rudderlabs/rudder-transformer/commit/fd8121108594d6ca032c36c7b8d47d26c1b389e0)) + +### [1.41.1](https://github.com/rudderlabs/rudder-transformer/compare/v1.41.0...v1.41.1) (2023-09-14) + + +### Bug Fixes + +* **redis:** add destination_id in the key ([55629d6](https://github.com/rudderlabs/rudder-transformer/commit/55629d6d871d275de601a11ec223e0c283641d7b)) + +## [1.41.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.40.2...v1.41.0) (2023-09-11) + + +### Features + +* add support for updating profile properties through track call ([#2581](https://github.com/rudderlabs/rudder-transformer/issues/2581)) ([f0f20d6](https://github.com/rudderlabs/rudder-transformer/commit/f0f20d654ec5ee8eb078ce7f5610a4666d73fd8c)) +* **INT-580:** messageId to event_id mapping support ([#2570](https://github.com/rudderlabs/rudder-transformer/issues/2570)) ([b38843b](https://github.com/rudderlabs/rudder-transformer/commit/b38843bce9bc02d73dceedc6f751f402251fd23a)) +* **tiktok_ads:** messageId to event_id mapping support ([72f87bf](https://github.com/rudderlabs/rudder-transformer/commit/72f87bfa381ed7a5b74fb5907f932b78d0257ab9)) + + +### Bug Fixes + +* **bugsnag:** alerts ([266514b](https://github.com/rudderlabs/rudder-transformer/commit/266514bd56c150d6c88c1db0733a1da0a4367c02)) +* **bugsnag:** alerts ([#2580](https://github.com/rudderlabs/rudder-transformer/issues/2580)) ([9e9eeac](https://github.com/rudderlabs/rudder-transformer/commit/9e9eeacdf79cf8175f87f302242542060f668db8)) +* json paths for non tracks events for warehouse ([#2571](https://github.com/rudderlabs/rudder-transformer/issues/2571)) ([e455368](https://github.com/rudderlabs/rudder-transformer/commit/e45536805cf9545b73f4d5bf1be5fad1565ab075)) + +### [1.40.2](https://github.com/rudderlabs/rudder-transformer/compare/v1.40.1...v1.40.2) (2023-09-06) + + +### Bug Fixes + +* marketo bulk upload import issue ([#2559](https://github.com/rudderlabs/rudder-transformer/issues/2559)) ([752f351](https://github.com/rudderlabs/rudder-transformer/commit/752f351f02b7f7611c702d7dbcb4804972bb0970)) + +### [1.40.1](https://github.com/rudderlabs/rudder-transformer/compare/v1.40.0...v1.40.1) (2023-09-06) + + +### Bug Fixes + +* **google_ads_offline_conversions:** partial failure status code issue ([abfce44](https://github.com/rudderlabs/rudder-transformer/commit/abfce44067dbcefe7f2db90a5bd8e2895fd49ea9)) +* **google_ads_offline_conversions:** partial failure status code issue ([#2552](https://github.com/rudderlabs/rudder-transformer/issues/2552)) ([ae90087](https://github.com/rudderlabs/rudder-transformer/commit/ae900872680fd258dbb7cf10d5bfe6f02def94a5)) +* type issue in lookup via externalid, row lock error as retryable ([#2553](https://github.com/rudderlabs/rudder-transformer/issues/2553)) ([319ff90](https://github.com/rudderlabs/rudder-transformer/commit/319ff903059f21f8b11df3e984547a82f35e7ceb)) +* update datafile lookup error message ([#2555](https://github.com/rudderlabs/rudder-transformer/issues/2555)) ([c4aff36](https://github.com/rudderlabs/rudder-transformer/commit/c4aff3626a1f75059bd6a09edff1e38b4e6fc4e4)) + +## [1.40.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.39.1...v1.40.0) (2023-09-04) + + +### Features + +* add eu instance support to kustomer destination ([#2513](https://github.com/rudderlabs/rudder-transformer/issues/2513)) ([34dbabf](https://github.com/rudderlabs/rudder-transformer/commit/34dbabfcec610b87a0a1512743528bef2e4b69ae)) +* blank audience support in google ads ([#2526](https://github.com/rudderlabs/rudder-transformer/issues/2526)) ([54d3704](https://github.com/rudderlabs/rudder-transformer/commit/54d3704a9dea612b98735f7191351e8195af205a)) +* eloqua new destination cdkv2 ([#2501](https://github.com/rudderlabs/rudder-transformer/issues/2501)) ([1db0573](https://github.com/rudderlabs/rudder-transformer/commit/1db0573eff0a0091248ffa2107fd8064a03ce2dd)) +* **ga4:** added support of campaign_details event ([#2542](https://github.com/rudderlabs/rudder-transformer/issues/2542)) ([95920b8](https://github.com/rudderlabs/rudder-transformer/commit/95920b8a851e1e78a7154dae222033c7f34b3c09)) +* **posthog:** support timestamp mapping from properties ([#2507](https://github.com/rudderlabs/rudder-transformer/issues/2507)) ([88392d7](https://github.com/rudderlabs/rudder-transformer/commit/88392d70b73525a15933e5a83a25df7d6c9417ee)) +* retl audience support google ads ([#2530](https://github.com/rudderlabs/rudder-transformer/issues/2530)) ([804aa79](https://github.com/rudderlabs/rudder-transformer/commit/804aa79113ed628d4c4dc92ad5dd4aa347aabe5a)) +* support for profiles event in redis ([#2497](https://github.com/rudderlabs/rudder-transformer/issues/2497)) ([f0c0a21](https://github.com/rudderlabs/rudder-transformer/commit/f0c0a211d167be2393c92db0a37dd517b1dbd1c4)) + + +### Bug Fixes + +* **braze:** enable merge behaviour to stitch user data ([#2508](https://github.com/rudderlabs/rudder-transformer/issues/2508)) ([8a2cf93](https://github.com/rudderlabs/rudder-transformer/commit/8a2cf93d9e83954edf1878390c254fb88a6c83c7)) +* **gaoc:** custom variables issue ([#2545](https://github.com/rudderlabs/rudder-transformer/issues/2545)) ([3afee53](https://github.com/rudderlabs/rudder-transformer/commit/3afee53759e19765c4a284910cfd86e774dc0a24)) +* **INT-512:** removed personal information from test cases ([#2517](https://github.com/rudderlabs/rudder-transformer/issues/2517)) ([9582e31](https://github.com/rudderlabs/rudder-transformer/commit/9582e31b9398f8d9bb01c431fd573fc54dbf7b3d)) +* **iterable:** squadcast alert ([#2535](https://github.com/rudderlabs/rudder-transformer/issues/2535)) ([5a2194b](https://github.com/rudderlabs/rudder-transformer/commit/5a2194baa2c07d5b0fbe7bd7f4cfdec9117661ba)) +* missing type for page and group calls ([#2512](https://github.com/rudderlabs/rudder-transformer/issues/2512)) ([bf08b9e](https://github.com/rudderlabs/rudder-transformer/commit/bf08b9e7177dbe7920e50e014484189a0c336b75)) +* remove secure environment for datafile call ([#2544](https://github.com/rudderlabs/rudder-transformer/issues/2544)) ([b069e26](https://github.com/rudderlabs/rudder-transformer/commit/b069e262e9864a60611ee1b1e8e6c91dad76b7f4)) +* fix: marketo bulk upload bugs and refactor ([#2414](https://github.com/rudderlabs/rudder-transformer/issues/2414)) ([9e3ace1](https://github.com/rudderlabs/rudder-transformer/pull/2546/commits/9e3ace17012f8fae3db35608367d98840037d1c0)) + ### [1.39.1](https://github.com/rudderlabs/rudder-transformer/compare/v1.39.0...v1.39.1) (2023-08-28) diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000000..6a52dfa68df --- /dev/null +++ b/LICENSE @@ -0,0 +1,44 @@ +Elastic License 2.0 (ELv2) + +**Acceptance** +By using the software, you agree to all of the terms and conditions below. + +**Copyright License** +The licensor grants you a non-exclusive, royalty-free, worldwide, non-sublicensable, non-transferable license to use, copy, distribute, make available, and prepare derivative works of the software, in each case subject to the limitations and conditions below + +**Limitations** +You may not provide the software to third parties as a hosted or managed service, where the service provides users with access to any substantial set of the features or functionality of the software. + +You may not move, change, disable, or circumvent the license key functionality in the software, and you may not remove or obscure any functionality in the software that is protected by the license key. + +You may not alter, remove, or obscure any licensing, copyright, or other notices of the licensor in the software. Any use of the licensor’s trademarks is subject to applicable law. + +**Patents** +The licensor grants you a license, under any patent claims the licensor can license, or becomes able to license, to make, have made, use, sell, offer for sale, import and have imported the software, in each case subject to the limitations and conditions in this license. This license does not cover any patent claims that you cause to be infringed by modifications or additions to the software. If you or your company make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company. + +**Notices** +You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms. + +If you modify the software, you must include in any modified copies of the software prominent notices stating that you have modified the software. + +**No Other Rights** +These terms do not imply any licenses other than those expressly granted in these terms. + +**Termination** +If you use the software in violation of these terms, such use is not licensed, and your licenses will automatically terminate. If the licensor provides you with a notice of your violation, and you cease all violation of this license no later than 30 days after you receive that notice, your licenses will be reinstated retroactively. However, if you violate these terms after such reinstatement, any additional violation of these terms will cause your licenses to terminate automatically and permanently. + +**No Liability** +As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim. + +**Definitions** +The *licensor* is the entity offering these terms, and the *software* is the software the licensor makes available under these terms, including any portion of it. + +*you* refers to the individual or entity agreeing to these terms. + +*your company* is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization. *control* means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect. + +*your licenses* are all the licenses granted to you for the software under these terms. + +*use* means anything you do with the software requiring one of your licenses. + +*trademark* means trademarks, service marks, and similar rights. diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index 2abc92cbcbe..00000000000 --- a/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 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 07c3ba32165..2b3908dcb55 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ # RudderStack Transformer RudderStack Transformer is a service which transforms the RudderStack events to destination-specific singular events. This feature is released under -under the [MIT license](https://github.com/rudderlabs/rudder-transformer/blob/main/LICENSE.md). +under the [Elastic License 2.0](https://www.elastic.co/licensing/elastic-license). ## Transformer Setup diff --git a/github-release.config.js b/github-release.config.js deleted file mode 100644 index df269d8a02b..00000000000 --- a/github-release.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - gitRawCommitsOpts: { - merges: null, - }, -}; diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 00000000000..412d8d27330 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,197 @@ +// For a detailed explanation regarding each configuration property, visit: +// https://jestjs.io/docs/en/configuration.html + +module.exports = { + // All imported modules in your tests should be mocked automatically + // automock: false, + + // Stop running tests after `n` failures + bail: 1, + + // Respect "browser" field in package.json when resolving modules + // browser: false, + + // The directory where Jest should store its cached dependency information + // cacheDirectory: "/private/var/folders/bj/xt4sffgd21z57fxhvqrd30_80000gn/T/jest_dx", + + // Automatically clear mock calls and instances between every test + // clearMocks: false, + + // 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, + + // The directory where Jest should output its coverage files + coverageDirectory: 'reports/coverage', + + // An array of regexp pattern strings used to skip coverage collection + coveragePathIgnorePatterns: ['/node_modules/', '__tests__', 'warehouse/v0'], + + // A list of reporter names that Jest uses when writing coverage reports + coverageReporters: ['json', 'text', 'lcov', 'clover'], + + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 60, + functions: 75, + lines: 75, + statements: 75, + }, + }, + + // A path to a custom dependency extractor + // dependencyExtractor: null, + + // Make calling deprecated APIs throw helpful error messages + errorOnDeprecated: true, + + // Force coverage collection from ignored files using an array of glob patterns + // forceCoverageMatch: [], + + // A path to a module which exports an async function that is triggered once before all test suites + // globalSetup: null, + + // A path to a module which exports an async function that is triggered once after all test suites + // globalTeardown: null, + + // A set of global variables that need to be available in all test environments + // globals: { + // 'ts-jest': { + // tsConfigFile: 'tsconfig.json', + // diagnostics: false + // }, + // }, + // preset: 'ts-jest/presets/js-with-ts-esm', + + // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers. + // maxWorkers: "50%", + + // An array of directory names to be searched recursively up from the requiring module's location + moduleDirectories: ['node_modules'], + + // An array of file extensions your modules use + moduleFileExtensions: ['js', 'json', 'ts', 'node'], + + // A map from regular expressions to module names that allow to stub out resources with a single module + // moduleNameMapper: {}, + + // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader + modulePathIgnorePatterns: ['/test/__mocks__/axios.js'], + + // Activates notifications for test results + notify: true, + + // An enum that specifies notification mode. Requires { notify: true } + notifyMode: 'failure-change', + + // A preset that is used as a base for Jest's configuration + // preset: null, + + // Run tests from one or more projects + // projects: null, + + // Use this configuration option to add custom reporters to Jest + reporters: [ + 'default', + [ + 'jest-sonar', + { + outputDirectory: 'reports/sonar', + outputName: 'results-report.xml', + reportedFilePath: 'relative', + relativeRootDir: './', + }, + ], + ], + + // Automatically reset mock state between every test + // resetMocks: false, + + // Reset the module registry before running each individual test + // resetModules: false, + + // A path to a custom resolver + // resolver: null, + + // Automatically restore mock state between every test + // restoreMocks: false, + + // The root directory that Jest should scan for tests and modules within + // rootDir: null, + + // A list of paths to directories that Jest should use to search for files in + // roots: [ + // "" + // ], + + // Allows you to use a custom runner instead of Jest's default test runner + // runner: "jest-runner", + + // The paths to modules that run some code to configure or set up the testing environment before each test + // setupFiles: [], + + // A list of paths to modules that run some code to configure or set up the testing framework before each test + // setupFilesAfterEnv: [], + + // A list of paths to snapshot serializer modules Jest should use for snapshot testing + // snapshotSerializers: [], + + // The test environment that will be used for testing + testEnvironment: 'node', + + // Options that will be passed to the testEnvironment + // testEnvironmentOptions: {}, + + // Adds a location field to test results + // testLocationInResults: false, + + // The glob patterns Jest uses to detect test files + testMatch: ['**/*.test.[tj]s?(x)'], + + // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped + testPathIgnorePatterns: ['/node_modules/'], + + // The regexp pattern or array of patterns that Jest uses to detect test files + // testRegex: [], + // This option allows the use of a custom results processor + // testResultsProcessor: null, + + // This option allows use of a custom test runner + // testRunner: "jasmine2", + + // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href + // testURL: "http://localhost", + + // Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout" + // timers: "real", + + // A map from regular expressions to paths to transformers + transform: { + '^.+\\.[tj]sx?$': [ + 'ts-jest', + { + tsconfig: 'tsconfig.json', + diagnostics: true, + }, + ], + }, + // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation + // transformIgnorePatterns: [ + // "/node_modules/" + // ], + + // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them + // unmockedModulePathPatterns: undefined, + + // Indicates whether each individual test should be reported during the run + // verbose: null, + + // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode + // watchPathIgnorePatterns: [], + + // Whether to use watchman for file crawling + // watchman: true, +}; diff --git a/jest.config.typescript.js b/jest.config.typescript.js index 66f4236e7ec..fde50e3d5ec 100644 --- a/jest.config.typescript.js +++ b/jest.config.typescript.js @@ -2,186 +2,186 @@ // https://jestjs.io/docs/en/configuration.html module.exports = { - // All imported modules in your tests should be mocked automatically - // automock: false, + // All imported modules in your tests should be mocked automatically + // automock: false, - // Stop running tests after `n` failures - bail: 1, + // Stop running tests after `n` failures + bail: 1, - // Respect "browser" field in package.json when resolving modules - // browser: false, + // Respect "browser" field in package.json when resolving modules + // browser: false, - // The directory where Jest should store its cached dependency information - // cacheDirectory: "/private/var/folders/bj/xt4sffgd21z57fxhvqrd30_80000gn/T/jest_dx", + // The directory where Jest should store its cached dependency information + // cacheDirectory: "/private/var/folders/bj/xt4sffgd21z57fxhvqrd30_80000gn/T/jest_dx", - // Automatically clear mock calls and instances between every test - // clearMocks: false, + // Automatically clear mock calls and instances between every test + // clearMocks: false, - // Indicates whether the coverage information should be collected while executing the test - collectCoverage: false, + // 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, + // An array of glob patterns indicating a set of files for which coverage information should be collected + // collectCoverageFrom: null, - // The directory where Jest should output its coverage files - coverageDirectory: 'reports/ts-coverage', + // The directory where Jest should output its coverage files + coverageDirectory: 'reports/ts-coverage', - // An array of regexp pattern strings used to skip coverage collection - coveragePathIgnorePatterns: ['/node_modules/', '__tests__'], + // An array of regexp pattern strings used to skip coverage collection + coveragePathIgnorePatterns: ['/node_modules/', '__tests__'], - // A list of reporter names that Jest uses when writing coverage reports - coverageReporters: ['json', 'text', 'lcov', 'clover'], + // A list of reporter names that Jest uses when writing coverage reports + coverageReporters: ['json', 'text', 'lcov', 'clover'], - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 30, - functions: 40, - lines: 50, - statements: 50, - }, + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 30, + functions: 40, + lines: 50, + statements: 50, }, + }, - // A path to a custom dependency extractor - // dependencyExtractor: null, + // A path to a custom dependency extractor + // dependencyExtractor: null, - // Make calling deprecated APIs throw helpful error messages - errorOnDeprecated: true, + // Make calling deprecated APIs throw helpful error messages + errorOnDeprecated: true, - // Force coverage collection from ignored files using an array of glob patterns - // forceCoverageMatch: [], + // Force coverage collection from ignored files using an array of glob patterns + // forceCoverageMatch: [], - // A path to a module which exports an async function that is triggered once before all test suites - // globalSetup: null, + // A path to a module which exports an async function that is triggered once before all test suites + // globalSetup: null, - // A path to a module which exports an async function that is triggered once after all test suites - // globalTeardown: null, + // A path to a module which exports an async function that is triggered once after all test suites + // globalTeardown: null, - // A set of global variables that need to be available in all test environments - // globals: { - // 'ts-jest': { - // tsConfigFile: 'tsconfig.json', - // diagnostics: true - // }, - // }, + // A set of global variables that need to be available in all test environments + // globals: { + // 'ts-jest': { + // tsConfigFile: 'tsconfig.json', + // diagnostics: true + // }, + // }, - // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers. - // maxWorkers: "50%", + // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers. + // maxWorkers: "50%", - // An array of directory names to be searched recursively up from the requiring module's location - moduleDirectories: ['node_modules'], + // An array of directory names to be searched recursively up from the requiring module's location + moduleDirectories: ['node_modules'], - // An array of file extensions your modules use - moduleFileExtensions: ['js', 'json', 'ts', 'node'], + // An array of file extensions your modules use + moduleFileExtensions: ['js', 'json', 'ts', 'node'], - // A map from regular expressions to module names that allow to stub out resources with a single module - // moduleNameMapper: {}, + // A map from regular expressions to module names that allow to stub out resources with a single module + // moduleNameMapper: {}, - // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader - // modulePathIgnorePatterns: [], + // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader + modulePathIgnorePatterns: ['/test/__mocks__/axios.js'], - // Activates notifications for test results - notify: true, + // Activates notifications for test results + notify: true, - // An enum that specifies notification mode. Requires { notify: true } - notifyMode: 'failure-change', + // An enum that specifies notification mode. Requires { notify: true } + notifyMode: 'failure-change', - // A preset that is used as a base for Jest's configuration - preset: 'ts-jest', + // A preset that is used as a base for Jest's configuration + preset: 'ts-jest', - // Run tests from one or more projects - // projects: null, + // Run tests from one or more projects + // projects: null, - // Use this configuration option to add custom reporters to Jest - // reporters: undefined, + // Use this configuration option to add custom reporters to Jest + // reporters: undefined, - // Automatically reset mock state between every test - // resetMocks: false, + // Automatically reset mock state between every test + // resetMocks: false, - // Reset the module registry before running each individual test - // resetModules: false, + // Reset the module registry before running each individual test + // resetModules: false, - // A path to a custom resolver - // resolver: null, + // A path to a custom resolver + // resolver: null, - // Automatically restore mock state between every test - // restoreMocks: false, + // Automatically restore mock state between every test + // restoreMocks: false, - // The root directory that Jest should scan for tests and modules within - // rootDir: null, + // The root directory that Jest should scan for tests and modules within + // rootDir: null, - // A list of paths to directories that Jest should use to search for files in - // roots: [ - // "" - // ], + // A list of paths to directories that Jest should use to search for files in + // roots: [ + // "" + // ], - // Allows you to use a custom runner instead of Jest's default test runner - // runner: "jest-runner", + // Allows you to use a custom runner instead of Jest's default test runner + // runner: "jest-runner", - // The paths to modules that run some code to configure or set up the testing environment before each test - // setupFiles: [], + // The paths to modules that run some code to configure or set up the testing environment before each test + // setupFiles: [], - // A list of paths to modules that run some code to configure or set up the testing framework before each test - // setupFilesAfterEnv: [], + // A list of paths to modules that run some code to configure or set up the testing framework before each test + // setupFilesAfterEnv: [], - // A list of paths to snapshot serializer modules Jest should use for snapshot testing - // snapshotSerializers: [], + // A list of paths to snapshot serializer modules Jest should use for snapshot testing + // snapshotSerializers: [], - // The test environment that will be used for testing - testEnvironment: 'node', + // The test environment that will be used for testing + testEnvironment: 'node', - // Options that will be passed to the testEnvironment - // testEnvironmentOptions: {}, + // Options that will be passed to the testEnvironment + // testEnvironmentOptions: {}, - // Adds a location field to test results - // testLocationInResults: false, + // Adds a location field to test results + // testLocationInResults: false, - // The glob patterns Jest uses to detect test files - testMatch: ['**/*.(test).ts?(x)'], + // The glob patterns Jest uses to detect test files + testMatch: ['**/*.(test).ts?(x)'], - // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped - testPathIgnorePatterns: ['/node_modules/'], + // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped + testPathIgnorePatterns: ['/node_modules/'], - // The regexp pattern or array of patterns that Jest uses to detect test files - // testRegex: [], + // The regexp pattern or array of patterns that Jest uses to detect test files + // testRegex: [], - // This option allows the use of a custom results processor - // testResultsProcessor: null, + // This option allows the use of a custom results processor + // testResultsProcessor: null, - // This option allows use of a custom test runner - // testRunner: "jasmine2", + // This option allows use of a custom test runner + // testRunner: "jasmine2", - // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href - // testURL: "http://localhost", + // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href + // testURL: "http://localhost", - // Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout" - // timers: "real", + // Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout" + // timers: "real", - // A map from regular expressions to paths to transformers - transform: { - '^.+\\.tsx?$': [ - 'ts-jest', - { - tsconfig: 'tsconfig.json', - diagnostics: true, - }, - ], - }, + // A map from regular expressions to paths to transformers + transform: { + '^.+\\.tsx?$': [ + 'ts-jest', + { + tsconfig: 'tsconfig.json', + diagnostics: true, + }, + ], + }, - // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation - // transformIgnorePatterns: [ - // "/node_modules/" - // ], + // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation + // transformIgnorePatterns: [ + // "/node_modules/" + // ], - // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them - // unmockedModulePathPatterns: undefined, + // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them + // unmockedModulePathPatterns: undefined, - // Indicates whether each individual test should be reported during the run - // verbose: null, + // Indicates whether each individual test should be reported during the run + // verbose: null, - // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode - // watchPathIgnorePatterns: [], + // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode + // watchPathIgnorePatterns: [], - // Whether to use watchman for file crawling - // watchman: true, + // Whether to use watchman for file crawling + // watchman: true, }; diff --git a/jest.default.config.js b/jest.default.config.js index 895b8aa0751..fed1dcef31c 100644 --- a/jest.default.config.js +++ b/jest.default.config.js @@ -36,9 +36,9 @@ module.exports = { coverageThreshold: { global: { branches: 60, - functions: 80, - lines: 80, - statements: 80, + functions: 75, + lines: 75, + statements: 75, }, }, diff --git a/package-lock.json b/package-lock.json index 7c88b949da1..ae48fad558f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,30 +1,33 @@ { "name": "rudder-transformer", - "version": "1.39.1", + "version": "1.52.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rudder-transformer", - "version": "1.39.1", + "version": "1.52.1", "license": "ISC", "dependencies": { "@amplitude/ua-parser-js": "^0.7.24", - "@aws-sdk/client-personalize": "^3.363.0", + "@aws-sdk/client-personalize": "^3.391.0", "@aws-sdk/client-s3": "^3.370.0", - "@aws-sdk/credential-providers": "^3.363.0", - "@aws-sdk/lib-storage": "^3.370.0", + "@aws-sdk/credential-providers": "^3.391.0", + "@aws-sdk/lib-storage": "^3.391.0", "@bugsnag/js": "^7.20.2", "@datadog/pprof": "^3.1.0", "@koa/router": "^12.0.0", "@ndhoule/extend": "^2.0.0", + "@pyroscope/nodejs": "^0.2.6", + "@rudderstack/integrations-lib": "^0.1.8", + "@rudderstack/workflow-engine": "^0.6.9", "ajv": "^8.12.0", "ajv-draft-04": "^1.0.0", "ajv-formats": "^2.1.1", - "axios": "^1.4.0", + "axios": "^1.6.0", "btoa": "^1.2.1", "component-each": "^0.2.6", - "crypto-js": "^4.1.1", + "crypto-js": "^4.2.0", "dotenv": "^16.0.3", "flat": "^5.0.2", "form-data": "^4.0.0", @@ -50,14 +53,13 @@ "moment": "^2.29.4", "moment-timezone": "^0.5.43", "node-cache": "^5.1.2", - "node-fetch": "^2.6.9", + "node-fetch": "^2.6.12", "oauth-1.0a": "^2.2.6", "object-hash": "^3.0.0", "parse-static-imports": "^1.1.0", "prom-client": "^14.2.0", "qs": "^6.11.1", "rudder-transformer-cdk": "^1.4.11", - "rudder-workflow-engine": "^0.4.7", "set-value": "^4.1.0", "sha256": "^0.2.0", "stacktrace-parser": "^0.1.10", @@ -71,6 +73,7 @@ "devDependencies": { "@commitlint/config-conventional": "^17.6.3", "@digitalroute/cz-conventional-changelog-for-jira": "^8.0.1", + "@types/fast-json-stable-stringify": "^2.1.0", "@types/jest": "^29.5.1", "@types/koa": "^2.13.6", "@types/koa-bodyparser": "^4.3.10", @@ -78,6 +81,7 @@ "@types/node": "^20.2.5", "@typescript-eslint/eslint-plugin": "^5.61.0", "@typescript-eslint/parser": "^5.59.2", + "axios-mock-adapter": "^1.22.0", "benchmark-suite": "^0.1.8", "commander": "^10.0.1", "commitizen": "^4.3.0", @@ -112,26 +116,23 @@ }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/@amplitude/ua-parser-js": { "version": "0.7.24", - "resolved": "https://registry.npmjs.org/@amplitude/ua-parser-js/-/ua-parser-js-0.7.24.tgz", - "integrity": "sha512-VbQuJymJ20WEw0HtI2np7EdC3NJGUWi8+Xdbc7uk8WfMIF308T0howpzkQ3JFMN7ejnrcSM/OyNGveeE3TP3TA==", + "license": "MIT", "engines": { "node": "*" } }, "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, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -142,9 +143,8 @@ }, "node_modules/@apidevtools/json-schema-ref-parser": { "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz", - "integrity": "sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==", "dev": true, + "license": "MIT", "dependencies": { "@jsdevtools/ono": "^7.1.3", "call-me-maybe": "^1.0.1", @@ -153,18 +153,16 @@ }, "node_modules/@apidevtools/json-schema-ref-parser/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, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/@apidevtools/json-schema-ref-parser/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, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -175,24 +173,21 @@ }, "node_modules/@apidevtools/openapi-schemas": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", - "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/@apidevtools/swagger-methods": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", - "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@apidevtools/swagger-parser": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.1.0.tgz", - "integrity": "sha512-9Kt7EuS/7WbMAUv2gSziqjvxwDbFSg3Xeyfuj5laUODX8o/k/CpsAKiQ8W7/R88eXFTMbJYg6+7uAmOWNKmwnw==", "dev": true, + "license": "MIT", "dependencies": { "@apidevtools/json-schema-ref-parser": "9.0.6", "@apidevtools/openapi-schemas": "^2.1.0", @@ -208,8 +203,7 @@ }, "node_modules/@aws-crypto/crc32": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz", - "integrity": "sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/util": "^3.0.0", "@aws-sdk/types": "^3.222.0", @@ -218,13 +212,11 @@ }, "node_modules/@aws-crypto/crc32/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/@aws-crypto/crc32c": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz", - "integrity": "sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/util": "^3.0.0", "@aws-sdk/types": "^3.222.0", @@ -233,26 +225,22 @@ }, "node_modules/@aws-crypto/crc32c/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/@aws-crypto/ie11-detection": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", - "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==", + "license": "Apache-2.0", "dependencies": { "tslib": "^1.11.1" } }, "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/@aws-crypto/sha1-browser": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz", - "integrity": "sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/ie11-detection": "^3.0.0", "@aws-crypto/supports-web-crypto": "^3.0.0", @@ -291,13 +279,11 @@ }, "node_modules/@aws-crypto/sha1-browser/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/@aws-crypto/sha256-browser": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz", - "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/ie11-detection": "^3.0.0", "@aws-crypto/sha256-js": "^3.0.0", @@ -311,13 +297,11 @@ }, "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/@aws-crypto/sha256-js": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz", - "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/util": "^3.0.0", "@aws-sdk/types": "^3.222.0", @@ -326,26 +310,22 @@ }, "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/@aws-crypto/supports-web-crypto": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz", - "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==", + "license": "Apache-2.0", "dependencies": { "tslib": "^1.11.1" } }, "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/@aws-crypto/util": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", - "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", + "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.222.0", "@aws-sdk/util-utf8-browser": "^3.0.0", @@ -354,66 +334,63 @@ }, "node_modules/@aws-crypto/util/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/@aws-sdk/chunked-blob-reader": { "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader/-/chunked-blob-reader-3.310.0.tgz", - "integrity": "sha512-CrJS3exo4mWaLnWxfCH+w88Ou0IcAZSIkk4QbmxiHl/5Dq705OLoxf4385MVyExpqpeVJYOYQ2WaD8i/pQZ2fg==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" } }, "node_modules/@aws-sdk/chunked-blob-reader-native": { "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.310.0.tgz", - "integrity": "sha512-RuhyUY9hCd6KWA2DMF/U6rilYLLRYrDY6e0lq3Of1yzSRFxi4bk9ZMCF0mxf/9ppsB5eudUjrOypYgm6Axt3zw==", + "license": "Apache-2.0", "dependencies": { "@aws-sdk/util-base64": "3.310.0", "tslib": "^2.5.0" } }, "node_modules/@aws-sdk/client-cognito-identity": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.363.0.tgz", - "integrity": "sha512-tsJzgBSCpna85IVsuS7FBIK9wkSl7fs8TJ/QzapIgu8rKss0ySHVO6TeMVAdw2BvaQl7CxU9c3PosjhLWHu6KQ==", + "version": "3.414.0", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.363.0", - "@aws-sdk/credential-provider-node": "3.363.0", - "@aws-sdk/middleware-host-header": "3.363.0", - "@aws-sdk/middleware-logger": "3.363.0", - "@aws-sdk/middleware-recursion-detection": "3.363.0", - "@aws-sdk/middleware-signing": "3.363.0", - "@aws-sdk/middleware-user-agent": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-endpoints": "3.357.0", - "@aws-sdk/util-user-agent-browser": "3.363.0", - "@aws-sdk/util-user-agent-node": "3.363.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.1", - "@smithy/middleware-retry": "^1.0.2", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.2", - "@smithy/protocol-http": "^1.0.1", - "@smithy/smithy-client": "^1.0.3", - "@smithy/types": "^1.0.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.2", - "@smithy/util-utf8": "^1.0.1", + "@aws-sdk/client-sts": "3.414.0", + "@aws-sdk/credential-provider-node": "3.414.0", + "@aws-sdk/middleware-host-header": "3.413.0", + "@aws-sdk/middleware-logger": "3.413.0", + "@aws-sdk/middleware-recursion-detection": "3.413.0", + "@aws-sdk/middleware-signing": "3.413.0", + "@aws-sdk/middleware-user-agent": "3.413.0", + "@aws-sdk/region-config-resolver": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@aws-sdk/util-endpoints": "3.413.0", + "@aws-sdk/util-user-agent-browser": "3.413.0", + "@aws-sdk/util-user-agent-node": "3.413.0", + "@smithy/config-resolver": "^2.0.8", + "@smithy/fetch-http-handler": "^2.1.3", + "@smithy/hash-node": "^2.0.7", + "@smithy/invalid-dependency": "^2.0.7", + "@smithy/middleware-content-length": "^2.0.9", + "@smithy/middleware-endpoint": "^2.0.7", + "@smithy/middleware-retry": "^2.0.10", + "@smithy/middleware-serde": "^2.0.7", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.10", + "@smithy/node-http-handler": "^2.1.3", + "@smithy/protocol-http": "^3.0.3", + "@smithy/smithy-client": "^2.1.4", + "@smithy/types": "^2.3.1", + "@smithy/url-parser": "^2.0.7", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.8", + "@smithy/util-defaults-mode-node": "^2.0.10", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", "tslib": "^2.5.0" }, "engines": { @@ -421,333 +398,3384 @@ } }, "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "version": "3.413.0", + "license": "Apache-2.0", "dependencies": { + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-personalize/-/client-personalize-3.363.0.tgz", - "integrity": "sha512-SZ9QO3LLuIiAvT28F2Qo7ImbmAvedticrDMoFpvVQB2TJ/NR0wzu33udMqN4ZCy8bUY9eG1mhdo35YAhzVgjBQ==", + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/abort-controller": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.363.0", - "@aws-sdk/credential-provider-node": "3.363.0", - "@aws-sdk/middleware-host-header": "3.363.0", - "@aws-sdk/middleware-logger": "3.363.0", - "@aws-sdk/middleware-recursion-detection": "3.363.0", - "@aws-sdk/middleware-signing": "3.363.0", - "@aws-sdk/middleware-user-agent": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-endpoints": "3.357.0", - "@aws-sdk/util-user-agent-browser": "3.363.0", - "@aws-sdk/util-user-agent-node": "3.363.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.1", - "@smithy/middleware-retry": "^1.0.2", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.2", - "@smithy/protocol-http": "^1.0.1", - "@smithy/smithy-client": "^1.0.3", - "@smithy/types": "^1.0.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.2", - "@smithy/util-utf8": "^1.0.1", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/config-resolver": { + "version": "2.0.10", + "license": "Apache-2.0", "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/types": "^2.3.3", + "@smithy/util-config-provider": "^2.0.0", + "@smithy/util-middleware": "^2.0.2", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.370.0.tgz", - "integrity": "sha512-+b53hI+C+tIiE6OhIvaUXD5qC0zFrCWIu6EKT597W+4XzfFIZE0BGgolP8pC1lLDghPjCFSmAm9Efcb2a1sPvw==", + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/credential-provider-imds": { + "version": "2.0.12", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha1-browser": "3.0.0", - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.370.0", - "@aws-sdk/credential-provider-node": "3.370.0", - "@aws-sdk/hash-blob-browser": "3.370.0", - "@aws-sdk/hash-stream-node": "3.370.0", - "@aws-sdk/md5-js": "3.370.0", - "@aws-sdk/middleware-bucket-endpoint": "3.370.0", - "@aws-sdk/middleware-expect-continue": "3.370.0", - "@aws-sdk/middleware-flexible-checksums": "3.370.0", - "@aws-sdk/middleware-host-header": "3.370.0", - "@aws-sdk/middleware-location-constraint": "3.370.0", - "@aws-sdk/middleware-logger": "3.370.0", - "@aws-sdk/middleware-recursion-detection": "3.370.0", - "@aws-sdk/middleware-sdk-s3": "3.370.0", - "@aws-sdk/middleware-signing": "3.370.0", - "@aws-sdk/middleware-ssec": "3.370.0", - "@aws-sdk/middleware-user-agent": "3.370.0", - "@aws-sdk/signature-v4-multi-region": "3.370.0", - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-endpoints": "3.370.0", - "@aws-sdk/util-user-agent-browser": "3.370.0", - "@aws-sdk/util-user-agent-node": "3.370.0", - "@aws-sdk/xml-builder": "3.310.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/eventstream-serde-browser": "^1.0.1", - "@smithy/eventstream-serde-config-resolver": "^1.0.1", - "@smithy/eventstream-serde-node": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.2", - "@smithy/middleware-retry": "^1.0.3", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.2", - "@smithy/protocol-http": "^1.1.0", - "@smithy/smithy-client": "^1.0.3", - "@smithy/types": "^1.1.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.3", - "@smithy/util-stream": "^1.0.1", - "@smithy/util-utf8": "^1.0.1", - "@smithy/util-waiter": "^1.0.1", - "fast-xml-parser": "4.2.5", + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.370.0.tgz", - "integrity": "sha512-0Ty1iHuzNxMQtN7nahgkZr4Wcu1XvqGfrQniiGdKKif9jG/4elxsQPiydRuQpFqN6b+bg7wPP7crFP1uTxx2KQ==", + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/fetch-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/middleware-host-header": "3.370.0", - "@aws-sdk/middleware-logger": "3.370.0", - "@aws-sdk/middleware-recursion-detection": "3.370.0", - "@aws-sdk/middleware-user-agent": "3.370.0", - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-endpoints": "3.370.0", - "@aws-sdk/util-user-agent-browser": "3.370.0", - "@aws-sdk/util-user-agent-node": "3.370.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.2", - "@smithy/middleware-retry": "^1.0.3", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.2", - "@smithy/protocol-http": "^1.1.0", - "@smithy/smithy-client": "^1.0.3", - "@smithy/types": "^1.1.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.3", - "@smithy/util-utf8": "^1.0.1", + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.370.0.tgz", - "integrity": "sha512-jAYOO74lmVXylQylqkPrjLzxvUnMKw476JCUTvCO6Q8nv3LzCWd76Ihgv/m9Q4M2Tbqi1iP2roVK5bstsXzEjA==", + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/hash-node": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/middleware-host-header": "3.370.0", - "@aws-sdk/middleware-logger": "3.370.0", - "@aws-sdk/middleware-recursion-detection": "3.370.0", - "@aws-sdk/middleware-user-agent": "3.370.0", - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-endpoints": "3.370.0", - "@aws-sdk/util-user-agent-browser": "3.370.0", - "@aws-sdk/util-user-agent-node": "3.370.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.2", - "@smithy/middleware-retry": "^1.0.3", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.2", - "@smithy/protocol-http": "^1.1.0", - "@smithy/smithy-client": "^1.0.3", - "@smithy/types": "^1.1.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.3", - "@smithy/util-utf8": "^1.0.1", + "@smithy/types": "^2.3.3", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sts": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.370.0.tgz", - "integrity": "sha512-utFxOPWIzbN+3kc415Je2o4J72hOLNhgR2Gt5EnRSggC3yOnkC4GzauxG8n7n5gZGBX45eyubHyPOXLOIyoqQA==", + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/invalid-dependency": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/is-array-buffer": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/credential-provider-node": "3.370.0", - "@aws-sdk/middleware-host-header": "3.370.0", - "@aws-sdk/middleware-logger": "3.370.0", - "@aws-sdk/middleware-recursion-detection": "3.370.0", - "@aws-sdk/middleware-sdk-sts": "3.370.0", - "@aws-sdk/middleware-signing": "3.370.0", - "@aws-sdk/middleware-user-agent": "3.370.0", - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-endpoints": "3.370.0", - "@aws-sdk/util-user-agent-browser": "3.370.0", - "@aws-sdk/util-user-agent-node": "3.370.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.2", - "@smithy/middleware-retry": "^1.0.3", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.2", - "@smithy/protocol-http": "^1.1.0", - "@smithy/smithy-client": "^1.0.3", - "@smithy/types": "^1.1.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.3", - "@smithy/util-utf8": "^1.0.1", - "fast-xml-parser": "4.2.5", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-env": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.370.0.tgz", - "integrity": "sha512-raR3yP/4GGbKFRPP5hUBNkEmTnzxI9mEc2vJAJrcv4G4J4i/UP6ELiLInQ5eO2/VcV/CeKGZA3t7d1tsJ+jhCg==", + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/middleware-content-length": { + "version": "2.0.11", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/types": "^1.1.0", + "@smithy/protocol-http": "^3.0.5", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.370.0.tgz", - "integrity": "sha512-eJyapFKa4NrC9RfTgxlXnXfS9InG/QMEUPPVL+VhG7YS6nKqetC1digOYgivnEeu+XSKE0DJ7uZuXujN2Y7VAQ==", + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/middleware-endpoint": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "3.370.0", - "@aws-sdk/credential-provider-process": "3.370.0", - "@aws-sdk/credential-provider-sso": "3.370.0", - "@aws-sdk/credential-provider-web-identity": "3.370.0", - "@aws-sdk/types": "3.370.0", - "@smithy/credential-provider-imds": "^1.0.1", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", - "@smithy/types": "^1.1.0", + "@smithy/middleware-serde": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "@smithy/util-middleware": "^2.0.2", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-node": { + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/middleware-retry": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/protocol-http": "^3.0.5", + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-middleware": "^2.0.2", + "@smithy/util-retry": "^2.0.2", + "tslib": "^2.5.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/middleware-serde": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/middleware-stack": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/node-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^2.0.9", + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/querystring-builder": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "@smithy/util-uri-escape": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/service-error-classification": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/smithy-client": { + "version": "2.1.6", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-stack": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-stream": "^2.0.12", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-base64": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-body-length-browser": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-body-length-node": { + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-buffer-from": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-config-provider": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-defaults-mode-browser": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-defaults-mode-node": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/config-resolver": "^2.0.10", + "@smithy/credential-provider-imds": "^2.0.12", + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-hex-encoding": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-middleware": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-retry": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-stream": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/fetch-http-handler": "^2.1.5", + "@smithy/node-http-handler": "^2.1.5", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-hex-encoding": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-uri-escape": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-utf8": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/uuid": { + "version": "8.3.2", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@aws-sdk/client-personalize": { + "version": "3.414.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.414.0", + "@aws-sdk/credential-provider-node": "3.414.0", + "@aws-sdk/middleware-host-header": "3.413.0", + "@aws-sdk/middleware-logger": "3.413.0", + "@aws-sdk/middleware-recursion-detection": "3.413.0", + "@aws-sdk/middleware-signing": "3.413.0", + "@aws-sdk/middleware-user-agent": "3.413.0", + "@aws-sdk/region-config-resolver": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@aws-sdk/util-endpoints": "3.413.0", + "@aws-sdk/util-user-agent-browser": "3.413.0", + "@aws-sdk/util-user-agent-node": "3.413.0", + "@smithy/config-resolver": "^2.0.8", + "@smithy/fetch-http-handler": "^2.1.3", + "@smithy/hash-node": "^2.0.7", + "@smithy/invalid-dependency": "^2.0.7", + "@smithy/middleware-content-length": "^2.0.9", + "@smithy/middleware-endpoint": "^2.0.7", + "@smithy/middleware-retry": "^2.0.10", + "@smithy/middleware-serde": "^2.0.7", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.10", + "@smithy/node-http-handler": "^2.1.3", + "@smithy/protocol-http": "^3.0.3", + "@smithy/smithy-client": "^2.1.4", + "@smithy/types": "^2.3.1", + "@smithy/url-parser": "^2.0.7", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.8", + "@smithy/util-defaults-mode-node": "^2.0.10", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/abort-controller": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/config-resolver": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/types": "^2.3.3", + "@smithy/util-config-provider": "^2.0.0", + "@smithy/util-middleware": "^2.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/credential-provider-imds": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/fetch-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/hash-node": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/invalid-dependency": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/is-array-buffer": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/middleware-content-length": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^3.0.5", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/middleware-endpoint": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-serde": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "@smithy/util-middleware": "^2.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/middleware-retry": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/protocol-http": "^3.0.5", + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-middleware": "^2.0.2", + "@smithy/util-retry": "^2.0.2", + "tslib": "^2.5.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/middleware-serde": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/middleware-stack": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/node-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^2.0.9", + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/querystring-builder": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "@smithy/util-uri-escape": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/service-error-classification": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/smithy-client": { + "version": "2.1.6", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-stack": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-stream": "^2.0.12", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-base64": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-body-length-browser": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-body-length-node": { + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-buffer-from": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-config-provider": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-defaults-mode-browser": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-defaults-mode-node": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/config-resolver": "^2.0.10", + "@smithy/credential-provider-imds": "^2.0.12", + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-hex-encoding": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-middleware": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-retry": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-stream": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/fetch-http-handler": "^2.1.5", + "@smithy/node-http-handler": "^2.1.5", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-hex-encoding": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-uri-escape": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-utf8": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/uuid": { + "version": "8.3.2", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@aws-sdk/client-s3": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha1-browser": "3.0.0", + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.370.0", + "@aws-sdk/credential-provider-node": "3.370.0", + "@aws-sdk/hash-blob-browser": "3.370.0", + "@aws-sdk/hash-stream-node": "3.370.0", + "@aws-sdk/md5-js": "3.370.0", + "@aws-sdk/middleware-bucket-endpoint": "3.370.0", + "@aws-sdk/middleware-expect-continue": "3.370.0", + "@aws-sdk/middleware-flexible-checksums": "3.370.0", + "@aws-sdk/middleware-host-header": "3.370.0", + "@aws-sdk/middleware-location-constraint": "3.370.0", + "@aws-sdk/middleware-logger": "3.370.0", + "@aws-sdk/middleware-recursion-detection": "3.370.0", + "@aws-sdk/middleware-sdk-s3": "3.370.0", + "@aws-sdk/middleware-signing": "3.370.0", + "@aws-sdk/middleware-ssec": "3.370.0", + "@aws-sdk/middleware-user-agent": "3.370.0", + "@aws-sdk/signature-v4-multi-region": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-endpoints": "3.370.0", + "@aws-sdk/util-user-agent-browser": "3.370.0", + "@aws-sdk/util-user-agent-node": "3.370.0", + "@aws-sdk/xml-builder": "3.310.0", + "@smithy/config-resolver": "^1.0.1", + "@smithy/eventstream-serde-browser": "^1.0.1", + "@smithy/eventstream-serde-config-resolver": "^1.0.1", + "@smithy/eventstream-serde-node": "^1.0.1", + "@smithy/fetch-http-handler": "^1.0.1", + "@smithy/hash-node": "^1.0.1", + "@smithy/invalid-dependency": "^1.0.1", + "@smithy/middleware-content-length": "^1.0.1", + "@smithy/middleware-endpoint": "^1.0.2", + "@smithy/middleware-retry": "^1.0.3", + "@smithy/middleware-serde": "^1.0.1", + "@smithy/middleware-stack": "^1.0.1", + "@smithy/node-config-provider": "^1.0.1", + "@smithy/node-http-handler": "^1.0.2", + "@smithy/protocol-http": "^1.1.0", + "@smithy/smithy-client": "^1.0.3", + "@smithy/types": "^1.1.0", + "@smithy/url-parser": "^1.0.1", + "@smithy/util-base64": "^1.0.1", + "@smithy/util-body-length-browser": "^1.0.1", + "@smithy/util-body-length-node": "^1.0.1", + "@smithy/util-defaults-mode-browser": "^1.0.1", + "@smithy/util-defaults-mode-node": "^1.0.1", + "@smithy/util-retry": "^1.0.3", + "@smithy/util-stream": "^1.0.1", + "@smithy/util-utf8": "^1.0.1", + "@smithy/util-waiter": "^1.0.1", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.370.0", + "@aws-sdk/middleware-logger": "3.370.0", + "@aws-sdk/middleware-recursion-detection": "3.370.0", + "@aws-sdk/middleware-user-agent": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-endpoints": "3.370.0", + "@aws-sdk/util-user-agent-browser": "3.370.0", + "@aws-sdk/util-user-agent-node": "3.370.0", + "@smithy/config-resolver": "^1.0.1", + "@smithy/fetch-http-handler": "^1.0.1", + "@smithy/hash-node": "^1.0.1", + "@smithy/invalid-dependency": "^1.0.1", + "@smithy/middleware-content-length": "^1.0.1", + "@smithy/middleware-endpoint": "^1.0.2", + "@smithy/middleware-retry": "^1.0.3", + "@smithy/middleware-serde": "^1.0.1", + "@smithy/middleware-stack": "^1.0.1", + "@smithy/node-config-provider": "^1.0.1", + "@smithy/node-http-handler": "^1.0.2", + "@smithy/protocol-http": "^1.1.0", + "@smithy/smithy-client": "^1.0.3", + "@smithy/types": "^1.1.0", + "@smithy/url-parser": "^1.0.1", + "@smithy/util-base64": "^1.0.1", + "@smithy/util-body-length-browser": "^1.0.1", + "@smithy/util-body-length-node": "^1.0.1", + "@smithy/util-defaults-mode-browser": "^1.0.1", + "@smithy/util-defaults-mode-node": "^1.0.1", + "@smithy/util-retry": "^1.0.3", + "@smithy/util-utf8": "^1.0.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.370.0", + "@aws-sdk/middleware-logger": "3.370.0", + "@aws-sdk/middleware-recursion-detection": "3.370.0", + "@aws-sdk/middleware-user-agent": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-endpoints": "3.370.0", + "@aws-sdk/util-user-agent-browser": "3.370.0", + "@aws-sdk/util-user-agent-node": "3.370.0", + "@smithy/config-resolver": "^1.0.1", + "@smithy/fetch-http-handler": "^1.0.1", + "@smithy/hash-node": "^1.0.1", + "@smithy/invalid-dependency": "^1.0.1", + "@smithy/middleware-content-length": "^1.0.1", + "@smithy/middleware-endpoint": "^1.0.2", + "@smithy/middleware-retry": "^1.0.3", + "@smithy/middleware-serde": "^1.0.1", + "@smithy/middleware-stack": "^1.0.1", + "@smithy/node-config-provider": "^1.0.1", + "@smithy/node-http-handler": "^1.0.2", + "@smithy/protocol-http": "^1.1.0", + "@smithy/smithy-client": "^1.0.3", + "@smithy/types": "^1.1.0", + "@smithy/url-parser": "^1.0.1", + "@smithy/util-base64": "^1.0.1", + "@smithy/util-body-length-browser": "^1.0.1", + "@smithy/util-body-length-node": "^1.0.1", + "@smithy/util-defaults-mode-browser": "^1.0.1", + "@smithy/util-defaults-mode-node": "^1.0.1", + "@smithy/util-retry": "^1.0.3", + "@smithy/util-utf8": "^1.0.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sts": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/credential-provider-node": "3.370.0", + "@aws-sdk/middleware-host-header": "3.370.0", + "@aws-sdk/middleware-logger": "3.370.0", + "@aws-sdk/middleware-recursion-detection": "3.370.0", + "@aws-sdk/middleware-sdk-sts": "3.370.0", + "@aws-sdk/middleware-signing": "3.370.0", + "@aws-sdk/middleware-user-agent": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-endpoints": "3.370.0", + "@aws-sdk/util-user-agent-browser": "3.370.0", + "@aws-sdk/util-user-agent-node": "3.370.0", + "@smithy/config-resolver": "^1.0.1", + "@smithy/fetch-http-handler": "^1.0.1", + "@smithy/hash-node": "^1.0.1", + "@smithy/invalid-dependency": "^1.0.1", + "@smithy/middleware-content-length": "^1.0.1", + "@smithy/middleware-endpoint": "^1.0.2", + "@smithy/middleware-retry": "^1.0.3", + "@smithy/middleware-serde": "^1.0.1", + "@smithy/middleware-stack": "^1.0.1", + "@smithy/node-config-provider": "^1.0.1", + "@smithy/node-http-handler": "^1.0.2", + "@smithy/protocol-http": "^1.1.0", + "@smithy/smithy-client": "^1.0.3", + "@smithy/types": "^1.1.0", + "@smithy/url-parser": "^1.0.1", + "@smithy/util-base64": "^1.0.1", + "@smithy/util-body-length-browser": "^1.0.1", + "@smithy/util-body-length-node": "^1.0.1", + "@smithy/util-defaults-mode-browser": "^1.0.1", + "@smithy/util-defaults-mode-node": "^1.0.1", + "@smithy/util-retry": "^1.0.3", + "@smithy/util-utf8": "^1.0.1", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.370.0", + "@aws-sdk/credential-provider-process": "3.370.0", + "@aws-sdk/credential-provider-sso": "3.370.0", + "@aws-sdk/credential-provider-web-identity": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@smithy/credential-provider-imds": "^1.0.1", + "@smithy/property-provider": "^1.0.1", + "@smithy/shared-ini-file-loader": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.370.0", + "@aws-sdk/credential-provider-ini": "3.370.0", + "@aws-sdk/credential-provider-process": "3.370.0", + "@aws-sdk/credential-provider-sso": "3.370.0", + "@aws-sdk/credential-provider-web-identity": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@smithy/credential-provider-imds": "^1.0.1", + "@smithy/property-provider": "^1.0.1", + "@smithy/shared-ini-file-loader": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/shared-ini-file-loader": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-sso": "3.370.0", + "@aws-sdk/token-providers": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/shared-ini-file-loader": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/protocol-http": "^1.1.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-logger": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/protocol-http": "^1.1.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-sdk-sts": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/middleware-signing": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-signing": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/protocol-http": "^1.1.0", + "@smithy/signature-v4": "^1.0.1", + "@smithy/types": "^1.1.0", + "@smithy/util-middleware": "^1.0.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-endpoints": "3.370.0", + "@smithy/protocol-http": "^1.1.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/token-providers": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-sso-oidc": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/shared-ini-file-loader": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-endpoints": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/types": "^1.1.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/node-config-provider": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.414.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.413.0", + "@aws-sdk/middleware-logger": "3.413.0", + "@aws-sdk/middleware-recursion-detection": "3.413.0", + "@aws-sdk/middleware-user-agent": "3.413.0", + "@aws-sdk/region-config-resolver": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@aws-sdk/util-endpoints": "3.413.0", + "@aws-sdk/util-user-agent-browser": "3.413.0", + "@aws-sdk/util-user-agent-node": "3.413.0", + "@smithy/config-resolver": "^2.0.8", + "@smithy/fetch-http-handler": "^2.1.3", + "@smithy/hash-node": "^2.0.7", + "@smithy/invalid-dependency": "^2.0.7", + "@smithy/middleware-content-length": "^2.0.9", + "@smithy/middleware-endpoint": "^2.0.7", + "@smithy/middleware-retry": "^2.0.10", + "@smithy/middleware-serde": "^2.0.7", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.10", + "@smithy/node-http-handler": "^2.1.3", + "@smithy/protocol-http": "^3.0.3", + "@smithy/smithy-client": "^2.1.4", + "@smithy/types": "^2.3.1", + "@smithy/url-parser": "^2.0.7", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.8", + "@smithy/util-defaults-mode-node": "^2.0.10", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/abort-controller": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/config-resolver": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/types": "^2.3.3", + "@smithy/util-config-provider": "^2.0.0", + "@smithy/util-middleware": "^2.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/credential-provider-imds": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/fetch-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/hash-node": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/invalid-dependency": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/is-array-buffer": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/middleware-content-length": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^3.0.5", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/middleware-endpoint": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-serde": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "@smithy/util-middleware": "^2.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/middleware-retry": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/protocol-http": "^3.0.5", + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-middleware": "^2.0.2", + "@smithy/util-retry": "^2.0.2", + "tslib": "^2.5.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/middleware-serde": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/middleware-stack": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/node-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^2.0.9", + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/querystring-builder": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "@smithy/util-uri-escape": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/service-error-classification": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/smithy-client": { + "version": "2.1.6", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-stack": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-stream": "^2.0.12", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-base64": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-body-length-browser": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-body-length-node": { + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-buffer-from": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-config-provider": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-defaults-mode-browser": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-defaults-mode-node": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/config-resolver": "^2.0.10", + "@smithy/credential-provider-imds": "^2.0.12", + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-hex-encoding": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-middleware": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-retry": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-stream": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/fetch-http-handler": "^2.1.5", + "@smithy/node-http-handler": "^2.1.5", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-hex-encoding": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-uri-escape": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-utf8": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/uuid": { + "version": "8.3.2", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@aws-sdk/client-sts": { + "version": "3.414.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/credential-provider-node": "3.414.0", + "@aws-sdk/middleware-host-header": "3.413.0", + "@aws-sdk/middleware-logger": "3.413.0", + "@aws-sdk/middleware-recursion-detection": "3.413.0", + "@aws-sdk/middleware-sdk-sts": "3.413.0", + "@aws-sdk/middleware-signing": "3.413.0", + "@aws-sdk/middleware-user-agent": "3.413.0", + "@aws-sdk/region-config-resolver": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@aws-sdk/util-endpoints": "3.413.0", + "@aws-sdk/util-user-agent-browser": "3.413.0", + "@aws-sdk/util-user-agent-node": "3.413.0", + "@smithy/config-resolver": "^2.0.8", + "@smithy/fetch-http-handler": "^2.1.3", + "@smithy/hash-node": "^2.0.7", + "@smithy/invalid-dependency": "^2.0.7", + "@smithy/middleware-content-length": "^2.0.9", + "@smithy/middleware-endpoint": "^2.0.7", + "@smithy/middleware-retry": "^2.0.10", + "@smithy/middleware-serde": "^2.0.7", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.10", + "@smithy/node-http-handler": "^2.1.3", + "@smithy/protocol-http": "^3.0.3", + "@smithy/smithy-client": "^2.1.4", + "@smithy/types": "^2.3.1", + "@smithy/url-parser": "^2.0.7", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.8", + "@smithy/util-defaults-mode-node": "^2.0.10", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/abort-controller": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/config-resolver": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/types": "^2.3.3", + "@smithy/util-config-provider": "^2.0.0", + "@smithy/util-middleware": "^2.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/credential-provider-imds": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/fetch-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/hash-node": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/invalid-dependency": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/is-array-buffer": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/middleware-content-length": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^3.0.5", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/middleware-endpoint": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-serde": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "@smithy/util-middleware": "^2.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/middleware-retry": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/protocol-http": "^3.0.5", + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-middleware": "^2.0.2", + "@smithy/util-retry": "^2.0.2", + "tslib": "^2.5.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/middleware-serde": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/middleware-stack": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/node-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^2.0.9", + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/querystring-builder": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "@smithy/util-uri-escape": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/service-error-classification": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/smithy-client": { + "version": "2.1.6", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-stack": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-stream": "^2.0.12", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-base64": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-body-length-browser": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-body-length-node": { + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-buffer-from": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-config-provider": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-defaults-mode-browser": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-defaults-mode-node": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/config-resolver": "^2.0.10", + "@smithy/credential-provider-imds": "^2.0.12", + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-hex-encoding": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-middleware": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-retry": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-stream": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/fetch-http-handler": "^2.1.5", + "@smithy/node-http-handler": "^2.1.5", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-hex-encoding": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-uri-escape": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-utf8": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/uuid": { + "version": "8.3.2", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@aws-sdk/credential-provider-cognito-identity": { + "version": "3.414.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.414.0", + "@aws-sdk/types": "3.413.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-cognito-identity/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-cognito-identity/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-cognito-identity/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.413.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.414.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.413.0", + "@aws-sdk/credential-provider-process": "3.413.0", + "@aws-sdk/credential-provider-sso": "3.414.0", + "@aws-sdk/credential-provider-web-identity": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@smithy/credential-provider-imds": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.414.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.413.0", + "@aws-sdk/credential-provider-ini": "3.414.0", + "@aws-sdk/credential-provider-process": "3.413.0", + "@aws-sdk/credential-provider-sso": "3.414.0", + "@aws-sdk/credential-provider-web-identity": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/credential-provider-imds": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.413.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.414.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-sso": "3.414.0", + "@aws-sdk/token-providers": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.413.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers": { + "version": "3.414.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.414.0", + "@aws-sdk/client-sso": "3.414.0", + "@aws-sdk/client-sts": "3.414.0", + "@aws-sdk/credential-provider-cognito-identity": "3.414.0", + "@aws-sdk/credential-provider-env": "3.413.0", + "@aws-sdk/credential-provider-ini": "3.414.0", + "@aws-sdk/credential-provider-node": "3.414.0", + "@aws-sdk/credential-provider-process": "3.413.0", + "@aws-sdk/credential-provider-sso": "3.414.0", + "@aws-sdk/credential-provider-web-identity": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/credential-provider-imds": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/hash-blob-browser": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/chunked-blob-reader": "3.310.0", + "@aws-sdk/chunked-blob-reader-native": "3.310.0", + "@aws-sdk/types": "3.370.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/hash-stream-node": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-utf8": "3.310.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/is-array-buffer": { + "version": "3.310.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage": { + "version": "3.417.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^2.0.1", + "@smithy/middleware-endpoint": "^2.0.7", + "@smithy/smithy-client": "^2.1.4", + "buffer": "5.6.0", + "events": "3.3.0", + "stream-browserify": "3.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-s3": "^3.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/abort-controller": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/fetch-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/is-array-buffer": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/middleware-endpoint": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-serde": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "@smithy/util-middleware": "^2.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/middleware-serde": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/middleware-stack": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/node-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^2.0.9", + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/querystring-builder": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "@smithy/util-uri-escape": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/smithy-client": { + "version": "2.1.6", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-stack": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-stream": "^2.0.12", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/util-base64": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/util-buffer-from": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/util-hex-encoding": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/util-middleware": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/util-stream": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/fetch-http-handler": "^2.1.5", + "@smithy/node-http-handler": "^2.1.5", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-hex-encoding": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/util-uri-escape": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/util-utf8": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/md5-js": { "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.370.0.tgz", - "integrity": "sha512-gkFiotBFKE4Fcn8CzQnMeab9TAR06FEAD02T4ZRYW1xGrBJOowmje9dKqdwQFHSPgnWAP+8HoTA8iwbhTLvjNA==", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "3.370.0", - "@aws-sdk/credential-provider-ini": "3.370.0", - "@aws-sdk/credential-provider-process": "3.370.0", - "@aws-sdk/credential-provider-sso": "3.370.0", - "@aws-sdk/credential-provider-web-identity": "3.370.0", "@aws-sdk/types": "3.370.0", - "@smithy/credential-provider-imds": "^1.0.1", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", + "@aws-sdk/util-utf8": "3.310.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/middleware-bucket-endpoint": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-arn-parser": "3.310.0", + "@smithy/protocol-http": "^1.1.0", "@smithy/types": "^1.1.0", + "@smithy/util-config-provider": "^1.0.1", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-process": { + "node_modules/@aws-sdk/middleware-expect-continue": { "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.370.0.tgz", - "integrity": "sha512-0BKFFZmUO779Xdw3u7wWnoWhYA4zygxJbgGVSyjkOGBvdkbPSTTcdwT1KFkaQy2kOXYeZPl+usVVRXs+ph4ejg==", + "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.370.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", + "@smithy/protocol-http": "^1.1.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-flexible-checksums": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@aws-crypto/crc32c": "3.0.0", + "@aws-sdk/types": "3.370.0", + "@smithy/is-array-buffer": "^1.0.1", + "@smithy/protocol-http": "^1.1.0", + "@smithy/types": "^1.1.0", + "@smithy/util-utf8": "^1.0.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.413.0", + "@smithy/protocol-http": "^3.0.3", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-location-constraint": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.413.0", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.413.0", + "@smithy/protocol-http": "^3.0.3", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-arn-parser": "3.310.0", + "@smithy/protocol-http": "^1.1.0", "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, @@ -755,286 +3783,240 @@ "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.370.0.tgz", - "integrity": "sha512-PFroYm5hcPSfC/jkZnCI34QFL3I7WVKveVk6/F3fud/cnP8hp6YjA9NiTNbqdFSzsyoiN/+e5fZgNKih8vVPTA==", + "node_modules/@aws-sdk/middleware-sdk-sts": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/middleware-signing": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-sts/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-sts/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.413.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^3.0.3", + "@smithy/signature-v4": "^2.0.0", + "@smithy/types": "^2.3.1", + "@smithy/util-middleware": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.370.0", - "@aws-sdk/token-providers": "3.370.0", - "@aws-sdk/types": "3.370.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.370.0.tgz", - "integrity": "sha512-CFaBMLRudwhjv1sDzybNV93IaT85IwS+L8Wq6VRMa0mro1q9rrWsIZO811eF+k0NEPfgU1dLH+8Vc2qhw4SARQ==", + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/eventstream-codec": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@smithy/types": "^2.3.3", + "@smithy/util-hex-encoding": "^2.0.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/is-array-buffer": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-host-header": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.370.0.tgz", - "integrity": "sha512-CPXOm/TnOFC7KyXcJglICC7OiA7Kj6mT3ChvEijr56TFOueNHvJdV4aNIFEQy0vGHOWtY12qOWLNto/wYR1BAQ==", + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-logger": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.370.0.tgz", - "integrity": "sha512-cQMq9SaZ/ORmTJPCT6VzMML7OxFdQzNkhMAgKpTDl+tdPWynlHF29E5xGoSzROnThHlQPCjogU0NZ8AxI0SWPA==", + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.370.0.tgz", - "integrity": "sha512-L7ZF/w0lAAY/GK1khT8VdoU0XB7nWHk51rl/ecAg64J70dHnMOAg8n+5FZ9fBu/xH1FwUlHOkwlodJOgzLJjtg==", - "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/signature-v4": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/eventstream-codec": "^2.0.9", + "@smithy/is-array-buffer": "^2.0.0", + "@smithy/types": "^2.3.3", + "@smithy/util-hex-encoding": "^2.0.0", + "@smithy/util-middleware": "^2.0.2", + "@smithy/util-uri-escape": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.370.0.tgz", - "integrity": "sha512-ykbsoVy0AJtVbuhAlTAMcaz/tCE3pT8nAp0L7CQQxSoanRCvOux7au0KwMIQVhxgnYid4dWVF6d00SkqU5MXRA==", + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-signing": "3.370.0", - "@aws-sdk/types": "3.370.0", - "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-signing": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.370.0.tgz", - "integrity": "sha512-Dwr/RTCWOXdm394wCwICGT2VNOTMRe4IGPsBRJAsM24pm+EEqQzSS3Xu/U/zF4exuxqpMta4wec4QpSarPNTxA==", + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/util-buffer-from": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/protocol-http": "^1.1.0", - "@smithy/signature-v4": "^1.0.1", - "@smithy/types": "^1.1.0", - "@smithy/util-middleware": "^1.0.1", + "@smithy/is-array-buffer": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.370.0.tgz", - "integrity": "sha512-2+3SB6MtMAq1+gVXhw0Y3ONXuljorh6ijnxgTpv+uQnBW5jHCUiAS8WDYiDEm7i9euJPbvJfM8WUrSMDMU6Cog==", + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/util-hex-encoding": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-endpoints": "3.370.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/token-providers": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.370.0.tgz", - "integrity": "sha512-EyR2ZYr+lJeRiZU2/eLR+mlYU9RXLQvNyGFSAekJKgN13Rpq/h0syzXVFLP/RSod/oZenh/fhVZ2HwlZxuGBtQ==", + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/util-middleware": { + "version": "2.0.2", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso-oidc": "3.370.0", - "@aws-sdk/types": "3.370.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-endpoints": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.370.0.tgz", - "integrity": "sha512-5ltVAnM79nRlywwzZN5i8Jp4tk245OCGkKwwXbnDU+gq7zT3CIOsct1wNZvmpfZEPGt/bv7/NyRcjP+7XNsX/g==", + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/util-uri-escape": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.370.0.tgz", - "integrity": "sha512-028LxYZMQ0DANKhW+AKFQslkScZUeYlPmSphrCIXgdIItRZh6ZJHGzE7J/jDsEntZOrZJsjI4z0zZ5W2idj04w==", + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/util-utf8": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/types": "^1.1.0", - "bowser": "^2.11.0", + "@smithy/util-buffer-from": "^2.0.0", "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-user-agent-node": { + "node_modules/@aws-sdk/middleware-ssec": { "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.370.0.tgz", - "integrity": "sha512-33vxZUp8vxTT/DGYIR3PivQm07sSRGWI+4fCv63Rt7Q++fO24E0kQtmVAlikRY810I10poD6rwILVtITtFSzkg==", + "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.370.0", - "@smithy/node-config-provider": "^1.0.1", "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" - }, - "peerDependencies": { - "aws-crt": ">=1.0.0" - }, - "peerDependenciesMeta": { - "aws-crt": { - "optional": true - } } }, - "node_modules/@aws-sdk/client-sso": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.363.0.tgz", - "integrity": "sha512-PZ+HfKSgS4hlMnJzG+Ev8/mgHd/b/ETlJWPSWjC/f2NwVoBQkBnqHjdyEx7QjF6nksJozcVh5Q+kkYLKc/QwBQ==", + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.413.0", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/middleware-host-header": "3.363.0", - "@aws-sdk/middleware-logger": "3.363.0", - "@aws-sdk/middleware-recursion-detection": "3.363.0", - "@aws-sdk/middleware-user-agent": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-endpoints": "3.357.0", - "@aws-sdk/util-user-agent-browser": "3.363.0", - "@aws-sdk/util-user-agent-node": "3.363.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.1", - "@smithy/middleware-retry": "^1.0.2", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.2", - "@smithy/protocol-http": "^1.0.1", - "@smithy/smithy-client": "^1.0.3", - "@smithy/types": "^1.0.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.2", - "@smithy/util-utf8": "^1.0.1", + "@aws-sdk/types": "3.413.0", + "@aws-sdk/util-endpoints": "3.413.0", + "@smithy/protocol-http": "^3.0.3", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.363.0.tgz", - "integrity": "sha512-V3Ebiq/zNtDS/O92HUWGBa7MY59RYSsqWd+E0XrXv6VYTA00RlMTbNcseivNgp2UghOgB9a20Nkz6EqAeIN+RQ==", + "node_modules/@aws-sdk/middleware-user-agent/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/middleware-host-header": "3.363.0", - "@aws-sdk/middleware-logger": "3.363.0", - "@aws-sdk/middleware-recursion-detection": "3.363.0", - "@aws-sdk/middleware-user-agent": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-endpoints": "3.357.0", - "@aws-sdk/util-user-agent-browser": "3.363.0", - "@aws-sdk/util-user-agent-node": "3.363.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.1", - "@smithy/middleware-retry": "^1.0.2", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.2", - "@smithy/protocol-http": "^1.0.1", - "@smithy/smithy-client": "^1.0.3", - "@smithy/types": "^1.0.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.2", - "@smithy/util-utf8": "^1.0.1", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-sso-oidc/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/middleware-user-agent/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", "dependencies": { + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/middleware-user-agent/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1042,108 +4024,68 @@ "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-sts": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.363.0.tgz", - "integrity": "sha512-0jj14WvBPJQ8xr72cL0mhlmQ90tF0O0wqXwSbtog6PsC8+KDE6Yf+WsxsumyI8E5O8u3eYijBL+KdqG07F/y/w==", + "node_modules/@aws-sdk/region-config-resolver": { + "version": "3.413.0", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/credential-provider-node": "3.363.0", - "@aws-sdk/middleware-host-header": "3.363.0", - "@aws-sdk/middleware-logger": "3.363.0", - "@aws-sdk/middleware-recursion-detection": "3.363.0", - "@aws-sdk/middleware-sdk-sts": "3.363.0", - "@aws-sdk/middleware-signing": "3.363.0", - "@aws-sdk/middleware-user-agent": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-endpoints": "3.357.0", - "@aws-sdk/util-user-agent-browser": "3.363.0", - "@aws-sdk/util-user-agent-node": "3.363.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.1", - "@smithy/middleware-retry": "^1.0.1", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.1", - "@smithy/protocol-http": "^1.1.0", - "@smithy/smithy-client": "^1.0.2", - "@smithy/types": "^1.1.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.1", - "@smithy/util-utf8": "^1.0.1", - "fast-xml-parser": "4.2.5", + "@smithy/node-config-provider": "^2.0.10", + "@smithy/types": "^2.3.1", + "@smithy/util-config-provider": "^2.0.0", + "@smithy/util-middleware": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-cognito-identity": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.363.0.tgz", - "integrity": "sha512-5x42JvqEsBUrm6/qdf0WWe4mlmJjPItxamQhRjuOzeQD/BxsA2W5VS/7n0Ws0e27DNhlnUErcIJd+bBy6j1fqA==", + "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-cognito-identity": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-cognito-identity/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", "dependencies": { + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.363.0.tgz", - "integrity": "sha512-VAQ3zITT2Q0acht0HezouYnMFKZ2vIOa20X4zQA3WI0HfaP4D6ga6KaenbDcb/4VFiqfqiRHfdyXHP0ThcDRMA==", + "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-env/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/util-config-provider": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1151,417 +4093,407 @@ "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.363.0.tgz", - "integrity": "sha512-ZYN+INoqyX5FVC3rqUxB6O8nOWkr0gHRRBm1suoOlmuFJ/WSlW/uUGthRBY5x1AQQnBF8cpdlxZzGHd41lFVNw==", - "dependencies": { - "@aws-sdk/credential-provider-env": "3.363.0", - "@aws-sdk/credential-provider-process": "3.363.0", - "@aws-sdk/credential-provider-sso": "3.363.0", - "@aws-sdk/credential-provider-web-identity": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@smithy/credential-provider-imds": "^1.0.1", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", - "@smithy/types": "^1.1.0", + "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/util-middleware": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-ini/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.370.0", + "license": "Apache-2.0", "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/protocol-http": "^1.1.0", + "@smithy/signature-v4": "^1.0.1", + "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" + }, + "peerDependencies": { + "@aws-sdk/signature-v4-crt": "^3.118.0" + }, + "peerDependenciesMeta": { + "@aws-sdk/signature-v4-crt": { + "optional": true + } } }, - "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.363.0.tgz", - "integrity": "sha512-C1qXFIN2yMxD6pGgug0vR1UhScOki6VqdzuBHzXZAGu7MOjvgHNdscEcb3CpWnITHaPL2ztkiw75T1sZ7oIgQg==", - "dependencies": { - "@aws-sdk/credential-provider-env": "3.363.0", - "@aws-sdk/credential-provider-ini": "3.363.0", - "@aws-sdk/credential-provider-process": "3.363.0", - "@aws-sdk/credential-provider-sso": "3.363.0", - "@aws-sdk/credential-provider-web-identity": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@smithy/credential-provider-imds": "^1.0.1", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", - "@smithy/types": "^1.1.0", + "node_modules/@aws-sdk/token-providers": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.413.0", + "@aws-sdk/middleware-logger": "3.413.0", + "@aws-sdk/middleware-recursion-detection": "3.413.0", + "@aws-sdk/middleware-user-agent": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@aws-sdk/util-endpoints": "3.413.0", + "@aws-sdk/util-user-agent-browser": "3.413.0", + "@aws-sdk/util-user-agent-node": "3.413.0", + "@smithy/config-resolver": "^2.0.8", + "@smithy/fetch-http-handler": "^2.1.3", + "@smithy/hash-node": "^2.0.7", + "@smithy/invalid-dependency": "^2.0.7", + "@smithy/middleware-content-length": "^2.0.9", + "@smithy/middleware-endpoint": "^2.0.7", + "@smithy/middleware-retry": "^2.0.10", + "@smithy/middleware-serde": "^2.0.7", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.10", + "@smithy/node-http-handler": "^2.1.3", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^3.0.3", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/smithy-client": "^2.1.4", + "@smithy/types": "^2.3.1", + "@smithy/url-parser": "^2.0.7", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.8", + "@smithy/util-defaults-mode-node": "^2.0.10", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", "dependencies": { + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.363.0.tgz", - "integrity": "sha512-fOKAINU7Rtj2T8pP13GdCt+u0Ml3gYynp8ki+1jMZIQ+Ju/MdDOqZpKMFKicMn3Z1ttUOgqr+grUdus6z8ceBQ==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/abort-controller": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-process/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/config-resolver": { + "version": "2.0.10", + "license": "Apache-2.0", "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/types": "^2.3.3", + "@smithy/util-config-provider": "^2.0.0", + "@smithy/util-middleware": "^2.0.2", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.363.0.tgz", - "integrity": "sha512-5RUZ5oM0lwZSo3EehT0dXggOjgtxFogpT3cZvoLGtIwrPBvm8jOQPXQUlaqCj10ThF1sYltEyukz/ovtDwYGew==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/credential-provider-imds": { + "version": "2.0.12", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.363.0", - "@aws-sdk/token-providers": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", - "@smithy/types": "^1.1.0", + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/fetch-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", "dependencies": { + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.363.0.tgz", - "integrity": "sha512-Z6w7fjgy79pAax580wdixbStQw10xfyZ+hOYLcPudoYFKjoNx0NQBejg5SwBzCF/HQL23Ksm9kDfbXDX9fkPhA==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/hash-node": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.3", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-web-identity/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/invalid-dependency": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-providers": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.363.0.tgz", - "integrity": "sha512-hVa1DdYasnLud2EKjDAlDHiV/+H/Zq52chHU00c/R8XwPu1s0kZX3NMmlt0D2HhYqC1mUwtdmE58Jra2POviQQ==", - "dependencies": { - "@aws-sdk/client-cognito-identity": "3.363.0", - "@aws-sdk/client-sso": "3.363.0", - "@aws-sdk/client-sts": "3.363.0", - "@aws-sdk/credential-provider-cognito-identity": "3.363.0", - "@aws-sdk/credential-provider-env": "3.363.0", - "@aws-sdk/credential-provider-ini": "3.363.0", - "@aws-sdk/credential-provider-node": "3.363.0", - "@aws-sdk/credential-provider-process": "3.363.0", - "@aws-sdk/credential-provider-sso": "3.363.0", - "@aws-sdk/credential-provider-web-identity": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@smithy/credential-provider-imds": "^1.0.1", - "@smithy/property-provider": "^1.0.1", - "@smithy/types": "^1.1.0", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/is-array-buffer": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/middleware-content-length": { + "version": "2.0.11", + "license": "Apache-2.0", "dependencies": { + "@smithy/protocol-http": "^3.0.5", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/hash-blob-browser": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.370.0.tgz", - "integrity": "sha512-DyStaznfloyF9jN3KvG6puOAjt25alXoBNeHBF2FyLlEEbrOqUmso39JB5LVAw2/KB4UmCNsbAXFb6WktX/yHQ==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/middleware-endpoint": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/chunked-blob-reader": "3.310.0", - "@aws-sdk/chunked-blob-reader-native": "3.310.0", - "@aws-sdk/types": "3.370.0", + "@smithy/middleware-serde": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "@smithy/util-middleware": "^2.0.2", "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/hash-stream-node": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.370.0.tgz", - "integrity": "sha512-ExsbBiIMiL9AN1VpWlD8+xaO5s0cXUZJC2UONiQbgMb1jz7Wq9fa1GmKUDyaGXOuQTT7DDhAmalb9fIpauZKuA==", - "dependencies": { - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-utf8": "3.310.0", - "tslib": "^2.5.0" + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/middleware-retry": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/protocol-http": "^3.0.5", + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-middleware": "^2.0.2", + "@smithy/util-retry": "^2.0.2", + "tslib": "^2.5.0", + "uuid": "^8.3.2" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/is-array-buffer": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.310.0.tgz", - "integrity": "sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/middleware-serde": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/lib-storage": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.370.0.tgz", - "integrity": "sha512-vUdvd8jvusl81A0OdCz3y2E7Nhqwa57cxJviK6P262zqL2Ge5WlfR9djjv78sqdclvm7iXTxj7o1djMu1aScNg==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/middleware-stack": { + "version": "2.0.2", + "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.2", - "@smithy/smithy-client": "^1.0.3", - "buffer": "5.6.0", - "events": "3.3.0", - "stream-browserify": "3.0.0", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" - }, - "peerDependencies": { - "@aws-sdk/client-s3": "^3.0.0" } }, - "node_modules/@aws-sdk/md5-js": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.370.0.tgz", - "integrity": "sha512-wch3+hiRdFGsu5E+w3WU9qmumQErKshtgetd6wMgFYm2MPSksFU58rM/aiwiWRA6knpcaShKaPKMmGnuX3HwhQ==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-utf8": "3.310.0", + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.370.0.tgz", - "integrity": "sha512-B36+fOeJVO0D9cjR92Ob6Ki2FTzyTQ/uKk8w+xtur6W6zYVOPU4IQNpNZvN3Ykt4jitR2uUnVSlBb3sXHHhdFA==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/node-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-arn-parser": "3.310.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", - "@smithy/util-config-provider": "^1.0.1", + "@smithy/abort-controller": "^2.0.9", + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.370.0.tgz", - "integrity": "sha512-OlFIpXa53obLryHyrqedE2Cp8lp2k+1Vjd++hlZFDFJncRlWZMxoXSyl6shQPqhIiGnNW4vt7tG5xE4jg4NAvw==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.370.0.tgz", - "integrity": "sha512-62fyW4hZxppvkQKSXdkzjHQ95dXyVCuL18Sfnlciy9pr9f/t5w6LhZIxsNIW+Ge9mbgc661SVRKTwxlZj6FuLQ==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/crc32": "3.0.0", - "@aws-crypto/crc32c": "3.0.0", - "@aws-sdk/types": "3.370.0", - "@smithy/is-array-buffer": "^1.0.1", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", - "@smithy/util-utf8": "^1.0.1", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.363.0.tgz", - "integrity": "sha512-FobpclDCf5Y1ueyJDmb9MqguAdPssNMlnqWQpujhYVABq69KHu73fSCWSauFPUrw7YOpV8kG1uagDF0POSxHzA==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/querystring-builder": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.3", + "@smithy/util-uri-escape": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-host-header/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.370.0.tgz", - "integrity": "sha512-NlDZEbBOF1IN7svUTcjbLodkUctt9zsfDI8+DqNlklRs5lsPb91WYvahOfjFO/EvACixa+a5d3cCumMCaIq4Cw==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/service-error-classification": { + "version": "2.0.2", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/types": "^1.1.0", - "tslib": "^2.5.0" + "@smithy/types": "^2.3.3" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-logger": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.363.0.tgz", - "integrity": "sha512-SSGgthScYnFGTOw8EzbkvquqweFmvn7uJihkpFekbtBNGC/jGOGO+8ziHjTQ8t/iI/YKubEwv+LMi0f77HKSEg==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-logger/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/smithy-client": { + "version": "2.1.6", + "license": "Apache-2.0", "dependencies": { + "@smithy/middleware-stack": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-stream": "^2.0.12", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.363.0.tgz", - "integrity": "sha512-MWD/57QgI/N7fG8rtzDTUdSqNpYohQfgj9XCFAoVeI/bU4usrkOrew43L4smJG4XrDxlNT8lSJlDtd64tuiUZA==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-recursion-detection/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-base64": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.370.0.tgz", - "integrity": "sha512-DPYXtveWBDS5MzSHWTThg2KkLaOzZkCgPejjEuw3yl4ljsHawDs/ZIVCtmWXlBIS2lLCaBMpCV+t9psuJ/6/zQ==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-body-length-browser": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-body-length-node": { + "version": "2.1.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-arn-parser": "3.310.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.363.0.tgz", - "integrity": "sha512-1yy2Ac50FO8BrODaw5bPWvVrRhaVLqXTFH6iHB+dJLPUkwtY5zLM3Mp+9Ilm7kME+r7oIB1wuO6ZB1Lf4ZszIw==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-buffer-from": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-signing": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@smithy/types": "^1.1.0", + "@smithy/is-array-buffer": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-sdk-sts/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-config-provider": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1569,127 +4501,117 @@ "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-signing": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.363.0.tgz", - "integrity": "sha512-/7qia715pt9JKYIPDGu22WmdZxD8cfF/5xB+1kmILg7ZtjO0pPuTaCNJ7xiIuFd7Dn7JXp5lop08anX/GOhNRQ==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-defaults-mode-browser": { + "version": "2.0.10", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/protocol-http": "^1.1.0", - "@smithy/signature-v4": "^1.0.1", - "@smithy/types": "^1.1.0", - "@smithy/util-middleware": "^1.0.1", + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "bowser": "^2.11.0", "tslib": "^2.5.0" }, "engines": { - "node": ">=14.0.0" + "node": ">= 10.0.0" } }, - "node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", - "dependencies": { + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-defaults-mode-node": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/config-resolver": "^2.0.10", + "@smithy/credential-provider-imds": "^2.0.12", + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { - "node": ">=14.0.0" + "node": ">= 10.0.0" } }, - "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.370.0.tgz", - "integrity": "sha512-NIosfLS7mxCNdGYnuy76W9qP3f3YWVTusUA+uv+s6rnwG+Z2UheXCf1wpnJKzxORA8pioSP7ylZ8w2A0reCgYQ==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-hex-encoding": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.363.0.tgz", - "integrity": "sha512-ri8YaQvXP6odteVTMfxPqFR26Q0h9ejtqhUDv47P34FaKXedEM4nC6ix6o+5FEYj6l8syGyktftZ5O70NoEhug==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-middleware": { + "version": "2.0.2", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-endpoints": "3.357.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-user-agent/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-retry": { + "version": "2.0.2", + "license": "Apache-2.0", "dependencies": { + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { - "node": ">=14.0.0" + "node": ">= 14.0.0" } }, - "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.370.0.tgz", - "integrity": "sha512-Q3NQopPDnHbJXMhtYl0Mfy5U2o76K6tzhdnYRcrYImY0ze/zOkCQI7KPC4588PuyvAXCdQ02cmCPPjYD55UeNg==", - "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/signature-v4": "^1.0.1", - "@smithy/types": "^1.1.0", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-stream": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/fetch-http-handler": "^2.1.5", + "@smithy/node-http-handler": "^2.1.5", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-hex-encoding": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" - }, - "peerDependencies": { - "@aws-sdk/signature-v4-crt": "^3.118.0" - }, - "peerDependenciesMeta": { - "@aws-sdk/signature-v4-crt": { - "optional": true - } } }, - "node_modules/@aws-sdk/token-providers": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.363.0.tgz", - "integrity": "sha512-6+0aJ1zugNgsMmhTtW2LBWxOVSaXCUk2q3xyTchSXkNzallYaRiZMRkieW+pKNntnu0g5H1T0zyfCO0tbXwxEA==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-uri-escape": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso-oidc": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", - "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-utf8": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, + "node_modules/@aws-sdk/token-providers/node_modules/uuid": { + "version": "8.3.2", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@aws-sdk/types": { "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.370.0.tgz", - "integrity": "sha512-8PGMKklSkRKjunFhzM2y5Jm0H2TBu7YRNISdYzXLUHKSP9zlMEYagseKVdmox0zKHf1LXVNuSlUV2b6SRrieCQ==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -1700,8 +4622,7 @@ }, "node_modules/@aws-sdk/util-arn-parser": { "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.310.0.tgz", - "integrity": "sha512-jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1711,8 +4632,7 @@ }, "node_modules/@aws-sdk/util-base64": { "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.310.0.tgz", - "integrity": "sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg==", + "license": "Apache-2.0", "dependencies": { "@aws-sdk/util-buffer-from": "3.310.0", "tslib": "^2.5.0" @@ -1723,8 +4643,7 @@ }, "node_modules/@aws-sdk/util-buffer-from": { "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.310.0.tgz", - "integrity": "sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw==", + "license": "Apache-2.0", "dependencies": { "@aws-sdk/is-array-buffer": "3.310.0", "tslib": "^2.5.0" @@ -1734,11 +4653,10 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.357.0.tgz", - "integrity": "sha512-XHKyS5JClT9su9hDif715jpZiWHQF9gKZXER8tW0gOizU3R9cyWc9EsJ2BRhFNhi7nt/JF/CLUEc5qDx3ETbUw==", + "version": "3.413.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", + "@aws-sdk/types": "3.413.0", "tslib": "^2.5.0" }, "engines": { @@ -1746,9 +4664,19 @@ } }, "node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-endpoints/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1758,8 +4686,7 @@ }, "node_modules/@aws-sdk/util-locate-window": { "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz", - "integrity": "sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1768,20 +4695,29 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.363.0.tgz", - "integrity": "sha512-fk9ymBUIYbxiGm99Cn+kAAXmvMCWTf/cHAcB79oCXV4ELXdPa9lN5xQhZRFNxLUeXG4OAMEuCAUUuZEj8Fnc1Q==", + "version": "3.413.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/types": "^1.1.0", + "@aws-sdk/types": "3.413.0", + "@smithy/types": "^2.3.1", "bowser": "^2.11.0", "tslib": "^2.5.0" } }, "node_modules/@aws-sdk/util-user-agent-browser/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-browser/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1790,13 +4726,12 @@ } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.363.0.tgz", - "integrity": "sha512-Fli/dvgGA9hdnQUrYb1//wNSFlK2jAfdJcfNXA6SeBYzSeH5pVGYF4kXF0FCdnMA3Fef+Zn1zAP/hw9v8VJHWQ==", + "version": "3.413.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/types": "^1.1.0", + "@aws-sdk/types": "3.413.0", + "@smithy/node-config-provider": "^2.0.10", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { @@ -1812,9 +4747,54 @@ } }, "node_modules/@aws-sdk/util-user-agent-node/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-node/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-node/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-node/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-node/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1824,8 +4804,7 @@ }, "node_modules/@aws-sdk/util-utf8": { "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.310.0.tgz", - "integrity": "sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA==", + "license": "Apache-2.0", "dependencies": { "@aws-sdk/util-buffer-from": "3.310.0", "tslib": "^2.5.0" @@ -1836,16 +4815,14 @@ }, "node_modules/@aws-sdk/util-utf8-browser": { "version": "3.259.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", - "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.3.1" } }, "node_modules/@aws-sdk/xml-builder": { "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.310.0.tgz", - "integrity": "sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1854,30 +4831,85 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dependencies": { - "@babel/highlight": "^7.22.5" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/compat-data": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.6.tgz", - "integrity": "sha512-29tfsWTq2Ftu7MXmimyC0C5FDZv5DYxOZkh3XD3+QW4V/BYuv/LyEsjj3c0hqedEaDt6DBfDvexMKU8YevdqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.6.tgz", - "integrity": "sha512-HPIyDa6n+HKw5dEuway3vVAhBboYCtREBMp+IWeseZy6TFtzn6MHkCH2KKYUOC/vKKwgSMHQW4htBOrmuRPXfw==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.22.5", @@ -1904,12 +4936,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", - "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -1920,9 +4952,8 @@ }, "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, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1934,9 +4965,8 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.6.tgz", - "integrity": "sha512-534sYEqWD9VfUm3IPn2SLcH4Q3P86XL+QvqdC7ZsFrzyyPF3T4XGiVghF6PTYNdWg6pXuoqXxNQAhbYeEInTzA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", "@babel/helper-validator-option": "^7.22.5", @@ -1952,22 +4982,22 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -1975,9 +5005,8 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -1987,9 +5016,8 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -1999,9 +5027,8 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", - "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-module-imports": "^7.22.5", @@ -2018,18 +5045,16 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -2039,9 +5064,8 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -2051,35 +5075,32 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", - "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.22.5", "@babel/traverse": "^7.22.6", @@ -2090,12 +5111,12 @@ } }, "node_modules/@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -2159,9 +5180,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.6.tgz", - "integrity": "sha512-EIQu22vNkceq3LbjAq7knDf/UmtI2qbcNI8GRBlijez6TpQLvSodJPYfydQmNA5buwkxxxa/PVI44jjYZ+/cLw==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -2172,9 +5193,8 @@ }, "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2184,9 +5204,8 @@ }, "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2196,9 +5215,8 @@ }, "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -2208,9 +5226,8 @@ }, "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -2220,9 +5237,8 @@ }, "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2232,9 +5248,8 @@ }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -2247,9 +5262,8 @@ }, "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -2259,9 +5273,8 @@ }, "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2271,9 +5284,8 @@ }, "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -2283,9 +5295,8 @@ }, "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2295,9 +5306,8 @@ }, "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2307,9 +5317,8 @@ }, "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2319,9 +5328,8 @@ }, "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -2334,9 +5342,8 @@ }, "node_modules/@babel/plugin-syntax-typescript": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -2348,33 +5355,33 @@ } }, "node_modules/@babel/template": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.6.tgz", - "integrity": "sha512-53CijMvKlLIDlOTrdWiHileRddlIiwUIyCKqYa7lYnnPldXCG5dUSN38uT0cA6i7rHWNKJLH0VU/Kxdr1GzB3w==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.6", - "@babel/types": "^7.22.5", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2384,21 +5391,20 @@ }, "node_modules/@babel/traverse/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, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2407,22 +5413,19 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/@bugsnag/browser": { "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.20.2.tgz", - "integrity": "sha512-4J4s53ZpYr3hHA+QjxUjOI6U+A8+XuUVH45UshE87Jp2Y4mV8ML2DovejqJS8J8yjdbnh2z1Wtg/v3WUNt4ayQ==", + "license": "MIT", "dependencies": { "@bugsnag/core": "^7.19.0" } }, "node_modules/@bugsnag/core": { "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@bugsnag/core/-/core-7.19.0.tgz", - "integrity": "sha512-2KGwdaLD9PhR7Wk7xPi3jGuGsKTatc/28U4TOZIDU3CgC2QhGjubwiXSECel5gwxhZ3jACKcMKSV2ovHhv1NrA==", + "license": "MIT", "dependencies": { "@bugsnag/cuid": "^3.0.0", "@bugsnag/safe-json-stringify": "^6.0.0", @@ -2433,13 +5436,11 @@ }, "node_modules/@bugsnag/cuid": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@bugsnag/cuid/-/cuid-3.0.2.tgz", - "integrity": "sha512-cIwzC93r3PQ/INeuwtZwkZIG2K8WWN0rRLZQhu+mr48Ay+i6sEki4GYfTsflse7hZ1BeDWrNb/Q9vgY3B31xHQ==" + "license": "MIT" }, "node_modules/@bugsnag/js": { "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@bugsnag/js/-/js-7.20.2.tgz", - "integrity": "sha512-Q08k0h0h6NFwFGkFmib39Uln2WpvJdqT1EGF1JlyYiGW03Y+VopVb9r37pZrRrN9IY08mxaIEO8la5xeaWAs6A==", + "license": "MIT", "dependencies": { "@bugsnag/browser": "^7.20.2", "@bugsnag/node": "^7.19.0" @@ -2447,8 +5448,7 @@ }, "node_modules/@bugsnag/node": { "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@bugsnag/node/-/node-7.19.0.tgz", - "integrity": "sha512-c4snyxx5d/fsMogmgehFBGc//daH6+4XCplia4zrEQYltjaQ+l8ud0dPx623DgJl/2j1+2zlRc7y7IHSd7Gm5w==", + "license": "MIT", "dependencies": { "@bugsnag/core": "^7.19.0", "byline": "^5.0.0", @@ -2460,22 +5460,19 @@ }, "node_modules/@bugsnag/safe-json-stringify": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz", - "integrity": "sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==" + "license": "MIT" }, "node_modules/@colors/colors": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "license": "MIT", "engines": { "node": ">=0.1.90" } }, "node_modules/@commitlint/cli": { "version": "17.6.6", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.6.6.tgz", - "integrity": "sha512-sTKpr2i/Fjs9OmhU+beBxjPavpnLSqZaO6CzwKVq2Tc4UYVTMFgpKOslDhUBVlfAUBfjVO8ParxC/MXkIOevEA==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/format": "^17.4.4", "@commitlint/lint": "^17.6.6", @@ -2497,9 +5494,8 @@ }, "node_modules/@commitlint/config-conventional": { "version": "17.6.5", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.6.5.tgz", - "integrity": "sha512-Xl9H9KLl86NZm5CYNTNF9dcz1xelE/EbvhWIWcYxG/rn3UWYWdWmmnX2q6ZduNdLFSGbOxzUpIx61j5zxbeXxg==", "dev": true, + "license": "MIT", "dependencies": { "conventional-changelog-conventionalcommits": "^5.0.0" }, @@ -2509,9 +5505,8 @@ }, "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, + "license": "ISC", "dependencies": { "compare-func": "^2.0.0", "lodash": "^4.17.15", @@ -2523,9 +5518,8 @@ }, "node_modules/@commitlint/config-validator": { "version": "17.4.4", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.4.4.tgz", - "integrity": "sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/types": "^17.4.4", "ajv": "^8.11.0" @@ -2536,9 +5530,8 @@ }, "node_modules/@commitlint/ensure": { "version": "17.4.4", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.4.4.tgz", - "integrity": "sha512-AHsFCNh8hbhJiuZ2qHv/m59W/GRE9UeOXbkOqxYMNNg9pJ7qELnFcwj5oYpa6vzTSHtPGKf3C2yUFNy1GGHq6g==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/types": "^17.4.4", "lodash.camelcase": "^4.3.0", @@ -2553,18 +5546,16 @@ }, "node_modules/@commitlint/execute-rule": { "version": "17.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz", - "integrity": "sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==", "dev": true, + "license": "MIT", "engines": { "node": ">=v14" } }, "node_modules/@commitlint/format": { "version": "17.4.4", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-17.4.4.tgz", - "integrity": "sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/types": "^17.4.4", "chalk": "^4.1.0" @@ -2575,9 +5566,8 @@ }, "node_modules/@commitlint/is-ignored": { "version": "17.6.6", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.6.6.tgz", - "integrity": "sha512-4Fw875faAKO+2nILC04yW/2Vy/wlV3BOYCSQ4CEFzriPEprc1Td2LILmqmft6PDEK5Sr14dT9tEzeaZj0V56Gg==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/types": "^17.4.4", "semver": "7.5.2" @@ -2588,9 +5578,8 @@ }, "node_modules/@commitlint/is-ignored/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, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -2600,9 +5589,8 @@ }, "node_modules/@commitlint/is-ignored/node_modules/semver": { "version": "7.5.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", - "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -2615,15 +5603,13 @@ }, "node_modules/@commitlint/is-ignored/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 + "dev": true, + "license": "ISC" }, "node_modules/@commitlint/lint": { "version": "17.6.6", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.6.6.tgz", - "integrity": "sha512-5bN+dnHcRLkTvwCHYMS7Xpbr+9uNi0Kq5NR3v4+oPNx6pYXt8ACuw9luhM/yMgHYwW0ajIR20wkPAFkZLEMGmg==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/is-ignored": "^17.6.6", "@commitlint/parse": "^17.6.5", @@ -2636,9 +5622,8 @@ }, "node_modules/@commitlint/load": { "version": "17.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.5.0.tgz", - "integrity": "sha512-l+4W8Sx4CD5rYFsrhHH8HP01/8jEP7kKf33Xlx2Uk2out/UKoKPYMOIRcDH5ppT8UXLMV+x6Wm5osdRKKgaD1Q==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/config-validator": "^17.4.4", "@commitlint/execute-rule": "^17.4.0", @@ -2661,18 +5646,16 @@ }, "node_modules/@commitlint/message": { "version": "17.4.2", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.4.2.tgz", - "integrity": "sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=v14" } }, "node_modules/@commitlint/parse": { "version": "17.6.5", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.6.5.tgz", - "integrity": "sha512-0zle3bcn1Hevw5Jqpz/FzEWNo2KIzUbc1XyGg6WrWEoa6GH3A1pbqNF6MvE6rjuy6OY23c8stWnb4ETRZyN+Yw==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/types": "^17.4.4", "conventional-changelog-angular": "^5.0.11", @@ -2684,9 +5667,8 @@ }, "node_modules/@commitlint/read": { "version": "17.5.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.5.1.tgz", - "integrity": "sha512-7IhfvEvB//p9aYW09YVclHbdf1u7g7QhxeYW9ZHSO8Huzp8Rz7m05aCO1mFG7G8M+7yfFnXB5xOmG18brqQIBg==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/top-level": "^17.4.0", "@commitlint/types": "^17.4.4", @@ -2700,9 +5682,8 @@ }, "node_modules/@commitlint/read/node_modules/fs-extra": { "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -2714,9 +5695,8 @@ }, "node_modules/@commitlint/resolve-extends": { "version": "17.4.4", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.4.4.tgz", - "integrity": "sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/config-validator": "^17.4.4", "@commitlint/types": "^17.4.4", @@ -2731,9 +5711,8 @@ }, "node_modules/@commitlint/rules": { "version": "17.6.5", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.6.5.tgz", - "integrity": "sha512-uTB3zSmnPyW2qQQH+Dbq2rekjlWRtyrjDo4aLFe63uteandgkI+cc0NhhbBAzcXShzVk0qqp8SlkQMu0mgHg/A==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/ensure": "^17.4.4", "@commitlint/message": "^17.4.2", @@ -2747,18 +5726,16 @@ }, "node_modules/@commitlint/to-lines": { "version": "17.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.4.0.tgz", - "integrity": "sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg==", "dev": true, + "license": "MIT", "engines": { "node": ">=v14" } }, "node_modules/@commitlint/top-level": { "version": "17.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.4.0.tgz", - "integrity": "sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^5.0.0" }, @@ -2768,9 +5745,8 @@ }, "node_modules/@commitlint/types": { "version": "17.4.4", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.4.4.tgz", - "integrity": "sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0" }, @@ -2780,9 +5756,8 @@ }, "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, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -2792,9 +5767,8 @@ }, "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, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -2802,8 +5776,7 @@ }, "node_modules/@dabh/diagnostics": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", - "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "license": "MIT", "dependencies": { "colorspace": "1.1.x", "enabled": "2.0.x", @@ -2812,9 +5785,8 @@ }, "node_modules/@datadog/pprof": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@datadog/pprof/-/pprof-3.1.0.tgz", - "integrity": "sha512-Bg8O8yrHeL2KKHXhLoAAT33ZfzLnZ6rWfOjy8PkcNhUJy3UwNVLbUoApf+99EyLjqpzpk/kZXrIAMBzMMB8ilg==", "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "delay": "^5.0.0", "node-gyp-build": "<4.0", @@ -2828,17 +5800,15 @@ }, "node_modules/@datadog/pprof/node_modules/source-map": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", "engines": { "node": ">= 8" } }, "node_modules/@dependents/detective-less": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@dependents/detective-less/-/detective-less-3.0.1.tgz", - "integrity": "sha512-NjjCPJbx/za2287T6gnC5zD2IFSplro1evaTV9yvx3jnPpHi7s8PwJvh9vvJRFnMx5nbakodwNOnFvk8+9YQTg==", "dev": true, + "license": "MIT", "dependencies": { "gonzales-pe": "^4.3.0", "node-source-walk": "^5.0.0" @@ -2849,9 +5819,8 @@ }, "node_modules/@dependents/detective-less/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -2861,9 +5830,8 @@ }, "node_modules/@digitalroute/cz-conventional-changelog-for-jira": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@digitalroute/cz-conventional-changelog-for-jira/-/cz-conventional-changelog-for-jira-8.0.1.tgz", - "integrity": "sha512-I7uNQ2R5LnDYVhQ01sfNvaxqe1PutXyDl8Kltj4L8uDa1LTYqQgWWp3yEj3XYDNjhUjsAheHW0lsmF1oiAjWVg==", "dev": true, + "license": "MIT", "dependencies": { "boxen": "^5.1.2", "chalk": "^2.4.1", @@ -2884,9 +5852,8 @@ }, "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, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -2896,9 +5863,8 @@ }, "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, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -2910,33 +5876,29 @@ }, "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, + "license": "MIT", "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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -2946,9 +5908,8 @@ }, "node_modules/@eslint-community/eslint-utils": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.3.0.tgz", - "integrity": "sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -2961,18 +5922,16 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", - "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", - "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -2993,9 +5952,8 @@ }, "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, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -3009,45 +5967,38 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/@eslint/js": { "version": "8.41.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz", - "integrity": "sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@ewoudenberg/difflib": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@ewoudenberg/difflib/-/difflib-0.1.0.tgz", - "integrity": "sha512-OU5P5mJyD3OoWYMWY+yIgwvgNS9cFAU10f+DDuvtogcWQOoJIsQ4Hy2McSfUfhKjq8L0FuWVb4Rt7kgA+XK86A==", "dependencies": { "heap": ">= 0.2.0" } }, "node_modules/@hapi/hoek": { "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + "license": "BSD-3-Clause" }, "node_modules/@hapi/topo": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "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, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", @@ -3059,9 +6010,8 @@ }, "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, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -3072,29 +6022,25 @@ }, "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 + "dev": true, + "license": "BSD-3-Clause" }, "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, + "license": "Apache-2.0", "engines": { "node": ">=6.9.0" } }, "node_modules/@ioredis/commands": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", - "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" + "license": "MIT" }, "node_modules/@isaacs/cliui": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -3109,9 +6055,8 @@ }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -3121,9 +6066,8 @@ }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -3133,9 +6077,8 @@ }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -3150,9 +6093,8 @@ }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -3165,9 +6107,8 @@ }, "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -3182,9 +6123,8 @@ }, "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, + "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -3198,18 +6138,16 @@ }, "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -3220,9 +6158,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -3233,9 +6170,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -3245,9 +6181,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -3260,9 +6195,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/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, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -3272,18 +6206,16 @@ }, "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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/console": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.6.0.tgz", - "integrity": "sha512-anb6L1yg7uPQpytNVA5skRaXy3BmrsU8icRhTVNbWdjYWDDfy8M1Kq5HIVRpYoABdbpqsc5Dr+jtu4+qWRQBiQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.0", "@types/node": "*", @@ -3298,9 +6230,8 @@ }, "node_modules/@jest/core": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.6.0.tgz", - "integrity": "sha512-5dbMHfY/5R9m8NbgmB3JlxQqooZ/ooPSOiwEQZZ+HODwJTbIu37seVcZNBK29aMdXtjvTRB3f6LCvkKq+r8uQA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^29.6.0", "@jest/reporters": "^29.6.0", @@ -3345,9 +6276,8 @@ }, "node_modules/@jest/environment": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.6.0.tgz", - "integrity": "sha512-bUZLYUxYlUIsslBbxII0fq0kr1+friI3Gty+cRLmocGB1jdcAHs7FS8QdCDqedE8q4DZE1g/AJHH6OJZBLGGsg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/fake-timers": "^29.6.0", "@jest/types": "^29.6.0", @@ -3360,9 +6290,8 @@ }, "node_modules/@jest/expect": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.6.0.tgz", - "integrity": "sha512-a7pISPW28Q3c0/pLwz4mQ6tbAI+hc8/0CJp9ix6e9U4dQ6TiHQX82CT5DV5BMWaw8bFH4E6zsfZxXdn6Ka23Bw==", "dev": true, + "license": "MIT", "dependencies": { "expect": "^29.6.0", "jest-snapshot": "^29.6.0" @@ -3373,9 +6302,8 @@ }, "node_modules/@jest/expect-utils": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.0.tgz", - "integrity": "sha512-LLSQQN7oypMSETKoPWpsWYVKJd9LQWmSDDAc4hUQ4JocVC7LAMy9R3ZMhlnLwbcFvQORZnZR7HM893Px6cJhvA==", "dev": true, + "license": "MIT", "dependencies": { "jest-get-type": "^29.4.3" }, @@ -3385,9 +6313,8 @@ }, "node_modules/@jest/fake-timers": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.0.tgz", - "integrity": "sha512-nuCU46AsZoskthWSDS2Aj6LARgyNcp5Fjx2qxsO/fPl1Wp1CJ+dBDqs0OkEcJK8FBeV/MbjH5efe79M2sHcV+A==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.0", "@sinonjs/fake-timers": "^10.0.2", @@ -3402,9 +6329,8 @@ }, "node_modules/@jest/globals": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.6.0.tgz", - "integrity": "sha512-IQQ3hZ2D/hwEwXSMv5GbfhzdH0nTQR3KPYxnuW6gYWbd6+7/zgMz7Okn6EgBbNtJNONq03k5EKA6HqGyzRbpeg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.6.0", "@jest/expect": "^29.6.0", @@ -3417,9 +6343,8 @@ }, "node_modules/@jest/reporters": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.0.tgz", - "integrity": "sha512-dWEq4HI0VvHcAD6XTtyBKKARLytyyWPIy1SvGOcU91106MfvHPdxZgupFwVHd8TFpZPpA3SebYjtwS5BUS76Rw==", "dev": true, + "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^29.6.0", @@ -3460,9 +6385,8 @@ }, "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, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3480,9 +6404,8 @@ }, "node_modules/@jest/schemas": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.0.tgz", - "integrity": "sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==", "dev": true, + "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -3492,9 +6415,8 @@ }, "node_modules/@jest/source-map": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.0.tgz", - "integrity": "sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", @@ -3506,9 +6428,8 @@ }, "node_modules/@jest/test-result": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.0.tgz", - "integrity": "sha512-9qLb7xITeyWhM4yatn2muqfomuoCTOhv0QV9i7XiIyYi3QLfnvPv5NeJp5u0PZeutAOROMLKakOkmoAisOr3YQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^29.6.0", "@jest/types": "^29.6.0", @@ -3521,9 +6442,8 @@ }, "node_modules/@jest/test-sequencer": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.0.tgz", - "integrity": "sha512-HYCS3LKRQotKWj2mnA3AN13PPevYZu8MJKm12lzYojpJNnn6kI/3PWmr1At/e3tUu+FHQDiOyaDVuR4EV3ezBw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/test-result": "^29.6.0", "graceful-fs": "^4.2.9", @@ -3536,9 +6456,8 @@ }, "node_modules/@jest/transform": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.6.0.tgz", - "integrity": "sha512-bhP/KxPo3e322FJ0nKAcb6WVK76ZYyQd1lWygJzoSqP8SYMSLdxHqP4wnPTI4WvbB8PKPDV30y5y7Tya4RHOBA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.0", @@ -3562,15 +6481,13 @@ }, "node_modules/@jest/transform/node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@jest/transform/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, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -3581,9 +6498,8 @@ }, "node_modules/@jest/types": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.0.tgz", - "integrity": "sha512-8XCgL9JhqbJTFnMRjEAO+TuW251+MoMd5BSzLiE3vvzpQ8RlBxy8NoyNkDhs3K3OL3HeVinlOl9or5p7GTeOLg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.0", "@types/istanbul-lib-coverage": "^2.0.0", @@ -3598,9 +6514,8 @@ }, "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, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -3611,33 +6526,29 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "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 + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" @@ -3645,14 +6556,12 @@ }, "node_modules/@jsdevtools/ono": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@koa/router": { "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@koa/router/-/router-12.0.0.tgz", - "integrity": "sha512-cnnxeKHXlt7XARJptflGURdJaO+ITpNkOHmQu7NHmCoRinPbyvFzce/EG/E8Zy81yQ1W9MoSdtklc3nyaDReUw==", + "license": "MIT", "dependencies": { "http-errors": "^2.0.0", "koa-compose": "^4.1.0", @@ -3665,8 +6574,7 @@ }, "node_modules/@koa/router/node_modules/http-errors": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -3680,31 +6588,45 @@ }, "node_modules/@koa/router/node_modules/statuses": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.11", + "license": "BSD-3-Clause", + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, "node_modules/@ndhoule/extend": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@ndhoule/extend/-/extend-2.0.0.tgz", - "integrity": "sha512-xb77tVVGDGwjy25a6RmBiiBQ9uvxhkG0OEpVkQ74oNFsy9u+4PGp5BIIblmJZmJBMgXiKxZtkr4GcmHCNVubBQ==" + "license": "MIT" }, "node_modules/@nicolo-ribaudo/semver-v6": { "version": "6.3.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", - "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "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, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -3715,18 +6637,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -3737,69 +6657,276 @@ }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=14" } }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "license": "BSD-3-Clause" + }, + "node_modules/@pyroscope/nodejs": { + "version": "0.2.6", + "license": "Apache-2.0", + "dependencies": { + "axios": "^0.26.1", + "debug": "^4.3.3", + "form-data": "^4.0.0", + "pprof": "^3.2.0", + "regenerator-runtime": "^0.13.11", + "source-map": "^0.7.3" + }, + "engines": { + "node": "^12.20.0 || >=14.13.1" + } + }, + "node_modules/@pyroscope/nodejs/node_modules/axios": { + "version": "0.26.1", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.14.8" + } + }, + "node_modules/@pyroscope/nodejs/node_modules/source-map": { + "version": "0.7.4", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rudderstack/integrations-lib": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@rudderstack/integrations-lib/-/integrations-lib-0.1.9.tgz", + "integrity": "sha512-ROi/LfI7PXqKDrjSig+1Rf2TQ8MgxJGJ7sAD1B0PmRKELQpxK6PLt8QF+vKXl8wYILQu2gwTkZ5o+uwmNKxGzg==", + "dependencies": { + "@rudderstack/workflow-engine": "^0.5.7", + "axios": "^1.4.0", + "axios-mock-adapter": "^1.22.0", + "crypto": "^1.0.1", + "get-value": "^3.0.1", + "handlebars": "^4.7.8", + "lodash": "^4.17.21", + "moment": "^2.29.4", + "moment-timezone": "^0.5.43", + "set-value": "^4.1.0", + "sha256": "^0.2.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@rudderstack/integrations-lib/node_modules/@aws-crypto/sha256-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-4.0.0.tgz", + "integrity": "sha512-MHGJyjE7TX9aaqXj7zk2ppnFUOhaDs5sP+HtNS0evOxn72c+5njUmyJmpGd7TfyoDznZlHMmdo/xGUdu2NIjNQ==", + "dependencies": { + "@aws-crypto/util": "^4.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@rudderstack/integrations-lib/node_modules/@aws-crypto/sha256-js/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@rudderstack/integrations-lib/node_modules/@aws-crypto/util": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-4.0.0.tgz", + "integrity": "sha512-2EnmPy2gsFZ6m8bwUQN4jq+IyXV3quHAcwPOS6ZA3k+geujiqI8aRokO2kFJe+idJ/P3v4qWI186rVMo0+zLDQ==", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@rudderstack/integrations-lib/node_modules/@aws-crypto/util/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@rudderstack/integrations-lib/node_modules/@rudderstack/json-template-engine": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@rudderstack/json-template-engine/-/json-template-engine-0.5.5.tgz", + "integrity": "sha512-p3HdTqgZiJjjZmjaHN2paa1e87ifGE5UjkA4zdvge4bBzJbKKMQNWqRg6I96SwoA+hsxNkW/f9R83SPLU9t7LA==" + }, + "node_modules/@rudderstack/integrations-lib/node_modules/@rudderstack/workflow-engine": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/@rudderstack/workflow-engine/-/workflow-engine-0.5.8.tgz", + "integrity": "sha512-H1aCowYqTnOoqJtL9cGDhdhoGNl+KzqmVbSjFmE7n75onZaIMs87+HQyW08jYxS9l1Uo4TL8SAvzFICqFqkBbw==", + "dependencies": { + "@aws-crypto/sha256-js": "^4.0.0", + "@rudderstack/json-template-engine": "^0.5.5", + "js-yaml": "^4.1.0", + "jsonata": "^2.0.3", + "lodash": "^4.17.21", + "object-sizeof": "^2.6.3" + } + }, + "node_modules/@rudderstack/json-template-engine": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@rudderstack/json-template-engine/-/json-template-engine-0.8.1.tgz", + "integrity": "sha512-MR2ArfOXEDh9FEj/N3LVLjIxf134wq+YxUdZN4gTLEONIPdna97QeNk4hnhtlob0QQIrWr13mfPaU9FpvU2Q6Q==" + }, + "node_modules/@rudderstack/workflow-engine": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/@rudderstack/workflow-engine/-/workflow-engine-0.6.9.tgz", + "integrity": "sha512-b0ZHURJfCj2REIL/w7AJgJ+K5BGwIVX3sRDZQqN3F4YWcZX3ZYUXo7gtUeb99FLnZzm7KuThIWR02Fxwos+L4Q==", + "dependencies": { + "@aws-crypto/sha256-js": "^5.0.0", + "@rudderstack/json-template-engine": "^0.8.1", + "jsonata": "^2.0.3", + "lodash": "^4.17.21", + "object-sizeof": "^2.6.3", + "yaml": "^2.3.2" + } + }, + "node_modules/@rudderstack/workflow-engine/node_modules/@aws-crypto/sha256-js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", + "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", + "dependencies": { + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@rudderstack/workflow-engine/node_modules/@aws-crypto/util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", + "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@rudderstack/workflow-engine/node_modules/@smithy/is-array-buffer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.0.0.tgz", + "integrity": "sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rudderstack/workflow-engine/node_modules/@smithy/util-buffer-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.0.0.tgz", + "integrity": "sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==", + "dependencies": { + "@smithy/is-array-buffer": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rudderstack/workflow-engine/node_modules/@smithy/util-utf8": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.0.0.tgz", + "integrity": "sha512-rctU1VkziY84n5OXe3bPNpKR001ZCME2JCaBBFgtiM2hfKbHFudc/BkMuPab8hRbLd0j3vbnBTTZ1igBf0wgiQ==", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@sideway/address": { "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@sideway/formula": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + "license": "BSD-3-Clause" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + "license": "BSD-3-Clause" }, "node_modules/@sinclair/typebox": { "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@sinonjs/commons": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.0" } }, "node_modules/@smithy/abort-controller": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-1.0.1.tgz", - "integrity": "sha512-An6irzp9NCji2JtJHhrEFlDbxLwHd6c6Y9fq3ZeomyUR8BIXlGXVTxsemUSZVVgOq3166iYbYs/CrPAmgRSFLw==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -3810,8 +6937,7 @@ }, "node_modules/@smithy/config-resolver": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-1.0.1.tgz", - "integrity": "sha512-quj0xUiEVG/UHfY82EtthR/+S5/17p3IxXArC3NFSNqryMobWbG9oWgJy2s2cgUSVZLzxevjKKvxrilK7JEDaA==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "@smithy/util-config-provider": "^1.0.1", @@ -3824,8 +6950,7 @@ }, "node_modules/@smithy/credential-provider-imds": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-1.0.1.tgz", - "integrity": "sha512-hkRJoxVCh4CEt1zYOBElE+G/MV6lyx3g68hSJpesM4pwMT/bzEVo5E5XzXY+6dVq8yszeatWKbFuqCCBQte8tg==", + "license": "Apache-2.0", "dependencies": { "@smithy/node-config-provider": "^1.0.1", "@smithy/property-provider": "^1.0.1", @@ -3839,8 +6964,7 @@ }, "node_modules/@smithy/eventstream-codec": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-1.0.1.tgz", - "integrity": "sha512-cpcTXQEOEs2wEvIyxW/iTHJ2m0RVqoEOTjjWEXD6SY8Gcs3FCFP6E8MXadC098tdH5ctMIUXc8POXyMpxzGnjw==", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "3.0.0", "@smithy/types": "^1.1.0", @@ -3850,8 +6974,7 @@ }, "node_modules/@smithy/eventstream-serde-browser": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-1.0.1.tgz", - "integrity": "sha512-oc8vxe+AU2RzvXH/Ehh0TzM/Nsw3I3ywu7V3qaCzqdkBIntAwK9JGZqcSDsqTK0WxZKBRgFIEwopcuZ2slVnFQ==", + "license": "Apache-2.0", "dependencies": { "@smithy/eventstream-serde-universal": "^1.0.1", "@smithy/types": "^1.1.0", @@ -3863,8 +6986,7 @@ }, "node_modules/@smithy/eventstream-serde-config-resolver": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-1.0.1.tgz", - "integrity": "sha512-TJwaXima0djnNY819utO1j93qZHaheFH1bhHxBkMrImtEOuXY48Tjma/L2m8swkIq8dy8jFC9hrYOkD0eYHkFA==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -3875,8 +6997,7 @@ }, "node_modules/@smithy/eventstream-serde-node": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-1.0.1.tgz", - "integrity": "sha512-JEj8w7IRs4l+kcwKxbv3pNuu8n7ORC4pMFrIOrM4rERzrRnI7vMNTRzvAPGYA53rqm/Y9tBA9dw4C+H6hLXcsA==", + "license": "Apache-2.0", "dependencies": { "@smithy/eventstream-serde-universal": "^1.0.1", "@smithy/types": "^1.1.0", @@ -3888,8 +7009,7 @@ }, "node_modules/@smithy/eventstream-serde-universal": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-1.0.1.tgz", - "integrity": "sha512-c6m9DH7m6D2S93dof4wSxysaGSQdauO20TNcSePzrgHd4rkTnz5pqZ1a7Pt22q2SKf09SvTugq5cV2Sy4r8zHw==", + "license": "Apache-2.0", "dependencies": { "@smithy/eventstream-codec": "^1.0.1", "@smithy/types": "^1.1.0", @@ -3901,8 +7021,7 @@ }, "node_modules/@smithy/fetch-http-handler": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-1.0.1.tgz", - "integrity": "sha512-/e2A8eOMk4FVZBQ0o6uF/ttLtFZcmsK5MIwDu1UE3crM4pCAIP19Ul8U9rdLlHhIu81X4AcJmSw55RDSpVRL/w==", + "license": "Apache-2.0", "dependencies": { "@smithy/protocol-http": "^1.1.0", "@smithy/querystring-builder": "^1.0.1", @@ -3913,8 +7032,7 @@ }, "node_modules/@smithy/hash-node": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-1.0.1.tgz", - "integrity": "sha512-eCz08BySBcOjVObjbRAS/XMKUGY4ujnuS+GoWeEpzpCSKDnO8/YQ0rStRt4C0llRmhApizYc1tK9DiJwfvXcBg==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "@smithy/util-buffer-from": "^1.0.1", @@ -3927,8 +7045,7 @@ }, "node_modules/@smithy/invalid-dependency": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-1.0.1.tgz", - "integrity": "sha512-kib63GFlAzRn/wf8M0cRWrZA1cyOy5IvpTkLavCY782DPFMP0EaEeD6VrlNIOvD6ncf7uCJ68HqckhwK1qLT3g==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -3936,8 +7053,7 @@ }, "node_modules/@smithy/is-array-buffer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-1.0.1.tgz", - "integrity": "sha512-fHSTW70gANnzPYWNDcWkPXpp+QMbHhKozbQm/+Denkhp4gwSiPuAovWZRpJa9sXO+Q4dOnNzYN2max1vTCEroA==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -3947,8 +7063,7 @@ }, "node_modules/@smithy/middleware-content-length": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-1.0.1.tgz", - "integrity": "sha512-vWWigayk5i2cFp9xPX5vdzHyK+P0t/xZ3Ovp4Ss+c8JQ1Hlq2kpJZVWtTKsmdfND5rVo5lu0kD5wgAMUCcmuhw==", + "license": "Apache-2.0", "dependencies": { "@smithy/protocol-http": "^1.1.0", "@smithy/types": "^1.1.0", @@ -3960,8 +7075,7 @@ }, "node_modules/@smithy/middleware-endpoint": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-1.0.2.tgz", - "integrity": "sha512-F3CyXgjtDI4quGFkDmVNytt6KMwlzzeMxtopk6Edue4uKdKcMC1vUmoRS5xTbFzKDDp4XwpnEV7FshPaL3eCPw==", + "license": "Apache-2.0", "dependencies": { "@smithy/middleware-serde": "^1.0.1", "@smithy/types": "^1.1.0", @@ -3975,8 +7089,7 @@ }, "node_modules/@smithy/middleware-retry": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-1.0.3.tgz", - "integrity": "sha512-ZRsjG8adtxQ456FULPqPFmWtrW44Fq8IgdQvQB+rC2RSho3OUzS+TiEIwb5Zs6rf2IoewITKtfdtsUZcxXO0ng==", + "license": "Apache-2.0", "dependencies": { "@smithy/protocol-http": "^1.1.0", "@smithy/service-error-classification": "^1.0.2", @@ -3992,16 +7105,14 @@ }, "node_modules/@smithy/middleware-retry/node_modules/uuid": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/@smithy/middleware-serde": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-1.0.1.tgz", - "integrity": "sha512-bn5lWk8UUeXFCQfkrNErz5SbeNd+2hgYegHMLsOLPt4URDIsyREar6wMsdsR+8UCdgR5s8udG3Zalgc7puizIQ==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -4012,8 +7123,7 @@ }, "node_modules/@smithy/middleware-stack": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-1.0.1.tgz", - "integrity": "sha512-T6+gsAO1JYamOJqmORCrByDeQ/NB+ggjHb33UDOgdX4xIjXz/FB/3UqHgQu6PL1cSFrK+i4oteDIwqARDs/Szw==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -4023,8 +7133,7 @@ }, "node_modules/@smithy/node-config-provider": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-1.0.1.tgz", - "integrity": "sha512-FRxifH/J2SgOaVLihIqBFuGhiHR/NfzbZYp5nYO7BGgT/gc/f9nAuuRJcEy/hwO3aI6ThyG5apH4tGec6A2sCw==", + "license": "Apache-2.0", "dependencies": { "@smithy/property-provider": "^1.0.1", "@smithy/shared-ini-file-loader": "^1.0.1", @@ -4037,8 +7146,7 @@ }, "node_modules/@smithy/node-http-handler": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-1.0.2.tgz", - "integrity": "sha512-PzPrGRSt3kNuruLCeR4ffJp57ZLVnIukMXVL3Ppr65ZoxiE+HBsOVAa/Z/T+4HzjCM6RaXnnmB8YKfsDjlb0iA==", + "license": "Apache-2.0", "dependencies": { "@smithy/abort-controller": "^1.0.1", "@smithy/protocol-http": "^1.1.0", @@ -4052,8 +7160,7 @@ }, "node_modules/@smithy/property-provider": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-1.0.1.tgz", - "integrity": "sha512-3EG/61Ls1MrgEaafpltXBJHSqFPqmTzEX7QKO7lOEHuYGmGYzZ08t1SsTgd1vM74z0IihoZyGPynZ7WmXKvTeg==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -4064,8 +7171,7 @@ }, "node_modules/@smithy/protocol-http": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.1.0.tgz", - "integrity": "sha512-H5y/kZOqfJSqRkwtcAoVbqONmhdXwSgYNJ1Glk5Ry8qlhVVy5qUzD9EklaCH8/XLnoCsLO/F/Giee8MIvaBRkg==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -4076,8 +7182,7 @@ }, "node_modules/@smithy/querystring-builder": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-1.0.1.tgz", - "integrity": "sha512-J5Tzkw1PMtu01h6wl+tlN5vsyROmS6/z5lEfNlLo/L4ELHeVkQ4Q0PEIjDddPLfjVLCm8biQTESE5GCMixSRNQ==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "@smithy/util-uri-escape": "^1.0.1", @@ -4089,8 +7194,7 @@ }, "node_modules/@smithy/querystring-parser": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-1.0.1.tgz", - "integrity": "sha512-zauxdMc3cwxoLitI5DZqH7xN6Fk0mwRxrUMAETbav2j6Se2U0UGak/55rZcDg2yGzOURaLYi5iOm1gHr98P+Bw==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -4101,16 +7205,14 @@ }, "node_modules/@smithy/service-error-classification": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-1.0.2.tgz", - "integrity": "sha512-Q5CCuzYL5FGo6Rr/O+lZxXHm2hrRgbmMn8MgyjqZUWZg20COg20DuNtIbho2iht6CoB7jOpmpBqhWizLlzUZgg==", + "license": "Apache-2.0", "engines": { "node": ">=14.0.0" } }, "node_modules/@smithy/shared-ini-file-loader": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-1.0.1.tgz", - "integrity": "sha512-EztziuIPoNronENGqh+MWVKJErA4rJpaPzJCPukzBeEoG2USka0/q4B5Mr/1zszOnrb49fPNh4u3u5LfiH7QzA==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -4121,8 +7223,7 @@ }, "node_modules/@smithy/signature-v4": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-1.0.1.tgz", - "integrity": "sha512-2D69je14ou1vBTnAQeysSK4QVMm0j3WHS3MDg/DnHnFFcXRCzVl/xAARO7POD8+fpi4tMFPs8Z4hzo1Zw40L0Q==", + "license": "Apache-2.0", "dependencies": { "@smithy/eventstream-codec": "^1.0.1", "@smithy/is-array-buffer": "^1.0.1", @@ -4139,8 +7240,7 @@ }, "node_modules/@smithy/smithy-client": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-1.0.3.tgz", - "integrity": "sha512-Wh1mNP/1yUZK0uYkgCQ6NMxpBT3Fmc45TMdUfOlH1xD2zGYL7U4yDHFOhEZdi/suyjaelFobXB2p9pPIw6LjRQ==", + "license": "Apache-2.0", "dependencies": { "@smithy/middleware-stack": "^1.0.1", "@smithy/types": "^1.1.0", @@ -4153,8 +7253,7 @@ }, "node_modules/@smithy/types": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.1.0.tgz", - "integrity": "sha512-KzmvisMmuwD2jZXuC9e65JrgsZM97y5NpDU7g347oB+Q+xQLU6hQZ5zFNNbEfwwOJHoOvEVTna+dk1h/lW7alw==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -4164,8 +7263,7 @@ }, "node_modules/@smithy/url-parser": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-1.0.1.tgz", - "integrity": "sha512-33vWEtE6HzmwjEcEb4I58XMLRAchwPS93YhfDyXAXr1jwDCzfXmMayQwwpyW847rpWj0XJimxqia8q0z+k/ybw==", + "license": "Apache-2.0", "dependencies": { "@smithy/querystring-parser": "^1.0.1", "@smithy/types": "^1.1.0", @@ -4174,8 +7272,7 @@ }, "node_modules/@smithy/util-base64": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-1.0.1.tgz", - "integrity": "sha512-rJcpRi/yUi6TyCEkjdTH86/ExBuKlfctEXhG9/4gMJ3/cnPcHJJnr0mQ9evSEO+3DbpT/Nxq90bcTBdTIAmCig==", + "license": "Apache-2.0", "dependencies": { "@smithy/util-buffer-from": "^1.0.1", "tslib": "^2.5.0" @@ -4186,16 +7283,14 @@ }, "node_modules/@smithy/util-body-length-browser": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-1.0.1.tgz", - "integrity": "sha512-Pdp744fmF7E1NWoSb7256Anhm8eYoCubvosdMwXzOnHuPRVbDa15pKUz2027K3+jrfGpXo1r+MnDerajME1Osw==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" } }, "node_modules/@smithy/util-body-length-node": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-1.0.1.tgz", - "integrity": "sha512-4PIHjDFwG07SNensAiVq/CJmubEVuwclWSYOTNtzBNTvxOeGLznvygkGYgPzS3erByT8C4S9JvnLYgtrsVV3nQ==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -4205,8 +7300,7 @@ }, "node_modules/@smithy/util-buffer-from": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-1.0.1.tgz", - "integrity": "sha512-363N7Wq0ceUgE5lLe6kaR6GlJs2/m4r9V6bRMfIszb6P1FZbbRRM2FQYUWWPFSsRymm9mJL18b3fjiVsIvhDGg==", + "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^1.0.1", "tslib": "^2.5.0" @@ -4217,8 +7311,7 @@ }, "node_modules/@smithy/util-config-provider": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-1.0.1.tgz", - "integrity": "sha512-4Qy38Oy5/q43MpTwCLV1P+7NeaOp4W2etQDxMjgEeRlOyGGNlgttn0syi4g2rVSukFVqQ6FbeRs5xbnFmS6kaQ==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -4228,8 +7321,7 @@ }, "node_modules/@smithy/util-defaults-mode-browser": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-1.0.1.tgz", - "integrity": "sha512-/9ObwNch4Z/NJYfkO4AvqBWku60Ju+c2Ck32toPOLmWe/V6eI9FLn8C1abri+GxDRCkLIqvkaWU1lgZ3nWZIIw==", + "license": "Apache-2.0", "dependencies": { "@smithy/property-provider": "^1.0.1", "@smithy/types": "^1.1.0", @@ -4242,8 +7334,7 @@ }, "node_modules/@smithy/util-defaults-mode-node": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-1.0.1.tgz", - "integrity": "sha512-XQM3KvqRLgv7bwAzVkXTITkOmcOINoG9icJiGT8FA0zV35lY5UvyIsg5kHw01xigQS8ufa/33AwG3ZoXip+V5g==", + "license": "Apache-2.0", "dependencies": { "@smithy/config-resolver": "^1.0.1", "@smithy/credential-provider-imds": "^1.0.1", @@ -4258,8 +7349,7 @@ }, "node_modules/@smithy/util-hex-encoding": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-1.0.1.tgz", - "integrity": "sha512-FPTtMz/t02/rbfq5Pdll/TWUYP+GVFLCQNr+DgifrLzVRU0g8rdRjyFpDh8nPTdkDDusTTo9P1bepAYj68s0eA==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -4269,8 +7359,7 @@ }, "node_modules/@smithy/util-middleware": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-1.0.1.tgz", - "integrity": "sha512-u9akN3Zmbr0vZH4F+2iehG7cFg+3fvDfnvS/hhsXH4UHuhqiQ+ADefibnLzPoz1pooY7rvwaQ/TVHyJmZHdLdQ==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -4280,8 +7369,7 @@ }, "node_modules/@smithy/util-retry": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-1.0.3.tgz", - "integrity": "sha512-gYQnZDD8I2XJFspVwUISyukjPWVikTzKR0IdG8hCWYPTpeULFl1o6yzXlT5SL63TBkuEYl0R1/93cdNtMiNnoA==", + "license": "Apache-2.0", "dependencies": { "@smithy/service-error-classification": "^1.0.2", "tslib": "^2.5.0" @@ -4292,8 +7380,7 @@ }, "node_modules/@smithy/util-stream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-1.0.1.tgz", - "integrity": "sha512-4aBCIz35aZAnt2Rbq341KrnUzGhWv2/Zu8HouJqYLvSWCzlrvsNCGlXP4e70Kjzcw8hSuuCNtdUICwQ5qUWLxg==", + "license": "Apache-2.0", "dependencies": { "@smithy/fetch-http-handler": "^1.0.1", "@smithy/node-http-handler": "^1.0.2", @@ -4310,8 +7397,7 @@ }, "node_modules/@smithy/util-uri-escape": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-1.0.1.tgz", - "integrity": "sha512-IJUrRnXKEIc+PKnU1XzTsIENVR+60jUDPBP3iWX/EvuuT3Xfob47x1FGUe2c3yMXNuU6ax8VDk27hL5LKNoehQ==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -4321,8 +7407,7 @@ }, "node_modules/@smithy/util-utf8": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-1.0.1.tgz", - "integrity": "sha512-iX6XHpjh4DFEUIBSKp2tjy3pYnLQMsJ62zYi1BVAC0kobE6p8AVpiZnxsU3ZkgQatAsUaEspFHUZ7CL7oSqaPQ==", + "license": "Apache-2.0", "dependencies": { "@smithy/util-buffer-from": "^1.0.1", "tslib": "^2.5.0" @@ -4333,8 +7418,7 @@ }, "node_modules/@smithy/util-waiter": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-1.0.1.tgz", - "integrity": "sha512-dsn8O0s3pFIgxFzySLe1dv0w4tEQizEP6UqbgZ4r/Kar4n8pSdrPi6DJg8BzXwkwEIZpMtV4/nhSeGZ7HksDXA==", + "license": "Apache-2.0", "dependencies": { "@smithy/abort-controller": "^1.0.1", "@smithy/types": "^1.1.0", @@ -4346,41 +7430,35 @@ }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "node_modules/@types/accepts": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "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, + "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0", @@ -4391,18 +7469,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -4410,17 +7486,15 @@ }, "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, + "license": "MIT", "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==", + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -4428,21 +7502,18 @@ }, "node_modules/@types/connect": { "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/content-disposition": { "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.5.tgz", - "integrity": "sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==" + "license": "MIT" }, "node_modules/@types/cookies": { "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", - "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/express": "*", @@ -4452,8 +7523,7 @@ }, "node_modules/@types/express": { "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -4463,8 +7533,7 @@ }, "node_modules/@types/express-serve-static-core": { "version": "4.17.35", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", - "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", + "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -4472,54 +7541,57 @@ "@types/send": "*" } }, + "node_modules/@types/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-IyNhGHu71jH1jCXTHmafuoAAdsbBON3kDh7u/UUhLmjYgN5TYB54e1R8ckTCiIevl2UuZaCsi9XRxineY5yUjw==", + "deprecated": "This is a stub types definition. fast-json-stable-stringify provides its own type definitions, so you do not need this installed.", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "*" + } + }, "node_modules/@types/graceful-fs": { "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/http-assert": { "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", - "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==" + "license": "MIT" }, "node_modules/@types/http-errors": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==" + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/jest": { "version": "29.5.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz", - "integrity": "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==", "dev": true, + "license": "MIT", "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" @@ -4527,25 +7599,21 @@ }, "node_modules/@types/json-schema": { "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", - "dev": true + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "node_modules/@types/keygrip": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" + "license": "MIT" }, "node_modules/@types/koa": { "version": "2.13.6", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.6.tgz", - "integrity": "sha512-diYUfp/GqfWBAiwxHtYJ/FQYIXhlEhlyaU7lB/bWQrx4Il9lCET5UwpFy3StOAohfsxxvEQ11qIJgT1j2tfBvw==", + "license": "MIT", "dependencies": { "@types/accepts": "*", "@types/content-disposition": "*", @@ -4559,74 +7627,62 @@ }, "node_modules/@types/koa-bodyparser": { "version": "4.3.10", - "resolved": "https://registry.npmjs.org/@types/koa-bodyparser/-/koa-bodyparser-4.3.10.tgz", - "integrity": "sha512-6ae05pjhmrmGhUR8GYD5qr5p9LTEMEGfGXCsK8VaSL+totwigm8+H/7MHW7K4854CMeuwRAubT8qcc/EagaeIA==", "dev": true, + "license": "MIT", "dependencies": { "@types/koa": "*" } }, "node_modules/@types/koa-compose": { "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", - "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", + "license": "MIT", "dependencies": { "@types/koa": "*" } }, "node_modules/@types/lodash": { "version": "4.14.197", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.197.tgz", - "integrity": "sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/mime": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { "version": "20.2.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.5.tgz", - "integrity": "sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==" + "license": "MIT" }, "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==" + "license": "MIT" }, "node_modules/@types/prettier": { "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true + "dev": true, + "license": "MIT" }, "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==" + "license": "MIT" }, "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==" + "license": "MIT" }, "node_modules/@types/semver": { "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/send": { "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "license": "MIT", "dependencies": { "@types/mime": "^1", "@types/node": "*" @@ -4634,8 +7690,7 @@ }, "node_modules/@types/serve-static": { "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", - "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "license": "MIT", "dependencies": { "@types/mime": "*", "@types/node": "*" @@ -4643,30 +7698,26 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/@types/yargs": { "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.23.tgz", - "integrity": "sha512-yuogunc04OnzGQCrfHx+Kk883Q4X0aSwmYZhKjI21m+SVYzjIbrWl8dOOwSv5hf2Um2pdCOXWo9isteZTNXUZQ==", "dev": true, + "license": "MIT", "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 + "dev": true, + "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.61.0.tgz", - "integrity": "sha512-A5l/eUAug103qtkwccSCxn8ZRwT+7RXWkFECdA4Cvl1dOlDUgTpAOfSEElZn2uSUxhdDpnCdetrf0jvU4qrL+g==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.4.0", "@typescript-eslint/scope-manager": "5.61.0", @@ -4698,9 +7749,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.61.0.tgz", - "integrity": "sha512-W8VoMjoSg7f7nqAROEmTt6LoBpn81AegP7uKhhW5KzYlehs8VV0ZW0fIDVbcZRcaP3aPSW+JZFua+ysQN+m/Nw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.61.0", "@typescript-eslint/visitor-keys": "5.61.0" @@ -4715,9 +7765,8 @@ }, "node_modules/@typescript-eslint/parser": { "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.2.tgz", - "integrity": "sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "5.59.2", "@typescript-eslint/types": "5.59.2", @@ -4742,9 +7791,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", - "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4755,9 +7803,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz", - "integrity": "sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "5.59.2", "@typescript-eslint/visitor-keys": "5.59.2", @@ -4782,9 +7829,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", - "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.59.2", "eslint-visitor-keys": "^3.3.0" @@ -4799,9 +7845,8 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.2.tgz", - "integrity": "sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.59.2", "@typescript-eslint/visitor-keys": "5.59.2" @@ -4816,9 +7861,8 @@ }, "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": { "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", - "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4829,9 +7873,8 @@ }, "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/visitor-keys": { "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", - "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.59.2", "eslint-visitor-keys": "^3.3.0" @@ -4846,9 +7889,8 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.61.0.tgz", - "integrity": "sha512-kk8u//r+oVK2Aj3ph/26XdH0pbAkC2RiSjUYhKD+PExemG4XSjpGFeyZ/QM8lBOa7O8aGOU+/yEbMJgQv/DnCg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "5.61.0", "@typescript-eslint/utils": "5.61.0", @@ -4873,9 +7915,8 @@ }, "node_modules/@typescript-eslint/types": { "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.61.0.tgz", - "integrity": "sha512-ldyueo58KjngXpzloHUog/h9REmHl59G1b3a5Sng1GfBo14BkS3ZbMEb3693gnP1k//97lh7bKsp6/V/0v1veQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4886,9 +7927,8 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.61.0.tgz", - "integrity": "sha512-Fud90PxONnnLZ36oR5ClJBLTLfU4pIWBmnvGwTbEa2cXIqj70AEDEmOmpkFComjBZ/037ueKrOdHuYmSFVD7Rw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "5.61.0", "@typescript-eslint/visitor-keys": "5.61.0", @@ -4913,9 +7953,8 @@ }, "node_modules/@typescript-eslint/utils": { "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.61.0.tgz", - "integrity": "sha512-mV6O+6VgQmVE6+xzlA91xifndPW9ElFW8vbSF0xCT/czPXVhwDewKila1jOyRwa9AE19zKnrr7Cg5S3pJVrTWQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", @@ -4939,9 +7978,8 @@ }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.61.0.tgz", - "integrity": "sha512-W8VoMjoSg7f7nqAROEmTt6LoBpn81AegP7uKhhW5KzYlehs8VV0ZW0fIDVbcZRcaP3aPSW+JZFua+ysQN+m/Nw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.61.0", "@typescript-eslint/visitor-keys": "5.61.0" @@ -4956,9 +7994,8 @@ }, "node_modules/@typescript-eslint/utils/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, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -4969,18 +8006,16 @@ }, "node_modules/@typescript-eslint/utils/node_modules/estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/@typescript-eslint/visitor-keys": { "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.61.0.tgz", - "integrity": "sha512-50XQ5VdbWrX06mQXhy93WywSFZZGsv3EOjq+lqp6WC2t+j3mb6A9xYVdrRxafvK88vg9k9u+CT4l6D8PEatjKg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.61.0", "eslint-visitor-keys": "^3.3.0" @@ -4993,10 +8028,13 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/abbrev": { + "version": "1.1.1", + "license": "ISC" + }, "node_modules/accepts": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -5007,9 +8045,8 @@ }, "node_modules/acorn": { "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -5019,23 +8056,20 @@ }, "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, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.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 + "dev": true, + "license": "MIT" }, "node_modules/agent-base": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", "dependencies": { "debug": "4" }, @@ -5045,9 +8079,8 @@ }, "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, + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -5058,8 +8091,7 @@ }, "node_modules/ajv": { "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -5073,8 +8105,7 @@ }, "node_modules/ajv-draft-04": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", - "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "license": "MIT", "peerDependencies": { "ajv": "^8.5.0" }, @@ -5086,8 +8117,7 @@ }, "node_modules/ajv-formats": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -5102,18 +8132,16 @@ }, "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, + "license": "ISC", "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, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -5126,9 +8154,8 @@ }, "node_modules/ansi-escapes/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, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -5138,18 +8165,15 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -5162,15 +8186,13 @@ }, "node_modules/any-promise": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -5181,41 +8203,62 @@ }, "node_modules/app-module-path": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", - "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/aproba": { + "version": "2.0.0", + "license": "ISC" + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "3.6.2", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } }, "node_modules/arg": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "dev": true, + "license": "MIT" }, "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==" + "license": "Python-2.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, + "license": "MIT", "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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -5232,18 +8275,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -5259,9 +8300,8 @@ }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -5277,88 +8317,112 @@ }, "node_modules/arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/asap": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ast-module-types": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-3.0.0.tgz", - "integrity": "sha512-CMxMCOCS+4D+DkOQfuZf+vLrSEmY/7xtORwdxs4wtcC1wVgvk2MqFFTwQCFhvWsI4KPU9lcWXPI8DgRiz+xetQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0" } }, "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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/async": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + "license": "MIT" }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "license": "MIT" }, "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, + "license": "ISC", "engines": { "node": ">= 4.0.0" } }, "node_modules/available-typed-arrays": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/await-handler": { + "version": "1.1.2", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz", + "integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios-mock-adapter": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.22.0.tgz", + "integrity": "sha512-dmI0KbkyAhntUR05YY96qg2H6gg0XMl2+qTW0xmYg6Up+BFBAJYRLROMXRdDEL06/Wqwa0TJThAYvFtSFdRCZw==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "is-buffer": "^2.0.5" + }, + "peerDependencies": { + "axios": ">= 0.17.0" + } + }, + "node_modules/axios-mock-adapter/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/await-handler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/await-handler/-/await-handler-1.1.2.tgz", - "integrity": "sha512-dihteGhwbJpT89kVbacWiyKeAZr+En0YGK6pAKQJLR0En9ZxSH2H4TTvfG4bBjzFq9gDAma4y9BrpDns6j5UiQ==" - }, - "node_modules/axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "node": ">=4" } }, "node_modules/babel-jest": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.0.tgz", - "integrity": "sha512-Jj8Bq2yKsk11XLk06Nm8SdvYkAcecH+GuhxB8DnK5SncjHnJ88TQjSnGgE7jpajpnSvz9DZ6X8hXrDkD/6/TPQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/transform": "^29.6.0", "@types/babel__core": "^7.1.14", @@ -5377,9 +8441,8 @@ }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -5393,9 +8456,8 @@ }, "node_modules/babel-plugin-jest-hoist": { "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", - "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -5408,9 +8470,8 @@ }, "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, + "license": "MIT", "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", @@ -5431,9 +8492,8 @@ }, "node_modules/babel-preset-jest": { "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", - "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", "dev": true, + "license": "MIT", "dependencies": { "babel-plugin-jest-hoist": "^29.5.0", "babel-preset-current-node-syntax": "^1.0.0" @@ -5447,13 +8507,10 @@ }, "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==" + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -5467,13 +8524,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/benchmark-suite": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/benchmark-suite/-/benchmark-suite-0.1.8.tgz", - "integrity": "sha512-UDfWBQfeq/lXcsjuGAanOrX6AhP6HQSsutGS7CfStcbE1loLge7aQr5DT6n8r/4bUoiK+5RYwnogNu5UuTBMNg==", "dev": true, + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.7", "expose-gc": "^1.0.0", @@ -5485,16 +8542,21 @@ "node": ">=8" } }, + "node_modules/bindings": { + "version": "1.5.0", + "license": "MIT", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, "node_modules/bintrees": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", - "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==" + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -5503,9 +8565,8 @@ }, "node_modules/bl/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, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5517,20 +8578,17 @@ }, "node_modules/boolean": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/bowser": { "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", - "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", @@ -5550,9 +8608,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">=10" }, @@ -5562,9 +8619,8 @@ }, "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, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -5574,8 +8630,7 @@ }, "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==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5583,9 +8638,8 @@ }, "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, + "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -5595,8 +8649,6 @@ }, "node_modules/browserslist": { "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", "dev": true, "funding": [ { @@ -5612,6 +8664,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001503", "electron-to-chromium": "^1.4.431", @@ -5627,9 +8680,8 @@ }, "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, + "license": "MIT", "dependencies": { "fast-json-stable-stringify": "2.x" }, @@ -5639,17 +8691,15 @@ }, "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, + "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } }, "node_modules/btoa": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "license": "(MIT OR Apache-2.0)", "bin": { "btoa": "bin/btoa.js" }, @@ -5659,8 +8709,7 @@ }, "node_modules/buffer": { "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "license": "MIT", "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4" @@ -5668,15 +8717,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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "engines": { "node": ">=6" }, @@ -5686,24 +8733,21 @@ }, "node_modules/byline": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/bytes": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/cache-content-type": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", - "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", + "license": "MIT", "dependencies": { "mime-types": "^2.1.18", "ylru": "^1.2.0" @@ -5714,9 +8758,8 @@ }, "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, + "license": "MIT", "dependencies": { "clone-response": "1.0.2", "get-stream": "3.0.0", @@ -5729,35 +8772,31 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "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, + "license": "MIT", "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==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -5768,33 +8807,29 @@ }, "node_modules/call-me-maybe": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "camelcase": "^5.3.1", "map-obj": "^4.0.0", @@ -5809,8 +8844,6 @@ }, "node_modules/caniuse-lite": { "version": "1.0.30001512", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001512.tgz", - "integrity": "sha512-2S9nK0G/mE+jasCUsMPlARhRCts1ebcp2Ji8Y8PWi4NDE1iRdLCnEPHkEfeBrGC45L4isBx5ur3IQ6yTE2mRZw==", "dev": true, "funding": [ { @@ -5825,13 +8858,13 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "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, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5845,40 +8878,41 @@ }, "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, + "license": "MIT", "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 + "dev": true, + "license": "MIT" }, "node_modules/charenc": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "license": "BSD-3-Clause", "engines": { "node": "*" } }, "node_modules/check-more-types": { "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, + "node_modules/chownr": { + "version": "2.0.0", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/ci-info": { "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", "dev": true, "funding": [ { @@ -5886,21 +8920,20 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/cjs-module-lexer": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -5910,18 +8943,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "engines": { "node": ">=6" }, @@ -5931,9 +8962,8 @@ }, "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, + "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -5943,9 +8973,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, + "license": "MIT", "engines": { "node": ">=6" }, @@ -5955,9 +8984,8 @@ }, "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, + "license": "MIT", "dependencies": { "slice-ansi": "^5.0.0", "string-width": "^5.0.0" @@ -5971,9 +8999,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">=12" }, @@ -5983,9 +9010,8 @@ }, "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, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -6000,9 +9026,8 @@ }, "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, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -6015,18 +9040,16 @@ }, "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, + "license": "ISC", "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, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -6038,33 +9061,29 @@ }, "node_modules/clone": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "license": "MIT", "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, + "license": "MIT", "dependencies": { "mimic-response": "^1.0.0" } }, "node_modules/cluster-key-slot": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "license": "Apache-2.0", "engines": { "node": ">=0.10.0" } }, "node_modules/co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "license": "MIT", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -6072,8 +9091,7 @@ }, "node_modules/co-body": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz", - "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", + "license": "MIT", "dependencies": { "inflation": "^2.0.0", "qs": "^6.5.2", @@ -6083,14 +9101,12 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/color": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.3", "color-string": "^1.6.0" @@ -6098,9 +9114,8 @@ }, "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, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -6110,49 +9125,49 @@ }, "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==" + "license": "MIT" }, "node_modules/color-string": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, + "node_modules/color-support": { + "version": "1.1.3", + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, "node_modules/color/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==", + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/color/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==" + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "node_modules/colors": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "license": "MIT", "engines": { "node": ">=0.1.90" } }, "node_modules/colorspace": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "license": "MIT", "dependencies": { "color": "^3.1.3", "text-hex": "1.0.x" @@ -6160,8 +9175,7 @@ }, "node_modules/combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -6171,18 +9185,16 @@ }, "node_modules/commander": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/commitizen": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.3.0.tgz", - "integrity": "sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==", "dev": true, + "license": "MIT", "dependencies": { "cachedir": "2.3.0", "cz-conventional-changelog": "3.3.0", @@ -6210,9 +9222,8 @@ }, "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, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6230,9 +9241,8 @@ }, "node_modules/commitizen/node_modules/inquirer": { "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -6256,18 +9266,16 @@ }, "node_modules/commitizen/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, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/commitlint": { "version": "17.6.6", - "resolved": "https://registry.npmjs.org/commitlint/-/commitlint-17.6.6.tgz", - "integrity": "sha512-Q5M+w1nqGQSEkEW43EtPNrU+uKL2pENrJl6QigFupZ0v4AfvI8k5Q6uFgWmxlEOrSkgCYaN436Q9c9pydqyJqg==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/cli": "^17.6.6", "@commitlint/types": "^17.4.4" @@ -6281,15 +9289,13 @@ }, "node_modules/commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "array-ify": "^1.0.0", "dot-prop": "^5.1.0" @@ -6297,9 +9303,8 @@ }, "node_modules/compare-func/node_modules/dot-prop": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", - "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", "dev": true, + "license": "MIT", "dependencies": { "is-obj": "^1.0.0" }, @@ -6309,17 +9314,14 @@ }, "node_modules/compare-func/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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/component-each": { "version": "0.2.6", - "resolved": "https://registry.npmjs.org/component-each/-/component-each-0.2.6.tgz", - "integrity": "sha512-IOXG+HZmbgaBS8Rqy+tAMrwsPdEY1BWcPcp0xI2ZOzKQhHvSVGrL7iCnoDU37TEKOCfaf4ywsR6GwAr0JivPjg==", "dependencies": { "component-type": "1.0.0", "to-function": "2.0.6" @@ -6327,35 +9329,31 @@ }, "node_modules/component-emitter": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/component-props": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/component-props/-/component-props-1.1.1.tgz", - "integrity": "sha512-69pIRJs9fCCHRqCz3390YF2LV1Lu6iEMZ5zuVqqUn+G20V9BNXlMs0cWawWeW9g4Ynmg29JmkG6R7/lUJoGd1Q==" + "version": "1.1.1" }, "node_modules/component-type": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.0.0.tgz", - "integrity": "sha512-qzUg4SGDH6KFYlcklmeZwucbtosh/XGwuIffqXAhC1dZyjO7Xu1UuaxwKRY29EncuBj/DH+h6Zot3AdZS6xdFw==" + "version": "1.0.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==" + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "license": "ISC" }, "node_modules/content-disposition": { "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -6365,17 +9363,15 @@ }, "node_modules/content-type": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "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, + "license": "MIT", "dependencies": { "conventional-changelog-angular": "^5.0.12", "conventional-changelog-atom": "^2.0.8", @@ -6395,9 +9391,8 @@ }, "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, + "license": "ISC", "dependencies": { "compare-func": "^2.0.0", "q": "^1.5.1" @@ -6408,9 +9403,8 @@ }, "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, + "license": "ISC", "dependencies": { "q": "^1.5.1" }, @@ -6420,9 +9414,8 @@ }, "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, + "license": "ISC", "dependencies": { "q": "^1.5.1" }, @@ -6432,15 +9425,13 @@ }, "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 + "dev": true, + "license": "MIT" }, "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, + "license": "ISC", "dependencies": { "compare-func": "^2.0.0", "lodash": "^4.17.15", @@ -6452,9 +9443,8 @@ }, "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, + "license": "MIT", "dependencies": { "add-stream": "^1.0.0", "conventional-changelog-writer": "^5.0.0", @@ -6477,9 +9467,8 @@ }, "node_modules/conventional-changelog-core/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, + "license": "MIT", "dependencies": { "locate-path": "^2.0.0" }, @@ -6489,15 +9478,13 @@ }, "node_modules/conventional-changelog-core/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 + "dev": true, + "license": "ISC" }, "node_modules/conventional-changelog-core/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, + "license": "MIT", "dependencies": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -6508,9 +9495,8 @@ }, "node_modules/conventional-changelog-core/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, + "license": "MIT", "dependencies": { "p-try": "^1.0.0" }, @@ -6520,9 +9506,8 @@ }, "node_modules/conventional-changelog-core/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, + "license": "MIT", "dependencies": { "p-limit": "^1.1.0" }, @@ -6532,27 +9517,24 @@ }, "node_modules/conventional-changelog-core/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, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-changelog-core/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, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-changelog-core/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, + "license": "MIT", "dependencies": { "pify": "^3.0.0" }, @@ -6562,18 +9544,16 @@ }, "node_modules/conventional-changelog-core/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, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-changelog-core/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, + "license": "MIT", "dependencies": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", @@ -6585,9 +9565,8 @@ }, "node_modules/conventional-changelog-core/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, + "license": "MIT", "dependencies": { "find-up": "^2.0.0", "read-pkg": "^3.0.0" @@ -6598,9 +9577,8 @@ }, "node_modules/conventional-changelog-core/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, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -6610,18 +9588,16 @@ }, "node_modules/conventional-changelog-core/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "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, + "license": "ISC", "dependencies": { "q": "^1.5.1" }, @@ -6631,9 +9607,8 @@ }, "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, + "license": "ISC", "dependencies": { "q": "^1.5.1" }, @@ -6643,9 +9618,8 @@ }, "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, + "license": "ISC", "dependencies": { "q": "^1.5.1" }, @@ -6655,9 +9629,8 @@ }, "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, + "license": "ISC", "dependencies": { "q": "^1.5.1" }, @@ -6667,18 +9640,16 @@ }, "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, + "license": "ISC", "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, + "license": "ISC", "dependencies": { "compare-func": "^2.0.0", "q": "^1.5.1" @@ -6689,18 +9660,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "conventional-commits-filter": "^2.0.7", "dateformat": "^3.0.0", @@ -6721,24 +9690,21 @@ }, "node_modules/conventional-changelog-writer/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "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 + "dev": true, + "license": "ISC" }, "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, + "license": "MIT", "dependencies": { "lodash.ismatch": "^4.4.0", "modify-values": "^1.0.0" @@ -6749,9 +9715,8 @@ }, "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, + "license": "MIT", "dependencies": { "is-text-path": "^1.0.1", "JSONStream": "^1.0.4", @@ -6769,9 +9734,8 @@ }, "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, + "license": "MIT", "dependencies": { "conventional-changelog": "^2.0.0", "dateformat": "^3.0.0", @@ -6795,9 +9759,8 @@ }, "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, + "license": "MIT", "dependencies": { "array-ify": "^1.0.0", "dot-prop": "^3.0.0" @@ -6805,9 +9768,8 @@ }, "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, + "license": "MIT", "dependencies": { "conventional-changelog-angular": "^1.6.6", "conventional-changelog-atom": "^2.0.0", @@ -6827,9 +9789,8 @@ }, "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, + "license": "ISC", "dependencies": { "compare-func": "^1.3.1", "q": "^1.5.1" @@ -6837,9 +9798,8 @@ }, "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, + "license": "MIT", "dependencies": { "conventional-changelog-writer": "^4.0.6", "conventional-commits-parser": "^3.0.3", @@ -6861,9 +9821,8 @@ }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-core/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, + "license": "MIT", "dependencies": { "find-up": "^2.0.0", "read-pkg": "^3.0.0" @@ -6874,9 +9833,8 @@ }, "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, + "license": "MIT", "dependencies": { "inherits": "^2.0.4", "readable-stream": "2 || 3" @@ -6884,18 +9842,16 @@ }, "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, + "license": "ISC", "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, + "license": "MIT", "dependencies": { "compare-func": "^2.0.0", "conventional-commits-filter": "^2.0.7", @@ -6917,9 +9873,8 @@ }, "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, + "license": "MIT", "dependencies": { "array-ify": "^1.0.0", "dot-prop": "^5.1.0" @@ -6927,9 +9882,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, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6939,9 +9893,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, + "license": "MIT", "dependencies": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", @@ -6964,9 +9917,8 @@ }, "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, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^4.0.1", "is-core-module": "^2.5.0", @@ -6979,9 +9931,8 @@ }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/normalize-package-data/node_modules/semver": { "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6994,9 +9945,8 @@ }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -7008,27 +9958,24 @@ }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "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, + "license": "MIT", "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, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -7038,9 +9985,8 @@ }, "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, + "license": "MIT", "dependencies": { "number-is-nan": "^1.0.0" }, @@ -7050,18 +9996,16 @@ }, "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, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/conventional-github-releaser/node_modules/dot-prop": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", - "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", "dev": true, + "license": "MIT", "dependencies": { "is-obj": "^1.0.0" }, @@ -7071,9 +10015,8 @@ }, "node_modules/conventional-github-releaser/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, + "license": "MIT", "dependencies": { "locate-path": "^2.0.0" }, @@ -7083,9 +10026,8 @@ }, "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, + "license": "MIT", "dependencies": { "hosted-git-info": "^2.1.4", "meow": "^3.3.0", @@ -7099,18 +10041,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "camelcase": "^2.0.0", "map-obj": "^1.0.0" @@ -7121,9 +10061,8 @@ }, "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, + "license": "MIT", "dependencies": { "path-exists": "^2.0.0", "pinkie-promise": "^2.0.0" @@ -7134,9 +10073,8 @@ }, "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/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, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", @@ -7150,9 +10088,8 @@ }, "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, + "license": "MIT", "dependencies": { "camelcase-keys": "^2.0.0", "decamelize": "^1.1.2", @@ -7171,9 +10108,8 @@ }, "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/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, + "license": "MIT", "dependencies": { "pinkie-promise": "^2.0.0" }, @@ -7183,9 +10119,8 @@ }, "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/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, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "pify": "^2.0.0", @@ -7197,18 +10132,16 @@ }, "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "load-json-file": "^1.0.0", "normalize-package-data": "^2.3.2", @@ -7220,9 +10153,8 @@ }, "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, + "license": "MIT", "dependencies": { "find-up": "^1.0.0", "read-pkg": "^1.0.0" @@ -7233,9 +10165,8 @@ }, "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, + "license": "MIT", "dependencies": { "indent-string": "^2.1.0", "strip-indent": "^1.0.1" @@ -7246,9 +10177,8 @@ }, "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, + "license": "MIT", "dependencies": { "dargs": "^4.0.1", "lodash.template": "^4.0.2", @@ -7265,18 +10195,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "camelcase": "^4.1.0", "map-obj": "^2.0.0", @@ -7288,27 +10216,24 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "camelcase-keys": "^4.0.0", "decamelize-keys": "^1.0.0", @@ -7326,9 +10251,8 @@ }, "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, + "license": "MIT", "dependencies": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0" @@ -7339,9 +10263,8 @@ }, "node_modules/conventional-github-releaser/node_modules/git-raw-commits/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, + "license": "MIT", "dependencies": { "find-up": "^2.0.0", "read-pkg": "^3.0.0" @@ -7352,9 +10275,8 @@ }, "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, + "license": "MIT", "dependencies": { "indent-string": "^3.0.0", "strip-indent": "^2.0.0" @@ -7365,18 +10287,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "meow": "^4.0.0", "semver": "^6.0.0" @@ -7390,18 +10310,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "camelcase": "^4.1.0", "map-obj": "^2.0.0", @@ -7413,27 +10331,24 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "camelcase-keys": "^4.0.0", "decamelize-keys": "^1.0.0", @@ -7451,9 +10366,8 @@ }, "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, + "license": "MIT", "dependencies": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0" @@ -7464,9 +10378,8 @@ }, "node_modules/conventional-github-releaser/node_modules/git-semver-tags/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, + "license": "MIT", "dependencies": { "find-up": "^2.0.0", "read-pkg": "^3.0.0" @@ -7477,9 +10390,8 @@ }, "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, + "license": "MIT", "dependencies": { "indent-string": "^3.0.0", "strip-indent": "^2.0.0" @@ -7490,33 +10402,29 @@ }, "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "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, + "license": "MIT", "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 + "dev": true, + "license": "ISC" }, "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, + "license": "MIT", "dependencies": { "repeating": "^2.0.0" }, @@ -7526,18 +10434,16 @@ }, "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/conventional-github-releaser/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, + "license": "MIT", "dependencies": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -7548,9 +10454,8 @@ }, "node_modules/conventional-github-releaser/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, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -7560,18 +10465,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", @@ -7594,9 +10497,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, + "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -7607,9 +10509,8 @@ }, "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, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -7619,9 +10520,8 @@ }, "node_modules/conventional-github-releaser/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, + "license": "MIT", "dependencies": { "p-try": "^1.0.0" }, @@ -7631,9 +10531,8 @@ }, "node_modules/conventional-github-releaser/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, + "license": "MIT", "dependencies": { "p-limit": "^1.1.0" }, @@ -7643,18 +10542,16 @@ }, "node_modules/conventional-github-releaser/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, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-github-releaser/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, + "license": "MIT", "dependencies": { "error-ex": "^1.2.0" }, @@ -7664,18 +10561,16 @@ }, "node_modules/conventional-github-releaser/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, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-github-releaser/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, + "license": "MIT", "dependencies": { "pify": "^3.0.0" }, @@ -7685,27 +10580,24 @@ }, "node_modules/conventional-github-releaser/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, + "license": "MIT", "engines": { "node": ">=4" } }, "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, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-github-releaser/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, + "license": "MIT", "dependencies": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", @@ -7717,27 +10609,24 @@ }, "node_modules/conventional-github-releaser/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "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, + "license": "ISC", "dependencies": { "through2": "^2.0.2" } }, "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, + "license": "MIT", "dependencies": { "is-utf8": "^0.2.0" }, @@ -7747,9 +10636,8 @@ }, "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, + "license": "MIT", "dependencies": { "get-stdin": "^4.0.1" }, @@ -7762,9 +10650,8 @@ }, "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, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -7772,9 +10659,8 @@ }, "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, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -7784,15 +10670,13 @@ }, "node_modules/conventional-github-releaser/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 + "dev": true, + "license": "ISC" }, "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, + "license": "MIT", "dependencies": { "concat-stream": "^2.0.0", "conventional-changelog-preset-loader": "^2.3.4", @@ -7812,12 +10696,11 @@ }, "node_modules/conventional-recommended-bump/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" ], + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -7827,9 +10710,8 @@ }, "node_modules/conventional-recommended-bump/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, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -7840,31 +10722,24 @@ } }, "node_modules/convert-hex": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/convert-hex/-/convert-hex-0.1.0.tgz", - "integrity": "sha512-w20BOb1PiR/sEJdS6wNrUjF5CSfscZFUp7R9NSlXH8h2wynzXVEPFPJECAnkNylZ+cvf3p7TyRUHggDmrwXT9A==" + "version": "0.1.0" }, "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 + "dev": true, + "license": "MIT" }, "node_modules/convert-string": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/convert-string/-/convert-string-0.1.0.tgz", - "integrity": "sha512-1KX9ESmtl8xpT2LN2tFnKSbV4NiarbVi8DVb39ZriijvtTklyrT+4dT1wsGMHKD3CJUjXgvJzstm9qL9ICojGA==" + "version": "0.1.0" }, "node_modules/cookiejar": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", - "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cookies": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", - "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", + "license": "MIT", "dependencies": { "depd": "~2.0.0", "keygrip": "~1.1.0" @@ -7875,20 +10750,17 @@ }, "node_modules/copy-to": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz", - "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==" + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "node_modules/cosmiconfig": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", "dev": true, + "license": "MIT", "dependencies": { "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -7901,9 +10773,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">=12", "npm": ">=6" @@ -7917,15 +10788,13 @@ }, "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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -7937,22 +10806,26 @@ }, "node_modules/crypt": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "license": "BSD-3-Clause", "engines": { "node": "*" } }, + "node_modules/crypto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz", + "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==", + "deprecated": "This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in." + }, "node_modules/crypto-js": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", - "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" }, "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, + "license": "MIT", "dependencies": { "array-find-index": "^1.0.1" }, @@ -7962,9 +10835,8 @@ }, "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, + "license": "MIT", "dependencies": { "chalk": "^2.4.1", "commitizen": "^4.0.3", @@ -7982,9 +10854,8 @@ }, "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, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -7994,9 +10865,8 @@ }, "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, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -8008,33 +10878,29 @@ }, "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, + "license": "MIT", "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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -8044,26 +10910,23 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "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==", + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -8078,18 +10941,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" @@ -8103,27 +10964,24 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "mimic-response": "^1.0.0" }, @@ -8133,38 +10991,33 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/deep-extend": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } }, "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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "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==", + "license": "MIT", "dependencies": { "clone": "^1.0.2" }, @@ -8174,17 +11027,15 @@ }, "node_modules/defaults/node_modules/clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "license": "MIT", "engines": { "node": ">=0.8" } }, "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, + "license": "MIT", "dependencies": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -8198,8 +11049,7 @@ }, "node_modules/delay": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -8209,38 +11059,33 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + "license": "MIT" }, "node_modules/denque": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "license": "Apache-2.0", "engines": { "node": ">=0.10" } }, "node_modules/depd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/dependency-tree": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/dependency-tree/-/dependency-tree-9.0.0.tgz", - "integrity": "sha512-osYHZJ1fBSon3lNLw70amAXsQ+RGzXsPvk9HbBgTLbp/bQBmpH5mOmsUvqXU+YEWVU0ZLewsmzOET/8jWswjDQ==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^2.20.3", "debug": "^4.3.1", @@ -8257,33 +11102,29 @@ }, "node_modules/dependency-tree/node_modules/ast-module-types": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-4.0.0.tgz", - "integrity": "sha512-Kd0o8r6CDazJGCRzs8Ivpn0xj19oNKrULhoJFzhGjRsLpekF2zyZs9Ukz+JvZhWD6smszfepakTFhAaYpsI12g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.0" } }, "node_modules/dependency-tree/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 + "dev": true, + "license": "MIT" }, "node_modules/dependency-tree/node_modules/detective-stylus": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-3.0.0.tgz", - "integrity": "sha512-1xYTzbrduExqMYmte7Qk99IRA3Aa6oV7PYzd+3yDcQXkmENvyGF/arripri6lxRDdNYEb4fZFuHtNRAXbz3iAA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" } }, "node_modules/dependency-tree/node_modules/module-definition": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-4.1.0.tgz", - "integrity": "sha512-rHXi/DpMcD2qcKbPCTklDbX9lBKJrUSl971TW5l6nMpqKCIlzJqmQ8cfEF5M923h2OOLHPDVlh5pJxNyV+AJlw==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^4.0.0", "node-source-walk": "^5.0.1" @@ -8297,9 +11138,8 @@ }, "node_modules/dependency-tree/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -8309,9 +11149,8 @@ }, "node_modules/dependency-tree/node_modules/precinct": { "version": "9.2.1", - "resolved": "https://registry.npmjs.org/precinct/-/precinct-9.2.1.tgz", - "integrity": "sha512-uzKHaTyiVejWW7VJtHInb9KBUq9yl9ojxXGujhjhDmPon2wgZPBKQIKR+6csGqSlUeGXAA4MEFnU6DesxZib+A==", "dev": true, + "license": "MIT", "dependencies": { "@dependents/detective-less": "^3.0.1", "commander": "^9.5.0", @@ -8335,18 +11174,16 @@ }, "node_modules/dependency-tree/node_modules/precinct/node_modules/commander": { "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || >=14" } }, "node_modules/dependency-tree/node_modules/typescript": { "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -8357,8 +11194,7 @@ }, "node_modules/destroy": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -8366,36 +11202,39 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-libc": { + "version": "2.0.2", + "license": "Apache-2.0", "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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/detective-amd": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-4.1.0.tgz", - "integrity": "sha512-XlQrGjGEnMFjKbep0/S/T7XICxf25LFMP6Ug+Iw/Ww/MHUBzfy8QETCzamO1JlAMYPmkChDh21/NS/csG0FwGg==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^4.0.0", "escodegen": "^2.0.0", @@ -8411,18 +11250,16 @@ }, "node_modules/detective-amd/node_modules/ast-module-types": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-4.0.0.tgz", - "integrity": "sha512-Kd0o8r6CDazJGCRzs8Ivpn0xj19oNKrULhoJFzhGjRsLpekF2zyZs9Ukz+JvZhWD6smszfepakTFhAaYpsI12g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.0" } }, "node_modules/detective-amd/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -8432,9 +11269,8 @@ }, "node_modules/detective-cjs": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-4.1.0.tgz", - "integrity": "sha512-QxzMwt5MfPLwS7mG30zvnmOvHLx5vyVvjsAV6gQOyuMoBR5G1DhS1eJZ4P10AlH+HSnk93mTcrg3l39+24XCtg==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^4.0.0", "node-source-walk": "^5.0.1" @@ -8445,18 +11281,16 @@ }, "node_modules/detective-cjs/node_modules/ast-module-types": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-4.0.0.tgz", - "integrity": "sha512-Kd0o8r6CDazJGCRzs8Ivpn0xj19oNKrULhoJFzhGjRsLpekF2zyZs9Ukz+JvZhWD6smszfepakTFhAaYpsI12g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.0" } }, "node_modules/detective-cjs/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -8466,9 +11300,8 @@ }, "node_modules/detective-es6": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-3.0.1.tgz", - "integrity": "sha512-evPeYIEdK1jK3Oji5p0hX4sPV/1vK+o4ihcWZkMQE6voypSW/cIBiynOLxQk5KOOQbdP8oOAsYqouMTYO5l1sw==", "dev": true, + "license": "MIT", "dependencies": { "node-source-walk": "^5.0.0" }, @@ -8478,9 +11311,8 @@ }, "node_modules/detective-es6/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -8490,9 +11322,8 @@ }, "node_modules/detective-less": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/detective-less/-/detective-less-1.0.2.tgz", - "integrity": "sha512-Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.0.0", "gonzales-pe": "^4.2.3", @@ -8504,9 +11335,8 @@ }, "node_modules/detective-postcss": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-6.1.1.tgz", - "integrity": "sha512-mX62A6chiafyFW9AwGF6B/uVU+F3hGMZwXDqCHe+NjmU/M5jlDBazdXb1sMoDE+InTDsoPaX3bUUOH33Yxn5Sw==", "dev": true, + "license": "MIT", "dependencies": { "is-url": "^1.2.4", "postcss": "^8.4.21", @@ -8518,9 +11348,8 @@ }, "node_modules/detective-sass": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-4.1.1.tgz", - "integrity": "sha512-KSUoOdrLXxSZFnHpGyXufWUP6VkfSdSNC/uezbJkKIwy2i3px5NQPY5hWOR0k9OFlrBakucymD3Ap4d87zobUQ==", "dev": true, + "license": "MIT", "dependencies": { "gonzales-pe": "^4.3.0", "node-source-walk": "^5.0.0" @@ -8531,9 +11360,8 @@ }, "node_modules/detective-sass/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -8543,9 +11371,8 @@ }, "node_modules/detective-scss": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-3.0.1.tgz", - "integrity": "sha512-Bv/t1dEKHCPJ9+byha7wKg4zda8IFk7KZpEX+ZJs2k1HsWIE3+FBeVFLtD3y9GYGfi8l7Sim3pULPz4+yLwW9A==", "dev": true, + "license": "MIT", "dependencies": { "gonzales-pe": "^4.3.0", "node-source-walk": "^5.0.0" @@ -8556,9 +11383,8 @@ }, "node_modules/detective-scss/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -8568,18 +11394,16 @@ }, "node_modules/detective-stylus": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-2.0.1.tgz", - "integrity": "sha512-/Tvs1pWLg8eYwwV6kZQY5IslGaYqc/GACxjcaGudiNtN5nKCH6o2WnJK3j0gA3huCnoQcbv8X7oz/c1lnvE3zQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0" } }, "node_modules/detective-typescript": { "version": "9.1.1", - "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-9.1.1.tgz", - "integrity": "sha512-Uc1yVutTF0RRm1YJ3g//i1Cn2vx1kwHj15cnzQP6ff5koNzQ0idc1zAC73ryaWEulA0ElRXFTq6wOqe8vUQ3MA==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "^5.55.0", "ast-module-types": "^4.0.0", @@ -8592,18 +11416,16 @@ }, "node_modules/detective-typescript/node_modules/ast-module-types": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-4.0.0.tgz", - "integrity": "sha512-Kd0o8r6CDazJGCRzs8Ivpn0xj19oNKrULhoJFzhGjRsLpekF2zyZs9Ukz+JvZhWD6smszfepakTFhAaYpsI12g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.0" } }, "node_modules/detective-typescript/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -8613,9 +11435,8 @@ }, "node_modules/detective-typescript/node_modules/typescript": { "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -8626,9 +11447,8 @@ }, "node_modules/dezalgo": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", "dev": true, + "license": "ISC", "dependencies": { "asap": "^2.0.0", "wrappy": "1" @@ -8636,27 +11456,24 @@ }, "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, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/diff-sequences": { "version": "29.4.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", - "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", "dev": true, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -8666,9 +11483,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, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -8678,17 +11494,15 @@ }, "node_modules/dotenv": { "version": "16.0.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", - "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "license": "BSD-2-Clause", "engines": { "node": ">=12" } }, "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, + "license": "ISC", "dependencies": { "find-up": "^3.0.0", "minimatch": "^3.0.4" @@ -8699,9 +11513,8 @@ }, "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, + "license": "MIT", "dependencies": { "locate-path": "^3.0.0" }, @@ -8711,9 +11524,8 @@ }, "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, + "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -8724,9 +11536,8 @@ }, "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, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -8739,9 +11550,8 @@ }, "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, + "license": "MIT", "dependencies": { "p-limit": "^2.0.0" }, @@ -8751,17 +11561,14 @@ }, "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, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/dreamopt": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/dreamopt/-/dreamopt-0.8.0.tgz", - "integrity": "sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==", "dependencies": { "wordwrap": ">=0.0.2" }, @@ -8771,32 +11578,27 @@ }, "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 + "dev": true, + "license": "BSD-3-Clause" }, "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 + "dev": true, + "license": "MIT" }, "node_modules/ee-first": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "license": "MIT" }, "node_modules/electron-to-chromium": { "version": "1.4.450", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.450.tgz", - "integrity": "sha512-BLG5HxSELlrMx7dJ2s+8SFlsCtJp37Zpk2VAxyC6CZtbc+9AJeZHfYHbrlSgdXp6saQ8StMqOTEDaBKgA7u1sw==", - "dev": true + "dev": true, + "license": "ISC" }, "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, + "license": "MIT", "engines": { "node": ">=12" }, @@ -8806,44 +11608,38 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/empty-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/empty-dir/-/empty-dir-1.0.0.tgz", - "integrity": "sha512-97qcDM6mUA1jAeX6cktw7akc5awIGA+VIkA5MygKOKA+c2Vseo/xwKN0JNJTUhZUtPwZboKVD2p1xu+sV/F4xA==", + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/enabled": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" + "license": "MIT" }, "node_modules/encodeurl": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "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, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -8854,9 +11650,8 @@ }, "node_modules/entities": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", - "integrity": "sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -8866,25 +11661,22 @@ }, "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==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/error-stack-parser": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "license": "MIT", "dependencies": { "stackframe": "^1.3.4" } }, "node_modules/es-abstract": { "version": "1.21.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.0.tgz", - "integrity": "sha512-GUGtW7eXQay0c+PRq0sGIKSdaBorfVqsCMhGHo4elP7YVqZu9nCZS4UkK4gv71gOWNMra/PaSKD3ao1oWExO0g==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "es-set-tostringtag": "^2.0.0", @@ -8928,9 +11720,8 @@ }, "node_modules/es-set-tostringtag": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3", "has": "^1.0.3", @@ -8942,18 +11733,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -8968,36 +11757,31 @@ }, "node_modules/es6-promise": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==" + "license": "MIT" }, "node_modules/escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-html": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "license": "MIT" }, "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==", + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/escodegen": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -9017,9 +11801,8 @@ }, "node_modules/escodegen/node_modules/levn": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" @@ -9030,9 +11813,8 @@ }, "node_modules/escodegen/node_modules/optionator": { "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, + "license": "MIT", "dependencies": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", @@ -9047,8 +11829,6 @@ }, "node_modules/escodegen/node_modules/prelude-ls": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -9056,9 +11836,8 @@ }, "node_modules/escodegen/node_modules/type-check": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "~1.1.2" }, @@ -9068,9 +11847,8 @@ }, "node_modules/eslint": { "version": "8.41.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz", - "integrity": "sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", @@ -9124,9 +11902,8 @@ }, "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, + "license": "MIT", "dependencies": { "confusing-browser-globals": "^1.0.10", "object.assign": "^4.1.2", @@ -9143,18 +11920,16 @@ }, "node_modules/eslint-config-airbnb-base/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-config-airbnb-typescript": { "version": "17.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.0.0.tgz", - "integrity": "sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g==", "dev": true, + "license": "MIT", "dependencies": { "eslint-config-airbnb-base": "^15.0.0" }, @@ -9167,9 +11942,8 @@ }, "node_modules/eslint-config-prettier": { "version": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", - "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", "dev": true, + "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -9179,9 +11953,8 @@ }, "node_modules/eslint-import-resolver-node": { "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.11.0", @@ -9190,18 +11963,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -9216,18 +11987,16 @@ }, "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, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import": { "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", @@ -9254,18 +12023,16 @@ }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -9275,18 +12042,16 @@ }, "node_modules/eslint-plugin-import/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "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, + "license": "MIT", "dependencies": { "lodash": "^4.17.21", "vscode-json-languageservice": "^4.1.6" @@ -9297,9 +12062,8 @@ }, "node_modules/eslint-plugin-sonarjs": { "version": "0.19.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.19.0.tgz", - "integrity": "sha512-6+s5oNk5TFtVlbRxqZN7FIGmjdPCYQKaTzFPmqieCmsU1kBYDzndTeQav0xtQNwZJWu5awWfTGe8Srq9xFOGnw==", "dev": true, + "license": "LGPL-3.0", "engines": { "node": ">=14" }, @@ -9309,9 +12073,8 @@ }, "node_modules/eslint-plugin-unicorn": { "version": "46.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-46.0.1.tgz", - "integrity": "sha512-setGhMTiLAddg1asdwjZ3hekIN5zLznNa5zll7pBPwFOka6greCKDQydfqy4fqyUhndi74wpDzClSQMEcmOaew==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.19.1", "@eslint-community/eslint-utils": "^4.1.2", @@ -9342,9 +12105,8 @@ }, "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, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -9354,9 +12116,8 @@ }, "node_modules/eslint-scope": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -9370,9 +12131,8 @@ }, "node_modules/eslint-visitor-keys": { "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -9382,9 +12142,8 @@ }, "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, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -9398,9 +12157,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">=10" }, @@ -9410,15 +12168,13 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/espree": { "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", @@ -9433,9 +12189,8 @@ }, "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, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -9446,9 +12201,8 @@ }, "node_modules/esquery": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -9458,9 +12212,8 @@ }, "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, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -9470,41 +12223,36 @@ }, "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, + "license": "BSD-2-Clause", "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, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/eventemitter3": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", "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, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -9525,8 +12273,6 @@ }, "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" @@ -9534,9 +12280,8 @@ }, "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, + "license": "MIT", "dependencies": { "homedir-polyfill": "^1.0.1" }, @@ -9546,9 +12291,8 @@ }, "node_modules/expect": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.0.tgz", - "integrity": "sha512-AV+HaBtnDJ2YEUhPPo25HyUHBLaetM+y/Dq6pEC8VPQyt1dK+k8MfGkMy46djy2bddcqESc1kl4/K1uLWSfk9g==", "dev": true, + "license": "MIT", "dependencies": { "@jest/expect-utils": "^29.6.0", "@types/node": "*", @@ -9563,18 +12307,16 @@ }, "node_modules/expose-gc": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/expose-gc/-/expose-gc-1.0.0.tgz", - "integrity": "sha512-ecOHrdm+zyOCGIwX18/1RHkUWgxDqGGRiGhaNC+42jReTtudbm2ID/DMa/wpaHwqy5YQHPZvsDqRM2F2iZ0uVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "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, + "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -9586,14 +12328,12 @@ }, "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==" + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -9607,9 +12347,8 @@ }, "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, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -9619,15 +12358,13 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/fast-json-stringify": { "version": "2.7.13", - "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-2.7.13.tgz", - "integrity": "sha512-ar+hQ4+OIurUGjSJD1anvYSDcUflywhKjfxnsW4TBTD7+u0tJufv6DKRWoQk3vI6YBOWMoz0TQtfbe7dxbQmvA==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.11.0", "deepmerge": "^4.2.2", @@ -9640,9 +12377,8 @@ }, "node_modules/fast-json-stringify/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, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -9656,21 +12392,18 @@ }, "node_modules/fast-json-stringify/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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "node_modules/fast-printf": { "version": "1.6.9", - "resolved": "https://registry.npmjs.org/fast-printf/-/fast-printf-1.6.9.tgz", - "integrity": "sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "boolean": "^3.1.4" }, @@ -9680,14 +12413,11 @@ }, "node_modules/fast-safe-stringify": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-xml-parser": { "version": "4.2.5", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", - "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", "funding": [ { "type": "paypal", @@ -9698,6 +12428,7 @@ "url": "https://github.com/sponsors/NaturalIntelligence" } ], + "license": "MIT", "dependencies": { "strnum": "^1.0.5" }, @@ -9707,32 +12438,28 @@ }, "node_modules/fastq": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, + "license": "ISC", "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, + "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" } }, "node_modules/fecha": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -9745,9 +12472,8 @@ }, "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, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -9755,11 +12481,14 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "license": "MIT" + }, "node_modules/filing-cabinet": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/filing-cabinet/-/filing-cabinet-3.3.1.tgz", - "integrity": "sha512-renEK4Hh6DUl9Vl22Y3cxBq1yh8oNvbAdXnhih0wVpmea+uyKjC9K4QeRjUaybIiIewdzfum+Fg15ZqJ/GyCaA==", "dev": true, + "license": "MIT", "dependencies": { "app-module-path": "^2.2.0", "commander": "^2.20.3", @@ -9784,15 +12513,13 @@ }, "node_modules/filing-cabinet/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 + "dev": true, + "license": "MIT" }, "node_modules/filing-cabinet/node_modules/typescript": { "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -9803,9 +12530,8 @@ }, "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, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -9815,9 +12541,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, + "license": "MIT", "dependencies": { "findup-sync": "^4.0.0", "merge": "^2.1.1" @@ -9825,15 +12550,13 @@ }, "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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -9845,11 +12568,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/findit2": { + "version": "2.2.3", + "license": "MIT", + "engines": { + "node": ">=0.8.22" + } + }, "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, + "license": "MIT", "dependencies": { "detect-file": "^1.0.0", "is-glob": "^4.0.0", @@ -9862,17 +12591,15 @@ }, "node_modules/flat": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -9883,32 +12610,27 @@ }, "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 + "dev": true, + "license": "ISC" }, "node_modules/flatten": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", - "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", - "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fn.name": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" + "license": "MIT" }, "node_modules/follow-redirects": { "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -9920,18 +12642,16 @@ }, "node_modules/for-each": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } }, "node_modules/foreground-child": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dev": true, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -9945,9 +12665,8 @@ }, "node_modules/foreground-child/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -9957,8 +12676,7 @@ }, "node_modules/form-data": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -9970,9 +12688,8 @@ }, "node_modules/formidable": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", - "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", "dev": true, + "license": "MIT", "dependencies": { "dezalgo": "^1.0.4", "hexoid": "^1.0.0", @@ -9985,17 +12702,15 @@ }, "node_modules/fresh": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "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, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -10003,9 +12718,8 @@ }, "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, + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -10016,17 +12730,38 @@ "node": ">=10" } }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, "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==" + "license": "ISC" }, "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, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -10037,14 +12772,12 @@ }, "node_modules/function-bind": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -10060,27 +12793,42 @@ }, "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, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gauge": { + "version": "3.0.2", + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, "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, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-amd-module-type": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-4.1.0.tgz", - "integrity": "sha512-0e/eK6vTGCnSfQ6eYs3wtH05KotJYIP7ZIZEueP/KlA+0dIAEs8bYFvOd/U56w1vfjhJqBagUxVMyy9Tr/cViQ==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^4.0.0", "node-source-walk": "^5.0.1" @@ -10091,18 +12839,16 @@ }, "node_modules/get-amd-module-type/node_modules/ast-module-types": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-4.0.0.tgz", - "integrity": "sha512-Kd0o8r6CDazJGCRzs8Ivpn0xj19oNKrULhoJFzhGjRsLpekF2zyZs9Ukz+JvZhWD6smszfepakTFhAaYpsI12g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.0" } }, "node_modules/get-amd-module-type/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -10112,17 +12858,15 @@ }, "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, + "license": "ISC", "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==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -10134,24 +12878,21 @@ }, "node_modules/get-own-enumerable-property-symbols": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true + "dev": true, + "license": "ISC" }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "@hutson/parse-repository-url": "^3.0.0", "hosted-git-info": "^4.0.0", @@ -10167,9 +12908,8 @@ }, "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, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -10178,9 +12918,8 @@ }, "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, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -10188,9 +12927,8 @@ }, "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, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -10206,18 +12944,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "engines": { "node": ">=10" }, @@ -10227,9 +12963,8 @@ }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -10243,8 +12978,7 @@ }, "node_modules/get-value": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-3.0.1.tgz", - "integrity": "sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA==", + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -10254,9 +12988,8 @@ }, "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, + "license": "MIT", "dependencies": { "got": "^8.0.0", "is-plain-obj": "^1.1.0" @@ -10267,9 +13000,8 @@ }, "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, + "license": "MIT", "dependencies": { "dargs": "^7.0.0", "lodash": "^4.17.15", @@ -10286,9 +13018,8 @@ }, "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, + "license": "MIT", "dependencies": { "gitconfiglocal": "^1.0.0", "pify": "^2.3.0" @@ -10299,18 +13030,16 @@ }, "node_modules/git-remote-origin-url/node_modules/pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "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, + "license": "MIT", "dependencies": { "meow": "^8.0.0", "semver": "^6.0.0" @@ -10324,27 +13053,24 @@ }, "node_modules/git-semver-tags/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "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, + "license": "BSD", "dependencies": { "ini": "^1.3.2" } }, "node_modules/glob": { "version": "10.3.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", - "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.0.3", @@ -10364,9 +13090,8 @@ }, "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, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -10376,18 +13101,16 @@ }, "node_modules/glob/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==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/glob/node_modules/minimatch": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -10400,9 +13123,8 @@ }, "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, + "license": "MIT", "dependencies": { "ini": "^1.3.4" }, @@ -10412,9 +13134,8 @@ }, "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, + "license": "MIT", "dependencies": { "global-prefix": "^1.0.1", "is-windows": "^1.0.1", @@ -10426,9 +13147,8 @@ }, "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, + "license": "MIT", "dependencies": { "expand-tilde": "^2.0.2", "homedir-polyfill": "^1.0.1", @@ -10442,9 +13162,8 @@ }, "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, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -10454,9 +13173,8 @@ }, "node_modules/globals": { "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -10469,9 +13187,8 @@ }, "node_modules/globals/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, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -10481,9 +13198,8 @@ }, "node_modules/globalthis": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3" }, @@ -10496,9 +13212,8 @@ }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -10516,9 +13231,8 @@ }, "node_modules/gonzales-pe": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.5" }, @@ -10531,9 +13245,8 @@ }, "node_modules/gopd": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -10543,9 +13256,8 @@ }, "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, + "license": "MIT", "dependencies": { "@sindresorhus/is": "^0.7.0", "cacheable-request": "^2.1.1", @@ -10571,47 +13283,42 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "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 + "dev": true, + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/growly": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dependencies": { "minimist": "^1.2.5", - "neo-async": "^2.6.0", + "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, @@ -10627,17 +13334,15 @@ }, "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, + "license": "MIT", "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==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.1" }, @@ -10647,27 +13352,24 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -10677,9 +13379,8 @@ }, "node_modules/has-proto": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10689,17 +13390,15 @@ }, "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, + "license": "MIT", "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==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10709,9 +13408,8 @@ }, "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, + "license": "MIT", "dependencies": { "has-symbol-support-x": "^1.4.1" }, @@ -10721,8 +13419,7 @@ }, "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==", + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -10733,10 +13430,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-unicode": { + "version": "2.0.1", + "license": "ISC" + }, "node_modules/has-value": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-2.0.2.tgz", - "integrity": "sha512-ybKOlcRsK2MqrM3Hmz/lQxXHZ6ejzSPzpNabKB45jb5qDgJvKPa3SdapTsTLwEb9WltgWpOmNax7i+DzNOk4TA==", + "license": "MIT", "dependencies": { "get-value": "^3.0.0", "has-values": "^2.0.1" @@ -10747,8 +13447,7 @@ }, "node_modules/has-values": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-2.0.1.tgz", - "integrity": "sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==", + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -10758,23 +13457,20 @@ }, "node_modules/heap": { "version": "0.2.7", - "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", - "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==" + "license": "MIT" }, "node_modules/hexoid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", - "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "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, + "license": "MIT", "dependencies": { "parse-passwd": "^1.0.0" }, @@ -10784,9 +13480,8 @@ }, "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, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -10796,9 +13491,8 @@ }, "node_modules/hosted-git-info/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, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10808,20 +13502,17 @@ }, "node_modules/hosted-git-info/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 + "dev": true, + "license": "ISC" }, "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 + "dev": true, + "license": "MIT" }, "node_modules/http-assert": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", - "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", + "license": "MIT", "dependencies": { "deep-equal": "~1.0.1", "http-errors": "~1.8.0" @@ -10832,19 +13523,16 @@ }, "node_modules/http-assert/node_modules/deep-equal": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==" + "license": "MIT" }, "node_modules/http-cache-semantics": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/http-errors": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", @@ -10858,16 +13546,14 @@ }, "node_modules/http-errors/node_modules/depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/http-graceful-shutdown": { "version": "3.1.13", - "resolved": "https://registry.npmjs.org/http-graceful-shutdown/-/http-graceful-shutdown-3.1.13.tgz", - "integrity": "sha512-Ci5LRufQ8AtrQ1U26AevS8QoMXDOhnAHCJI3eZu1com7mZGHxREmw3dNj85ftpQokQCvak8nI2pnFS8zyM1M+Q==", + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -10877,9 +13563,8 @@ }, "node_modules/http-terminator": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/http-terminator/-/http-terminator-3.2.0.tgz", - "integrity": "sha512-JLjck1EzPaWjsmIf8bziM3p9fgR1Y3JoUKAkyYEbZmFrIvJM6I8vVJfBGWlEtV9IWOvzNnaTtjuwZeBY2kwB4g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "delay": "^5.0.0", "p-wait-for": "^3.2.0", @@ -10892,9 +13577,8 @@ }, "node_modules/http-terminator/node_modules/type-fest": { "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" }, @@ -10904,8 +13588,7 @@ }, "node_modules/https-proxy-agent": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -10916,27 +13599,24 @@ }, "node_modules/human-format": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/human-format/-/human-format-1.0.0.tgz", - "integrity": "sha512-ZfSxF/LHVDb5Un52AguYkZArbiuMbJQwpOpZ0MBuj3pYDmLt7pkCEws9L8xKbgnaKrfMgGd6qc+PHBbKO97AaA==", "dev": true, + "license": "ISC", "engines": { "node": ">=4" } }, "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, + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/husky": { "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", "dev": true, + "license": "MIT", "bin": { "husky": "lib/bin.js" }, @@ -10949,8 +13629,7 @@ }, "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==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -10960,8 +13639,6 @@ }, "node_modules/ieee754": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "funding": [ { "type": "github", @@ -10975,22 +13652,21 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -11004,18 +13680,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -11032,40 +13706,35 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/indexes-of": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/inflation": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", - "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==", + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "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==", + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -11073,20 +13742,17 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "license": "ISC" }, "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 + "dev": true, + "license": "ISC" }, "node_modules/inquirer": { "version": "8.2.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", - "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -11110,9 +13776,8 @@ }, "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, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3", "has": "^1.0.3", @@ -11124,9 +13789,8 @@ }, "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, + "license": "MIT", "dependencies": { "from2": "^2.1.1", "p-is-promise": "^1.1.0" @@ -11137,8 +13801,7 @@ }, "node_modules/ioredis": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz", - "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", + "license": "MIT", "dependencies": { "@ioredis/commands": "^1.1.1", "cluster-key-slot": "^1.1.0", @@ -11160,25 +13823,22 @@ }, "node_modules/ip-regex": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/is/-/is-3.3.0.tgz", - "integrity": "sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/is-array-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", - "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -11190,14 +13850,12 @@ }, "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==" + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -11207,9 +13865,8 @@ }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -11223,14 +13880,12 @@ }, "node_modules/is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "license": "MIT" }, "node_modules/is-builtin-module": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "dev": true, + "license": "MIT", "dependencies": { "builtin-modules": "^3.3.0" }, @@ -11243,9 +13898,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11255,8 +13909,7 @@ }, "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==", + "license": "MIT", "dependencies": { "has": "^1.0.3" }, @@ -11266,9 +13919,8 @@ }, "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, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -11281,9 +13933,8 @@ }, "node_modules/is-docker": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -11296,18 +13947,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "engines": { "node": ">=0.10.0" }, @@ -11317,9 +13966,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">=12" }, @@ -11329,17 +13977,15 @@ }, "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, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/is-generator-function": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -11352,9 +13998,8 @@ }, "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, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -11364,17 +14009,15 @@ }, "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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-ip": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", + "license": "MIT", "dependencies": { "ip-regex": "^4.0.0" }, @@ -11384,9 +14027,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, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11396,18 +14038,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -11420,35 +14060,31 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -11458,17 +14094,15 @@ }, "node_modules/is-primitive": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-3.0.1.tgz", - "integrity": "sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==", + "license": "MIT", "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -11482,33 +14116,29 @@ }, "node_modules/is-regexp": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-relative-path": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-relative-path/-/is-relative-path-1.0.2.tgz", - "integrity": "sha512-i1h+y50g+0hRbBD+dbnInl3JlJ702aar58snAeX+MxBAPvzXGej7sYoPMhlnykabt0ZzCJNBEyzMlekuQZN7fA==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -11518,8 +14148,7 @@ }, "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==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -11529,9 +14158,8 @@ }, "node_modules/is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -11544,9 +14172,8 @@ }, "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, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -11559,9 +14186,8 @@ }, "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, + "license": "MIT", "dependencies": { "text-extensions": "^1.0.0" }, @@ -11571,9 +14197,8 @@ }, "node_modules/is-typed-array": { "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -11590,9 +14215,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">=10" }, @@ -11602,15 +14226,13 @@ }, "node_modules/is-url": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-url-superb": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", - "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -11620,15 +14242,13 @@ }, "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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -11638,18 +14258,16 @@ }, "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-wsl": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -11659,52 +14277,45 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/iserror": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/iserror/-/iserror-0.0.2.tgz", - "integrity": "sha512-oKGGrFVaWwETimP3SiWwjDeY27ovZoyZPHtxblC4hCq9fXxed/jasx+ATWFFjCVSRZng8VTMsN1nDnGo6zMBSw==" + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/isolated-vm": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/isolated-vm/-/isolated-vm-4.5.0.tgz", - "integrity": "sha512-Kse0m5t+B9wZQVeTDqzPoX1SIFNTNfyaUxhnCuFgpXL1+5GYJ9GUAN3mpD+ainixGmUXgeYaVBX+QPDjEBBu0w==", "hasInstallScript": true, + "license": "ISC", "engines": { "node": ">=10.4.0" } }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, + "license": "BSD-3-Clause", "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, + "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -11718,18 +14329,16 @@ }, "node_modules/istanbul-lib-instrument/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "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, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", @@ -11741,9 +14350,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, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -11755,9 +14363,8 @@ }, "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, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -11768,9 +14375,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, + "license": "MIT", "dependencies": { "has-to-string-tag-x": "^1.2.0", "is-object": "^1.0.1" @@ -11781,9 +14387,8 @@ }, "node_modules/jackspeak": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.2.tgz", - "integrity": "sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -11799,9 +14404,8 @@ }, "node_modules/jest": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.6.0.tgz", - "integrity": "sha512-do1J9gGrQ68E4UfMz/4OM71p9qCqQxu32N/9ZfeYFSSlx0uUOuxeyZxtJZNaUTW12ZA11ERhmBjBhy1Ho96R4g==", "dev": true, + "license": "MIT", "dependencies": { "@jest/core": "^29.6.0", "@jest/types": "^29.6.0", @@ -11825,9 +14429,8 @@ }, "node_modules/jest-changed-files": { "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", - "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^5.0.0", "p-limit": "^3.1.0" @@ -11838,9 +14441,8 @@ }, "node_modules/jest-circus": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.0.tgz", - "integrity": "sha512-LtG45qEKhse2Ws5zNR4DnZATReLGQXzBZGZnJ0DU37p6d4wDhu41vvczCQ3Ou+llR6CRYDBshsubV7H4jZvIkw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.6.0", "@jest/expect": "^29.6.0", @@ -11869,9 +14471,8 @@ }, "node_modules/jest-cli": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.0.tgz", - "integrity": "sha512-WvZIaanK/abkw6s01924DQ2QLwM5Q4Y4iPbSDb9Zg6smyXGqqcPQ7ft9X8D7B0jICz312eSzM6UlQNxuZJBrMw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/core": "^29.6.0", "@jest/test-result": "^29.6.0", @@ -11903,9 +14504,8 @@ }, "node_modules/jest-config": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.6.0.tgz", - "integrity": "sha512-fKA4jM91PDqWVkMpb1FVKxIuhg3hC6hgaen57cr1rRZkR96dCatvJZsk3ik7/GNu9ERj9wgAspOmyvkFoGsZhA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^29.6.0", @@ -11948,9 +14548,8 @@ }, "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, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -11968,9 +14567,8 @@ }, "node_modules/jest-diff": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.0.tgz", - "integrity": "sha512-ZRm7cd2m9YyZ0N3iMyuo1iUiprxQ/MFpYWXzEEj7hjzL3WnDffKW8192XBDcrAI8j7hnrM1wed3bL/oEnYF/8w==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.4.3", @@ -11983,9 +14581,8 @@ }, "node_modules/jest-docblock": { "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", - "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", "dev": true, + "license": "MIT", "dependencies": { "detect-newline": "^3.0.0" }, @@ -11995,9 +14592,8 @@ }, "node_modules/jest-each": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.6.0.tgz", - "integrity": "sha512-d0Jem4RBAlFUyV6JSXPSHVUpNo5RleSj+iJEy1G3+ZCrzHDjWs/1jUfrbnJKHdJdAx5BCEce/Ju379WqHhQk4w==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.0", "chalk": "^4.0.0", @@ -12011,9 +14607,8 @@ }, "node_modules/jest-environment-node": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.0.tgz", - "integrity": "sha512-BOf5Q2/nFCdBOnyBM5c5/6DbdQYgc+0gyUQ8l8qhUAB8O7pM+4QJXIXJsRZJaxd5SHV6y5VArTVhOfogoqcP8Q==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.6.0", "@jest/fake-timers": "^29.6.0", @@ -12028,18 +14623,16 @@ }, "node_modules/jest-get-type": { "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", - "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.0.tgz", - "integrity": "sha512-dY1DKufptj7hcJSuhpqlYPGcnN3XjlOy/g0jinpRTMsbb40ivZHiuIPzeminOZkrek8C+oDxC54ILGO3vMLojg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.0", "@types/graceful-fs": "^4.1.3", @@ -12062,9 +14655,8 @@ }, "node_modules/jest-leak-detector": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.6.0.tgz", - "integrity": "sha512-JdV6EZOPxHR1gd6ccxjNowuROkT2jtGU5G/g58RcJX1xe5mrtLj0g6/ZkyMoXF4cs+tTkHMFX6pcIrB1QPQwCw==", "dev": true, + "license": "MIT", "dependencies": { "jest-get-type": "^29.4.3", "pretty-format": "^29.6.0" @@ -12075,9 +14667,8 @@ }, "node_modules/jest-matcher-utils": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.0.tgz", - "integrity": "sha512-oSlqfGN+sbkB2Q5um/zL7z80w84FEAcLKzXBZIPyRk2F2Srg1ubhrHVKW68JCvb2+xKzAeGw35b+6gciS24PHw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.6.0", @@ -12090,9 +14681,8 @@ }, "node_modules/jest-message-util": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.6.0.tgz", - "integrity": "sha512-mkCp56cETbpoNtsaeWVy6SKzk228mMi9FPHSObaRIhbR2Ujw9PqjW/yqVHD2tN1bHbC8ol6h3UEo7dOPmIYwIA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.0", @@ -12110,9 +14700,8 @@ }, "node_modules/jest-mock": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.6.0.tgz", - "integrity": "sha512-2Pb7R2w24Q0aUVn+2/vdRDL6CqGqpheDZy7zrXav8FotOpSGw/4bS2hyVoKHMEx4xzOn6EyCAGwc5czWxXeN7w==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.0", "@types/node": "*", @@ -12124,9 +14713,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">=6" }, @@ -12141,18 +14729,16 @@ }, "node_modules/jest-regex-util": { "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", - "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.0.tgz", - "integrity": "sha512-+hrpY4LzAONoZA/rvB6rnZLkOSA6UgJLpdCWrOZNSgGxWMumzRLu7dLUSCabAHzoHIDQ9qXfr3th1zYNJ0E8sQ==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", @@ -12170,9 +14756,8 @@ }, "node_modules/jest-resolve-dependencies": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.0.tgz", - "integrity": "sha512-eOfPog9K3hJdJk/3i6O6bQhXS+3uXhMDkLJGX+xmMPp7T1d/zdcFofbDnHgNoEkhD/mSimC5IagLEP7lpLLu/A==", "dev": true, + "license": "MIT", "dependencies": { "jest-regex-util": "^29.4.3", "jest-snapshot": "^29.6.0" @@ -12183,9 +14768,8 @@ }, "node_modules/jest-runner": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.0.tgz", - "integrity": "sha512-4fZuGV2lOxS2BiqEG9/AI8E6O+jo+QZjMVcgi1x5E6aDql0Gd/EFIbUQ0pSS09y8cya1vJB/qC2xsE468jqtSg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^29.6.0", "@jest/environment": "^29.6.0", @@ -12215,9 +14799,8 @@ }, "node_modules/jest-runtime": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.0.tgz", - "integrity": "sha512-5FavYo3EeXLHIvnJf+r7Cj0buePAbe4mzRB9oeVxDS0uVmouSBjWeGgyRjZkw7ArxOoZI8gO6f8SGMJ2HFlwwg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.6.0", "@jest/fake-timers": "^29.6.0", @@ -12248,9 +14831,8 @@ }, "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, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -12268,9 +14850,8 @@ }, "node_modules/jest-snapshot": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.0.tgz", - "integrity": "sha512-H3kUE9NwWDEDoutcOSS921IqdlkdjgnMdj1oMyxAHNflscdLc9dB8OudZHV6kj4OHJxbMxL8CdI5DlwYrs4wQg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", @@ -12300,9 +14881,8 @@ }, "node_modules/jest-sonar": { "version": "0.2.16", - "resolved": "https://registry.npmjs.org/jest-sonar/-/jest-sonar-0.2.16.tgz", - "integrity": "sha512-ES6Z9BbIVDELtbz+/b6pv41B2qOfp38cQpoCLqei21FtlkG/GzhyQ0M3egEIM+erpJOkpRKM8Tc8/YQtHdiTXA==", "dev": true, + "license": "MIT", "dependencies": { "entities": "4.3.0", "strip-ansi": "6.0.1" @@ -12310,9 +14890,8 @@ }, "node_modules/jest-util": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.0.tgz", - "integrity": "sha512-S0USx9YwcvEm4pQ5suisVm/RVxBmi0GFR7ocJhIeaCuW5AXnAnffXbaVKvIFodyZNOc9ygzVtTxmBf40HsHXaA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.0", "@types/node": "*", @@ -12327,9 +14906,8 @@ }, "node_modules/jest-validate": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.0.tgz", - "integrity": "sha512-MLTrAJsb1+W7svbeZ+A7pAnyXMaQrjvPDKCy7OlfsfB6TMVc69v7WjUWfiR6r3snULFWZASiKgvNVDuATta1dg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.0", "camelcase": "^6.2.0", @@ -12344,9 +14922,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">=10" }, @@ -12356,9 +14933,8 @@ }, "node_modules/jest-watcher": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.0.tgz", - "integrity": "sha512-LdsQqFNX60mRdRRe+zsELnYRH1yX6KL+ukbh+u6WSQeTheZZe1TlLJNKRQiZ7e0VbvMkywmMWL/KV35noOJCcw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/test-result": "^29.6.0", "@jest/types": "^29.6.0", @@ -12375,18 +14951,16 @@ }, "node_modules/jest-when": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/jest-when/-/jest-when-3.5.2.tgz", - "integrity": "sha512-4rDvnhaWh08RcPsoEVXgxRnUIE9wVIbZtGqZ5x2Wm9Ziz9aQs89PipQFmOK0ycbEhVAgiV3MUeTXp3Ar4s2FcQ==", "dev": true, + "license": "MIT", "peerDependencies": { "jest": ">= 25" } }, "node_modules/jest-worker": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.0.tgz", - "integrity": "sha512-oiQHH1SnKmZIwwPnpOrXTq4kHBk3lKGY/07DpnH0sAu+x7J8rXlbLDROZsU6vy9GwB0hPiZeZpu6YlJ48QoKcA==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "jest-util": "^29.6.0", @@ -12399,9 +14973,8 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -12414,8 +14987,7 @@ }, "node_modules/joi": { "version": "17.9.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz", - "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -12426,8 +14998,7 @@ }, "node_modules/js-sha1": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/js-sha1/-/js-sha1-0.6.0.tgz", - "integrity": "sha512-01gwBFreYydzmU9BmZxpVk6svJJHrVxEN3IOiGl6VO93bVKYETJ0sIth6DASI6mIFdt7NmfX9UiByRzsYHGU9w==" + "license": "MIT" }, "node_modules/js-tokens": { "version": "4.0.0", @@ -12436,8 +15007,7 @@ }, "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==", + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -12447,9 +15017,8 @@ }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -12459,14 +15028,12 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/json-diff": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/json-diff/-/json-diff-1.0.3.tgz", - "integrity": "sha512-W0yk/xzjz7bag9v9eS4qthvPG4O07uxNeXwirhvcOqmX4w8HLtB/Pw76o5Z7Pblwvf4vpCi4+iHOlHDnmav/rA==", + "license": "MIT", "dependencies": { "@ewoudenberg/difflib": "0.1.0", "colors": "^1.4.0", @@ -12481,45 +15048,38 @@ }, "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 + "dev": true, + "license": "MIT" }, "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==" + "license": "MIT" }, "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==" + "license": "MIT" }, "node_modules/json-size": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-size/-/json-size-1.0.0.tgz", - "integrity": "sha512-sh8Ff4sNVI3FU1LjFXiNpcG9Er9bsn8WbeR79mGj4Ljd+/NBmxqYCV1sPzndUTGsWXa3LVUx3aLlZxpq1DzCBA==", + "license": "MIT", "dependencies": { "utf8-length": "0.0.1" } }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "ISC" }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -12529,23 +15089,20 @@ }, "node_modules/jsonata": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/jsonata/-/jsonata-2.0.3.tgz", - "integrity": "sha512-Up2H81MUtjqI/dWwWX7p4+bUMfMrQJVMN/jW6clFMTiYP528fBOBNtRu944QhKTs3+IsVWbgMeUTny5fw2VMUA==", + "license": "MIT", "engines": { "node": ">= 8" } }, "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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -12555,18 +15112,16 @@ }, "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" - ] + ], + "license": "MIT" }, "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, + "license": "(MIT OR Apache-2.0)", "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -12580,16 +15135,14 @@ }, "node_modules/jsontoxml": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/jsontoxml/-/jsontoxml-1.0.1.tgz", - "integrity": "sha512-dtKGq0K8EWQBRqcAaePSgKR4Hyjfsz/LkurHSV3Cxk4H+h2fWDeaN2jzABz+ZmOJylgXS7FGeWmbZ6jgYUMdJQ==", + "license": "MIT", "engines": { "node": ">=0.2.0" } }, "node_modules/keygrip": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", - "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "license": "MIT", "dependencies": { "tsscmp": "1.0.6" }, @@ -12599,34 +15152,30 @@ }, "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, + "license": "MIT", "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==", + "license": "MIT", "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, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/koa": { "version": "2.14.1", - "resolved": "https://registry.npmjs.org/koa/-/koa-2.14.1.tgz", - "integrity": "sha512-USJFyZgi2l0wDgqkfD27gL4YGno7TfUkcmOe6UOLFOVuN+J7FwnNu4Dydl4CUQzraM1lBAiGed0M9OVJoT0Kqw==", + "license": "MIT", "dependencies": { "accepts": "^1.3.5", "cache-content-type": "^1.0.0", @@ -12658,8 +15207,7 @@ }, "node_modules/koa-bodyparser": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.4.0.tgz", - "integrity": "sha512-AXPY7wwKZUmbgb8VkTEUFoRNOlx6aWRJwEnQD+zfNf33/7KSAkN4Oo9BqlIk80D+5TvuqlhpQT5dPVcyxl5Zsw==", + "license": "MIT", "dependencies": { "co-body": "^6.0.0", "copy-to": "^2.0.1" @@ -12670,13 +15218,11 @@ }, "node_modules/koa-compose": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", - "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==" + "license": "MIT" }, "node_modules/koa-convert": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", - "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", + "license": "MIT", "dependencies": { "co": "^4.6.0", "koa-compose": "^4.1.0" @@ -12687,8 +15233,7 @@ }, "node_modules/koa2-swagger-ui": { "version": "5.8.0", - "resolved": "https://registry.npmjs.org/koa2-swagger-ui/-/koa2-swagger-ui-5.8.0.tgz", - "integrity": "sha512-uVHh2hajX5Q/6+BkRrK0Rrf84Duc6dB73WIU1mb3cLfellMR1klAIYEX1p1bOsNjB97uqCwyn/cz3Sfi1/IxcQ==", + "license": "MIT", "dependencies": { "@types/koa": "^2.13.6", "handlebars": "^4.7.7", @@ -12698,32 +15243,28 @@ }, "node_modules/kuler": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" + "license": "MIT" }, "node_modules/lazy-ass": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", "dev": true, + "license": "MIT", "engines": { "node": "> 0.8" } }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -12734,23 +15275,20 @@ }, "node_modules/lilconfig": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, + "license": "MIT", "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==" + "license": "MIT" }, "node_modules/lint-staged": { "version": "13.2.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.2.tgz", - "integrity": "sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "5.2.0", "cli-truncate": "^3.1.0", @@ -12778,9 +15316,8 @@ }, "node_modules/lint-staged/node_modules/chalk": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -12790,9 +15327,8 @@ }, "node_modules/lint-staged/node_modules/execa": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", @@ -12813,18 +15349,16 @@ }, "node_modules/lint-staged/node_modules/human-signals": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=14.18.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, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -12834,9 +15368,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">=12" }, @@ -12846,9 +15379,8 @@ }, "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, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -12861,18 +15393,16 @@ }, "node_modules/lint-staged/node_modules/object-inspect": { "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "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, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -12885,9 +15415,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">=12" }, @@ -12897,9 +15426,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">=12" }, @@ -12909,9 +15437,8 @@ }, "node_modules/listr2": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.8.tgz", - "integrity": "sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==", "dev": true, + "license": "MIT", "dependencies": { "cli-truncate": "^2.1.0", "colorette": "^2.0.19", @@ -12936,9 +15463,8 @@ }, "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, + "license": "MIT", "dependencies": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" @@ -12952,18 +15478,16 @@ }, "node_modules/listr2/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, + "license": "MIT", "engines": { "node": ">=8" } }, "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, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -12975,9 +15499,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, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "parse-json": "^4.0.0", @@ -12990,9 +15513,8 @@ }, "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, + "license": "MIT", "dependencies": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -13003,27 +15525,24 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "engines": { "node": ">=4" } }, "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, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -13036,96 +15555,80 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "node_modules/lodash.defaults": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" + "license": "MIT" }, "node_modules/lodash.isarguments": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "lodash._reinterpolate": "^3.0.0", "lodash.templatesettings": "^4.0.0" @@ -13133,29 +15636,25 @@ }, "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, + "license": "MIT", "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==" + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -13169,9 +15668,8 @@ }, "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, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.3.0", "cli-cursor": "^3.1.0", @@ -13187,18 +15685,16 @@ }, "node_modules/log-update/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, + "license": "MIT", "engines": { "node": ">=8" } }, "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, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -13213,9 +15709,8 @@ }, "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, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -13227,8 +15722,7 @@ }, "node_modules/logform": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", - "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", + "license": "MIT", "dependencies": { "@colors/colors": "1.5.0", "fecha": "^4.2.0", @@ -13237,20 +15731,22 @@ "triple-beam": "^1.3.0" } }, + "node_modules/long": { + "version": "5.2.3", + "license": "Apache-2.0" + }, "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "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, + "license": "MIT", "dependencies": { "currently-unhandled": "^0.4.1", "signal-exit": "^3.0.0" @@ -13261,27 +15757,24 @@ }, "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, "node_modules/madge": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/madge/-/madge-6.1.0.tgz", - "integrity": "sha512-irWhT5RpFOc6lkzGHKLihonCVgM0YtfNUh4IrFeW3EqHpnt/JHUG3z26j8PeJEktCGB4tmGOOOJi1Rl/ACWucQ==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.1", "commander": "^7.2.0", @@ -13327,18 +15820,15 @@ }, "node_modules/madge/node_modules/commander": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -13351,33 +15841,28 @@ }, "node_modules/make-dir/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "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 + "dev": true, + "license": "ISC" }, "node_modules/makeerror": { "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, + "license": "BSD-3-Clause", "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, + "license": "MIT", "engines": { "node": ">=8" }, @@ -13387,13 +15872,11 @@ }, "node_modules/match-json": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/match-json/-/match-json-1.3.5.tgz", - "integrity": "sha512-V5Jw1rIdjt37vfQRqvKtXW4dKbSTpvgwyEPKOBikY90xQ5Wr5yOmfpjcTm12d0Kqq+TfMqlXJkETf4yOF9JhUw==" + "license": "MIT" }, "node_modules/md5": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "license": "BSD-3-Clause", "dependencies": { "charenc": "0.0.2", "crypt": "0.0.2", @@ -13402,17 +15885,15 @@ }, "node_modules/media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "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, + "license": "MIT", "dependencies": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", @@ -13435,9 +15916,8 @@ }, "node_modules/meow/node_modules/type-fest": { "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -13447,38 +15927,33 @@ }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/methods": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "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, + "license": "MIT", "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -13489,9 +15964,8 @@ }, "node_modules/mime": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -13501,16 +15975,14 @@ }, "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==", + "license": "MIT", "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==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -13520,35 +15992,31 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "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, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -13558,37 +16026,68 @@ }, "node_modules/minimist": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "license": "MIT" + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minipass": { + "version": "7.0.2", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } }, - "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, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "license": "ISC", "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" + "yallist": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/minipass": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz", - "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==", - "dev": true, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=10" } }, "node_modules/mocked-env": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", - "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", "dev": true, + "license": "MIT", "dependencies": { "check-more-types": "2.24.0", "debug": "4.3.2", @@ -13601,9 +16100,8 @@ }, "node_modules/mocked-env/node_modules/debug": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -13618,8 +16116,7 @@ }, "node_modules/modclean": { "version": "3.0.0-beta.1", - "resolved": "https://registry.npmjs.org/modclean/-/modclean-3.0.0-beta.1.tgz", - "integrity": "sha512-NyJpuqXMUI190sZePU+dBcwlGaqhfFC+UL5WyNSxmNLOHATg9cVSgRpbY+mUbwUj7t5trb4vYscgXArKevYsdA==", + "license": "MIT", "dependencies": { "await-handler": "^1.1.0", "chalk": "^2.4.1", @@ -13647,16 +16144,14 @@ }, "node_modules/modclean/node_modules/ansi-regex": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/modclean/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==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -13666,8 +16161,7 @@ }, "node_modules/modclean/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==", + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -13679,8 +16173,7 @@ }, "node_modules/modclean/node_modules/cli-cursor": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "license": "MIT", "dependencies": { "restore-cursor": "^2.0.0" }, @@ -13690,34 +16183,29 @@ }, "node_modules/modclean/node_modules/cli-spinners": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", - "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/modclean/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==", + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/modclean/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==" + "license": "MIT" }, "node_modules/modclean/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==" + "license": "MIT" }, "node_modules/modclean/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -13735,16 +16223,14 @@ }, "node_modules/modclean/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==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/modclean/node_modules/log-symbols": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "license": "MIT", "dependencies": { "chalk": "^2.0.1" }, @@ -13754,16 +16240,14 @@ }, "node_modules/modclean/node_modules/mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/modclean/node_modules/onetime": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "license": "MIT", "dependencies": { "mimic-fn": "^1.0.0" }, @@ -13773,8 +16257,7 @@ }, "node_modules/modclean/node_modules/ora": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-2.1.0.tgz", - "integrity": "sha512-hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA==", + "license": "MIT", "dependencies": { "chalk": "^2.3.1", "cli-cursor": "^2.1.0", @@ -13789,8 +16272,7 @@ }, "node_modules/modclean/node_modules/restore-cursor": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "license": "MIT", "dependencies": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" @@ -13801,8 +16283,7 @@ }, "node_modules/modclean/node_modules/rimraf": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -13812,8 +16293,7 @@ }, "node_modules/modclean/node_modules/strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "license": "MIT", "dependencies": { "ansi-regex": "^3.0.0" }, @@ -13823,8 +16303,7 @@ }, "node_modules/modclean/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==", + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -13834,18 +16313,16 @@ }, "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/module-definition": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-3.4.0.tgz", - "integrity": "sha512-XxJ88R1v458pifaSkPNLUTdSPNVGMP2SXVncVmApGO+gAfrLANiYe6JofymCzVceGOMwQE2xogxBSc8uB7XegA==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^3.0.0", "node-source-walk": "^4.0.0" @@ -13859,9 +16336,8 @@ }, "node_modules/module-lookup-amd": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz", - "integrity": "sha512-w9mCNlj0S8qviuHzpakaLVc+/7q50jl9a/kmJ/n8bmXQZgDPkQHnPBb8MUOYh3WpAYkXuNc2c+khsozhIp/amQ==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^2.8.1", "debug": "^4.1.0", @@ -13878,15 +16354,13 @@ }, "node_modules/module-lookup-amd/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 + "dev": true, + "license": "MIT" }, "node_modules/module-lookup-amd/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, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -13904,16 +16378,14 @@ }, "node_modules/moment": { "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/moment-timezone": { "version": "0.5.43", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz", - "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==", + "license": "MIT", "dependencies": { "moment": "^2.29.4" }, @@ -13923,20 +16395,28 @@ }, "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==" + "license": "MIT" }, "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 + "dev": true, + "license": "ISC" + }, + "node_modules/nan": { + "version": "2.17.0", + "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -13946,33 +16426,28 @@ }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "node_modules/negotiator": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/neo-async": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "license": "MIT" }, "node_modules/node-cache": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz", - "integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==", + "license": "MIT", "dependencies": { "clone": "2.x" }, @@ -13981,9 +16456,8 @@ } }, "node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "version": "2.7.0", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -14001,18 +16475,15 @@ }, "node_modules/node-fetch/node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "license": "MIT" }, "node_modules/node-fetch/node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "license": "BSD-2-Clause" }, "node_modules/node-fetch/node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -14020,8 +16491,7 @@ }, "node_modules/node-gyp-build": { "version": "3.9.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.9.0.tgz", - "integrity": "sha512-zLcTg6P4AbcHPq465ZMFNXx7XpKKJh+7kkN699NiQWisR2uWYOWNWqRHAmbnmKiL4e9aLSlmy5U7rEMUXV59+A==", + "license": "MIT", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -14030,15 +16500,13 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/node-notifier": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz", - "integrity": "sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==", "dev": true, + "license": "MIT", "dependencies": { "growly": "^1.3.0", "is-wsl": "^2.2.0", @@ -14050,24 +16518,21 @@ }, "node_modules/node-notifier/node_modules/uuid": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/node-releases": { "version": "2.0.12", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", - "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-source-walk": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.3.0.tgz", - "integrity": "sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -14075,11 +16540,23 @@ "node": ">=6.0" } }, + "node_modules/nopt": { + "version": "5.0.0", + "license": "ISC", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, "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, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^4.0.1", "is-core-module": "^2.5.0", @@ -14092,18 +16569,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "prepend-http": "^2.0.0", "query-string": "^5.0.1", @@ -14115,9 +16590,8 @@ }, "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, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -14125,59 +16599,90 @@ "node": ">=8" } }, + "node_modules/npmlog": { + "version": "5.0.1", + "license": "ISC", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/oauth-1.0a": { "version": "2.2.6", - "resolved": "https://registry.npmjs.org/oauth-1.0a/-/oauth-1.0a-2.2.6.tgz", - "integrity": "sha512-6bkxv3N4Gu5lty4viIcIAnq5GbxECviMBeKR3WX/q87SPQ8E8aursPZUtsXDnxCs787af09WPRBLqYrf/lwoYQ==" + "license": "MIT" }, "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-hash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", "engines": { "node": ">= 6" } }, "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==", + "license": "MIT", "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, + "license": "MIT", "engines": { "node": ">= 0.4" } }, + "node_modules/object-sizeof": { + "version": "2.6.3", + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3" + } + }, + "node_modules/object-sizeof/node_modules/buffer": { + "version": "6.0.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -14193,9 +16698,8 @@ }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -14207,9 +16711,8 @@ }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -14224,8 +16727,7 @@ }, "node_modules/on-finished": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -14235,25 +16737,22 @@ }, "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==", + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/one-time": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "license": "MIT", "dependencies": { "fn.name": "1.x.x" } }, "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, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -14265,22 +16764,18 @@ } }, "node_modules/only": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", - "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==" + "version": "0.0.2" }, "node_modules/openapi-types": { "version": "12.1.3", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", - "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/optionator": { "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, + "license": "MIT", "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", @@ -14295,9 +16790,8 @@ }, "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, + "license": "MIT", "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -14318,44 +16812,39 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "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, + "license": "MIT", "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, + "license": "MIT", "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==", + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -14368,9 +16857,8 @@ }, "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, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -14383,9 +16871,8 @@ }, "node_modules/p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -14398,9 +16885,8 @@ }, "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, + "license": "MIT", "dependencies": { "p-finally": "^1.0.0" }, @@ -14410,17 +16896,15 @@ }, "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==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/p-wait-for": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-3.2.0.tgz", - "integrity": "sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA==", "dev": true, + "license": "MIT", "dependencies": { "p-timeout": "^3.0.0" }, @@ -14433,9 +16917,8 @@ }, "node_modules/p-wait-for/node_modules/p-timeout": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "dev": true, + "license": "MIT", "dependencies": { "p-finally": "^1.0.0" }, @@ -14445,9 +16928,8 @@ }, "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, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -14457,14 +16939,12 @@ }, "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 + "dev": true, + "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -14480,70 +16960,61 @@ }, "node_modules/parse-ms": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", - "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/parse-static-imports": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parse-static-imports/-/parse-static-imports-1.1.0.tgz", - "integrity": "sha512-HlxrZcISCblEV0lzXmAHheH/8qEkKgmqkdxyHTPbSqsTUV8GzqmN1L+SSti+VbNPfbBO3bYLPHDiUs2avbAdbA==" + "license": "MIT" }, "node_modules/parseurl": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "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==", + "license": "MIT", "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==", + "license": "MIT", "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, + "license": "MIT", "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==" + "license": "MIT" }, "node_modules/path-scurry": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^9.1.1 || ^10.0.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -14557,38 +17028,33 @@ }, "node_modules/path-scurry/node_modules/lru-cache": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", - "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", "dev": true, + "license": "ISC", "engines": { "node": "14 || >=16.14" } }, "node_modules/path-to-regexp": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", - "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" + "license": "MIT" }, "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, + "license": "MIT", "engines": { "node": ">=8" } }, "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 + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -14598,9 +17064,8 @@ }, "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, + "license": "MIT", "bin": { "pidtree": "bin/pidtree.js" }, @@ -14608,20 +17073,28 @@ "node": ">=0.10" } }, + "node_modules/pify": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "pinkie": "^2.0.0" }, @@ -14631,18 +17104,16 @@ }, "node_modules/pirates": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", "dev": true, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -14652,9 +17123,8 @@ }, "node_modules/pkg-dir/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, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -14665,9 +17135,8 @@ }, "node_modules/pkg-dir/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, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -14677,9 +17146,8 @@ }, "node_modules/pkg-dir/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, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -14692,9 +17160,8 @@ }, "node_modules/pkg-dir/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, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -14704,17 +17171,16 @@ }, "node_modules/pluralize": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "dev": true, "funding": [ { @@ -14724,10 +17190,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -14737,9 +17207,8 @@ }, "node_modules/postcss-values-parser": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz", - "integrity": "sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==", "dev": true, + "license": "MPL-2.0", "dependencies": { "color-name": "^1.1.4", "is-url-superb": "^4.0.0", @@ -14752,16 +17221,41 @@ "postcss": "^8.2.9" } }, + "node_modules/pprof": { + "version": "3.2.1", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.0", + "bindings": "^1.2.1", + "delay": "^5.0.0", + "findit2": "^2.2.3", + "nan": "^2.14.0", + "p-limit": "^3.0.0", + "pify": "^5.0.0", + "protobufjs": "~7.2.4", + "source-map": "^0.7.3", + "split": "^1.0.1" + }, + "engines": { + "node": ">=10.4.1" + } + }, "node_modules/pprof-format": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/pprof-format/-/pprof-format-2.0.7.tgz", - "integrity": "sha512-1qWaGAzwMpaXJP9opRa23nPnt2Egi7RMNoNBptEE/XwHbcn4fC2b/4U4bKc5arkGkIh2ZabpF2bEb+c5GNHEKA==" + "license": "MIT" + }, + "node_modules/pprof/node_modules/source-map": { + "version": "0.7.4", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } }, "node_modules/precinct": { "version": "8.3.1", - "resolved": "https://registry.npmjs.org/precinct/-/precinct-8.3.1.tgz", - "integrity": "sha512-pVppfMWLp2wF68rwHqBIpPBYY8Kd12lDhk8LVQzOwqllifVR15qNFyod43YLyFpurKRZQKnE7E4pofAagDOm2Q==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^2.20.3", "debug": "^4.3.3", @@ -14786,9 +17280,8 @@ }, "node_modules/precinct/node_modules/@typescript-eslint/types": { "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", "dev": true, + "license": "MIT", "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, @@ -14799,9 +17292,8 @@ }, "node_modules/precinct/node_modules/@typescript-eslint/typescript-estree": { "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "4.33.0", "@typescript-eslint/visitor-keys": "4.33.0", @@ -14826,9 +17318,8 @@ }, "node_modules/precinct/node_modules/@typescript-eslint/visitor-keys": { "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "4.33.0", "eslint-visitor-keys": "^2.0.0" @@ -14843,15 +17334,13 @@ }, "node_modules/precinct/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 + "dev": true, + "license": "MIT" }, "node_modules/precinct/node_modules/detective-amd": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-3.1.2.tgz", - "integrity": "sha512-jffU26dyqJ37JHR/o44La6CxtrDf3Rt9tvd2IbImJYxWKTMdBjctp37qoZ6ZcY80RHg+kzWz4bXn39e4P7cctQ==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^3.0.0", "escodegen": "^2.0.0", @@ -14867,9 +17356,8 @@ }, "node_modules/precinct/node_modules/detective-cjs": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-3.1.3.tgz", - "integrity": "sha512-ljs7P0Yj9MK64B7G0eNl0ThWSYjhAaSYy+fQcpzaKalYl/UoQBOzOeLCSFEY1qEBhziZ3w7l46KG/nH+s+L7BQ==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^3.0.0", "node-source-walk": "^4.0.0" @@ -14880,9 +17368,8 @@ }, "node_modules/precinct/node_modules/detective-es6": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-2.2.2.tgz", - "integrity": "sha512-eZUKCUsbHm8xoeoCM0z6JFwvDfJ5Ww5HANo+jPR7AzkFpW9Mun3t/TqIF2jjeWa2TFbAiGaWESykf2OQp3oeMw==", "dev": true, + "license": "MIT", "dependencies": { "node-source-walk": "^4.0.0" }, @@ -14892,9 +17379,8 @@ }, "node_modules/precinct/node_modules/detective-postcss": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-4.0.0.tgz", - "integrity": "sha512-Fwc/g9VcrowODIAeKRWZfVA/EufxYL7XfuqJQFroBKGikKX83d2G7NFw6kDlSYGG3LNQIyVa+eWv1mqre+v4+A==", "dev": true, + "license": "Apache-2.0", "dependencies": { "debug": "^4.1.1", "is-url": "^1.2.4", @@ -14907,9 +17393,8 @@ }, "node_modules/precinct/node_modules/detective-sass": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-3.0.2.tgz", - "integrity": "sha512-DNVYbaSlmti/eztFGSfBw4nZvwsTaVXEQ4NsT/uFckxhJrNRFUh24d76KzoCC3aarvpZP9m8sC2L1XbLej4F7g==", "dev": true, + "license": "MIT", "dependencies": { "gonzales-pe": "^4.3.0", "node-source-walk": "^4.0.0" @@ -14920,9 +17405,8 @@ }, "node_modules/precinct/node_modules/detective-scss": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-2.0.2.tgz", - "integrity": "sha512-hDWnWh/l0tht/7JQltumpVea/inmkBaanJUcXRB9kEEXVwVUMuZd6z7eusQ6GcBFrfifu3pX/XPyD7StjbAiBg==", "dev": true, + "license": "MIT", "dependencies": { "gonzales-pe": "^4.3.0", "node-source-walk": "^4.0.0" @@ -14933,15 +17417,13 @@ }, "node_modules/precinct/node_modules/detective-stylus": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-1.0.3.tgz", - "integrity": "sha512-4/bfIU5kqjwugymoxLXXLltzQNeQfxGoLm2eIaqtnkWxqbhap9puDVpJPVDx96hnptdERzS5Cy6p9N8/08A69Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/precinct/node_modules/detective-typescript": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-7.0.2.tgz", - "integrity": "sha512-unqovnhxzvkCz3m1/W4QW4qGsvXCU06aU2BAm8tkza+xLnp9SOFnob2QsTxUv5PdnQKfDvWcv9YeOeFckWejwA==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "^4.33.0", "ast-module-types": "^2.7.1", @@ -14954,24 +17436,21 @@ }, "node_modules/precinct/node_modules/detective-typescript/node_modules/ast-module-types": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-2.7.1.tgz", - "integrity": "sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/precinct/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, + "license": "Apache-2.0", "engines": { "node": ">=10" } }, "node_modules/precinct/node_modules/get-amd-module-type": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-3.0.2.tgz", - "integrity": "sha512-PcuKwB8ouJnKuAPn6Hk3UtdfKoUV3zXRqVEvj8XGIXqjWfgd1j7QGdXy5Z9OdQfzVt1Sk29HVe/P+X74ccOuqw==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^3.0.0", "node-source-walk": "^4.2.2" @@ -14982,9 +17461,8 @@ }, "node_modules/precinct/node_modules/postcss-values-parser": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", - "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", "dev": true, + "license": "MIT", "dependencies": { "flatten": "^1.0.2", "indexes-of": "^1.0.1", @@ -14996,9 +17474,8 @@ }, "node_modules/precinct/node_modules/typescript": { "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -15009,27 +17486,24 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/prettier": { "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -15042,9 +17516,8 @@ }, "node_modules/pretty-bytes": { "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -15054,9 +17527,8 @@ }, "node_modules/pretty-format": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.0.tgz", - "integrity": "sha512-XH+D4n7Ey0iSR6PdAnBs99cWMZdGsdKrR33iUHQNr79w1szKTCIZDVdXuccAsHVwDBp0XeWPfNEoaxP9EZgRmQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.0", "ansi-styles": "^5.0.0", @@ -15068,9 +17540,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">=10" }, @@ -15080,15 +17551,13 @@ }, "node_modules/pretty-format/node_modules/react-is": { "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pretty-ms": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", - "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", "dev": true, + "license": "MIT", "dependencies": { "parse-ms": "^2.1.0" }, @@ -15101,22 +17570,19 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/progress": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/prom-client": { "version": "14.2.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz", - "integrity": "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==", + "license": "Apache-2.0", "dependencies": { "tdigest": "^0.1.1" }, @@ -15126,9 +17592,8 @@ }, "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, + "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -15137,15 +17602,35 @@ "node": ">= 6" } }, + "node_modules/protobufjs": { + "version": "7.2.5", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/proxy-from-env": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "license": "MIT" }, "node_modules/pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -15153,16 +17638,13 @@ }, "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==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pure-rand": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", - "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", "dev": true, "funding": [ { @@ -15173,13 +17655,13 @@ "type": "opencollective", "url": "https://opencollective.com/fast-check" } - ] + ], + "license": "MIT" }, "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, + "license": "MIT", "engines": { "node": ">=0.6.0", "teleport": ">=0.2.0" @@ -15187,8 +17669,7 @@ }, "node_modules/qs": { "version": "6.11.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz", - "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==", + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -15201,9 +17682,8 @@ }, "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, + "license": "MIT", "dependencies": { "decode-uri-component": "^0.2.0", "object-assign": "^4.1.0", @@ -15215,8 +17695,6 @@ }, "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": [ { @@ -15231,33 +17709,30 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/quote-unquote": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/quote-unquote/-/quote-unquote-1.0.0.tgz", - "integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ramda": { "version": "0.27.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", - "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/raw-body": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -15270,8 +17745,7 @@ }, "node_modules/raw-body/node_modules/http-errors": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -15285,17 +17759,15 @@ }, "node_modules/raw-body/node_modules/statuses": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/rc": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -15308,17 +17780,15 @@ }, "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "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==", + "license": "MIT", "dependencies": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0", @@ -15331,8 +17801,7 @@ }, "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==", + "license": "MIT", "dependencies": { "find-up": "^4.1.0", "read-pkg": "^5.2.0", @@ -15347,8 +17816,7 @@ }, "node_modules/read-pkg-up/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==", + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -15359,8 +17827,7 @@ }, "node_modules/read-pkg-up/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==", + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -15370,8 +17837,7 @@ }, "node_modules/read-pkg-up/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==", + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -15384,8 +17850,7 @@ }, "node_modules/read-pkg-up/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==", + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -15395,13 +17860,11 @@ }, "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==" + "license": "ISC" }, "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==", + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -15411,25 +17874,22 @@ }, "node_modules/read-pkg/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } }, "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==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "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, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -15442,15 +17902,13 @@ }, "node_modules/readable-stream/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 + "dev": true, + "license": "MIT" }, "node_modules/redent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, + "license": "MIT", "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" @@ -15461,16 +17919,14 @@ }, "node_modules/redis-errors": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/redis-parser": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", + "license": "MIT", "dependencies": { "redis-errors": "^1.0.0" }, @@ -15478,20 +17934,22 @@ "node": ">=4" } }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "license": "MIT" + }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -15506,9 +17964,8 @@ }, "node_modules/regjsparser": { "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "jsesc": "~0.5.0" }, @@ -15518,8 +17975,6 @@ }, "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" @@ -15527,9 +17982,8 @@ }, "node_modules/repeating": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", "dev": true, + "license": "MIT", "dependencies": { "is-finite": "^1.0.0" }, @@ -15539,32 +17993,28 @@ }, "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, + "license": "MIT", "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==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/requirejs": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", - "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", "dev": true, + "license": "MIT", "bin": { "r_js": "bin/r.js", "r.js": "bin/r.js" @@ -15575,9 +18025,8 @@ }, "node_modules/requirejs-config-file": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz", - "integrity": "sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==", "dev": true, + "license": "MIT", "dependencies": { "esprima": "^4.0.0", "stringify-object": "^3.2.1" @@ -15588,8 +18037,7 @@ }, "node_modules/resolve": { "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "license": "MIT", "dependencies": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -15604,9 +18052,8 @@ }, "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, + "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" }, @@ -15616,18 +18063,16 @@ }, "node_modules/resolve-dependency-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz", - "integrity": "sha512-DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "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, + "license": "MIT", "dependencies": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" @@ -15638,18 +18083,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "global-dirs": "^0.1.1" }, @@ -15659,27 +18102,24 @@ }, "node_modules/resolve.exports": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true, + "license": "MIT", "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -15690,9 +18130,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, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -15700,24 +18139,20 @@ }, "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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "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, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -15730,9 +18165,7 @@ }, "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, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -15750,9 +18183,8 @@ }, "node_modules/roarr": { "version": "7.15.0", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-7.15.0.tgz", - "integrity": "sha512-CV9WefQfUXTX6wr8CrEMhfNef3sjIt9wNhE/5PNu4tNWsaoDNDXqq+OGn/RW9A1UPb0qc7FQlswXRaJJJsqn8A==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "boolean": "^3.1.4", "fast-json-stringify": "^2.7.10", @@ -15765,15 +18197,9 @@ "node": ">=12.0" } }, - "node_modules/rudder-json-template-engine": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/rudder-json-template-engine/-/rudder-json-template-engine-0.5.1.tgz", - "integrity": "sha512-D8zCcTXbhbFd2EhDmmgZKxw5uky6+DfikV/EW8I8HWdutMiyzdxgVMyH1dPo3feLgj3/0g2WNO9t4iPaegw4PQ==" - }, "node_modules/rudder-transformer-cdk": { "version": "1.4.11", - "resolved": "https://registry.npmjs.org/rudder-transformer-cdk/-/rudder-transformer-cdk-1.4.11.tgz", - "integrity": "sha512-u2t/L47tNe9wyzSpQptLkiECT0/P5Xx8BLmZisfuXQx3lXco57oaDX/Ii1ZhEiHM2zht+NiyrGkvhBKMt1IAyA==", + "license": "ISC", "dependencies": { "get-value": "^3.0.1", "handlebars": "^4.7.7", @@ -15787,56 +18213,16 @@ "winston": "^3.8.1" } }, - "node_modules/rudder-workflow-engine": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/rudder-workflow-engine/-/rudder-workflow-engine-0.4.7.tgz", - "integrity": "sha512-USJ/h4XGxtUmAhaTJgtz1MrICpiju6GTubaFyPS+5hgpjdIsZx/iOOishjrNcOrwHvxcfblccA8wv5JTC8eSpg==", - "dependencies": { - "@aws-crypto/sha256-js": "^4.0.0", - "js-yaml": "^4.1.0", - "jsonata": "^2.0.3", - "lodash": "^4.17.21", - "rudder-json-template-engine": "^0.5.1" - } - }, - "node_modules/rudder-workflow-engine/node_modules/@aws-crypto/sha256-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-4.0.0.tgz", - "integrity": "sha512-MHGJyjE7TX9aaqXj7zk2ppnFUOhaDs5sP+HtNS0evOxn72c+5njUmyJmpGd7TfyoDznZlHMmdo/xGUdu2NIjNQ==", - "dependencies": { - "@aws-crypto/util": "^4.0.0", - "@aws-sdk/types": "^3.222.0", - "tslib": "^1.11.1" - } - }, - "node_modules/rudder-workflow-engine/node_modules/@aws-crypto/util": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-4.0.0.tgz", - "integrity": "sha512-2EnmPy2gsFZ6m8bwUQN4jq+IyXV3quHAcwPOS6ZA3k+geujiqI8aRokO2kFJe+idJ/P3v4qWI186rVMo0+zLDQ==", - "dependencies": { - "@aws-sdk/types": "^3.222.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - } - }, - "node_modules/rudder-workflow-engine/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "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, + "license": "MIT", "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": [ { @@ -15852,23 +18238,21 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "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, + "license": "Apache-2.0", "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==", "funding": [ { "type": "github", @@ -15882,22 +18266,21 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -15909,22 +18292,19 @@ }, "node_modules/safe-stable-stringify": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz", - "integrity": "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==", + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "license": "MIT" }, "node_modules/sass-lookup": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/sass-lookup/-/sass-lookup-3.0.0.tgz", - "integrity": "sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^2.16.0" }, @@ -15937,15 +18317,12 @@ }, "node_modules/sass-lookup/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 + "dev": true, + "license": "MIT" }, "node_modules/semver": { "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -15958,15 +18335,13 @@ }, "node_modules/semver-compare": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/semver-regex": { "version": "3.1.4", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.4.tgz", - "integrity": "sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -15976,9 +18351,7 @@ }, "node_modules/semver/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, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -15988,25 +18361,20 @@ }, "node_modules/semver/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 + "license": "ISC" }, "node_modules/set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true + "license": "ISC" }, "node_modules/set-value": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-4.1.0.tgz", - "integrity": "sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw==", "funding": [ "https://github.com/sponsors/jonschlinkert", "https://paypal.me/jonathanschlinkert", "https://jonschlinkert.dev/sponsor" ], + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "is-primitive": "^3.0.1" @@ -16017,13 +18385,10 @@ }, "node_modules/setprototypeof": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "license": "ISC" }, "node_modules/sha256": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/sha256/-/sha256-0.2.0.tgz", - "integrity": "sha512-kTWMJUaez5iiT9CcMv8jSq6kMhw3ST0uRdcIWl3D77s6AsLXNXRp3heeqqfu5+Dyfu4hwpQnMzhqHh8iNQxw0w==", "dependencies": { "convert-hex": "~0.1.0", "convert-string": "~0.1.0" @@ -16031,9 +18396,8 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -16043,23 +18407,20 @@ }, "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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shellwords": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -16071,42 +18432,36 @@ }, "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==" + "license": "ISC" }, "node_modules/simple-swizzle": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.3.1" } }, "node_modules/simple-swizzle/node_modules/is-arrayish": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + "license": "MIT" }, "node_modules/sisteransi": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "ansi-styles": "^6.0.0", "is-fullwidth-code-point": "^4.0.0" @@ -16120,9 +18475,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">=12" }, @@ -16132,9 +18486,8 @@ }, "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, + "license": "MIT", "dependencies": { "is-plain-obj": "^1.0.0" }, @@ -16144,26 +18497,23 @@ }, "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==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true, + "license": "BSD-3-Clause", "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, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -16171,8 +18521,7 @@ }, "node_modules/spdx-correct": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -16180,13 +18529,11 @@ }, "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==" + "license": "CC-BY-3.0" }, "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==", + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -16194,14 +18541,11 @@ }, "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==" + "license": "CC0-1.0" }, "node_modules/split": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, + "license": "MIT", "dependencies": { "through": "2" }, @@ -16211,18 +18555,16 @@ }, "node_modules/split2": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, + "license": "ISC", "dependencies": { "readable-stream": "^3.0.0" } }, "node_modules/split2/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, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -16234,31 +18576,27 @@ }, "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 + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/stack-generator": { "version": "2.0.10", - "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", - "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", + "license": "MIT", "dependencies": { "stackframe": "^1.3.4" } }, "node_modules/stack-trace": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "license": "MIT", "engines": { "node": "*" } }, "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, + "license": "MIT", "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -16268,22 +18606,19 @@ }, "node_modules/stack-utils/node_modules/escape-string-regexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/stackframe": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + "license": "MIT" }, "node_modules/stacktrace-parser": { "version": "0.1.10", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", - "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "license": "MIT", "dependencies": { "type-fest": "^0.7.1" }, @@ -16293,22 +18628,19 @@ }, "node_modules/stacktrace-parser/node_modules/type-fest": { "version": "0.7.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "node_modules/standard-as-callback": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" + "license": "MIT" }, "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, + "license": "ISC", "dependencies": { "chalk": "^2.4.2", "conventional-changelog": "3.1.25", @@ -16334,9 +18666,8 @@ }, "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, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -16346,9 +18677,8 @@ }, "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, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -16360,9 +18690,8 @@ }, "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, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -16371,33 +18700,29 @@ }, "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, + "license": "MIT", "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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "engines": { "node": ">=4" } }, "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, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -16407,9 +18732,8 @@ }, "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, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -16425,31 +18749,26 @@ }, "node_modules/stats-accumulator": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/stats-accumulator/-/stats-accumulator-1.1.3.tgz", - "integrity": "sha512-ys8OR2RWx4Y9xC/fkFUKI3t2ElHpR4Xdp8rIWVCTl4DWmfS80gvxl0LwNKYUio/ibBUpsoMaUYbWldonVfPBFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/statsd-client": { "version": "0.4.7", - "resolved": "https://registry.npmjs.org/statsd-client/-/statsd-client-0.4.7.tgz", - "integrity": "sha512-+sGCE6FednJ/vI7vywErOg/mhVqmf6Zlktz7cdGRnF/cQWXD9ifMgtqU1CIIXmhSwm11SCk4zDN+bwNCvIR/Kg==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + "license": "MIT" }, "node_modules/statuses": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/stream-browserify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "license": "MIT", "dependencies": { "inherits": "~2.0.4", "readable-stream": "^3.5.0" @@ -16457,8 +18776,7 @@ }, "node_modules/stream-browserify/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -16470,49 +18788,43 @@ }, "node_modules/stream-to-array": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz", - "integrity": "sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.1.0" } }, "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "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==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/string_decoder/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==" + "license": "MIT" }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -16523,16 +18835,12 @@ }, "node_modules/string-similarity": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-4.0.4.tgz", - "integrity": "sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "dev": true + "dev": true, + "license": "ISC" }, "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, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -16545,9 +18853,8 @@ "node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -16559,39 +18866,32 @@ }, "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width-cjs/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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/string-width/node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "license": "MIT" }, "node_modules/string-width/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, + "license": "MIT", "engines": { "node": ">=8" } }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -16603,9 +18903,8 @@ }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -16617,9 +18916,8 @@ }, "node_modules/stringify-object": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", @@ -16631,25 +18929,20 @@ }, "node_modules/stringify-object/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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "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 + "dev": true, + "license": "ISC" }, "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, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -16660,9 +18953,8 @@ "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -16672,27 +18964,24 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "min-indent": "^1.0.0" }, @@ -16702,9 +18991,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, + "license": "MIT", "engines": { "node": ">=8" }, @@ -16714,14 +19002,12 @@ }, "node_modules/strnum": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + "license": "MIT" }, "node_modules/stylus-lookup": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-3.0.2.tgz", - "integrity": "sha512-oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^2.8.1", "debug": "^4.1.0" @@ -16735,23 +19021,20 @@ }, "node_modules/stylus-lookup/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 + "dev": true, + "license": "MIT" }, "node_modules/subdirs": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/subdirs/-/subdirs-1.0.1.tgz", - "integrity": "sha512-KSbUKpwQIRcb5Th+l4EzxEZYpCwV/g0pQ348EV7CIM5YEEgzz2L1KJD8FCeTckTiE/TKn2u09DCxpdAL6/iFbg==", + "license": "MIT", "dependencies": { "es6-promise": "^3.0.2" } }, "node_modules/superagent": { "version": "8.0.9", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.9.tgz", - "integrity": "sha512-4C7Bh5pyHTvU33KpZgwrNKh/VQnvgtCSqPRfJAUdmrtSYePVzVg4E4OzsrbkhJj9O7SO6Bnv75K/F8XVZT8YHA==", "dev": true, + "license": "MIT", "dependencies": { "component-emitter": "^1.3.0", "cookiejar": "^2.1.4", @@ -16770,9 +19053,8 @@ }, "node_modules/supertest": { "version": "6.3.3", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.3.tgz", - "integrity": "sha512-EMCG6G8gDu5qEqRQ3JjjPs6+FYT1a7Hv5ApHvtSghmOFJYtsU5S+pSb6Y2EUeCEY3CmEL3mmQ8YWlPOzQomabA==", "dev": true, + "license": "MIT", "dependencies": { "methods": "^1.1.2", "superagent": "^8.0.5" @@ -16783,9 +19065,8 @@ }, "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, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -16795,8 +19076,7 @@ }, "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==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -16806,9 +19086,8 @@ }, "node_modules/swagger-cli": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/swagger-cli/-/swagger-cli-4.0.4.tgz", - "integrity": "sha512-Cp8YYuLny3RJFQ4CvOBTaqmOOgYsem52dPx1xM5S4EUWFblIh2Q8atppMZvXKUr1e9xH5RwipYpmdUzdPcxWcA==", "dev": true, + "license": "MIT", "dependencies": { "@apidevtools/swagger-cli": "4.0.4" }, @@ -16821,9 +19100,8 @@ }, "node_modules/swagger-cli/node_modules/@apidevtools/swagger-cli": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-cli/-/swagger-cli-4.0.4.tgz", - "integrity": "sha512-hdDT3B6GLVovCsRZYDi3+wMcB1HfetTU20l2DC8zD3iFRNMC6QNAZG5fo/6PYeHWBEv7ri4MvnlKodhNB0nt7g==", "dev": true, + "license": "MIT", "dependencies": { "@apidevtools/swagger-parser": "^10.0.1", "chalk": "^4.1.0", @@ -16839,18 +19117,16 @@ }, "node_modules/swagger-cli/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, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/swagger-cli/node_modules/cliui": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -16859,9 +19135,8 @@ }, "node_modules/swagger-cli/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, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -16872,9 +19147,8 @@ }, "node_modules/swagger-cli/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, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -16885,9 +19159,8 @@ }, "node_modules/swagger-cli/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, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -16897,9 +19170,8 @@ }, "node_modules/swagger-cli/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, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -16912,9 +19184,8 @@ }, "node_modules/swagger-cli/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, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -16924,9 +19195,8 @@ }, "node_modules/swagger-cli/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, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -16938,15 +19208,13 @@ }, "node_modules/swagger-cli/node_modules/y18n": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/swagger-cli/node_modules/yargs": { "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -16966,9 +19234,8 @@ }, "node_modules/swagger-cli/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, + "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -16979,26 +19246,49 @@ }, "node_modules/tapable": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/tar": { + "version": "6.1.15", + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, "node_modules/tdigest": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", - "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", + "license": "MIT", "dependencies": { "bintrees": "1.0.2" } }, "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, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -17010,9 +19300,8 @@ }, "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, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -17030,44 +19319,37 @@ }, "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, + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/text-hex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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 + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "readable-stream": "3" } }, "node_modules/through2/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, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -17079,18 +19361,16 @@ }, "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, + "license": "MIT", "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, + "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -17100,32 +19380,27 @@ }, "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 + "dev": true, + "license": "BSD-3-Clause" }, "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, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/to-function": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/to-function/-/to-function-2.0.6.tgz", - "integrity": "sha512-LWfUmW851x5T8+78Nl82CA2j6w0trhoFj4rpS6pFUMgfUMUySDAKPgTvQkUqlWuH3Lihlk5sPyDHSVwmKDSc5Q==", "dependencies": { "component-props": "*" } }, "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, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -17135,39 +19410,34 @@ }, "node_modules/toidentifier": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", "engines": { "node": ">=0.6" } }, "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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/triple-beam": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" + "license": "MIT" }, "node_modules/truncate-utf8-bytes": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "license": "WTFPL", "dependencies": { "utf8-byte-length": "^1.0.1" } }, "node_modules/ts-graphviz": { "version": "1.5.5", - "resolved": "https://registry.npmjs.org/ts-graphviz/-/ts-graphviz-1.5.5.tgz", - "integrity": "sha512-abon0Tlcgvxcqr8x+p8QH1fTbR2R4cEXKGZfT4OJONZWah2YfqkmERb6hrr82omAc1IHwk5PlF8g4BS/ECYvwQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -17178,9 +19448,8 @@ }, "node_modules/ts-jest": { "version": "29.1.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", - "integrity": "sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==", "dev": true, + "license": "MIT", "dependencies": { "bs-logger": "0.x", "fast-json-stable-stringify": "2.x", @@ -17221,18 +19490,16 @@ }, "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, + "license": "ISC", "engines": { "node": ">=12" } }, "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, + "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -17273,18 +19540,16 @@ }, "node_modules/ts-node/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, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/tsconfig-paths": { "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -17294,9 +19559,8 @@ }, "node_modules/tsconfig-paths/node_modules/json5": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -17306,31 +19570,28 @@ }, "node_modules/tsconfig-paths/node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/tslib": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/tsscmp": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", - "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "license": "MIT", "engines": { "node": ">=0.6.x" } }, "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, + "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -17343,15 +19604,13 @@ }, "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 + "dev": true, + "license": "0BSD" }, "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, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -17361,25 +19620,22 @@ }, "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, + "license": "MIT", "engines": { "node": ">=4" } }, "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==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "node_modules/type-is": { "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -17390,9 +19646,8 @@ }, "node_modules/typed-array-length": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -17404,15 +19659,13 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/typescript": { "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -17423,8 +19676,6 @@ }, "node_modules/ua-parser-js": { "version": "1.0.35", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz", - "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==", "funding": [ { "type": "opencollective", @@ -17435,14 +19686,14 @@ "url": "https://paypal.me/faisalman" } ], + "license": "MIT", "engines": { "node": "*" } }, "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==", + "license": "BSD-2-Clause", "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -17453,9 +19704,8 @@ }, "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, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -17468,31 +19718,27 @@ }, "node_modules/uniq": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/universalify": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/unset-value": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-2.0.1.tgz", - "integrity": "sha512-2hvrBfjUE00PkqN+q0XP6yRAOGrR06uSiUoIQGZkc7GxvQ9H7v8quUPNtZjMg4uux69i8HWpIjLPUKwCuRGyNg==", + "license": "MIT", "dependencies": { "has-value": "^2.0.2", "isobject": "^4.0.0" @@ -17503,16 +19749,13 @@ }, "node_modules/unset-value/node_modules/isobject": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/update-browserslist-db": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "funding": [ { @@ -17528,6 +19771,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -17541,17 +19785,15 @@ }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", "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, + "license": "MIT", "dependencies": { "prepend-http": "^2.0.0" }, @@ -17561,47 +19803,40 @@ }, "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, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/utf8-byte-length": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==" + "license": "WTFPL" }, "node_modules/utf8-length": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/utf8-length/-/utf8-length-0.0.1.tgz", - "integrity": "sha512-j/XH2ftofBiobnyApxlN/J6j/ixwT89WEjDcjT66d2i0+GIn9RZfzt8lpEXXE4jUe4NsjBSUq70kS2euQ4nnMw==" + "license": "MIT" }, "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==" + "license": "MIT" }, "node_modules/uuid": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "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 + "dev": true, + "license": "MIT" }, "node_modules/v8-to-istanbul": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", "dev": true, + "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -17612,14 +19847,11 @@ } }, "node_modules/valid-url": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", - "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==" + "version": "1.0.9" }, "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==", + "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -17627,17 +19859,15 @@ }, "node_modules/vary": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "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, + "license": "MIT", "dependencies": { "jsonc-parser": "^3.0.0", "vscode-languageserver-textdocument": "^1.0.3", @@ -17648,59 +19878,51 @@ }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT" }, "node_modules/walkdir": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", - "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "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, + "license": "Apache-2.0", "dependencies": { "makeerror": "1.0.12" } }, "node_modules/wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "license": "MIT", "dependencies": { "defaults": "^1.0.3" } }, "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, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -17713,9 +19935,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, + "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -17729,15 +19950,13 @@ }, "node_modules/which-module": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/which-typed-array": { "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -17753,11 +19972,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/wide-align": { + "version": "1.1.5", + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, "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, + "license": "MIT", "dependencies": { "string-width": "^4.0.0" }, @@ -17767,8 +19992,7 @@ }, "node_modules/winston": { "version": "3.8.2", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz", - "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==", + "license": "MIT", "dependencies": { "@colors/colors": "1.5.0", "@dabh/diagnostics": "^2.0.2", @@ -17788,8 +20012,7 @@ }, "node_modules/winston-transport": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", - "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", + "license": "MIT", "dependencies": { "logform": "^2.3.2", "readable-stream": "^3.6.0", @@ -17801,8 +20024,7 @@ }, "node_modules/winston-transport/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==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -17814,8 +20036,7 @@ }, "node_modules/winston/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==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -17827,23 +20048,20 @@ }, "node_modules/word-wrap": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, + "license": "MIT", "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==" + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -17859,9 +20077,8 @@ "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -17876,47 +20093,41 @@ }, "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==" + "license": "ISC" }, "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, + "license": "MIT", "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, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", - "dev": true, + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", "engines": { "node": ">= 14" } }, "node_modules/yargs": { "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -17932,43 +20143,38 @@ }, "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, + "license": "ISC", "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, + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/ylru": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz", - "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==", + "license": "MIT", "engines": { "node": ">= 4.0.0" } }, "node_modules/yn": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, + "license": "MIT", "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==", + "license": "MIT", "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index 557bc9b4cb5..6e5ce2f9a6a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rudder-transformer", - "version": "1.39.1", + "version": "1.52.1", "description": "", "homepage": "https://github.com/rudderlabs/rudder-transformer#readme", "bugs": { @@ -23,19 +23,23 @@ "lint:fix": "eslint . --fix", "lint:fix:json": "eslint --ext .json --fix .", "check:merge": "npm run verify || exit 1; codecov", - "start": "node ./dist/src/index.js", + "start": "cd dist;node ./src/index.js;cd ..", "build:start": "npm run build && npm run start", "build:ci": "tsc -p tsconfig.json", "build:swagger": "npm run build && npm run setup:swagger", "build": "npm run build:ci && npm run copy", + "clean:build": "npm run clean && npm run build", "build:clean": "npm run clean && npm run build", "verify": "eslint . || exit 1; npm run test:js || exit 1", "test:testRouter": "jest testRouter --detectOpenHandles --coverage --notify --watchAll=false", "test:benchmark": "node benchmark/index.js", + "test": "jest -c jest.config.js --detectOpenHandles", + "test:ci": "npm run test -- --coverage --expand --maxWorkers=50%", "test:js": "jest -c jest.default.config.js --detectOpenHandles", "test:js:silent": "npm run test:js -- --silent", "test:js:ci": "npm run test:js -- --coverage --expand --maxWorkers=50%", "test:ts": "jest -c jest.config.typescript.js --detectOpenHandles", + "test:ts:component:generateNwMocks": "npm run test:ts -- component --generate=true", "test:ts:silent": "npm run test:ts -- --silent", "test:ts:ci": "npm run test:ts -- --coverage --expand --maxWorkers=50%", "test:ut:integration": "jest \"user_transformation.integration.test.js\" --detectOpenHandles --notify", @@ -45,27 +49,30 @@ "commit-msg": "commitlint --edit", "prepare": "node ./scripts/skipPrepareScript.js || husky install", "release": "npx standard-version", - "release:github": "DEBUG=conventional-github-releaser npx conventional-github-releaser -p angular --config github-release.config.js", + "release:github": "DEBUG=conventional-github-releaser npx conventional-github-releaser -p angular -v", "clean:node": "modclean", "check:lint": "eslint . -f json -o reports/eslint.json || exit 0" }, "dependencies": { "@amplitude/ua-parser-js": "^0.7.24", - "@aws-sdk/client-personalize": "^3.363.0", + "@aws-sdk/client-personalize": "^3.391.0", "@aws-sdk/client-s3": "^3.370.0", - "@aws-sdk/credential-providers": "^3.363.0", - "@aws-sdk/lib-storage": "^3.370.0", + "@aws-sdk/credential-providers": "^3.391.0", + "@aws-sdk/lib-storage": "^3.391.0", "@bugsnag/js": "^7.20.2", "@datadog/pprof": "^3.1.0", "@koa/router": "^12.0.0", "@ndhoule/extend": "^2.0.0", + "@pyroscope/nodejs": "^0.2.6", + "@rudderstack/integrations-lib": "^0.1.8", + "@rudderstack/workflow-engine": "^0.6.9", "ajv": "^8.12.0", "ajv-draft-04": "^1.0.0", "ajv-formats": "^2.1.1", - "axios": "^1.4.0", + "axios": "^1.6.0", "btoa": "^1.2.1", "component-each": "^0.2.6", - "crypto-js": "^4.1.1", + "crypto-js": "^4.2.0", "dotenv": "^16.0.3", "flat": "^5.0.2", "form-data": "^4.0.0", @@ -91,14 +98,13 @@ "moment": "^2.29.4", "moment-timezone": "^0.5.43", "node-cache": "^5.1.2", - "node-fetch": "^2.6.9", + "node-fetch": "^2.6.12", "oauth-1.0a": "^2.2.6", "object-hash": "^3.0.0", "parse-static-imports": "^1.1.0", "prom-client": "^14.2.0", "qs": "^6.11.1", "rudder-transformer-cdk": "^1.4.11", - "rudder-workflow-engine": "^0.4.7", "set-value": "^4.1.0", "sha256": "^0.2.0", "stacktrace-parser": "^0.1.10", @@ -112,6 +118,7 @@ "devDependencies": { "@commitlint/config-conventional": "^17.6.3", "@digitalroute/cz-conventional-changelog-for-jira": "^8.0.1", + "@types/fast-json-stable-stringify": "^2.1.0", "@types/jest": "^29.5.1", "@types/koa": "^2.13.6", "@types/koa-bodyparser": "^4.3.10", @@ -119,6 +126,7 @@ "@types/node": "^20.2.5", "@typescript-eslint/eslint-plugin": "^5.61.0", "@typescript-eslint/parser": "^5.59.2", + "axios-mock-adapter": "^1.22.0", "benchmark-suite": "^0.1.8", "commander": "^10.0.1", "commitizen": "^4.3.0", diff --git a/sample.env b/sample.env index 02ef06c9c61..71b11fbfcaa 100644 --- a/sample.env +++ b/sample.env @@ -9,3 +9,4 @@ REDIS_PORT = 6379 REDIS_PASSWORD = 123 REDIS_USERNAME = abc USE_REDIS_DB = true +REDIS_EXPIRY_TIME_IN_SEC = 3600 \ No newline at end of file diff --git a/src/adapters/network.js b/src/adapters/network.js index eb241152c3f..375d9dc9084 100644 --- a/src/adapters/network.js +++ b/src/adapters/network.js @@ -1,7 +1,7 @@ /* eslint-disable no-restricted-syntax */ /* eslint-disable no-undef */ -const _ = require('lodash'); +const lodash = require('lodash'); const http = require('http'); const https = require('https'); const axios = require('axios'); @@ -9,16 +9,19 @@ const log = require('../logger'); const stats = require('../util/stats'); const { removeUndefinedValues } = require('../v0/util'); const { processAxiosResponse } = require('./utils/networkUtils'); +// Only for tests +const { setResponsesForMockAxiosAdapter } = require('../../test/testHelper'); const MAX_CONTENT_LENGTH = parseInt(process.env.MAX_CONTENT_LENGTH, 10) || 100000000; const MAX_BODY_LENGTH = parseInt(process.env.MAX_BODY_LENGTH, 10) || 100000000; +const REQUEST_TIMEOUT_IN_MS = parseInt(process.env.REQUEST_TIMEOUT_IN_MS, 10) || 1000 * 60; // (httpsAgent, httpsAgent) ,these are deployment specific configs not request specific const networkClientConfigs = { // `method` is the request method to be used when making the request method: 'get', // `timeout` specifies the number of milliseconds before the request times out. If the request takes longer than `timeout`, the request will be aborted. - timeout: 1000 * 60, + timeout: REQUEST_TIMEOUT_IN_MS, // `withCredentials` indicates whether or not cross-site Access-Control requests should be made using credentials withCredentials: false, @@ -42,15 +45,36 @@ const networkClientConfigs = { httpsAgent: new https.Agent({ keepAlive: true }), }; -const fireLatencyStat = (startTime, statTags) => { +const fireHTTPStats = (clientResponse, startTime, statTags) => { const destType = statTags.destType ? statTags.destType : ''; const feature = statTags.feature ? statTags.feature : ''; + const endpointPath = statTags.endpointPath ? statTags.endpointPath : ''; + const statusCode = clientResponse.success ? clientResponse.response.status : ''; stats.timing('outgoing_request_latency', startTime, { feature, destType, + endpointPath, + }); + stats.counter('outgoing_request_count', 1, { + feature, + destType, + endpointPath, + success: clientResponse.success, + statusCode, }); }; +const enhanceRequestOptions = (options) => { + const requestOptions = { + ...networkClientConfigs, + ...options, + maxContentLength: MAX_CONTENT_LENGTH, + maxBodyLength: MAX_BODY_LENGTH, + }; + + return requestOptions; +}; + /** * sends an http request with underlying client, expects request options * @param {*} options @@ -58,23 +82,21 @@ const fireLatencyStat = (startTime, statTags) => { */ const httpSend = async (options, statTags = {}) => { let clientResponse; - // here the options argument K-Vs will take priority over requestOptions - const requestOptions = { - ...networkClientConfigs, - ...options, - maxContentLength: MAX_CONTENT_LENGTH, - maxBodyLength: MAX_BODY_LENGTH, - }; + // here the options argument K-Vs will take priority over the default options + const requestOptions = enhanceRequestOptions(options); const startTime = new Date(); + const { url, data, method } = requestOptions; try { const response = await axios(requestOptions); clientResponse = { success: true, response }; } catch (err) { clientResponse = { success: false, response: err }; } finally { - fireLatencyStat(startTime, statTags); + fireHTTPStats(clientResponse, startTime, statTags); } + + setResponsesForMockAxiosAdapter({ url, data, method, options }, clientResponse); return clientResponse; }; @@ -88,16 +110,19 @@ const httpSend = async (options, statTags = {}) => { */ const httpGET = async (url, options, statTags = {}) => { let clientResponse; + // here the options argument K-Vs will take priority over the default options + const requestOptions = enhanceRequestOptions(options); const startTime = new Date(); try { - const response = await axios.get(url, options); + const response = await axios.get(url, requestOptions); clientResponse = { success: true, response }; } catch (err) { clientResponse = { success: false, response: err }; } finally { - fireLatencyStat(startTime, statTags); + fireHTTPStats(clientResponse, startTime, statTags); } + setResponsesForMockAxiosAdapter({ url, options, method: 'GET' }, clientResponse); return clientResponse; }; @@ -111,16 +136,19 @@ const httpGET = async (url, options, statTags = {}) => { */ const httpDELETE = async (url, options, statTags = {}) => { let clientResponse; + // here the options argument K-Vs will take priority over the default options + const requestOptions = enhanceRequestOptions(options); const startTime = new Date(); try { - const response = await axios.delete(url, options); + const response = await axios.delete(url, requestOptions); clientResponse = { success: true, response }; } catch (err) { clientResponse = { success: false, response: err }; } finally { - fireLatencyStat(startTime, statTags); + fireHTTPStats(clientResponse, startTime, statTags); } + setResponsesForMockAxiosAdapter({ url, options, method: 'DELETE' }, clientResponse); return clientResponse; }; @@ -135,16 +163,19 @@ const httpDELETE = async (url, options, statTags = {}) => { */ const httpPOST = async (url, data, options, statTags = {}) => { let clientResponse; + // here the options argument K-Vs will take priority over the default options + const requestOptions = enhanceRequestOptions(options); const startTime = new Date(); try { - const response = await axios.post(url, data, options); + const response = await axios.post(url, data, requestOptions); clientResponse = { success: true, response }; } catch (err) { clientResponse = { success: false, response: err }; } finally { - fireLatencyStat(startTime, statTags); + fireHTTPStats(clientResponse, startTime, statTags); } + setResponsesForMockAxiosAdapter({ url, data, options, method: 'POST' }, clientResponse); return clientResponse; }; @@ -159,16 +190,19 @@ const httpPOST = async (url, data, options, statTags = {}) => { */ const httpPUT = async (url, data, options, statTags = {}) => { let clientResponse; + // here the options argument K-Vs will take priority over the default options + const requestOptions = enhanceRequestOptions(options); const startTime = new Date(); try { - const response = await axios.put(url, data, options); + const response = await axios.put(url, data, requestOptions); clientResponse = { success: true, response }; } catch (err) { clientResponse = { success: false, response: err }; } finally { - fireLatencyStat(startTime, statTags); + fireHTTPStats(clientResponse, startTime, statTags); } + setResponsesForMockAxiosAdapter({ url, data, options, method: 'PUT' }, clientResponse); return clientResponse; }; @@ -183,16 +217,19 @@ const httpPUT = async (url, data, options, statTags = {}) => { */ const httpPATCH = async (url, data, options, statTags = {}) => { let clientResponse; + // here the options argument K-Vs will take priority over the default options + const requestOptions = enhanceRequestOptions(options); const startTime = new Date(); try { - const response = await axios.patch(url, data, options); + const response = await axios.patch(url, data, requestOptions); clientResponse = { success: true, response }; } catch (err) { clientResponse = { success: false, response: err }; } finally { - fireLatencyStat(startTime, statTags); + fireHTTPStats(clientResponse, startTime, statTags); } + setResponsesForMockAxiosAdapter({ url, data, options, method: 'PATCH' }, clientResponse); return clientResponse; }; @@ -200,7 +237,7 @@ const getPayloadData = (body) => { let payload; let payloadFormat; Object.entries(body).forEach(([key, value]) => { - if (!_.isEmpty(value)) { + if (!lodash.isEmpty(value)) { payload = value; payloadFormat = key; } @@ -361,4 +398,5 @@ module.exports = { getPayloadData, getFormData, handleHttpRequest, + enhanceRequestOptions, }; diff --git a/src/adapters/networkHandlerFactory.js b/src/adapters/networkHandlerFactory.js index 7cfa4b048e6..e8c3748d15a 100644 --- a/src/adapters/networkHandlerFactory.js +++ b/src/adapters/networkHandlerFactory.js @@ -8,6 +8,8 @@ const { getIntegrations } = require('../routes/utils'); const handlers = { generic: GenericNetworkHandler, + v0: {}, + v1: {}, }; // Dynamically import the network handlers for all @@ -16,7 +18,17 @@ SUPPORTED_VERSIONS.forEach((version) => { const destinations = getIntegrations(path.resolve(__dirname, `../${version}/destinations`)); destinations.forEach((dest) => { try { - handlers[dest] = require(`../${version}/destinations/${dest}/networkHandler`).networkHandler; + // handles = { + // v0: { + // dest: handler + // }, + // v1: { + // dest: handler + // }, + // generic: GenericNetworkHandler, + // } + handlers[version][dest] = + require(`../${version}/destinations/${dest}/networkHandler`).networkHandler; } catch { // Do nothing as exception indicates // network handler is not defined for that destination @@ -24,9 +36,15 @@ SUPPORTED_VERSIONS.forEach((version) => { }); }); -const getNetworkHandler = (type) => { - const NetworkHandler = handlers[type] || handlers.generic; - return new NetworkHandler(); +const getNetworkHandler = (type, version) => { + let handlerVersion = version; + let NetworkHandler = handlers[version][type] || handlers.generic; + if (version === 'v1' && NetworkHandler === handlers.generic) { + NetworkHandler = handlers.v0[type] || handlers.generic; + handlerVersion = 'v0'; + } + const networkHandler = new NetworkHandler(); + return { networkHandler, handlerVersion }; }; module.exports = { diff --git a/src/adapters/networkHandlerFactory.test.js b/src/adapters/networkHandlerFactory.test.js new file mode 100644 index 00000000000..ff5f26a02d7 --- /dev/null +++ b/src/adapters/networkHandlerFactory.test.js @@ -0,0 +1,36 @@ +const { getNetworkHandler } = require('./networkHandlerFactory'); +const { networkHandler: GenericNetworkHandler } = require('./networkhandler/genericNetworkHandler'); + +describe(`Network Handler Tests`, () => { + it('Should return v0 networkhandler', () => { + let { networkHandler, handlerVersion } = getNetworkHandler('campaign_manager', `v0`); + const cmProxy = require(`../v0/destinations/campaign_manager/networkHandler`).networkHandler; + expect(networkHandler).toEqual(new cmProxy()); + }); + + it('Should return v0 networkhandler braze', () => { + let { networkHandler, handlerVersion } = getNetworkHandler('braze', `v0`); + const brazeProxy = require(`../v0/destinations/braze/networkHandler`).networkHandler; + expect(networkHandler).toEqual(new brazeProxy()); + }); + + it('Should return v1 networkhandler', () => { + let { networkHandler, handlerVersion } = getNetworkHandler('campaign_manager', `v1`); + const cmProxy = require(`../v1/destinations/campaign_manager/networkHandler`).networkHandler; + expect(networkHandler).toEqual(new cmProxy()); + }); + + it('Should return v0 handler if v1 version and handler is present for destination in v0', () => { + const { networkHandler, handlerVersion } = getNetworkHandler('braze', `v1`); + const brazeProxy = require(`../v0/destinations/braze/networkHandler`).networkHandler; + console.log(networkHandler); + expect(networkHandler).toEqual(new brazeProxy()); + }); + + it('Should return generic handler', () => { + const { networkHandler, handlerVersion } = getNetworkHandler('abc', `v1`); + const brazeProxy = require(`../v0/destinations/braze/networkHandler`).networkHandler; + console.log(networkHandler); + expect(networkHandler).toEqual(new GenericNetworkHandler()); + }); +}); diff --git a/src/adapters/networkhandler/authConstants.js b/src/adapters/networkhandler/authConstants.js index c9a6a578358..f88361107ae 100644 --- a/src/adapters/networkhandler/authConstants.js +++ b/src/adapters/networkhandler/authConstants.js @@ -2,6 +2,6 @@ * This class is used for handling Auth related errors */ module.exports = { - DISABLE_DEST: 'DISABLE_DESTINATION', REFRESH_TOKEN: 'REFRESH_TOKEN', + AUTH_STATUS_INACTIVE: 'AUTH_STATUS_INACTIVE', }; diff --git a/src/adapters/networkhandler/genericNetworkHandler.js b/src/adapters/networkhandler/genericNetworkHandler.js index 23bdc1d7a2f..bcbcb212592 100644 --- a/src/adapters/networkhandler/genericNetworkHandler.js +++ b/src/adapters/networkhandler/genericNetworkHandler.js @@ -1,7 +1,7 @@ +const { NetworkError } = require('@rudderstack/integrations-lib'); const { isHttpStatusSuccess } = require('../../v0/util/index'); const { proxyRequest, prepareProxyRequest } = require('../network'); const { getDynamicErrorType, processAxiosResponse } = require('../utils/networkUtils'); -const { NetworkError } = require('../../v0/util/errorTypes'); const tags = require('../../v0/util/tags'); /** diff --git a/src/adapters/utils/networkUtils.js b/src/adapters/utils/networkUtils.js index 39b0e0504a5..0dcb9931e92 100644 --- a/src/adapters/utils/networkUtils.js +++ b/src/adapters/utils/networkUtils.js @@ -1,6 +1,7 @@ /* eslint-disable eqeqeq */ -const _ = require('lodash'); +const lodash = require('lodash'); const { isEmpty } = require('lodash'); +const { AbortedError } = require('@rudderstack/integrations-lib'); const { isHttpStatusRetryable, isDefinedAndNotNullAndNotEmpty, @@ -9,7 +10,6 @@ const { isHttpStatusSuccess, getErrorStatusCode, } = require('../../v0/util'); -const { AbortedError } = require('../../v0/util/errorTypes'); const tags = require('../../v0/util/tags'); const { HTTP_STATUS_CODES } = require('../../v0/util/constant'); @@ -71,6 +71,14 @@ const nodeSysErrorToStatus = (code) => { status: 500, message: '[ETIMEDOUT] :: Operation timed out', }, + EAI_AGAIN: { + status: 500, + message: '[EAI_AGAIN] :: Temporary failure in name resolution', + }, + ECONNABORTED: { + status: 500, + message: '[ECONNABORTED] :: Connection aborted', + }, }; return sysErrorToStatusMap[code] || { status: 400, message: `[${code}]` }; }; @@ -100,7 +108,7 @@ const parseDestResponse = (destResponse, destination = '') => { if ( !isDefinedAndNotNull(responseBody) || !isDefinedAndNotNull(status) || - !_.isNumber(status) || + !lodash.isNumber(status) || status === 0 ) { throw new AbortedError( diff --git a/src/cdk/v1/autopilot/transform.js b/src/cdk/v1/autopilot/transform.js index 613b985c0d5..b27e50f096e 100644 --- a/src/cdk/v1/autopilot/transform.js +++ b/src/cdk/v1/autopilot/transform.js @@ -1,5 +1,5 @@ const { Utils } = require('rudder-transformer-cdk'); -const { InstrumentationError } = require('../../../v0/util/errorTypes'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); function identifyPostMapper(event, mappedPayload) { const { message } = event; diff --git a/src/cdk/v1/dcm_floodlight/transform.js b/src/cdk/v1/dcm_floodlight/transform.js index 4025c3cc01d..bb93333745a 100644 --- a/src/cdk/v1/dcm_floodlight/transform.js +++ b/src/cdk/v1/dcm_floodlight/transform.js @@ -1,10 +1,11 @@ /* eslint-disable no-param-reassign */ const get = require('get-value'); -const _ = require('lodash'); +const lodash = require('lodash'); const { removeUndefinedAndNullValues, isDefinedAndNotNull, } = require('rudder-transformer-cdk/build/utils'); +const { ConfigurationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { getIntegrationsObj, isEmpty, @@ -14,7 +15,6 @@ const { } = require('../../../v0/util'); const { GENERIC_TRUE_VALUES, GENERIC_FALSE_VALUES } = require('../../../constants'); const { BASE_URL, BLACKLISTED_CHARACTERS } = require('./config'); -const { ConfigurationError, InstrumentationError } = require('../../../v0/util/errorTypes'); // append properties to endpoint // eg: ${BASE_URL}key1=value1;key2=value2;.... @@ -44,7 +44,7 @@ const transformCustomVariable = (customFloodlightVariable, message) => { if ( // the value is not null - !_.isNil(itemValue) && + !lodash.isNil(itemValue) && // the value is string and doesn't have any blacklisted characters !( typeof itemValue === 'string' && BLACKLISTED_CHARACTERS.some((k) => itemValue.includes(k)) diff --git a/src/cdk/v1/handler.js b/src/cdk/v1/handler.js index a7dfe85a9ff..0af0859f496 100644 --- a/src/cdk/v1/handler.js +++ b/src/cdk/v1/handler.js @@ -6,13 +6,13 @@ const path = require('path'); const basePath = path.resolve(__dirname); ConfigFactory.init({ basePath, loggingMode: 'production' }); -const tags = require('../../v0/util/tags'); -const { generateErrorObject } = require('../../v0/util'); const { + InstrumentationError, TransformationError, ConfigurationError, - InstrumentationError, -} = require('../../v0/util/errorTypes'); +} = require('@rudderstack/integrations-lib'); +const tags = require('../../v0/util/tags'); +const { generateErrorObject } = require('../../v0/util'); const defTags = { [tags.TAG_NAMES.IMPLEMENTATION]: tags.IMPLEMENTATIONS.CDK_V1, diff --git a/src/cdk/v1/new_relic/transform.js b/src/cdk/v1/new_relic/transform.js index 67858910ad6..43cebd548f6 100644 --- a/src/cdk/v1/new_relic/transform.js +++ b/src/cdk/v1/new_relic/transform.js @@ -1,3 +1,4 @@ +/* eslint-disable no-param-reassign */ const { isBoolean } = require('lodash'); const { Utils } = require('rudder-transformer-cdk'); diff --git a/src/cdk/v2/bindings/default.js b/src/cdk/v2/bindings/default.js index 4c9b0462140..a447370aca8 100644 --- a/src/cdk/v2/bindings/default.js +++ b/src/cdk/v2/bindings/default.js @@ -1,8 +1,9 @@ +const crypto = require('crypto'); const { InstrumentationError, ConfigurationError, NetworkError, -} = require('../../../v0/util/errorTypes'); +} = require('@rudderstack/integrations-lib'); const { isHttpStatusSuccess } = require('../../../v0/util'); const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); const tags = require('../../../v0/util/tags'); @@ -34,20 +35,25 @@ function assertConfig(val, message) { } } -function assertHttpResp(response, message) { - if (!isHttpStatusSuccess(response.status)) { +function assertHttpResp(processedResponse, message) { + if (!isHttpStatusSuccess(processedResponse.status)) { throw new NetworkError( message, - message.status, + processedResponse.status, { - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(response.status), + [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(processedResponse.status), }, - response, + processedResponse.response, ); } } +function MD5(data) { + return crypto.createHash('md5').update(data).digest('hex'); +} + module.exports = { + MD5, isValidEventType, assert, assertConfig, diff --git a/src/cdk/v2/destinations/dcm_floodlight/utils.js b/src/cdk/v2/destinations/dcm_floodlight/utils.js index e50f4f3b40a..07b158efa3e 100644 --- a/src/cdk/v2/destinations/dcm_floodlight/utils.js +++ b/src/cdk/v2/destinations/dcm_floodlight/utils.js @@ -1,7 +1,7 @@ -const _ = require('lodash'); +const lodash = require('lodash'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { getValueFromPropertiesOrTraits, getHashFromArray } = require('../../../../v0/util'); const { GENERIC_TRUE_VALUES, GENERIC_FALSE_VALUES } = require('../../../../constants'); -const { InstrumentationError } = require('../../../../v0/util/errorTypes'); // valid flag should be provided [1|true] or [0|false] const mapFlagValue = (key, value) => { @@ -35,7 +35,7 @@ const transformCustomVariable = (customFloodlightVariable, message) => { if ( // the value is not null - !_.isNil(itemValue) && + !lodash.isNil(itemValue) && // the value is string and doesn't have any blacklisted characters !( typeof itemValue === 'string' && BLACKLISTED_CHARACTERS.some((k) => itemValue.includes(k)) diff --git a/src/cdk/v2/destinations/eloqua/config.js b/src/cdk/v2/destinations/eloqua/config.js new file mode 100644 index 00000000000..ac7b1edf3fd --- /dev/null +++ b/src/cdk/v2/destinations/eloqua/config.js @@ -0,0 +1,5 @@ +const ELOQUA = 'eloqua'; + +module.exports = { + ELOQUA, +}; diff --git a/src/cdk/v2/destinations/eloqua/procWorkflow.yaml b/src/cdk/v2/destinations/eloqua/procWorkflow.yaml new file mode 100644 index 00000000000..f694551c544 --- /dev/null +++ b/src/cdk/v2/destinations/eloqua/procWorkflow.yaml @@ -0,0 +1,46 @@ +bindings: + - name: EventType + path: ../../../../constants + - path: ../../bindings/jsontemplate + exportAll: true + - path: ./config + - name: removeUndefinedAndNullValues + path: ../../../../v0/util + - name: defaultRequestConfig + path: ../../../../v0/util + - path: ./utils + +steps: + - name: validateInput + template: | + let messageType = .message.type; + $.assert(messageType, "message Type is not present. Aborting message."); + $.assert(.message.type.toLowerCase() ==='identify' || .message.type.toLowerCase() ==='track', "Event type " + .message.type.toLowerCase() + " is not supported. Aborting message."); + $.assert(.message.traits || .message.properties, "Message traits/properties not present. Aborting message."); + + - name: prepareCommonResponse + description: | + Populate traits + template: | + const identifierKey = .message.context.externalId[0].identifierType + let data = .message.traits || .message.properties + data = $.stringifyValues(data) + data[identifierKey] = .message.userId + data + - name: prepareResponse + description: | + Populate traits + template: | + let eventType = (.message.context.externalId[0].type.split('-')[1].toString() === "contacts") ? 'identify' : 'track'; + { + identifierFieldName: .message.context.externalId[0].identifierType, + data: $.outputs.prepareCommonResponse, + customObjectId: .message.context.externalId[0].type.split('-')[1].toString(), + type: eventType + } + - name: buildResponseForProcessTransformation + description: build response + template: | + const response = $.defaultRequestConfig(); + response.body.JSON = $.outputs.prepareResponse + response diff --git a/src/cdk/v2/destinations/eloqua/utils.js b/src/cdk/v2/destinations/eloqua/utils.js new file mode 100644 index 00000000000..a8e2afb3f8f --- /dev/null +++ b/src/cdk/v2/destinations/eloqua/utils.js @@ -0,0 +1,12 @@ +const stringifyValues = (data) => { + const output = data; + Object.keys(output).forEach((key) => { + if (typeof output[key] !== 'string') { + output[key] = JSON.stringify(output[key]); + } + }); + return output; +}; +module.exports = { + stringifyValues, +}; diff --git a/src/cdk/v2/destinations/fullstory/procWorkflow.yaml b/src/cdk/v2/destinations/fullstory/procWorkflow.yaml new file mode 100644 index 00000000000..50ac2a81630 --- /dev/null +++ b/src/cdk/v2/destinations/fullstory/procWorkflow.yaml @@ -0,0 +1,104 @@ +bindings: + - name: EventType + path: ../../../../constants + - path: ../../bindings/jsontemplate + exportAll: true + - name: removeUndefinedAndNullValues + path: ../../../../v0/util + +steps: + - name: validateInput + template: | + $.assert(.message.type, "message Type is not present. Aborting message."); + $.assert(.message.type in {{$.EventType.([.TRACK, .IDENTIFY])}}, + "message type " + .message.type + " is not supported"); + - name: prepareContext + template: | + $.context.messageType = .message.type.toLowerCase(); + $.context.payload = {}; + $.context.finalHeaders = { + "authorization": "Basic " + .destination.Config.apiKey, + "content-type": "application/json" + }; + - name: identifyPayload + condition: $.context.messageType == "identify" + template: | + $.context.endpoint = "https://api.fullstory.com/v2/users"; + $.context.payload.properties = .message.traits ?? .message.context.traits; + $.context.payload.uid = .message.userId; + $.context.payload.email = .message.context.traits.email; + $.context.payload.display_name = .message.context.traits.name; + + - name: trackPayload + condition: $.context.messageType == "track" + template: | + $.context.endpoint = "https://api.fullstory.com/v2/events"; + $.context.payload.name = .message.event; + $.context.payload.properties = .message.properties; + $.context.payload.timestamp = .message.originalTimestamp; + $.context.payload.context = {}; + + - name: validateEventName + condition: $.context.messageType == "track" + template: | + $.assert(.message.event, "event is required for track call") + + - name: mapContextFieldsForTrack + condition: $.context.messageType == "track" + template: | + $.context.payload.context.browser = { + "url": .message.context.page.url, + "user_agent": .message.context.userAgent, + "initial_referrer": .message.context.page.initial_referrer, + }; + $.context.payload.context.mobile = { + "app_name": .message.context.app.name, + "app_version": .message.context.app.version, + }; + $.context.payload.context.device = { + "manufacturer": .message.context.device.manufacturer, + "model": .message.context.device.model, + }; + $.context.payload.context.location = { + "ip_address": .message.context.ip, + "latitude": .message.properties.latitude, + "longitude": .message.properties.longitude, + "city": .message.properties.city, + "region": .message.properties.region, + "country": .message.properties.country, + }; + + - name: mapIdsForTrack + condition: $.context.messageType == "track" + template: | + $.context.payload.session = { + "id": .message.properties.sessionId, + "use_most_recent": .message.properties.useMostRecent, + }; + $.context.payload.user = { + "id": .message.properties.userId ?? .message.userId, + } + + - name: cleanPayload + template: | + $.context.payload = $.removeUndefinedAndNullValues($.context.payload); + - name: buildResponseForProcessTransformation + template: | + $.context.payload.({ + "body": { + "JSON": ., + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": $.context.endpoint, + "headers": $.context.finalHeaders, + "params": {}, + "files": {} + }) + + + diff --git a/src/cdk/v2/destinations/gladly/procWorkflow.yaml b/src/cdk/v2/destinations/gladly/procWorkflow.yaml new file mode 100644 index 00000000000..fe8697bc31a --- /dev/null +++ b/src/cdk/v2/destinations/gladly/procWorkflow.yaml @@ -0,0 +1,88 @@ +bindings: + - name: EventType + path: ../../../../constants + - path: ./utils + exportAll: true + - name: defaultRequestConfig + path: ../../../../v0/util + - name: removeUndefinedAndNullValues + path: ../../../../v0/util + - name: getDestinationExternalID + path: ../../../../v0/util + - name: httpGET + path: ../../../../adapters/network + - name: processAxiosResponse + path: ../../../../adapters/utils/networkUtils + + +steps: + - name: checkIfProcessed + condition: .message.statusCode + template: | + $.batchMode ? .message.body.JSON : .message + onComplete: return + + - name: messageType + template: | + .message.type.toLowerCase() + + - name: validateInput + template: | + let messageType = $.outputs.messageType + $.assert(messageType, "message Type is not present. Aborting") + $.assert(messageType in {{$.EventType.([.IDENTIFY])}}, "message type " + messageType + " is not supported") + $.assertConfig(.destination.Config.apiToken, "API Token is not present. Aborting") + $.assertConfig(.destination.Config.domain, "Gladly domain is not present. Aborting") + $.assertConfig(.destination.Config.userName, "User Name is not present. Aborting") + + - name: preparePayload + template: | + $.context.payload = { + name: .message.traits.name || .message.context.traits.name, + image: .message.traits.avatar || .message.context.traits.avatar, + address: .message.traits.address || .message.context.traits.address + } + $.context.payload.address && typeof $.context.payload.address === "object" ? $.context.payload.address = JSON.stringify($.context.payload.address) + $.context.payload.emails = $.formatField(.message, "email") + $.context.payload.phones = $.formatField(.message, "phone") + $.context.payload.customAttributes = $.getCustomAttributes(.message) + $.context.payload.externalCustomerId = $.getExternalCustomerId(.message) + $.context.payload.id = $.getCustomerId(.message) + $.context.payload = $.removeUndefinedAndNullValues($.context.payload) + + - name: validatePayload + template: | + $.validatePayload($.context.payload) + + - name: findCustomer + description: Find if customer is exist or not based on email, phone or externalCustomerId + condition: $.getQueryParams($.context.payload) !== undefined + template: | + const requestOptions = { + headers: $.getHeaders(.destination) + } + const endpoint = $.getEndpoint(.destination) + "?" + $.getQueryParams($.context.payload); + const rawResponse = await $.httpGET(endpoint,requestOptions) + const processedResponse = $.processAxiosResponse(rawResponse) + processedResponse + + - name: createCustomer + description: Build response for create customer + condition: $.outputs.findCustomer.status === 400 || ($.outputs.findCustomer.status === 200 && $.outputs.findCustomer.response.length === 0) || $.getQueryParams($.context.payload) === undefined + template: | + const response = $.defaultRequestConfig() + response.body.JSON = $.removeUndefinedAndNullValues($.context.payload) + response.endpoint = $.getEndpoint(.destination) + response.method = "POST" + response.headers = $.getHeaders(.destination) + response + else: + name: updateCustomer + description: Build response for update customer + template: | + const response = $.defaultRequestConfig() + response.body.JSON = $.removeUndefinedAndNullValues($.context.payload.{~["id"]}) + response.endpoint = $.getEndpoint(.destination) + "/" + $.outputs.findCustomer.response[0].id + response.method = "PATCH" + response.headers = $.getHeaders(.destination) + response diff --git a/src/cdk/v2/destinations/gladly/rtWorkflow.yaml b/src/cdk/v2/destinations/gladly/rtWorkflow.yaml new file mode 100644 index 00000000000..341e5552c83 --- /dev/null +++ b/src/cdk/v2/destinations/gladly/rtWorkflow.yaml @@ -0,0 +1,33 @@ +bindings: + - name: handleRtTfSingleEventError + path: ../../../../v0/util/index + - path: ./utils + exportAll: true + +steps: + - name: validateInput + template: | + $.assert(Array.isArray(^) && ^.length > 0, "Invalid event array") + + - name: transform + externalWorkflow: + path: ./procWorkflow.yaml + loopOverInput: true + + - name: successfulEvents + template: | + $.outputs.transform#idx.output.({ + "batchedRequest": ., + "batched": false, + "destination": ^[idx].destination, + "metadata": ^[idx].metadata[], + "statusCode": 200 + })[] + - name: failedEvents + template: | + $.outputs.transform#idx.error.( + $.handleRtTfSingleEventError(^[idx], .originalError ?? ., {}) + )[] + - name: finalPayload + template: | + [...$.outputs.successfulEvents, ...$.outputs.failedEvents] \ No newline at end of file diff --git a/src/cdk/v2/destinations/gladly/utils.js b/src/cdk/v2/destinations/gladly/utils.js new file mode 100644 index 00000000000..0489f410ec7 --- /dev/null +++ b/src/cdk/v2/destinations/gladly/utils.js @@ -0,0 +1,174 @@ +const get = require('get-value'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); +const { base64Convertor, getDestinationExternalID } = require('../../../../v0/util'); +const { MappedToDestinationKey } = require('../../../../constants'); + +const reservedCustomAttributes = [ + 'email', + 'phone', + 'address', + 'name', + 'avatar', + 'firstName', + 'lastName', + 'userId', +]; + +const externalIdKey = 'context.externalId.0.id'; +const identifierTypeKey = 'context.externalId.0.identifierType'; + +const getHeaders = (destination) => { + const { apiToken, userName } = destination.Config; + const credentials = `${userName}:${apiToken}`; + const base64Credentials = base64Convertor(credentials); + return { + 'Content-Type': 'application/json', + Authorization: `Basic ${base64Credentials}`, + }; +}; + +const getEndpoint = (destination) => { + const { domain } = destination.Config; + return `https://${domain}/api/v1/customer-profiles`; +}; + +const getFieldValue = (field) => { + if (field) { + if (Array.isArray(field)) { + return field.map((item) => ({ original: item })); + } + return [{ original: field }]; + } + return undefined; +}; + +const formatFieldForRETl = (message, fieldName) => { + const identifierType = get(message, identifierTypeKey); + if (identifierType && identifierType === fieldName) { + const field = get(message, externalIdKey); + if (field) { + return [{ original: field }]; + } + } + const key = fieldName === 'email' ? 'emails' : 'phones'; + const field = get(message, `traits.${key}`); + return getFieldValue(field); +}; + +const formatFieldForEventStream = (message, fieldName) => { + const field = get(message, `context.traits.${fieldName}`); + return getFieldValue(field); +}; + +const formatField = (message, fieldName) => { + const mappedToDestination = get(message, MappedToDestinationKey); + if (mappedToDestination) { + return formatFieldForRETl(message, fieldName); + } + return formatFieldForEventStream(message, fieldName); +}; + +const getCustomAttributes = (message) => { + const mappedToDestination = get(message, MappedToDestinationKey); + // for rETL + if (mappedToDestination) { + if (message?.traits?.customAttributes && typeof message.traits.customAttributes === 'object') { + return Object.keys(message.traits.customAttributes).length > 0 + ? message.traits.customAttributes + : undefined; + } + return undefined; + } + + // for event stream + const customAttributes = message.context?.traits || {}; + reservedCustomAttributes.forEach((customAttribute) => { + if (customAttributes[customAttribute]) { + delete customAttributes[customAttribute]; + } + }); + return Object.keys(customAttributes).length > 0 ? customAttributes : undefined; +}; + +const getExternalCustomerId = (message) => { + const mappedToDestination = get(message, MappedToDestinationKey); + // for rETL + if (mappedToDestination) { + const identifierType = get(message, identifierTypeKey); + if (identifierType === 'externalCustomerId') { + return get(message, externalIdKey); + } + + if (message?.traits?.externalCustomerId) { + return message.traits.externalCustomerId; + } + + return undefined; + } + + // for event stream + return message.userId; +}; + +const getCustomerId = (message) => { + const mappedToDestination = get(message, MappedToDestinationKey); + // for rETL + if (mappedToDestination) { + const identifierType = get(message, identifierTypeKey); + if (identifierType === 'id') { + return get(message, externalIdKey); + } + + if (message?.traits?.id) { + return message.traits.id; + } + + return undefined; + } + + // for event stream + const customerId = getDestinationExternalID(message, 'GladlyCustomerId'); + if (customerId) { + return customerId; + } + + return undefined; +}; + +const validatePayload = (payload) => { + if (!(payload?.phones || payload?.emails || payload?.id || payload?.externalCustomerId)) { + throw new InstrumentationError( + 'One of phone, email, userId or GladlyCustomerId is required for an identify call', + ); + } +}; + +const getQueryParams = (payload) => { + if (payload.emails && payload.emails.length > 0) { + return `email=${encodeURIComponent(payload.emails[0].original)}`; + } + + if (payload.phones && payload.phones.length > 0) { + return `phoneNumber=${encodeURIComponent(payload.phones[0].original)}`; + } + + if (payload.externalCustomerId) { + return `externalCustomerId=${encodeURIComponent(payload.externalCustomerId)}`; + } + + return undefined; +}; + +module.exports = { + getHeaders, + getEndpoint, + formatField, + getFieldValue, + getCustomerId, + getQueryParams, + validatePayload, + formatFieldForRETl, + getCustomAttributes, + getExternalCustomerId, + formatFieldForEventStream, +}; diff --git a/src/cdk/v2/destinations/gladly/utils.test.js b/src/cdk/v2/destinations/gladly/utils.test.js new file mode 100644 index 00000000000..116f150448f --- /dev/null +++ b/src/cdk/v2/destinations/gladly/utils.test.js @@ -0,0 +1,503 @@ +const { + getHeaders, + getEndpoint, + formatField, + getCustomerId, + getFieldValue, + getQueryParams, + validatePayload, + formatFieldForRETl, + getCustomAttributes, + getExternalCustomerId, + formatFieldForEventStream, +} = require('./utils'); +const { base64Convertor } = require('../../../../v0/util'); + +describe('Unit test cases for getHeaders function', () => { + it('Should return headers', () => { + const destination = { + Config: { + apiToken: 'token', + userName: 'user', + }, + }; + const expectedHeaders = { + 'Content-Type': 'application/json', + Authorization: `Basic ${base64Convertor('user:token')}`, + }; + + const result = getHeaders(destination); + + expect(result).toEqual(expectedHeaders); + }); +}); + +describe('Unit test cases for getEndpoint function', () => { + it('Should return destination endpoint', () => { + const destination = { + Config: { + domain: 'rudderstack.us-uat.gladly.qa', + }, + }; + const expected = 'https://rudderstack.us-uat.gladly.qa/api/v1/customer-profiles'; + const result = getEndpoint(destination); + expect(result).toBe(expected); + }); +}); + +describe('Unit test cases for getFieldValue function', () => { + it('Should return an array with a single object containing the original value when the input field is a string', () => { + const field = 'rudderlabs1@gmail.com'; + const result = getFieldValue(field); + expect(result).toEqual([{ original: field }]); + }); + + it('should return an array with each element containing the original value when the input field is an array', () => { + const field = ['rudderlabs1@gmail.com', 'rudderlabs2@gmail.com', 'rudderlabs3@gmail.com']; + const result = getFieldValue(field); + expect(result).toEqual([ + { + original: 'rudderlabs1@gmail.com', + }, + { + original: 'rudderlabs2@gmail.com', + }, + { + original: 'rudderlabs3@gmail.com', + }, + ]); + }); + + it('Should return undefined when the input field is null', () => { + const field = null; + const result = getFieldValue(field); + expect(result).toBeUndefined(); + }); + + it('Should return undefined when the input field is undefined', () => { + const field = undefined; + const result = getFieldValue(field); + expect(result).toBeUndefined(); + }); +}); + +describe('Unit test cases for formatFieldForRETl function', () => { + it('should return the object containing the original value when identifierType matches fieldName', () => { + const message = { + context: { + externalId: [ + { + id: 'test@rudderlabs.com', + identifierType: 'email', + }, + ], + }, + traits: { + emails: ['test@rudderlabs.com', 'test@rudderlabshome.com'], + }, + }; + const fieldName = 'email'; + const expected = [{ original: 'test@rudderlabs.com' }]; + + const result = formatFieldForRETl(message, fieldName); + + expect(result).toEqual(expected); + }); + + it('Should retrieve the email value from traits when fieldName does not match with identifierType', () => { + const message = { + context: { + externalId: [ + { + id: '+91 9999999999', + identifierType: 'phone', + }, + ], + }, + traits: { + emails: ['test@rudderlabs.com', 'test@rudderlabshome.com'], + }, + }; + const fieldName = 'email'; + const expected = [{ original: 'test@rudderlabs.com' }, { original: 'test@rudderlabshome.com' }]; + + const result = formatFieldForRETl(message, fieldName); + + expect(result).toEqual(expected); + }); +}); + +describe('Unit test cases for formatFieldForEventStream function', () => { + it('Should return field value when fieldName exist in payload', () => { + const message = { + context: { + traits: { + phone: '+91 9999999999', + }, + }, + }; + const fieldName = 'phone'; + const expected = [{ original: '+91 9999999999' }]; + + const result = formatFieldForEventStream(message, fieldName); + expect(result).toEqual(expected); + }); + + it('Should return undefined when fieldName does not exist in payload', () => { + const message = { + context: { + traits: { + phone: '+91 9999999999', + }, + }, + }; + const fieldName = 'email'; + const result = formatFieldForEventStream(message, fieldName); + expect(result).toBeUndefined(); + }); +}); + +describe('Unit test cases for formatField function', () => { + describe('rETL tests', () => { + it('Should return field value from externalId when identifier type matches with fieldName', () => { + const message = { + context: { + externalId: [ + { + id: '+91 9999999999', + identifierType: 'phone', + }, + ], + mappedToDestination: true, + }, + traits: { + emails: ['test@rudderlabs.com', 'test@rudderlabshome.com'], + }, + }; + const result = formatField(message, 'phone'); + expect(result).toEqual([{ original: '+91 9999999999' }]); + }); + + it('Should return field value from traits when identifier type does not match with fieldName', () => { + const message = { + context: { + externalId: [ + { + id: 'user@1', + identifierType: 'externalCustomerId', + }, + ], + mappedToDestination: true, + }, + traits: { + phones: ['+91 9999999999'], + }, + }; + const result = formatField(message, 'phone'); + expect(result).toEqual([{ original: '+91 9999999999' }]); + }); + }); + + describe('Event stream tests', () => { + it('Should return field value from payload', () => { + const message = { + context: { + traits: { + phone: ['+91 9999999999'], + }, + }, + }; + const result = formatField(message, 'phone'); + expect(result).toEqual([{ original: '+91 9999999999' }]); + }); + }); +}); + +describe('Unit test cases for getCustomAttributes function', () => { + describe('rETL tests', () => { + it('Should return custom attributes from payload', () => { + const message = { + context: { + mappedToDestination: true, + }, + traits: { + customAttributes: { + attribute1: 'value1', + attribute2: 'value2', + }, + }, + }; + const result = getCustomAttributes(message); + expect(result).toEqual({ + attribute1: 'value1', + attribute2: 'value2', + }); + }); + + it('Should return undefined when empty custom attributes object is present in payload', () => { + const message = { + context: { + mappedToDestination: true, + }, + traits: { + customAttributes: {}, + }, + }; + const result = getCustomAttributes(message); + expect(result).toBeUndefined(); + }); + + it('Should return undefined when no custom attributes are present in payload', () => { + const message = { + context: { + mappedToDestination: true, + }, + traits: {}, + }; + const result = getCustomAttributes(message); + expect(result).toBeUndefined(); + }); + }); + + describe('Event stream tests', () => { + it('Should filter traits and return remaining custom attributes from payload', () => { + const message = { + context: { + traits: { + name: 'John Doe', + email: 'john@gmail.com', + age: 65, + source: 'rudderstack', + }, + }, + }; + const result = getCustomAttributes(message); + expect(result).toEqual({ + age: 65, + source: 'rudderstack', + }); + }); + + it('Should return undefined when empty traits object is present in payload', () => { + const message = { + context: { + traits: {}, + }, + }; + const result = getCustomAttributes(message); + expect(result).toBeUndefined(); + }); + + it('Should return undefined when no traits object is present in payload', () => { + const message = { + context: {}, + }; + const result = getCustomAttributes(message); + expect(result).toBeUndefined(); + }); + }); +}); + +describe('Unit test cases for getExternalCustomerId function', () => { + describe('rETL tests', () => { + it('Should return the external ID when the identifier type is "externalCustomerId"', () => { + const message = { + context: { + externalId: [ + { + id: 'externalCustomer@1', + identifierType: 'externalCustomerId', + }, + ], + mappedToDestination: true, + }, + }; + + const result = getExternalCustomerId(message); + expect(result).toBe('externalCustomer@1'); + }); + + it('Should return the external ID from traits when identifier type is not "externalCustomerId"', () => { + const message = { + context: { + externalId: [ + { + id: 'test@rudderlabs.com', + identifierType: 'email', + }, + ], + mappedToDestination: true, + }, + traits: { + externalCustomerId: 'externalCustomer@1', + }, + }; + const result = getExternalCustomerId(message); + expect(result).toBe('externalCustomer@1'); + }); + + it('Should return undefined when external customer id is not present in payload', () => { + const message = { + context: { + mappedToDestination: true, + }, + }; + + const result = getExternalCustomerId(message); + expect(result).toBeUndefined(); + }); + }); + + describe('Event stream tests', () => { + it('Should return the external ID as userId is present in payload', () => { + const message = { + userId: 'externalCustomer@1', + context: {}, + }; + + const result = getExternalCustomerId(message); + expect(result).toBe('externalCustomer@1'); + }); + + it('Should return undefined when userId is not present in payload', () => { + const message = { + context: {}, + }; + + const result = getExternalCustomerId(message); + expect(result).toBeUndefined(); + }); + }); +}); + +describe('Unit test cases for getCustomerId function', () => { + describe('rETL tests', () => { + it('Should return the customerId when the identifier type is "id"', () => { + const message = { + context: { + externalId: [ + { + id: 'user@1', + identifierType: 'id', + }, + ], + mappedToDestination: true, + }, + }; + + const result = getCustomerId(message); + expect(result).toBe('user@1'); + }); + + it('Should return the customerId from traits when identifier type is not "id"', () => { + const message = { + context: { + externalId: [ + { + id: 'test@rudderlabs.com', + identifierType: 'email', + }, + ], + mappedToDestination: true, + }, + traits: { + id: 'user@1', + }, + }; + const result = getCustomerId(message); + expect(result).toBe('user@1'); + }); + + it('Should return undefined when customerId is not present in payload', () => { + const message = { + context: { + mappedToDestination: true, + }, + }; + + const result = getCustomerId(message); + expect(result).toBeUndefined(); + }); + }); + + describe('Event stream tests', () => { + it('Should return the customerId as GladlyCustomerId is present in payload', () => { + const message = { + context: { + externalId: [ + { + id: 'user@1', + type: 'GladlyCustomerId', + }, + ], + }, + }; + const result = getCustomerId(message); + expect(result).toBe('user@1'); + }); + + it('Should return undefined when GladlyCustomerId is not present in payload', () => { + const message = { + context: {}, + }; + const result = getCustomerId(message); + expect(result).toBeUndefined(); + }); + }); +}); + +describe('Unit test cases for validatePayload function', () => { + it('Should throw an error when payload does not have all required fields', () => { + const payload = {}; + try { + validatePayload(payload); + } catch (err) { + expect(err.message).toEqual( + 'One of phone, email, userId or GladlyCustomerId is required for an identify call', + ); + } + }); + + it('Should throw an error when payload is undefined', () => { + const payload = undefined; + try { + validatePayload(payload); + } catch (err) { + expect(err.message).toEqual( + 'One of phone, email, userId or GladlyCustomerId is required for an identify call', + ); + } + }); +}); + +describe('Unit test cases for getQueryParams function', () => { + it('Should return email as query parameter if email is present in payload', () => { + const payload = { + emails: [{ original: 'test@example.com' }], + }; + const result = getQueryParams(payload); + expect(result).toBe('email=test%40example.com'); + }); + + it('Should return phone as query parameter if phone is present in payload', () => { + const payload = { + phones: [{ original: '+91 9999999999' }], + }; + const result = getQueryParams(payload); + expect(result).toBe('phoneNumber=%2B91%209999999999'); + }); + + it('Should return externalCustomerId as query parameter if externalCustomerId is present in payload', () => { + const payload = { + externalCustomerId: 'externalCustomer@1', + }; + const result = getQueryParams(payload); + expect(result).toBe('externalCustomerId=externalCustomer%401'); + }); + + it('should return undefined when no supported query params are present in payload', () => { + const payload = {}; + const result = getQueryParams(payload); + expect(result).toBeUndefined(); + }); +}); diff --git a/src/cdk/v2/destinations/launchdarkly_audience/config.js b/src/cdk/v2/destinations/launchdarkly_audience/config.js new file mode 100644 index 00000000000..a1ec48a43c8 --- /dev/null +++ b/src/cdk/v2/destinations/launchdarkly_audience/config.js @@ -0,0 +1,15 @@ +const SUPPORTED_EVENT_TYPE = 'audiencelist'; +const ACTION_TYPES = ['add', 'remove']; +const IDENTIFIER_KEY = 'identifier'; +// ref:- https://docs.launchdarkly.com/guides/integrations/build-synced-segments?q=othercapabilities#manifest-details +// ref:- https://docs.launchdarkly.com/home/segments#targeting-users-in-segments +const ENDPOINT = 'https://app.launchdarkly.com/api/v2/segment-targets/rudderstack'; +const MAX_IDENTIFIERS = 1000; + +module.exports = { + SUPPORTED_EVENT_TYPE, + ACTION_TYPES, + IDENTIFIER_KEY, + ENDPOINT, + MAX_IDENTIFIERS, +}; diff --git a/src/cdk/v2/destinations/launchdarkly_audience/procWorkflow.yaml b/src/cdk/v2/destinations/launchdarkly_audience/procWorkflow.yaml new file mode 100644 index 00000000000..48aad2bb79d --- /dev/null +++ b/src/cdk/v2/destinations/launchdarkly_audience/procWorkflow.yaml @@ -0,0 +1,67 @@ +bindings: + - name: EventType + path: ../../../../constants + - path: ../../bindings/jsontemplate + exportAll: true + - name: defaultRequestConfig + path: ../../../../v0/util + - name: removeUndefinedNullEmptyExclBoolInt + path: ../../../../v0/util + - path: ./config + exportAll: true + - path: ./utils + exportAll: true + +steps: + - name: validateInput + template: | + let messageType = .message.type; + $.assertConfig(.destination.Config.audienceId, "Audience Id is not present. Aborting"); + $.assertConfig(.destination.Config.audienceName, "Audience Name is not present. Aborting"); + $.assertConfig(.destination.Config.accessToken, "Access Token is not present. Aborting"); + $.assertConfig(.destination.Config.clientSideId, "Launch Darkly Client Side is not present. Aborting"); + $.assert(.message.type, "Message Type is not present. Aborting message."); + $.assert(.message.type.toLowerCase() === $.SUPPORTED_EVENT_TYPE, "Event type " + .message.type.toLowerCase() + " is not supported. Aborting message."); + $.assert(.message.properties, "Message properties is not present. Aborting message."); + $.assert(.message.properties.listData, "`listData` is not present inside properties. Aborting message."); + $.assert($.containsAll(Object.keys(.message.properties.listData), $.ACTION_TYPES), "Unsupported action type. Aborting message.") + $.assert(Object.keys(.message.properties.listData).length > 0, "`listData` is empty. Aborting message.") + + - name: batchIdentifiersList + description: batch identifiers list + template: | + const batchedList = $.batchIdentifiersList(.message.properties.listData); + $.assert(batchedList.length > 0, "`listData` is empty. Aborting message."); + batchedList; + + - name: prepareBasePayload + template: | + const payload = { + environmentId: .destination.Config.clientSideId, + cohortId: .destination.Config.audienceId, + cohortName: .destination.Config.audienceName, + contextKind: .destination.Config.audienceType + }; + $.removeUndefinedNullEmptyExclBoolInt(payload); + + - name: buildResponseForProcessTransformation + description: build multiplexed response depending upon batch size + template: | + $.outputs.batchIdentifiersList.().({ + "body": { + "JSON": {...$.outputs.prepareBasePayload, listData: .}, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": {{$.ENDPOINT}}, + "headers": { + "Authorization": ^.destination.Config.accessToken, + "Content-Type": "application/json" + }, + "params": {}, + "files": {} + })[] diff --git a/src/cdk/v2/destinations/launchdarkly_audience/utils.js b/src/cdk/v2/destinations/launchdarkly_audience/utils.js new file mode 100644 index 00000000000..6128fdfbfc3 --- /dev/null +++ b/src/cdk/v2/destinations/launchdarkly_audience/utils.js @@ -0,0 +1,87 @@ +const lodash = require('lodash'); +const { ACTION_TYPES, IDENTIFIER_KEY, MAX_IDENTIFIERS } = require('./config'); + +/** + * Prepares a list of identifiers based on the provided data and identifier key. + * @param {*} listData The data containing lists of members to be added or removed from the audience. + * @returns + * { + "add": [ + { + "id": "test@gmail.com" + } + ], + "remove": [] + } + */ +const prepareIdentifiersList = (listData) => { + const list = {}; + const processList = (actionData) => + actionData + .filter((member) => member.hasOwnProperty(IDENTIFIER_KEY) && member[IDENTIFIER_KEY]) + .map((member) => ({ id: member[IDENTIFIER_KEY] })); + ACTION_TYPES.forEach((action) => { + list[action] = listData?.[action] ? processList(listData[action]) : []; + }); + return list; +}; + +/** + * Batch the identifiers list based on the maximum number of identifiers allowed per request. + * @param {*} listData The data containing lists of members to be added or removed from the audience. + * @returns + * For MAX_IDENTIFIERS = 2 + * [ + { + "add": [ + { + "id": "test1@gmail.com" + } + ], + "remove": [ + { + "id": "test2@gmail.com" + } + ] + }, + { + "add": [ + { + "id": "test3@gmail.com" + } + ], + "remove": [] + } + ] + */ +const batchIdentifiersList = (listData) => { + const audienceList = prepareIdentifiersList(listData); + const combinedList = [ + ...audienceList.add.map((item) => ({ ...item, type: 'add' })), + ...audienceList.remove.map((item) => ({ ...item, type: 'remove' })), + ]; + + const chunkedData = lodash.chunk(combinedList, MAX_IDENTIFIERS); + + // Group the chunks by action type (add/remove) + const groupedData = chunkedData.map((chunk) => { + const groupedChunk = { + add: [], + remove: [], + }; + + chunk.forEach((item) => { + if (item.type === 'add') { + groupedChunk.add.push({ id: item.id }); + } else if (item.type === 'remove') { + groupedChunk.remove.push({ id: item.id }); + } + }); + + return groupedChunk; + }); + + return groupedData; +}; + +module.exports = { prepareIdentifiersList, batchIdentifiersList }; diff --git a/src/cdk/v2/destinations/launchdarkly_audience/utils.test.js b/src/cdk/v2/destinations/launchdarkly_audience/utils.test.js new file mode 100644 index 00000000000..8c06c990766 --- /dev/null +++ b/src/cdk/v2/destinations/launchdarkly_audience/utils.test.js @@ -0,0 +1,136 @@ +const { prepareIdentifiersList, batchIdentifiersList } = require('./utils'); + +jest.mock(`./config`, () => { + const originalConfig = jest.requireActual(`./config`); + return { + ...originalConfig, + MAX_IDENTIFIERS: 2, + }; +}); + +describe('Unit test cases for prepareIdentifiersList', () => { + it('should return an object with empty "add" and "remove" properties when no data is provided', () => { + const result = prepareIdentifiersList({}); + expect(result).toEqual({ add: [], remove: [] }); + }); + + it('should handle null input and return an object with empty "add" and "remove" identifiers list', () => { + const result = prepareIdentifiersList(null); + expect(result).toEqual({ add: [], remove: [] }); + }); + + it('should handle undefined input and return an object with empty "add" and "remove" identifiers list', () => { + const result = prepareIdentifiersList(undefined); + expect(result).toEqual({ add: [], remove: [] }); + }); + + it('should handle input with missing "add" or "remove" identifiers list and return an object with empty "add" and "remove" identifiers list', () => { + const result = prepareIdentifiersList({ add: [], remove: undefined }); + expect(result).toEqual({ add: [], remove: [] }); + }); + + it('should handle input with empty "add" or "remove" identifiers list and return an object with empty "add" and "remove" identifiers list', () => { + const result = prepareIdentifiersList({ add: [], remove: [] }); + expect(result).toEqual({ add: [], remove: [] }); + }); + + it('should handle input with non empty "add" or "remove" identifiers list and return an object non empty "add" and "remove" identifiers list', () => { + const result = prepareIdentifiersList({ + add: [{ identifier: 'test1@email.com' }, { identifier: 'test2@email.com' }], + remove: [{ identifier: 'test3@email.com' }], + }); + expect(result).toEqual({ + add: [{ id: 'test1@email.com' }, { id: 'test2@email.com' }], + remove: [{ id: 'test3@email.com' }], + }); + }); +}); + +describe('Unit test cases for batchIdentifiersList', () => { + it('should correctly batch a list containing both "add" and "remove" actions', () => { + const listData = { + add: [ + { identifier: 'test1@email.com' }, + { identifier: 'test2@email.com' }, + { identifier: 'test3@email.com' }, + ], + remove: [{ identifier: 'test4@email.com' }, { identifier: 'test5@email.com' }], + }; + + const expectedOutput = [ + { + add: [{ id: 'test1@email.com' }, { id: 'test2@email.com' }], + remove: [], + }, + { + add: [{ id: 'test3@email.com' }], + remove: [{ id: 'test4@email.com' }], + }, + { + add: [], + remove: [{ id: 'test5@email.com' }], + }, + ]; + + expect(batchIdentifiersList(listData)).toEqual(expectedOutput); + }); + + it('should correctly batch a list containing only "add" actions', () => { + const listData = { + add: [ + { identifier: 'test1@email.com' }, + { identifier: 'test2@email.com' }, + { identifier: 'test3@email.com' }, + ], + remove: [], + }; + + const expectedOutput = [ + { + add: [{ id: 'test1@email.com' }, { id: 'test2@email.com' }], + remove: [], + }, + { + add: [{ id: 'test3@email.com' }], + remove: [], + }, + ]; + + expect(batchIdentifiersList(listData)).toEqual(expectedOutput); + }); + + it('should correctly batch a list containing only "remove" actions', () => { + const listData = { + add: [], + remove: [ + { identifier: 'test1@email.com' }, + { identifier: 'test2@email.com' }, + { identifier: 'test3@email.com' }, + ], + }; + + const expectedOutput = [ + { + add: [], + remove: [{ id: 'test1@email.com' }, { id: 'test2@email.com' }], + }, + { + add: [], + remove: [{ id: 'test3@email.com' }], + }, + ]; + + expect(batchIdentifiersList(listData)).toEqual(expectedOutput); + }); + + it('should return an empty list for empty input list data', () => { + const listData = { + add: [{ identifier: '' }], + remove: [], + }; + + const expectedOutput = []; + + expect(batchIdentifiersList(listData)).toEqual(expectedOutput); + }); +}); diff --git a/src/cdk/v2/destinations/optimizely_fullstack/procWorkflow.yaml b/src/cdk/v2/destinations/optimizely_fullstack/procWorkflow.yaml index 14f506c3b41..4d90065f7ec 100644 --- a/src/cdk/v2/destinations/optimizely_fullstack/procWorkflow.yaml +++ b/src/cdk/v2/destinations/optimizely_fullstack/procWorkflow.yaml @@ -37,7 +37,6 @@ steps: $.assertConfig(.destination.Config.experimentId, "Experiment ID is not present. Aborting"); $.assertConfig(!(.destination.Config.trackKnownUsers && !(.message.userId)), "UserId is required for event tracking when the 'Track Known Users' setting is enabled. Please include a 'userId' in your event payload"); $.assertConfig(!(!.destination.Config.trackKnownUsers && !(.message.anonymousId)), "AnonymousId is required when 'Track Known Users' setting is disabled"); - $.assertConfig(!(.destination.Config.secureEnvironment && !(.destination.Config.dataFileAccessToken)), "Data File Access Token is not present for secure environment. Aborting"); - name: messageType template: | @@ -60,15 +59,10 @@ steps: description: Fetch the data file from the data file url template: | const dataFileUrl = .destination.Config.dataFileUrl; - const options = .destination.Config.secureEnvironment ? { - headers: { - "Authorization": "Bearer " + .destination.Config.dataFileAccessToken - } - }; - const rawResponse = await $.handleHttpRequest("get", dataFileUrl, options); + const rawResponse = await $.handleHttpRequest("get", dataFileUrl); const processedResponse = rawResponse.processedResponse; - $.assertHttpResp(processedResponse, "Data File Lookup Failed"); - processedResponse.response + $.assertHttpResp(processedResponse, "Data File Lookup Failed due to " + JSON.stringify(processedResponse.response)); + processedResponse.response; - name: validateDateFileForTrackPageAndScreen condition: $.outputs.messageType in [ {{$.EventType.TRACK}}, {{$.EventType.PAGE}}, {{$.EventType.SCREEN}}] diff --git a/src/cdk/v2/destinations/ortto/config.js b/src/cdk/v2/destinations/ortto/config.js new file mode 100644 index 00000000000..8187d9de764 --- /dev/null +++ b/src/cdk/v2/destinations/ortto/config.js @@ -0,0 +1,38 @@ +const IDENTIFY_ENDPOINT = { + au: 'https://api.au.ap3api.com/v1/person/merge', + eu: 'https://api.eu.ap3api.com/v1/person/merge', + other: 'https://api.ap3api.com/v1/person/merge', +}; +// https://help.ortto.com/developer/latest/api-reference/person/merge.html#person-fields +const TRACK_ENDPOINT = { + au: 'https://api.au.ap3api.com/v1/activities/create', + eu: 'https://api.eu.ap3api.com/v1/activities/create', + other: 'https://api.ap3api.com/v1/activities/create', +}; +// https://help.ortto.com/a-271-create-a-custom-activity-event-create + +const maxBatchSize = 1; + +const fieldTypeMap = { + text: 'str', + email: 'str', + longText: 'txt', + number: 'int', + decimalNumber: 'int', + currency: 'int', + date: 'dtz', + timeAndDate: 'tme', + boolean: 'bol', + phone: 'phn', + singleSelect: 'str', + multiSelect: 'sst', + link: 'str', + object: 'obj', +}; + +module.exports = { + IDENTIFY_ENDPOINT, + TRACK_ENDPOINT, + fieldTypeMap, + maxBatchSize, +}; diff --git a/src/cdk/v2/destinations/ortto/procWorkflow.yaml b/src/cdk/v2/destinations/ortto/procWorkflow.yaml new file mode 100644 index 00000000000..4b98f6246f0 --- /dev/null +++ b/src/cdk/v2/destinations/ortto/procWorkflow.yaml @@ -0,0 +1,126 @@ +bindings: + - name: EventType + path: ../../../../constants + - path: ../../bindings/jsontemplate + exportAll: true + - path: ./config + - name: removeUndefinedAndNullValues + path: ../../../../v0/util + - name: defaultRequestConfig + path: ../../../../v0/util + - path: ./utils + +steps: + - name: validateInput + template: | + let messageType = .message.type; + $.assert(.message.type, "message Type is not present. Aborting message."); + $.assertConfig(.destination.Config.privateApiKey, "Private Api Key is not present"); + $.assertConfig(.destination.Config.instanceRegion, "Instance Region is not present"); + $.assert(messageType in {{$.EventType.([.IDENTIFY, .TRACK])}}, "message type " + messageType + " is not supported"); + $.assert(.message.().({{{{$.getGenericPaths("email")}}}}) || .message.().({{{{$.getGenericPaths("userId")}}}}), "Either of email or userId is required. Aborting message."); + + - name: messageType + template: | + .message.type.toLowerCase() + + - name: validateInputForTrack + description: Additional validation for Track events + condition: $.outputs.messageType === {{$.EventType.TRACK}} + template: | + $.assert(.message.event, "event is not present. Aborting.") + + - name: commonFields + description: | + Builds common fields in destination payload. + template: | + let commonFields = .message.().({ + "fields": { + "str::first": {{{{$.getGenericPaths("firstName")}}}}, + "str::last": {{{{$.getGenericPaths("lastName")}}}}, + "str::email": {{{{$.getGenericPaths("email")}}}}, + "geo::city": {"name":{{{{$.getGenericPaths("city")}}}}}, + "geo::country": {"name":{{{{$.getGenericPaths("country")}}}}}, + "geo::region": {"name":{{{{$.getGenericPaths("region")}}}}}, + "str::postal": {{{{$.getGenericPaths("zipcode")}}}}, + "dtz::b": $.getBirthdayObj({{{{$.getGenericPaths("birthday")}}}}), + "str::ei": {{{{$.getGenericPaths("userId")}}}}, + "str::language": .context.traits.language || .context.locale, + "phn::phone": {"n": {{{{$.getGenericPaths("phone")}}}}}, + "bol::gdpr": .context.traits.gdpr ?? true, + "bol::p": .context.traits.emailConsent || false, + "bol::sp": .context.traits.smsConsent || false, + }, + "location": {"source_ip": .context.ip} + }); + .destination.Config.orttoPersonAttributes@attribute.( + const trimmedOrttoAttribute = attribute.orttoAttribute.trim().toLowerCase().replace(new RegExp('\\s+', 'g'),'-'); + commonFields.fields[$.fieldTypeMap[attribute.type]+":cm:"+trimmedOrttoAttribute] = $.originalInput.message.context.traits[attribute.rudderTraits] + )[] + commonFields.fields = $.removeUndefinedAndNullValues(commonFields.fields) + $.removeUndefinedAndNullValues(commonFields) + + - name: prepareIdentifyPayload + condition: $.outputs.messageType === {{$.EventType.IDENTIFY}} + template: | + const peopleObj = { + "fields": $.outputs.commonFields.fields, + "tags": .message.context.traits.tags || .message.traits.tags, + "unset_tags": .message.context.traits.unset_tags || .message.traits.unset_tags + } + const identifyPayoad = { + "people":[peopleObj], + "merge_by": ["str::ei", "str::email"] + } + $.removeUndefinedAndNullValues(identifyPayoad) + + - name: prepareTrackPayload + condition: $.outputs.messageType === {{$.EventType.TRACK}} + steps: + - name: getTrimmedEvent + template: | + let customEvent = ""; + const event = .message.event; + .destination.Config.orttoEventsMapping@order.( + customEvent = event === .rsEventName ? .orttoEventName : null; + ) + $.assert(customEvent, "Event names is not mapped"); + "act:cm:"+customEvent.trim().toLowerCase().replace(new RegExp('\\s+', 'g'),'-'); + + - name: getAttributes + template: | + let attributes = {}; + .destination.Config.orttoEventsMapping@event.eventProperties@prop.( + attributes[$.fieldTypeMap[prop.type]+":cm:"+prop.orttoProperty.trim().toLowerCase().replace(new RegExp('\\s+', 'g'),'-')] = $.originalInput.message.properties[prop.rudderProperty] + ) + $.removeUndefinedAndNullValues(attributes) + + - name: preparePayload + template: | + const activityObj = { + "fields": $.outputs.commonFields.fields, + "activity_id": $.outputs.prepareTrackPayload.getTrimmedEvent, + "attributes": $.outputs.prepareTrackPayload.getAttributes, + "location": {"source_ip": .message.context.ip} + }; + { + "activities":[activityObj], + "merge_by": ["str::ei", "str::email"] + } + + - name: payload + template: | + $.outputs.messageType === {{$.EventType.IDENTIFY}} ? $.outputs.prepareIdentifyPayload : $.outputs.prepareTrackPayload + + - name: buildResponseForProcessTransformation + description: build response + template: | + const response = $.defaultRequestConfig(); + const instanceRegion = $.originalInput.destination.Config.instanceRegion; + response.body.JSON = $.outputs.payload; + response.endpoint = response.body.JSON.people? $.IDENTIFY_ENDPOINT[instanceRegion] : $.TRACK_ENDPOINT[instanceRegion]; + response.headers = { + "X-Api-Key": .destination.Config.privateApiKey, + "Content-Type": "application/json" + }; + response; diff --git a/src/cdk/v2/destinations/ortto/rtWorkflow.yaml b/src/cdk/v2/destinations/ortto/rtWorkflow.yaml new file mode 100644 index 00000000000..d00e45c4355 --- /dev/null +++ b/src/cdk/v2/destinations/ortto/rtWorkflow.yaml @@ -0,0 +1,70 @@ +bindings: + - path: ./utils + - path: ./config + +steps: + - name: validateInput + template: | + $.assert(Array.isArray(^) && ^.length > 0, "Invalid event array") + + - name: transform + externalWorkflow: + path: ./procWorkflow.yaml + bindings: + - name: batchMode + value: true + loopOverInput: true + - name: successfulEvents + template: | + $.outputs.transform#idx.output.({ + "message": .[], + "destination": ^ [idx].destination, + "metadata": ^ [idx].metadata + })[] + - name: failedEvents + template: | + $.outputs.transform#idx.error.({ + "metadata": ^[idx].metadata[], + "destination": ^[idx].destination, + "batched": false, + "statusCode": .status, + "error": .message, + "statTags": .originalError.statTags + })[] + + - name: batchSuccessfulEvents + description: Batches the successfulEvents using V3 API + condition: $.outputs.successfulEvents.length + template: | + let batches = $.batchEvents($.outputs.successfulEvents); + batches@batch.({ + "batchedRequest": { + "body": { + "JSON": batch.message, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": batch.message.people ? $.IDENTIFY_ENDPOINT[$.originalInput[0].destination.Config.instanceRegion] : $.TRACK_ENDPOINT[$.originalInput[0].destination.Config.instanceRegion], + "headers": { + "X-Api-Key": .destination.Config.privateApiKey, + "Content-Type": "application/json", + }, + "params": {}, + "files": {} + }, + "metadata": batch.metadata, + "batched": true, + "statusCode": 200, + "destination": batch.destination + })[]; + else: + name: returnEmptyOuput + template: '[]' + + - name: finalPayload + template: | + [...$.outputs.batchSuccessfulEvents, ...$.outputs.failedEvents] diff --git a/src/cdk/v2/destinations/ortto/utils.js b/src/cdk/v2/destinations/ortto/utils.js new file mode 100644 index 00000000000..027e6ce2d90 --- /dev/null +++ b/src/cdk/v2/destinations/ortto/utils.js @@ -0,0 +1,85 @@ +const lodash = require('lodash'); +const { CommonUtils } = require('../../../../util/common'); +const { maxBatchSize } = require('./config'); + +const getBirthdayObj = (birthday) => { + const dateRegex = /^\d{4}-\d{2}-\d{2}$/; // YYYY-MM-DD format + + if (!dateRegex.test(birthday)) { + return null; // Invalid birthday format + } + const date = new Date(birthday); + + const year = date.getFullYear(); + const month = date.getMonth() + 1; // Month is 0-based, so add 1 + const day = date.getDate(); + + return { year, month, day }; +}; + +const groupEventsByEndpoint = (events) => { + const eventMap = { + person: [], + activities: [], + }; + const batchErrorRespList = []; + events.forEach((result) => { + if (result.message) { + const { destination, metadata } = result; + const message = CommonUtils.toArray(result.message); + message.forEach((msg) => { + const endpoint = Object.keys(eventMap).find((key) => msg.endpoint?.includes(key)); + if (endpoint) { + eventMap[endpoint].push({ message: msg.body.JSON, destination, metadata }); + } + }); + } else if (result.error) { + batchErrorRespList.push(result); + } + }); + return { + personEvents: eventMap.person, + activitiesEvents: eventMap.activities, + batchErrorRespList, + }; +}; +const combinePersonAndActivitiesArraysofEvents = (events, identifier) => { + const batchedPersonEvents = []; + if (Array.isArray(events)) { + events.forEach((chunk) => { + const response = { destination: chunk[0].destination }; + + chunk.forEach((event, index) => { + if (index === 0) { + response.message = event.message; + response.destination = event.destination; + response.metadata = [event.metadata]; + } else { + response.message[identifier].push(...event.message[identifier]); + response.metadata.push(event.metadata); + } + }); + batchedPersonEvents.push(response); + }); + } + return batchedPersonEvents; +}; + +const batchEvents = (successfulEvents) => { + const { personEvents, activitiesEvents } = groupEventsByEndpoint(successfulEvents); + const personEventsChunks = lodash.chunk(personEvents, maxBatchSize); + const activityEventsChunks = lodash.chunk(activitiesEvents, maxBatchSize); + const batchedPersonEvents = combinePersonAndActivitiesArraysofEvents( + personEventsChunks, + 'people', + ); + const batchedActivityEvents = combinePersonAndActivitiesArraysofEvents( + activityEventsChunks, + 'activities', + ); + return [...batchedPersonEvents, ...batchedActivityEvents]; +}; +module.exports = { + getBirthdayObj, + batchEvents, +}; diff --git a/src/cdk/v2/destinations/pinterest_tag/procWorkflow.yaml b/src/cdk/v2/destinations/pinterest_tag/procWorkflow.yaml index 6854573cfaf..7bcb804126b 100644 --- a/src/cdk/v2/destinations/pinterest_tag/procWorkflow.yaml +++ b/src/cdk/v2/destinations/pinterest_tag/procWorkflow.yaml @@ -100,7 +100,8 @@ steps: "hashed_maids": .context.device.advertisingId, "client_ip_address": .context.ip ?? .request_ip, "client_user_agent": .context.userAgent, - "external_id": {{{{$.getGenericPaths("userId")}}}} + "external_id": {{{{$.getGenericPaths("userId")}}}}, + "click_id": .properties.clickId }); !.destination.Config.sendExternalId ? userFields = userFields{~["external_id"]} : null; userFields = $.removeUndefinedAndNullAndEmptyValues(userFields); @@ -179,22 +180,19 @@ steps: eventNames = $.convertToSnakeCase(eventNames); eventNames.length === 0 ? eventNames = $.ecomEventMaps.(){eventInLowerCase in .src}.dest[] ?? []; (eventNames.length === 0 && .destination.Config.sendAsCustomEvent) ? eventNames = ["custom"]; - (eventNames.length === 0 && $.outputs.apiVersion === {{$.API_VERSION.v3}}) ? eventNames = [event]; - $.assertConfig(eventNames.length > 0, - event + " is not mapped in UI. Make sure to map the event in UI or enable the 'send as custom event' setting") - eventNames + eventNames.length === 0 ? eventNames = [event]; + eventNames; - name: payload template: | $.outputs.eventNames.().({...$.outputs.basePayload, event_name: .})[] - + - name: checkSendTestEventConfig description: | If sendTestEvent is enabled, we send test event to the destination ref: https://help.pinterest.com/en/business/article/track-conversions-with-the-conversions-api template: | - ^.destination.Config.sendAsTestEvent ? {"test": true} : {} - + ^.destination.Config.sendAsTestEvent ? {"test": true} : {} - name: buildResponseForBatchMode description: In batchMode we return payload directly diff --git a/src/cdk/v2/destinations/reddit/config.js b/src/cdk/v2/destinations/reddit/config.js new file mode 100644 index 00000000000..5c2c778ea55 --- /dev/null +++ b/src/cdk/v2/destinations/reddit/config.js @@ -0,0 +1,31 @@ +const ENDPOINT = 'https://ads-api.reddit.com/api/v2.0/conversions/events/'; +const maxBatchSize = 1000; + +const ecomEventMaps = [ + { + src: ['product viewed', 'product list viewed'], + dest: 'ViewContent', + }, + { + src: ['product added'], + dest: 'AddToCart', + }, + { + src: ['product added to wishlist'], + dest: 'AddToWishlist', + }, + { + src: ['order completed'], + dest: 'Purchase', + }, + { + src: ['products searched'], + dest: 'Search', + }, +]; + +module.exports = { + ENDPOINT, + maxBatchSize, + ecomEventMaps, +}; diff --git a/src/cdk/v2/destinations/reddit/procWorkflow.yaml b/src/cdk/v2/destinations/reddit/procWorkflow.yaml new file mode 100644 index 00000000000..65b466bc7cc --- /dev/null +++ b/src/cdk/v2/destinations/reddit/procWorkflow.yaml @@ -0,0 +1,135 @@ +bindings: + - name: EventType + path: ../../../../constants + - path: ../../bindings/jsontemplate + exportAll: true + - path: ./config + - name: removeUndefinedAndNullValues + path: ../../../../v0/util + - name: defaultRequestConfig + path: ../../../../v0/util + - name: isAppleFamily + path: ../../../../v0/util/index + - name: OAuthSecretError + path: '@rudderstack/integrations-lib' + +steps: + - name: validateInput + template: | + let messageType = .message.type; + $.assertConfig(.destination.Config.accountId, "Account is not present. Aborting message."); + $.assert(.message.type, "message Type is not present. Aborting message."); + $.assert(.message.type.toLowerCase() ==='track', "Event type " + .message.type.toLowerCase() + " is not supported. Aborting message."); + $.assert(.message.event, "Event is not present. Aborting message."); + $.assert(.message.().({{{{$.getGenericPaths("timestamp")}}}}), "Timestamp is not present. Aborting message."); + + - name: messageType + template: | + .message.type.toLowerCase() + + - name: prepareTrackPayload + condition: $.outputs.messageType === {{$.EventType.TRACK}} + steps: + - name: prepareUserObject + template: | + const os = (.message.context.os.name)? .message.context.os.name.toLowerCase(): null; + const hashData = .destination.Config.hashData; + let user = .message.().({ + "email": hashData ? $.SHA256({{{{$.getGenericPaths("email")}}}}) : ({{{{$.getGenericPaths("email")}}}}), + "external_id": hashData ? $.SHA256({{{{$.getGenericPaths("userId")}}}}) : ({{{{$.getGenericPaths("userId")}}}}), + "ip_address": hashData? $.SHA256(.context.ip || .request_ip) : (.context.ip || .request_ip), + "uuid": .properties.uuid, + "user_agent": .context.userAgent, + "idfa": $.isAppleFamily(os)? (hashData? $.SHA256(.context.device.advertisingId): .context.device.advertisingId): null, + "aaid": os === "android" && .context.device ? (hashData? $.SHA256(.context.device.advertisingId): .context.device.advertisingId): null, + "opt_out": .properties.optOut, + "screen_dimensions": {"width": .context.screen.width, "height": .context.screen.height}, + }); + $.removeUndefinedAndNullValues(user) + + - name: eventType + template: | + let event = .message.event; + let eventInLowerCase = event.trim().toLowerCase();; + let eventNames = .destination.Config.eventsMapping? .destination.Config.eventsMapping.(){.from === event}.to[] ?? []: []; + eventNames.length === 0 ? eventNames = $.ecomEventMaps.(){eventInLowerCase in .src}.dest[] ?? []; + const event_type = (eventNames.length === 0 || eventNames[0]==="") ? ({"tracking_type": "Custom", "custom_event_name": event}): ({tracking_type: eventNames[0]}); + + - name: customFields + condition: $.outputs.eventType.tracking_type === "Purchase" + template: | + const customFields = .message.().({ + "currency": .properties.currency, + "value": .properties.revenue !== undefined ? Number(.properties.revenue) : undefined, + "item_count": (Array.isArray(.properties.products) && .properties.products.length) || (.properties.itemCount && Number(.properties.itemCount)), + "value_decimal": .properties.revenue !== undefined ? Number(.properties.revenue)/100 : undefined, + "conversion_id": .properties.conversionId || .messageId, + }); + $.removeUndefinedAndNullValues(customFields) + else: + name: nonRevenueTypeEvents + template: | + const customFields = .message.().({ + "conversion_id": .properties.conversionId || .messageId, + }); + $.removeUndefinedAndNullValues(customFields) + + - name: productFields + condition: .message.properties.products + description: When event contains multiple products + template: | + let products = .message.properties.products; + { + "item_count": $.sum(products.quantity.(Number(.))[]) || 0, + "products": .message.properties@prop.products.({ + "id": .product_id ?? prop.product_id, + "name": .name ?? prop.name, + "category": .category ?? prop.category, + })[] + } + else: + name: singleProductFields + template: | + const props = .message.properties; + const output = { + "item_count": Number(props.quantity) || 0, + "products": { + "id": props.product_id, + "name": props.name, + "category": props.category, + }[] + }; + - name: combineAllEcomFields + template: | + {...$.outputs.prepareTrackPayload.productFields, ...$.outputs.prepareTrackPayload.customFields} + + - name: prepareFinalPayload + template: | + { + events: [{ + "click_id": .message.properties.clickId, + "event_at": .message.().({{{{$.getGenericPaths("timestamp")}}}}), + "event_type": $.outputs.prepareTrackPayload.eventType, + "user": $.outputs.prepareTrackPayload.prepareUserObject, + "event_metadata": $.outputs.prepareTrackPayload.combineAllEcomFields, + }] + } + + - name: payload + condition: $.outputs.messageType === {{$.EventType.TRACK}} + template: | + const outputPayload = $.outputs.prepareTrackPayload + + - name: buildResponseForProcessTransformation + description: build response + template: | + $.assertThrow((.metadata.secret && .metadata.secret.accessToken), new $.OAuthSecretError("Secret or accessToken is not present in the metadata")) + const accessToken = .metadata.secret.accessToken + const response = $.defaultRequestConfig(); + response.body.JSON = $.outputs.payload; + response.headers = { + "Authorization": "Bearer "+ accessToken, + "Content-Type": "application/json" + } + response.endpoint = $.ENDPOINT+.destination.Config.accountId; + finalResponse = response; diff --git a/src/cdk/v2/destinations/reddit/rtWorkflow.yaml b/src/cdk/v2/destinations/reddit/rtWorkflow.yaml new file mode 100644 index 00000000000..937ff021f44 --- /dev/null +++ b/src/cdk/v2/destinations/reddit/rtWorkflow.yaml @@ -0,0 +1,67 @@ +bindings: + - path: ./utils + - path: ./config + +steps: + - name: validateInput + template: | + $.assert(Array.isArray(^) && ^.length > 0, "Invalid event array") + + - name: transform + externalWorkflow: + path: ./procWorkflow.yaml + bindings: + - name: batchMode + value: true + loopOverInput: true + - name: successfulEvents + template: | + $.outputs.transform#idx.output.({ + "message": .[], + "destination": ^ [idx].destination, + "metadata": ^ [idx].metadata + })[] + - name: failedEvents + template: | + $.outputs.transform#idx.error.({ + "metadata": ^[idx].metadata[], + "destination": ^[idx].destination, + "batched": false, + "statusCode": .status, + "error": .message, + "statTags": .originalError.statTags + })[] + + - name: batchSuccessfulEvents + description: Batches the successfulEvents using endpoint + condition: $.outputs.successfulEvents.length + template: | + let batches = $.batchEvents($.outputs.successfulEvents); + batches@batch.({ + "batchedRequest": { + "body": { + "JSON": batch.message.body.JSON, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": batch.message.endpoint, + "headers": batch.message.headers, + "params": {}, + "files": {} + }, + "metadata": batch.metadata, + "batched": true, + "statusCode": 200, + "destination": batch.destination + })[]; + else: + name: returnEmptyOuput + template: '[]' + + - name: finalPayload + template: | + [...$.outputs.batchSuccessfulEvents, ...$.outputs.failedEvents] diff --git a/src/cdk/v2/destinations/reddit/utils.js b/src/cdk/v2/destinations/reddit/utils.js new file mode 100644 index 00000000000..c1086032353 --- /dev/null +++ b/src/cdk/v2/destinations/reddit/utils.js @@ -0,0 +1,33 @@ +const lodash = require('lodash'); +const { maxBatchSize } = require('./config'); + +const batchEventChunks = (eventChunks) => { + const batchedEvents = []; + if (Array.isArray(eventChunks)) { + eventChunks.forEach((chunk) => { + const response = { destination: chunk[0].destination }; + chunk.forEach((event, index) => { + if (index === 0) { + const [firstMessage] = event.message; + response.message = firstMessage; + response.destination = event.destination; + response.metadata = [event.metadata]; + } else { + response.message.body.JSON.events.push(...event.message[0].body.JSON.events); + response.metadata.push(event.metadata); + } + }); + batchedEvents.push(response); + }); + } + return batchedEvents; +}; + +const batchEvents = (successfulEvents) => { + const eventChunks = lodash.chunk(successfulEvents, maxBatchSize); + const batchedEvents = batchEventChunks(eventChunks); + return batchedEvents; +}; +module.exports = { + batchEvents, +}; diff --git a/src/cdk/v2/destinations/sprig/procWorkflow.yaml b/src/cdk/v2/destinations/sprig/procWorkflow.yaml new file mode 100644 index 00000000000..18b46913fd6 --- /dev/null +++ b/src/cdk/v2/destinations/sprig/procWorkflow.yaml @@ -0,0 +1,73 @@ +bindings: + - name: EventType + path: ../../../../constants + - path: ../../bindings/jsontemplate + - name: defaultRequestConfig + path: ../../../../v0/util + - name: removeUndefinedAndNullValues + path: ../../../../v0/util + +steps: + - name: messageType + template: | + .message.type.toLowerCase(); + + - name: validateInput + template: | + let messageType = $.outputs.messageType; + $.assert(messageType, "message Type is not present. Aborting"); + $.assert(messageType in {{$.EventType.([.IDENTIFY, .TRACK])}}, "message type " + messageType + " is not supported"); + $.assertConfig(.destination.Config.apiKey, "API Key is not present. Aborting"); + + - name: validateIdentifyPayload + condition: $.outputs.messageType === {{$.EventType.IDENTIFY}} + template: | + const userId = .message.({{{{$.getGenericPaths("userIdOnly")}}}});; + $.assert(userId, "userId is required"); + + - name: prepareIdentifyPayload + condition: $.outputs.messageType === {{$.EventType.IDENTIFY}} + template: | + $.context.payload = .message.({ + userId: {{{{$.getGenericPaths("userIdOnly")}}}}, + emailAddress: {{{{$.getGenericPaths("email")}}}}, + attributes: .context.traits + }); + $.context.payload = $.removeUndefinedAndNullValues($.context.payload); + + - name: validateTrackPayload + condition: $.outputs.messageType === {{$.EventType.TRACK}} + template: | + const userId = .message.({{{{$.getGenericPaths("userIdOnly")}}}});; + $.assert(userId, "userId is required"); + $.assert(.message.event, "event name is required"); + + - name: prepareTrackPayload + condition: $.outputs.messageType === {{$.EventType.TRACK}} + template: | + $.context.payload = .message.({ + userId: {{{{$.getGenericPaths("userIdOnly")}}}}, + emailAddress: {{{{$.getGenericPaths("email")}}}} + }); + const events = [ + { + event: .message.event, + timestamp: $.toMilliseconds(.message.().({{{{$.getGenericPaths("timestamp")}}}})) + } + ] + $.context.payload.events = events; + $.context.payload = $.removeUndefinedAndNullValues($.context.payload); + + - name: buildResponse + template: | + const response = $.defaultRequestConfig(); + response.body.JSON = $.context.payload; + response.endpoint = "https://api.sprig.com/v2/users"; + response.headers = { + "accept": "application/json", + "content-type": "application/json", + "authorization": "API-Key " + .destination.Config.apiKey + }; + response + + diff --git a/src/cdk/v2/destinations/tiktok_audience/config.js b/src/cdk/v2/destinations/tiktok_audience/config.js new file mode 100644 index 00000000000..853f3725055 --- /dev/null +++ b/src/cdk/v2/destinations/tiktok_audience/config.js @@ -0,0 +1,9 @@ +const ACTION_MAP = { + add: 'add', + remove: 'delete', +}; +const SHA256_TRAITS = ['IDFA_SHA256', 'AAID_SHA256', 'EMAIL_SHA256', 'PHONE_SHA256']; +module.exports = { + ACTION_MAP, + SHA256_TRAITS, +}; diff --git a/src/cdk/v2/destinations/tiktok_audience/procWorkflow.yaml b/src/cdk/v2/destinations/tiktok_audience/procWorkflow.yaml new file mode 100644 index 00000000000..cd84ecbc876 --- /dev/null +++ b/src/cdk/v2/destinations/tiktok_audience/procWorkflow.yaml @@ -0,0 +1,67 @@ + +bindings: + - name: EventType + path: ../../../../constants + - path: ../../bindings/jsontemplate + exportAll: true + - path: ./config + - name: removeUndefinedAndNullValues + path: ../../../../v0/util + - name: defaultRequestConfig + path: ../../../../v0/util + +steps: + - name: validateInput + template: | + let messageType = .message.type; + $.assert(.message.type, "message Type is not present. Aborting message."); + $.assert(.message.type.toLowerCase() ==='audiencelist', "Event type " + .message.type.toLowerCase() + " is not supported. Aborting message."); + $.assert(.message.properties, "Message properties is not present. Aborting message."); + $.assert(.message.properties.listData, "listData is not present inside properties. Aborting message."); + $.assert($.containsAll(Object.keys(.message.properties.listData), ["add", "remove"]), "unsupported action type. Aborting message.") + + - name: prepareIdentifiersList + description: | + Populate list of identifiers to be updated + template: | + const destinationFields = .message.context.destinationFields.split(", ") + const audienceId = .message.context.externalId[0].type.split("-")[1]; + const isHashRequired = .destination.Config.isHashRequired; + const advertiserIds = .metadata.secret.advertiserIds; + const hashTraits = function(traits) { + traits@trait.(destinationFields@destinationField.( + trait[destinationField] ? { + id: isHashRequired ? + destinationField in $.SHA256_TRAITS ? + $.SHA256(trait[destinationField]) : $.MD5(trait[destinationField]) + : trait[destinationField], + audience_ids:[audienceId] + } : {} + )[]) + }; + const listData = .message.properties.listData; + const actions = Object.keys(listData) + actions@action.({ + "batch_data": hashTraits(listData[action]), + "id_schema": destinationFields, + "advertiser_ids": advertiserIds, + "action": $.ACTION_MAP[action], + })[] + + + - name: buildResponseForProcessTransformation + description: build response + template: | + const accessToken = .metadata.secret.accessToken + const anonymousId = .message.anonymousId; + $.outputs.prepareIdentifiersList@body.( + let response = $.defaultRequestConfig(); + response.body.JSON = body; + response.userId = anonymousId; + response.endpoint = "https://business-api.tiktok.com/open_api/v1.3/segment/mapping/"; + response.headers = { + "Access-Token": accessToken, + "Content-Type": "application/json" + }; + response + ) diff --git a/src/cdk/v2/destinations/tiktok_audience/rtWorkflow.yaml b/src/cdk/v2/destinations/tiktok_audience/rtWorkflow.yaml new file mode 100644 index 00000000000..a7fa8559380 --- /dev/null +++ b/src/cdk/v2/destinations/tiktok_audience/rtWorkflow.yaml @@ -0,0 +1,31 @@ +bindings: + - name: handleRtTfSingleEventError + path: ../../../../v0/util/index + +steps: + - name: validateInput + template: | + $.assert(Array.isArray(^) && ^.length > 0, "Invalid event array") + + - name: transform + externalWorkflow: + path: ./procWorkflow.yaml + loopOverInput: true + + - name: successfulEvents + template: | + $.outputs.transform#idx{"output" in .}.({ + "batchedRequest": .output, + "batched": true, + "destination": ^[idx].destination, + "metadata": ^[idx].metadata[], + "statusCode": 200 + })[] + - name: failedEvents + template: | + $.outputs.transform#idx.error.( + $.handleRtTfSingleEventError(^[idx], .originalError ?? ., {}) + )[] + - name: finalPayload + template: | + [...$.outputs.failedEvents, ...$.outputs.successfulEvents] diff --git a/src/cdk/v2/handler.ts b/src/cdk/v2/handler.ts index b4da9bc6bf5..47d6d101797 100644 --- a/src/cdk/v2/handler.ts +++ b/src/cdk/v2/handler.ts @@ -4,7 +4,8 @@ import { TemplateType, ExecutionBindings, StepOutput, -} from 'rudder-workflow-engine'; +} from '@rudderstack/workflow-engine'; +import { FixMe } from '../../util/types'; import tags from '../../v0/util/tags'; @@ -25,7 +26,7 @@ export function getEmptyExecutionBindings() { return { outputs: {}, context, - setContext: (key: string, value: any) => { + setContext: (key: string, value: FixMe) => { context[key] = value; }, }; @@ -34,7 +35,7 @@ export function getEmptyExecutionBindings() { export async function getWorkflowEngine( destName: string, feature: string, - bindings: Record = {}, + bindings: Record = {}, ) { const destRootDir = getRootPathForDestination(destName); const workflowPath = await getWorkflowPath(destRootDir, feature); @@ -52,7 +53,7 @@ const workflowEnginePromiseMap = new Map(); export function getCachedWorkflowEngine( destName: string, feature: string, - bindings: Record = {}, + bindings: Record = {}, ): WorkflowEngine { // Create a new instance of the engine for the destination if needed // TODO: Use cache to avoid long living engine objects @@ -63,25 +64,26 @@ export function getCachedWorkflowEngine( return workflowEnginePromiseMap[destName][feature]; } -export async function executeWorkflow(workflowEngine: WorkflowEngine, parsedEvent: any) { - try { - const result = await workflowEngine.execute(parsedEvent); - // TODO: Handle remaining output scenarios - return result.output; - } catch (error) { - throw getErrorInfo(error, isCdkV2Destination(parsedEvent), defTags); - } +export async function executeWorkflow( + workflowEngine: WorkflowEngine, + parsedEvent: FixMe, + requestMetadata: NonNullable = {}, +) { + const result = await workflowEngine.execute(parsedEvent, { requestMetadata }); + // TODO: Handle remaining output scenarios + return result.output; } export async function processCdkV2Workflow( destType: string, - parsedEvent: any, + parsedEvent: FixMe, feature: string, - bindings: Record = {}, + requestMetadata: NonNullable = {}, + bindings: Record = {}, ) { try { const workflowEngine = await getCachedWorkflowEngine(destType, feature, bindings); - return await executeWorkflow(workflowEngine, parsedEvent); + return await executeWorkflow(workflowEngine, parsedEvent, requestMetadata); } catch (error) { throw getErrorInfo(error, isCdkV2Destination(parsedEvent), defTags); } @@ -90,7 +92,7 @@ export async function processCdkV2Workflow( export function executeStep( workflowEngine: WorkflowEngine, stepName: string, - input: any, + input: FixMe, bindings?: ExecutionBindings, ): Promise { return workflowEngine diff --git a/src/cdk/v2/utils.ts b/src/cdk/v2/utils.ts index 096e5b76794..f9a5c66937b 100644 --- a/src/cdk/v2/utils.ts +++ b/src/cdk/v2/utils.ts @@ -1,10 +1,11 @@ import path from 'path'; import fs from 'fs/promises'; -import { WorkflowExecutionError, WorkflowCreationError, StatusError } from 'rudder-workflow-engine'; +import { WorkflowExecutionError, WorkflowCreationError } from '@rudderstack/workflow-engine'; +import { PlatformError } from '@rudderstack/integrations-lib'; import logger from '../../logger'; import { generateErrorObject } from '../../v0/util'; -import { PlatformError } from '../../v0/util/errorTypes'; import tags from '../../v0/util/tags'; +import { CatchErr } from '../../util/types'; const CDK_V2_ROOT_DIR = __dirname; @@ -79,7 +80,7 @@ export function getWorkflowEngineErrorMessage(err) { * @param {*} defTags default stat tags * @returns Error type object */ -export function getErrorInfo(err: any, isProd: boolean, defTags) { +export function getErrorInfo(err: CatchErr, isProd: boolean, defTags) { // Handle various CDK error types const message = isProd ? getWorkflowEngineErrorMessage(err) : err.message; @@ -87,7 +88,7 @@ export function getErrorInfo(err: any, isProd: boolean, defTags) { logger.error(`Error occurred during workflow step execution: ${message}`, err); // Determine the error instance - let errInstance: any = err; + let errInstance: CatchErr = err; if (err.originalError) { errInstance = err.originalError; errInstance.message = message; diff --git a/src/constants/destinationCanonicalNames.js b/src/constants/destinationCanonicalNames.js index bb4480b23a1..d1e199c9e2d 100644 --- a/src/constants/destinationCanonicalNames.js +++ b/src/constants/destinationCanonicalNames.js @@ -1,8 +1,17 @@ const DestHandlerMap = { ga360: 'ga', + salesforce_oauth: 'salesforce', }; const DestCanonicalNames = { + facebook_conversions: [ + 'fb_conversions', + 'fb conversions', + 'FacebookConversions', + 'Facebook Conversions', + 'FB Conversions', + 'Facebook_Conversions', + ], fb_pixel: [ 'fb_pixel', 'fb pixel', @@ -91,7 +100,7 @@ const DestCanonicalNames = { ], awin: ['awin', 'Awin', 'AWIN'], sendinblue: ['sendinblue', 'SENDINBLUE', 'Sendinblue', 'SendinBlue'], - ga4: ['GA4', 'ga4', 'Ga4', 'Google Analytics 4', 'googleAnalytics4'], + ga4: ['GA4', 'ga4', 'Ga4', 'Google Analytics 4', 'googleAnalytics4', 'Google Analytics 4 (GA4)'], pipedream: ['Pipedream', 'PipeDream', 'pipedream', 'PIPEDREAM'], pagerduty: ['pagerduty', 'PAGERDUTY', 'PagerDuty', 'Pagerduty', 'pagerDuty'], adobe_analytics: [ diff --git a/src/constants/index.js b/src/constants/index.js index c1b26a94c42..a8976bc07e2 100644 --- a/src/constants/index.js +++ b/src/constants/index.js @@ -50,6 +50,10 @@ const MappedToDestinationKey = 'context.mappedToDestination'; const GENERIC_TRUE_VALUES = ['true', 'True', 'TRUE', 't', 'T', '1']; const GENERIC_FALSE_VALUES = ['false', 'False', 'FALSE', 'f', 'F', '0']; +const HTTP_CUSTOM_STATUS_CODES = { + FILTERED: 298, +}; + module.exports = { EventType, GENERIC_TRUE_VALUES, @@ -58,4 +62,5 @@ module.exports = { SpecedTraits, TraitsMapping, WhiteListedTraits, + HTTP_CUSTOM_STATUS_CODES, }; diff --git a/src/controllers/bulkUpload.ts b/src/controllers/bulkUpload.ts index 80fb9b9dd00..85c4fe6b4f2 100644 --- a/src/controllers/bulkUpload.ts +++ b/src/controllers/bulkUpload.ts @@ -1,5 +1,7 @@ +/* eslint-disable global-require, import/no-dynamic-require, @typescript-eslint/no-unused-vars */ import { client as errNotificationClient } from '../util/errorNotifier'; import logger from '../logger'; +import { CatchErr } from '../util/types'; // TODO: To be refactored and redisgned const getDestFileUploadHandler = (version, dest) => @@ -7,6 +9,7 @@ const getDestFileUploadHandler = (version, dest) => const getPollStatusHandler = (version, dest) => require(`../${version}/destinations/${dest}/poll`); const getJobStatusHandler = (version, dest) => require(`../${version}/destinations/${dest}/fetchJobStatus`); +const ERROR_MESSAGE_PROCESSOR_STRING = 'Error occurred while processing payload.'; const getCommonMetadata = (ctx) => // TODO: Parse information such as @@ -16,12 +19,23 @@ const getCommonMetadata = (ctx) => namespace: 'Unknown', cluster: 'Unknown', }); + +const getReqMetadata = (ctx) => { + try { + const reqBody = ctx.request.body; + return { destType: reqBody?.destType, importId: reqBody?.importId }; + } catch (error) { + // Do nothing + } + return {}; +}; + export const fileUpload = async (ctx) => { logger.debug( 'Native(Bulk-Upload): Request to transformer:: /fileUpload route', JSON.stringify(ctx.request.body), ); - const getReqMetadata = () => { + const getReqMetadataFileUpload = () => { try { const reqBody = ctx.request.body; return { destType: reqBody?.destType }; @@ -42,16 +56,16 @@ export const fileUpload = async (ctx) => { let response; try { response = await destFileUploadHandler.processFileData(ctx.request.body); - } catch (error: any) { + } catch (error: CatchErr) { response = { - statusCode: error.response ? error.response.status : 400, - error: error.message || 'Error occurred while processing payload.', + statusCode: error?.response?.status || error?.status || 400, + error: error.message || ERROR_MESSAGE_PROCESSOR_STRING, metadata: error.response ? error.response.metadata : null, }; errNotificationClient.notify(error, 'File Upload', { ...response, ...getCommonMetadata(ctx), - ...getReqMetadata(), + ...getReqMetadata(ctx), }); } ctx.body = response; @@ -67,15 +81,6 @@ export const pollStatus = async (ctx) => { 'Native(Bulk-Upload): Request to transformer:: /pollStatus route', JSON.stringify(ctx.request.body), ); - const getReqMetadata = () => { - try { - const reqBody = ctx.request.body; - return { destType: reqBody?.destType, importId: reqBody?.importId }; - } catch (error) { - // Do nothing - } - return {}; - }; const { destType } = ctx.request.body; const destFileUploadHandler = getPollStatusHandler('v0', destType.toLowerCase()); @@ -87,15 +92,15 @@ export const pollStatus = async (ctx) => { } try { response = await destFileUploadHandler.processPolling(ctx.request.body); - } catch (error: any) { + } catch (error: CatchErr) { response = { statusCode: error.response?.status || 400, - error: error.message || 'Error occurred while processing payload.', + error: error.message || ERROR_MESSAGE_PROCESSOR_STRING, }; errNotificationClient.notify(error, 'Poll Status', { ...response, ...getCommonMetadata(ctx), - ...getReqMetadata(), + ...getReqMetadata(ctx), }); } ctx.body = response; @@ -111,15 +116,6 @@ export const getWarnJobStatus = async (ctx) => { 'Native(Bulk-Upload): Request to transformer:: /getWarningJobs route', JSON.stringify(ctx.request.body), ); - const getReqMetadata = () => { - try { - const reqBody = ctx.request.body; - return { destType: reqBody?.destType, importId: reqBody?.importId }; - } catch (error) { - // Do nothing - } - return {}; - }; const { destType } = ctx.request.body; const destFileUploadHandler = getJobStatusHandler('v0', destType.toLowerCase()); @@ -132,15 +128,15 @@ export const getWarnJobStatus = async (ctx) => { let response; try { response = await destFileUploadHandler.processJobStatus(ctx.request.body, 'warn'); - } catch (error: any) { + } catch (error: CatchErr) { response = { statusCode: error.response ? error.response.status : 400, - error: error.message || 'Error occurred while processing payload.', + error: error.message || ERROR_MESSAGE_PROCESSOR_STRING, }; errNotificationClient.notify(error, 'Job Status', { ...response, ...getCommonMetadata(ctx), - ...getReqMetadata(), + ...getReqMetadata(ctx), }); } ctx.body = response; @@ -156,15 +152,6 @@ export const getFailedJobStatus = async (ctx) => { 'Native(Bulk-Upload): Request to transformer:: /getFailedJobs route', JSON.stringify(ctx.request.body), ); - const getReqMetadata = () => { - try { - const reqBody = ctx.request.body; - return { destType: reqBody?.destType, importId: reqBody?.importId }; - } catch (error) { - // Do nothing - } - return {}; - }; const { destType } = ctx.request.body; const destFileUploadHandler = getJobStatusHandler('v0', destType.toLowerCase()); @@ -177,15 +164,15 @@ export const getFailedJobStatus = async (ctx) => { let response; try { response = await destFileUploadHandler.processJobStatus(ctx.request.body, 'fail'); - } catch (error: any) { + } catch (error: CatchErr) { response = { statusCode: error.response ? error.response.status : 400, - error: error.message || 'Error occurred while processing payload.', + error: error.message || ERROR_MESSAGE_PROCESSOR_STRING, }; errNotificationClient.notify(error, 'Job Status', { ...response, ...getCommonMetadata(ctx), - ...getReqMetadata(), + ...getReqMetadata(ctx), }); } ctx.body = response; diff --git a/src/controllers/delivery.ts b/src/controllers/delivery.ts index d9a514d9616..0cc5e12d78d 100644 --- a/src/controllers/delivery.ts +++ b/src/controllers/delivery.ts @@ -1,31 +1,48 @@ +/* eslint-disable prefer-destructuring */ +/* eslint-disable sonarjs/no-duplicate-string */ import { Context } from 'koa'; -import MiscService from '../services/misc'; -import { DeliveryResponse, ProcessorTransformationOutput } from '../types/index'; -import ServiceSelector from '../helpers/serviceSelector'; -import DeliveryTestService from '../services/delivertTest/deliveryTest'; -import ControllerUtility from './util'; +import { MiscService } from '../services/misc'; +import { + DeliveriesResponse, + DeliveryResponse, + ProcessorTransformationOutput, + ProxyDeliveriesRequest, + ProxyDeliveryRequest, +} from '../types/index'; +import { ServiceSelector } from '../helpers/serviceSelector'; +import { DeliveryTestService } from '../services/delivertTest/deliveryTest'; +import { ControllerUtility } from './util'; import logger from '../logger'; -import DestinationPostTransformationService from '../services/destination/postTransformation'; +import { DestinationPostTransformationService } from '../services/destination/postTransformation'; import tags from '../v0/util/tags'; +import { FixMe } from '../util/types'; -export default class DeliveryController { +const NON_DETERMINABLE = 'Non-determinable'; + +export class DeliveryController { public static async deliverToDestination(ctx: Context) { logger.debug('Native(Delivery):: Request to transformer::', JSON.stringify(ctx.request.body)); let deliveryResponse: DeliveryResponse; const requestMetadata = MiscService.getRequestMetadata(ctx); - const event = ctx.request.body as ProcessorTransformationOutput; + const deliveryRequest = ctx.request.body as ProxyDeliveryRequest; const { destination }: { destination: string } = ctx.params; const integrationService = ServiceSelector.getNativeDestinationService(); try { - deliveryResponse = await integrationService.deliver(event, destination, requestMetadata); + deliveryResponse = (await integrationService.deliver( + deliveryRequest, + destination, + requestMetadata, + 'v0', + )) as DeliveryResponse; } catch (error: any) { + const { metadata } = deliveryRequest; const metaTO = integrationService.getTags( destination, - event.metadata?.destinationId || 'Non-determininable', - event.metadata?.workspaceId || 'Non-determininable', + metadata?.destinationId || NON_DETERMINABLE, + metadata?.workspaceId || NON_DETERMINABLE, tags.FEATURES.DATA_DELIVERY, ); - metaTO.metadata = event.metadata; + metaTO.metadata = metadata; deliveryResponse = DestinationPostTransformationService.handleDeliveryFailureEvents( error, metaTO, @@ -33,6 +50,42 @@ export default class DeliveryController { } ctx.body = { output: deliveryResponse }; ControllerUtility.deliveryPostProcess(ctx, deliveryResponse.status); + + logger.debug('Native(Delivery):: Response from transformer::', JSON.stringify(ctx.body)); + return ctx; + } + + public static async deliverToDestinationV1(ctx: Context) { + logger.debug('Native(Delivery):: Request to transformer::', JSON.stringify(ctx.request.body)); + let deliveryResponse: DeliveriesResponse; + const requestMetadata = MiscService.getRequestMetadata(ctx); + const deliveryRequest = ctx.request.body as ProxyDeliveriesRequest; + const { destination }: { destination: string } = ctx.params; + const integrationService = ServiceSelector.getNativeDestinationService(); + try { + deliveryResponse = (await integrationService.deliver( + deliveryRequest, + destination, + requestMetadata, + 'v1', + )) as DeliveriesResponse; + } catch (error: any) { + const { metadata } = deliveryRequest; + const metaTO = integrationService.getTags( + destination, + metadata[0].destinationId || NON_DETERMINABLE, + metadata[0].workspaceId || NON_DETERMINABLE, + tags.FEATURES.DATA_DELIVERY, + ); + metaTO.metadatas = metadata; + deliveryResponse = DestinationPostTransformationService.handlevV1DeliveriesFailureEvents( + error, + metaTO, + ); + } + ctx.body = { output: deliveryResponse }; + ControllerUtility.deliveryPostProcess(ctx); + logger.debug('Native(Delivery):: Response from transformer::', JSON.stringify(ctx.body)); return ctx; } @@ -43,17 +96,19 @@ export default class DeliveryController { JSON.stringify(ctx.request.body), ); const { destination }: { destination: string } = ctx.params; + const { version }: { version: string } = ctx.params; const { deliveryPayload, destinationRequestPayload, }: { deliveryPayload: ProcessorTransformationOutput; destinationRequestPayload: ProcessorTransformationOutput; - } = ctx.request.body as any; + } = ctx.request.body as FixMe; const response = await DeliveryTestService.doTestDelivery( destination, destinationRequestPayload, deliveryPayload, + version, ); ctx.body = { output: response }; ControllerUtility.postProcess(ctx); diff --git a/src/controllers/destination.ts b/src/controllers/destination.ts index a5137ba1705..71075d1b4ce 100644 --- a/src/controllers/destination.ts +++ b/src/controllers/destination.ts @@ -1,22 +1,22 @@ import { Context } from 'koa'; -import MiscService from '../services/misc'; -import PreTransformationDestinationService from '../services/destination/preTransformation'; -import PostTransformationDestinationService from '../services/destination/postTransformation'; +import { MiscService } from '../services/misc'; +import { DestinationPreTransformationService } from '../services/destination/preTransformation'; +import { DestinationPostTransformationService } from '../services/destination/postTransformation'; import { ProcessorTransformationRequest, RouterTransformationRequest, ProcessorTransformationResponse, RouterTransformationResponse, } from '../types/index'; -import ServiceSelector from '../helpers/serviceSelector'; -import ControllerUtility from './util'; +import { ServiceSelector } from '../helpers/serviceSelector'; +import { ControllerUtility } from './util'; import stats from '../util/stats'; import logger from '../logger'; import { getIntegrationVersion } from '../util/utils'; import tags from '../v0/util/tags'; import { DynamicConfigParser } from '../util/dynamicConfigParser'; -export default class DestinationController { +export class DestinationController { public static async destinationTransformAtProcessor(ctx: Context) { const startTime = new Date(); logger.debug( @@ -36,12 +36,14 @@ export default class DestinationController { const integrationService = ServiceSelector.getDestinationService(events); try { integrationService.init(); - events = PreTransformationDestinationService.preProcess( + events = DestinationPreTransformationService.preProcess( events, ctx, ) as ProcessorTransformationRequest[]; const timestampCorrectEvents = ControllerUtility.handleTimestampInEvents(events); - events = DynamicConfigParser.process(timestampCorrectEvents) as ProcessorTransformationRequest[]; + events = DynamicConfigParser.process( + timestampCorrectEvents, + ) as ProcessorTransformationRequest[]; resplist = await integrationService.doProcessorTransformation( events, destination, @@ -57,7 +59,7 @@ export default class DestinationController { tags.FEATURES.PROCESSOR, ); metaTO.metadata = ev.metadata; - const errResp = PostTransformationDestinationService.handleProcessorTransformFailureEvents( + const errResp = DestinationPostTransformationService.handleProcessorTransformFailureEvents( error, metaTO, ); @@ -108,7 +110,7 @@ export default class DestinationController { const integrationService = ServiceSelector.getDestinationService(events); let resplist: RouterTransformationResponse[]; try { - events = PreTransformationDestinationService.preProcess(events, ctx); + events = DestinationPreTransformationService.preProcess(events, ctx); const timestampCorrectEvents = ControllerUtility.handleTimestampInEvents(events); events = DynamicConfigParser.process(timestampCorrectEvents); resplist = await integrationService.doRouterTransformation( @@ -125,7 +127,7 @@ export default class DestinationController { tags.FEATURES.ROUTER, ); metaTO.metadatas = events.map((ev) => ev.metadata); - const errResp = PostTransformationDestinationService.handleRouterTransformFailureEvents( + const errResp = DestinationPostTransformationService.handleRouterTransformFailureEvents( error, metaTO, ); @@ -163,7 +165,7 @@ export default class DestinationController { let events = routerRequest.input; const integrationService = ServiceSelector.getDestinationService(events); try { - events = PreTransformationDestinationService.preProcess(events, ctx); + events = DestinationPreTransformationService.preProcess(events, ctx); const timestampCorrectEvents = ControllerUtility.handleTimestampInEvents(events); const resplist = integrationService.doBatchTransformation( timestampCorrectEvents, @@ -180,7 +182,7 @@ export default class DestinationController { tags.FEATURES.BATCH, ); metaTO.metadatas = events.map((ev) => ev.metadata); - const errResp = PostTransformationDestinationService.handleBatchTransformFailureEvents( + const errResp = DestinationPostTransformationService.handleBatchTransformFailureEvents( error, metaTO, ); @@ -194,7 +196,7 @@ export default class DestinationController { stats.timing('dest_transform_request_latency', startTime, { destination, feature: tags.FEATURES.BATCH, - version:"v0", + version: 'v0', }); return ctx; } diff --git a/src/controllers/eventTest.ts b/src/controllers/eventTest.ts index 6faf047d70f..d5507f65d29 100644 --- a/src/controllers/eventTest.ts +++ b/src/controllers/eventTest.ts @@ -1,23 +1,25 @@ import { Context } from 'koa'; -import EventTesterService from '../services/eventTest/eventTester'; +import { EventTesterService } from '../services/eventTest/eventTester'; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +import { CatchErr, FixMe } from '../util/types'; -export default class EventTestController { +export class EventTestController { private static API_VERSION = '1'; public static async testEvent(ctx: Context) { const { version, destination }: { version: string; destination: string } = ctx.params as any; - const { events }: { events: any } = ctx.request.body as any; + const { events }: { events: FixMe } = ctx.request.body as FixMe; try { const respList = await EventTesterService.testEvent(events, version, destination); ctx.body = respList; - } catch (err: any) { + } catch (err: CatchErr) { // fail-safety error response ctx.body = { error: err.message || JSON.stringify(err), }; ctx.status = 400; } - ctx.set('apiVersion', this.API_VERSION); + ctx.set('apiVersion', EventTestController.API_VERSION); } public static status(ctx: Context) { diff --git a/src/controllers/misc.ts b/src/controllers/misc.ts index eff0eee2449..e2efdab5db7 100644 --- a/src/controllers/misc.ts +++ b/src/controllers/misc.ts @@ -1,7 +1,7 @@ import { Context } from 'koa'; -import MiscService from '../services/misc'; +import { MiscService } from '../services/misc'; -export default class MiscController { +export class MiscController { public static healthStats(ctx: Context) { ctx.body = MiscService.getHealthInfo(); ctx.status = 200; @@ -25,4 +25,22 @@ export default class MiscController { ctx.status = 200; return ctx; } + + public static async getCPUProfile(ctx: Context) { + const { seconds } = ctx.query; + let secondsData = 10; + // if seconds is not null and is not array then parseInt + if (seconds && !Array.isArray(seconds)) { + secondsData = parseInt(seconds, 10); + } + ctx.body = await MiscService.getCPUProfile(secondsData); + ctx.status = 200; + return ctx; + } + + public static async getHeapProfile(ctx: Context) { + ctx.body = await MiscService.getHeapProfile(); + ctx.status = 200; + return ctx; + } } diff --git a/src/controllers/profile.ts b/src/controllers/profile.ts index 5f2dce4fe66..a0a62bf4792 100644 --- a/src/controllers/profile.ts +++ b/src/controllers/profile.ts @@ -1,9 +1,8 @@ import { Context } from 'koa'; -import MiscService from '../services/misc'; -import ProfileService from '../services/profile'; -import ControllerUtility from './util'; +import { ProfileService } from '../services/profile'; +import { ControllerUtility } from './util'; -export default class ProfileController { +export class ProfileController { /** * Example usage of API * @@ -30,7 +29,6 @@ export default class ProfileController { }' */ public static async profile(ctx: Context) { - const requestMetadata = MiscService.getRequestMetadata(ctx); const format = ctx.request.query.format as string; const { credBucketDetails } = ctx.request.body as any; const response = await ProfileService.profile(credBucketDetails, format); diff --git a/src/controllers/regulation.ts b/src/controllers/regulation.ts index a36f1826b7f..a50541780d6 100644 --- a/src/controllers/regulation.ts +++ b/src/controllers/regulation.ts @@ -1,13 +1,14 @@ import { Context } from 'koa'; import logger from '../logger'; import { UserDeletionRequest, UserDeletionResponse } from '../types'; -import ServiceSelector from '../helpers/serviceSelector'; +import { ServiceSelector } from '../helpers/serviceSelector'; import tags from '../v0/util/tags'; import stats from '../util/stats'; -import PostTransformationDestinationService from '../services/destination/postTransformation'; +import { DestinationPostTransformationService } from '../services/destination/postTransformation'; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +import { CatchErr } from '../util/types'; -// TODO: refactor this class to new format -export default class RegulationController { +export class RegulationController { public static async deleteUsers(ctx: Context) { logger.debug( 'Native(Process-Transform):: Requst to transformer::', @@ -34,14 +35,15 @@ export default class RegulationController { ); ctx.body = resplist; ctx.status = resplist[0].statusCode; - } catch (error: any) { + } catch (error: CatchErr) { const metaTO = integrationService.getTags( userDeletionRequests[0].destType, 'unknown', 'unknown', tags.FEATURES.USER_DELETION, ); - const errResp = PostTransformationDestinationService.handleUserDeletionFailureEvents( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const errResp = DestinationPostTransformationService.handleUserDeletionFailureEvents( error, metaTO, ); @@ -50,7 +52,7 @@ export default class RegulationController { } stats.timing('dest_transform_request_latency', startTime, { feature: tags.FEATURES.USER_DELETION, - version:"v0", + version: 'v0', }); return ctx; } diff --git a/src/controllers/source.ts b/src/controllers/source.ts index a413426cc74..ef5483a756f 100644 --- a/src/controllers/source.ts +++ b/src/controllers/source.ts @@ -1,31 +1,36 @@ import { Context } from 'koa'; -import MiscService from '../services/misc'; -import ServiceSelector from '../helpers/serviceSelector'; -import ControllerUtility from './util'; +import { MiscService } from '../services/misc'; +import { ServiceSelector } from '../helpers/serviceSelector'; +import { ControllerUtility } from './util'; import logger from '../logger'; -import PostTransformationServiceSource from '../services/source/postTransformation'; +import { SourcePostTransformationService } from '../services/source/postTransformation'; -export default class SourceController { +export class SourceController { public static async sourceTransform(ctx: Context) { logger.debug( 'Native(Source-Transform):: Request to transformer::', JSON.stringify(ctx.request.body), ); const requestMetadata = MiscService.getRequestMetadata(ctx); - const events = ctx.request.body as Object[]; + const events = ctx.request.body as object[]; const { version, source }: { version: string; source: string } = ctx.params; const integrationService = ServiceSelector.getNativeSourceService(); try { - const resplist = await integrationService.sourceTransformRoutine( - events, + const { implementationVersion, input } = ControllerUtility.adaptInputToVersion( source, version, + events, + ); + const resplist = await integrationService.sourceTransformRoutine( + input, + source, + implementationVersion, requestMetadata, ); ctx.body = resplist; } catch (err: any) { const metaTO = integrationService.getTags(); - const resp = PostTransformationServiceSource.handleFailureEventsSource(err, metaTO); + const resp = SourcePostTransformationService.handleFailureEventsSource(err, metaTO); ctx.body = [resp]; } ControllerUtility.postProcess(ctx); diff --git a/src/controllers/trackingPlan.ts b/src/controllers/trackingPlan.ts index 66bf3607003..74e47e0ec92 100644 --- a/src/controllers/trackingPlan.ts +++ b/src/controllers/trackingPlan.ts @@ -1,8 +1,8 @@ import { Context } from 'koa'; -import TrackingPlanservice from '../services/trackingPlan'; -import ControllerUtility from './util'; +import { TrackingPlanservice } from '../services/trackingPlan'; +import { ControllerUtility } from './util'; -export default class TrackingPlanController { +export class TrackingPlanController { public static async validateTrackingPlan(ctx: Context) { const events = ctx.request.body; const requestSize = Number(ctx.request.get('content-length')); diff --git a/src/controllers/userTransform.ts b/src/controllers/userTransform.ts index cc64f5db1b9..c344bd072ad 100644 --- a/src/controllers/userTransform.ts +++ b/src/controllers/userTransform.ts @@ -1,26 +1,23 @@ import { Context } from 'koa'; -import MiscService from '../services/misc'; import { ProcessorTransformationRequest, UserTransformationServiceResponse } from '../types/index'; -import { compileUserLibrary } from '../util/ivmFactory'; -import UserTransformService from '../services/userTransform'; +import { UserTransformService } from '../services/userTransform'; import logger from '../logger'; import { setupUserTransformHandler, extractLibraries, validateCode, } from '../util/customTransformer'; -import ControllerUtility from './util'; +import { ControllerUtility } from './util'; -export default class UserTransformController { +export class UserTransformController { public static async transform(ctx: Context) { logger.debug( '(User transform - router:/customTransform ):: Request to transformer', JSON.stringify(ctx.request.body), ); - const requestMetadata = MiscService.getRequestMetadata(ctx); const events = ctx.request.body as ProcessorTransformationRequest[]; const processedRespone: UserTransformationServiceResponse = - await UserTransformService.transformRoutine(events); + await UserTransformService.transformRoutine(events, ctx.state.features); ctx.body = processedRespone.transformedEvents; ControllerUtility.postProcess(ctx, processedRespone.retryStatus); logger.debug( diff --git a/src/controllers/util/index.test.ts b/src/controllers/util/index.test.ts new file mode 100644 index 00000000000..e23d3f68324 --- /dev/null +++ b/src/controllers/util/index.test.ts @@ -0,0 +1,149 @@ +import { ControllerUtility } from './index'; + +describe('adaptInputToVersion', () => { + it('should return the input unchanged when the implementation version is not found', () => { + const sourceType = 'NA_SOURCE'; + const requestVersion = 'v0'; + const input = [ + { key1: 'val1', key2: 'val2' }, + { key1: 'val1', key2: 'val2' }, + { key1: 'val1', key2: 'val2' }, + ]; + const expected = { + implementationVersion: undefined, + input: [ + { key1: 'val1', key2: 'val2' }, + { key1: 'val1', key2: 'val2' }, + { key1: 'val1', key2: 'val2' }, + ], + }; + + const result = ControllerUtility.adaptInputToVersion(sourceType, requestVersion, input); + + expect(result).toEqual(expected); + }); + it('should return the input unchanged when the implementation version and request version are the same i.e. v0', () => { + const sourceType = 'pipedream'; + const requestVersion = 'v0'; + const input = [ + { key1: 'val1', key2: 'val2' }, + { key1: 'val1', key2: 'val2' }, + { key1: 'val1', key2: 'val2' }, + ]; + const expected = { + implementationVersion: 'v0', + input: [ + { key1: 'val1', key2: 'val2' }, + { key1: 'val1', key2: 'val2' }, + { key1: 'val1', key2: 'val2' }, + ], + }; + + const result = ControllerUtility.adaptInputToVersion(sourceType, requestVersion, input); + + expect(result).toEqual(expected); + }); + it('should return the input unchanged when the implementation version and request version are the same i.e. v1', () => { + const sourceType = 'webhook'; + const requestVersion = 'v1'; + const input = [ + { + event: { key1: 'val1', key2: 'val2' }, + source: { id: 'source_id', config: { configField1: 'configVal1' } }, + }, + { + event: { key1: 'val1', key2: 'val2' }, + source: { id: 'source_id', config: { configField1: 'configVal1' } }, + }, + { + event: { key1: 'val1', key2: 'val2' }, + source: { id: 'source_id', config: { configField1: 'configVal1' } }, + }, + ]; + const expected = { + implementationVersion: 'v1', + input: [ + { + event: { key1: 'val1', key2: 'val2' }, + source: { id: 'source_id', config: { configField1: 'configVal1' } }, + }, + { + event: { key1: 'val1', key2: 'val2' }, + source: { id: 'source_id', config: { configField1: 'configVal1' } }, + }, + { + event: { key1: 'val1', key2: 'val2' }, + source: { id: 'source_id', config: { configField1: 'configVal1' } }, + }, + ], + }; + + const result = ControllerUtility.adaptInputToVersion(sourceType, requestVersion, input); + + expect(result).toEqual(expected); + }); + it('should convert input from v0 to v1 when the request version is v0 and the implementation version is v1', () => { + const sourceType = 'webhook'; + const requestVersion = 'v0'; + const input = [ + { key1: 'val1', key2: 'val2' }, + { key1: 'val1', key2: 'val2' }, + { key1: 'val1', key2: 'val2' }, + ]; + const expected = { + implementationVersion: 'v1', + input: [ + { event: { key1: 'val1', key2: 'val2' }, source: undefined }, + { event: { key1: 'val1', key2: 'val2' }, source: undefined }, + { event: { key1: 'val1', key2: 'val2' }, source: undefined }, + ], + }; + + const result = ControllerUtility.adaptInputToVersion(sourceType, requestVersion, input); + + expect(result).toEqual(expected); + }); + + it('should convert input from v1 to v0 format when the request version is v1 and the implementation version is v0', () => { + const sourceType = 'pipedream'; + const requestVersion = 'v1'; + const input = [ + { + event: { key1: 'val1', key2: 'val2' }, + source: { id: 'source_id', config: { configField1: 'configVal1' } }, + }, + { + event: { key1: 'val1', key2: 'val2' }, + source: { id: 'source_id', config: { configField1: 'configVal1' } }, + }, + { + event: { key1: 'val1', key2: 'val2' }, + source: { id: 'source_id', config: { configField1: 'configVal1' } }, + }, + ]; + const expected = { + implementationVersion: 'v0', + input: [ + { key1: 'val1', key2: 'val2' }, + { key1: 'val1', key2: 'val2' }, + { key1: 'val1', key2: 'val2' }, + ], + }; + + const result = ControllerUtility.adaptInputToVersion(sourceType, requestVersion, input); + + expect(result).toEqual(expected); + }); + + // Should return an empty array when the input is an empty array + it('should return an empty array when the input is an empty array', () => { + const sourceType = 'pipedream'; + const requestVersion = 'v1'; + const input = []; + const expected = { implementationVersion: 'v0', input: [] }; + + const result = ControllerUtility.adaptInputToVersion(sourceType, requestVersion, input); + + expect(result).toEqual(expected); + }); +}); diff --git a/src/controllers/util/index.ts b/src/controllers/util/index.ts index 67a314bc753..75d3d8ffa7c 100644 --- a/src/controllers/util/index.ts +++ b/src/controllers/util/index.ts @@ -1,3 +1,5 @@ +import fs = require('fs'); +import path = require('path'); import { Context } from 'koa'; import isEmpty from 'lodash/isEmpty'; import get from 'get-value'; @@ -7,22 +9,68 @@ import { ProcessorTransformationRequest, RouterTransformationRequestData, RudderMessage, + SourceInput, } from '../../types'; import { getValueFromMessage } from '../../v0/util'; import genericFieldMap from '../../v0/util/data/GenericFieldMapping.json'; import { EventType, MappedToDestinationKey } from '../../constants'; -export default class ControllerUtility { +export class ControllerUtility { + private static sourceVersionMap: Map = new Map(); + public static timestampValsMap: Record = { [EventType.IDENTIFY]: [ `context.${RETL_TIMESTAMP}`, `context.traits.${RETL_TIMESTAMP}`, `traits.${RETL_TIMESTAMP}`, - ...genericFieldMap['timestamp'], + ...genericFieldMap.timestamp, ], - [EventType.TRACK]: [`properties.${RETL_TIMESTAMP}`, ...genericFieldMap['timestamp']], + [EventType.TRACK]: [`properties.${RETL_TIMESTAMP}`, ...genericFieldMap.timestamp], }; + private static getSourceVersionsMap(): Map { + if (this.sourceVersionMap?.size > 0) { + return this.sourceVersionMap; + } + const versions = ['v0', 'v1']; + versions.forEach((version) => { + const files = fs.readdirSync(path.resolve(__dirname, `../../${version}/sources`), { + withFileTypes: true, + }); + const sources = files.filter((file) => file.isDirectory()).map((folder) => folder.name); + sources.forEach((source) => { + this.sourceVersionMap.set(source, version); + }); + }); + return this.sourceVersionMap; + } + + private static convertSourceInputv1Tov0(sourceEvents: SourceInput[]): NonNullable[] { + return sourceEvents.map((sourceEvent) => sourceEvent.event); + } + + private static convertSourceInputv0Tov1(sourceEvents: unknown[]): SourceInput[] { + return sourceEvents.map( + (sourceEvent) => ({ event: sourceEvent, source: undefined } as SourceInput), + ); + } + + public static adaptInputToVersion( + sourceType: string, + requestVersion: string, + input: NonNullable[], + ): { implementationVersion: string; input: NonNullable[] } { + const sourceToVersionMap = this.getSourceVersionsMap(); + const implementationVersion = sourceToVersionMap.get(sourceType); + let updatedInput: NonNullable[] = input; + if (requestVersion === 'v0' && implementationVersion === 'v1') { + updatedInput = this.convertSourceInputv0Tov1(input); + } else if (requestVersion === 'v1' && implementationVersion === 'v0') { + updatedInput = this.convertSourceInputv1Tov0(input as SourceInput[]); + } + return { implementationVersion, input: updatedInput }; + } + private static getCompatibleStatusCode(status: number): number { return getCompatibleStatusCode(status); } diff --git a/src/features.json b/src/features.json index 9784f03e442..e0745c22469 100644 --- a/src/features.json +++ b/src/features.json @@ -25,6 +25,7 @@ "PINTEREST_TAG": true, "PROFITWELL": true, "SALESFORCE": true, + "SALESFORCE_OAUTH": true, "SFMC": true, "SNAPCHAT_CONVERSION": true, "TIKTOK_ADS": true, @@ -57,6 +58,13 @@ "BRAZE": true, "OPTIMIZELY_FULLSTACK": true, "TWITTER_ADS": true, - "CLEVERTAP": true - } + "CLEVERTAP": true, + "ORTTO": true, + "GLADLY": true, + "ONE_SIGNAL": true, + "TIKTOK_AUDIENCE": true, + "REDDIT": true + }, + "supportSourceTransformV1": true, + "supportTransformerProxyV1": true } diff --git a/src/helpers/fetchHandlers.ts b/src/helpers/fetchHandlers.ts index 96a74e528d9..ef7d9e66116 100644 --- a/src/helpers/fetchHandlers.ts +++ b/src/helpers/fetchHandlers.ts @@ -1,6 +1,6 @@ -import MiscService from '../services/misc'; +import { MiscService } from '../services/misc'; -export default class FetchHandler { +export class FetchHandler { private static sourceHandlerMap: Map = new Map(); private static destHandlerMap: Map = new Map(); diff --git a/src/helpers/serviceSelector.ts b/src/helpers/serviceSelector.ts index 99f897cedc6..89678e94074 100644 --- a/src/helpers/serviceSelector.ts +++ b/src/helpers/serviceSelector.ts @@ -1,15 +1,16 @@ +import { PlatformError } from '@rudderstack/integrations-lib'; import { ProcessorTransformationRequest, RouterTransformationRequestData } from '../types/index'; import { INTEGRATION_SERVICE } from '../routes/utils/constants'; -import CDKV1DestinationService from '../services/destination/cdkV1Integration'; -import CDKV2DestinationService from '../services/destination/cdkV2Integration'; -import DestinationService from '../interfaces/DestinationService'; -import NativeIntegrationDestinationService from '../services/destination/nativeIntegration'; -import SourceService from '../interfaces/SourceService'; -import NativeIntegrationSourceService from '../services/source/nativeIntegration'; -import { PlatformError } from '../v0/util/errorTypes'; -import ComparatorService from '../services/comparator'; +import { CDKV1DestinationService } from '../services/destination/cdkV1Integration'; +import { CDKV2DestinationService } from '../services/destination/cdkV2Integration'; +import { DestinationService } from '../interfaces/DestinationService'; +import { NativeIntegrationDestinationService } from '../services/destination/nativeIntegration'; +import { SourceService } from '../interfaces/SourceService'; +import { NativeIntegrationSourceService } from '../services/source/nativeIntegration'; +import { ComparatorService } from '../services/comparator'; +import { FixMe } from '../util/types'; -export default class ServiceSelector { +export class ServiceSelector { private static serviceMap: Map = new Map(); private static services = { @@ -19,23 +20,23 @@ export default class ServiceSelector { [INTEGRATION_SERVICE.NATIVE_SOURCE]: NativeIntegrationSourceService, }; - private static isCdkDestination(destinationDefinitionConfig: Object) { - return !!destinationDefinitionConfig?.['cdkEnabled']; + private static isCdkDestination(destinationDefinitionConfig: FixMe) { + return !!destinationDefinitionConfig?.cdkEnabled; } - private static isCdkV2Destination(destinationDefinitionConfig: Object) { - return Boolean(destinationDefinitionConfig?.['cdkV2Enabled']); + private static isCdkV2Destination(destinationDefinitionConfig: FixMe) { + return Boolean(destinationDefinitionConfig?.cdkV2Enabled); } - private static isComparatorEnabled(destinationDefinitionConfig: Object): boolean { + private static isComparatorEnabled(destinationDefinitionConfig: FixMe): boolean { return ( process.env.COMPARATOR_ENABLED === 'true' && - !!destinationDefinitionConfig['comparisonTestEnabeld'] + !!destinationDefinitionConfig.comparisonTestEnabeld ); } - private static getSecondaryServiceName(destinationDefinitionConfig: Object): string { - return destinationDefinitionConfig['comparisonService']; + private static getSecondaryServiceName(destinationDefinitionConfig: FixMe): string { + return destinationDefinitionConfig.comparisonService; } private static fetchCachedService(serviceType: string) { @@ -65,7 +66,7 @@ export default class ServiceSelector { private static getPrimaryDestinationService( events: ProcessorTransformationRequest[] | RouterTransformationRequestData[], ): DestinationService { - const destinationDefinitionConfig: Object = + const destinationDefinitionConfig: FixMe = events[0]?.destination?.DestinationDefinition?.Config; if (this.isCdkDestination(destinationDefinitionConfig)) { return this.fetchCachedService(INTEGRATION_SERVICE.CDK_V1_DEST); @@ -76,6 +77,7 @@ export default class ServiceSelector { return this.fetchCachedService(INTEGRATION_SERVICE.NATIVE_DEST); } + // eslint-disable-next-line @typescript-eslint/no-unused-vars public static getSourceService(arg: unknown) { // Implement source event based descision logic for selecting service } diff --git a/src/index.ts b/src/index.ts index 92c54befca9..36f32f1aed6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,20 +4,19 @@ import gracefulShutdown from 'http-graceful-shutdown'; import dotenv from 'dotenv'; import logger from './logger'; import cluster from './util/cluster'; -import { router } from './legacy/router'; -import { testRouter } from './testRouter'; import { metricsRouter } from './routes/metricsRouter'; -import { addStatMiddleware, addRequestSizeMiddleware } from './middleware'; +import { addStatMiddleware, addRequestSizeMiddleware, initPyroscope } from './middleware'; import { logProcessInfo } from './util/utils'; import { applicationRoutes, addSwaggerRoutes } from './routes'; import { RedisDB } from './util/redis/redisConnector'; dotenv.config(); const clusterEnabled = process.env.CLUSTER_ENABLED !== 'false'; -const useUpdatedRoutes = process.env.ENABLE_NEW_ROUTES !== 'false'; -const port = parseInt(process.env.PORT || '9090', 10); +const port = parseInt(process.env.PORT ?? '9090', 10); const metricsPort = parseInt(process.env.METRICS_PORT || '9091', 10); +initPyroscope(); + const app = new Koa(); addStatMiddleware(app); @@ -30,19 +29,11 @@ app.use( jsonLimit: '200mb', }), ); - addRequestSizeMiddleware(app); addSwaggerRoutes(app); -if (useUpdatedRoutes) { - logger.info('Using new routes'); - applicationRoutes(app); -} else { - // To be depricated - logger.info('Using old routes'); - app.use(router.routes()).use(router.allowedMethods()); - app.use(testRouter.routes()).use(testRouter.allowedMethods()); -} +logger.info('Using new routes'); +applicationRoutes(app); function finalFunction() { RedisDB.disconnect(); diff --git a/src/interfaces/DestinationService.ts b/src/interfaces/DestinationService.ts index b1cae047f8c..bf39024d85e 100644 --- a/src/interfaces/DestinationService.ts +++ b/src/interfaces/DestinationService.ts @@ -5,12 +5,13 @@ import { ProcessorTransformationResponse, RouterTransformationRequestData, RouterTransformationResponse, - ProcessorTransformationOutput, UserDeletionRequest, UserDeletionResponse, + ProxyRequest, + DeliveriesResponse, } from '../types/index'; -export default interface DestinationService { +export interface DestinationService { getName(): string; init(): void; @@ -26,28 +27,29 @@ export default interface DestinationService { events: ProcessorTransformationRequest[], destinationType: string, version: string, - requestMetadata: Object, + requestMetadata: NonNullable, ): Promise; doRouterTransformation( events: RouterTransformationRequestData[], destinationType: string, version: string, - requestMetadata: Object, + requestMetadata: NonNullable, ): Promise; doBatchTransformation( events: RouterTransformationRequestData[], destinationType: string, version: string, - requestMetadata: Object, + requestMetadata: NonNullable, ): RouterTransformationResponse[]; deliver( - event: ProcessorTransformationOutput, + event: ProxyRequest, destinationType: string, - requestMetadata: Object, - ): Promise; + requestMetadata: NonNullable, + version: string, + ): Promise; processUserDeletion( requests: UserDeletionRequest[], diff --git a/src/interfaces/SourceService.ts b/src/interfaces/SourceService.ts index 28d72ee9908..c7de8cfe8bc 100644 --- a/src/interfaces/SourceService.ts +++ b/src/interfaces/SourceService.ts @@ -1,12 +1,12 @@ import { MetaTransferObject, SourceTransformationResponse } from '../types/index'; -export default interface SourceService { +export interface SourceService { getTags(): MetaTransferObject; sourceTransformRoutine( - sourceEvents: Object[], + sourceEvents: NonNullable[], sourceType: string, version: string, - requestMetadata: Object, + requestMetadata: NonNullable, ): Promise; } diff --git a/src/legacy/router.js b/src/legacy/router.js index d42f82e072f..25cf2c68330 100644 --- a/src/legacy/router.js +++ b/src/legacy/router.js @@ -4,9 +4,10 @@ /* eslint-disable import/no-dynamic-require */ /* eslint-disable global-require */ const Router = require('@koa/router'); -const _ = require('lodash'); +const lodash = require('lodash'); const fs = require('fs'); const path = require('path'); +const { PlatformError } = require('@rudderstack/integrations-lib'); const logger = require('../logger'); const stats = require('../util/stats'); const { SUPPORTED_VERSIONS, API_VERSION } = require('../routes/utils/constants'); @@ -35,7 +36,6 @@ const { sendViolationMetrics, constructValidationErrors, } = require('../util/utils'); -const { PlatformError } = require('../v0/util/errorTypes'); const { processCdkV1 } = require('../cdk/v1/handler'); const { extractLibraries } = require('../util/customTransformer'); const { getCompatibleStatusCode } = require('../adapters/utils/networkUtils'); @@ -89,7 +89,7 @@ const functionsEnabled = () => { return areFunctionsEnabled === 1; }; -// eslint-disable-next-line no-unused-vars +// eslint-disable-next-line @typescript-eslint/no-unused-vars function getCommonMetadata(ctx) { // TODO: Parse information such as // cluster, namespace, etc information @@ -361,7 +361,7 @@ async function routerHandleDest(ctx) { ctx.body = `${destType} doesn't support router transform`; return null; } - const allDestEvents = _.groupBy(input, (event) => event.destination.ID); + const allDestEvents = lodash.groupBy(input, (event) => event.destination.ID); await Promise.all( Object.values(allDestEvents).map(async (destInputArray) => { const newDestInputArray = processDynamicConfig(destInputArray, 'router'); @@ -392,7 +392,10 @@ async function routerHandleDest(ctx) { // Add default stat tags respEvents - .filter((resp) => 'error' in resp && _.isObject(resp.statTags) && !_.isEmpty(resp.statTags)) + .filter( + (resp) => + 'error' in resp && lodash.isObject(resp.statTags) && !lodash.isEmpty(resp.statTags), + ) .forEach((resp) => { // eslint-disable-next-line no-param-reassign resp.statTags = { @@ -529,13 +532,13 @@ if (startDestTransformer) { }); let groupedEvents; if (processSessions) { - groupedEvents = _.groupBy(events, (event) => { + groupedEvents = lodash.groupBy(events, (event) => { // to have the backward-compatibility and being extra careful. We need to remove this (message.anonymousId) in next release. const rudderId = event.metadata.rudderId || event.message.anonymousId; return `${event.destination.ID}_${event.metadata.sourceId}_${rudderId}`; }); } else { - groupedEvents = _.groupBy( + groupedEvents = lodash.groupBy( events, (event) => `${event.metadata.destinationId}_${event.metadata.sourceId}`, ); @@ -571,14 +574,9 @@ if (startDestTransformer) { destEvents.length > 0 && destEvents[0].metadata ? getMetadata(destEvents[0].metadata) : {}; - const userFuncStartTime = new Date(); if (transformationVersionId) { let destTransformedEvents; try { - stats.counter('user_transform_function_input_events', destEvents.length, { - processSessions, - ...metaTags, - }); destTransformedEvents = await userTransformHandler()( destEvents, transformationVersionId, @@ -590,7 +588,7 @@ if (startDestTransformer) { return { statusCode: 400, error: ev.error, - metadata: _.isEmpty(ev.metadata) ? commonMetadata : ev.metadata, + metadata: lodash.isEmpty(ev.metadata) ? commonMetadata : ev.metadata, }; } if (!isNonFuncObject(ev.transformedEvent)) { @@ -599,12 +597,12 @@ if (startDestTransformer) { error: `returned event in events from user transformation is not an object. transformationVersionId:${transformationVersionId} and returned event: ${JSON.stringify( ev.transformedEvent, )}`, - metadata: _.isEmpty(ev.metadata) ? commonMetadata : ev.metadata, + metadata: lodash.isEmpty(ev.metadata) ? commonMetadata : ev.metadata, }; } return { output: ev.transformedEvent, - metadata: _.isEmpty(ev.metadata) ? commonMetadata : ev.metadata, + metadata: lodash.isEmpty(ev.metadata) ? commonMetadata : ev.metadata, statusCode: 200, }; }), @@ -630,12 +628,6 @@ if (startDestTransformer) { processSessions, ...metaTags, }); - } finally { - stats.timing('user_transform_function_latency', userFuncStartTime, { - transformationVersionId, - processSessions, - ...metaTags, - }); } } else { const errorMessage = 'Transformation VersionID not found'; @@ -998,7 +990,7 @@ const batchHandler = (ctx) => { ctx.body = `${destType} doesn't support batching`; return null; } - const allDestEvents = _.groupBy(input, (event) => event.destination.ID); + const allDestEvents = lodash.groupBy(input, (event) => event.destination.ID); const response = { batchedRequests: [], errors: [] }; Object.entries(allDestEvents).forEach(([, destEvents]) => { diff --git a/src/middleware.js b/src/middleware.js index 26ba4ee3bcf..53aabc90e3a 100644 --- a/src/middleware.js +++ b/src/middleware.js @@ -1,5 +1,21 @@ +const Pyroscope = require('@pyroscope/nodejs'); const stats = require('./util/stats'); +function initPyroscope() { + Pyroscope.init({ + appName: 'rudder-transformer', + }); + Pyroscope.startHeapCollecting(); +} + +function getCPUProfile(seconds) { + return Pyroscope.collectCpu(seconds); +} + +function getHeapProfile() { + return Pyroscope.collectHeap(); +} + function durationMiddleware() { return async (ctx, next) => { const startTime = new Date(); @@ -45,4 +61,7 @@ function addRequestSizeMiddleware(app) { module.exports = { addStatMiddleware, addRequestSizeMiddleware, + getHeapProfile, + getCPUProfile, + initPyroscope, }; diff --git a/src/middlewares/featureFlag.ts b/src/middlewares/featureFlag.ts new file mode 100644 index 00000000000..206fa7c5ea1 --- /dev/null +++ b/src/middlewares/featureFlag.ts @@ -0,0 +1,49 @@ +import { Context, Next } from 'koa'; + +export interface FeatureFlags { + [key: string]: boolean | string; +} + +export const FEATURE_FILTER_CODE = 'filter-code'; + +export class FeatureFlagMiddleware { + public static async handle(ctx: Context, next: Next): Promise { + // Initialize ctx.state.features if it doesn't exist + ctx.state.features = (ctx.state.features || {}) as FeatureFlags; + + // Get headers from the request + const { headers } = ctx.request; + + // Filter headers that start with 'X-Feature-' + const featureHeaders = Object.keys(headers).filter((key) => + key.toLowerCase().startsWith('x-feature-'), + ); + + // Convert feature headers to feature flags in ctx.state.features + featureHeaders.forEach((featureHeader) => { + // Get the feature name by removing the prefix, and convert to camelCase + const featureName = featureHeader + .substring(10) + .replace(/X-Feature-/g, '') + .toLowerCase(); + + let value: string | boolean | undefined; + const valueString = headers[featureHeader] as string; + if (valueString === 'true' || valueString === '?1') { + value = true; + } else if (valueString === 'false' || valueString === '?0') { + value = false; + } else { + value = valueString; + } + + // Set the feature flag in ctx.state.features + if (value !== undefined) { + ctx.state.features[featureName] = value; + } + }); + + // Move to the next middleware + await next(); + } +} diff --git a/src/middlewares/routeActivation.ts b/src/middlewares/routeActivation.ts index bf457b2faa6..ffb1e15e80b 100644 --- a/src/middlewares/routeActivation.ts +++ b/src/middlewares/routeActivation.ts @@ -18,7 +18,7 @@ const destinationFilterList = process.env.DESTINATION_FILTER_LIST?.toLocaleLower const sourceFilteList = process.env.SOURCE_FILTER_LIST?.toLocaleLowerCase(); const deliveryFilterList = process.env.DESTINATION_DELIVERY_FILTER_LIST?.toLocaleLowerCase(); -export default class RouteActivationMiddleware { +export class RouteActivationMiddleware { private static executeActivationRule(ctx: Context, next: Next, shouldActivate: boolean) { if (shouldActivate) { return next(); @@ -78,6 +78,7 @@ export default class RouteActivationMiddleware { ); } + // eslint-disable-next-line sonarjs/no-identical-functions public static destinationBatchFilter(ctx: Context, next: Next) { const routerRequest = ctx.request.body as RouterTransformationRequest; const destination = routerRequest.destType; diff --git a/src/routes/bulkUpload.ts b/src/routes/bulkUpload.ts index 386cf78c36e..efbd81c34e0 100644 --- a/src/routes/bulkUpload.ts +++ b/src/routes/bulkUpload.ts @@ -12,4 +12,6 @@ router.post('/fileUpload', fileUpload); router.post('/pollStatus', pollStatus); router.post('/getFailedJobs', getFailedJobStatus); router.post('/getWarningJobs', getWarnJobStatus); -export const bulkUploadRoutes = router.routes(); +const bulkUploadRoutes = router.routes(); + +export default bulkUploadRoutes; diff --git a/src/routes/delivery.ts b/src/routes/delivery.ts index de4ec65934b..30f4e2fb788 100644 --- a/src/routes/delivery.ts +++ b/src/routes/delivery.ts @@ -1,20 +1,28 @@ import Router from '@koa/router'; -import DeliveryController from '../controllers/delivery'; -import RouteActivationMiddleware from '../middlewares/routeActivation'; +import { DeliveryController } from '../controllers/delivery'; +import { RouteActivationMiddleware } from '../middlewares/routeActivation'; const router = new Router(); router.post( - '/:version/destinations/:destination/proxy', + '/v0/destinations/:destination/proxy', RouteActivationMiddleware.isDeliveryRouteActive, RouteActivationMiddleware.destinationDeliveryFilter, DeliveryController.deliverToDestination, ); +router.post( + '/v1/destinations/:destination/proxy', + RouteActivationMiddleware.isDeliveryRouteActive, + RouteActivationMiddleware.destinationDeliveryFilter, + DeliveryController.deliverToDestinationV1, +); + router.post( '/:version/destinations/:destination/proxyTest', RouteActivationMiddleware.isDeliveryTestRouteActive, DeliveryController.testDestinationDelivery, ); -export const proxyRoutes = router.routes(); +const proxyRoutes = router.routes(); +export default proxyRoutes; diff --git a/src/routes/destination.ts b/src/routes/destination.ts index bed2a1af202..1c478251455 100644 --- a/src/routes/destination.ts +++ b/src/routes/destination.ts @@ -1,29 +1,34 @@ import Router from '@koa/router'; -import DestinationController from '../controllers/destination'; -import RegulationController from '../controllers/regulation'; -import RouteActivationController from '../middlewares/routeActivation'; +import { DestinationController } from '../controllers/destination'; +import { RegulationController } from '../controllers/regulation'; +import { FeatureFlagMiddleware } from '../middlewares/featureFlag'; +import { RouteActivationMiddleware } from '../middlewares/routeActivation'; const router = new Router(); router.post( '/:version/destinations/:destination', - RouteActivationController.isDestinationRouteActive, - RouteActivationController.destinationProcFilter, + RouteActivationMiddleware.isDestinationRouteActive, + RouteActivationMiddleware.destinationProcFilter, + FeatureFlagMiddleware.handle, DestinationController.destinationTransformAtProcessor, ); router.post( '/routerTransform', - RouteActivationController.isDestinationRouteActive, - RouteActivationController.destinationRtFilter, + RouteActivationMiddleware.isDestinationRouteActive, + RouteActivationMiddleware.destinationRtFilter, + FeatureFlagMiddleware.handle, DestinationController.destinationTransformAtRouter, ); router.post( '/batch', - RouteActivationController.isDestinationRouteActive, - RouteActivationController.destinationBatchFilter, + RouteActivationMiddleware.isDestinationRouteActive, + RouteActivationMiddleware.destinationBatchFilter, + FeatureFlagMiddleware.handle, DestinationController.batchProcess, ); router.post('/deleteUsers', RegulationController.deleteUsers); -export const destinationRoutes = router.routes(); +const destinationRoutes = router.routes(); +export default destinationRoutes; diff --git a/src/routes/index.ts b/src/routes/index.ts index cfeb4db9ea7..d77584bea34 100644 --- a/src/routes/index.ts +++ b/src/routes/index.ts @@ -4,20 +4,23 @@ import { existsSync, readFileSync } from 'fs'; import dotenv from 'dotenv'; import { koaSwagger } from 'koa2-swagger-ui'; import path from 'path'; -import { bulkUploadRoutes } from './bulkUpload'; -import { proxyRoutes } from './delivery'; -import { destinationRoutes } from './destination'; -import { miscRoutes } from './misc'; -import { sourceRoutes } from './source'; -import { testEventRoutes } from './testEvents'; +import userTransformRoutes from './userTransform'; +import bulkUploadRoutes from './bulkUpload'; +import proxyRoutes from './delivery'; +import destinationRoutes from './destination'; +import miscRoutes from './misc'; +import sourceRoutes from './source'; +import testEventRoutes from './testEvents'; import { trackingPlanRoutes } from './trackingPlan'; -import { userTransformRoutes } from './userTransform'; import logger from '../logger'; import { isNotEmpty } from '../v0/util'; dotenv.config(); -export function applicationRoutes(app: Koa) { +// eslint-disable-next-line @typescript-eslint/no-unused-vars +const enableSwagger = process.env.ENABLE_SWAGGER === 'true'; + +export function applicationRoutes(app: Koa) { app.use(bulkUploadRoutes); app.use(proxyRoutes); app.use(destinationRoutes); @@ -28,7 +31,7 @@ export function applicationRoutes(app: Koa) { app.use(userTransformRoutes); } -export function addSwaggerRoutes(app: Koa) { +export function addSwaggerRoutes(app: Koa) { // Ading swagger routes, check swagger docs in http://localhost:9090/docs try { diff --git a/src/routes/misc.ts b/src/routes/misc.ts index 12ee09b8a93..4d1c5d5fb54 100644 --- a/src/routes/misc.ts +++ b/src/routes/misc.ts @@ -1,6 +1,6 @@ import Router from '@koa/router'; -import ProfileController from '../controllers/profile'; -import MiscController from '../controllers/misc'; +import { ProfileController } from '../controllers/profile'; +import { MiscController } from '../controllers/misc'; const router = new Router(); @@ -10,5 +10,8 @@ router.get('/transformerBuildVersion', MiscController.buildVersion); // depricia router.get('/buildVersion', MiscController.buildVersion); router.get('/version', MiscController.version); router.get('/features', MiscController.features); +router.get('/debug/pprof/profile', MiscController.getCPUProfile); +router.get('/debug/pprof/heap', MiscController.getHeapProfile); -export const miscRoutes = router.routes(); +const miscRoutes = router.routes(); +export default miscRoutes; diff --git a/src/routes/source.ts b/src/routes/source.ts index 675e2286ce3..1abc46e2e4d 100644 --- a/src/routes/source.ts +++ b/src/routes/source.ts @@ -1,14 +1,15 @@ import Router from '@koa/router'; -import RouteActivationController from '../middlewares/routeActivation'; -import SourceController from '../controllers/source'; +import { RouteActivationMiddleware } from '../middlewares/routeActivation'; +import { SourceController } from '../controllers/source'; const router = new Router(); router.post( '/:version/sources/:source', - RouteActivationController.isSourceRouteActive, - RouteActivationController.sourceFilter, + RouteActivationMiddleware.isSourceRouteActive, + RouteActivationMiddleware.sourceFilter, SourceController.sourceTransform, ); -export const sourceRoutes = router.routes(); +const sourceRoutes = router.routes(); +export default sourceRoutes; diff --git a/src/routes/testEvents.ts b/src/routes/testEvents.ts index cbfd78f3ecc..a35fe447ba7 100644 --- a/src/routes/testEvents.ts +++ b/src/routes/testEvents.ts @@ -1,9 +1,10 @@ import Router from '@koa/router'; -import EventTestController from '../controllers/eventTest'; +import { EventTestController } from '../controllers/eventTest'; const router = new Router({ prefix: '/test-router' }); router.post('/:version/:destination', EventTestController.testEvent); router.get('/:version/health', EventTestController.status); -export const testEventRoutes = router.routes(); +const testEventRoutes = router.routes(); +export default testEventRoutes; diff --git a/src/routes/trackingPlan.ts b/src/routes/trackingPlan.ts index d177af7b2ce..3e62ba2a749 100644 --- a/src/routes/trackingPlan.ts +++ b/src/routes/trackingPlan.ts @@ -1,5 +1,5 @@ import Router from '@koa/router'; -import TrackingPlanController from '../controllers/trackingPlan'; +import { TrackingPlanController } from '../controllers/trackingPlan'; const router = new Router(); diff --git a/src/routes/userTransform.ts b/src/routes/userTransform.ts index 2f6dcd417ca..1fb8ad3a1cd 100644 --- a/src/routes/userTransform.ts +++ b/src/routes/userTransform.ts @@ -1,33 +1,36 @@ import Router from '@koa/router'; -import RouteActivationController from '../middlewares/routeActivation'; -import UserTransformController from '../controllers/userTransform'; +import { RouteActivationMiddleware } from '../middlewares/routeActivation'; +import { FeatureFlagMiddleware } from '../middlewares/featureFlag'; +import { UserTransformController } from '../controllers/userTransform'; const router = new Router(); router.post( '/customTransform', - RouteActivationController.isUserTransformRouteActive, + RouteActivationMiddleware.isUserTransformRouteActive, + FeatureFlagMiddleware.handle, UserTransformController.transform, ); router.post( '/transformation/test', - RouteActivationController.isUserTransformTestRouteActive, + RouteActivationMiddleware.isUserTransformTestRouteActive, UserTransformController.testTransform, ); router.post( '/transformationLibrary/test', - RouteActivationController.isUserTransformTestRouteActive, + RouteActivationMiddleware.isUserTransformTestRouteActive, UserTransformController.testTransformLibrary, ); router.post( '/transformation/sethandle', - RouteActivationController.isUserTransformTestRouteActive, + RouteActivationMiddleware.isUserTransformTestRouteActive, UserTransformController.testTransformSethandle, ); router.post( '/extractLibs', - RouteActivationController.isUserTransformRouteActive, + RouteActivationMiddleware.isUserTransformRouteActive, UserTransformController.extractLibhandle, ); -export const userTransformRoutes = router.routes(); +const userTransformRoutes = router.routes(); +export default userTransformRoutes; diff --git a/src/routes/utils/constants.js b/src/routes/utils/constants.js index f074db6c62f..ccec8e54dd0 100644 --- a/src/routes/utils/constants.js +++ b/src/routes/utils/constants.js @@ -1,4 +1,4 @@ -const SUPPORTED_VERSIONS = ['v0']; +const SUPPORTED_VERSIONS = ['v0', 'v1']; const API_VERSION = '2'; const INTEGRATION_SERVICE = { COMPARATOR: 'comparator', @@ -7,8 +7,8 @@ const INTEGRATION_SERVICE = { NATIVE_DEST: 'native_dest', NATIVE_SOURCE: 'native_source', }; -const CHANNELS= { - sources: 'sources' +const CHANNELS = { + sources: 'sources', }; const RETL_TIMESTAMP = 'timestamp'; diff --git a/src/services/comparator.ts b/src/services/comparator.ts index ae6e1bcf570..d1e085b4bd6 100644 --- a/src/services/comparator.ts +++ b/src/services/comparator.ts @@ -1,12 +1,14 @@ -import IntegrationDestinationService from '../interfaces/DestinationService'; +/* eslint-disable class-methods-use-this */ +import { DestinationService } from '../interfaces/DestinationService'; import { + DeliveriesResponse, DeliveryResponse, Destination, ErrorDetailer, MetaTransferObject, - ProcessorTransformationOutput, ProcessorTransformationRequest, ProcessorTransformationResponse, + ProxyRequest, RouterTransformationRequestData, RouterTransformationResponse, UserDeletionRequest, @@ -19,15 +21,12 @@ import { CommonUtils } from '../util/common'; const NS_PER_SEC = 1e9; -export default class ComparatorService implements IntegrationDestinationService { - secondaryService: IntegrationDestinationService; +export class ComparatorService implements DestinationService { + secondaryService: DestinationService; - primaryService: IntegrationDestinationService; + primaryService: DestinationService; - constructor( - primaryService: IntegrationDestinationService, - secondaryService: IntegrationDestinationService, - ) { + constructor(primaryService: DestinationService, secondaryService: DestinationService) { this.primaryService = primaryService; this.secondaryService = secondaryService; } @@ -62,7 +61,7 @@ export default class ComparatorService implements IntegrationDestinationService } private getTestThreshold(destination: Destination) { - return destination.DestinationDefinition?.Config['camparisonTestThreshold'] || 0; + return destination.DestinationDefinition?.Config?.camparisonTestThreshold || 0; } private getComparisonLogs( @@ -81,6 +80,7 @@ export default class ComparatorService implements IntegrationDestinationService return; } + // eslint-disable-next-line no-restricted-syntax for (const [index, element] of primaryResplist.entries()) { const objectDiff = CommonUtils.objectDiff(element, secondaryResplist[index]); if (Object.keys(objectDiff).length > 0) { @@ -129,6 +129,7 @@ export default class ComparatorService implements IntegrationDestinationService } let hasComparisonFailed = false; + // eslint-disable-next-line no-restricted-syntax for (const [index, element] of primaryResplist.entries()) { const objectDiff = CommonUtils.objectDiff(element, secondaryResplist[index]); if (Object.keys(objectDiff).length > 0) { @@ -156,7 +157,7 @@ export default class ComparatorService implements IntegrationDestinationService secondaryServiceCallback: any, destinationType: string, version: string, - requestMetadata: Object, + requestMetadata: NonNullable, feature: string, destinationId: string, ): Promise { @@ -194,7 +195,7 @@ export default class ComparatorService implements IntegrationDestinationService events: ProcessorTransformationRequest[], destinationType: string, version: string, - requestMetadata: Object, + requestMetadata: NonNullable, ): Promise { const destinationId = events[0].destination.ID; const primaryStartTime = process.hrtime(); @@ -252,7 +253,7 @@ export default class ComparatorService implements IntegrationDestinationService events: RouterTransformationRequestData[], destinationType: string, version: string, - requestMetadata: Object, + requestMetadata: NonNullable, ): Promise { const destinationId = events[0].destination.ID; const primaryStartTime = process.hrtime(); @@ -310,7 +311,7 @@ export default class ComparatorService implements IntegrationDestinationService events: RouterTransformationRequestData[], destinationType: string, version: string, - requestMetadata: Object, + requestMetadata: NonNullable, ): RouterTransformationResponse[] { const destinationId = events[0].destination.ID; const primaryStartTime = process.hrtime(); @@ -365,17 +366,18 @@ export default class ComparatorService implements IntegrationDestinationService } public async deliver( - event: ProcessorTransformationOutput, + event: ProxyRequest, destinationType: string, - requestMetadata: Object, - ): Promise { + requestMetadata: NonNullable, + version: string, + ): Promise { const primaryResplist = await this.primaryService.deliver( event, destinationType, requestMetadata, + version, ); logger.error('[LIVE_COMPARE_TEST] not implemented for delivery routine'); - return primaryResplist; } diff --git a/src/services/delivertTest/deliveryTest.ts b/src/services/delivertTest/deliveryTest.ts index 051b67b5685..2f5db183e56 100644 --- a/src/services/delivertTest/deliveryTest.ts +++ b/src/services/delivertTest/deliveryTest.ts @@ -7,17 +7,18 @@ import stats from '../../util/stats'; import logger from '../../logger'; import tags from '../../v0/util/tags'; -export default class DeliveryTestService { +export class DeliveryTestService { public static async doTestDelivery( destination: string, routerDestReqPayload: any, routerDeliveryPayload: any, + version, ) { let response: any; try { - const destNetworkHandler = networkHandlerFactory.getNetworkHandler(destination); + const { networkHandler } = networkHandlerFactory.getNetworkHandler(destination, version); - const proxyDestReqPayload = destNetworkHandler.prepareProxy(routerDeliveryPayload); + const proxyDestReqPayload = networkHandler.prepareProxy(routerDeliveryPayload); response = { destinationRequestPayload: proxyDestReqPayload, }; @@ -29,6 +30,7 @@ export default class DeliveryTestService { // This is to make sure we encode `~` in the data coming from the router. // The data coming from the router is already a query parameter string const routerDataVal = new URLSearchParams(routerDestReqPayload.data); + // eslint-disable-next-line no-param-reassign routerDestReqPayload.data = routerDataVal; const proxyDataVal = new URLSearchParams(); diff --git a/src/services/destination/cdkV1Integration.ts b/src/services/destination/cdkV1Integration.ts index 44842fdddb9..197e3162ea6 100644 --- a/src/services/destination/cdkV1Integration.ts +++ b/src/services/destination/cdkV1Integration.ts @@ -1,6 +1,8 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ import { ConfigFactory, Executor, RudderBaseConfig } from 'rudder-transformer-cdk'; import path from 'path'; -import IntegrationDestinationService from '../../interfaces/DestinationService'; +import { TransformationError } from '@rudderstack/integrations-lib'; +import { DestinationService } from '../../interfaces/DestinationService'; import { DeliveryResponse, ErrorDetailer, @@ -9,16 +11,17 @@ import { ProcessorTransformationResponse, RouterTransformationRequestData, RouterTransformationResponse, - ProcessorTransformationOutput, UserDeletionRequest, UserDeletionResponse, + ProxyRequest, + DeliveriesResponse, } from '../../types/index'; -import { TransformationError } from '../../v0/util/errorTypes'; -import DestinationPostTransformationService from './postTransformation'; +import { DestinationPostTransformationService } from './postTransformation'; import tags from '../../v0/util/tags'; import { getErrorInfo } from '../../cdk/v1/handler'; +import { CatchErr } from '../../util/types'; -export default class CDKV1DestinationService implements IntegrationDestinationService { +export class CDKV1DestinationService implements DestinationService { public init() { ConfigFactory.init({ basePath: path.resolve(__dirname, '../../cdk/v1'), @@ -63,7 +66,7 @@ export default class CDKV1DestinationService implements IntegrationDestinationSe events: ProcessorTransformationRequest[], destinationType: string, _version: string, - _requestMetadata: Object, + _requestMetadata: NonNullable, ): Promise { const tfConfig = await ConfigFactory.getConfig(destinationType); const respList: ProcessorTransformationResponse[][] = await Promise.all( @@ -76,7 +79,7 @@ export default class CDKV1DestinationService implements IntegrationDestinationSe transformedPayloads, undefined, ); - } catch (error: any) { + } catch (error: CatchErr) { const metaTO = this.getTags( destinationType, event.metadata.destinationId, @@ -100,7 +103,7 @@ export default class CDKV1DestinationService implements IntegrationDestinationSe _events: RouterTransformationRequestData[], _destinationType: string, _version: string, - _requestMetadata: Object, + _requestMetadata: NonNullable, ): Promise { throw new TransformationError('CDKV1 Does not Implement Router Transform Routine'); } @@ -109,16 +112,16 @@ export default class CDKV1DestinationService implements IntegrationDestinationSe _events: RouterTransformationRequestData[], _destinationType: string, _version: any, - _requestMetadata: Object, + _requestMetadata: NonNullable, ): RouterTransformationResponse[] { throw new TransformationError('CDKV1 Does not Implement Batch Transform Routine'); } public deliver( - _event: ProcessorTransformationOutput, + _event: ProxyRequest, _destinationType: string, - _requestMetadata: Object, - ): Promise { + _requestMetadata: NonNullable, + ): Promise { throw new TransformationError('CDV1 Does not Implement Delivery Routine'); } diff --git a/src/services/destination/cdkV2Integration.ts b/src/services/destination/cdkV2Integration.ts index 04a2dcb799f..be7f0e51d5c 100644 --- a/src/services/destination/cdkV2Integration.ts +++ b/src/services/destination/cdkV2Integration.ts @@ -1,6 +1,9 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +/* eslint-disable class-methods-use-this */ import groupBy from 'lodash/groupBy'; +import { TransformationError } from '@rudderstack/integrations-lib'; import { processCdkV2Workflow } from '../../cdk/v2/handler'; -import IntegrationDestinationService from '../../interfaces/DestinationService'; +import { DestinationService } from '../../interfaces/DestinationService'; import { DeliveryResponse, ErrorDetailer, @@ -12,13 +15,15 @@ import { ProcessorTransformationOutput, UserDeletionRequest, UserDeletionResponse, + ProxyRequest, + DeliveriesResponse, } from '../../types/index'; -import { TransformationError } from '../../v0/util/errorTypes'; import tags from '../../v0/util/tags'; -import DestinationPostTransformationService from './postTransformation'; +import { DestinationPostTransformationService } from './postTransformation'; import stats from '../../util/stats'; +import { CatchErr } from '../../util/types'; -export default class CDKV2DestinationService implements IntegrationDestinationService { +export class CDKV2DestinationService implements DestinationService { public init() {} public getName(): string { @@ -49,7 +54,7 @@ export default class CDKV2DestinationService implements IntegrationDestinationSe events: ProcessorTransformationRequest[], destinationType: string, _version: string, - _requestMetadata: Object, + requestMetadata: NonNullable, ): Promise { // TODO: Change the promise type const respList: ProcessorTransformationResponse[][] = await Promise.all( @@ -61,6 +66,7 @@ export default class CDKV2DestinationService implements IntegrationDestinationSe destinationType, event, tags.FEATURES.PROCESSOR, + requestMetadata, ); stats.increment('event_transform_success', { @@ -78,7 +84,7 @@ export default class CDKV2DestinationService implements IntegrationDestinationSe transformedPayloads, undefined, ); - } catch (error: any) { + } catch (error: CatchErr) { const metaTo = this.getTags( destinationType, event.metadata.destinationId, @@ -105,9 +111,9 @@ export default class CDKV2DestinationService implements IntegrationDestinationSe events: RouterTransformationRequestData[], destinationType: string, _version: string, - _requestMetadata: Object, + requestMetadata: NonNullable, ): Promise { - const allDestEvents: Object = groupBy( + const allDestEvents: object = groupBy( events, (ev: RouterTransformationRequestData) => ev.destination?.ID, ); @@ -123,7 +129,12 @@ export default class CDKV2DestinationService implements IntegrationDestinationSe metaTo.metadata = destInputArray[0].metadata; try { const doRouterTransformationResponse: RouterTransformationResponse[] = - await processCdkV2Workflow(destinationType, destInputArray, tags.FEATURES.ROUTER); + await processCdkV2Workflow( + destinationType, + destInputArray, + tags.FEATURES.ROUTER, + requestMetadata, + ); return DestinationPostTransformationService.handleRouterTransformSuccessEvents( doRouterTransformationResponse, undefined, @@ -131,7 +142,7 @@ export default class CDKV2DestinationService implements IntegrationDestinationSe tags.IMPLEMENTATIONS.CDK_V2, destinationType.toUpperCase(), ); - } catch (error: any) { + } catch (error: CatchErr) { metaTo.metadatas = destInputArray.map((input) => input.metadata); const erroredResp = DestinationPostTransformationService.handleRouterTransformFailureEvents( @@ -150,16 +161,16 @@ export default class CDKV2DestinationService implements IntegrationDestinationSe _events: RouterTransformationRequestData[], _destinationType: string, _version: string, - _requestMetadata: Object, + _requestMetadata: NonNullable, ): RouterTransformationResponse[] { throw new TransformationError('CDKV2 Does not Implement Batch Transform Routine'); } public deliver( - _event: ProcessorTransformationOutput, + _event: ProxyRequest, _destinationType: string, - _requestMetadata: Object, - ): Promise { + _requestMetadata: NonNullable, + ): Promise { throw new TransformationError('CDKV2 Does not Implement Delivery Routine'); } diff --git a/src/services/destination/nativeIntegration.ts b/src/services/destination/nativeIntegration.ts index 8cec0f573fa..c3b0237cdc6 100644 --- a/src/services/destination/nativeIntegration.ts +++ b/src/services/destination/nativeIntegration.ts @@ -1,6 +1,9 @@ +/* eslint-disable prefer-destructuring */ +/* eslint-disable sonarjs/no-duplicate-string */ +/* eslint-disable @typescript-eslint/no-unused-vars */ import groupBy from 'lodash/groupBy'; -import cloneDeep from 'lodash/cloneDeep' -import IntegrationDestinationService from '../../interfaces/DestinationService'; +import cloneDeep from 'lodash/cloneDeep'; +import { DestinationService } from '../../interfaces/DestinationService'; import { DeliveryResponse, ErrorDetailer, @@ -12,13 +15,19 @@ import { ProcessorTransformationOutput, UserDeletionRequest, UserDeletionResponse, + ProxyRequest, + ProxyDeliveriesRequest, + ProxyDeliveryRequest, + DeliveriesResponse, + DeliveryJobState, } from '../../types/index'; -import DestinationPostTransformationService from './postTransformation'; +import { DestinationPostTransformationService } from './postTransformation'; import networkHandlerFactory from '../../adapters/networkHandlerFactory'; -import FetchHandler from '../../helpers/fetchHandlers'; +import { FetchHandler } from '../../helpers/fetchHandlers'; import tags from '../../v0/util/tags'; +import stats from '../../util/stats'; -export default class NativeIntegrationDestinationService implements IntegrationDestinationService { +export class NativeIntegrationDestinationService implements DestinationService { public init() {} public getName(): string { @@ -49,7 +58,7 @@ export default class NativeIntegrationDestinationService implements IntegrationD events: ProcessorTransformationRequest[], destinationType: string, version: string, - _requestMetadata: Object, + requestMetadata: NonNullable, ): Promise { const destHandler = FetchHandler.getDestHandler(destinationType, version); const respList: ProcessorTransformationResponse[][] = await Promise.all( @@ -57,7 +66,7 @@ export default class NativeIntegrationDestinationService implements IntegrationD try { const transformedPayloads: | ProcessorTransformationOutput - | ProcessorTransformationOutput[] = await destHandler.process(event); + | ProcessorTransformationOutput[] = await destHandler.process(event, requestMetadata); return DestinationPostTransformationService.handleProcessorTransformSucessEvents( event, transformedPayloads, @@ -87,10 +96,10 @@ export default class NativeIntegrationDestinationService implements IntegrationD events: RouterTransformationRequestData[], destinationType: string, version: string, - _requestMetadata: Object, + requestMetadata: NonNullable, ): Promise { const destHandler = FetchHandler.getDestHandler(destinationType, version); - const allDestEvents: Object = groupBy( + const allDestEvents: NonNullable = groupBy( events, (ev: RouterTransformationRequestData) => ev.destination?.ID, ); @@ -105,7 +114,7 @@ export default class NativeIntegrationDestinationService implements IntegrationD ); try { const doRouterTransformationResponse: RouterTransformationResponse[] = - await destHandler.processRouterDest(cloneDeep(destInputArray)); + await destHandler.processRouterDest(cloneDeep(destInputArray), requestMetadata); metaTO.metadata = destInputArray[0].metadata; return DestinationPostTransformationService.handleRouterTransformSuccessEvents( doRouterTransformationResponse, @@ -131,20 +140,23 @@ export default class NativeIntegrationDestinationService implements IntegrationD events: RouterTransformationRequestData[], destinationType: string, version: any, - _requestMetadata: Object, + requestMetadata: NonNullable, ): RouterTransformationResponse[] { const destHandler = FetchHandler.getDestHandler(destinationType, version); if (!destHandler.batch) { throw new Error(`${destinationType} does not implement batch`); } - const allDestEvents: Object = groupBy( + const allDestEvents: NonNullable = groupBy( events, (ev: RouterTransformationRequestData) => ev.destination?.ID, ); const groupedEvents: RouterTransformationRequestData[][] = Object.values(allDestEvents); const response = groupedEvents.map((destEvents) => { try { - const destBatchedRequests: RouterTransformationResponse[] = destHandler.batch(destEvents); + const destBatchedRequests: RouterTransformationResponse[] = destHandler.batch( + destEvents, + requestMetadata, + ); return destBatchedRequests; } catch (error: any) { const metaTO = this.getTags( @@ -165,29 +177,66 @@ export default class NativeIntegrationDestinationService implements IntegrationD } public async deliver( - destinationRequest: ProcessorTransformationOutput, + deliveryRequest: ProxyRequest, destinationType: string, - _requestMetadata: Object, - ): Promise { + _requestMetadata: NonNullable, + version: string, + ): Promise { try { - const networkHandler = networkHandlerFactory.getNetworkHandler(destinationType); - const rawProxyResponse = await networkHandler.proxy(destinationRequest, destinationType); + const { networkHandler, handlerVersion } = networkHandlerFactory.getNetworkHandler( + destinationType, + version, + ); + const rawProxyResponse = await networkHandler.proxy(deliveryRequest, destinationType); const processedProxyResponse = networkHandler.processAxiosResponse(rawProxyResponse); - return networkHandler.responseHandler( + let rudderJobMetadata = + version.toLowerCase() === 'v1' + ? (deliveryRequest as ProxyDeliveriesRequest).metadata + : (deliveryRequest as ProxyDeliveryRequest).metadata; + + if (version.toLowerCase() === 'v1' && handlerVersion.toLowerCase() === 'v0') { + rudderJobMetadata = rudderJobMetadata[0]; + } + + let responseProxy = networkHandler.responseHandler( { ...processedProxyResponse, - rudderJobMetadata: destinationRequest.metadata, + rudderJobMetadata, }, destinationType, - ) as DeliveryResponse; + ); + // Adaption Logic for V0 to V1 + if (handlerVersion.toLowerCase() === 'v0' && version.toLowerCase() === 'v1') { + const v0Response = responseProxy as DeliveryResponse; + const jobStates = (deliveryRequest as ProxyDeliveriesRequest).metadata.map( + (metadata) => + ({ + error: JSON.stringify(v0Response.destinationResponse?.response), + statusCode: v0Response.status, + metadata, + } as DeliveryJobState), + ); + responseProxy = { + response: jobStates, + } as DeliveriesResponse; + } + return responseProxy; } catch (err: any) { + const metadata = Array.isArray(deliveryRequest.metadata) + ? deliveryRequest.metadata[0] + : deliveryRequest.metadata; const metaTO = this.getTags( destinationType, - destinationRequest.metadata?.destinationId || 'Non-determininable', - destinationRequest.metadata?.workspaceId || 'Non-determininable', + metadata?.destinationId || 'Non-determininable', + metadata?.workspaceId || 'Non-determininable', tags.FEATURES.DATA_DELIVERY, ); - metaTO.metadata = destinationRequest.metadata; + + if (version.toLowerCase() === 'v1') { + metaTO.metadatas = (deliveryRequest as ProxyDeliveriesRequest).metadata; + return DestinationPostTransformationService.handlevV1DeliveriesFailureEvents(err, metaTO); + } + metaTO.metadata = (deliveryRequest as ProxyDeliveryRequest).metadata; return DestinationPostTransformationService.handleDeliveryFailureEvents(err, metaTO); } } @@ -198,6 +247,7 @@ export default class NativeIntegrationDestinationService implements IntegrationD ): Promise { const response = await Promise.all( requests.map(async (request) => { + const startTime = new Date(); const { destType } = request; const destUserDeletionHandler: any = FetchHandler.getDeletionHandler( destType.toLowerCase(), @@ -214,6 +264,11 @@ export default class NativeIntegrationDestinationService implements IntegrationD ...request, rudderDestInfo, }); + stats.timing('regulation_worker_requests_dest_latency', startTime, { + feature: tags.FEATURES.USER_DELETION, + implementation: tags.IMPLEMENTATIONS.NATIVE, + destType, + }); return result; } catch (error: any) { const metaTO = this.getTags(destType, 'unknown', 'unknown', tags.FEATURES.USER_DELETION); diff --git a/src/services/destination/postTransformation.ts b/src/services/destination/postTransformation.ts index 9e04f97fac3..3cec459f8bb 100644 --- a/src/services/destination/postTransformation.ts +++ b/src/services/destination/postTransformation.ts @@ -1,6 +1,8 @@ +/* eslint-disable no-param-reassign */ import cloneDeep from 'lodash/cloneDeep'; import isObject from 'lodash/isObject'; import isEmpty from 'lodash/isEmpty'; +import { PlatformError } from '@rudderstack/integrations-lib'; import { ProcessorTransformationRequest, ProcessorTransformationResponse, @@ -9,13 +11,16 @@ import { DeliveryResponse, MetaTransferObject, UserDeletionResponse, + DeliveriesResponse, + DeliveryJobState, } from '../../types/index'; import { generateErrorObject } from '../../v0/util'; -import ErrorReportingService from '../errorReporting'; +import { ErrorReportingService } from '../errorReporting'; import tags from '../../v0/util/tags'; import stats from '../../util/stats'; +import { FixMe } from '../../util/types'; -export default class DestinationPostTransformationService { +export class DestinationPostTransformationService { public static handleProcessorTransformSucessEvents( event: ProcessorTransformationRequest, transformedPayloads: ProcessorTransformationOutput | ProcessorTransformationOutput[], @@ -47,7 +52,7 @@ export default class DestinationPostTransformationService { } public static handleProcessorTransformFailureEvents( - error: Object, + error: NonNullable, metaTo: MetaTransferObject, ): ProcessorTransformationResponse { const errObj = generateErrorObject(error, metaTo.errorDetails); @@ -105,7 +110,7 @@ export default class DestinationPostTransformationService { } public static handleRouterTransformFailureEvents( - error: Object, + error: NonNullable, metaTo: MetaTransferObject, ): RouterTransformationResponse { const errObj = generateErrorObject(error, metaTo.errorDetails); @@ -122,7 +127,7 @@ export default class DestinationPostTransformationService { } public static handleBatchTransformFailureEvents( - error: Object, + error: NonNullable, metaTo: MetaTransferObject, ): RouterTransformationResponse { const errObj = generateErrorObject(error, metaTo.errorDetails); @@ -138,7 +143,7 @@ export default class DestinationPostTransformationService { } public static handleDeliveryFailureEvents( - error: Object, + error: any, metaTo: MetaTransferObject, ): DeliveryResponse { const errObj = generateErrorObject(error, metaTo.errorDetails, false); @@ -151,16 +156,50 @@ export default class DestinationPostTransformationService { authErrorCategory: errObj.authErrorCategory, }), } as DeliveryResponse; + + ErrorReportingService.reportError(error, metaTo.errorContext, resp); + return resp; + } + + public static handlevV1DeliveriesFailureEvents( + error: FixMe, + metaTo: MetaTransferObject, + ): DeliveriesResponse { + const errObj = generateErrorObject(error, metaTo.errorDetails, false); + const metadataArray = metaTo.metadatas; + if (!Array.isArray(metadataArray)) { + // Panic + throw new PlatformError('Proxy v1 endpoint error : metadataArray is not an array'); + } + const responses = metadataArray.map((metadata) => { + const resp = { + error: + JSON.stringify(error.destinationResponse?.response) || + errObj.message || + '[Delivery] Error occured while processing payload', + statusCode: errObj.status, + metadata, + } as DeliveryJobState; + return resp; + }); + + const resp = { + response: responses, + statTags: errObj.statTags, + authErrorCategory: errObj.authErrorCategory, + message: errObj.message.toString(), + } as DeliveriesResponse; + ErrorReportingService.reportError(error, metaTo.errorContext, resp); return resp; } public static handleUserDeletionFailureEvents( - error: Object, + error: NonNullable, metaTo: MetaTransferObject, ): UserDeletionResponse { const errObj = generateErrorObject(error, metaTo.errorDetails, false); - // TODO: Add stat tags here + stats.increment('regulation_worker_user_deletion_failure', metaTo.errorDetails); const resp = { statusCode: errObj.status, error: errObj.message, diff --git a/src/services/destination/preTransformation.ts b/src/services/destination/preTransformation.ts index dbd4caa10dc..9bdaab96612 100644 --- a/src/services/destination/preTransformation.ts +++ b/src/services/destination/preTransformation.ts @@ -3,13 +3,13 @@ import { ProcessorTransformationRequest, RouterTransformationRequestData } from import { DynamicConfigParser } from '../../util/dynamicConfigParser'; import { oncehubTransformer } from '../../util/oncehub-custom-transformer'; -export default class PreTransformationDestinationService { +export class DestinationPreTransformationService { public static preProcess( events: ProcessorTransformationRequest[] | RouterTransformationRequestData[], ctx: Context, ) { const reqParams = ctx.request.query; - events = events.map( + const eventsProcessed = events.map( (event: ProcessorTransformationRequest | RouterTransformationRequestData) => { // look for traits under every object in file v0\util\data\GenericFieldMapping.json like // "traits": ["traits", "context.traits"] @@ -19,6 +19,6 @@ export default class PreTransformationDestinationService { return parsedEvent; }, ); - return events; + return eventsProcessed; } } diff --git a/src/services/errorReporting.ts b/src/services/errorReporting.ts index ba0bd9b21cb..3a4276f9780 100644 --- a/src/services/errorReporting.ts +++ b/src/services/errorReporting.ts @@ -1,7 +1,7 @@ import { client } from '../util/errorNotifier'; -export default class ErrorReportingService { - public static reportError(error: Object, context: string, errorResp: Object) { +export class ErrorReportingService { + public static reportError(error: NonNullable, context: string, errorResp: object) { client.notify(error, context, { ...errorResp, }); diff --git a/src/services/eventTest/eventTester.ts b/src/services/eventTest/eventTester.ts index 3055b947afc..75df29cc63c 100644 --- a/src/services/eventTest/eventTester.ts +++ b/src/services/eventTest/eventTester.ts @@ -1,7 +1,9 @@ import { sendToDestination, userTransformHandler } from '../../routerUtils'; +import { FixMe } from '../../util/types'; -export default class EventTesterService { +export class EventTesterService { private static getDestHandler(version, destination) { + // eslint-disable-next-line global-require, import/no-dynamic-require return require(`../../${version}/destinations/${destination}/transform`); } @@ -9,7 +11,7 @@ export default class EventTesterService { function capitalize(s) { return s === 'id' ? s.toUpperCase() : s.charAt(0).toUpperCase() + s.slice(1); } - const transformedObj = {}; + const transformedObj: FixMe = {}; const { destinationDefinition } = dest; Object.keys(dest).forEach((key) => { transformedObj[capitalize(key)] = dest[key]; @@ -19,7 +21,7 @@ export default class EventTesterService { Object.keys(destinationDefinition).forEach((key) => { destDef[capitalize(key)] = destinationDefinition[key]; }); - transformedObj['DestinationDefinition'] = destDef; + transformedObj.DestinationDefinition = destDef; return transformedObj; } @@ -52,19 +54,19 @@ export default class EventTesterService { libraries, }; - let response = {}; + let response: FixMe = {}; let errorFound = false; if (stage.user_transform) { let librariesVersionIDs = []; - if (event.libraries) { + if (libraries) { librariesVersionIDs = events[0].libraries.map((library) => library.versionId); } const transformationVersionId = ev.destination && - ev.destination['Transformations'] && - ev.destination['Transformations'][0] && - ev.destination['Transformations'][0].versionId; + ev.destination.Transformations && + ev.destination.Transformations[0] && + ev.destination.Transformations[0].versionId; if (transformationVersionId) { try { @@ -78,16 +80,16 @@ export default class EventTesterService { throw new Error(userTransformedEvent.error); } - response['user_transformed_payload'] = userTransformedEvent.transformedEvent; + response.user_transformed_payload = userTransformedEvent.transformedEvent; ev.message = userTransformedEvent.transformedEvent; } catch (err: any) { errorFound = true; - response['user_transformed_payload'] = { + response.user_transformed_payload = { error: err.message || JSON.stringify(err), }; } } else { - response['user_transformed_payload'] = { + response.user_transformed_payload = { error: 'Transformation VersionID not found', }; } @@ -99,18 +101,18 @@ export default class EventTesterService { const desthandler = this.getDestHandler(version, dest); const transformedOutput = await desthandler.process(ev); if (Array.isArray(transformedOutput)) { - response['dest_transformed_payload'] = transformedOutput; + response.dest_transformed_payload = transformedOutput; } else { - response['dest_transformed_payload'] = [transformedOutput]; + response.dest_transformed_payload = [transformedOutput]; } } catch (err: any) { errorFound = true; - response['dest_transformed_payload'] = { + response.dest_transformed_payload = { error: err.message || JSON.stringify(err), }; } } else { - response['dest_transformed_payload'] = { + response.dest_transformed_payload = { error: 'error encountered in user_transformation stage. Aborting.', }; } @@ -119,27 +121,27 @@ export default class EventTesterService { if (stage.dest_transform && stage.send_to_destination) { // send event to destination only after transformation if (!errorFound) { - const destResponses: any[] = []; - const destResponseStatuses: any[] = []; + const destResponses: FixMe[] = []; + const destResponseStatuses: FixMe[] = []; - const transformedPayloads = response['dest_transformed_payload']; + const transformedPayloads = response.dest_transformed_payload; // eslint-disable-next-line no-restricted-syntax for (const payload of transformedPayloads) { // eslint-disable-next-line no-await-in-loop const parsedResponse = await sendToDestination(dest, payload); let contentType = ''; - let response = ''; + let responsePayload = ''; if (parsedResponse.headers) { contentType = parsedResponse.headers['content-type']; if (this.isSupportedContentType(contentType)) { - response = parsedResponse.response; + responsePayload = parsedResponse.response; } } else if (parsedResponse.networkFailure) { - response = parsedResponse.response; + responsePayload = parsedResponse.response; } - destResponses.push(response); + destResponses.push(responsePayload); destResponseStatuses.push(parsedResponse.status); // TODO: Use updated handleResponseTransform function @@ -162,7 +164,7 @@ export default class EventTesterService { destination_response_status: destResponseStatuses, }; } else { - response['destination_response'] = { + response.destination_response = { error: 'error encountered in dest_transformation stage. Aborting.', }; } diff --git a/src/services/misc.ts b/src/services/misc.ts index 6508ced8094..e0953d08bf1 100644 --- a/src/services/misc.ts +++ b/src/services/misc.ts @@ -1,10 +1,12 @@ +/* eslint-disable global-require, import/no-dynamic-require */ import fs from 'fs'; import path from 'path'; import { Context } from 'koa'; import { DestHandlerMap } from '../constants/destinationCanonicalNames'; import { Metadata } from '../types'; +import { getCPUProfile, getHeapProfile } from '../middleware'; -export default class MiscService { +export class MiscService { public static getDestHandler(dest: string, version: string) { if (DestHandlerMap.hasOwnProperty(dest)) { return require(`../${version}/destinations/${DestHandlerMap[dest]}/transform`); @@ -20,6 +22,7 @@ export default class MiscService { return require(`../${version}/destinations/${dest}/deleteUsers`); } + // eslint-disable-next-line @typescript-eslint/no-unused-vars public static getRequestMetadata(ctx: Context) { // TODO: Parse information such as // cluster, namespace, etc information @@ -27,12 +30,13 @@ export default class MiscService { return { namespace: 'Unknown', cluster: 'Unknown', + features: ctx.state?.features || {}, }; } public static getMetaTags(metadata: Metadata) { if (!metadata) { - return {} + return {}; } return { sourceType: metadata.sourceType, @@ -62,4 +66,12 @@ export default class MiscService { const obj = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../features.json'), 'utf8')); return JSON.stringify(obj); } + + public static async getCPUProfile(seconds: number) { + return getCPUProfile(seconds); + } + + public static async getHeapProfile() { + return getHeapProfile(); + } } diff --git a/src/services/profile.ts b/src/services/profile.ts index 5f02b5c2fa6..d71826e251e 100644 --- a/src/services/profile.ts +++ b/src/services/profile.ts @@ -7,6 +7,8 @@ import v8 from 'v8'; import pprof, { heap } from '@datadog/pprof'; import { promisify } from 'util'; import logger from '../logger'; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +import { CatchErr } from '../util/types'; // The average number of bytes between samples. // 512*1024 = 524288 @@ -20,8 +22,9 @@ logger.info(`Interval Bytes set: ${intervalBytes}`); heap.start(intervalBytes, stackDepth); -export default class ProfileService { +export class ProfileService { private static async promisifiedRead(readable: any) { + // eslint-disable-next-line no-new new Promise((resolve, reject) => { // Instructions for reading data const chunks: any[] = []; @@ -81,11 +84,13 @@ export default class ProfileService { const shouldGenerateLocally = !credBucketDetails.sendTo; logger.info('Before Heapsnapshot converted into a readable stream'); let fileName = ''; - let format = 'pb.gz'; + // eslint-disable-next-line no-param-reassign + format = 'pb.gz'; let profile; if (format && format === 'v8') { const readable = v8.getHeapSnapshot(); snapshotReadableStream = await this.promisifiedRead(readable); + // eslint-disable-next-line no-param-reassign format = 'heapsnapshot'; } else { profile = heap.profile(); @@ -99,7 +104,7 @@ export default class ProfileService { logger.info('Before pipeline'); try { await writeFileProm(fileName, snapshotReadableStream); - } catch (error: any) { + } catch (error: CatchErr) { logger.error('Error occurred:', error); throw new Error(error); } @@ -123,7 +128,7 @@ export default class ProfileService { credBucketDetails.sendTo ? credBucketDetails.sendTo : 'locally' } with filename: ${fileName}`, }; - } catch (error: any) { + } catch (error: CatchErr) { logger.error(error); return { success: false, diff --git a/src/services/source/nativeIntegration.ts b/src/services/source/nativeIntegration.ts index e654940fece..6eaef2f835b 100644 --- a/src/services/source/nativeIntegration.ts +++ b/src/services/source/nativeIntegration.ts @@ -1,16 +1,17 @@ -import IntegrationSourceService from '../../interfaces/SourceService'; +import { SourceService } from '../../interfaces/SourceService'; import { ErrorDetailer, MetaTransferObject, RudderMessage, SourceTransformationResponse, } from '../../types/index'; -import PostTransformationServiceSource from './postTransformation'; -import FetchHandler from '../../helpers/fetchHandlers'; +import { FixMe } from '../../util/types'; +import { SourcePostTransformationService } from './postTransformation'; +import { FetchHandler } from '../../helpers/fetchHandlers'; import tags from '../../v0/util/tags'; import stats from '../../util/stats'; -export default class NativeIntegrationSourceService implements IntegrationSourceService { +export class NativeIntegrationSourceService implements SourceService { public getTags(): MetaTransferObject { const metaTO = { errorDetails: { @@ -25,25 +26,26 @@ export default class NativeIntegrationSourceService implements IntegrationSource } public async sourceTransformRoutine( - sourceEvents: Object[], + sourceEvents: NonNullable[], sourceType: string, version: string, - _requestMetadata: Object, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + _requestMetadata: NonNullable, ): Promise { const sourceHandler = FetchHandler.getSourceHandler(sourceType, version); - const respList: SourceTransformationResponse[] = await Promise.all( + const respList: SourceTransformationResponse[] = await Promise.all( sourceEvents.map(async (sourceEvent) => { try { const respEvents: RudderMessage | RudderMessage[] | SourceTransformationResponse = await sourceHandler.process(sourceEvent); - return PostTransformationServiceSource.handleSuccessEventsSource(respEvents); - } catch (error: any) { + return SourcePostTransformationService.handleSuccessEventsSource(respEvents); + } catch (error: FixMe) { const metaTO = this.getTags(); stats.increment('source_transform_errors', { - sourceType, + source: sourceType, version, }); - return PostTransformationServiceSource.handleFailureEventsSource(error, metaTO); + return SourcePostTransformationService.handleFailureEventsSource(error, metaTO); } }), ); diff --git a/src/services/source/postTransformation.ts b/src/services/source/postTransformation.ts index 603f1b1c0a9..20c815171be 100644 --- a/src/services/source/postTransformation.ts +++ b/src/services/source/postTransformation.ts @@ -1,10 +1,11 @@ import { MetaTransferObject, RudderMessage, SourceTransformationResponse } from '../../types/index'; +import { CatchErr } from '../../util/types'; import { generateErrorObject } from '../../v0/util'; -import ErrorReportingService from '../errorReporting'; +import { ErrorReportingService } from '../errorReporting'; -export default class PostTransformationSourceService { +export class SourcePostTransformationService { public static handleFailureEventsSource( - error: Object, + error: CatchErr, metaTO: MetaTransferObject, ): SourceTransformationResponse { const errObj = generateErrorObject(error, metaTO.errorDetails); diff --git a/src/services/trackingPlan.ts b/src/services/trackingPlan.ts index b7a648741cd..2e68df55e99 100644 --- a/src/services/trackingPlan.ts +++ b/src/services/trackingPlan.ts @@ -4,12 +4,13 @@ import { getMetadata } from '../v0/util'; import eventValidator from '../util/eventValidation'; import stats from '../util/stats'; -export default class TrackingPlanservice { +export class TrackingPlanservice { public static async validateTrackingPlan(events, requestSize, reqParams) { const requestStartTime = new Date(); const respList: any[] = []; const metaTags = events[0].metadata ? getMetadata(events[0].metadata) : {}; let ctxStatusCode = 200; + for (let i = 0; i < events.length; i++) { const event = events[i]; const eventStartTime = new Date(); @@ -25,7 +26,7 @@ export default class TrackingPlanservice { validationErrors: hv['validationErrors'], error: JSON.stringify(constructValidationErrors(hv['validationErrors'])), }); - stats.counter('hv_violation_type', 1, { + stats.counter('tp_violation_type', 1, { violationType: hv['violationType'], ...metaTags, }); @@ -37,7 +38,7 @@ export default class TrackingPlanservice { validationErrors: hv['validationErrors'], error: JSON.stringify(constructValidationErrors(hv['validationErrors'])), }); - stats.counter('hv_propagated_events', 1, { + stats.counter('tp_propagated_events', 1, { ...metaTags, }); } @@ -58,24 +59,32 @@ export default class TrackingPlanservice { validationErrors: [], error: errMessage, }); - stats.counter('hv_errors', 1, { + stats.counter('tp_errors', 1, { ...metaTags, + workspaceId: event.metadata?.workspaceId, + trackingPlanId: event.metadata?.trackingPlanId, }); } finally { - stats.timing('hv_event_latency', eventStartTime, { + stats.timing('tp_event_latency', eventStartTime, { ...metaTags, }); } - stats.counter('hv_events_count', events.length, { - ...metaTags, - }); - stats.histogram('hv_request_size', requestSize, { - ...metaTags, - }); - stats.timing('hv_request_latency', requestStartTime, { - ...metaTags, - }); } + + stats.counter('tp_events_count', events.length, { + ...metaTags, + }); + + stats.histogram('tp_request_size', requestSize, { + ...metaTags, + }); + + stats.timing('tp_request_latency', requestStartTime, { + ...metaTags, + workspaceId: events[0]?.metadata?.workspaceId, + trackingPlanId: events[0]?.metadata?.trackingPlanId, + }); + return { body: respList, status: ctxStatusCode }; } } diff --git a/src/services/userTransform.ts b/src/services/userTransform.ts index 15c170bb7bc..bf34e3d82a3 100644 --- a/src/services/userTransform.ts +++ b/src/services/userTransform.ts @@ -7,20 +7,30 @@ import { ProcessorTransformationResponse, UserTransformationResponse, UserTransformationServiceResponse, + MessageIdMetadataMap, } from '../types/index'; -import { RespStatusError, RetryRequestError, extractStackTraceUptoLastSubstringMatch } from '../util/utils'; +import { + RespStatusError, + RetryRequestError, + extractStackTraceUptoLastSubstringMatch, +} from '../util/utils'; import { getMetadata, isNonFuncObject } from '../v0/util'; import { SUPPORTED_FUNC_NAMES } from '../util/ivmFactory'; import logger from '../logger'; import stats from '../util/stats'; +import { CommonUtils } from '../util/common'; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +import { CatchErr, FixMe } from '../util/types'; +import { FeatureFlags, FEATURE_FILTER_CODE } from '../middlewares/featureFlag'; +import { HTTP_CUSTOM_STATUS_CODES } from '../constants'; -export default class UserTransformService { +export class UserTransformService { public static async transformRoutine( events: ProcessorTransformationRequest[], + features: FeatureFlags = {}, ): Promise { - const startTime = new Date(); let retryStatus = 200; - const groupedEvents: Object = groupBy( + const groupedEvents: NonNullable = groupBy( events, (event: ProcessorTransformationRequest) => `${event.metadata.destinationId}_${event.metadata.sourceId}`, @@ -28,25 +38,34 @@ export default class UserTransformService { stats.counter('user_transform_function_group_size', Object.entries(groupedEvents).length, {}); stats.histogram('user_transform_input_events', events.length, {}); - const transformedEvents: any[] = []; - let librariesVersionIDs: any[] = []; + const transformedEvents: FixMe[] = []; + let librariesVersionIDs: FixMe[] = []; if (events[0].libraries) { librariesVersionIDs = events[0].libraries.map( (library: UserTransformationLibrary) => library.VersionID, ); } - const responses = await Promise.all( - Object.entries(groupedEvents).map(async ([dest, destEvents]) => { - logger.debug(`dest: ${dest}`); + const responses = await Promise.all( + Object.entries(groupedEvents).map(async ([, destEvents]) => { const eventsToProcess = destEvents as ProcessorTransformationRequest[]; const transformationVersionId = eventsToProcess[0]?.destination?.Transformations[0]?.VersionID; - const messageIds = eventsToProcess.map((ev) => ev.metadata?.messageId); + const messageIds: string[] = []; + const messageIdsSet = new Set(); + const messageIdMetadataMap: MessageIdMetadataMap = {}; + eventsToProcess.forEach((ev) => { + messageIds.push(ev.metadata?.messageId); + messageIdsSet.add(ev.metadata?.messageId); + messageIdMetadataMap[ev.metadata?.messageId] = ev.metadata; + }); + + const messageIdsInOutputSet = new Set(); const commonMetadata = { sourceId: eventsToProcess[0]?.metadata?.sourceId, destinationId: eventsToProcess[0]?.metadata.destinationId, destinationType: eventsToProcess[0]?.metadata.destinationType, + workspaceId: eventsToProcess[0]?.metadata.workspaceId, messageIds, }; @@ -63,49 +82,65 @@ export default class UserTransformService { error: errorMessage, metadata: commonMetadata, } as ProcessorTransformationResponse); - stats.counter('user_transform_errors', eventsToProcess.length, { - transformationVersionId, - type: 'NoVersionId', - ...metaTags, - }); return transformedEvents; } const userFuncStartTime = new Date(); try { - stats.counter('user_transform_function_input_events', eventsToProcess.length, { - ...metaTags, - }); const destTransformedEvents: UserTransformationResponse[] = await userTransformHandler()( eventsToProcess, transformationVersionId, librariesVersionIDs, ); - transformedEvents.push( - ...destTransformedEvents.map((ev) => { - if (ev.error) { - return { - statusCode: 400, - error: ev.error, - metadata: isEmpty(ev.metadata) ? commonMetadata : ev.metadata, - } as ProcessorTransformationResponse; - } - if (!isNonFuncObject(ev.transformedEvent)) { - return { - statusCode: 400, - error: `returned event in events from user transformation is not an object. transformationVersionId:${transformationVersionId} and returned event: ${JSON.stringify( - ev.transformedEvent, - )}`, - metadata: isEmpty(ev.metadata) ? commonMetadata : ev.metadata, - } as ProcessorTransformationResponse; - } - return { - output: ev.transformedEvent, + + const transformedEventsWithMetadata: ProcessorTransformationResponse[] = []; + destTransformedEvents.forEach((ev) => { + // add messageId to output set + if (ev.metadata?.messageId) { + messageIdsInOutputSet.add(ev.metadata.messageId); + } else if (ev.metadata?.messageIds) { + ev.metadata.messageIds.forEach((id) => messageIdsInOutputSet.add(id)); + } + if (ev.error) { + transformedEventsWithMetadata.push({ + statusCode: 400, + error: ev.error, metadata: isEmpty(ev.metadata) ? commonMetadata : ev.metadata, - statusCode: 200, - } as ProcessorTransformationResponse; - }), - ); - } catch (error: any) { + } as unknown as ProcessorTransformationResponse); + return; + } + if (!isNonFuncObject(ev.transformedEvent)) { + transformedEventsWithMetadata.push({ + statusCode: 400, + error: `returned event in events from user transformation is not an object. transformationVersionId:${transformationVersionId} and returned event: ${JSON.stringify( + ev.transformedEvent, + )}`, + metadata: isEmpty(ev.metadata) ? commonMetadata : ev.metadata, + } as ProcessorTransformationResponse); + return; + } + transformedEventsWithMetadata.push({ + output: ev.transformedEvent, + metadata: isEmpty(ev.metadata) ? commonMetadata : ev.metadata, + statusCode: 200, + } as ProcessorTransformationResponse); + }); + + if (features[FEATURE_FILTER_CODE]) { + // find difference between input and output messageIds + const messageIdsNotInOutput = CommonUtils.setDiff(messageIdsSet, messageIdsInOutputSet); + const droppedEvents = messageIdsNotInOutput.map((id) => ({ + statusCode: HTTP_CUSTOM_STATUS_CODES.FILTERED, + metadata: { + ...(isEmpty(messageIdMetadataMap[id]) ? commonMetadata : messageIdMetadataMap[id]), + messageId: id, + messageIds: null, + }, + })); + transformedEvents.push(...droppedEvents); + } + + transformedEvents.push(...transformedEventsWithMetadata); + } catch (error: CatchErr) { logger.error(error); let status = 400; const errorString = error.toString(); @@ -127,18 +162,19 @@ export default class UserTransformService { ), ); stats.counter('user_transform_errors', eventsToProcess.length, { - transformationVersionId, - type: 'UnknownError', + transformationId: eventsToProcess[0]?.metadata?.transformationId, + workspaceId: eventsToProcess[0]?.metadata?.workspaceId, status, ...metaTags, }); } finally { - stats.timing('user_transform_function_latency', userFuncStartTime, { - transformationVersionId, + stats.timing('user_transform_request_latency', userFuncStartTime, { + workspaceId: eventsToProcess[0]?.metadata?.workspaceId, + transformationId: eventsToProcess[0]?.metadata?.transformationId, ...metaTags, }); } - stats.timing('user_transform_request_latency', startTime, {}); + stats.counter('user_transform_requests', 1, {}); stats.histogram('user_transform_output_events', transformedEvents.length, {}); return transformedEvents; @@ -153,7 +189,7 @@ export default class UserTransformService { } public static async testTransformRoutine(events, trRevCode, libraryVersionIDs) { - const response: any = {}; + const response: FixMe = {}; try { if (!trRevCode || !trRevCode.code || !trRevCode.codeVersion) { throw new Error('Invalid Request. Missing parameters in transformation code block'); @@ -163,6 +199,7 @@ export default class UserTransformService { } logger.debug(`[CT] Test Input Events: ${JSON.stringify(events)}`); + // eslint-disable-next-line no-param-reassign trRevCode.versionId = 'testVersionId'; response.body = await userTransformHandler()( events, @@ -173,9 +210,11 @@ export default class UserTransformService { ); logger.debug(`[CT] Test Output Events: ${JSON.stringify(response.body.transformedEvents)}`); response.status = 200; - } catch (error: any) { + } catch (error: CatchErr) { response.status = 400; - response.body = { error: extractStackTraceUptoLastSubstringMatch(error.stack, SUPPORTED_FUNC_NAMES) }; + response.body = { + error: extractStackTraceUptoLastSubstringMatch(error.stack, SUPPORTED_FUNC_NAMES), + }; } return response; } diff --git a/src/testRouter.js b/src/testRouter.js index 5c9d56e78d5..60808166631 100644 --- a/src/testRouter.js +++ b/src/testRouter.js @@ -28,8 +28,8 @@ const isSupportedContentType = (contentType) => { const testRouter = new Router({ prefix: '/test-router' }); -const getDestHandler = (version, destination) => - require(`./${version}/destinations/${destination}/transform`); +const getDestHandler = (ver, destination) => + require(`./${ver}/destinations/${destination}/transform`); const getDestinations = () => fs.readdirSync(path.resolve(__dirname, version, 'destinations')); diff --git a/src/types/index.ts b/src/types/index.ts index 543dc040ab8..f4432e5c2ac 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,3 +1,6 @@ +import { CatchErr, FixMe } from '../util/types'; + +/* eslint-disable @typescript-eslint/no-explicit-any */ type ProcessorTransformationOutput = { version: string; type: string; @@ -13,9 +16,46 @@ type ProcessorTransformationOutput = { FORM?: Record; }; files?: Record; - metadata?: Metadata; }; +type ProxyDeliveryRequest = { + version: string; + type: string; + method: string; + endpoint: string; + userId: string; + headers?: Record; + params?: Record; + body?: { + JSON?: Record; + JSON_ARRAY?: Record; + XML?: Record; + FORM?: Record; + }; + files?: Record; + metadata: Metadata; +}; + +type ProxyDeliveriesRequest = { + version: string; + type: string; + method: string; + endpoint: string; + userId: string; + headers?: Record; + params?: Record; + body?: { + JSON?: Record; + JSON_ARRAY?: Record; + XML?: Record; + FORM?: Record; + }; + files?: Record; + metadata: Metadata[]; +}; + +type ProxyRequest = ProxyDeliveryRequest | ProxyDeliveriesRequest; + type Metadata = { sourceId: string; workspaceId: string; @@ -25,8 +65,8 @@ type Metadata = { sourceCategory: string; trackingPlanId: string; trackingPlanVersion: number; - sourceTpConfig: Object; - mergedTpConfig: Object; + sourceTpConfig: object; + mergedTpConfig: object; destinationId: string; jobRunId: string; jobId: number; @@ -35,7 +75,7 @@ type Metadata = { sourceJobRunId: string; sourceTaskId: string; sourceTaskRunId: string; - recordId: Object; + recordId: object; destinationType: string; messageId: string; oauthAccessToken: string; @@ -46,26 +86,32 @@ type Metadata = { eventType: string; sourceDefinitionId: string; destinationDefinitionId: string; + transformationId: string; + dontBatch?: boolean; +}; + +type MessageIdMetadataMap = { + [key: string]: Metadata; }; type UserTransformationInput = { VersionID: string; ID: string; - Config: Object; + Config: object; }; type DestinationDefinition = { ID: string; Name: string; DisplayName: string; - Config: Object; + Config: FixMe; }; type Destination = { ID: string; Name: string; DestinationDefinition: DestinationDefinition; - Config: Object; + Config: FixMe; Enabled: boolean; WorkspaceID: string; Transformations: UserTransformationInput[]; @@ -77,16 +123,16 @@ type UserTransformationLibrary = { }; type ProcessorTransformationRequest = { - request?: Object; - message: Object; + request?: object; + message: object; metadata: Metadata; destination: Destination; libraries: UserTransformationLibrary[]; }; type RouterTransformationRequestData = { - request?: Object; - message: Object; + request?: object; + message: object; metadata: Metadata; destination: Destination; }; @@ -101,7 +147,7 @@ type ProcessorTransformationResponse = { metadata: Metadata; statusCode: number; error?: string; - statTags: Object; + statTags: object; }; type RouterTransformationResponse = { @@ -111,7 +157,7 @@ type RouterTransformationResponse = { batched: boolean; statusCode: number; error: string; - statTags: Object; + statTags: object; }; type SourceTransformationOutput = { @@ -120,18 +166,32 @@ type SourceTransformationOutput = { type SourceTransformationResponse = { output: SourceTransformationOutput; - error: Object; + error: CatchErr; statusCode: number; - outputToSource: Object; - statTags: Object; + outputToSource: object; + statTags: object; }; type DeliveryResponse = { status: number; message: string; - destinationResponse: Object; - statTags: Object; + destinationResponse: any; + statTags: object; + authErrorCategory?: string; +}; + +type DeliveryJobState = { + error: string; + statusCode: number; + metadata: Metadata; +}; + +type DeliveriesResponse = { + status?: number; + message?: string; + statTags?: object; authErrorCategory?: string; + response: DeliveryJobState[]; }; enum MessageType { @@ -149,15 +209,15 @@ type RudderMessage = { anonymousId: string; type: MessageType; channel: string; - context: Object; + context: object; originalTimestamp: Date; sentAt: Date; timestamp: Date; event?: string; - integrations?: Object; + integrations?: object; messageId: string; - properties?: Object; - traits?: Object; + properties?: object; + traits?: object; }; type ErrorDetailer = { @@ -186,7 +246,7 @@ type MetaTransferObject = { type UserTransformationResponse = { transformedEvent: RudderMessage; metadata: Metadata; - error: Object; + error: CatchErr; }; type UserTransformationServiceResponse = { @@ -195,8 +255,8 @@ type UserTransformationServiceResponse = { }; type UserDeletionRequest = { - userAttributes: any[]; - config: Object; + userAttributes: FixMe[]; + config: object; destType: string; jobId: string; }; @@ -205,36 +265,71 @@ type UserDeletionResponse = { statusCode: number; error?: string; status?: string; - authErrorCategory: any; - statTags: Object; + authErrorCategory: FixMe; + statTags: object; }; type ComparatorInput = { events: ProcessorTransformationRequest[] | RouterTransformationRequestData[]; destination: string; version: string; - requestMetadata: Object; + requestMetadata: object; feature: string; }; +type SourceDefinition = { + ID: string; + Name: string; + Category: string; + Type: string; +}; + +type Source = { + ID: string; + OriginalID: string; + Name: string; + SourceDefinition: SourceDefinition; + Config: object; + Enabled: boolean; + WorkspaceID: string; + WriteKey: string; + Transformations?: UserTransformationInput[]; + RevisionID?: string; + Destinations?: Destination[]; + Transient: boolean; + EventSchemasEnabled: boolean; + DgSourceTrackingPlanConfig: object; +}; +type SourceInput = { + event: NonNullable[]; + source?: Source; +}; export { + ComparatorInput, + DeliveryJobState, + DeliveryResponse, + DeliveriesResponse, + Destination, + ErrorDetailer, + MessageIdMetadataMap, + MetaTransferObject, Metadata, - UserTransformationLibrary, + ProcessorTransformationOutput, ProcessorTransformationRequest, ProcessorTransformationResponse, + ProxyDeliveriesRequest, + ProxyDeliveryRequest, + ProxyRequest, RouterTransformationRequest, RouterTransformationRequestData, RouterTransformationResponse, RudderMessage, - ProcessorTransformationOutput, SourceTransformationResponse, - DeliveryResponse, - ErrorDetailer, - UserTransformationResponse, - UserTransformationServiceResponse, - MetaTransferObject, UserDeletionRequest, UserDeletionResponse, - Destination, - ComparatorInput, + SourceInput, + Source, + UserTransformationLibrary, + UserTransformationResponse, + UserTransformationServiceResponse, }; diff --git a/src/util/common.js b/src/util/common.js index 5d732d34d17..8bf34f2eca2 100644 --- a/src/util/common.js +++ b/src/util/common.js @@ -20,6 +20,10 @@ const CommonUtils = { } return [obj]; }, + + setDiff(mainSet, comparisionSet) { + return [...mainSet].filter((item) => !comparisionSet.has(item)); + }, }; module.exports = { diff --git a/src/util/customTransformer-faas.js b/src/util/customTransformer-faas.js index d1fa48d2d16..2c0bbfd8c00 100644 --- a/src/util/customTransformer-faas.js +++ b/src/util/customTransformer-faas.js @@ -1,7 +1,7 @@ const { v4: uuidv4 } = require('uuid'); const crypto = require('crypto'); const NodeCache = require('node-cache'); -const { getMetadata } = require('../v0/util'); +const { getMetadata, getTransformationMetadata } = require('../v0/util'); const stats = require('./stats'); const { setupFaasFunction, @@ -24,8 +24,8 @@ function generateFunctionName(userTransformation, libraryVersionIds, testMode) { const ids = [userTransformation.workspaceId, userTransformation.versionId].concat( (libraryVersionIds || []).sort(), ); - const hash = crypto.createHash('md5').update(`${ids}`).digest('hex'); + const hash = crypto.createHash('md5').update(`${ids}`).digest('hex'); return `fn-${userTransformation.workspaceId}-${hash}`.substring(0, 63).toLowerCase(); } @@ -82,10 +82,10 @@ async function setOpenFaasUserTransform( libraryVersionIds, pregeneratedFnName, testMode = false, + trMetadata = {}, ) { const tags = { transformerVersionId: userTransformation.versionId, - language: userTransformation.language, identifier: 'openfaas', testMode, }; @@ -106,6 +106,7 @@ async function setOpenFaasUserTransform( testMode, ), testMode, + trMetadata, ); stats.timing('creation_time', setupTime, tags); @@ -126,24 +127,21 @@ async function runOpenFaasUserTransform( if (events.length === 0) { throw new Error('Invalid payload. No events'); } - const metaTags = events[0].metadata ? getMetadata(events[0].metadata) : {}; - const tags = { - transformerVersionId: userTransformation.versionId, - language: userTransformation.language, - identifier: 'openfaas', - testMode, - ...metaTags, - }; + const trMetadata = events[0].metadata ? getTransformationMetadata(events[0].metadata) : {}; // check and deploy faas function if not exists const functionName = generateFunctionName(userTransformation, libraryVersionIds, testMode); if (testMode) { - await setOpenFaasUserTransform(userTransformation, libraryVersionIds, functionName, testMode); + await setOpenFaasUserTransform( + userTransformation, + libraryVersionIds, + functionName, + testMode, + trMetadata, + ); } - const invokeTime = new Date(); - stats.counter('events_to_process', events.length, tags); - const result = await executeFaasFunction( + return await executeFaasFunction( functionName, events, userTransformation.versionId, @@ -156,9 +154,8 @@ async function runOpenFaasUserTransform( testMode, ), testMode, + trMetadata, ); - stats.timing('run_time', invokeTime, tags); - return result; } module.exports = { diff --git a/src/util/customTransformer-v1.js b/src/util/customTransformer-v1.js index 397281d8d9c..60f8e493faa 100644 --- a/src/util/customTransformer-v1.js +++ b/src/util/customTransformer-v1.js @@ -1,7 +1,7 @@ const ivm = require('isolated-vm'); const { getFactory } = require('./ivmFactory'); -const { getMetadata } = require('../v0/util'); +const { getMetadata, getTransformationMetadata } = require('../v0/util'); const logger = require('../logger'); const stats = require('./stats'); @@ -54,63 +54,48 @@ async function userTransformHandlerV1( libraryVersionIds, testMode = false, ) { - /* - Removing pool usage to address memory leaks - Env variable ON_DEMAND_ISOLATE_VM is not being used anymore - */ - if (userTransformation.versionId) { - const metaTags = events.length && events[0].metadata ? getMetadata(events[0].metadata) : {}; - const tags = { - transformerVersionId: userTransformation.versionId, - identifier: 'v1', - ...metaTags, - }; - - logger.debug(`Isolate VM being created... `); - const isolatevmFactory = await getFactory( - userTransformation.code, - libraryVersionIds, - userTransformation.versionId, - userTransformation.secrets || {}, - testMode, - ); - const isolatevm = await isolatevmFactory.create(); - logger.debug(`Isolate VM created... `); + if (!userTransformation.versionId) { + return { transformedEvents : events }; + } - // Transform the event... - stats.counter('events_to_process', events.length, tags); - const isolateStartWallTime = calculateMsFromIvmTime(isolatevm.isolateStartWallTime); - const isolateStartCPUTime = calculateMsFromIvmTime(isolatevm.isolateStartCPUTime); + const isolatevmFactory = await getFactory( + userTransformation.code, + libraryVersionIds, + userTransformation.versionId, + userTransformation.secrets || {}, + testMode, + ); - const invokeTime = new Date(); - let transformedEvents; - // Destroy isolatevm in case of execution errors - try { - transformedEvents = await transform(isolatevm, events); - } catch (err) { - logger.error(`Error encountered while executing transformation: ${err.message}`); - isolatevmFactory.destroy(isolatevm); - throw err; - } - const { logs } = isolatevm; - stats.timing('run_time', invokeTime, tags); - const isolateEndWallTime = calculateMsFromIvmTime(isolatevm.isolate.wallTime); - const isolateEndCPUTime = calculateMsFromIvmTime(isolatevm.isolate.cpuTime); + logger.debug(`Creating IsolateVM`); + const isolatevm = await isolatevmFactory.create(); - //TODO: fix "Value is not a valid number: NaN" error and uncomment - //stats.timing('isolate_wall_time', isolateEndWallTime - isolateStartWallTime, tags); - //stats.timing('isolate_cpu_time', isolateEndCPUTime - isolateStartCPUTime, tags); + const invokeTime = new Date(); + let transformedEvents; + let logs; + let transformationError; - // Destroy the isolated vm resources created - logger.debug(`Isolate VM being destroyed... `); + try { + transformedEvents = await transform(isolatevm, events); + logs = isolatevm.logs; + } catch (err) { + logger.error(`Error encountered while executing transformation: ${err.message}`); + transformationError = err; + throw err; + } finally { + logger.debug(`Destroying IsolateVM`); isolatevmFactory.destroy(isolatevm); - logger.debug(`Isolate VM destroyed... `); - - return { transformedEvents, logs }; - // Events contain message and destination. We take the message part of event and run transformation on it. - // And put back the destination after transforrmation + // send the observability stats + const tags = { + identifier: 'v1', + errored: transformationError ? true : false, + ...events.length && events[0].metadata ? getMetadata(events[0].metadata) : {}, + ...events.length && events[0].metadata ? getTransformationMetadata(events[0].metadata) : {} + } + stats.counter('user_transform_function_input_events', events.length, tags); + stats.timing('user_transform_function_latency', invokeTime, tags); } - return { transformedEvents: events }; + + return { transformedEvents, logs }; } async function setUserTransformHandlerV1() { diff --git a/src/util/customTransformer.js b/src/util/customTransformer.js index 90dcea61b2b..001fe3216cf 100644 --- a/src/util/customTransformer.js +++ b/src/util/customTransformer.js @@ -7,6 +7,7 @@ const { UserTransformHandlerFactory } = require('./customTransformerFactory'); const { parserForImport } = require('./parser'); const stats = require('./stats'); const { fetchWithDnsWrapper } = require('./utils'); +const { getMetadata, getTransformationMetadata } = require('../v0/util'); const ISOLATE_VM_MEMORY = parseInt(process.env.ISOLATE_VM_MEMORY || '128', 10); const GEOLOCATION_TIMEOUT_IN_MS = parseInt(process.env.GEOLOCATION_TIMEOUT_IN_MS || '1000', 10); @@ -19,10 +20,6 @@ async function runUserTransform( versionId, testMode = false, ) { - const tags = { - transformerVersionId: versionId, - identifier: 'v0', - }; // TODO: Decide on the right value for memory limit const isolate = new ivm.Isolate({ memoryLimit: ISOLATE_VM_MEMORY }); const context = await isolate.createContext(); @@ -214,9 +211,6 @@ async function runUserTransform( const customScript = await isolate.compileScript(`${code}`); await customScript.run(context); const fnRef = await jail.get('transform', { reference: true }); - // stat - stats.counter('events_to_process', events.length, tags); - // TODO : check if we can resolve this // eslint-disable-next-line no-async-promise-executor const executionPromise = new Promise(async (resolve, reject) => { const sharedMessagesList = new ivm.ExternalCopy(events).copyInto({ @@ -233,6 +227,7 @@ async function runUserTransform( } }); let result; + let transformationError; const invokeTime = new Date(); try { const timeoutPromise = new Promise((resolve) => { @@ -245,8 +240,8 @@ async function runUserTransform( if (result === 'Timedout') { throw new Error('Timed out'); } - stats.timing('run_time', invokeTime, tags); } catch (error) { + transformationError = error; throw error; } finally { // release function, script, context and isolate @@ -255,6 +250,16 @@ async function runUserTransform( bootstrapScriptResult.release(); context.release(); isolate.dispose(); + + const tags = { + identifier: 'v0', + errored: transformationError ? true : false, + ...events.length && events[0].metadata ? getMetadata(events[0].metadata) : {}, + ...events.length && events[0].metadata ? getTransformationMetadata(events[0].metadata) : {} + } + + stats.counter('user_transform_function_input_events', events.length, tags); + stats.timing('user_transform_function_latency', invokeTime, tags); } return { diff --git a/src/util/customTransformerFactory.js b/src/util/customTransformerFactory.js index 66268db2861..1bf10e5d458 100644 --- a/src/util/customTransformerFactory.js +++ b/src/util/customTransformerFactory.js @@ -1,9 +1,15 @@ -const { setOpenFaasUserTransform, runOpenFaasUserTransform } = require('./customTransformer-faas'); +const { + setOpenFaasUserTransform, + runOpenFaasUserTransform, +} = require('./customTransformer-faas'); -const { userTransformHandlerV1, setUserTransformHandlerV1 } = require('./customTransformer-v1'); +const { + userTransformHandlerV1, + setUserTransformHandlerV1, +} = require('./customTransformer-v1'); const UserTransformHandlerFactory = (userTransformation) => { - const transformHandler = { + return { setUserTransform: async (libraryVersionIds) => { switch (userTransformation.language) { case 'pythonfaas': @@ -17,13 +23,23 @@ const UserTransformHandlerFactory = (userTransformation) => { switch (userTransformation.language) { case 'pythonfaas': case 'python': - return runOpenFaasUserTransform(events, userTransformation, libraryVersionIds, testMode); + return runOpenFaasUserTransform( + events, + userTransformation, + libraryVersionIds, + testMode + ); + default: - return userTransformHandlerV1(events, userTransformation, libraryVersionIds, testMode); + return userTransformHandlerV1( + events, + userTransformation, + libraryVersionIds, + testMode + ); } }, }; - return transformHandler; }; exports.UserTransformHandlerFactory = UserTransformHandlerFactory; diff --git a/src/util/customTransforrmationsStore.js b/src/util/customTransforrmationsStore.js index 46e2b9c9b50..08d417c07cd 100644 --- a/src/util/customTransforrmationsStore.js +++ b/src/util/customTransforrmationsStore.js @@ -4,7 +4,7 @@ const logger = require('../logger'); const { responseStatusHandler } = require('./utils'); const stats = require('./stats'); -const myCache = new NodeCache(); +const myCache = new NodeCache({ stdTTL: 60 * 60 * 24 * 1 }); // const CONFIG_BACKEND_URL = "http://localhost:5000"; const CONFIG_BACKEND_URL = process.env.CONFIG_BACKEND_URL || 'https://api.rudderlabs.com'; diff --git a/src/util/dynamicConfigParser.ts b/src/util/dynamicConfigParser.ts index fc4a02bc846..6de2e38f945 100644 --- a/src/util/dynamicConfigParser.ts +++ b/src/util/dynamicConfigParser.ts @@ -1,5 +1,6 @@ import cloneDeep from 'lodash/cloneDeep'; import { ProcessorTransformationRequest, RouterTransformationRequestData } from '../types/index'; +import { FixMe } from './types'; /* eslint-disable no-param-reassign */ const get = require('get-value'); @@ -8,7 +9,7 @@ const unset = require('unset-value'); export class DynamicConfigParser { private static getDynamicConfigValue( event: ProcessorTransformationRequest | RouterTransformationRequestData, - value: any, + value: FixMe, ) { // this regex checks for pattern "only spaces {{ path || defaultvalue }} only spaces" . // " {{message.traits.key || \"email\" }} " @@ -38,7 +39,7 @@ export class DynamicConfigParser { } private static configureVal( - value: any, + value: FixMe, event: ProcessorTransformationRequest | RouterTransformationRequestData, ) { if (value) { diff --git a/src/util/errorNotifier/bugsnag.js b/src/util/errorNotifier/bugsnag.js index 09b2cd9f718..ef01c587306 100644 --- a/src/util/errorNotifier/bugsnag.js +++ b/src/util/errorNotifier/bugsnag.js @@ -5,9 +5,6 @@ const { DataValidationError, } = require('rudder-transformer-cdk/build/error/index'); const stackTraceParser = require('stacktrace-parser'); -const { logger } = require('../../logger'); -const pkg = require('../../../package.json'); - const { BaseError, TransformationError, @@ -23,7 +20,10 @@ const { UnhandledStatusCodeError, UnauthorizedError, NetworkInstrumentationError, -} = require('../../v0/util/errorTypes'); +} = require('@rudderstack/integrations-lib'); +const { FilteredEventsError } = require('../../v0/util/errorTypes'); +const { logger } = require('../../logger'); +const pkg = require('../../../package.json'); const { BUGSNAG_API_KEY: apiKey, @@ -48,6 +48,7 @@ const errorTypesDenyList = [ NetworkInstrumentationError, CDKCustomError, DataValidationError, + FilteredEventsError, ]; const pathsDenyList = [ diff --git a/src/util/eventValidation.js b/src/util/eventValidation.js index 19d091d6fbf..68d895dcc5a 100644 --- a/src/util/eventValidation.js +++ b/src/util/eventValidation.js @@ -10,9 +10,10 @@ const hash = require('object-hash'); const logger = require('../logger'); const trackingPlan = require('./trackingPlan'); +const SECONDS_IN_DAY = 60 * 60 * 24 * 1; const eventSchemaCache = new NodeCache(); -const ajv19Cache = new NodeCache({ useClones: false }); -const ajv4Cache = new NodeCache({ useClones: false }); +const ajv19Cache = new NodeCache({ useClones: false, stdTTL: SECONDS_IN_DAY }); +const ajv4Cache = new NodeCache({ useClones: false, stdTTL: SECONDS_IN_DAY }); const { isEmptyObject } = require('../v0/util'); const defaultOptions = { @@ -52,7 +53,7 @@ ajv19.addMetaSchema(draft7MetaSchema); /** * @param {*} ajvOptions * @param {*} isDraft4 - * @returns {ajv} + * @returns {Ajv} * * Generates new ajv contructed from ajvoptions */ @@ -200,7 +201,7 @@ async function validate(event) { message: error.message, property: error.params.missingProperty, meta: { - instacePath: error.instancePath, + instancePath: error.instancePath, schemaPath: error.schemaPath, }, }; @@ -210,7 +211,7 @@ async function validate(event) { type: violationTypes.DatatypeMismatch, message: error.message, meta: { - instacePath: error.instancePath, + instancePath: error.instancePath, schemaPath: error.schemaPath, }, }; @@ -221,7 +222,7 @@ async function validate(event) { message: `${error.message} '${error.params.additionalProperty}'`, property: error.params.additionalProperty, meta: { - instacePath: error.instancePath, + instancePath: error.instancePath, schemaPath: error.schemaPath, }, }; @@ -231,7 +232,7 @@ async function validate(event) { type: violationTypes.UnknownViolation, message: error.message, meta: { - instacePath: error.instancePath, + instancePath: error.instancePath, schemaPath: error.schemaPath, }, }; diff --git a/src/util/fetch.js b/src/util/fetch.js index efadc3c884a..95856dd7fd3 100644 --- a/src/util/fetch.js +++ b/src/util/fetch.js @@ -1,6 +1,7 @@ +/* eslint-disable @typescript-eslint/return-await */ const fetch = require('node-fetch'); const HttpsProxyAgent = require('https-proxy-agent'); -const _ = require('lodash'); +const lodash = require('lodash'); const { RetryRequestError } = require('./utils'); const fetchWithProxy = async (url, options = {}) => { @@ -13,7 +14,7 @@ const fetchWithProxy = async (url, options = {}) => { instanceOptions.agent = new HttpsProxyAgent(process.env.HTTPS_PROXY); } - if (_.isEmpty(instanceOptions)) { + if (lodash.isEmpty(instanceOptions)) { return await fetch(url); } return await fetch(url, instanceOptions); diff --git a/src/util/myAxios.js b/src/util/myAxios.js index 9cce73dde18..d5a2ea6911e 100644 --- a/src/util/myAxios.js +++ b/src/util/myAxios.js @@ -1,81 +1,64 @@ -const axios = require('axios'); -const stats = require('./stats'); - -const fireLatencyStat = (startTime, statTags) => { - const destType = statTags.destType ? statTags.destType : ''; - const feature = statTags.feature ? statTags.feature : ''; - const endpointPath = statTags.endpointPath ? statTags.endpointPath : ''; - stats.timing('outgoing_request_latency', startTime, { - feature, - destType, - endpointPath, - }); -}; +const { + httpSend, + httpGET, + httpDELETE, + httpPOST, + httpPUT, + httpPATCH, +} = require('../adapters/network'); const send = async (options, statTags = {}) => { - const startTime = new Date(); - let response; - try { - response = await axios(options); - } finally { - fireLatencyStat(startTime, statTags); + const res = await httpSend(options, statTags); + if (res.success) { + return res.response; } - return response; + + throw res.response; }; const get = async (url, options, statTags = {}) => { - const startTime = new Date(); - let response; - try { - response = await axios.get(url, options); - } finally { - fireLatencyStat(startTime, statTags); + const res = await httpGET(url, options, statTags); + if (res.success) { + return res.response; } - return response; + + throw res.response; }; const del = async (url, options, statTags = {}) => { - const startTime = new Date(); - let response; - try { - response = await axios.delete(url, options); - } finally { - fireLatencyStat(startTime, statTags); + const res = await httpDELETE(url, options, statTags); + if (res.success) { + return res.response; } - return response; + + throw res.response; }; const post = async (url, data, options, statTags = {}) => { - const startTime = new Date(); - let response; - try { - response = await axios.post(url, data, options); - } finally { - fireLatencyStat(startTime, statTags); + const res = await httpPOST(url, data, options, statTags); + if (res.success) { + return res.response; } - return response; + + throw res.response; }; const put = async (url, data, options, statTags = {}) => { - const startTime = new Date(); - let response; - try { - response = await axios.put(url, data, options); - } finally { - fireLatencyStat(startTime, statTags); + const res = await httpPUT(url, data, options, statTags); + if (res.success) { + return res.response; } - return response; + + throw res.response; }; const patch = async (url, data, options, statTags = {}) => { - const startTime = new Date(); - let response; - try { - response = await axios.patch(url, data, options); - } finally { - fireLatencyStat(startTime, statTags); + const res = await httpPATCH(url, data, options, statTags); + if (res.success) { + return res.response; } - return response; + + throw res.response; }; module.exports = { diff --git a/src/util/openfaas/index.js b/src/util/openfaas/index.js index 1b3e531ceb4..878fa706d9f 100644 --- a/src/util/openfaas/index.js +++ b/src/util/openfaas/index.js @@ -1,6 +1,5 @@ const NodeCache = require('node-cache'); const { - getFunction, deleteFunction, deployFunction, invokeFunction, @@ -8,6 +7,9 @@ const { } = require('./faasApi'); const logger = require('../../logger'); const { RetryRequestError, RespStatusError } = require('../utils'); +const stats = require('../stats'); +const { getMetadata, getTransformationMetadata } = require('../../v0/util'); +const { HTTP_STATUS_CODES } = require('../../v0/util/constant'); const FAAS_BASE_IMG = process.env.FAAS_BASE_IMG || 'rudderlabs/openfaas-flask:main'; const FAAS_MAX_PODS_IN_TEXT = process.env.FAAS_MAX_PODS_IN_TEXT || '40'; @@ -20,8 +22,11 @@ const FAAS_MAX_INFLIGHT = process.env.FAAS_MAX_INFLIGHT || '4'; const FAAS_EXEC_TIMEOUT = process.env.FAAS_EXEC_TIMEOUT || '4s'; const FAAS_ENABLE_WATCHDOG_ENV_VARS = process.env.FAAS_ENABLE_WATCHDOG_ENV_VARS || 'true'; const CONFIG_BACKEND_URL = process.env.CONFIG_BACKEND_URL || 'https://api.rudderlabs.com'; +const GEOLOCATION_URL = process.env.GEOLOCATION_URL || ''; const FAAS_AST_VID = 'ast'; const FAAS_AST_FN_NAME = 'fn-ast'; +const CUSTOM_NETWORK_POLICY_WORKSPACE_IDS = process.env.CUSTOM_NETWORK_POLICY_WORKSPACE_IDS || ''; +const customNetworkPolicyWorkspaceIds = CUSTOM_NETWORK_POLICY_WORKSPACE_IDS.split(','); // Initialise node cache const functionListCache = new NodeCache(); @@ -110,7 +115,14 @@ const invalidateFnCache = () => { functionListCache.set(FUNC_LIST_KEY, []); }; -const deployFaasFunction = async (functionName, code, versionId, libraryVersionIDs, testMode) => { +const deployFaasFunction = async ( + functionName, + code, + versionId, + libraryVersionIDs, + testMode, + trMetadata = {}, +) => { try { logger.debug('[Faas] Deploying a faas function'); let envProcess = 'python index.py'; @@ -128,6 +140,25 @@ const deployFaasFunction = async (functionName, code, versionId, libraryVersionI envVars.max_inflight = FAAS_MAX_INFLIGHT; envVars.exec_timeout = FAAS_EXEC_TIMEOUT; } + if (GEOLOCATION_URL) { + envVars.geolocation_url = GEOLOCATION_URL; + } + // labels + const labels = { + 'openfaas-fn': 'true', + 'parent-component': 'openfaas', + 'com.openfaas.scale.max': FAAS_MAX_PODS_IN_TEXT, + 'com.openfaas.scale.min': FAAS_MIN_PODS_IN_TEXT, + transformationId: trMetadata.transformationId, + workspaceId: trMetadata.workspaceId, + }; + if ( + trMetadata.workspaceId && + customNetworkPolicyWorkspaceIds.includes(trMetadata.workspaceId) + ) { + labels['custom-network-policy'] = 'true'; + } + // TODO: investigate and add more required labels and annotations const payload = { service: functionName, @@ -135,12 +166,7 @@ const deployFaasFunction = async (functionName, code, versionId, libraryVersionI image: FAAS_BASE_IMG, envProcess, envVars, - labels: { - 'openfaas-fn': 'true', - 'parent-component': 'openfaas', - 'com.openfaas.scale.max': FAAS_MAX_PODS_IN_TEXT, - 'com.openfaas.scale.min': FAAS_MIN_PODS_IN_TEXT, - }, + labels, annotations: { 'prometheus.io.scrape': 'true', }, @@ -171,14 +197,28 @@ const deployFaasFunction = async (functionName, code, versionId, libraryVersionI } }; -async function setupFaasFunction(functionName, code, versionId, libraryVersionIDs, testMode) { +async function setupFaasFunction( + functionName, + code, + versionId, + libraryVersionIDs, + testMode, + trMetadata = {}, +) { try { if (!testMode && isFunctionDeployed(functionName)) { logger.debug(`[Faas] Function ${functionName} already deployed`); return; } // deploy faas function - await deployFaasFunction(functionName, code, versionId, libraryVersionIDs, testMode); + await deployFaasFunction( + functionName, + code, + versionId, + libraryVersionIDs, + testMode, + trMetadata, + ); // This api call is only used to check if function is spinned correctly await awaitFunctionReadiness(functionName); @@ -192,33 +232,33 @@ async function setupFaasFunction(functionName, code, versionId, libraryVersionID } const executeFaasFunction = async ( - functionName, + name, events, versionId, libraryVersionIDs, testMode, + trMetadata = {}, ) => { - try { - logger.debug('[Faas] Invoking faas function'); + logger.debug(`Executing faas function: ${name}`); - if (testMode) await awaitFunctionReadiness(functionName); + const startTime = new Date(); + let errorRaised; - const res = await invokeFunction(functionName, events); - logger.debug('[Faas] Invoked faas function'); - return res; + try { + if (testMode) await awaitFunctionReadiness(name); + return await invokeFunction(name, events); } catch (error) { - logger.error(`[Faas] Error while invoking ${functionName}: ${error.message}`); - if ( - error.statusCode === 404 && - error.message.includes(`error finding function ${functionName}`) - ) { - removeFunctionFromCache(functionName); - await setupFaasFunction(functionName, null, versionId, libraryVersionIDs, testMode); - throw new RetryRequestError(`${functionName} not found`); + logger.error(`Error while invoking ${name}: ${error.message}`); + errorRaised = error; + + if (error.statusCode === 404 && error.message.includes(`error finding function ${name}`)) { + removeFunctionFromCache(name); + await setupFaasFunction(name, null, versionId, libraryVersionIDs, testMode, trMetadata); + throw new RetryRequestError(`${name} not found`); } if (error.statusCode === 429) { - throw new RetryRequestError(`Rate limit exceeded for ${functionName}`); + throw new RetryRequestError(`Rate limit exceeded for ${name}`); } if (error.statusCode === 500 || error.statusCode === 503) { @@ -226,16 +266,30 @@ const executeFaasFunction = async ( } if (error.statusCode === 504) { - throw new RespStatusError('Timed out'); + throw new RespStatusError(`${name} timed out`, 504); } throw error; } finally { + // delete the function created, if it's called as part of testMode if (testMode) { - deleteFunction(functionName).catch((err) => { - logger.error(`[Faas] Error while deleting ${functionName}: ${err.message}`); - }); + deleteFunction(name).catch((err) => + logger.error(`[Faas] Error while deleting ${name}: ${err.message}`), + ); } + + // setup the tags for observability and then fire the stats + const tags = { + identifier: 'openfaas', + testMode: testMode, + errored: errorRaised ? true : false, + statusCode: errorRaised ? errorRaised.statusCode : HTTP_STATUS_CODES.OK, // default statuscode is 200OK + ...(events.length && events[0].metadata ? getMetadata(events[0].metadata) : {}), + ...(events.length && events[0].metadata ? getTransformationMetadata(events[0].metadata) : {}), + }; + + stats.counter('user_transform_function_input_events', events.length, tags); + stats.timing('user_transform_function_latency', startTime, tags); } }; diff --git a/src/util/prometheus.js b/src/util/prometheus.js index 20a9038066e..d7ba3b7c611 100644 --- a/src/util/prometheus.js +++ b/src/util/prometheus.js @@ -214,26 +214,32 @@ class Prometheus { ], }, { - name: 'hv_violation_type', - help: 'hv_violation_type', + name: 'tp_violation_type', + help: 'tp_violation_type', type: 'counter', labelNames: ['violationType', 'sourceType', 'destinationType', 'k8_namespace'], }, { - name: 'hv_propagated_events', - help: 'hv_propagated_events', + name: 'tp_propagated_events', + help: 'tp_propagated_events', type: 'counter', labelNames: ['sourceType', 'destinationType', 'k8_namespace'], }, { - name: 'hv_errors', - help: 'hv_errors', + name: 'tp_errors', + help: 'tp_errors', type: 'counter', - labelNames: ['sourceType', 'destinationType', 'k8_namespace'], + labelNames: [ + 'sourceType', + 'destinationType', + 'k8_namespace', + 'workspaceId', + 'trackingPlanId', + ], }, { - name: 'hv_events_count', - help: 'hv_events_count', + name: 'tp_events_count', + help: 'tp_events_count', type: 'counter', labelNames: ['sourceType', 'destinationType', 'k8_namespace'], }, @@ -243,17 +249,18 @@ class Prometheus { type: 'counter', labelNames: ['processSessions'], }, - { - name: 'user_transform_function_input_events', - help: 'user_transform_function_input_events', - type: 'counter', - labelNames: ['processSessions', 'sourceType', 'destinationType', 'k8_namespace'], - }, { name: 'user_transform_errors', help: 'user_transform_errors', type: 'counter', - labelNames: ['l1', 'l2'], + labelNames: [ + 'workspaceId', + 'transformationId', + 'status', + 'sourceType', + 'destinationType', + 'k8_namespace', + ], }, { name: 'c2', @@ -417,7 +424,7 @@ class Prometheus { name: 'marketo_bulk_upload_polling', help: 'marketo_bulk_upload_polling', type: 'counter', - labelNames: ['status', 'state'], + labelNames: ['status', 'state', 'requestTime'], }, { name: 'marketo_fetch_token', @@ -444,6 +451,12 @@ class Prometheus { type: 'counter', labelNames: ['writeKey', 'timestamp'], }, + { + name: 'regulation_worker_user_deletion_failure', + help: 'regulation_worker_user_deletion_failure', + type: 'counter', + labelNames: ['destType', 'module', 'implementation', 'feature'], + }, { name: 'shopify_server_side_identifier_event', help: 'shopify_server_side_identifier_event', @@ -480,6 +493,12 @@ class Prometheus { type: 'counter', labelNames: ['type', 'writeKey', 'source'], }, + { + name: 'shopify_anon_id_resolve', + help: 'shopify_anon_id_resolve', + type: 'counter', + labelNames: ['method', 'writeKey', 'shopifyTopic'], + }, { name: 'shopify_redis_calls', help: 'shopify_redis_calls', @@ -492,20 +511,6 @@ class Prometheus { type: 'counter', labelNames: ['writeKey', 'source'], }, - { - name: 'events_to_process', - help: 'events_to_process', - type: 'counter', - labelNames: [ - 'transformerVersionId', - 'language', - 'identifier', - 'testMode', - 'sourceType', - 'destinationType', - 'k8_namespace', - ], - }, { name: 'get_transformation_code', help: 'get_transformation_code', @@ -524,6 +529,12 @@ class Prometheus { type: 'counter', labelNames: ['writeKey', 'source', 'shopifyTopic'], }, + { + name: 'outgoing_request_count', + help: 'Outgoing HTTP requests count', + type: 'counter', + labelNames: ['feature', 'destType', 'endpointPath', 'success', 'statusCode'], + }, // Gauges { @@ -538,6 +549,24 @@ class Prometheus { type: 'gauge', labelNames: ['destType', 'feature'], }, + { + name: 'braze_batch_attributes_pack_size', + help: 'braze_batch_attributes_pack_size', + type: 'gauge', + labelNames: ['destination_id'], + }, + { + name: 'braze_batch_events_pack_size', + help: 'braze_batch_events_pack_size', + type: 'gauge', + labelNames: ['destination_id'], + }, + { + name: 'braze_batch_purchase_pack_size', + help: 'braze_batch_purchase_pack_size', + type: 'gauge', + labelNames: ['destination_id'], + }, // Histograms { @@ -553,16 +582,22 @@ class Prometheus { labelNames: ['method', 'route', 'code'], }, { - name: 'hv_request_size', - help: 'hv_request_size', + name: 'tp_request_size', + help: 'tp_request_size', type: 'histogram', labelNames: ['sourceType', 'destinationType', 'k8_namespace'], }, { - name: 'hv_request_latency', - help: 'hv_request_latency', + name: 'tp_request_latency', + help: 'tp_request_latency', type: 'histogram', - labelNames: ['sourceType', 'destinationType', 'k8_namespace'], + labelNames: [ + 'sourceType', + 'destinationType', + 'k8_namespace', + 'workspaceId', + 'trackingPlanId', + ], }, { name: 'cdk_events_latency', @@ -571,11 +606,17 @@ class Prometheus { labelNames: ['destination', 'sourceType', 'destinationType', 'k8_namespace'], }, { - name: 'hv_event_latency', - help: 'hv_event_latency', + name: 'tp_event_latency', + help: 'tp_event_latency', type: 'histogram', labelNames: ['sourceType', 'destinationType', 'k8_namespace'], }, + { + name: 'regulation_worker_requests_dest_latency', + help: 'regulation_worker_requests_dest_latency', + type: 'histogram', + labelNames: ['feature', 'implementation', 'destType'], + }, { name: 'dest_transform_request_latency', help: 'dest_transform_request_latency', @@ -593,15 +634,9 @@ class Prometheus { name: 'user_transform_request_latency', help: 'user_transform_request_latency', type: 'histogram', - labelNames: ['processSessions'], - }, - { - name: 'user_transform_function_latency', - help: 'user_transform_function_latency', - type: 'histogram', labelNames: [ - 'transformationVersionId', - 'processSessions', + 'workspaceId', + 'transformationId', 'sourceType', 'destinationType', 'k8_namespace', @@ -631,21 +666,6 @@ class Prometheus { type: 'histogram', labelNames: ['transformerVersionId', 'language', 'identifier', 'publish', 'testMode'], }, - { - name: 'run_time', - help: 'run_time', - type: 'histogram', - labelNames: [ - 'transformerVersionId', - 'language', - 'identifier', - 'publish', - 'testMode', - 'sourceType', - 'destinationType', - 'k8_namespace', - ], - }, { name: 'get_tracking_plan', help: 'get_tracking_plan', type: 'histogram', labelNames: [] }, { name: 'createivm_duration', help: 'createivm_duration', type: 'histogram', labelNames: [] }, { @@ -740,6 +760,12 @@ class Prometheus { type: 'histogram', labelNames: [], }, + { + name: 'braze_partial_failure', + help: 'braze_partial_failure', + type: 'counter', + labelNames: [], + }, { name: 'braze_deduped_users_count', help: 'braze deduped users count', @@ -764,6 +790,18 @@ class Prometheus { type: 'counter', labelNames: ['http_status', 'destination_id'], }, + { + name: 'marketo_bulk_upload_upload_file_succJobs', + help: 'marketo_bulk_upload_upload_file_succJobs', + type: 'counter', + labelNames: [], + }, + { + name: 'marketo_bulk_upload_upload_file_unsuccJobs', + help: 'marketo_bulk_upload_upload_file_unsuccJobs', + type: 'counter', + labelNames: [], + }, { name: 'braze_lookup_time', help: 'braze look-up time', @@ -849,6 +887,74 @@ class Prometheus { labelNames: ['processSessions'], buckets: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 150, 200], }, + { + name: 'marketo_bulk_upload_create_header_time', + help: 'marketo_bulk_upload_create_header_time', + type: 'histogram', + labelNames: [], + }, + { + name: 'marketo_bulk_upload_fetch_job_time', + help: 'marketo_bulk_upload_fetch_job_time', + type: 'histogram', + labelNames: [], + }, + { + name: 'marketo_bulk_upload_fetch_job_create_response_time', + help: 'marketo_bulk_upload_fetch_job_create_response_time', + type: 'histogram', + labelNames: [], + }, + { + name: 'marketo_bulk_upload_create_file_time', + help: 'marketo_bulk_upload_create_file_time', + type: 'histogram', + labelNames: [], + }, + { + name: 'marketo_bulk_upload_upload_file_time', + help: 'marketo_bulk_upload_upload_file_time', + type: 'histogram', + labelNames: [], + }, + { + name: 'marketo_bulk_upload_create_csvloop_time', + help: 'marketo_bulk_upload_create_csvloop_time', + type: 'histogram', + labelNames: [], + }, + { + name: 'user_transform_function_input_events', + help: 'user_transform_function_input_events', + type: 'counter', + labelNames: [ + 'identifier', + 'testMode', + 'sourceType', + 'destinationType', + 'k8_namespace', + 'errored', + 'statusCode', + 'transformationId', + 'workspaceId', + ], + }, + { + name: 'user_transform_function_latency', + help: 'user_transform_function_latency', + type: 'histogram', + labelNames: [ + 'identifier', + 'testMode', + 'sourceType', + 'destinationType', + 'k8_namespace', + 'errored', + 'statusCode', + 'transformationId', + 'workspaceId', + ], + }, ]; metrics.forEach((metric) => { diff --git a/src/util/redis/redisConnector.js b/src/util/redis/redisConnector.js index 5a61e683b67..84d578d3b36 100644 --- a/src/util/redis/redisConnector.js +++ b/src/util/redis/redisConnector.js @@ -1,5 +1,5 @@ const Redis = require('ioredis'); -const { RedisError } = require('../../v0/util/errorTypes'); +const { RedisError } = require('@rudderstack/integrations-lib'); const log = require('../../logger'); const stats = require('../stats'); @@ -32,7 +32,7 @@ const RedisDB = { log.error(`Redis is down at ${this.host}:${this.port}`); return false; // stop retrying }, - tls: {} + tls: {}, }); this.client.on('ready', () => { log.info(`Connected to redis at ${this.host}:${this.port}`); @@ -102,7 +102,7 @@ const RedisDB = { * @param {*} isValJson set to false if value is not a json object * */ - async setVal(key, value, expiryTimeInSec = 60 * 60) { + async setVal(key, value, expiryTimeInSec = process.env.REDIS_EXPIRY_TIME_IN_SEC || 3600) { try { await this.checkAndConnectConnection(); // check if redis is connected and if not, connect if (typeof value === 'object') { diff --git a/src/util/redis/testData/shopify_source.json b/src/util/redis/testData/shopify_source.json index a3188310724..53c60472988 100644 --- a/src/util/redis/testData/shopify_source.json +++ b/src/util/redis/testData/shopify_source.json @@ -5,9 +5,7 @@ "user_id": "rudder01", "id": "shopify_test_get_items_fail", "query_parameters": { - "topic": [ - "carts_update" - ] + "topic": ["carts_update"] }, "token": "shopify_test_get_items_fail", "email": "test@rudderstack.com", @@ -56,9 +54,7 @@ "sessionId": "session_id", "cartToken": "shopify_test_set_map_fail", "query_parameters": { - "writeKey": [ - "Shopify Write Key" - ] + "writeKey": ["Shopify Write Key"] }, "cart": { "token": "shopify_test_set_map_fail", @@ -80,9 +76,7 @@ "input": { "cart_token": "shopifyGetSessionId", "query_parameters": { - "topic": [ - "checkouts_delete" - ] + "topic": ["checkouts_delete"] }, "line_items": [], "note": null, @@ -121,9 +115,7 @@ "input": { "cart_token": "shopifyGetAnonymousId", "query_parameters": { - "topic": [ - "checkouts_delete" - ] + "topic": ["checkouts_delete"] }, "line_items": [], "note": null, @@ -162,9 +154,7 @@ "input": { "id": "shopify_test3", "query_parameters": { - "topic": [ - "carts_update" - ] + "topic": ["carts_update"] }, "token": "shopify_test3", "line_items": [], @@ -185,9 +175,7 @@ "input": { "id": "shopify_test3", "query_parameters": { - "topic": [ - "orders_delete" - ] + "topic": ["orders_delete"] }, "line_items": [], "note": null, @@ -225,9 +213,7 @@ "input": { "id": "shopify_test3", "query_parameters": { - "topic": [ - "checkouts_delete" - ] + "topic": ["checkouts_delete"] }, "line_items": [], "note": null, @@ -266,9 +252,7 @@ "user_id": "rudder01", "id": "shopify_test_cart", "query_parameters": { - "topic": [ - "carts_update" - ] + "topic": ["carts_update"] }, "token": "shopify_test_cart", "email": "test@rudderstack.com", @@ -292,7 +276,7 @@ "taxable": true, "title": "Shirt 2 - LARGE", "total_discount": "0.00", - "vendor": "testAnant", + "vendor": "testRudderlabs", "discounted_price_set": { "shop_money": { "amount": "30.0", @@ -394,7 +378,7 @@ "taxable": true, "title": "Shirt 2 - LARGE", "total_discount": "0.00", - "brand": "testAnant", + "brand": "testRudderlabs", "discounted_price_set": { "shop_money": { "amount": "30.0", @@ -464,9 +448,7 @@ ], "id": "shopify_test2", "query_parameters": { - "topic": [ - "orders_updated" - ] + "topic": ["orders_updated"] }, "shipping_address": "abc", "billing_address": "abc", @@ -540,9 +522,7 @@ "description": "Track Call -> fullfillments_create", "input": { "query_parameters": { - "topic": [ - "fulfillments_create" - ] + "topic": ["fulfillments_create"] }, "order_id": "random", "status": "success", @@ -561,7 +541,7 @@ "quantity": 1, "sku": "", "variant_title": null, - "vendor": "testAnant", + "vendor": "testRudderlabs", "fulfillment_service": "manual", "product_id": 8100634689811, "requires_shipping": true, @@ -650,7 +630,7 @@ "price": "9.54", "taxable": true, "total_discount": "0.00", - "brand": "testAnant", + "brand": "testRudderlabs", "fulfillable_quantity": 0, "fulfillment_service": "manual", "fulfillment_status": "fulfilled", @@ -699,9 +679,7 @@ "id": "shopify_test2", "user_id": "rudder01", "query_parameters": { - "topic": [ - "checkouts_update" - ] + "topic": ["checkouts_update"] }, "token": "shopify_test2", "cart_token": "shopify_test2", @@ -726,7 +704,7 @@ "taxable": true, "title": "Shirt 2 - LARGE", "total_discount": "0.00", - "vendor": "testAnant", + "vendor": "testRudderlabs", "discounted_price_set": { "shop_money": { "amount": "30.0", @@ -828,7 +806,7 @@ "token": "shopify_test2", "title": "Shirt 2 - LARGE", "total_discount": "0.00", - "brand": "testAnant", + "brand": "testRudderlabs", "discounted_price_set": { "shop_money": { "amount": "30.0", @@ -902,9 +880,7 @@ ], "id": "shopify_test2", "query_parameters": { - "topic": [ - "checkouts_update" - ] + "topic": ["checkouts_update"] }, "cart_token": null, "line_items": [ @@ -927,7 +903,7 @@ "taxable": true, "title": "Shirt 2 - LARGE", "total_discount": "0.00", - "vendor": "testAnant", + "vendor": "testRudderlabs", "discounted_price_set": { "shop_money": { "amount": "30.0", @@ -1033,7 +1009,7 @@ "taxable": true, "title": "Shirt 2 - LARGE", "total_discount": "0.00", - "brand": "testAnant", + "brand": "testRudderlabs", "discounted_price_set": { "shop_money": { "amount": "30.0", @@ -1097,9 +1073,7 @@ "input": { "id": "shopify_test2", "query_parameters": { - "topic": [ - "checkouts_update" - ] + "topic": ["checkouts_update"] }, "cart_token": null, "line_items": [ @@ -1122,7 +1096,7 @@ "taxable": true, "title": "Shirt 2 - LARGE", "total_discount": "0.00", - "vendor": "testAnant", + "vendor": "testRudderlabs", "discounted_price_set": { "shop_money": { "amount": "30.0", @@ -1218,7 +1192,7 @@ "taxable": true, "title": "Shirt 2 - LARGE", "total_discount": "0.00", - "brand": "testAnant", + "brand": "testRudderlabs", "discounted_price_set": { "shop_money": { "amount": "30.0", @@ -1282,9 +1256,7 @@ "input": { "id": "shopify_test4", "query_parameters": { - "topic": [ - "carts_update" - ] + "topic": ["carts_update"] }, "token": "shopify_test4", "line_items": [], @@ -1326,9 +1298,7 @@ "anonymousId": "b9993cc5-9e60-4e69-be0e-4e38c228314b", "cartToken": "shopify_test1", "query_parameters": { - "writeKey": [ - "Shopify Write Key" - ] + "writeKey": ["Shopify Write Key"] }, "cart": { "token": "token", @@ -1352,9 +1322,7 @@ "sessionId": "b9993cc5-9e60-4e69-be0e-4e38c228314b", "cartToken": "shopify_test1", "query_parameters": { - "writeKey": [ - "Shopify Write Key" - ] + "writeKey": ["Shopify Write Key"] }, "cart": { "token": "token", @@ -1376,9 +1344,7 @@ "input": { "id": "order_id", "query_parameters": { - "topic": [ - "checkouts_update" - ] + "topic": ["checkouts_update"] }, "token": "shopify_test2", "cart_token": "shopify_test_no_sessionId", @@ -1403,7 +1369,7 @@ "taxable": true, "title": "Shirt 2 - LARGE", "total_discount": "0.00", - "vendor": "testAnant", + "vendor": "testRudderlabs", "discounted_price_set": { "shop_money": { "amount": "30.0", @@ -1502,7 +1468,7 @@ "token": "shopify_test2", "title": "Shirt 2 - LARGE", "total_discount": "0.00", - "brand": "testAnant", + "brand": "testRudderlabs", "discounted_price_set": { "shop_money": { "amount": "30.0", @@ -1561,4 +1527,4 @@ "timestamp": "2023-02-10T12:16:07.251Z" } } -] \ No newline at end of file +] diff --git a/src/util/stats.js b/src/util/stats.js index de77362ac1e..e57ab85731e 100644 --- a/src/util/stats.js +++ b/src/util/stats.js @@ -11,14 +11,19 @@ function init() { return; } - if (statsClientType === 'statsd') { - statsClient = new statsd.Statsd(); - logger.info('created statsd client'); - } else if (statsClientType === 'prometheus') { - statsClient = new prometheus.Prometheus(); - logger.info('created prometheus client'); - } else { - logger.info("Invalid stats client type. Valid values are 'statsd' and 'prometheus'."); + switch (statsClientType) { + case 'statsd': + logger.info("setting up statsd client") + statsClient = new statsd.Statsd(); + break; + + case 'prometheus': + logger.info("setting up prometheus client") + statsClient = new prometheus.Prometheus(); + break; + + default: + logger.error(`invalid stats client type: ${statsClientType}, supported values are 'statsd' and 'prometheues'`) } } diff --git a/src/util/trackingPlan.js b/src/util/trackingPlan.js index 0c038203089..a77265a5b8d 100644 --- a/src/util/trackingPlan.js +++ b/src/util/trackingPlan.js @@ -4,7 +4,7 @@ const logger = require('../logger'); const { responseStatusHandler } = require('./utils'); const stats = require('./stats'); -const tpCache = new NodeCache(); +const tpCache = new NodeCache({ useClones: false }); const CONFIG_BACKEND_URL = process.env.CONFIG_BACKEND_URL || 'https://api.rudderlabs.com'; const TRACKING_PLAN_URL = `${CONFIG_BACKEND_URL}/workspaces`; diff --git a/src/util/types.ts b/src/util/types.ts new file mode 100644 index 00000000000..579c35579cb --- /dev/null +++ b/src/util/types.ts @@ -0,0 +1,25 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +export type FixMe = any; + +export type CatchErr = any; + +export interface Config { + cdkEnabled?: boolean; + cdkV2Enabled?: boolean; + comparisonTestEnabeld?: boolean; + comparisonService?: string; + camparisonTestThreshold?: number; +} + +export interface IDestDefinition { + id: string; + name: string; + displayName: string; + config: Config; + options: { + isBeta?: boolean; + hidden?: boolean; + } | null; + isPopular: boolean; + uiConfig: FixMe; +} diff --git a/src/util/utils.js b/src/util/utils.js index ee4b0f46be1..0ba6008368b 100644 --- a/src/util/utils.js +++ b/src/util/utils.js @@ -1,4 +1,4 @@ -/* eslint-disable max-classes-per-file */ +/* eslint-disable max-classes-per-file, @typescript-eslint/return-await */ const http = require('http'); const https = require('https'); const { Resolver } = require('dns').promises; @@ -10,17 +10,22 @@ const stats = require('./stats'); const resolver = new Resolver(); -const LOCALHOST_IP = '127.0.0.1'; -const LOCALHOST_URL = `http://localhost`; +const BLOCK_HOST_NAMES = process.env.BLOCK_HOST_NAMES || ''; +const BLOCK_HOST_NAMES_LIST = BLOCK_HOST_NAMES.split(','); +const LOCAL_HOST_NAMES_LIST = ['localhost', '127.0.0.1', '[::]', '[::1]']; +const LOCALHOST_OCTET = '127.'; const RECORD_TYPE_A = 4; // ipv4 const staticLookup = (transformerVersionId) => async (hostname, _, cb) => { let ips; const resolveStartTime = new Date(); try { - ips = await resolver.resolve(hostname); + ips = await resolver.resolve4(hostname); } catch (error) { - stats.timing('fetch_dns_resolve_time', resolveStartTime, { transformerVersionId, error: 'true' }); + stats.timing('fetch_dns_resolve_time', resolveStartTime, { + transformerVersionId, + error: 'true', + }); cb(null, `unable to resolve IP address for ${hostname}`, RECORD_TYPE_A); return; } @@ -31,9 +36,10 @@ const staticLookup = (transformerVersionId) => async (hostname, _, cb) => { return; } + // eslint-disable-next-line no-restricted-syntax for (const ip of ips) { - if (ip.includes(LOCALHOST_IP)) { - cb(null, `cannot use ${LOCALHOST_IP} as IP address`, RECORD_TYPE_A); + if (ip.startsWith(LOCALHOST_OCTET)) { + cb(null, `cannot use ${ip} as IP address`, RECORD_TYPE_A); return; } } @@ -47,8 +53,17 @@ const httpAgentWithDnsLookup = (scheme, transformerVersionId) => { }; const blockLocalhostRequests = (url) => { - if (url.includes(LOCALHOST_URL) || url.includes(LOCALHOST_IP)) { - throw new Error('localhost requests are not allowed'); + try { + const parseUrl = new URL(url); + const { hostname } = parseUrl; + if (LOCAL_HOST_NAMES_LIST.includes(hostname) || hostname.startsWith(LOCALHOST_OCTET)) { + throw new Error('localhost requests are not allowed'); + } + if (BLOCK_HOST_NAMES_LIST.includes(hostname)) { + throw new Error('blocked host requests are not allowed'); + } + } catch (error) { + throw new Error(`invalid url, ${error.message}`); } }; @@ -163,14 +178,14 @@ const extractStackTraceUptoLastSubstringMatch = (trace, stringLiterals) => { const traceLines = trace.split('\n'); let lastRelevantIndex = 0; - for(let i = traceLines.length - 1; i >= 0; i -= 1) { - if (stringLiterals.some(str => traceLines[i].includes(str))) { + for (let i = traceLines.length - 1; i >= 0; i -= 1) { + if (stringLiterals.some((str) => traceLines[i].includes(str))) { lastRelevantIndex = i; break; } } - return traceLines.slice(0, lastRelevantIndex + 1).join("\n"); + return traceLines.slice(0, lastRelevantIndex + 1).join('\n'); }; module.exports = { diff --git a/src/v0/destinations/active_campaign/transform.js b/src/v0/destinations/active_campaign/transform.js index f995254730d..70caf47ea8a 100644 --- a/src/v0/destinations/active_campaign/transform.js +++ b/src/v0/destinations/active_campaign/transform.js @@ -1,6 +1,7 @@ /* eslint-disable array-callback-return */ /* eslint-disable no-empty */ const get = require('get-value'); +const { InstrumentationError, TransformationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { CONFIG_CATEGORIES, MAPPING_CONFIG, getHeader } = require('./config'); const { @@ -12,13 +13,6 @@ const { } = require('../../util'); const { errorHandler } = require('./util'); const { httpGET, httpPOST } = require('../../../adapters/network'); -const { - InstrumentationError, - TransformationError, - NetworkError, -} = require('../../util/errorTypes'); -const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); -const tags = require('../../util/tags'); const TOTAL_RECORDS_KEY = 'response.data.meta.total'; const EVENT_DATA_KEY = 'properties.eventData'; @@ -68,18 +62,11 @@ const syncContact = async (contactPayload, category, destination) => { feature: 'transformation', }); if (res.success === false) { - errorHandler(res.response, 'Failed to create new contact'); + errorHandler(res, 'Failed to create new contact'); } const createdContact = get(res, 'response.data.contact'); // null safe if (!createdContact) { - throw new NetworkError( - 'Unable to Create Contact', - res.response?.status, - { - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(res.response?.status), - }, - res.response, - ); + errorHandler(res, 'Failed to create new contact'); } return createdContact.id; }; @@ -111,7 +98,7 @@ const customTagProcessor = async (message, category, destination, contactId) => feature: 'transformation', }); if (res.success === false) { - errorHandler(res.response, 'Failed to fetch already created tags'); + errorHandler(res, 'Failed to fetch already created tags'); } const storedTags = {}; @@ -130,7 +117,9 @@ const customTagProcessor = async (message, category, destination, contactId) => if (parseInt(get(res, TOTAL_RECORDS_KEY), 10) > 100) { const limit = Math.floor(parseInt(get(res, TOTAL_RECORDS_KEY), 10) / 100); for (let i = 0; i < limit; i += 1) { - endpoint = `${destination.Config.apiUrl}${category.tagEndPoint}?limit=100&offset=${100 * (i + 1)}`; + endpoint = `${destination.Config.apiUrl}${category.tagEndPoint}?limit=100&offset=${ + 100 * (i + 1) + }`; requestOptions = { headers: getHeader(destination), }; @@ -180,7 +169,7 @@ const customTagProcessor = async (message, category, destination, contactId) => feature: 'transformation', }); if (res.success === false) { - errorHandler(res.response, 'Failed to create new tag'); + errorHandler(res, 'Failed to create new tag'); // For each tags successfully created the response id is pushed to tagIds } if (res.response.status === 201) tagIds.push(res.response.data.tag.id); @@ -212,7 +201,7 @@ const customTagProcessor = async (message, category, destination, contactId) => ); responsesArr.forEach((respItem) => { if (respItem.success === false) - errorHandler(respItem.response, 'Failed to merge created contact with created tags'); + errorHandler(respItem, 'Failed to merge created contact with created tags'); }); }; @@ -230,7 +219,7 @@ const customFieldProcessor = async (message, category, destination) => { // Step - 2 // Get the existing field data from dest and store it in responseStaging // Ref - https://developers.activecampaign.com/reference/retrieve-fields - let endpoint = `${destination.Config.apiUrl}${`${category.fieldEndPoint}?limit=100`}`; + let endpoint = `${destination.Config.apiUrl}${category.fieldEndPoint}?limit=100`; const requestOptions = { headers: { 'Api-Token': destination.Config.apiKey, @@ -241,7 +230,7 @@ const customFieldProcessor = async (message, category, destination) => { feature: 'transformation', }); if (res.success === false) { - errorHandler(res.response, 'Failed to get existing field data'); + errorHandler(res, 'Failed to get existing field data'); } responseStaging.push(res.response.status === 200 ? res.response.data.fields : []); @@ -249,7 +238,9 @@ const customFieldProcessor = async (message, category, destination) => { const limit = Math.floor(parseInt(get(res, TOTAL_RECORDS_KEY), 10) / 100); if (parseInt(get(res, TOTAL_RECORDS_KEY), 10) > 100) { for (let i = 0; i < limit; i += 1) { - endpoint = `${destination.Config.apiUrl}${category.fieldEndPoint}?limit=100&offset=${100 * (i + 1)}`; + endpoint = `${destination.Config.apiUrl}${category.fieldEndPoint}?limit=100&offset=${ + 100 * (i + 1) + }`; const requestOpt = { headers: { 'Api-Token': destination.Config.apiKey, @@ -266,7 +257,7 @@ const customFieldProcessor = async (message, category, destination) => { if (resp.success === true && resp.response.status === 200) { responseStaging.push(resp.response.data.fields); } else { - errorHandler(resp.response, 'Failed to get existing field data'); + errorHandler(resp, 'Failed to get existing field data'); } }); } @@ -283,7 +274,7 @@ const customFieldProcessor = async (message, category, destination) => { const storedFields = Object.keys(fieldMap); const filteredFieldKeys = []; - fieldKeys.map((fieldKey) => { + fieldKeys.forEach((fieldKey) => { // If the field is present in fieldMap push it to filteredFieldKeys else ignore if (storedFields.includes(fieldKey)) { filteredFieldKeys.push(fieldKey); @@ -297,7 +288,7 @@ const customFieldProcessor = async (message, category, destination) => { // Creating a field array list conating field id and field value which will be merged to the contact // Ref: https://developers.activecampaign.com/reference/sync-a-contacts-data const fieldsArrValues = []; - filteredFieldKeys.map((key) => { + filteredFieldKeys.forEach((key) => { let fPayload; if (Array.isArray(fieldInfo[key])) { fPayload = '||'; @@ -327,7 +318,7 @@ const customListProcessor = async (message, category, destination, contactId) => // The list info is pushed into a list object array const listArr = []; if (Array.isArray(listInfo)) { - listInfo.map((list) => { + listInfo.forEach((list) => { listArr.push(list); }); } else { @@ -337,7 +328,8 @@ const customListProcessor = async (message, category, destination, contactId) => // status information // Ref: https://developers.activecampaign.com/reference/update-list-status-for-contact/ const promises = []; - listArr.map(async (li) => { + // eslint-disable-next-line no-restricted-syntax + for (const li of listArr) { if (li.status === 'subscribe' || li.status === 'unsubscribe') { const endpoint = `${destination.Config.apiUrl}${category.mergeListWithContactUrl}`; const requestData = { @@ -356,11 +348,11 @@ const customListProcessor = async (message, category, destination, contactId) => }); promises.push(res); } - }); + } const responses = await Promise.all(promises); responses.forEach((respItem) => { if (respItem.success === false) { - errorHandler(respItem.response, 'Failed to map created contact with the list'); + errorHandler(respItem, 'Failed to map created contact with the list'); } }); }; @@ -412,18 +404,11 @@ const screenRequestHandler = async (message, category, destination) => { feature: 'transformation', }); if (res.success === false) { - errorHandler(res.response, 'Failed to retrieve events'); + errorHandler(res, 'Failed to retrieve events'); } if (res?.response?.status !== 200) { - throw new NetworkError( - 'Unable to create event', - res.response?.status, - { - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(res.response?.status), - }, - res.response, - ); + errorHandler(res, 'Unable to create event'); } const storedEventsArr = res.response?.data?.eventTrackingEvents; @@ -446,18 +431,11 @@ const screenRequestHandler = async (message, category, destination) => { feature: 'transformation', }); if (res.success === false) { - errorHandler(res.response, 'Failed to create event'); + errorHandler(res, 'Failed to create event'); } if (res.response.status !== 201) { - throw new NetworkError( - 'Unable to create event', - res.response.status, - { - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(res.response.status), - }, - res?.response, - ); + errorHandler(res, 'Unable to create event'); } } // Previous operations successfull then @@ -490,18 +468,11 @@ const trackRequestHandler = async (message, category, destination) => { }); if (res.success === false) { - errorHandler(res.response, 'Failed to retrieve events'); + errorHandler(res, 'Failed to retrieve events'); } if (res.response.status !== 200) { - throw new NetworkError( - 'Unable to fetch events. Aborting', - res.response.status, - { - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(res.response.status), - }, - res?.response, - ); + errorHandler(res, 'Unable to fetch events. Aborting'); } const storedEventsArr = res.response?.data?.eventTrackingEvents; @@ -524,14 +495,7 @@ const trackRequestHandler = async (message, category, destination) => { feature: 'transformation', }); if (res.response?.status !== 201) { - throw new NetworkError( - 'Unable to create event. Aborting', - res.response.status, - { - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(res.response.status), - }, - res.response, - ); + errorHandler(res, 'Unable to create event. Aborting'); } } diff --git a/src/v0/destinations/active_campaign/util.js b/src/v0/destinations/active_campaign/util.js index c5086183367..40e15f95b3f 100644 --- a/src/v0/destinations/active_campaign/util.js +++ b/src/v0/destinations/active_campaign/util.js @@ -1,31 +1,24 @@ +const { NetworkError } = require('@rudderstack/integrations-lib'); const { - nodeSysErrorToStatus, getDynamicErrorType, + processAxiosResponse, } = require('../../../adapters/utils/networkUtils'); -const { NetworkError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); -const errorHandler = (err, message) => { - if (err.response) { - throw new NetworkError( - `${message} (${err.response?.statusText},${JSON.stringify(err.response?.data)})`, - err.status, - { - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(err.status), - }, - err, - ); - } else { - const httpError = nodeSysErrorToStatus(err.code); - throw new NetworkError( - `${message} ${httpError.message}`, - httpError.status, - { - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(httpError.status), - }, - err, - ); +const errorHandler = (httpCallError, message) => { + const { response, status } = processAxiosResponse(httpCallError); + let msg = message; + if (response) { + msg = `${message} (${httpCallError.response?.statusText},${JSON.stringify(response)})`; } + throw new NetworkError( + msg, + status, + { + [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), + }, + response, + ); }; const offsetLimitVarPath = 'response.data.meta.total'; diff --git a/src/v0/destinations/adj/transform.js b/src/v0/destinations/adj/transform.js index 1862012bb11..8248e731c93 100644 --- a/src/v0/destinations/adj/transform.js +++ b/src/v0/destinations/adj/transform.js @@ -1,4 +1,9 @@ const get = require('get-value'); +const { + InstrumentationError, + TransformationError, + ConfigurationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { CONFIG_CATEGORIES, MAPPING_CONFIG, baseEndpoint } = require('./config'); const { @@ -11,17 +16,17 @@ const { isAppleFamily, simpleProcessRouterDest, } = require('../../util'); -const { - InstrumentationError, - TransformationError, - ConfigurationError, -} = require('../../util/errorTypes'); const rejectParams = ['revenue', 'currency']; function responseBuilderSimple(message, category, destination) { const payload = constructPayload(message, MAPPING_CONFIG[category.name]); - const { appToken, customMappings, environment } = destination.Config; + const { appToken, customMappings, environment, partnerParamsKeys } = destination.Config; + if (!appToken) { + throw new ConfigurationError( + 'App Token is not present. Please configure your app token from config dashbaord', + ); + } const platform = get(message, 'context.device.type'); const id = get(message, 'context.device.id'); if (typeof platform !== 'string' || !platform || !id) { @@ -37,7 +42,7 @@ function responseBuilderSimple(message, category, destination) { throw new InstrumentationError('Device type not valid'); } if (payload.revenue) { - payload.currency = message.properties.currency || 'USD'; + payload.currency = message?.properties?.currency || 'USD'; } const hashMap = getHashFromArray(customMappings, 'from', 'to', false); if (payload && message.event && hashMap[message.event]) { @@ -46,11 +51,11 @@ function responseBuilderSimple(message, category, destination) { Accept: '*/*', }; - const partnerParamsKeysMap = getHashFromArray(destination?.Config?.partnerParamsKeys); + const partnerParamsKeysMap = getHashFromArray(partnerParamsKeys); if (partnerParamsKeysMap) { payload.partner_params = {}; Object.keys(partnerParamsKeysMap).forEach((key) => { - if (message.properties[key]) { + if (message?.properties?.[key]) { payload.partner_params[partnerParamsKeysMap[key]] = message.properties[key].toString(); } }); @@ -81,9 +86,8 @@ function responseBuilderSimple(message, category, destination) { // fail-safety for developer error if (!message.event || !hashMap[message.event]) { throw new ConfigurationError('No event token mapped for this event'); - } else { - throw new TransformationError('Payload could not be constructed'); } + throw new TransformationError('Payload could not be constructed'); } const processEvent = (message, destination) => { diff --git a/src/v0/destinations/adobe_analytics/config.js b/src/v0/destinations/adobe_analytics/config.js index 7a66b32a484..ed5852f5a57 100644 --- a/src/v0/destinations/adobe_analytics/config.js +++ b/src/v0/destinations/adobe_analytics/config.js @@ -44,4 +44,5 @@ module.exports = { ECOM_PRODUCT_EVENTS, commonConfig: MAPPING_CONFIG[CONFIG_CATEGORIES.COMMON.name], formatDestinationConfig, + DESTINATION: 'ADOBE_ANALYTICS', }; diff --git a/src/v0/destinations/adobe_analytics/networkHandler.js b/src/v0/destinations/adobe_analytics/networkHandler.js new file mode 100644 index 00000000000..0ec1fad2869 --- /dev/null +++ b/src/v0/destinations/adobe_analytics/networkHandler.js @@ -0,0 +1,55 @@ +const { InstrumentationError } = require('@rudderstack/integrations-lib'); +const { proxyRequest, prepareProxyRequest } = require('../../../adapters/network'); +const { processAxiosResponse } = require('../../../adapters/utils/networkUtils'); +const { DESTINATION } = require('./config'); + +/** + * Extract data inside different tags from an xml payload + * @param {*} xml + * @param {*} tagName + * @returns data inside the tagName + */ +function extractContent(xmlPayload, tagName) { + const pattern = new RegExp(`<${tagName}>(.*?)`); + const match = xmlPayload.match(pattern); + return match ? match[1] : null; +} + +const responseHandler = (destinationResponse, dest) => { + const message = `[${DESTINATION}] - Request Processed Successfully`; + const { response, status } = destinationResponse; + + // Extract values between different tags + const responseStatus = extractContent(response, 'status'); + const reason = extractContent(response, 'reason'); + + // if the status tag in XML contains FAILURE, we build and throw an explicit error + if (responseStatus === 'FAILURE') { + if (reason) { + throw new InstrumentationError( + `[${DESTINATION} Response Handler] Request failed for destination ${dest} : ${reason}`, + ); + } else { + throw new InstrumentationError( + `[${DESTINATION} Response Handler] Request failed for destination ${dest} with a general error`, + ); + } + } + + return { + status, + message, + destinationResponse, + }; +}; + +function networkHandler() { + this.responseHandler = responseHandler; + this.proxy = proxyRequest; + this.prepareProxy = prepareProxyRequest; + this.processAxiosResponse = processAxiosResponse; +} + +module.exports = { + networkHandler, +}; diff --git a/src/v0/destinations/adobe_analytics/transform.js b/src/v0/destinations/adobe_analytics/transform.js index 5daf11e62ef..b4281387249 100644 --- a/src/v0/destinations/adobe_analytics/transform.js +++ b/src/v0/destinations/adobe_analytics/transform.js @@ -1,5 +1,10 @@ const jsonxml = require('jsontoxml'); const get = require('get-value'); +const { + InstrumentationError, + TransformationError, + ConfigurationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { ECOM_PRODUCT_EVENTS, commonConfig, formatDestinationConfig } = require('./config'); const { @@ -11,13 +16,9 @@ const { isDefinedAndNotNull, isDefinedAndNotNullAndNotEmpty, getIntegrationsObj, + removeUndefinedAndNullValues, simpleProcessRouterDest, } = require('../../util'); -const { - InstrumentationError, - TransformationError, - ConfigurationError, -} = require('../../util/errorTypes'); const { handleContextData, @@ -36,7 +37,13 @@ const responseBuilderSimple = async (message, destinationConfig, basicPayload) = const { event, context, properties } = message; // set default value of properties.overridePageView to false if not provided properties.overridePageView = properties.overridePageView ?? false; - const { overrideEvars, overrideHiers, overrideLists, overrideCustomProperties } = properties; + const { + overrideEvars, + overrideHiers, + overrideLists, + overrideCustomProperties, + overridePageView, + } = properties; // handle contextData payload = handleContextData(payload, destinationConfig, message); @@ -60,7 +67,7 @@ const responseBuilderSimple = async (message, destinationConfig, basicPayload) = // handle link values // default linktype to 'o', linkName to event name, linkURL to ctx.page.url if not passed in integrations object const adobeIntegrationsObject = getIntegrationsObj(message, 'adobe_analytics'); - if (!properties?.overridePageView) { + if (!overridePageView) { payload.linkType = adobeIntegrationsObject?.linkType || 'o'; payload.linkName = adobeIntegrationsObject?.linkName || event; // setting linkname to page view for page calls @@ -69,6 +76,7 @@ const responseBuilderSimple = async (message, destinationConfig, basicPayload) = } payload.linkURL = adobeIntegrationsObject?.linkURL || context?.page?.url || 'No linkURL provided'; + payload.linkURL = encodeURI(payload.linkURL); } // handle hier if (overrideHiers) { @@ -86,11 +94,11 @@ const responseBuilderSimple = async (message, destinationConfig, basicPayload) = // handle pageName, pageUrl const contextPageUrl = context?.page?.url; - if (properties?.overridePageView) { + if (overridePageView) { const propertiesPageUrl = properties?.pageUrl; const pageUrl = contextPageUrl || propertiesPageUrl; if (isDefinedAndNotNullAndNotEmpty(pageUrl)) { - payload.pageUrl = pageUrl; + payload.pageUrl = encodeURI(pageUrl); } if (trackPageName) { // better handling possible here, both error and implementation wise @@ -337,11 +345,14 @@ const processTrackEvent = (message, adobeEventName, destinationConfig, extras = const handleTrack = (message, destinationConfig) => { const ORDER_ID_KEY = 'properties.order_id'; - const { event: rawEvent } = message; + const { event: rawEvent, properties } = message; + if (!rawEvent) { + throw new InstrumentationError('Event name is not present. Aborting message.'); + } let payload = null; // handle ecommerce events separately // generic events should go to the default - const event = rawEvent?.toLowerCase(); + const event = typeof rawEvent === 'string' ? rawEvent.toLowerCase() : rawEvent; switch (event) { case 'product viewed': case 'product list viewed': @@ -372,18 +383,14 @@ const handleTrack = (message, destinationConfig) => { payload = processTrackEvent(message, 'scOpen', destinationConfig); break; default: - if (destinationConfig.rudderEventsToAdobeEvents[event.toLowerCase()]) { - payload = processTrackEvent( - message, - destinationConfig.rudderEventsToAdobeEvents[event.toLowerCase()].trim(), - destinationConfig, - ); - } else if (message?.properties?.overrideEventName) { + if (destinationConfig.rudderEventsToAdobeEvents[event]) { payload = processTrackEvent( message, - message?.properties?.overrideEventName, + destinationConfig.rudderEventsToAdobeEvents[event]?.trim(), destinationConfig, ); + } else if (properties?.overrideEventName) { + payload = processTrackEvent(message, properties.overrideEventName, destinationConfig); } else { throw new ConfigurationError( 'The event is not a supported ECOM event or a mapped custom event. Aborting.', @@ -392,7 +399,7 @@ const handleTrack = (message, destinationConfig) => { break; } - return payload; + return removeUndefinedAndNullValues(payload); }; const process = async (event) => { diff --git a/src/v0/destinations/adobe_analytics/utils.js b/src/v0/destinations/adobe_analytics/utils.js index 55059884b1e..97dc6e90bbd 100644 --- a/src/v0/destinations/adobe_analytics/utils.js +++ b/src/v0/destinations/adobe_analytics/utils.js @@ -4,8 +4,8 @@ /* eslint-disable unicorn/no-for-loop */ /* eslint-disable no-restricted-syntax */ const get = require('get-value'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { isDefinedAndNotNull, getValueFromMessage } = require('../../util'); -const { InstrumentationError } = require('../../util/errorTypes'); const SOURCE_KEYS = ['properties', 'traits', 'context.traits', 'context']; @@ -75,6 +75,28 @@ function handleContextData(payload, destinationConfig, message) { return payload; } +/** + * This function is used for replacing '&', '<' and '>' with their respective HTML entities + * @param {*} inputString + * @returns string with HTML entities replaced + * + */ + +function escapeToHTML(inputString) { + if (typeof inputString !== 'string') { + return inputString; + } + return inputString.replace( + /[&<>]/g, + (match) => + ({ + '&': '&', + '<': '<', + '>': '>', + }[match]), + ); +} + /** * This function is used for populating the eVars and hVars in the payload * @param {*} destVarMapping @@ -90,16 +112,16 @@ function rudderPropToDestMap(destVarMapping, message, payload, destVarStrPrefix) let val = get(message, `properties.${key}`); if (isDefinedAndNotNull(val)) { const destVarKey = destVarStrPrefix + destVarMapping[key]; - mappedVar[destVarKey] = val; + mappedVar[destVarKey] = escapeToHTML(val); } else { SOURCE_KEYS.some((sourceKey) => { val = getMappingFieldValueFormMessage(message, sourceKey, key); if (isDefinedAndNotNull(val)) { - mappedVar[`${destVarStrPrefix}${[destVarMapping[key]]}`] = val; + mappedVar[`${destVarStrPrefix}${[destVarMapping[key]]}`] = escapeToHTML(val); } else { val = getValueByPath(message, key); if (isDefinedAndNotNull(val)) { - mappedVar[`${destVarStrPrefix}${[destVarMapping[key]]}`] = val; + mappedVar[`${destVarStrPrefix}${[destVarMapping[key]]}`] = escapeToHTML(val); } } }); @@ -147,13 +169,13 @@ function rudderPropToDestMapWithDelimitter(mapping, delimMapping, message, prefi `${prefix} mapping properties variable is neither a string nor an array`, ); } - + if (typeof val === 'string') { /* following regex is used to find the one or more commas separated/padded by white spaces. Example: val = 'r15,faze90R' , 'r1v, bvp, pol' */ - val = val.replace(/\s*,+\s*/g, delimMapping[key]); - // Above regex is good as for every comma with whitespace padding the no. of steps will increase by 4. + val = val.replace(/\s*,+\s*/g, delimMapping[key]); + // Above regex is good as for every comma with whitespace padding the no. of steps will increase by 4. } else { val = val.join(delimMapping[key]); } @@ -200,4 +222,5 @@ module.exports = { handleList, handleCustomProperties, stringifyValueAndJoinWithDelimiter, + escapeToHTML, }; diff --git a/src/v0/destinations/af/deleteUsers.js b/src/v0/destinations/af/deleteUsers.js index 7970d02c207..2d68549fcca 100644 --- a/src/v0/destinations/af/deleteUsers.js +++ b/src/v0/destinations/af/deleteUsers.js @@ -1,12 +1,16 @@ /* eslint-disable no-await-in-loop */ /* eslint-disable no-param-reassign */ +const { + ConfigurationError, + InstrumentationError, + NetworkError, +} = require('@rudderstack/integrations-lib'); const { httpPOST } = require('../../../adapters/network'); const { processAxiosResponse, getDynamicErrorType, } = require('../../../adapters/utils/networkUtils'); const { generateUUID, isHttpStatusSuccess } = require('../../util'); -const { ConfigurationError, InstrumentationError, NetworkError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); const { executeCommonValidations } = require('../../util/regulation-api'); diff --git a/src/v0/destinations/af/transform.js b/src/v0/destinations/af/transform.js index 858adce147d..4d7ed7e635c 100644 --- a/src/v0/destinations/af/transform.js +++ b/src/v0/destinations/af/transform.js @@ -1,6 +1,7 @@ const get = require('get-value'); const set = require('set-value'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { removeUndefinedValues, @@ -15,7 +16,6 @@ const { isDefinedAndNotNullAndNotEmpty, simpleProcessRouterDest, } = require('../../util'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); const { Event, ENDPOINT, ConfigCategory, mappingConfig, nameToEventMap } = require('./config'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/airship/transform.js b/src/v0/destinations/airship/transform.js index a390ec8060c..091c9b7f392 100644 --- a/src/v0/destinations/airship/transform.js +++ b/src/v0/destinations/airship/transform.js @@ -1,3 +1,4 @@ +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { @@ -22,7 +23,6 @@ const { isEmptyObject, simpleProcessRouterDest, } = require('../../util'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const DEFAULT_ACCEPT_HEADER = 'application/vnd.urbanairship+json; version=3'; diff --git a/src/v0/destinations/algolia/transform.js b/src/v0/destinations/algolia/transform.js index c8b9be28dd5..8e9cd57e8b3 100644 --- a/src/v0/destinations/algolia/transform.js +++ b/src/v0/destinations/algolia/transform.js @@ -1,10 +1,10 @@ const set = require('set-value'); -const { EventType } = require('../../../constants'); const { InstrumentationError, ConfigurationError, PlatformError, -} = require('../../util/errorTypes'); +} = require('@rudderstack/integrations-lib'); +const { EventType } = require('../../../constants'); const { getValueFromMessage, constructPayload, diff --git a/src/v0/destinations/algolia/util.js b/src/v0/destinations/algolia/util.js index 89048f0e435..eddb4dc16d6 100644 --- a/src/v0/destinations/algolia/util.js +++ b/src/v0/destinations/algolia/util.js @@ -1,5 +1,5 @@ +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const logger = require('../../../logger'); -const { InstrumentationError } = require('../../util/errorTypes'); const { EVENT_TYPES } = require('./config'); /** diff --git a/src/v0/destinations/am/config.js b/src/v0/destinations/am/config.js index 5e6fc06c272..3e51a671371 100644 --- a/src/v0/destinations/am/config.js +++ b/src/v0/destinations/am/config.js @@ -122,7 +122,8 @@ events.forEach((event) => { const DELETE_MAX_BATCH_SIZE = 100; const DESTINATION = 'amplitude'; const IDENTIFY_AM = '$identify'; - +const AMBatchSizeLimit = 20 * 1024 * 1024; // 20 MB +const AMBatchEventLimit = 500; // event size limit from sdk is 32KB => 15MB module.exports = { DESTINATION, Event, @@ -134,4 +135,6 @@ module.exports = { DELETE_MAX_BATCH_SIZE, batchEventsWithUserIdLengthLowerThanFive, IDENTIFY_AM, + AMBatchSizeLimit, + AMBatchEventLimit }; diff --git a/src/v0/destinations/am/deleteUsers.js b/src/v0/destinations/am/deleteUsers.js index c0402284b49..578c58fb5c4 100644 --- a/src/v0/destinations/am/deleteUsers.js +++ b/src/v0/destinations/am/deleteUsers.js @@ -1,4 +1,5 @@ const btoa = require('btoa'); +const { ConfigurationError, NetworkError } = require('@rudderstack/integrations-lib'); const { httpPOST } = require('../../../adapters/network'); const tags = require('../../util/tags'); const { @@ -6,7 +7,6 @@ const { getDynamicErrorType, } = require('../../../adapters/utils/networkUtils'); const { isHttpStatusSuccess } = require('../../util'); -const { ConfigurationError, NetworkError } = require('../../util/errorTypes'); const { executeCommonValidations } = require('../../util/regulation-api'); const { DELETE_MAX_BATCH_SIZE } = require('./config'); const { getUserIdBatches } = require('../../util/deleteUserUtils'); diff --git a/src/v0/destinations/am/transform.js b/src/v0/destinations/am/transform.js index e6ccf585df3..05a130d6e0b 100644 --- a/src/v0/destinations/am/transform.js +++ b/src/v0/destinations/am/transform.js @@ -1,8 +1,10 @@ /* eslint-disable no-lonely-if */ /* eslint-disable no-nested-ternary */ /* eslint-disable no-param-reassign */ +const cloneDeep = require('lodash/cloneDeep'); const get = require('get-value'); const set = require('set-value'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { EventType, SpecedTraits, @@ -26,6 +28,7 @@ const { isAppleFamily, isDefinedAndNotNullAndNotEmpty, simpleProcessRouterDest, + isValidInteger, } = require('../../util'); const { BASE_URL, @@ -34,17 +37,16 @@ const { mappingConfig, batchEventsWithUserIdLengthLowerThanFive, IDENTIFY_AM, + AMBatchSizeLimit, + AMBatchEventLimit, } = require('./config'); const tags = require('../../util/tags'); const AMUtils = require('./utils'); const logger = require('../../../logger'); -const { InstrumentationError } = require('../../util/errorTypes'); -const { JSON_MIME_TYPE } = require('../../util/constant'); -const AMBatchSizeLimit = 20 * 1024 * 1024; // 20 MB -const AMBatchEventLimit = 500; // event size limit from sdk is 32KB => 15MB +const { JSON_MIME_TYPE } = require('../../util/constant'); const EVENTS_KEY_PATH = 'body.JSON.events'; @@ -79,82 +81,96 @@ const aliasEndpoint = (destConfig) => { return retVal; }; -function handleSessionIdUnderRoot(message) { - const sessionId = get(message, 'session_id'); +const handleSessionIdUnderRoot = (sessionId) => { if (typeof sessionId === 'string') { - return sessionId.substr(sessionId.lastIndexOf(':') + 1, sessionId.length); + const extractedPart = sessionId.split(':').reverse(); + if (!isValidInteger(extractedPart[0])) return -1; + return Number(extractedPart[0]); } - return sessionId; -} + return Number(sessionId); +}; -function handleSessionIdUnderContext(message) { - let sessionId = get(message, 'context.sessionId'); - sessionId = Number(sessionId); - if (Number.isNaN(sessionId)) return -1; - return sessionId; -} +const handleSessionIdUnderContext = (sessionId) => { + if (!isValidInteger(sessionId)) return -1; + return Number(sessionId); +}; -function getSessionId(message) { - return get(message, 'session_id') - ? handleSessionIdUnderRoot(message) - : get(message, 'context.sessionId') - ? handleSessionIdUnderContext(message) - : -1; -} +const checkForJSONAndUserIdLengthAndDeviceId = (jsonBody, userId, deviceId) => + Object.keys(jsonBody).length === 0 || + (userId && + userId.length < 5 && + (!batchEventsWithUserIdLengthLowerThanFive || + (batchEventsWithUserIdLengthLowerThanFive && !deviceId))); +const getSessionId = (message) => { + let sessionId = -1; + const rootSessionId = get(message, 'session_id'); + if (rootSessionId) { + sessionId = handleSessionIdUnderRoot(rootSessionId); + if (sessionId !== -1) { + return sessionId; + } + } + const contextSessionId = get(message, 'context.sessionId'); + if (contextSessionId) { + sessionId = handleSessionIdUnderContext(contextSessionId); + } + return sessionId; +}; -function addMinIdlength() { - return { min_id_length: 1 }; -} +const addMinIdlength = () => ({ min_id_length: 1 }); -function setPriceQuanityInPayload(message, rawPayload) { +const setPriceQuanityInPayload = (message, rawPayload) => { let price; let quantity; - if (isDefinedAndNotNull(message.properties.price)) { + if (isDefinedAndNotNull(message.properties?.price)) { price = message.properties.price; - quantity = message.properties.quantity || 1; + quantity = message.properties?.quantity || 1; } else { - price = message.properties.revenue; + price = message.properties?.revenue; quantity = 1; } rawPayload.price = price; rawPayload.quantity = quantity; - rawPayload.revenue = message.properties.revenue; + rawPayload.revenue = message.properties?.revenue; return rawPayload; -} +}; -function createRevenuePayload(message, rawPayload) { - rawPayload.productId = message.properties.product_id; +const createRevenuePayload = (message, rawPayload) => { + rawPayload.productId = message.properties?.product_id; rawPayload.revenueType = - message.properties.revenueType || message.properties.revenue_type || 'Purchased'; + message.properties?.revenueType || message.properties?.revenue_type || 'Purchased'; rawPayload = setPriceQuanityInPayload(message, rawPayload); return rawPayload; -} +}; -function updateTraitsObject(property, traitsObject, actionKey) { +const updateTraitsObject = (property, traitsObject, actionKey) => { const propertyToUpdate = getValueFromMessage(traitsObject, property); if (traitsObject[actionKey] && property && typeof property === 'string') { traitsObject[actionKey][property] = propertyToUpdate; deleteObjectProperty(traitsObject, property); } return traitsObject; -} +}; -function prepareTraitsConfig(configPropertyTrait, actionKey, traitsObject) { +const prepareTraitsConfig = (configPropertyTrait, actionKey, traitsObject) => { traitsObject[actionKey] = {}; configPropertyTrait.forEach((traitsElement) => { - const property = traitsElement.traits; + const property = traitsElement?.traits; traitsObject = updateTraitsObject(property, traitsObject, actionKey); }); - if (Object.keys(traitsObject[actionKey]).length === 0) { + if ( + typeof traitsObject?.[actionKey] === 'object' && + Object.keys(traitsObject?.[actionKey] || {})?.length === 0 + ) { delete traitsObject[actionKey]; } return traitsObject; -} +}; -function handleTraits(messageTrait, destination) { +const handleTraits = (messageTrait, destination) => { let traitsObject = JSON.parse(JSON.stringify(messageTrait)); - if (destination.Config.traitsToIncrement) { + if (destination.Config?.traitsToIncrement) { const actionKey = '$add'; traitsObject = prepareTraitsConfig( destination.Config.traitsToIncrement, @@ -162,29 +178,41 @@ function handleTraits(messageTrait, destination) { traitsObject, ); } - if (destination.Config.traitsToSetOnce) { + if (destination.Config?.traitsToSetOnce) { const actionKey = '$setOnce'; traitsObject = prepareTraitsConfig(destination.Config.traitsToSetOnce, actionKey, traitsObject); } - if (destination.Config.traitsToAppend) { + if (destination.Config?.traitsToAppend) { const actionKey = '$append'; traitsObject = prepareTraitsConfig(destination.Config.traitsToAppend, actionKey, traitsObject); } - if (destination.Config.traitsToPrepend) { + if (destination.Config?.traitsToPrepend) { const actionKey = '$prepend'; traitsObject = prepareTraitsConfig(destination.Config.traitsToPrepend, actionKey, traitsObject); } return traitsObject; -} +}; + +const getScreenevTypeAndUpdatedProperties = (message, CATEGORY_KEY) => { + const name = message.name || message.event || get(message, CATEGORY_KEY); + + return { + eventType: `Viewed ${message.name || message.event || get(message, CATEGORY_KEY) || ''} Screen`, + updatedProperties: { + ...message.properties, + name, + }, + }; +}; -function handleMappingJsonObject( +const handleMappingJsonObject = ( mappingJson, sourceKey, validatePayload, payload, message, Config, -) { +) => { const { isFunc, funcName, outKey } = mappingJson[sourceKey]; if (isFunc) { if (validatePayload) { @@ -203,150 +231,242 @@ function handleMappingJsonObject( if (isDefinedAndNotNull(data)) { set(payload, outKey, data); delete message.traits[outKey]; - } else { - // get the destKey/outKey value from calling the util function - set(payload, outKey, AMUtils[funcName](message, sourceKey, Config)); + return; } + // get the destKey/outKey value from calling the util function + set(payload, outKey, AMUtils[funcName](message, sourceKey, Config)); } } -} +}; -function updateConfigProperty(message, payload, mappingJson, validatePayload, Config) { +const updateConfigProperty = (message, payload, mappingJson, validatePayload, Config) => { const sourceKeys = Object.keys(mappingJson); sourceKeys.forEach((sourceKey) => { // check if custom processing is required on the payload sourceKey ==> destKey if (typeof mappingJson[sourceKey] === 'object') { handleMappingJsonObject(mappingJson, sourceKey, validatePayload, payload, message, Config); - } else { - // For common config - if (validatePayload) { - // if data is present in traits assign - const messageData = get(message.traits, mappingJson[sourceKey]); - if (isDefinedAndNotNull(messageData)) { - set(payload, mappingJson[sourceKey], messageData); - } else { - const data = get(payload, mappingJson[sourceKey]); - if (!isDefinedAndNotNull(data)) { - const val = get(message, sourceKey); - if (val || val === false || val === 0) { - set(payload, mappingJson[sourceKey], val); - } + } else if (validatePayload) { + // if data is present in traits assign + const messageData = get(message.traits, mappingJson[sourceKey]); + if (isDefinedAndNotNull(messageData)) { + set(payload, mappingJson[sourceKey], messageData); + } else { + const data = get(payload, mappingJson[sourceKey]); + if (!isDefinedAndNotNull(data)) { + const val = get(message, sourceKey); + if (val || val === false || val === 0) { + set(payload, mappingJson[sourceKey], val); } } + } + } else { + const data = get(message.traits, mappingJson[sourceKey]); + if (isDefinedAndNotNull(data)) { + set(payload, mappingJson[sourceKey], data); } else { - const data = get(message.traits, mappingJson[sourceKey]); - if (isDefinedAndNotNull(data)) { - set(payload, mappingJson[sourceKey], data); - } else { - set(payload, mappingJson[sourceKey], get(message, sourceKey)); - } + set(payload, mappingJson[sourceKey], get(message, sourceKey)); } } }); -} +}; +const identifyBuilder = (message, destination, rawPayload) => { + // update payload user_properties from userProperties/traits/context.traits/nested traits of Rudder message + // traits like address converted to top level user properties (think we can skip this extra processing as AM supports nesting upto 40 levels) + let traits = getFieldValueFromMessage(message, 'traits'); + if (traits) { + traits = handleTraits(traits, destination); + } + rawPayload.user_properties = { + ...rawPayload.user_properties, + ...message.userProperties, + }; + if (traits) { + Object.keys(traits).forEach((trait) => { + if (SpecedTraits.includes(trait)) { + const mapping = TraitsMapping[trait]; + Object.keys(mapping).forEach((key) => { + const checkKey = get(rawPayload.user_properties, key); + // this is done only if we want to add default values under address to the user_properties + // these values are also sent to the destination at the top level. + if (!isDefinedAndNotNull(checkKey)) { + set(rawPayload, `user_properties.${key}`, get(traits, mapping[key])); + } + }); + } else { + set(rawPayload, `user_properties.${trait}`, get(traits, trait)); + } + }); + } + return rawPayload; +}; + +const getDefaultResponseData = (message, rawPayload, evType, groupInfo) => { + const traits = getFieldValueFromMessage(message, 'traits'); + set(rawPayload, 'event_properties', message.properties); + + if (traits) { + rawPayload.user_properties = { + ...rawPayload.user_properties, + ...traits, + }; + } -function getResponseData(evType, destination, rawPayload, message, groupInfo) { - let endpoint = defaultEndpoint(destination.Config); - let traits; + rawPayload.event_type = evType; + rawPayload.user_id = message.userId; + if (message.isRevenue) { + // making the revenue payload + rawPayload = createRevenuePayload(message, rawPayload); + // deleting the properties price, product_id, quantity and revenue from event_properties since it is already in root + if (rawPayload.event_properties) { + delete rawPayload.event_properties.price; + delete rawPayload.event_properties.product_id; + delete rawPayload.event_properties.quantity; + delete rawPayload.event_properties.revenue; + } + } + const groups = groupInfo && cloneDeep(groupInfo); + return { groups, rawPayload }; +}; +const getResponseData = (evType, destination, rawPayload, message, groupInfo) => { let groups; switch (evType) { case EventType.IDENTIFY: + // event_type for identify event is $identify + rawPayload.event_type = IDENTIFY_AM; + identifyBuilder(message, destination, rawPayload); + break; case EventType.GROUP: - endpoint = defaultEndpoint(destination.Config); // event_type for identify event is $identify rawPayload.event_type = IDENTIFY_AM; - - if (evType === EventType.IDENTIFY) { - // update payload user_properties from userProperties/traits/context.traits/nested traits of Rudder message - // traits like address converted to top level user properties (think we can skip this extra processing as AM supports nesting upto 40 levels) - traits = getFieldValueFromMessage(message, 'traits'); - if (traits) { - traits = handleTraits(traits, destination); - } - rawPayload.user_properties = { - ...rawPayload.user_properties, - ...message.userProperties, - }; - if (traits) { - Object.keys(traits).forEach((trait) => { - if (SpecedTraits.includes(trait)) { - const mapping = TraitsMapping[trait]; - Object.keys(mapping).forEach((key) => { - const checkKey = get(rawPayload.user_properties, key); - // this is done only if we want to add default values under address to the user_properties - // these values are also sent to the destination at the top level. - if (!isDefinedAndNotNull(checkKey)) { - set(rawPayload, `user_properties.${key}`, get(traits, mapping[key])); - } - }); - } else { - set(rawPayload, `user_properties.${trait}`, get(traits, trait)); - } - }); - } - } - - if ( - evType === EventType.GROUP && // for Rudder group call, update the user_properties with group info - // Refer (1.) - groupInfo && - groupInfo.group_type && - groupInfo.group_value - ) { + // for Rudder group call, update the user_properties with group info + if (groupInfo?.group_type && groupInfo?.group_value) { groups = {}; groups[groupInfo.group_type] = groupInfo.group_value; set(rawPayload, `user_properties.${[groupInfo.group_type]}`, groupInfo.group_value); } break; case EventType.ALIAS: - endpoint = aliasEndpoint(destination.Config); break; default: - traits = getFieldValueFromMessage(message, 'traits'); - set(rawPayload, 'event_properties', message.properties); - - if (traits) { - rawPayload.user_properties = { - ...rawPayload.user_properties, - ...traits, - }; - } + ({ groups, rawPayload } = getDefaultResponseData(message, rawPayload, evType, groupInfo)); + } + return { rawPayload, groups }; +}; - rawPayload.event_type = evType; - rawPayload.user_id = message.userId; - if (message.isRevenue) { - // making the revenue payload - rawPayload = createRevenuePayload(message, rawPayload); - // deleting the properties price, product_id, quantity and revenue from event_properties since it is already in root - if (rawPayload.event_properties) { - delete rawPayload.event_properties.price; - delete rawPayload.event_properties.product_id; - delete rawPayload.event_properties.quantity; - delete rawPayload.event_properties.revenue; - } - } - groups = groupInfo && Object.assign(groupInfo); +const buildPayloadForMobileChannel = (message, destination, payload) => { + if (!destination.Config.mapDeviceBrand) { + set(payload, 'device_brand', get(message, 'context.device.manufacturer')); } - return { endpoint, rawPayload, groups }; -} -function responseBuilderSimple( + const deviceId = get(message, 'context.device.id'); + const platform = get(message, 'context.device.type'); + const advertId = get(message, 'context.device.advertisingId'); + + if (platform) { + if (isAppleFamily(platform)) { + set(payload, 'idfa', advertId); + set(payload, 'idfv', deviceId); + } else if (platform.toLowerCase() === 'android') { + set(payload, 'adid', advertId); + } + } +}; +const nonAliasResponsebuilder = ( + message, + payload, + destination, + evType, + groupInfo, + rootElementName, +) => { + const respList = []; + const addOptions = 'options'; + const response = defaultRequestConfig(); + const groupResponse = defaultRequestConfig(); + const endpoint = defaultEndpoint(destination.Config); + if (message.channel === 'mobile') { + buildPayloadForMobileChannel(message, destination, payload); + } + payload.time = new Date(getFieldValueFromMessage(message, 'timestamp')).getTime(); + + // send user_id only when present, for anonymous users not required + if (message.userId && message.userId !== null) { + payload.user_id = message.userId; + } + payload.session_id = getSessionId(message); + + updateConfigProperty( + message, + payload, + mappingConfig[ConfigCategory.COMMON_CONFIG.name], + true, + destination.Config, + ); + + // we are not fixing the verson for android specifically any more because we've put a fix in iOS SDK + // for correct versionName + // ==================== + // fixVersion(payload, message); + + if (payload.user_properties) { + delete payload.user_properties.city; + delete payload.user_properties.country; + if (payload.user_properties.address) { + delete payload.user_properties.address.city; + delete payload.user_properties.address.country; + } + } + + if (!payload.user_id && !payload.device_id) { + logger.debug('Either of user ID or device ID fields must be specified'); + throw new InstrumentationError('Either of user ID or device ID fields must be specified'); + } + + payload.ip = getParsedIP(message); + payload.library = 'rudderstack'; + payload = removeUndefinedAndNullValues(payload); + response.endpoint = endpoint; + response.method = defaultPostRequestConfig.requestMethod; + response.headers = { + 'Content-Type': JSON_MIME_TYPE, + }; + response.userId = message.anonymousId; + response.body.JSON = { + api_key: destination.Config.apiKey, + [rootElementName]: [payload], + [addOptions]: addMinIdlength(), + }; + respList.push(response); + + // https://developers.amplitude.com/docs/group-identify-api + // Refer (1.), Rudder group call updates group propertiees. + if (evType === EventType.GROUP && groupInfo) { + groupResponse.method = defaultPostRequestConfig.requestMethod; + groupResponse.endpoint = groupEndpoint(destination.Config); + let groupPayload = cloneDeep(groupInfo); + groupResponse.userId = message.anonymousId; + groupPayload = removeUndefinedValues(groupPayload); + groupResponse.body.FORM = { + api_key: destination.Config.apiKey, + identification: [JSON.stringify(groupPayload)], + }; + respList.push(groupResponse); + } + return respList; +}; + +const responseBuilderSimple = ( groupInfo, rootElementName, message, evType, mappingJson, destination, -) { - let rawPayload = {}; - const addOptions = 'options'; +) => { + const rawPayload = {}; const respList = []; - const response = defaultRequestConfig(); - const groupResponse = defaultRequestConfig(); const aliasResponse = defaultRequestConfig(); - let endpoint = defaultEndpoint(destination.Config); - if ( EventType.IDENTIFY && // If mapped to destination, Add externalId to traits get(message, MappedToDestinationKey) @@ -375,7 +495,7 @@ function responseBuilderSimple( const oldKeys = Object.keys(campaign); // appends utm_ prefix to all the keys of campaign object. For example the `name` key in campaign object will be changed to `utm_name` oldKeys.forEach((oldKey) => { - Object.assign(campaign, { [`utm_${oldKey}`]: campaign[oldKey] }); + campaign[`utm_${oldKey}`] = campaign[oldKey]; delete campaign[oldKey]; }); @@ -390,14 +510,13 @@ function responseBuilderSimple( }; const respData = getResponseData(evType, destination, rawPayload, message, groupInfo); - const { groups } = respData; - ({ endpoint, rawPayload } = respData); + const { groups, rawPayload: updatedRawPayload } = respData; // for https://api.amplitude.com/2/httpapi , pass the "groups" key // refer (1.) for passing "groups" for Rudder group call // https://developers.amplitude.com/docs/http-api-v2#schemaevent - set(rawPayload, 'groups', groups); - let payload = removeUndefinedValues(rawPayload); + set(updatedRawPayload, 'groups', groups); + let payload = removeUndefinedValues(updatedRawPayload); let unmapUserId; if (evType === EventType.ALIAS) { // By default (1.), Alias config file populates user_id and global_user_id @@ -419,116 +538,65 @@ function responseBuilderSimple( }; respList.push(aliasResponse); } else { - if (message.channel === 'mobile') { - if (!destination.Config.mapDeviceBrand) { - set(payload, 'device_brand', get(message, 'context.device.manufacturer')); - } - - const deviceId = get(message, 'context.device.id'); - const platform = get(message, 'context.device.type'); - const advertId = get(message, 'context.device.advertisingId'); - - if (platform) { - if (isAppleFamily(platform)) { - set(payload, 'idfa', advertId); - set(payload, 'idfv', deviceId); - } else if (platform.toLowerCase() === 'android') { - set(payload, 'adid', advertId); - } - } - } - - payload.time = new Date(getFieldValueFromMessage(message, 'timestamp')).getTime(); - - // send user_id only when present, for anonymous users not required - if ( - message.userId && - message.userId !== '' && - message.userId !== 'null' && - message.userId !== null - ) { - payload.user_id = message.userId; - } - payload.session_id = getSessionId(message); - - updateConfigProperty( + return nonAliasResponsebuilder( message, payload, - mappingConfig[ConfigCategory.COMMON_CONFIG.name], - true, - destination.Config, + destination, + evType, + groupInfo, + rootElementName, ); + } + return respList; +}; - // we are not fixing the verson for android specifically any more because we've put a fix in iOS SDK - // for correct versionName - // ==================== - // fixVersion(payload, message); - - if (payload.user_properties) { - delete payload.user_properties.city; - delete payload.user_properties.country; - if (payload.user_properties.address) { - delete payload.user_properties.address.city; - delete payload.user_properties.address.country; - } - } - - if (!payload.user_id && !payload.device_id) { - logger.debug('Either of user ID or device ID fields must be specified'); - throw new InstrumentationError('Either of user ID or device ID fields must be specified'); - } - - payload.ip = getParsedIP(message); - payload.library = 'rudderstack'; - payload = removeUndefinedAndNullValues(payload); - response.endpoint = endpoint; - response.method = defaultPostRequestConfig.requestMethod; - response.headers = { - 'Content-Type': JSON_MIME_TYPE, - }; - response.userId = message.anonymousId; - response.body.JSON = { - api_key: destination.Config.apiKey, - [rootElementName]: [payload], - [addOptions]: addMinIdlength(), - }; - respList.push(response); - - // https://developers.amplitude.com/docs/group-identify-api - // Refer (1.), Rudder group call updates group propertiees. - if (evType === EventType.GROUP && groupInfo) { - groupResponse.method = defaultPostRequestConfig.requestMethod; - groupResponse.endpoint = groupEndpoint(destination.Config); - let groupPayload = Object.assign(groupInfo); - groupResponse.userId = message.anonymousId; - groupPayload = removeUndefinedValues(groupPayload); - groupResponse.body.FORM = { - api_key: destination.Config.apiKey, - identification: [JSON.stringify(groupPayload)], - }; - respList.push(groupResponse); +const getGroupInfo = (destination, groupInfo, groupTraits) => { + const { groupTypeTrait, groupValueTrait } = destination.Config; + if (groupTypeTrait && groupValueTrait) { + let updatedGroupInfo = { ...groupInfo }; + const groupTypeValue = get(groupTraits, groupTypeTrait); + const groupNameValue = get(groupTraits, groupValueTrait); + // since the property updates on group at https://api2.amplitude.com/groupidentify + // expects a string group name and value , so error out if the keys are not primitive + // Note: This different for groups object at https://api.amplitude.com/2/httpapi where the + // group value can be array of strings as well. + if ( + groupTypeValue && + typeof groupTypeValue === 'string' && + groupNameValue && + (typeof groupNameValue === 'string' || typeof groupNameValue === 'number') + ) { + updatedGroupInfo = {}; + updatedGroupInfo.group_type = groupTypeValue; + updatedGroupInfo.group_value = groupNameValue; + // passing the entire group traits without deleting the above keys + updatedGroupInfo.group_properties = groupTraits; + return updatedGroupInfo; } + logger.debug('Group call parameters are not valid'); + throw new InstrumentationError('Group call parameters are not valid'); } - - return respList; -} + return groupInfo; +}; // Generic process function which invokes specific handler functions depending on message type // and event type where applicable -function processSingleMessage(message, destination) { +const processSingleMessage = (message, destination) => { let payloadObjectName = 'events'; let evType; - let groupTraits; - let groupTypeTrait; - let groupValueTrait; // It is expected that Rudder alias. identify group calls won't have this set // To be used for track/page calls to associate the event to a group in AM let groupInfo = get(message, 'integrations.Amplitude.groups') || undefined; let category = ConfigCategory.DEFAULT; - + const { name, event, properties } = message; const messageType = message.type.toLowerCase(); const CATEGORY_KEY = 'properties.category'; - const { useUserDefinedPageEventName, userProvidedPageEventString } = destination.Config; + const { + useUserDefinedPageEventName, + userProvidedPageEventString, + useUserDefinedScreenEventName, + userProvidedScreenEventString, + } = destination.Config; switch (messageType) { case EventType.IDENTIFY: payloadObjectName = 'events'; // identify same as events @@ -545,27 +613,44 @@ function processSingleMessage(message, destination) { .trim(); evType = userProvidedPageEventString.trim() === '' - ? message.name + ? name : userProvidedPageEventString .trim() .replaceAll(/{{([^{}]+)}}/g, get(message, getMessagePath)); } else { - evType = `Viewed ${message.name || get(message, CATEGORY_KEY) || ''} Page`; + evType = `Viewed ${name || get(message, CATEGORY_KEY) || ''} Page`; } - message.properties = { - ...message.properties, - name: message.name || get(message, CATEGORY_KEY), + ...properties, + name: name || get(message, CATEGORY_KEY), }; category = ConfigCategory.PAGE; break; case EventType.SCREEN: - evType = `Viewed ${message.name || message.event || get(message, CATEGORY_KEY) || ''} Screen`; - message.properties = { - ...message.properties, - name: message.name || message.event || get(message, CATEGORY_KEY), - }; - category = ConfigCategory.SCREEN; + { + const { eventType, updatedProperties } = getScreenevTypeAndUpdatedProperties( + message, + CATEGORY_KEY, + ); + let customScreenEv = ''; + if (useUserDefinedScreenEventName) { + const getMessagePath = userProvidedScreenEventString + .substring( + userProvidedScreenEventString.indexOf('{') + 2, + userProvidedScreenEventString.indexOf('}'), + ) + .trim(); + customScreenEv = + userProvidedScreenEventString.trim() === '' + ? name + : userProvidedScreenEventString + .trim() + .replaceAll(/{{([^{}]+)}}/g, get(message, getMessagePath)); + } + evType = useUserDefinedScreenEventName ? customScreenEv : eventType; + message.properties = updatedProperties; + category = ConfigCategory.SCREEN; + } break; case EventType.GROUP: evType = 'group'; @@ -574,34 +659,13 @@ function processSingleMessage(message, destination) { // read from group traits from message // groupTraits => top level "traits" for JS SDK // groupTraits => "context.traits" for mobile SDKs - groupTraits = getFieldValueFromMessage(message, 'groupTraits'); + groupInfo = getGroupInfo( + destination, + groupInfo, + getFieldValueFromMessage(message, 'groupTraits'), + ); // read destination config related group settings // https://developers.amplitude.com/docs/group-identify-api - groupTypeTrait = get(destination, 'Config.groupTypeTrait'); - groupValueTrait = get(destination, 'Config.groupValueTrait'); - if (groupTypeTrait && groupValueTrait) { - const groupTypeValue = get(groupTraits, groupTypeTrait); - const groupNameValue = get(groupTraits, groupValueTrait); - // since the property updates on group at https://api2.amplitude.com/groupidentify - // expects a string group name and value , so error out if the keys are not primitive - // Note: This different for groups object at https://api.amplitude.com/2/httpapi where the - // group value can be array of strings as well. - if ( - groupTypeValue && - typeof groupTypeValue === 'string' && - groupNameValue && - (typeof groupNameValue === 'string' || typeof groupNameValue === 'number') - ) { - groupInfo = {}; - groupInfo.group_type = groupTypeValue; - groupInfo.group_value = groupNameValue; - // passing the entire group traits without deleting the above keys - groupInfo.group_properties = groupTraits; - } else { - logger.debug('Group call parameters are not valid'); - throw new InstrumentationError('Group call parameters are not valid'); - } - } break; case EventType.ALIAS: evType = 'alias'; @@ -611,21 +675,19 @@ function processSingleMessage(message, destination) { category = ConfigCategory.ALIAS; break; case EventType.TRACK: - evType = message.event; + evType = event; if (!isDefinedAndNotNullAndNotEmpty(evType)) { - throw new InstrumentationError('message type not defined'); + throw new InstrumentationError('Event not present. Please send event field'); } if ( - message.properties && - isDefinedAndNotNull(message.properties.revenue) && - isDefinedAndNotNull(message.properties.revenue_type) + properties && + isDefinedAndNotNull(properties?.revenue) && + isDefinedAndNotNull(properties?.revenue_type) ) { // if properties has revenue and revenue_type fields // consider the event as revenue event directly category = ConfigCategory.REVENUE; - break; } - break; default: logger.debug('could not determine type'); @@ -639,10 +701,10 @@ function processSingleMessage(message, destination) { mappingConfig[category.name], destination, ); -} +}; -function createProductPurchasedEvent(message, destination, product, counter) { - const eventClonePurchaseProduct = JSON.parse(JSON.stringify(message)); +const createProductPurchasedEvent = (message, destination, product, counter) => { + const eventClonePurchaseProduct = cloneDeep(message); eventClonePurchaseProduct.event = 'Product Purchased'; // In product purchased event event properties consists of the details of each product @@ -654,17 +716,17 @@ function createProductPurchasedEvent(message, destination, product, counter) { // need to modify the message id of each newly created event, as it is mapped to insert_id and that is used by Amplitude for dedup. eventClonePurchaseProduct.messageId = `${message.messageId}-${counter}`; return eventClonePurchaseProduct; -} +}; -function isProductArrayInPayload(message) { +const isProductArrayInPayload = (message) => { const isProductArray = - (message.properties.products && + (message.properties?.products && Array.isArray(message.properties.products) && message.properties.products.length > 0) === true; return isProductArray; -} +}; -function getProductPurchasedEvents(message, destination) { +const getProductPurchasedEvents = (message, destination) => { const productPurchasedEvents = []; if (isProductArrayInPayload(message)) { let counter = 0; @@ -682,16 +744,16 @@ function getProductPurchasedEvents(message, destination) { }); } return productPurchasedEvents; -} +}; -function trackRevenueEvent(message, destination) { +const trackRevenueEvent = (message, destination) => { let sendEvents = []; - const originalEvent = JSON.parse(JSON.stringify(message)); + const originalEvent = cloneDeep(message); if (destination.Config.trackProductsOnce === false) { if (isProductArrayInPayload(message)) { // when trackProductsOnce false no product array present - delete originalEvent.properties.products; + delete originalEvent.properties?.products; } else { // when product array is not there in payload, will track the revenue of the original event. originalEvent.isRevenue = true; @@ -719,16 +781,19 @@ function trackRevenueEvent(message, destination) { } } return sendEvents; -} +}; -function process(event) { +const process = (event) => { const respList = []; const { message, destination } = event; - const messageType = message.type.toLowerCase(); + const messageType = message.type?.toLowerCase(); const toSendEvents = []; + if (!destination?.Config?.apiKey) { + throw new ConfigurationError('No API Key is Found. Please Configure API key from dashbaord'); + } if (messageType === EventType.TRACK) { const { properties } = message; - if (properties && isDefinedAndNotNull(properties.revenue)) { + if (isDefinedAndNotNull(properties?.revenue)) { const revenueEvents = trackRevenueEvent(message, destination); revenueEvents.forEach((revenueEvent) => { toSendEvents.push(revenueEvent); @@ -744,9 +809,9 @@ function process(event) { respList.push(...processSingleMessage(sendEvent, destination)); }); return respList; -} +}; -function getBatchEvents(message, destination, metadata, batchEventResponse) { +const getBatchEvents = (message, destination, metadata, batchEventResponse) => { let batchComplete = false; const batchEventArray = get(batchEventResponse, 'batchedRequest.body.JSON.events') || []; const batchEventJobs = get(batchEventResponse, 'metadata') || []; @@ -760,18 +825,19 @@ function getBatchEvents(message, destination, metadata, batchEventResponse) { : incomingMessageEvent; const userId = incomingMessageEvent.user_id; - // delete the userId as it is less than 5 as AM is giving 400 - // that is not a documented behviour where it states if either deviceid or userid is present - // batch request won't return 400 - // { - // "code": 400, - // "events_with_invalid_id_lengths": { - // "user_id": [ - // 0 - // ] - // }, - // "error": "Invalid id length for user_id or device_id" - // } + /* delete the userId as it is less than 5 as AM is giving 400 + that is not a documented behviour where it states if either deviceid or userid is present + batch request won't return 400 + { + "code": 400, + "events_with_invalid_id_lengths": { + "user_id": [ + 0 + ] + }, + "error": "Invalid id length for user_id or device_id" + } + */ if (batchEventsWithUserIdLengthLowerThanFive && userId && userId.length < 5) { delete incomingMessageEvent.user_id; } @@ -782,10 +848,7 @@ function getBatchEvents(message, destination, metadata, batchEventResponse) { if (batchEventArray.length === 0) { if (JSON.stringify(incomingMessageJSON).length < AMBatchSizeLimit) { delete message.body.JSON.options; - batchEventResponse = Object.assign(batchEventResponse, { - batchedRequest: message, - }); - + batchEventResponse.batchedRequest = message; set(batchEventResponse, 'batchedRequest.endpoint', BATCH_ENDPOINT); batchEventResponse.metadata = [metadata]; } @@ -807,16 +870,16 @@ function getBatchEvents(message, destination, metadata, batchEventResponse) { } } return batchComplete; -} +}; -function batch(destEvents) { +const getFirstEvent = (messageEvent) => + messageEvent && Array.isArray(messageEvent) ? messageEvent[0] : messageEvent; +const batch = (destEvents) => { const respList = []; let batchEventResponse = defaultBatchRequestConfig(); let response; let isBatchComplete; let jsonBody; - let userId; - let deviceId; let messageEvent; let destinationObject; destEvents.forEach((ev) => { @@ -824,18 +887,11 @@ function batch(destEvents) { destinationObject = { ...destination }; jsonBody = get(message, 'body.JSON'); messageEvent = get(message, EVENTS_KEY_PATH); - userId = - messageEvent && Array.isArray(messageEvent) - ? messageEvent[0].user_id - : messageEvent - ? messageEvent.user_id - : undefined; - deviceId = - messageEvent && Array.isArray(messageEvent) - ? messageEvent[0].device_id - : messageEvent - ? messageEvent.device_id - : undefined; + const firstEvent = getFirstEvent(messageEvent); + + const userId = firstEvent?.user_id ?? undefined; + const deviceId = firstEvent?.device_id ?? undefined; + // this case shold not happen and should be filtered already // by the first pass of single event transformation if (messageEvent && !userId && !deviceId) { @@ -851,16 +907,13 @@ function batch(destEvents) { respList.push(errorResponse); return; } - // check if not a JSON body or (userId length < 5 && batchEventsWithUserIdLengthLowerThanFive is false) or - // (batchEventsWithUserIdLengthLowerThanFive is true and userId is less than 5 but deviceId not present) - // , send the event as is after batching - if ( - Object.keys(jsonBody).length === 0 || - (!batchEventsWithUserIdLengthLowerThanFive && userId && userId.length < 5) || - (batchEventsWithUserIdLengthLowerThanFive && userId && userId.length < 5 && !deviceId) - ) { + /* check if not a JSON body or (userId length < 5 && batchEventsWithUserIdLengthLowerThanFive is false) or + (batchEventsWithUserIdLengthLowerThanFive is true and userId is less than 5 but deviceId not present), + send the event as is after batching + */ + if (checkForJSONAndUserIdLengthAndDeviceId(jsonBody, userId, deviceId)) { response = defaultBatchRequestConfig(); - response = Object.assign(response, { batchedRequest: message }); + response.batchedRequest = message; response.metadata = [metadata]; response.destination = destinationObject; respList.push(response); @@ -868,8 +921,9 @@ function batch(destEvents) { // check if the event can be pushed to an existing batch isBatchComplete = getBatchEvents(message, destination, metadata, batchEventResponse); if (isBatchComplete) { - // if the batch is already complete, push it to response list - // and push the event to a new batch + /* if the batch is already complete, push it to response list + and push the event to a new batch + */ batchEventResponse.destination = destinationObject; respList.push({ ...batchEventResponse }); batchEventResponse = defaultBatchRequestConfig(); @@ -879,12 +933,12 @@ function batch(destEvents) { } }); // if there is some unfinished batch push it to response list - if (isBatchComplete !== undefined && isBatchComplete === false) { + if (isDefinedAndNotNull(isBatchComplete) && !isBatchComplete) { batchEventResponse.destination = destinationObject; respList.push(batchEventResponse); } return respList; -} +}; const processRouterDest = async (inputs, reqMetadata) => { const respList = await simpleProcessRouterDest(inputs, process, reqMetadata); diff --git a/src/v0/destinations/am/utils.js b/src/v0/destinations/am/utils.js index 33040c2146b..b9925c20d83 100644 --- a/src/v0/destinations/am/utils.js +++ b/src/v0/destinations/am/utils.js @@ -13,65 +13,65 @@ const uaParser = require('@amplitude/ua-parser-js'); const logger = require('../../../logger'); const { isDefinedAndNotNull } = require('../../util'); -function getInfoFromUA(path, payload, defaultVal) { +const getInfoFromUA = (path, payload, defaultVal) => { const ua = get(payload, 'context.userAgent'); const devInfo = ua ? uaParser(ua) : {}; return get(devInfo, path) || defaultVal; -} +}; -function getOSName(payload, sourceKey) { +const getOSName = (payload, sourceKey) => { const payloadVal = get(payload, sourceKey); if (payload.channel && payload.channel.toLowerCase() === 'web') { return getInfoFromUA('browser.name', payload, payloadVal); } return payloadVal; -} +}; -function getOSVersion(payload, sourceKey) { +const getOSVersion = (payload, sourceKey) => { const payloadVal = get(payload, sourceKey); if (payload.channel && payload.channel.toLowerCase() === 'web') { return getInfoFromUA('browser.version', payload, payloadVal); } return payloadVal; -} +}; -function getDeviceModel(payload, sourceKey) { +const getDeviceModel = (payload, sourceKey) => { const payloadVal = get(payload, sourceKey); if (payload.channel && payload.channel.toLowerCase() === 'web') { return getInfoFromUA('os.name', payload, payloadVal); } return payloadVal; -} +}; -function getDeviceManufacturer(payload, sourceKey) { +const getDeviceManufacturer = (payload, sourceKey) => { const payloadVal = get(payload, sourceKey); if (payload.channel && payload.channel.toLowerCase() === 'web') { return getInfoFromUA('device.vendor', payload, payloadVal); } return payloadVal; -} +}; -function getPlatform(payload, sourceKey) { +const getPlatform = (payload, sourceKey) => { const payloadVal = get(payload, sourceKey); return payload.channel ? payload.channel.toLowerCase() === 'web' ? 'Web' : payloadVal : payloadVal; -} +}; -function getBrand(payload, sourceKey, Config) { +const getBrand = (payload, sourceKey, Config) => { if (Config.mapDeviceBrand) { const payloadVal = get(payload, sourceKey); return payloadVal; } return undefined; -} +}; -function getEventId(payload, sourceKey) { +const getEventId = (payload, sourceKey) => { const eventId = get(payload, sourceKey); if (isDefinedAndNotNull(eventId)) { @@ -80,7 +80,7 @@ function getEventId(payload, sourceKey) { } else return eventId; } return undefined; -} +}; module.exports = { getOSName, diff --git a/src/v0/destinations/appcues/transform.js b/src/v0/destinations/appcues/transform.js index 095256cc4e7..57a54bce33e 100644 --- a/src/v0/destinations/appcues/transform.js +++ b/src/v0/destinations/appcues/transform.js @@ -1,4 +1,5 @@ /* eslint-disable no-underscore-dangle */ +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { @@ -9,7 +10,6 @@ const { simpleProcessRouterDest, } = require('../../util'); const { JSON_MIME_TYPE } = require('../../util/constant'); -const { InstrumentationError } = require('../../util/errorTypes'); const { ConfigCategory, mappingConfig, getEndpoint } = require('./config'); diff --git a/src/v0/destinations/attentive_tag/transform.js b/src/v0/destinations/attentive_tag/transform.js index 231beec1434..fa05eb6c212 100644 --- a/src/v0/destinations/attentive_tag/transform.js +++ b/src/v0/destinations/attentive_tag/transform.js @@ -1,4 +1,5 @@ const get = require('get-value'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { ConfigCategory, mappingConfig, BASE_URL } = require('./config'); const { @@ -18,7 +19,6 @@ const { getPropertiesKeyValidation, validateTimestamp, } = require('./util'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const responseBuilder = (payload, apiKey, endpoint) => { diff --git a/src/v0/destinations/attentive_tag/util.js b/src/v0/destinations/attentive_tag/util.js index 890f73cdc9f..c96d03028f2 100644 --- a/src/v0/destinations/attentive_tag/util.js +++ b/src/v0/destinations/attentive_tag/util.js @@ -1,13 +1,13 @@ /* eslint-disable no-restricted-syntax */ const get = require('get-value'); const moment = require('moment'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { constructPayload, isDefinedAndNotNull, getDestinationExternalID, isDefinedAndNotNullAndNotEmpty, } = require('../../util'); -const { InstrumentationError } = require('../../util/errorTypes'); const { mappingConfig, ConfigCategory } = require('./config'); /** diff --git a/src/v0/destinations/attribution/transform.js b/src/v0/destinations/attribution/transform.js index 712f3e5e5d2..fa42a6238a0 100644 --- a/src/v0/destinations/attribution/transform.js +++ b/src/v0/destinations/attribution/transform.js @@ -1,3 +1,4 @@ +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { batchEndpoint } = require('./config'); const { defaultPostRequestConfig, @@ -5,7 +6,6 @@ const { removeUndefinedAndNullValues, getFieldValueFromMessage, } = require('../../util'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); function responseBuilderSimple(payload, attributionConfig) { diff --git a/src/v0/destinations/autopilot/transform.js b/src/v0/destinations/autopilot/transform.js index e0fe9aa400e..e4a2c408af5 100644 --- a/src/v0/destinations/autopilot/transform.js +++ b/src/v0/destinations/autopilot/transform.js @@ -1,3 +1,4 @@ +const { InstrumentationError, TransformationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { CONFIG_CATEGORIES, MAPPING_CONFIG } = require('./config'); const { @@ -9,7 +10,6 @@ const { simpleProcessRouterDest, } = require('../../util'); -const { InstrumentationError, TransformationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const identifyFields = [ diff --git a/src/v0/destinations/awin/transform.js b/src/v0/destinations/awin/transform.js index f6070fccd5c..49a115c1ffe 100644 --- a/src/v0/destinations/awin/transform.js +++ b/src/v0/destinations/awin/transform.js @@ -1,8 +1,8 @@ +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { BASE_URL, ConfigCategory, mappingConfig } = require('./config'); const { defaultRequestConfig, constructPayload, simpleProcessRouterDest } = require('../../util'); const { getParams } = require('./utils'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); const responseBuilder = (message, { Config }) => { const { advertiserId, eventsToTrack } = Config; diff --git a/src/v0/destinations/azure_event_hub/transform.js b/src/v0/destinations/azure_event_hub/transform.js index 6200e32ce72..98180b55b42 100644 --- a/src/v0/destinations/azure_event_hub/transform.js +++ b/src/v0/destinations/azure_event_hub/transform.js @@ -1,6 +1,5 @@ const cloneDeep = require('lodash/cloneDeep'); const { getIntegrationsObj } = require('../../util'); -// const { InstrumentationError } = require("../../util/errorTypes"); function process(event) { const { message, destination } = event; diff --git a/src/v0/destinations/blueshift/transform.js b/src/v0/destinations/blueshift/transform.js index b79af327d25..cdfbfe32e14 100644 --- a/src/v0/destinations/blueshift/transform.js +++ b/src/v0/destinations/blueshift/transform.js @@ -1,3 +1,8 @@ +const { + TransformationError, + InstrumentationError, + ConfigurationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { constructPayload, @@ -10,11 +15,6 @@ const { simpleProcessRouterDest, } = require('../../util'); const { JSON_MIME_TYPE } = require('../../util/constant'); -const { - TransformationError, - InstrumentationError, - ConfigurationError, -} = require('../../util/errorTypes'); const { MAPPING_CONFIG, diff --git a/src/v0/destinations/bqstream/transform.js b/src/v0/destinations/bqstream/transform.js index 4db1856535c..598a97946d3 100644 --- a/src/v0/destinations/bqstream/transform.js +++ b/src/v0/destinations/bqstream/transform.js @@ -1,14 +1,16 @@ /* eslint-disable no-console */ -const _ = require('lodash'); +const lodash = require('lodash'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { defaultBatchRequestConfig, getSuccessRespEvents, checkInvalidRtTfEvents, handleRtTfSingleEventError, + groupEventsByType, } = require('../../util'); const { MAX_ROWS_PER_REQUEST, DESTINATION } = require('./config'); -const { InstrumentationError } = require('../../util/errorTypes'); +const { getRearrangedEvents } = require('./util'); const getInsertIdColValue = (properties, insertIdCol) => { if ( @@ -50,11 +52,11 @@ const process = (event) => { }; }; -const batchEvents = (eventsChunk) => { +const batchEachUserSuccessEvents = (eventsChunk) => { const batchedResponseList = []; // arrayChunks = [[e1,e2, ..batchSize], [e1,e2, ..batchSize], ...] - const arrayChunks = _.chunk(eventsChunk, MAX_ROWS_PER_REQUEST); + const arrayChunks = lodash.chunk(eventsChunk, MAX_ROWS_PER_REQUEST); // list of chunks [ [..], [..] ] arrayChunks.forEach((chunk) => { @@ -68,7 +70,7 @@ const batchEvents = (eventsChunk) => { chunk.forEach((ev) => { // Pixel code must be added above "batch": [..] batchResponseList.push(ev.message.properties); - metadata.push(ev.metadata); + metadata.push(ev.metadata[0]); }); batchEventResponse.batchedRequest = { @@ -97,26 +99,23 @@ const batchEvents = (eventsChunk) => { return batchedResponseList; }; -const processRouterDest = (inputs) => { - const errorRespEvents = checkInvalidRtTfEvents(inputs, DESTINATION); - if (errorRespEvents.length > 0) { - return errorRespEvents; - } - - const eventsChunk = []; // temporary variable to divide payload into chunks - const errorRespList = []; - - inputs.forEach((event) => { +const processEachTypedEventList = ( + typedEventList, + eachTypeSuccessEventList, + eachTypeErrorEventsList, +) => { + typedEventList.forEach((event) => { try { if (event.message.statusCode) { // already transformed event - eventsChunk.push(event); + eachTypeSuccessEventList.push(event); } else { // if not transformed - let response = process(event); - response = Array.isArray(response) ? response : [response]; - response.forEach((res) => { - eventsChunk.push({ + const response = process(event); + const transformedEvents = Array.isArray(response) ? response : [response]; + + transformedEvents.forEach((res) => { + eachTypeSuccessEventList.push({ message: res, metadata: event.metadata, destination: event.destination, @@ -124,16 +123,44 @@ const processRouterDest = (inputs) => { }); } } catch (error) { - const errRespEvent = handleRtTfSingleEventError(event, error, DESTINATION); - errorRespList.push(errRespEvent); + const eachUserErrorEvent = handleRtTfSingleEventError(event, error, DESTINATION); + eachTypeErrorEventsList.push(eachUserErrorEvent); } }); +}; - let batchedResponseList = []; - if (eventsChunk.length > 0) { - batchedResponseList = batchEvents(eventsChunk); +const processRouterDest = (inputs) => { + const errorRespEvents = checkInvalidRtTfEvents(inputs, DESTINATION); + if (errorRespEvents.length > 0) { + return errorRespEvents; } - return [...batchedResponseList, ...errorRespList]; + const finalResp = []; + + const batchedEvents = groupEventsByType(inputs); + + batchedEvents.forEach((typedEventList) => { + const eachTypeSuccessEventList = []; // list of events that are transformed successfully + const eachTypeErrorEventsList = []; // list of events that are errored out + processEachTypedEventList(typedEventList, eachTypeSuccessEventList, eachTypeErrorEventsList); + + const orderedEventsList = getRearrangedEvents( + eachTypeSuccessEventList, + eachTypeErrorEventsList, + ); + + orderedEventsList.forEach((eventList) => { + // no error event list will have more than one items in the list + if (eventList[0].error) { + finalResp.push([...eventList]); + } else { + // batch the successful events + const eachTypeBatchedResponse = batchEachUserSuccessEvents(eventList); + finalResp.push([...eachTypeBatchedResponse]); + } + }); + }); + + return finalResp.flat(); }; module.exports = { process, processRouterDest }; diff --git a/src/v0/destinations/bqstream/util.js b/src/v0/destinations/bqstream/util.js index cc3aba78b2e..4fa926e54e5 100644 --- a/src/v0/destinations/bqstream/util.js +++ b/src/v0/destinations/bqstream/util.js @@ -1,146 +1,84 @@ /* eslint-disable no-param-reassign */ -const getValue = require('get-value'); -const { - getDynamicErrorType, - processAxiosResponse, -} = require('../../../adapters/utils/networkUtils'); -const { DISABLE_DEST, REFRESH_TOKEN } = require('../../../adapters/networkhandler/authConstants'); -const { isHttpStatusSuccess } = require('../../util'); -const { proxyRequest } = require('../../../adapters/network'); -const { UnhandledStatusCodeError, NetworkError, AbortedError } = require('../../util/errorTypes'); -const tags = require('../../util/tags'); - -const DESTINATION_NAME = 'bqstream'; - -const trimBqStreamResponse = (response) => ({ - code: getValue(response, 'response.response.data.error.code'), // data.error.status which contains PERMISSION_DENIED - status: getValue(response, 'response.response.status'), - statusText: getValue(response, 'response.response.statusText'), - headers: getValue(response, 'response.response.headers'), - data: getValue(response, 'response.response.data'), // Incase of errors, this contains error data - success: getValue(response, 'suceess'), -}); +const { isDefinedAndNotNull } = require('../../util'); /** - * Obtains the Destination OAuth Error Category based on the error code obtained from destination + * Optimizes the error response by merging the metadata of the same error type and adding it to the result array. * - * - If an error code is such that the user will not be allowed inside the destination, - * such error codes fall under DISABLE_DESTINATION - * - If an error code is such that upon refresh we can get a new token which can be used to send event, - * such error codes fall under REFRESH_TOKEN category - * - If an error code doesn't fall under both categories, we can return an empty string - * @param {string} errorCategory - The error code obtained from the destination - * @returns Destination OAuth Error Category + * @param {Object} item - An object representing an error event with properties like `error`, `jobId`, and `metadata`. + * @param {Map} errorMap - A Map object to store the error events and their metadata. + * @param {Array} resultArray - An array to store the optimized error response. + * @returns {void} */ -const getDestAuthCategory = (errorCategory) => { - switch (errorCategory) { - case 'PERMISSION_DENIED': - return DISABLE_DEST; - case 'UNAUTHENTICATED': - return REFRESH_TOKEN; - default: - return ''; +const optimizeErrorResponse = (item, errorMap, resultArray) => { + const currentError = item.error; + if (errorMap.has(currentError)) { + // If the error already exists in the map, merge the metadata + const existingErrDetails = errorMap.get(currentError); + existingErrDetails.metadata.push(...item.metadata); + } else { + // Otherwise, add it to the map + errorMap.set(currentError, { ...item }); + resultArray.push([errorMap.get(currentError)]); } }; -const destToRudderStatusMap = { - 403: { - rateLimitExceeded: 429, - default: 400, - }, - 400: { - tableUnavailable: 500, - default: 400, - }, - 500: { default: 500 }, - 503: { default: 500 }, - 401: { default: 500 }, - 404: { default: 400 }, - 501: { default: 400 }, +const convertMetadataToArray = (eventList) => { + const processedEvents = eventList.map((event) => ({ + ...event, + metadata: Array.isArray(event.metadata) ? event.metadata : [event.metadata], + })); + return processedEvents; }; -const getStatusAndCategory = (dresponse, status) => { - const authErrorCategory = getDestAuthCategory(dresponse.error.status); - const reason = - dresponse.error.errors && - Array.isArray(dresponse.error.errors) && - dresponse.error.errors.length > 0 && - dresponse.error.errors[0].reason; +/** + * Formats a list of error events into a composite response. + * + * @param {Array} errorEvents - A list of error events, where each event can have an `error` property and a `metadata` array. + * @returns {Array} The formatted composite response, where each element is an array containing the error details. + */ +const formatCompositeResponse = (errorEvents) => { + const resultArray = []; + const errorMap = new Map(); - const trStatus = destToRudderStatusMap[status] - ? destToRudderStatusMap[status][reason] || destToRudderStatusMap[status].default - : 500; - return { status: trStatus, authErrorCategory }; + // eslint-disable-next-line no-restricted-syntax + for (const item of errorEvents) { + if (isDefinedAndNotNull(item.error)) { + optimizeErrorResponse(item, errorMap, resultArray); + } + } + return resultArray; }; /** - * This class actually handles the response for BigQuery Stream API - * It can also be used for any Google related API but an API related handling has to be done separately - * - * Here we are only trying to handle OAuth related error(s) - * Any destination specific error handling has to be done in their own way - * - * Reference doc for OAuth Errors - * 1. https://cloud.google.com/apigee/docs/api-platform/reference/policies/oauth-http-status-code-reference - * 2. https://cloud.google.com/bigquery/docs/error-messages - * - * Summary: - * Abortable -> 403, 501, 400 - * Retryable -> 5[0-9][02-9], 401(UNAUTHENTICATED) - * "Special Cases": - * status=200, resp.insertErrors.length > 0 === Failure - * 403 => AccessDenied -> DISABLE_DEST, other 403 => Just abort + * Rearranges the events based on their success or error status. + * If there are no successful events, it groups error events with the same error and their metadata. + * If there are successful events, it returns the batched response of successful events. * + * @param {Array} successEventList - An array of objects representing successful events. + * Each object should have an `id` and `metadata` property. + * @param {Array} errorEventList - An array of objects representing error events. + * Each object should have an `id`, `metadata`, and `error` property. + * @returns {Array} - An array of rearranged events. */ -const processResponse = ({ dresponse, status } = {}) => { - const isSuccess = - !dresponse.error && - isHttpStatusSuccess(status) && - (!dresponse.insertErrors || (dresponse.insertErrors && dresponse.insertErrors.length === 0)); +const getRearrangedEvents = (successEventList, errorEventList) => { + // Convert 'metadata' to an array if it's not already + const processedSuccessfulEvents = convertMetadataToArray(successEventList); + const processedErrorEvents = convertMetadataToArray(errorEventList); - if (!isSuccess) { - if (dresponse.error) { - const { status: trStatus } = getStatusAndCategory(dresponse, status); - throw new NetworkError( - dresponse.error.message || `Request failed for ${DESTINATION_NAME} with status: ${status}`, - trStatus, - { - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(trStatus), - }, - dresponse, - ); - } else if (dresponse.insertErrors && dresponse.insertErrors.length > 0) { - const temp = trimBqStreamResponse(dresponse); - throw new AbortedError( - 'Problem during insert operation', - 400, - { - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(temp.status || 400), - }, - temp, - getDestAuthCategory(temp.code), - ); - } - throw new UnhandledStatusCodeError('Unhandled error type while sending to destination'); + // if there are no error events, then return the batched response + if (errorEventList.length === 0) { + return [processedSuccessfulEvents]; + } + // if there are no batched response, then return the error events + if (successEventList.length === 0) { + return formatCompositeResponse(processedErrorEvents); } -}; -const responseHandler = (respTransformPayload) => { - const { response, status } = respTransformPayload; - processResponse({ - dresponse: response, - status, - }); - return { - status, - destinationResponse: response, - message: 'Request Processed Successfully', - }; + // if there are both batched response and error events, then order them + const combinedTransformedEventList = [ + [...processedSuccessfulEvents], + ...formatCompositeResponse(processedErrorEvents), + ]; + return combinedTransformedEventList; }; -function networkHandler() { - this.responseHandler = responseHandler; - this.proxy = proxyRequest; - this.processAxiosResponse = processAxiosResponse; -} - -module.exports = { networkHandler }; +module.exports = { getRearrangedEvents }; diff --git a/src/v0/destinations/bqstream/util.test.js b/src/v0/destinations/bqstream/util.test.js new file mode 100644 index 00000000000..c7635772ac7 --- /dev/null +++ b/src/v0/destinations/bqstream/util.test.js @@ -0,0 +1,267 @@ +const { getRearrangedEvents } = require('./util'); + +describe('getRearrangedEvents', () => { + // Tests that the function returns an array of transformed events when there are no error events + it('should return an array of transformed events when all events are track and successfully transformed', () => { + const eachUserSuccessEventslist = [ + { message: { type: 'track' }, metadata: { jobId: 1 } }, + { message: { type: 'track' }, metadata: { jobId: 3 } }, + { message: { type: 'track' }, metadata: { jobId: 5 } }, + ]; + const eachUserErrorEventsList = []; + const expected = [ + [ + { message: { type: 'track' }, metadata: [{ jobId: 1 }] }, + { message: { type: 'track' }, metadata: [{ jobId: 3 }] }, + { message: { type: 'track' }, metadata: [{ jobId: 5 }] }, + ], + ]; + const result = getRearrangedEvents(eachUserSuccessEventslist, eachUserErrorEventsList); + expect(result).toEqual(expected); + }); + + // Tests that the function returns an empty array when both input arrays are empty + it('should return an empty array when both input arrays are empty', () => { + const eachUserSuccessEventslist = []; + const eachUserErrorEventsList = []; + const expected = [[]]; + const result = getRearrangedEvents(eachUserSuccessEventslist, eachUserErrorEventsList); + expect(result).toEqual(expected); + }); + + // Tests that the function returns an array with only error events when all events are erroneous + it('should return an array with only error events when all events are erroneous', () => { + const eachUserSuccessEventslist = []; + const eachUserErrorEventsList = [ + { + batched: false, + destination: {}, + error: 'Message Type not supported: identify', + metadata: [{ jobId: 3, userId: 'user12345' }], + }, + { + batched: false, + destination: {}, + error: 'Message Type not supported: identify', + metadata: [{ jobId: 4, userId: 'user12345' }], + }, + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [{ jobId: 5, userId: 'user12345' }], + }, + ]; + const expected = [ + [ + { + batched: false, + destination: {}, + error: 'Message Type not supported: identify', + metadata: [ + { jobId: 3, userId: 'user12345' }, + { jobId: 4, userId: 'user12345' }, + ], + }, + ], + [ + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [ + { + jobId: 5, + userId: 'user12345', + }, + ], + }, + ], + ]; + const result = getRearrangedEvents(eachUserSuccessEventslist, eachUserErrorEventsList); + expect(result).toEqual(expected); + }); + // Tests that the function does not return an ordered array of events with both successful and erroneous events + it('case 1 : 1--> success, 2 --> fail, 3 --> success, 4 --> fail, 5 --> success', () => { + const errorEventsList = [ + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [{ jobId: 2, userId: 'user12345' }], + }, + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [{ jobId: 4, userId: 'user12345' }], + }, + ]; + const successEventslist = [ + { message: { type: 'track' }, metadata: { jobId: 1 } }, + { message: { type: 'track' }, metadata: { jobId: 3 } }, + { message: { type: 'track' }, metadata: { jobId: 5 } }, + ]; + const expected = [ + [ + { message: { type: 'track' }, metadata: [{ jobId: 1 }] }, + { message: { type: 'track' }, metadata: [{ jobId: 3 }] }, + { message: { type: 'track' }, metadata: [{ jobId: 5 }] }, + ], + [ + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [ + { jobId: 2, userId: 'user12345' }, + { jobId: 4, userId: 'user12345' }, + ], + }, + ], + ]; + const result = getRearrangedEvents(successEventslist, errorEventsList); + expect(result).toEqual(expected); + }); + + it('case 2 : 1--> success, 2 --> success, 3 --> fail, 4 --> fail, 5 --> success', () => { + const errorEventsList = [ + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [{ jobId: 3, userId: 'user12345' }], + }, + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [{ jobId: 4, userId: 'user12345' }], + }, + ]; + const successEventslist = [ + { message: { type: 'track' }, metadata: { jobId: 1 } }, + { message: { type: 'track' }, metadata: { jobId: 2 } }, + { message: { type: 'track' }, metadata: { jobId: 5 } }, + ]; + const expected = [ + [ + { + message: { + type: 'track', + }, + metadata: [ + { + jobId: 1, + }, + ], + }, + { + message: { + type: 'track', + }, + metadata: [ + { + jobId: 2, + }, + ], + }, + { + message: { + type: 'track', + }, + metadata: [ + { + jobId: 5, + }, + ], + }, + ], + [ + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [ + { + jobId: 3, + userId: 'user12345', + }, + { + jobId: 4, + userId: 'user12345', + }, + ], + }, + ], + ]; + const result = getRearrangedEvents(successEventslist, errorEventsList); + console.log(JSON.stringify(result)); + expect(result).toEqual(expected); + }); + + it('case 3 : 1--> fail, 2 --> success, 3 --> success, 4 --> fail', () => { + const errorEventsList = [ + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [{ jobId: 1, userId: 'user12345' }], + }, + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [{ jobId: 4, userId: 'user12345' }], + }, + ]; + const successEventslist = [ + { message: { type: 'track' }, metadata: { jobId: 2 } }, + { message: { type: 'track' }, metadata: { jobId: 3 } }, + ]; + const expected = [ + [ + { + message: { + type: 'track', + }, + metadata: [ + { + jobId: 2, + }, + ], + }, + { + message: { + type: 'track', + }, + metadata: [ + { + jobId: 3, + }, + ], + }, + ], + [ + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [ + { + jobId: 1, + userId: 'user12345', + }, + { + jobId: 4, + userId: 'user12345', + }, + ], + }, + ], + ]; + const result = getRearrangedEvents(successEventslist, errorEventsList); + console.log(JSON.stringify(result)); + expect(result).toEqual(expected); + }); +}); diff --git a/src/v0/destinations/branch/transform.js b/src/v0/destinations/branch/transform.js index ae214819b2b..23dcd6c8db4 100644 --- a/src/v0/destinations/branch/transform.js +++ b/src/v0/destinations/branch/transform.js @@ -1,4 +1,5 @@ const get = require('get-value'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { endpoints } = require('./config'); const { categoriesList } = require('./data/eventMapping'); @@ -11,7 +12,6 @@ const { isAppleFamily, simpleProcessRouterDest, } = require('../../util'); -const { InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); function responseBuilder(payload, message, destination, category) { @@ -44,12 +44,18 @@ function getCategoryAndName(rudderEventName) { for (const category of categoriesList) { let requiredName = null; let requiredCategory = null; - // eslint-disable-next-line array-callback-return + // eslint-disable-next-line array-callback-return, sonarjs/no-ignored-return Object.keys(category.name).find((branchKey) => { - if (branchKey.toLowerCase() === rudderEventName.toLowerCase()) { + if ( + typeof branchKey === 'string' && + typeof rudderEventName === 'string' && + branchKey.toLowerCase() === rudderEventName.toLowerCase() + ) { requiredName = category.name[branchKey]; requiredCategory = category; + return true; } + return false; }); if (requiredName != null && requiredCategory != null) { return { evName: requiredName, category: requiredCategory }; @@ -108,6 +114,7 @@ function mapPayload(category, rudderProperty, rudderPropertiesObj) { let valFound = false; if (category.content_items) { + // eslint-disable-next-line sonarjs/no-ignored-return Object.keys(category.content_items).find((branchMappingProperty) => { if (branchMappingProperty === rudderProperty) { const tmpKeyName = category.content_items[branchMappingProperty]; @@ -164,7 +171,7 @@ function getCommonPayload(message, category, evName) { productObj = {}; for (let i = 0; i < rudderPropertiesObj.products.length; i += 1) { const product = rudderPropertiesObj.products[i]; - // eslint-disable-next-line no-loop-func + // eslint-disable-next-line @typescript-eslint/no-loop-func Object.keys(product).forEach((productProp) => { const { contentItemsObj, eventDataObj, customDataObj } = mapPayload( category, diff --git a/src/v0/destinations/braze/braze.util.test.js b/src/v0/destinations/braze/braze.util.test.js index eb5a46fe344..9859e161524 100644 --- a/src/v0/destinations/braze/braze.util.test.js +++ b/src/v0/destinations/braze/braze.util.test.js @@ -1219,4 +1219,145 @@ describe('getPurchaseObjs', () => { ); } }); + + test('products having extra properties', () => { + const output = getPurchaseObjs( + { + properties: { + products: [ + { product_id: '123', price: 10.99, quantity: 2, random_extra_property_a: 'abc' }, + { product_id: '456', price: 5.49, quantity: 1, random_extra_property_b: 'efg' }, + { + product_id: '789', + price: 15.49, + quantity: 1, + random_extra_property_a: 'abc', + random_extra_property_b: 'efg', + random_extra_property_c: 'hij', + }, + ], + currency: 'USD', + }, + timestamp: '2023-08-04T12:34:56Z', + anonymousId: 'abc', + }, + { + sendPurchaseEventWithExtraProperties: true, + }, + ); + expect(output).toEqual([ + { + product_id: '123', + price: 10.99, + currency: 'USD', + quantity: 2, + time: '2023-08-04T12:34:56Z', + properties: { + random_extra_property_a: 'abc', + }, + _update_existing_only: false, + user_alias: { + alias_name: 'abc', + alias_label: 'rudder_id', + }, + }, + { + product_id: '456', + price: 5.49, + currency: 'USD', + quantity: 1, + time: '2023-08-04T12:34:56Z', + properties: { + random_extra_property_b: 'efg', + }, + _update_existing_only: false, + user_alias: { + alias_name: 'abc', + alias_label: 'rudder_id', + }, + }, + { + product_id: '789', + price: 15.49, + currency: 'USD', + quantity: 1, + time: '2023-08-04T12:34:56Z', + properties: { + random_extra_property_a: 'abc', + random_extra_property_b: 'efg', + random_extra_property_c: 'hij', + }, + _update_existing_only: false, + user_alias: { + alias_name: 'abc', + alias_label: 'rudder_id', + }, + }, + ]); + }); + + test('products having extra properties with sendPurchaseEventWithExtraProperties as false', () => { + const output = getPurchaseObjs( + { + properties: { + products: [ + { product_id: '123', price: 10.99, quantity: 2, random_extra_property_a: 'abc' }, + { product_id: '456', price: 5.49, quantity: 1, random_extra_property_b: 'efg' }, + { + product_id: '789', + price: 15.49, + quantity: 1, + random_extra_property_a: 'abc', + random_extra_property_b: 'efg', + random_extra_property_c: 'hij', + }, + ], + currency: 'USD', + }, + timestamp: '2023-08-04T12:34:56Z', + anonymousId: 'abc', + }, + { + sendPurchaseEventWithExtraProperties: false, + }, + ); + expect(output).toEqual([ + { + product_id: '123', + price: 10.99, + currency: 'USD', + quantity: 2, + time: '2023-08-04T12:34:56Z', + _update_existing_only: false, + user_alias: { + alias_name: 'abc', + alias_label: 'rudder_id', + }, + }, + { + product_id: '456', + price: 5.49, + currency: 'USD', + quantity: 1, + time: '2023-08-04T12:34:56Z', + _update_existing_only: false, + user_alias: { + alias_name: 'abc', + alias_label: 'rudder_id', + }, + }, + { + product_id: '789', + price: 15.49, + currency: 'USD', + quantity: 1, + time: '2023-08-04T12:34:56Z', + _update_existing_only: false, + user_alias: { + alias_name: 'abc', + alias_label: 'rudder_id', + }, + }, + ]); + }); }); diff --git a/src/v0/destinations/braze/config.js b/src/v0/destinations/braze/config.js index 2e24f43f614..2bbade2754d 100644 --- a/src/v0/destinations/braze/config.js +++ b/src/v0/destinations/braze/config.js @@ -56,6 +56,7 @@ const BRAZE_NON_BILLABLE_ATTRIBUTES = [ 'subscription_groups', ]; +const BRAZE_PURCHASE_STANDARD_PROPERTIES = ['product_id', 'sku', 'price', 'quantity', 'currency']; module.exports = { ConfigCategory, mappingConfig, @@ -64,6 +65,7 @@ module.exports = { getSubscriptionGroupEndPoint, getAliasMergeEndPoint, BRAZE_PARTNER_NAME, + BRAZE_PURCHASE_STANDARD_PROPERTIES, TRACK_BRAZE_MAX_REQ_COUNT, IDENTIFY_BRAZE_MAX_REQ_COUNT, DESTINATION, @@ -71,5 +73,5 @@ module.exports = { DEL_MAX_BATCH_SIZE, BRAZE_NON_BILLABLE_ATTRIBUTES, ALIAS_BRAZE_MAX_REQ_COUNT, - SUBSCRIPTION_BRAZE_MAX_REQ_COUNT + SUBSCRIPTION_BRAZE_MAX_REQ_COUNT, }; diff --git a/src/v0/destinations/braze/deleteUsers.js b/src/v0/destinations/braze/deleteUsers.js index 799aa3f9b47..b94d901138c 100644 --- a/src/v0/destinations/braze/deleteUsers.js +++ b/src/v0/destinations/braze/deleteUsers.js @@ -1,3 +1,4 @@ +const { NetworkError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { httpPOST } = require('../../../adapters/network'); const { processAxiosResponse, @@ -8,7 +9,6 @@ const { isHttpStatusSuccess } = require('../../util'); const { executeCommonValidations } = require('../../util/regulation-api'); const { DEL_MAX_BATCH_SIZE } = require('./config'); const { getUserIdBatches } = require('../../util/deleteUserUtils'); -const { NetworkError, ConfigurationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const userDeletionHandler = async (userAttributes, config) => { diff --git a/src/v0/destinations/braze/networkHandler.js b/src/v0/destinations/braze/networkHandler.js index f942fdc3c37..c6cf7222eaa 100644 --- a/src/v0/destinations/braze/networkHandler.js +++ b/src/v0/destinations/braze/networkHandler.js @@ -1,4 +1,5 @@ /* eslint-disable no-unused-vars */ +const { NetworkError } = require('@rudderstack/integrations-lib'); const { isHttpStatusSuccess } = require('../../util/index'); const { proxyRequest, prepareProxyRequest } = require('../../../adapters/network'); const { @@ -6,9 +7,10 @@ const { processAxiosResponse, } = require('../../../adapters/utils/networkUtils'); const { DESTINATION } = require('./config'); -const { NetworkError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); +const stats = require('../../../util/stats'); +// eslint-disable-next-line @typescript-eslint/no-unused-vars const responseHandler = (destinationResponse, _dest) => { const message = `Request for ${DESTINATION} Processed Successfully`; const { response, status } = destinationResponse; @@ -23,6 +25,17 @@ const responseHandler = (destinationResponse, _dest) => { destinationResponse, ); } + + // Partial errors + if ( + !!response && + response.message === 'success' && + response.errors && + response.errors.length > 0 + ) { + stats.increment('braze_partial_failure'); + } + // application level errors if ( !!response && diff --git a/src/v0/destinations/braze/transform.js b/src/v0/destinations/braze/transform.js index c3eb2d3ee57..38c4b348db8 100644 --- a/src/v0/destinations/braze/transform.js +++ b/src/v0/destinations/braze/transform.js @@ -1,6 +1,8 @@ /* eslint-disable no-nested-ternary,no-param-reassign */ -const _ = require('lodash'); +const lodash = require('lodash'); const get = require('get-value'); +const { InstrumentationError, NetworkError } = require('@rudderstack/integrations-lib'); +const { FilteredEventsError } = require('../../util/errorTypes'); const { BrazeDedupUtility, CustomAttributeOperationUtil, @@ -20,10 +22,11 @@ const { getFieldValueFromMessage, removeUndefinedValues, isHttpStatusSuccess, + isDefinedAndNotNull, simpleProcessRouterDestSync, simpleProcessRouterDest, + isNewStatusCodesAccepted, } = require('../../util'); -const { InstrumentationError, NetworkError } = require('../../util/errorTypes'); const { ConfigCategory, mappingConfig, @@ -80,7 +83,7 @@ function getIdentifyPayload(message) { let payload = {}; payload = setAliasObjectWithAnonId(payload, message); payload = setExternalId(payload, message); - return { aliases_to_identify: [payload] }; + return { aliases_to_identify: [payload], merge_behavior: 'merge' }; } function populateCustomAttributesWithOperation( @@ -93,7 +96,10 @@ function populateCustomAttributesWithOperation( // add,update,remove on json attributes if (enableNestedArrayOperations) { Object.keys(traits) - .filter((key) => typeof traits[key] === 'object' && !Array.isArray(traits[key])) + .filter( + (key) => + traits[key] !== null && typeof traits[key] === 'object' && !Array.isArray(traits[key]), + ) .forEach((key) => { if (traits[key][CustomAttributeOperationTypes.UPDATE]) { CustomAttributeOperationUtil.customAttributeUpdateOperation( @@ -148,11 +154,16 @@ function getUserAttributesObject(message, mappingJson, destination) { Object.keys(mappingJson).forEach((destKey) => { let value = get(traits, mappingJson[destKey]); if (value || (value === null && reservedKeys.includes(destKey))) { + // if email is not string remove it from attributes + if (destKey === 'email' && typeof value !== 'string') { + throw new InstrumentationError('Invalid email, email must be a valid string'); + } + // handle gender special case if (destKey === 'gender') { value = formatGender(value); - } else if (destKey === 'email' && value !== null) { - value = value?.toLowerCase(); + } else if (destKey === 'email' && isDefinedAndNotNull(value)) { + value = value.toString().toLowerCase(); } data[destKey] = value; } @@ -213,7 +224,7 @@ async function processIdentify(message, destination) { ); if (!isHttpStatusSuccess(brazeIdentifyResp.status)) { throw new NetworkError( - 'Braze identify failed', + `Braze identify failed - ${JSON.stringify(brazeIdentifyResp.response)}`, brazeIdentifyResp.status, { [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(brazeIdentifyResp.status), @@ -223,7 +234,13 @@ async function processIdentify(message, destination) { } } -function processTrackWithUserAttributes(message, destination, mappingJson, processParams) { +function processTrackWithUserAttributes( + message, + destination, + mappingJson, + processParams, + reqMetadata, +) { let payload = getUserAttributesObject(message, mappingJson); if (payload && Object.keys(payload).length > 0) { payload = setExternalIdOrAliasObject(payload, message); @@ -236,6 +253,10 @@ function processTrackWithUserAttributes(message, destination, mappingJson, proce ); if (dedupedAttributePayload) { requestJson.attributes = [dedupedAttributePayload]; + } else if (isNewStatusCodesAccepted(reqMetadata)) { + throw new FilteredEventsError( + '[Braze Deduplication]: Duplicate user detected, the user is dropped', + ); } else { throw new InstrumentationError( '[Braze Deduplication]: Duplicate user detected, the user is dropped', @@ -303,7 +324,7 @@ function processTrackEvent(messageType, message, destination, mappingJson, proce typeof eventName === 'string' && eventName.toLowerCase() === 'order completed' ) { - const purchaseObjs = getPurchaseObjs(message); + const purchaseObjs = getPurchaseObjs(message, destination.Config); // del used properties delete properties.products; @@ -379,6 +400,7 @@ function processGroup(message, destination) { } else if (email) { subscriptionGroup.emails = [email]; } + // eslint-disable-next-line @typescript-eslint/naming-convention const subscription_groups = [subscriptionGroup]; const response = defaultRequestConfig(); response.endpoint = getSubscriptionGroupEndPoint(getEndpointFromConfig(destination)); @@ -443,7 +465,7 @@ function processAlias(message, destination) { ); } -async function process(event, processParams = { userStore: new Map() }) { +async function process(event, processParams = { userStore: new Map() }, reqMetadata = {}) { let response; const { message, destination } = event; const messageType = message.type.toLowerCase(); @@ -489,6 +511,7 @@ async function process(event, processParams = { userStore: new Map() }) { destination, mappingConfig[category.name], processParams, + reqMetadata, ); break; case EventType.GROUP: @@ -518,7 +541,7 @@ const processRouterDest = async (inputs, reqMetadata) => { BrazeDedupUtility.updateUserStore(userStore, lookedUpUsers, destination.ID); } // group events by userId or anonymousId and then call process - const groupedInputs = _.groupBy( + const groupedInputs = lodash.groupBy( inputs, (input) => input.message.userId || input.message.anonymousId, ); @@ -537,7 +560,7 @@ const processRouterDest = async (inputs, reqMetadata) => { const output = await Promise.all(allResps); - const allTransfomredEvents = _.flatMap(output); + const allTransfomredEvents = lodash.flatMap(output); return processBatch(allTransfomredEvents); }; diff --git a/src/v0/destinations/braze/util.js b/src/v0/destinations/braze/util.js index f531f08551a..3b0855b338b 100644 --- a/src/v0/destinations/braze/util.js +++ b/src/v0/destinations/braze/util.js @@ -1,4 +1,4 @@ -/* eslint-disable camelcase */ +/* eslint-disable */ const _ = require('lodash'); const get = require('get-value'); const stats = require('../../../util/stats'); @@ -21,11 +21,12 @@ const { SUBSCRIPTION_BRAZE_MAX_REQ_COUNT, ALIAS_BRAZE_MAX_REQ_COUNT, TRACK_BRAZE_MAX_REQ_COUNT, + BRAZE_PURCHASE_STANDARD_PROPERTIES, } = require('./config'); -const { JSON_MIME_TYPE } = require('../../util/constant'); +const { JSON_MIME_TYPE, HTTP_STATUS_CODES } = require('../../util/constant'); const { isObject } = require('../../util'); const { removeUndefinedValues, getIntegrationsObj } = require('../../util'); -const { InstrumentationError } = require('../../util/errorTypes'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const getEndpointFromConfig = (destination) => { // Init -- mostly for test cases @@ -298,7 +299,7 @@ const BrazeDedupUtility = { external_id, user_alias, }; - const identifier = external_id || user_alias.alias_name; + const identifier = external_id || user_alias?.alias_name; store.set(identifier, { ...storedUserData, ...deduplicatedUserData }); return removeUndefinedValues(deduplicatedUserData); }, @@ -363,11 +364,14 @@ const processBatch = (transformedEvents) => { const purchaseArray = []; const successMetadata = []; const failureResponses = []; + const filteredResponses = []; const subscriptionsArray = []; const mergeUsersArray = []; for (const transformedEvent of transformedEvents) { if (!isHttpStatusSuccess(transformedEvent?.statusCode)) { failureResponses.push(transformedEvent); + } else if (transformedEvent?.statusCode === HTTP_STATUS_CODES.FILTER_EVENTS) { + filteredResponses.push(transformedEvent); } else if (transformedEvent?.batchedRequest?.body?.JSON) { const { attributes, events, purchases, subscription_groups, merge_updates } = transformedEvent.batchedRequest.body.JSON; @@ -416,6 +420,23 @@ const processBatch = (transformedEvents) => { const attributes = attributeArrayChunks[i]; const events = eventsArrayChunks[i]; const purchases = purchaseArrayChunks[i]; + + if (attributes) { + stats.gauge('braze_batch_attributes_pack_size', attributes.length, { + destination_id: destination.ID, + }); + } + if (events) { + stats.gauge('braze_batch_events_pack_size', events.length, { + destination_id: destination.ID, + }); + } + if (purchases) { + stats.gauge('braze_batch_purchase_pack_size', purchases.length, { + destination_id: destination.ID, + }); + } + const response = defaultRequestConfig(); response.endpoint = endpoint; response.body.JSON = removeUndefinedAndNullValues({ @@ -446,6 +467,10 @@ const processBatch = (transformedEvents) => { finalResponse.push(...failureResponses); } + if (filteredResponses.length > 0) { + finalResponse.push(...filteredResponses); + } + return finalResponse; }; @@ -515,7 +540,7 @@ function addMandatoryPurchaseProperties(productId, price, currencyCode, quantity }; } -function getPurchaseObjs(message) { +function getPurchaseObjs(message, config) { // ref:https://www.braze.com/docs/api/objects_filters/purchase_object/ const validateForPurchaseEvent = (message) => { const { properties } = message; @@ -610,6 +635,10 @@ function getPurchaseObjs(message) { parseInt(quantity, 10), timestamp, ); + const extraProperties = _.omit(product, BRAZE_PURCHASE_STANDARD_PROPERTIES); + if (Object.keys(extraProperties).length > 0 && config.sendPurchaseEventWithExtraProperties) { + purchaseObj = { ...purchaseObj, properties: extraProperties }; + } purchaseObj = setExternalIdOrAliasObject(purchaseObj, message); purchaseObjs.push(purchaseObj); }); diff --git a/src/v0/destinations/campaign_manager/config.js b/src/v0/destinations/campaign_manager/config.js index 063f65cb14d..b3a95313476 100644 --- a/src/v0/destinations/campaign_manager/config.js +++ b/src/v0/destinations/campaign_manager/config.js @@ -9,6 +9,8 @@ const ConfigCategories = { }, }; +const MAX_BATCH_CONVERSATIONS_SIZE = 1000; + const EncryptionEntityType = [ 'ENCRYPTION_ENTITY_TYPE_UNKNOWN', 'DCM_ACCOUNT', @@ -28,4 +30,5 @@ module.exports = { BASE_URL, EncryptionEntityType, EncryptionSource, + MAX_BATCH_CONVERSATIONS_SIZE, }; diff --git a/src/v0/destinations/campaign_manager/data/CampaignManagerTrackConfig.json b/src/v0/destinations/campaign_manager/data/CampaignManagerTrackConfig.json index e547bb0f35f..c8bd10d5248 100644 --- a/src/v0/destinations/campaign_manager/data/CampaignManagerTrackConfig.json +++ b/src/v0/destinations/campaign_manager/data/CampaignManagerTrackConfig.json @@ -13,10 +13,7 @@ "destKey": "timestampMicros", "sourceKeys": "timestamp", "sourceFromGenericMap": true, - "required": true, - "metadata": { - "type": "microSecondTimestamp" - } + "required": true }, { "destKey": "floodlightActivityId", diff --git a/src/v0/destinations/campaign_manager/networkHandler.js b/src/v0/destinations/campaign_manager/networkHandler.js index d324c6300be..a1fa24835c1 100644 --- a/src/v0/destinations/campaign_manager/networkHandler.js +++ b/src/v0/destinations/campaign_manager/networkHandler.js @@ -1,45 +1,53 @@ +/* eslint-disable no-restricted-syntax */ +const { AbortedError, RetryableError, NetworkError } = require('@rudderstack/integrations-lib'); const { prepareProxyRequest, proxyRequest } = require('../../../adapters/network'); -const { isHttpStatusSuccess } = require('../../util/index'); -const { REFRESH_TOKEN } = require('../../../adapters/networkhandler/authConstants'); +const { isHttpStatusSuccess, getAuthErrCategoryFromStCode } = require('../../util/index'); const { processAxiosResponse, getDynamicErrorType, } = require('../../../adapters/utils/networkUtils'); -const { AbortedError, RetryableError, NetworkError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); -/** - * This function helps to detarmine type of error occured. According to the response - * we set authErrorCategory to take decision if we need to refresh the access_token - * or need to disable the destination. - * @param {*} code - * @returns - */ -const getAuthErrCategory = (code) => { - if (code === 401) { - return REFRESH_TOKEN; - } - return ''; -}; - function checkIfFailuresAreRetryable(response) { + const { status } = response; try { - if (Array.isArray(response.status) && Array.isArray(response.status[0].errors)) { - return ( - response.status[0].errors[0].code !== 'PERMISSION_DENIED' && - response.status[0].errors[0].code !== 'INVALID_ARGUMENT' - ); + if (Array.isArray(status)) { + // iterate over each status, and if found retryable in conversations ..retry else discard + /* status : [{ + "conversion": { + object (Conversion) + }, + "errors": [ + { + object (ConversionError) + } + ], + "kind": string + }] */ + for (const st of status) { + for (const err of st.errors) { + // if code is any of these, event is not retryable + if ( + err.code === 'PERMISSION_DENIED' || + err.code === 'INVALID_ARGUMENT' || + err.code === 'NOT_FOUND' + ) { + return false; + } + } + } } return true; } catch (e) { - return true; + return false; } } const responseHandler = (destinationResponse) => { const message = `[CAMPAIGN_MANAGER Response Handler] - Request Processed Successfully`; const { response, status } = destinationResponse; + if (isHttpStatusSuccess(status)) { // check for Failures if (response.hasFailures === true) { @@ -67,13 +75,13 @@ const responseHandler = (destinationResponse) => { } throw new NetworkError( - `Campaign Manager: ${response.error.message} during CAMPAIGN_MANAGER response transformation 3`, - status, + `Campaign Manager: ${response.error?.message} during CAMPAIGN_MANAGER response transformation 3`, + 500, { [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), }, destinationResponse, - getAuthErrCategory(status), + getAuthErrCategoryFromStCode(status), ); }; diff --git a/src/v0/destinations/campaign_manager/transform.js b/src/v0/destinations/campaign_manager/transform.js index 93ec3e8ea3c..3b480dbac23 100644 --- a/src/v0/destinations/campaign_manager/transform.js +++ b/src/v0/destinations/campaign_manager/transform.js @@ -1,12 +1,17 @@ +const { InstrumentationError } = require('@rudderstack/integrations-lib'); +const lodash = require('lodash'); const { EventType } = require('../../../constants'); - const { constructPayload, defaultRequestConfig, defaultPostRequestConfig, + defaultBatchRequestConfig, removeUndefinedAndNullValues, + getSuccessRespEvents, isDefinedAndNotNull, - simpleProcessRouterDest, + checkInvalidRtTfEvents, + handleRtTfSingleEventError, + getAccessToken, } = require('../../util'); const { @@ -15,18 +20,12 @@ const { BASE_URL, EncryptionEntityType, EncryptionSource, + MAX_BATCH_CONVERSATIONS_SIZE, } = require('./config'); -const { InstrumentationError, OAuthSecretError } = require('../../util/errorTypes'); +const { convertToMicroseconds } = require('./util'); const { JSON_MIME_TYPE } = require('../../util/constant'); -const getAccessToken = ({ secret }) => { - if (!secret) { - throw new OAuthSecretError('[CAMPAIGN MANAGER (DCM)]:: OAuth - access token not found'); - } - return secret.access_token; -}; - function isEmptyObject(obj) { return Object.keys(obj).length === 0 && obj.constructor === Object; } @@ -36,7 +35,7 @@ function buildResponse(requestJson, metadata, endpointUrl, requestType, encrypti const response = defaultRequestConfig(); response.endpoint = endpointUrl; response.headers = { - Authorization: `Bearer ${getAccessToken(metadata)}`, + Authorization: `Bearer ${getAccessToken(metadata, 'access_token')}`, 'Content-Type': JSON_MIME_TYPE, }; response.method = defaultPostRequestConfig.requestMethod; @@ -78,7 +77,8 @@ function processTrack(message, metadata, destination) { delete requestJson.childDirectedTreatment; delete requestJson.limitAdTracking; } - requestJson.timestampMicros = requestJson.timestampMicros.toString(); + + requestJson.timestampMicros = convertToMicroseconds(requestJson.timestampMicros).toString(); const encryptionInfo = {}; // prepare encrptionInfo if encryptedUserId or encryptedUserIdCandidates is given @@ -144,35 +144,17 @@ function postValidateRequest(response) { ); } - let count = 0; - - if (response.body.JSON.conversions[0].gclid) { - count += 1; - } - - if (response.body.JSON.conversions[0].dclid) { - count += 1; - } - - if (response.body.JSON.conversions[0].encryptedUserId) { - count += 1; - } - - if (response.body.JSON.conversions[0].encryptedUserIdCandidates) { - count += 1; - } - - if (response.body.JSON.conversions[0].mobileDeviceId) { - count += 1; - } - - if (response.body.JSON.conversions[0].impressionId) { - count += 1; - } - - if (count !== 1) { + if ( + !response.body.JSON.conversions[0].gclid && + !response.body.JSON.conversions[0].matchId && + !response.body.JSON.conversions[0].dclid && + !response.body.JSON.conversions[0].encryptedUserId && + !response.body.JSON.conversions[0].encryptedUserIdCandidates && + !response.body.JSON.conversions[0].mobileDeviceId && + !response.body.JSON.conversions[0].impressionId + ) { throw new InstrumentationError( - '[CAMPAIGN MANAGER (DCM)]: For CM360 we need one of encryptedUserId,encryptedUserIdCandidates, matchId, mobileDeviceId, gclid, dclid, impressionId.', + '[CAMPAIGN MANAGER (DCM)]: Atleast one of encryptedUserId,encryptedUserIdCandidates, matchId, mobileDeviceId, gclid, dclid, impressionId.', ); } } @@ -200,9 +182,110 @@ function process(event) { return response; } +const generateBatch = (eventKind, events) => { + const batchRequestObject = defaultBatchRequestConfig(); + const conversions = []; + let encryptionInfo = {}; + const metadata = []; + // extracting destination, message from the first event in a batch + const { destination, message } = events[0]; + // Batch event into dest batch structure + events.forEach((ev) => { + conversions.push(...ev.message.body.JSON.conversions); + metadata.push(ev.metadata); + if (ev.message.body.JSON.encryptionInfo) { + encryptionInfo = ev.message.body.JSON.encryptionInfo; + } + }); + + batchRequestObject.batchedRequest.body.JSON = { + kind: eventKind, + conversions, + }; + + if (Object.keys(encryptionInfo).length > 0) { + batchRequestObject.batchedRequest.body.JSON.encryptionInfo = encryptionInfo; + } + + batchRequestObject.batchedRequest.endpoint = message.endpoint; + + batchRequestObject.batchedRequest.headers = message.headers; + + return { + ...batchRequestObject, + metadata, + destination, + }; +}; + +const batchEvents = (eventChunksArray) => { + const batchedResponseList = []; + + // group batchInsert and batchUpdate payloads + const groupedEventChunks = lodash.groupBy( + eventChunksArray, + (event) => event.message.body.JSON.kind, + ); + Object.keys(groupedEventChunks).forEach((eventKind) => { + // eventChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] + const eventChunks = lodash.chunk(groupedEventChunks[eventKind], MAX_BATCH_CONVERSATIONS_SIZE); + eventChunks.forEach((chunk) => { + const batchEventResponse = generateBatch(eventKind, chunk); + batchedResponseList.push( + getSuccessRespEvents( + batchEventResponse.batchedRequest, + batchEventResponse.metadata, + batchEventResponse.destination, + true, + ), + ); + }); + }); + return batchedResponseList; +}; + const processRouterDest = async (inputs, reqMetadata) => { - const respList = await simpleProcessRouterDest(inputs, process, reqMetadata); - return respList; + const errorRespEvents = checkInvalidRtTfEvents(inputs); + if (errorRespEvents.length > 0) { + return errorRespEvents; + } + + const batchErrorRespList = []; + const eventChunksArray = []; + const { destination } = inputs[0]; + await Promise.all( + inputs.map(async (event) => { + try { + if (event.message.statusCode) { + // already transformed event + eventChunksArray.push({ + message: event.message, + metadata: event.metadata, + destination, + }); + } else { + // if not transformed + const proccessedRespList = process(event); + const transformedPayload = { + message: proccessedRespList, + metadata: event.metadata, + destination, + }; + eventChunksArray.push(transformedPayload); + } + } catch (error) { + const errRespEvent = handleRtTfSingleEventError(event, error, reqMetadata); + batchErrorRespList.push(errRespEvent); + } + }), + ); + + let batchResponseList = []; + if (eventChunksArray.length > 0) { + batchResponseList = batchEvents(eventChunksArray); + } + + return [...batchResponseList, ...batchErrorRespList]; }; module.exports = { process, processRouterDest }; diff --git a/src/v0/destinations/campaign_manager/util.js b/src/v0/destinations/campaign_manager/util.js new file mode 100644 index 00000000000..434322440f0 --- /dev/null +++ b/src/v0/destinations/campaign_manager/util.js @@ -0,0 +1,33 @@ +function convertToMicroseconds(input) { + const timestamp = Date.parse(input); + + if (!Number.isNaN(timestamp)) { + // If the input is a valid date string, timestamp will be a number + if (input.includes('Z')) { + // ISO 8601 date string with milliseconds + return timestamp * 1000; + } + // to handle case of "2022-11-17T00:22:02.903+05:30" strings + return timestamp.toString().length === 13 ? timestamp * 1000 : timestamp * 1000000; + } + + if (/^\d+$/.test(input)) { + // If the input is a numeric string (assume microseconds or milliseconds) + if (input.length === 13) { + // equal to 13 indicates milliseconds + return parseInt(input, 10) * 1000; + } + + if (input.length === 10) { + // equal to 10 indicates seconds + return parseInt(input, 10) * 1000000; + } + // Otherwise, assume microseconds + return parseInt(input, 10); + } + return timestamp; +} + +module.exports = { + convertToMicroseconds, +}; diff --git a/src/v0/destinations/campaign_manager/util.test.js b/src/v0/destinations/campaign_manager/util.test.js new file mode 100644 index 00000000000..8f69b57a9fa --- /dev/null +++ b/src/v0/destinations/campaign_manager/util.test.js @@ -0,0 +1,23 @@ +const { convertToMicroseconds } = require('./util'); + +describe('convertToMicroseconds utility test', () => { + it('ISO 8601 input', () => { + expect(convertToMicroseconds('2021-01-04T08:25:04.780Z')).toEqual(1609748704780000); + }); + + it('unix microseconds input', () => { + expect(convertToMicroseconds('1668624722903333')).toEqual(1668624722903333); + }); + + it('non numeric time input', () => { + expect(convertToMicroseconds('2022-11-17T00:22:02.903+05:30')).toEqual(1668624722903000); + }); + + it('unix seconds input', () => { + expect(convertToMicroseconds('1697013935')).toEqual(1697013935000000); + }); + + it('unix miliseconds input', () => { + expect(convertToMicroseconds('1697013935000')).toEqual(1697013935000000); + }); +}); diff --git a/src/v0/destinations/candu/transform.js b/src/v0/destinations/candu/transform.js index 659af365405..d1149984846 100644 --- a/src/v0/destinations/candu/transform.js +++ b/src/v0/destinations/candu/transform.js @@ -1,3 +1,4 @@ +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { defaultRequestConfig, @@ -6,7 +7,6 @@ const { simpleProcessRouterDest, } = require('../../util'); const { JSON_MIME_TYPE } = require('../../util/constant'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); const { endpoint, identifyDataMapping, trackDataMapping } = require('./config'); const responseBuilder = (body, { Config }) => { diff --git a/src/v0/destinations/canny/transform.js b/src/v0/destinations/canny/transform.js index d837a8ddd3b..f4364e1fb79 100644 --- a/src/v0/destinations/canny/transform.js +++ b/src/v0/destinations/canny/transform.js @@ -1,3 +1,4 @@ +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { ConfigCategory, mappingConfig, BASE_URL } = require('./config'); const { @@ -14,7 +15,6 @@ const { validateCreatePostFields, validateEventMapping, } = require('./util'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const responseBuilder = (responseConfgs) => { diff --git a/src/v0/destinations/canny/util.js b/src/v0/destinations/canny/util.js index 9666f143df0..59644bcd6b1 100644 --- a/src/v0/destinations/canny/util.js +++ b/src/v0/destinations/canny/util.js @@ -1,8 +1,8 @@ const qs = require('qs'); +const { InstrumentationError, NetworkError } = require('@rudderstack/integrations-lib'); const { httpPOST } = require('../../../adapters/network'); const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); const { getDestinationExternalID } = require('../../util'); -const { InstrumentationError, NetworkError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); const logger = require('../../../logger'); const { JSON_MIME_TYPE } = require('../../util/constant'); @@ -25,7 +25,7 @@ const retrieveUserId = async (apiKey, message) => { message.traits?.email || message.context?.traits?.email || message.properties?.email; const { userId } = message; - const header = { + const headers = { 'Content-Type': 'application/x-www-form-urlencoded', Accept: JSON_MIME_TYPE, }; @@ -38,10 +38,15 @@ const retrieveUserId = async (apiKey, message) => { } else { requestBody.userID = `${userId}`; } - const response = await httpPOST(url, qs.stringify(requestBody), header, { - destType: 'canny', - feature: 'transformation', - }); + const response = await httpPOST( + url, + qs.stringify(requestBody), + { headers }, + { + destType: 'canny', + feature: 'transformation', + }, + ); logger.debug(response); // If the request fails, throwing error. if (response.success === false) { diff --git a/src/v0/destinations/clevertap/deleteUsers.js b/src/v0/destinations/clevertap/deleteUsers.js index 355aee1e581..3c07a63d93c 100644 --- a/src/v0/destinations/clevertap/deleteUsers.js +++ b/src/v0/destinations/clevertap/deleteUsers.js @@ -1,3 +1,4 @@ +const { NetworkError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { httpPOST } = require('../../../adapters/network'); const { getEndpoint, DEL_MAX_BATCH_SIZE } = require('./config'); const { @@ -6,7 +7,6 @@ const { } = require('../../../adapters/utils/networkUtils'); const { isHttpStatusSuccess } = require('../../util'); const { executeCommonValidations } = require('../../util/regulation-api'); -const { NetworkError, ConfigurationError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); const { getUserIdBatches } = require('../../util/deleteUserUtils'); const { JSON_MIME_TYPE } = require('../../util/constant'); @@ -25,6 +25,7 @@ const userDeletionHandler = async (userAttributes, config) => { } const endpoint = getEndpoint(config, '/delete/profiles.json'); + const endpointPath = '/delete/profiles'; const headers = { 'X-CleverTap-Account-Id': accountId, 'X-CleverTap-Passcode': passcode, @@ -51,6 +52,7 @@ const userDeletionHandler = async (userAttributes, config) => { { destType: 'clevertap', feature: 'deleteUsers', + endpointPath, }, ); const handledDelResponse = processAxiosResponse(deletionResponse); diff --git a/src/v0/destinations/clevertap/networkHandler.js b/src/v0/destinations/clevertap/networkHandler.js index aafe77e7929..e17afb57d19 100644 --- a/src/v0/destinations/clevertap/networkHandler.js +++ b/src/v0/destinations/clevertap/networkHandler.js @@ -1,10 +1,10 @@ +const { NetworkError, AbortedError } = require('@rudderstack/integrations-lib'); const { isHttpStatusSuccess } = require('../../util/index'); const { proxyRequest, prepareProxyRequest } = require('../../../adapters/network'); const { processAxiosResponse, getDynamicErrorType, } = require('../../../adapters/utils/networkUtils'); -const { NetworkError, AbortedError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); const responseHandler = (destinationResponse) => { @@ -43,6 +43,7 @@ const responseHandler = (destinationResponse) => { }; }; +// eslint-disable-next-line @typescript-eslint/naming-convention class networkHandler { constructor() { this.responseHandler = responseHandler; diff --git a/src/v0/destinations/clevertap/transform.js b/src/v0/destinations/clevertap/transform.js index 7ce864aae26..efcd101668a 100644 --- a/src/v0/destinations/clevertap/transform.js +++ b/src/v0/destinations/clevertap/transform.js @@ -1,6 +1,7 @@ /* eslint-disable no-param-reassign */ /* eslint-disable no-nested-ternary */ const get = require('get-value'); +const { InstrumentationError, TransformationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { getEndpoint, @@ -25,7 +26,6 @@ const { } = require('../../util'); const { generateClevertapBatchedPayload } = require('./utils'); -const { InstrumentationError, TransformationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const TIMESTAMP_KEY_PATH = 'context.traits.ts'; @@ -232,7 +232,7 @@ const getClevertapProfile = (message, category) => { if (message.traits?.overrideFields) { const { overrideFields } = message.traits; Object.assign(profile, overrideFields); - } else if (message.context.traits?.overrideFields) { + } else if (message.context?.traits?.overrideFields) { const { overrideFields } = message.context.traits; Object.assign(profile, overrideFields); } @@ -419,7 +419,7 @@ const processRouterDest = (inputs, reqMetadata) => { batchedEvents.forEach((batch) => { const batchedRequest = generateClevertapBatchedPayload(batch.events, batch.destination); batchResponseList.push( - getSuccessRespEvents(batchedRequest, batch.metadata, batch.destination, reqMetadata), + getSuccessRespEvents(batchedRequest, batch.metadata, batch.destination), ); }); } diff --git a/src/v0/destinations/clickup/transform.js b/src/v0/destinations/clickup/transform.js index d93e53b3490..0637d65bd4c 100644 --- a/src/v0/destinations/clickup/transform.js +++ b/src/v0/destinations/clickup/transform.js @@ -1,3 +1,4 @@ +const { TransformationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { defaultRequestConfig, @@ -14,7 +15,6 @@ const { checkEventIfUIMapped, } = require('./util'); const { CONFIG_CATEGORIES, MAPPING_CONFIG, createTaskEndPoint } = require('./config'); -const { TransformationError, InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const responseBuilder = async (payload, listId, apiToken) => { diff --git a/src/v0/destinations/clickup/util.js b/src/v0/destinations/clickup/util.js index 7b17f83bb65..148fe1bd073 100644 --- a/src/v0/destinations/clickup/util.js +++ b/src/v0/destinations/clickup/util.js @@ -1,3 +1,4 @@ +const { NetworkError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { httpGET } = require('../../../adapters/network'); const { processAxiosResponse, @@ -9,7 +10,6 @@ const { formatTimeStamp, } = require('../../util'); const { getCustomFieldsEndPoint } = require('./config'); -const { NetworkError, InstrumentationError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/confluent_cloud/transform.js b/src/v0/destinations/confluent_cloud/transform.js index e8f0f4d2e21..b33abc90cf8 100644 --- a/src/v0/destinations/confluent_cloud/transform.js +++ b/src/v0/destinations/confluent_cloud/transform.js @@ -1,6 +1,5 @@ const cloneDeep = require('lodash/cloneDeep'); const { getIntegrationsObj } = require('../../util'); -// const { InstrumentationError } = require("../../util/errorTypes"); function process(event) { const { message, destination } = event; diff --git a/src/v0/destinations/courier/transform.js b/src/v0/destinations/courier/transform.js index 7d52b503d9b..d5e25434ec2 100644 --- a/src/v0/destinations/courier/transform.js +++ b/src/v0/destinations/courier/transform.js @@ -1,3 +1,8 @@ +const { + TransformationError, + InstrumentationError, + ConfigurationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { defaultRequestConfig, @@ -6,11 +11,6 @@ const { simpleProcessRouterDest, } = require('../../util'); const { JSON_MIME_TYPE } = require('../../util/constant'); -const { - TransformationError, - InstrumentationError, - ConfigurationError, -} = require('../../util/errorTypes'); const { API_URL } = require('./config'); const responseBuilder = (payload, endpoint, destination) => { diff --git a/src/v0/destinations/criteo_audience/networkHandler.js b/src/v0/destinations/criteo_audience/networkHandler.js index 5bf29f63c51..18bd9a93a06 100644 --- a/src/v0/destinations/criteo_audience/networkHandler.js +++ b/src/v0/destinations/criteo_audience/networkHandler.js @@ -1,3 +1,10 @@ +const { + NetworkError, + ThrottledError, + NetworkInstrumentationError, + AbortedError, + RetryableError, +} = require('@rudderstack/integrations-lib'); const { prepareProxyRequest, proxyRequest } = require('../../../adapters/network'); const { isHttpStatusSuccess } = require('../../util/index'); const { REFRESH_TOKEN } = require('../../../adapters/networkhandler/authConstants'); @@ -6,13 +13,6 @@ const { getDynamicErrorType, processAxiosResponse, } = require('../../../adapters/utils/networkUtils'); -const { - NetworkError, - ThrottledError, - NetworkInstrumentationError, - AbortedError, - RetryableError, -} = require('../../util/errorTypes'); // https://developers.criteo.com/marketing-solutions/v2021.01/docs/how-to-handle-api-errors#:~:text=the%20response%20body.-,401,-Authentication%20error // Following fucntion tells us if there is a particular error code in the response. @@ -26,7 +26,11 @@ const criteoAudienceRespHandler = (destResponse, stageMsg) => { // https://developers.criteo.com/marketing-solutions/docs/api-error-types#error-category-types // to handle the case when authorization-token is invalid - if (status === 401 && matchErrorCode('authorization-token-invalid', response)) { + if ( + status === 401 && + (matchErrorCode('authorization-token-invalid', response) || + matchErrorCode('authorization-token-expired', response)) + ) { throw new NetworkError( `${response?.errors[0]?.title} ${stageMsg}`, status, @@ -81,6 +85,7 @@ const responseHandler = (destinationResponse) => { }; }; +// eslint-disable-next-line @typescript-eslint/naming-convention class networkHandler { constructor() { this.responseHandler = responseHandler; diff --git a/src/v0/destinations/criteo_audience/transform.js b/src/v0/destinations/criteo_audience/transform.js index 7ddbdbef203..25e53cc3058 100644 --- a/src/v0/destinations/criteo_audience/transform.js +++ b/src/v0/destinations/criteo_audience/transform.js @@ -1,4 +1,5 @@ const get = require('get-value'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { BASE_ENDPOINT, operation } = require('./config'); const { defaultRequestConfig, @@ -9,7 +10,6 @@ const { getEventType, getDestinationExternalIDInfoForRetl, } = require('../../util'); -const { InstrumentationError } = require('../../util/errorTypes'); const { MappedToDestinationKey } = require('../../../constants'); const { preparePayload } = require('./util'); diff --git a/src/v0/destinations/criteo_audience/util.js b/src/v0/destinations/criteo_audience/util.js index ab58560fb1c..d9d37bc3316 100644 --- a/src/v0/destinations/criteo_audience/util.js +++ b/src/v0/destinations/criteo_audience/util.js @@ -1,6 +1,6 @@ -const _ = require('lodash'); +const lodash = require('lodash'); +const { ConfigurationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { isDefinedAndNotNullAndNotEmpty } = require('../../util'); -const { ConfigurationError, InstrumentationError } = require('../../util/errorTypes'); const { MAX_IDENTIFIERS } = require('./config'); const populateIdentifiers = (audienceList, audienceType) => { @@ -14,7 +14,7 @@ const populateIdentifiers = (audienceList, audienceType) => { } identifiers.push(userTraits[audienceType]); }); - const identifierChunks = _.chunk(identifiers, MAX_IDENTIFIERS); + const identifierChunks = lodash.chunk(identifiers, MAX_IDENTIFIERS); return identifierChunks; }; diff --git a/src/v0/destinations/custify/deleteUsers.js b/src/v0/destinations/custify/deleteUsers.js index e90abe7abb0..147fcc602ca 100644 --- a/src/v0/destinations/custify/deleteUsers.js +++ b/src/v0/destinations/custify/deleteUsers.js @@ -1,9 +1,13 @@ +const { + ConfigurationError, + InstrumentationError, + NetworkError, +} = require('@rudderstack/integrations-lib'); const { httpDELETE } = require('../../../adapters/network'); const { processAxiosResponse, getDynamicErrorType, } = require('../../../adapters/utils/networkUtils'); -const { ConfigurationError, InstrumentationError, NetworkError } = require('../../util/errorTypes'); const { executeCommonValidations } = require('../../util/regulation-api'); const tags = require('../../util/tags'); diff --git a/src/v0/destinations/custify/transform.js b/src/v0/destinations/custify/transform.js index fd81511982a..6b08be1c566 100644 --- a/src/v0/destinations/custify/transform.js +++ b/src/v0/destinations/custify/transform.js @@ -1,4 +1,5 @@ const get = require('get-value'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType, MappedToDestinationKey } = require('../../../constants'); const { ConfigCategory } = require('./config'); const { @@ -9,7 +10,6 @@ const { simpleProcessRouterDest, } = require('../../util'); const { processIdentify, processTrack, processGroup } = require('./util'); -const { InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); /** diff --git a/src/v0/destinations/custify/util.js b/src/v0/destinations/custify/util.js index d943b5c8bf6..ae6f21fe20f 100644 --- a/src/v0/destinations/custify/util.js +++ b/src/v0/destinations/custify/util.js @@ -1,4 +1,5 @@ const get = require('get-value'); +const { InstrumentationError, NetworkError } = require('@rudderstack/integrations-lib'); const { ConfigCategory, MappingConfig, @@ -16,7 +17,6 @@ const { constructPayload, isHttpStatusSuccess, } = require('../../util'); -const { InstrumentationError, NetworkError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/customerio/transform.js b/src/v0/destinations/customerio/transform.js index 1dd5b29973c..be4486717c1 100644 --- a/src/v0/destinations/customerio/transform.js +++ b/src/v0/destinations/customerio/transform.js @@ -1,6 +1,7 @@ const get = require('get-value'); const btoa = require('btoa'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType, MappedToDestinationKey } = require('../../../constants'); const { @@ -12,6 +13,7 @@ const { adduserIdFromExternalId, getFieldValueFromMessage, handleRtTfSingleEventError, + validateEventName, } = require('../../util'); const logger = require('../../../logger'); @@ -23,7 +25,6 @@ const { defaultResponseBuilder, validateConfigFields, } = require('./util'); -const { InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); function responseBuilder(message, evType, evName, destination, messageType) { @@ -101,6 +102,7 @@ function processSingleMessage(message, destination) { break; case EventType.TRACK: evType = 'event'; + validateEventName(message.event); evName = message.event; break; case EventType.ALIAS: @@ -113,10 +115,11 @@ function processSingleMessage(message, destination) { logger.error(`could not determine type ${messageType}`); throw new InstrumentationError(`could not determine type ${messageType}`); } + evName = evName ? String(evName) : evName; const response = responseBuilder(message, evType, evName, destination, messageType); // replace default domain with EU data center domainc for EU based account - if (destination.Config.datacenterEU) { + if (destination.Config?.datacenter === 'EU' || destination.Config?.datacenterEU) { response.endpoint = response.endpoint.replace('track.customer.io', 'track-eu.customer.io'); } diff --git a/src/v0/destinations/customerio/util.js b/src/v0/destinations/customerio/util.js index dec16b355ef..ef983748a51 100644 --- a/src/v0/destinations/customerio/util.js +++ b/src/v0/destinations/customerio/util.js @@ -1,8 +1,8 @@ const get = require('get-value'); const set = require('set-value'); const truncate = require('truncate-utf8-bytes'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { MAX_BATCH_SIZE, configFieldsToCheck } = require('./config'); -const logger = require('../../../logger'); const { constructPayload, defaultPutRequestConfig, @@ -29,8 +29,6 @@ const { DEVICE_REGISTER_ENDPOINT, } = require('./config'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); - const deviceRelatedEventNames = [ 'Application Installed', 'Application Opened', @@ -102,7 +100,7 @@ const isdeviceRelatedEventName = (eventName, destination) => const identifyResponseBuilder = (userId, message) => { const rawPayload = {}; // if userId is not there simply drop the payload - const id = userId || getFieldValueFromMessage(message, "email"); + const id = userId || getFieldValueFromMessage(message, 'email'); if (!id) { throw new InstrumentationError('userId or email is not present'); } @@ -177,6 +175,7 @@ const aliasResponseBuilder = (message, userId) => { if (validateEmail(userId)) { cioProperty = 'email'; } + // eslint-disable-next-line @typescript-eslint/naming-convention let prev_cioProperty = 'id'; if (validateEmail(message.previousId)) { prev_cioProperty = 'email'; @@ -229,12 +228,11 @@ const defaultResponseBuilder = (message, evName, userId, evType, destination, me let requestConfig = defaultPostRequestConfig; // any other event type except identify const token = get(message, 'context.device.token'); - const id = userId || getFieldValueFromMessage(message, "email"); + const id = userId || getFieldValueFromMessage(message, 'email'); // use this if only top level keys are to be sent // DEVICE DELETE from CustomerIO const isDeviceDeleteEvent = deviceDeleteRelatedEventName === evName; if (isDeviceDeleteEvent) { - if (!id || !token) { throw new InstrumentationError('userId/email or device_token not present'); } @@ -253,7 +251,7 @@ const defaultResponseBuilder = (message, evName, userId, evType, destination, me last_used: Math.floor(new Date(timestamp).getTime() / 1000), }; const deviceType = get(message, 'context.device.type'); - if (deviceType && typeof deviceType === "string") { + if (deviceType && typeof deviceType === 'string') { // Ref - https://www.customer.io/docs/api/#operation/add_device // supported platform are "ios", "android" devProps.platform = isAppleFamily(deviceType) ? 'ios' : deviceType.toLowerCase(); @@ -288,10 +286,6 @@ const defaultResponseBuilder = (message, evName, userId, evType, destination, me // 100 - len(`Viewed Screen`) = 86 trimmedEvName = `Viewed ${truncate(message.event || message.properties.name, 86)} Screen`; } else { - if (!evName) { - logger.error(`Could not determine event name`); - throw new InstrumentationError(`Could not determine event name`); - } trimmedEvName = truncate(evName, 100); } // anonymous_id needs to be sent for anon track calls to provide information on which anon user is being tracked @@ -306,9 +300,9 @@ const defaultResponseBuilder = (message, evName, userId, evType, destination, me return { rawPayload, endpoint, requestConfig }; }; -const validateConfigFields = destination => { +const validateConfigFields = (destination) => { const { Config } = destination; - configFieldsToCheck.forEach(configProperty => { + configFieldsToCheck.forEach((configProperty) => { if (!Config[configProperty]) { throw new ConfigurationError(`${configProperty} not found in Configs`); } @@ -323,5 +317,5 @@ module.exports = { defaultResponseBuilder, populateSpecedTraits, isdeviceRelatedEventName, - validateConfigFields + validateConfigFields, }; diff --git a/src/v0/destinations/customerio/util.test.js b/src/v0/destinations/customerio/util.test.js index 9117ed287c9..2c308cd262d 100644 --- a/src/v0/destinations/customerio/util.test.js +++ b/src/v0/destinations/customerio/util.test.js @@ -112,17 +112,17 @@ describe('Unit test cases for customerio identifyResponseBuilder', () => { expect(identifyResponseBuilder('user1', getTestMessage())).toEqual(expectedOutput); }); it('No Identifier to send for Identify Call', async () => { - let expectedOutput = "userId or email is not present"; + let expectedOutput = 'userId or email is not present'; try { - identifyResponseBuilder(null, getIdentifyTestMessage()) + identifyResponseBuilder(null, getIdentifyTestMessage()); } catch (error) { expect(error.message).toEqual(expectedOutput); } }); it('No Identifier to send for Identify Call', async () => { - let expectedOutput = "userId or email is not present"; + let expectedOutput = 'userId or email is not present'; try { - identifyResponseBuilder('', getIdentifyTestMessage()) + identifyResponseBuilder('', getIdentifyTestMessage()); } catch (error) { expect(error.message).toEqual(expectedOutput); } @@ -141,26 +141,28 @@ describe('Unit test cases for customerio aliasResponseBuilder', () => { it('Merging happending with previous_id as email and present one as id', async () => { let expectedOutput = { endpoint: 'https://track.customer.io/api/v1/merge_customers', - rawPayload: { primary: { id: 'user1' }, secondary: { email: "abc@test.com" } }, + rawPayload: { primary: { id: 'user1' }, secondary: { email: 'abc@test.com' } }, requestConfig: { requestFormat: 'JSON', requestMethod: 'POST' }, }; - expect(aliasResponseBuilder({ previousId: "abc@test.com" }, "user1")).toEqual(expectedOutput); + expect(aliasResponseBuilder({ previousId: 'abc@test.com' }, 'user1')).toEqual(expectedOutput); }); it('Merging happending with userId as email and present one as id', async () => { let expectedOutput = { endpoint: 'https://track.customer.io/api/v1/merge_customers', - rawPayload: { secondary: { id: 'user1' }, primary: { email: "abc@test.com" } }, + rawPayload: { secondary: { id: 'user1' }, primary: { email: 'abc@test.com' } }, requestConfig: { requestFormat: 'JSON', requestMethod: 'POST' }, }; - expect(aliasResponseBuilder({ previousId: "user1" }, "abc@test.com")).toEqual(expectedOutput); + expect(aliasResponseBuilder({ previousId: 'user1' }, 'abc@test.com')).toEqual(expectedOutput); }); it('Merging happending with userId as email and present one as id', async () => { let expectedOutput = { endpoint: 'https://track.customer.io/api/v1/merge_customers', - rawPayload: { secondary: { email: 'user1@test.com' }, primary: { email: "abc@test.com" } }, + rawPayload: { secondary: { email: 'user1@test.com' }, primary: { email: 'abc@test.com' } }, requestConfig: { requestFormat: 'JSON', requestMethod: 'POST' }, }; - expect(aliasResponseBuilder({ previousId: "user1@test.com" }, "abc@test.com")).toEqual(expectedOutput); + expect(aliasResponseBuilder({ previousId: 'user1@test.com' }, 'abc@test.com')).toEqual( + expectedOutput, + ); }); }); diff --git a/src/v0/destinations/delighted/transform.js b/src/v0/destinations/delighted/transform.js index f5a2afdcaf4..cf80dc878d8 100644 --- a/src/v0/destinations/delighted/transform.js +++ b/src/v0/destinations/delighted/transform.js @@ -1,3 +1,8 @@ +const { + InstrumentationError, + ConfigurationError, + NetworkInstrumentationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { getFieldValueFromMessage, @@ -20,11 +25,6 @@ const { userValidity, } = require('./util'); const { ENDPOINT, TRACKING_EXCLUSION_FIELDS, identifyMapping } = require('./config'); -const { - InstrumentationError, - ConfigurationError, - NetworkInstrumentationError, -} = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const identifyResponseBuilder = (message, { Config }) => { diff --git a/src/v0/destinations/delighted/util.js b/src/v0/destinations/delighted/util.js index 3cf26a3697b..2c92685fd77 100644 --- a/src/v0/destinations/delighted/util.js +++ b/src/v0/destinations/delighted/util.js @@ -1,11 +1,11 @@ -const myAxios = require('../../../util/myAxios'); -const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); -const { getValueFromMessage } = require('../../util'); const { NetworkInstrumentationError, InstrumentationError, NetworkError, -} = require('../../util/errorTypes'); +} = require('@rudderstack/integrations-lib'); +const myAxios = require('../../../util/myAxios'); +const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); +const { getValueFromMessage } = require('../../util'); const { ENDPOINT } = require('./config'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/discord/transform.js b/src/v0/destinations/discord/transform.js index 4eb2f792350..714ee4f52bf 100644 --- a/src/v0/destinations/discord/transform.js +++ b/src/v0/destinations/discord/transform.js @@ -1,6 +1,7 @@ /* eslint-disable no-nested-ternary */ /* eslint-disable no-prototype-builtins */ const Handlebars = require('handlebars'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { @@ -9,7 +10,6 @@ const { getFieldValueFromMessage, simpleProcessRouterDest, } = require('../../util'); -const { InstrumentationError } = require('../../util/errorTypes'); const { stringifyJSON, getName, diff --git a/src/v0/destinations/drip/transform.js b/src/v0/destinations/drip/transform.js index 9abe3e3f778..4ccba076d05 100644 --- a/src/v0/destinations/drip/transform.js +++ b/src/v0/destinations/drip/transform.js @@ -1,3 +1,8 @@ +const { + InstrumentationError, + ConfigurationError, + NetworkInstrumentationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { getDestinationExternalID, @@ -31,11 +36,6 @@ const { createUpdateUser, createList, } = require('./util'); -const { - InstrumentationError, - ConfigurationError, - NetworkInstrumentationError, -} = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const identifyResponseBuilder = async (message, { Config }) => { diff --git a/src/v0/destinations/drip/util.js b/src/v0/destinations/drip/util.js index dbb59fc6afe..a502cf0d202 100644 --- a/src/v0/destinations/drip/util.js +++ b/src/v0/destinations/drip/util.js @@ -1,8 +1,8 @@ +const { NetworkError, AbortedError } = require('@rudderstack/integrations-lib'); const myAxios = require('../../../util/myAxios'); const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); const logger = require('../../../logger'); const { constructPayload, isDefinedAndNotNull } = require('../../util'); -const { NetworkError, AbortedError } = require('../../util/errorTypes'); const { ENDPOINT, productMapping } = require('./config'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/engage/deleteUsers.js b/src/v0/destinations/engage/deleteUsers.js index 940529ea0c6..a3c3055c7d9 100644 --- a/src/v0/destinations/engage/deleteUsers.js +++ b/src/v0/destinations/engage/deleteUsers.js @@ -1,3 +1,4 @@ +const { ConfigurationError, NetworkError } = require('@rudderstack/integrations-lib'); const { httpDELETE } = require('../../../adapters/network'); const { processAxiosResponse, @@ -5,7 +6,6 @@ const { } = require('../../../adapters/utils/networkUtils'); const { isHttpStatusSuccess } = require('../../util'); const tags = require('../../util/tags'); -const { ConfigurationError, NetworkError } = require('../../util/errorTypes'); const { executeCommonValidations } = require('../../util/regulation-api'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/engage/transform.js b/src/v0/destinations/engage/transform.js index 98b8bb2bb9b..f5daafb98cb 100644 --- a/src/v0/destinations/engage/transform.js +++ b/src/v0/destinations/engage/transform.js @@ -1,4 +1,5 @@ const { set } = require('lodash'); +const { TransformationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { defaultRequestConfig, constructPayload, @@ -14,7 +15,6 @@ const { getDestinationExternalID } = require('../../util'); const { EventType } = require('../../../constants'); const { mappingConfig, ConfigCategories } = require('./config'); const { refinePayload, generatePageName, getLists } = require('./utils'); -const { TransformationError, InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const UID_ERROR_MSG = 'Neither externalId nor userId is available'; diff --git a/src/v0/destinations/eventbridge/transform.js b/src/v0/destinations/eventbridge/transform.js index 71c77310747..53c74d0f883 100644 --- a/src/v0/destinations/eventbridge/transform.js +++ b/src/v0/destinations/eventbridge/transform.js @@ -1,5 +1,5 @@ +const { ConfigurationError } = require('@rudderstack/integrations-lib'); const { removeUndefinedAndNullValues, simpleProcessRouterDest } = require('../../util'); -const { ConfigurationError } = require('../../util/errorTypes'); function getResouceList(config) { let resource; diff --git a/src/v0/destinations/facebook_conversions/config.js b/src/v0/destinations/facebook_conversions/config.js new file mode 100644 index 00000000000..0c1fc12e155 --- /dev/null +++ b/src/v0/destinations/facebook_conversions/config.js @@ -0,0 +1,126 @@ +const { getMappingConfig } = require('../../util'); + +const ENDPOINT = (datasetId, accessToken) => + `https://graph.facebook.com/v18.0/${datasetId}/events?access_token=${accessToken}`; + +const CONFIG_CATEGORIES = { + USERDATA: { + standard: false, + type: 'identify', + name: 'FBCUserDataConfig', + }, + COMMON: { name: 'FBCCommonConfig' }, + APPDATA: { name: 'FBCAppEventsConfig' }, + SIMPLE_TRACK: { + standard: false, + type: 'simple track', + name: 'FBCSimpleCustomConfig', + }, + PRODUCT_LIST_VIEWED: { + standard: true, + type: 'product list viewed', + eventName: 'ViewContent', + name: 'FBCProductListViewedCustomData', + }, + PRODUCT_VIEWED: { + standard: true, + type: 'product viewed', + eventName: 'ViewContent', + name: 'FBCProductViewedCustomData', + }, + PRODUCT_ADDED: { + standard: true, + type: 'product added', + eventName: 'AddToCart', + name: 'FBCProductAddedCustomData', + }, + ORDER_COMPLETED: { + standard: true, + type: 'order completed', + eventName: 'Purchase', + name: 'FBCOrderCompletedCustomData', + }, + PRODUCTS_SEARCHED: { + standard: true, + type: 'products searched', + eventName: 'Search', + name: 'FBCProductSearchedCustomData', + }, + CHECKOUT_STARTED: { + standard: true, + type: 'checkout started', + eventName: 'InitiateCheckout', + name: 'FBCCheckoutStartedCustomData', + }, + PAYMENT_INFO_ENTERED: { + standard: true, + type: 'payment info entered', + eventName: 'AddPaymentInfo', + name: 'FBCPaymentInfoEnteredCustomData', + }, + PRODUCT_ADDED_TO_WISHLIST: { + standard: true, + type: 'product added to wishlist', + eventName: 'AddToWishlist', + name: 'FBCProductAddedToWishlistCustomData', + }, + OTHER_STANDARD: { + standard: true, + type: 'otherStandard', + name: 'FBCSimpleCustomConfig', + }, + PAGE_VIEW: { + standard: true, + type: 'page_view', + eventName: 'PageView', + name: 'FBCSimpleCustomConfig', + }, +}; + +const MAPPING_CONFIG = getMappingConfig(CONFIG_CATEGORIES, __dirname); +const ACTION_SOURCES_VALUES = [ + 'email', + 'website', + 'app', + 'phone_call', + 'chat', + 'physical_store', + 'system_generated', + 'other', +]; + +const OTHER_STANDARD_EVENTS = [ + 'Lead', + 'CompleteRegistration', + 'Contact', + 'CustomizeProduct', + 'Donate', + 'FindLocation', + 'Schedule', + 'StartTrial', + 'SubmitApplication', + 'Subscribe', +]; + +const FB_CONVERSIONS_DEFAULT_EXCLUSION = ['opt_out', 'event_id', 'action_source']; +const STANDARD_ECOMM_EVENTS_CATEGORIES = [ + CONFIG_CATEGORIES.PRODUCT_LIST_VIEWED, + CONFIG_CATEGORIES.PRODUCT_VIEWED, + CONFIG_CATEGORIES.PRODUCT_ADDED, + CONFIG_CATEGORIES.ORDER_COMPLETED, + CONFIG_CATEGORIES.PRODUCTS_SEARCHED, + CONFIG_CATEGORIES.CHECKOUT_STARTED, + CONFIG_CATEGORIES.PAYMENT_INFO_ENTERED, + CONFIG_CATEGORIES.PRODUCT_ADDED_TO_WISHLIST, +]; + +module.exports = { + ENDPOINT, + MAPPING_CONFIG, + CONFIG_CATEGORIES, + ACTION_SOURCES_VALUES, + FB_CONVERSIONS_DEFAULT_EXCLUSION, + STANDARD_ECOMM_EVENTS_CATEGORIES, + OTHER_STANDARD_EVENTS, + DESTINATION: 'FACEBOOK_CONVERSIONS', +}; diff --git a/src/v0/destinations/facebook_conversions/data/FBCAppEventsConfig.json b/src/v0/destinations/facebook_conversions/data/FBCAppEventsConfig.json new file mode 100644 index 00000000000..e8e2944ea06 --- /dev/null +++ b/src/v0/destinations/facebook_conversions/data/FBCAppEventsConfig.json @@ -0,0 +1,101 @@ +[ + { + "destKey": "advertiser_tracking_enabled", + "sourceKeys": "context.device.adTrackingEnabled", + "required": true + }, + { + "destKey": "application_tracking_enabled", + "sourceKeys": "properties.application_tracking_enabled", + "required": true + }, + { + "destKey": "extinfo.0", + "sourceKeys": "context.device.type", + "required": true, + "metadata": { + "type": "toLower" + } + }, + { + "destKey": "extinfo.1", + "sourceKeys": "context.app.namespace" + }, + { + "destKey": "extinfo.2", + "sourceKeys": "context.app.build" + }, + { + "destKey": "extinfo.3", + "sourceKeys": "context.app.version" + }, + { + "destKey": "extinfo.4", + "sourceKeys": "context.os.version", + "required": true + }, + { + "destKey": "extinfo.5", + "sourceKeys": "context.device.model" + }, + { + "destKey": "extinfo.6", + "sourceKeys": "context.locale" + }, + { + "destKey": "extinfo.7", + "sourceKeys": "context.abv_timezone" + }, + { + "destKey": "extinfo.8", + "sourceKeys": "context.network.carrier" + }, + { + "destKey": "extinfo.9", + "sourceKeys": "context.screen.width" + }, + { + "destKey": "extinfo.10", + "sourceKeys": "context.screen.height" + }, + { + "destKey": "extinfo.11", + "sourceKeys": "context.screen.density" + }, + { + "destKey": "extinfo.12", + "sourceKeys": "context.cpu_cores" + }, + { + "destKey": "extinfo.13", + "sourceKeys": "context.ext_storage_size" + }, + { + "destKey": "extinfo.14", + "sourceKeys": "context.avl_storage_size" + }, + { + "destKey": "extinfo.15", + "sourceKeys": "context.timezone" + }, + { + "destKey": "campaign_ids", + "sourceKeys": ["properties.campaignId", "context.traits.campaignId", "context.campaign.name"] + }, + { + "destKey": "install_referrer", + "sourceKeys": "properties.install_referrer" + }, + { + "destKey": "installer_package", + "sourceKeys": "properties.installer_package" + }, + { + "destKey": "url_schemes", + "sourceKeys": "properties.url_schemes" + }, + { + "destKey": "windows_attribution_id", + "sourceKeys": "properties.windows_attribution_id" + } +] diff --git a/src/v0/destinations/facebook_conversions/data/FBCCheckoutStartedCustomData.json b/src/v0/destinations/facebook_conversions/data/FBCCheckoutStartedCustomData.json new file mode 100644 index 00000000000..6bef31195b2 --- /dev/null +++ b/src/v0/destinations/facebook_conversions/data/FBCCheckoutStartedCustomData.json @@ -0,0 +1,53 @@ +[ + { + "destKey": "content_ids", + "sourceKeys": "", + "metadata": { + "defaultValue": [] + } + }, + { + "destKey": "contents", + "sourceKeys": "", + "metadata": { + "defaultValue": [] + } + }, + { + "destKey": "content_type", + "sourceKeys": "", + "metadata": { + "defaultValue": "product" + } + }, + { + "destKey": "content_category", + "sourceKeys": "properties.category" + }, + { + "destKey": "currency", + "sourceKeys": "properties.currency", + "metadata": { + "defaultValue": "USD" + } + }, + { + "destKey": "value", + "sourceKeys": [ + "properties.revenue", + "properties.value", + "properties.price", + "properties.total" + ], + "metadata": { + "type": "numberForRevenue" + } + }, + { + "destKey": "num_items", + "sourceKeys": "", + "metadata": { + "defaultValue": 0 + } + } +] diff --git a/src/v0/destinations/facebook_conversions/data/FBCCommonConfig.json b/src/v0/destinations/facebook_conversions/data/FBCCommonConfig.json new file mode 100644 index 00000000000..11a81a20abc --- /dev/null +++ b/src/v0/destinations/facebook_conversions/data/FBCCommonConfig.json @@ -0,0 +1,37 @@ +[ + { + "destKey": "event_name", + "sourceKeys": ["event", "type"], + "required": true + }, + { + "destKey": "event_time", + "sourceKeys": "timestamp", + "sourceFromGenericMap": true, + "required": true, + "metadata": { + "type": "secondTimestamp" + } + }, + { + "destKey": "event_source_url", + "sourceKeys": "pageUrl", + "sourceFromGenericMap": true + }, + { + "destKey": "opt_out", + "sourceKeys": ["traits.opt_out", "context.traits.opt_out", "properties.opt_out"] + }, + { + "destKey": "event_id", + "sourceKeys": ["traits.event_id", "context.traits.event_id", "properties.event_id", "messageId"] + }, + { + "destKey": "action_source", + "sourceKeys": [ + "traits.action_source", + "context.traits.action_source", + "properties.action_source" + ] + } +] diff --git a/src/v0/destinations/facebook_conversions/data/FBCOrderCompletedCustomData.json b/src/v0/destinations/facebook_conversions/data/FBCOrderCompletedCustomData.json new file mode 100644 index 00000000000..799ddfcd856 --- /dev/null +++ b/src/v0/destinations/facebook_conversions/data/FBCOrderCompletedCustomData.json @@ -0,0 +1,57 @@ +[ + { + "destKey": "content_ids", + "sourceKeys": "", + "metadata": { + "defaultValue": [] + } + }, + { + "destKey": "contents", + "sourceKeys": "", + "metadata": { + "defaultValue": [] + } + }, + { + "destKey": "content_type", + "sourceKeys": "", + "metadata": { + "defaultValue": "product" + } + }, + { + "destKey": "content_category", + "sourceKeys": "properties.category" + }, + { + "destKey": "content_name", + "sourceKeys": ["properties.content_name", "properties.contentName"] + }, + { + "destKey": "currency", + "sourceKeys": "properties.currency", + "metadata": { + "defaultValue": "USD" + } + }, + { + "destKey": "value", + "sourceKeys": [ + "properties.revenue", + "properties.value", + "properties.price", + "properties.total" + ], + "metadata": { + "type": "numberForRevenue" + } + }, + { + "destKey": "num_items", + "sourceKeys": "", + "metadata": { + "defaultValue": 0 + } + } +] diff --git a/src/v0/destinations/facebook_conversions/data/FBCPaymentInfoEnteredCustomData.json b/src/v0/destinations/facebook_conversions/data/FBCPaymentInfoEnteredCustomData.json new file mode 100644 index 00000000000..5f346732a18 --- /dev/null +++ b/src/v0/destinations/facebook_conversions/data/FBCPaymentInfoEnteredCustomData.json @@ -0,0 +1,42 @@ +[ + { + "destKey": "content_ids", + "sourceKeys": "", + "metadata": { + "defaultValue": [] + } + }, + { + "destKey": "contents", + "sourceKeys": "", + "metadata": { + "defaultValue": [] + } + }, + { + "destKey": "content_category", + "sourceKeys": "properties.category", + "metadata": { + "defaultValue": "" + } + }, + { + "destKey": "currency", + "sourceKeys": "properties.currency", + "metadata": { + "defaultValue": "USD" + } + }, + { + "destKey": "value", + "sourceKeys": [ + "properties.revenue", + "properties.value", + "properties.price", + "properties.total" + ], + "metadata": { + "type": "numberForRevenue" + } + } +] diff --git a/src/v0/destinations/facebook_conversions/data/FBCProductAddedCustomData.json b/src/v0/destinations/facebook_conversions/data/FBCProductAddedCustomData.json new file mode 100644 index 00000000000..28e981d9e5f --- /dev/null +++ b/src/v0/destinations/facebook_conversions/data/FBCProductAddedCustomData.json @@ -0,0 +1,56 @@ +[ + { + "destKey": "content_ids", + "sourceKeys": "", + "metadata": { + "defaultValue": [] + } + }, + { + "destKey": "contents", + "sourceKeys": "", + "metadata": { + "defaultValue": [] + } + }, + { + "destKey": "content_type", + "sourceKeys": "", + "metadata": { + "defaultValue": "product" + } + }, + { + "destKey": "content_category", + "sourceKeys": "properties.category", + "metadata": { + "defaultValue": "" + } + }, + { + "destKey": "content_name", + "sourceKeys": ["properties.name", "properties.product_name"], + "metadata": { + "defaultValue": "" + } + }, + { + "destKey": "currency", + "sourceKeys": "properties.currency", + "metadata": { + "defaultValue": "USD" + } + }, + { + "destKey": "value", + "sourceKeys": [ + "properties.revenue", + "properties.value", + "properties.price", + "properties.total" + ], + "metadata": { + "type": "numberForRevenue" + } + } +] diff --git a/src/v0/destinations/facebook_conversions/data/FBCProductAddedToWishlistCustomData.json b/src/v0/destinations/facebook_conversions/data/FBCProductAddedToWishlistCustomData.json new file mode 100644 index 00000000000..796d7ab3d47 --- /dev/null +++ b/src/v0/destinations/facebook_conversions/data/FBCProductAddedToWishlistCustomData.json @@ -0,0 +1,49 @@ +[ + { + "destKey": "content_ids", + "sourceKeys": "", + "metadata": { + "defaultValue": [] + } + }, + { + "destKey": "contents", + "sourceKeys": "", + "metadata": { + "defaultValue": [] + } + }, + { + "destKey": "content_category", + "sourceKeys": "properties.category", + "metadata": { + "defaultValue": "" + } + }, + { + "destKey": "content_name", + "sourceKeys": ["properties.name", "properties.product_name"], + "metadata": { + "defaultValue": "" + } + }, + { + "destKey": "currency", + "sourceKeys": "properties.currency", + "metadata": { + "defaultValue": "USD" + } + }, + { + "destKey": "value", + "sourceKeys": [ + "properties.revenue", + "properties.value", + "properties.price", + "properties.total" + ], + "metadata": { + "type": "numberForRevenue" + } + } +] diff --git a/src/v0/destinations/facebook_conversions/data/FBCProductListViewedCustomData.json b/src/v0/destinations/facebook_conversions/data/FBCProductListViewedCustomData.json new file mode 100644 index 00000000000..4a4e29d34e4 --- /dev/null +++ b/src/v0/destinations/facebook_conversions/data/FBCProductListViewedCustomData.json @@ -0,0 +1,53 @@ +[ + { + "destKey": "content_ids", + "sourceKeys": "", + "metadata": { + "defaultValue": [] + } + }, + { + "destKey": "contents", + "sourceKeys": "", + "metadata": { + "defaultValue": [] + } + }, + { + "destKey": "content_type", + "sourceKeys": "", + "metadata": { + "defaultValue": "product" + } + }, + { + "destKey": "content_category", + "sourceKeys": "properties.category", + "metadata": { + "defaultValue": "" + } + }, + { + "destKey": "content_name", + "sourceKeys": ["properties.content_name", "properties.contentName"] + }, + { + "destKey": "currency", + "sourceKeys": "properties.currency", + "metadata": { + "defaultValue": "USD" + } + }, + { + "destKey": "value", + "sourceKeys": [ + "properties.revenue", + "properties.value", + "properties.price", + "properties.total" + ], + "metadata": { + "type": "numberForRevenue" + } + } +] diff --git a/src/v0/destinations/facebook_conversions/data/FBCProductSearchedCustomData.json b/src/v0/destinations/facebook_conversions/data/FBCProductSearchedCustomData.json new file mode 100644 index 00000000000..08b2e755ec7 --- /dev/null +++ b/src/v0/destinations/facebook_conversions/data/FBCProductSearchedCustomData.json @@ -0,0 +1,53 @@ +[ + { + "destKey": "content_ids", + "sourceKeys": "", + "metadata": { + "defaultValue": [] + } + }, + { + "destKey": "contents", + "sourceKeys": "", + "metadata": { + "defaultValue": [] + } + }, + { + "destKey": "content_type", + "sourceKeys": "", + "metadata": { + "defaultValue": "product" + } + }, + { + "destKey": "content_category", + "sourceKeys": "properties.category", + "metadata": { + "defaultValue": "" + } + }, + { + "destKey": "currency", + "sourceKeys": "properties.currency", + "metadata": { + "defaultValue": "USD" + } + }, + { + "destKey": "value", + "sourceKeys": [ + "properties.revenue", + "properties.value", + "properties.price", + "properties.total" + ], + "metadata": { + "type": "numberForRevenue" + } + }, + { + "destKey": "search_string", + "sourceKeys": "properties.query" + } +] diff --git a/src/v0/destinations/facebook_conversions/data/FBCProductViewedCustomData.json b/src/v0/destinations/facebook_conversions/data/FBCProductViewedCustomData.json new file mode 100644 index 00000000000..28e981d9e5f --- /dev/null +++ b/src/v0/destinations/facebook_conversions/data/FBCProductViewedCustomData.json @@ -0,0 +1,56 @@ +[ + { + "destKey": "content_ids", + "sourceKeys": "", + "metadata": { + "defaultValue": [] + } + }, + { + "destKey": "contents", + "sourceKeys": "", + "metadata": { + "defaultValue": [] + } + }, + { + "destKey": "content_type", + "sourceKeys": "", + "metadata": { + "defaultValue": "product" + } + }, + { + "destKey": "content_category", + "sourceKeys": "properties.category", + "metadata": { + "defaultValue": "" + } + }, + { + "destKey": "content_name", + "sourceKeys": ["properties.name", "properties.product_name"], + "metadata": { + "defaultValue": "" + } + }, + { + "destKey": "currency", + "sourceKeys": "properties.currency", + "metadata": { + "defaultValue": "USD" + } + }, + { + "destKey": "value", + "sourceKeys": [ + "properties.revenue", + "properties.value", + "properties.price", + "properties.total" + ], + "metadata": { + "type": "numberForRevenue" + } + } +] diff --git a/src/v0/destinations/facebook_conversions/data/FBCSimpleCustomConfig.json b/src/v0/destinations/facebook_conversions/data/FBCSimpleCustomConfig.json new file mode 100644 index 00000000000..e506b333347 --- /dev/null +++ b/src/v0/destinations/facebook_conversions/data/FBCSimpleCustomConfig.json @@ -0,0 +1,21 @@ +[ + { + "destKey": "value", + "sourceKeys": [ + "properties.revenue", + "properties.value", + "properties.price", + "properties.total" + ], + "metadata": { + "type": "numberForRevenue" + } + }, + { + "destKey": "currency", + "sourceKeys": "properties.currency", + "metadata": { + "defaultValue": "USD" + } + } +] diff --git a/src/v0/destinations/facebook_conversions/data/FBCUserDataConfig.json b/src/v0/destinations/facebook_conversions/data/FBCUserDataConfig.json new file mode 100644 index 00000000000..2d72260ac66 --- /dev/null +++ b/src/v0/destinations/facebook_conversions/data/FBCUserDataConfig.json @@ -0,0 +1,169 @@ +[ + { + "destKey": "external_id", + "sourceKeys": [ + "userId", + "traits.userId", + "traits.id", + "context.traits.userId", + "context.traits.id", + "anonymousId" + ], + "required": true, + "metadata": { + "type": "hashToSha256" + } + }, + { + "destKey": "em", + "sourceKeys": ["traits.email", "context.traits.email"], + "required": false, + "metadata": { + "type": ["trim", "toLower", "hashToSha256"] + } + }, + { + "destKey": "ph", + "sourceKeys": ["traits.phone", "context.traits.phone"], + "required": false, + "metadata": { + "type": "hashToSha256" + } + }, + { + "destKey": "ge", + "sourceKeys": ["traits.gender", "context.traits.gender"], + "required": false, + "metadata": { + "type": "getFbGenderVal" + } + }, + { + "destKey": "db", + "sourceKeys": ["traits.birthday", "context.traits.birthday"], + "required": false, + "metadata": { + "type": "hashToSha256" + } + }, + { + "destKey": "ln", + "sourceKeys": [ + "traits.lastname", + "traits.lastName", + "traits.last_name", + "context.traits.lastname", + "context.traits.lastName", + "context.traits.last_name" + ], + "required": false, + "metadata": { + "type": ["trim", "toLower", "hashToSha256"] + } + }, + { + "destKey": "fn", + "sourceKeys": [ + "traits.firstname", + "traits.firstName", + "traits.first_name", + "context.traits.firstname", + "context.traits.firstName", + "context.traits.first_name" + ], + "required": false, + "metadata": { + "type": ["trim", "toLower", "hashToSha256"] + } + }, + { + "destKey": "name", + "sourceKeys": ["traits.name", "context.traits.name"], + "required": false, + "metadata": { + "type": "toString" + } + }, + { + "destKey": "ct", + "sourceKeys": ["traits.address.city", "context.traits.address.city"], + "required": false, + "metadata": { + "type": ["toLower", "hashToSha256"] + } + }, + { + "destKey": "st", + "sourceKeys": ["traits.address.state", "context.traits.address.state"], + "required": false, + "metadata": { + "type": ["toLower", "hashToSha256"] + } + }, + { + "destKey": "zp", + "sourceKeys": [ + "traits.address.zip", + "context.traits.address.zip", + "traits.address.postalCode", + "context.traits.address.postalCode" + ], + "required": false, + "metadata": { + "type": ["toLower", "hashToSha256"] + } + }, + { + "destKey": "country", + "sourceKeys": ["traits.address.country", "context.traits.address.country"], + "required": false, + "metadata": { + "type": ["toLower", "hashToSha256"] + } + }, + { + "destKey": "client_ip_address", + "sourceKeys": ["context.ip", "request_ip"], + "required": false + }, + { + "destKey": "client_user_agent", + "sourceKeys": "context.userAgent", + "required": false + }, + { + "destKey": "fbc", + "sourceKeys": "context.fbc", + "required": false + }, + { + "destKey": "fbp", + "sourceKeys": "context.fbp", + "required": false + }, + { + "destKey": "subscription_id", + "sourceKeys": "context.subscription_id", + "required": false + }, + { + "destKey": "lead_id", + "sourceKeys": "context.lead_id", + "required": false + }, + { + "destKey": "fb_login_id", + "sourceKeys": "context.fb_login_id", + "required": false + }, + { + "destKey": "madid", + "sourceKeys": "context.device.advertisingId", + "required": false + }, + { + "destKey": "anon_id", + "sourceKeys": ["properties.anon_id", "context.device.advertisingId"], + "required": false + } +] diff --git a/src/v0/destinations/facebook_conversions/networkHandler.js b/src/v0/destinations/facebook_conversions/networkHandler.js new file mode 100644 index 00000000000..0ea7aff7da6 --- /dev/null +++ b/src/v0/destinations/facebook_conversions/networkHandler.js @@ -0,0 +1,6 @@ +const { networkHandler, errorResponseHandler } = require('../../util/facebookUtils/networkHandler'); + +module.exports = { + networkHandler, + errorResponseHandler, +}; diff --git a/src/v0/destinations/facebook_conversions/transform.js b/src/v0/destinations/facebook_conversions/transform.js new file mode 100644 index 00000000000..1bb97b2672f --- /dev/null +++ b/src/v0/destinations/facebook_conversions/transform.js @@ -0,0 +1,192 @@ +/* eslint-disable no-param-reassign */ +const get = require('get-value'); +const moment = require('moment'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); +const { + CONFIG_CATEGORIES, + MAPPING_CONFIG, + FB_CONVERSIONS_DEFAULT_EXCLUSION, + DESTINATION, + ENDPOINT, +} = require('./config'); +const { EventType } = require('../../../constants'); + +const { + constructPayload, + extractCustomFields, + getIntegrationsObj, + getValidDynamicFormConfig, + simpleProcessRouterDest, + getHashFromArray, + getFieldValueFromMessage, +} = require('../../util'); + +const { + populateCustomDataBasedOnCategory, + getCategoryFromEvent, + getActionSource, + fetchAppData, +} = require('./utils'); + +const { + transformedPayloadData, + fetchUserData, + formingFinalResponse, +} = require('../../util/facebookUtils'); + +const responseBuilderSimple = (message, category, destination) => { + const { Config, ID } = destination; + let { categoryToContent } = Config; + if (Array.isArray(categoryToContent)) { + categoryToContent = getValidDynamicFormConfig(categoryToContent, 'from', 'to', DESTINATION, ID); + } + + const { + blacklistPiiProperties, + whitelistPiiProperties, + limitedDataUSage, + testDestination, + testEventCode, + datasetId, + accessToken, + actionSource, + } = Config; + const integrationsObj = getIntegrationsObj(message, DESTINATION.toLowerCase()); + + const userData = fetchUserData( + message, + Config, + MAPPING_CONFIG[CONFIG_CATEGORIES.USERDATA.name], + DESTINATION.toLowerCase(), + ); + + if (category.standard) { + message.event = category.eventName; + } + + const commonData = constructPayload( + message, + MAPPING_CONFIG[CONFIG_CATEGORIES.COMMON.name], + DESTINATION.toLowerCase(), + ); + commonData.action_source = getActionSource(commonData, actionSource); + + let customData = {}; + customData = extractCustomFields( + message, + customData, + ['properties'], + FB_CONVERSIONS_DEFAULT_EXCLUSION, + ); + + customData = transformedPayloadData( + message, + customData, + blacklistPiiProperties, + whitelistPiiProperties, + integrationsObj, + ); + customData = populateCustomDataBasedOnCategory(customData, message, category, categoryToContent); + + if (limitedDataUSage) { + const dataProcessingOptions = get(message, 'context.dataProcessingOptions'); + if (dataProcessingOptions && Array.isArray(dataProcessingOptions)) { + [ + commonData.data_processing_options, + commonData.data_processing_options_country, + commonData.data_processing_options_state, + ] = dataProcessingOptions; + } + } + + let appData = {}; + if (commonData.action_source === 'app') { + appData = fetchAppData(message); + } + + return formingFinalResponse( + userData, + commonData, + customData, + ENDPOINT(datasetId, accessToken), + testDestination, + testEventCode, + appData, + ); +}; + +const processEvent = (message, destination) => { + if (!message.type) { + throw new InstrumentationError("'type' is missing"); + } + + const timeStamp = getFieldValueFromMessage(message, 'timestamp'); + if (timeStamp) { + const start = moment.unix(moment(timeStamp).format('X')); + const current = moment.unix(moment().format('X')); + // calculates past event in days + const deltaDay = Math.ceil(moment.duration(current.diff(start)).asDays()); + // calculates future event in minutes + const deltaMin = Math.ceil(moment.duration(start.diff(current)).asMinutes()); + if (deltaDay > 7 || deltaMin > 1) { + throw new InstrumentationError( + 'Events must be sent within seven days of their occurrence or up to one minute in the future.', + ); + } + } + + const { datasetId, accessToken } = destination.Config; + if (!datasetId) { + throw new ConfigurationError('Dataset Id not found. Aborting'); + } + if (!accessToken) { + throw new ConfigurationError('Access token not found. Aborting'); + } + + let eventsToEvents; + if (Array.isArray(destination.Config.eventsToEvents)) { + eventsToEvents = getValidDynamicFormConfig( + destination.Config.eventsToEvents, + 'from', + 'to', + DESTINATION, + destination.ID, + ); + } + + const messageType = message.type.toLowerCase(); + let category; + let mappedEvent; + switch (messageType) { + case EventType.PAGE: + case EventType.SCREEN: + category = CONFIG_CATEGORIES.PAGE_VIEW; + break; + case EventType.TRACK: + if (!message.event || typeof message.event !== 'string') { + throw new InstrumentationError("'event' is required and should be a string"); + } + if (eventsToEvents) { + const eventMappingHash = getHashFromArray(eventsToEvents); + mappedEvent = eventMappingHash[message.event.toLowerCase()]; + } + category = getCategoryFromEvent(mappedEvent || message.event.toLowerCase()); + break; + default: + throw new InstrumentationError(`Message type ${messageType} not supported`); + } + // build the response + return responseBuilderSimple(message, category, destination); +}; + +const process = (event) => processEvent(event.message, event.destination); + +const processRouterDest = async (inputs, reqMetadata) => { + const respList = await simpleProcessRouterDest(inputs, process, reqMetadata); + return respList; +}; + +module.exports = { + process, + processRouterDest, +}; diff --git a/src/v0/destinations/facebook_conversions/utils.js b/src/v0/destinations/facebook_conversions/utils.js new file mode 100644 index 00000000000..26204ec61a3 --- /dev/null +++ b/src/v0/destinations/facebook_conversions/utils.js @@ -0,0 +1,216 @@ +const { InstrumentationError } = require('@rudderstack/integrations-lib'); +const { + CONFIG_CATEGORIES, + OTHER_STANDARD_EVENTS, + STANDARD_ECOMM_EVENTS_CATEGORIES, + MAPPING_CONFIG, + ACTION_SOURCES_VALUES, + DESTINATION, +} = require('./config'); +const { constructPayload, isObject, isAppleFamily } = require('../../util'); +const { getContentType, getContentCategory } = require('../../util/facebookUtils'); + +const getActionSource = (payload, fallbackActionSource) => { + let actionSource = fallbackActionSource; + if (payload.action_source) { + const isActionSourceValid = ACTION_SOURCES_VALUES.includes(payload.action_source); + if (!isActionSourceValid) { + throw new InstrumentationError('Invalid Action Source type'); + } + actionSource = payload.action_source; + } + + return actionSource; +}; + +const getCategoryFromEvent = (eventName) => { + let category = STANDARD_ECOMM_EVENTS_CATEGORIES.find( + (configCategory) => eventName === configCategory.type || eventName === configCategory.eventName, + ); + + if (!category && OTHER_STANDARD_EVENTS.includes(eventName)) { + category = CONFIG_CATEGORIES.OTHER_STANDARD; + category.eventName = eventName; + } + + if (!category && eventName === CONFIG_CATEGORIES.PAGE_VIEW.eventName) { + category = CONFIG_CATEGORIES.PAGE_VIEW; + } + + if (!category) { + category = CONFIG_CATEGORIES.SIMPLE_TRACK; + } + + return category; +}; + +const populateContentsAndContentIDs = ( + productPropertiesArray, + fallbackQuantity, + fallbackDeliveryCategory, +) => { + const contentIds = []; + const contents = []; + if (Array.isArray(productPropertiesArray)) { + productPropertiesArray.forEach((productProps) => { + if (isObject(productProps)) { + const productId = productProps.product_id || productProps.sku || productProps.id; + if (productId) { + contentIds.push(productId); + contents.push({ + id: productId, + quantity: productProps.quantity || fallbackQuantity || 1, + item_price: productProps.price, + delivery_category: productProps.delivery_category || fallbackDeliveryCategory, + }); + } + } + }); + } + + return { contentIds, contents }; +}; + +const validateProductSearchedData = (eventTypeCustomData) => { + const query = eventTypeCustomData.search_string; + const validQueryType = ['string', 'number', 'boolean']; + if (query && !validQueryType.includes(typeof query)) { + throw new InstrumentationError("'query' should be in string format only"); + } +}; + +const populateCustomDataBasedOnCategory = (customData, message, category, categoryToContent) => { + let eventTypeCustomData = {}; + if (category.name) { + eventTypeCustomData = constructPayload(message, MAPPING_CONFIG[category.name]); + } + + switch (category.type) { + case 'product list viewed': { + const { contentIds, contents } = populateContentsAndContentIDs( + message.properties?.products, + message.properties?.quantity, + ); + + const contentCategory = eventTypeCustomData.content_category; + let contentType; + if (contentIds.length > 0) { + contentType = 'product'; + } else if (contentCategory) { + contentIds.push(contentCategory); + contents.push({ + id: contentCategory, + quantity: 1, + }); + contentType = 'product_group'; + } + + eventTypeCustomData = { + ...eventTypeCustomData, + content_ids: contentIds, + contents, + content_type: getContentType( + message, + contentType, + categoryToContent, + DESTINATION.toLowerCase(), + ), + content_category: getContentCategory(contentCategory), + }; + break; + } + case 'product added': + case 'product viewed': + case 'products searched': + case 'payment info entered': + case 'product added to wishlist': { + const contentCategory = eventTypeCustomData.content_category; + const contentType = eventTypeCustomData.content_type; + const { contentIds, contents } = populateContentsAndContentIDs([message.properties]); + eventTypeCustomData = { + ...eventTypeCustomData, + content_ids: contentIds, + contents, + content_type: getContentType( + message, + contentType, + categoryToContent, + DESTINATION.toLowerCase(), + ), + content_category: getContentCategory(contentCategory), + }; + validateProductSearchedData(eventTypeCustomData); + break; + } + case 'order completed': + case 'checkout started': { + const { contentIds, contents } = populateContentsAndContentIDs( + message.properties?.products, + message.properties?.quantity, + message.properties?.delivery_category, + ); + + const contentCategory = eventTypeCustomData.content_category; + const contentType = eventTypeCustomData.content_type; + + eventTypeCustomData = { + ...eventTypeCustomData, + content_ids: contentIds, + contents, + content_type: getContentType( + message, + contentType, + categoryToContent, + DESTINATION.toLowerCase(), + ), + content_category: getContentCategory(contentCategory), + num_items: contentIds.length, + }; + break; + } + case 'page_view': + case 'otherStandard': + case 'simple track': + default: + eventTypeCustomData = { ...eventTypeCustomData }; + break; + } + + return { ...customData, ...eventTypeCustomData }; +}; + +const fetchAppData = (message) => { + const appData = constructPayload( + message, + MAPPING_CONFIG[CONFIG_CATEGORIES.APPDATA.name], + DESTINATION.toLowerCase(), + ); + + if (appData) { + let sourceSDK = appData.extinfo[0]; + if (sourceSDK === 'android') { + sourceSDK = 'a2'; + } else if (isAppleFamily(sourceSDK)) { + sourceSDK = 'i2'; + } else { + // if the sourceSDK is not android or ios + throw new InstrumentationError( + 'Extended device information i.e, "context.device.type" is not a valid value. It should be either android or ios/watchos/ipados/tvos', + ); + } + appData.extinfo[0] = sourceSDK; + } + + appData.extinfo = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''].map( + (val, ind) => (appData.extinfo[ind] ? appData.extinfo[ind] : val), + ); + + return appData; +}; + +module.exports = { + fetchAppData, + getActionSource, + getCategoryFromEvent, + populateCustomDataBasedOnCategory, +}; diff --git a/src/v0/destinations/facebook_offline_conversions/transform.js b/src/v0/destinations/facebook_offline_conversions/transform.js index e30bc2fa9a7..cc95270fcce 100644 --- a/src/v0/destinations/facebook_offline_conversions/transform.js +++ b/src/v0/destinations/facebook_offline_conversions/transform.js @@ -1,3 +1,4 @@ +const { InstrumentationError, TransformationError } = require('@rudderstack/integrations-lib'); const { defaultRequestConfig, simpleProcessRouterDest, @@ -7,7 +8,6 @@ const { const { offlineConversionResponseBuilder, prepareUrls } = require('./utils'); const { EventType } = require('../../../constants'); -const { InstrumentationError, TransformationError } = require('../../util/errorTypes'); const responseBuilder = (endpoint) => { if (endpoint) { diff --git a/src/v0/destinations/facebook_offline_conversions/utils.js b/src/v0/destinations/facebook_offline_conversions/utils.js index 819bf8056d1..c48de4e0b99 100644 --- a/src/v0/destinations/facebook_offline_conversions/utils.js +++ b/src/v0/destinations/facebook_offline_conversions/utils.js @@ -1,5 +1,6 @@ const sha256 = require('sha256'); const get = require('get-value'); +const { ConfigurationError } = require('@rudderstack/integrations-lib'); const { isObject, formatTimeStamp, @@ -22,7 +23,6 @@ const { eventToStandardMapping, MATCH_KEY_FIELD_TYPE_DICTIONARY, } = require('./config'); -const { ConfigurationError } = require('../../util/errorTypes'); /** * @param {*} message diff --git a/src/v0/destinations/facebook_pixel/config.js b/src/v0/destinations/facebook_pixel/config.js index 09be8e043d1..17d5887e1b1 100644 --- a/src/v0/destinations/facebook_pixel/config.js +++ b/src/v0/destinations/facebook_pixel/config.js @@ -1,5 +1,7 @@ const { getMappingConfig } = require('../../util'); +const VERSION = 'v18.0'; + const CONFIG_CATEGORIES = { USERDATA: { standard: false, @@ -15,31 +17,37 @@ const CONFIG_CATEGORIES = { PRODUCT_LIST_VIEWED: { standard: true, type: 'product list viewed', + eventName: 'ViewContent', name: 'FBPIXELPSimpleCustomConfig', }, PRODUCT_VIEWED: { standard: true, type: 'product viewed', + eventName: 'ViewContent', name: 'FBPIXELPSimpleCustomConfig', }, PRODUCT_ADDED: { standard: true, type: 'product added', + eventName: 'AddToCart', name: 'FBPIXELPSimpleCustomConfig', }, ORDER_COMPLETED: { standard: true, type: 'order completed', + eventName: 'Purchase', name: 'FBPIXELPSimpleCustomConfig', }, PRODUCTS_SEARCHED: { standard: true, type: 'products searched', + eventName: 'Search', name: 'FBPIXELPSimpleCustomConfig', }, CHECKOUT_STARTED: { standard: true, type: 'checkout started', + eventName: 'InitiateCheckout', name: 'FBPIXELPSimpleCustomConfig', }, OTHER_STANDARD: { @@ -50,9 +58,15 @@ const CONFIG_CATEGORIES = { PAGE_VIEW: { standard: true, type: 'page_view', + eventName: 'PageView', + name: 'FBPIXELPSimpleCustomConfig', + }, + PAGE: { + standard: false, + type: 'page', + eventName: 'PageView', name: 'FBPIXELPSimpleCustomConfig', }, - PAGE: { standard: false, type: 'page', name: 'FBPIXELPSimpleCustomConfig' }, }; const MAPPING_CONFIG = getMappingConfig(CONFIG_CATEGORIES, __dirname); @@ -67,7 +81,23 @@ const ACTION_SOURCES_VALUES = [ 'other', ]; +const OTHER_STANDARD_EVENTS = [ + 'AddToWishlist', + 'AddPaymentInfo', + 'Lead', + 'CompleteRegistration', + 'Contact', + 'CustomizeProduct', + 'Donate', + 'FindLocation', + 'Schedule', + 'StartTrial', + 'SubmitApplication', + 'Subscribe', +]; + const FB_PIXEL_DEFAULT_EXCLUSION = ['opt_out', 'event_id', 'action_source']; +const FB_PIXEL_CUSTOM_DATA_EXCLUDE_FLATTENING = ['content_ids', 'contents']; const STANDARD_ECOMM_EVENTS_TYPE = [ CONFIG_CATEGORIES.PRODUCT_LIST_VIEWED.type, CONFIG_CATEGORIES.PRODUCT_VIEWED.type, @@ -78,10 +108,13 @@ const STANDARD_ECOMM_EVENTS_TYPE = [ ]; module.exports = { + VERSION, CONFIG_CATEGORIES, MAPPING_CONFIG, ACTION_SOURCES_VALUES, FB_PIXEL_DEFAULT_EXCLUSION, + FB_PIXEL_CUSTOM_DATA_EXCLUDE_FLATTENING, STANDARD_ECOMM_EVENTS_TYPE, + OTHER_STANDARD_EVENTS, DESTINATION: 'FACEBOOK_PIXEL', }; diff --git a/src/v0/destinations/facebook_pixel/networkHandler.js b/src/v0/destinations/facebook_pixel/networkHandler.js index f02453e1eb4..0ea7aff7da6 100644 --- a/src/v0/destinations/facebook_pixel/networkHandler.js +++ b/src/v0/destinations/facebook_pixel/networkHandler.js @@ -1,220 +1,4 @@ -const { isEmpty } = require('lodash'); -const get = require('get-value'); -const { - processAxiosResponse, - getDynamicErrorType, -} = require('../../../adapters/utils/networkUtils'); -const { prepareProxyRequest, proxyRequest } = require('../../../adapters/network'); -const { NetworkError } = require('../../util/errorTypes'); -const tags = require('../../util/tags'); -const { ErrorDetailsExtractorBuilder } = require('../../../util/error-extractor'); - -/** - * Only under below mentioned scenario(s), add the errorCodes, subCodes etc,. to this map - * - * The actual API reference doc to which events from Rudderstack are being sent - * https://developers.facebook.com/docs/marketing-api/reference/ads-pixel/events/v13.0 - * - * The documents referred while formulating the error responses - * 1. https://developers.facebook.com/docs/graph-api/guides/error-handling/ - * - This seems like a generic document that contains errors possible for Graph API - * 2. https://developers.facebook.com/docs/marketing-api/error-reference/ - * - The doc seems to be more related to Marketing API - * 3. https://developers.facebook.com/docs/marketing-api/error-reference/ -{ - // A scenario where in we have to know the error with code and subcode, we can conclude that - // this error will have a particular status, statTags - code1: { - subCode1: { - status: , - // Only tags that are unique to this error needs to be provided - statTags: {}, - messageDetails: { - message: "", - field: - }, - - } - } -} - */ -const errorDetailsMap = { - 100: { - // This error talks about event being sent after seven days or so - 2804003: new ErrorDetailsExtractorBuilder() - .setStatus(400) - .setMessageField('error_user_title') - .build(), - 2804001: new ErrorDetailsExtractorBuilder() - .setStatus(400) - .setMessageField('error_user_title') - .build(), - 2804007: new ErrorDetailsExtractorBuilder() - .setStatus(400) - .setMessageField('error_user_title') - .build(), - 2804016: new ErrorDetailsExtractorBuilder() - .setStatus(400) - .setMessageField('error_user_title') - .build(), - 2804017: new ErrorDetailsExtractorBuilder() - .setStatus(400) - .setMessageField('error_user_title') - .build(), - 2804019: new ErrorDetailsExtractorBuilder() - .setStatus(400) - .setMessageField('error_user_title') - .build(), - 2804048: new ErrorDetailsExtractorBuilder() - .setStatus(400) - .setMessageField('error_user_title') - .build(), - // This error-subcode indicates that the business access token expired or is invalid or sufficient permissions are not provided - // since there is involvement of changes required on dashboard to make event successful - // for now, we are aborting this error-subCode combination - 33: new ErrorDetailsExtractorBuilder() - .setStatus(400) - .setMessage( - "Object with ID 'PIXEL_ID' does not exist, cannot be loaded due to missing permissions, or does not support this operation", - ) - .build(), - default: new ErrorDetailsExtractorBuilder() - .setStatus(400) - .setMessage('Invalid Parameter') - .build(), - }, - 1: { - // An unknown error occurred. - // This error may occur if you set level to adset but the correct value should be campaign - 99: new ErrorDetailsExtractorBuilder() - .setStatus(500) - .setMessage( - 'This error may occur if you set level to adset but the correct value should be campaign', - ) - .build(), - default: new ErrorDetailsExtractorBuilder() - .setStatus(500) - .setMessage('An unknown error occurred') - .build(), - }, - 190: { - 460: new ErrorDetailsExtractorBuilder() - .setStatus(400) - .setMessage( - 'The session has been invalidated because the user changed their password or Facebook has changed the session for security reasons', - ) - .build(), - default: new ErrorDetailsExtractorBuilder() - .setStatus(400) - .setMessage('Invalid OAuth 2.0 access token') - .build(), - }, - 3: { - default: new ErrorDetailsExtractorBuilder() - .setStatus(400) - .setMessage('Capability or permissions issue.') - .build(), - }, - 2: { - default: new ErrorDetailsExtractorBuilder() - .setStatus(500) - .setMessage('Temporary issue due to downtime.') - .build(), - }, - 341: { - default: new ErrorDetailsExtractorBuilder() - .setStatus(500) - .setMessage('Application limit reached: Temporary issue due to downtime or throttling') - .build(), - }, - 368: { - default: new ErrorDetailsExtractorBuilder() - .setStatus(500) - .setMessage('Temporarily blocked for policies violations.') - .build(), - }, - 5000: { - default: new ErrorDetailsExtractorBuilder() - .setStatus(500) - .setMessage('Unknown Error Code') - .build(), - }, - 4: { - default: new ErrorDetailsExtractorBuilder() - .setStatus(429) - .setMessage('API Too Many Calls') - .build(), - }, - 17: { - default: new ErrorDetailsExtractorBuilder() - .setStatus(429) - .setMessage('API User Too Many Calls') - .build(), - }, -}; - -const getErrorDetailsFromErrorMap = (error) => { - const { code, error_subcode: subCode } = error; - let errDetails; - if (!isEmpty(errorDetailsMap[code])) { - errDetails = errorDetailsMap[code][subCode] || errorDetailsMap[code]?.default; - } - return errDetails; -}; - -const getStatus = (error) => { - const errorDetail = getErrorDetailsFromErrorMap(error); - let errorStatus = 500; - const isErrorDetailEmpty = isEmpty(errorDetail); - if (isErrorDetailEmpty) { - // Unhandled error response - return {status: errorStatus, tags: { [tags.TAG_NAMES.META]: tags.METADATA.UNHANDLED_STATUS_CODE, } } - } - errorStatus = errorDetail.status; - - let errorMessage = errorDetail?.messageDetails?.message; - if (errorDetail?.messageDetails?.field) { - errorMessage = get(error, errorDetail?.messageDetails?.field); - } - - return { status: errorStatus, errorMessage }; -}; - -const errorResponseHandler = (destResponse) => { - const { response } = destResponse; - if (!response.error) { - // successful response from facebook pixel api - return; - } - const { error } = response; - const { status, errorMessage, tags: errorStatTags } = getStatus(error); - throw new NetworkError( - `${errorMessage || error.message || 'Unknown failure during response transformation'}`, - status, - { - ...errorStatTags, - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), - }, - { ...response, status: destResponse.status }, - ); -}; - -const destResponseHandler = (destinationResponse) => { - errorResponseHandler(destinationResponse); - return { - destinationResponse: destinationResponse.response, - message: 'Request Processed Successfully', - status: destinationResponse.status, - }; -}; - -function networkHandler() { - // The order of execution also happens in this way - this.prepareProxy = prepareProxyRequest; - this.proxy = proxyRequest; - this.processAxiosResponse = processAxiosResponse; - this.responseHandler = destResponseHandler; -} +const { networkHandler, errorResponseHandler } = require('../../util/facebookUtils/networkHandler'); module.exports = { networkHandler, diff --git a/src/v0/destinations/facebook_pixel/transform.js b/src/v0/destinations/facebook_pixel/transform.js index c81718dea08..8a63998b454 100644 --- a/src/v0/destinations/facebook_pixel/transform.js +++ b/src/v0/destinations/facebook_pixel/transform.js @@ -1,11 +1,14 @@ /* eslint-disable no-param-reassign */ const get = require('get-value'); const moment = require('moment'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const stats = require('../../../util/stats'); const { + VERSION, CONFIG_CATEGORIES, MAPPING_CONFIG, FB_PIXEL_DEFAULT_EXCLUSION, + FB_PIXEL_CUSTOM_DATA_EXCLUDE_FLATTENING, STANDARD_ECOMM_EVENTS_TYPE, } = require('./config'); const { EventType } = require('../../../constants'); @@ -17,24 +20,32 @@ const { getIntegrationsObj, getValidDynamicFormConfig, simpleProcessRouterDest, + getHashFromArray, } = require('../../util'); const { - transformedPayloadData, getActionSource, - fetchUserData, handleProduct, handleSearch, handleProductListViewed, handleOrder, - formingFinalResponse, + populateCustomDataBasedOnCategory, + getCategoryFromEvent, } = require('./utils'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); +const { + transformedPayloadData, + fetchUserData, + formingFinalResponse, +} = require('../../util/facebookUtils'); -const responseBuilderSimple = (message, category, destination, categoryToContent) => { - const { Config } = destination; +const responseBuilderSimple = (message, category, destination) => { + const { Config, ID } = destination; const { pixelId, accessToken } = Config; + let { categoryToContent } = Config; + if (Array.isArray(categoryToContent)) { + categoryToContent = getValidDynamicFormConfig(categoryToContent, 'from', 'to', 'FB_PIXEL', ID); + } if (!pixelId) { throw new ConfigurationError('Pixel Id not found. Aborting'); @@ -55,19 +66,32 @@ const responseBuilderSimple = (message, category, destination, categoryToContent } = Config; const integrationsObj = getIntegrationsObj(message, 'fb_pixel'); - const endpoint = `https://graph.facebook.com/v17.0/${pixelId}/events?access_token=${accessToken}`; + const endpoint = `https://graph.facebook.com/${VERSION}/${pixelId}/events?access_token=${accessToken}`; - const userData = fetchUserData(message, Config); - - let customData = {}; - let commonData = {}; + const userData = fetchUserData( + message, + Config, + MAPPING_CONFIG[CONFIG_CATEGORIES.USERDATA.name], + 'fb_pixel', + ); - commonData = constructPayload(message, MAPPING_CONFIG[CONFIG_CATEGORIES.COMMON.name], 'fb_pixel'); + const commonData = constructPayload( + message, + MAPPING_CONFIG[CONFIG_CATEGORIES.COMMON.name], + 'fb_pixel', + ); commonData.action_source = getActionSource(commonData, message?.channel); + let customData = {}; + if (category.type !== 'identify') { customData = flattenJson( - extractCustomFields(message, customData, ['properties'], FB_PIXEL_DEFAULT_EXCLUSION), + extractCustomFields( + message, + customData, + ['properties'], + [...FB_PIXEL_DEFAULT_EXCLUSION, ...FB_PIXEL_CUSTOM_DATA_EXCLUDE_FLATTENING], + ), ); if (standardPageCall && category.type === 'page') { category.standard = true; @@ -82,74 +106,20 @@ const responseBuilderSimple = (message, category, destination, categoryToContent customData, blacklistPiiProperties, whitelistPiiProperties, - category.standard, integrationsObj, ); message.properties = message.properties || {}; if (category.standard) { - switch (category.type) { - case 'product list viewed': - customData = { - ...customData, - ...handleProductListViewed(message, categoryToContent), - }; - commonData.event_name = 'ViewContent'; - break; - case 'product viewed': - customData = { - ...customData, - ...handleProduct(message, categoryToContent, valueFieldIdentifier), - }; - commonData.event_name = 'ViewContent'; - break; - case 'product added': - customData = { - ...customData, - ...handleProduct(message, categoryToContent, valueFieldIdentifier), - }; - commonData.event_name = 'AddToCart'; - break; - case 'order completed': - customData = { - ...customData, - ...handleOrder(message, categoryToContent), - }; - commonData.event_name = 'Purchase'; - break; - case 'products searched': { - customData = { - ...customData, - ...handleSearch(message), - }; - commonData.event_name = 'Search'; - break; - } - case 'checkout started': { - const orderPayload = handleOrder(message, categoryToContent); - delete orderPayload.content_name; - customData = { - ...customData, - ...orderPayload, - }; - commonData.event_name = 'InitiateCheckout'; - break; - } - case 'page_view': // executed when sending track calls but with standard type PageView - case 'page': // executed when page call is done with standard PageView turned on - customData = { ...customData }; - commonData.event_name = 'PageView'; - break; - case 'otherStandard': - customData = { ...customData }; - commonData.event_name = category.event; - break; - default: - throw new InstrumentationError( - `${category.standard} type of standard event does not exist`, - ); - } + commonData.event_name = category.eventName; + customData = populateCustomDataBasedOnCategory( + customData, + message, + category, + categoryToContent, + valueFieldIdentifier, + ); customData.currency = STANDARD_ECOMM_EVENTS_TYPE.includes(category.type) - ? message.properties.currency || 'USD' + ? message.properties?.currency || 'USD' : undefined; } else { const { type } = category; @@ -159,8 +129,13 @@ const responseBuilderSimple = (message, category, destination, categoryToContent : `Viewed a ${type}`; } if (type === 'simple track') { - customData.value = message.properties ? message.properties.revenue : undefined; + customData.value = message.properties?.revenue; delete customData.revenue; + FB_PIXEL_CUSTOM_DATA_EXCLUDE_FLATTENING.forEach((customDataParameter) => { + if (message.properties?.[customDataParameter]) { + customData[customDataParameter] = message.properties[customDataParameter]; + } + }); } } } else { @@ -189,57 +164,6 @@ const responseBuilderSimple = (message, category, destination, categoryToContent ); }; -function getCategoryFromEvent(checkEvent) { - let category; - switch (checkEvent) { - case CONFIG_CATEGORIES.PRODUCT_LIST_VIEWED.type: - case 'ViewContent': - category = CONFIG_CATEGORIES.PRODUCT_LIST_VIEWED; - break; - case CONFIG_CATEGORIES.PRODUCT_VIEWED.type: - category = CONFIG_CATEGORIES.PRODUCT_VIEWED; - break; - case CONFIG_CATEGORIES.PRODUCT_ADDED.type: - case 'AddToCart': - category = CONFIG_CATEGORIES.PRODUCT_ADDED; - break; - case CONFIG_CATEGORIES.ORDER_COMPLETED.type: - case 'Purchase': - category = CONFIG_CATEGORIES.ORDER_COMPLETED; - break; - case CONFIG_CATEGORIES.PRODUCTS_SEARCHED.type: - case 'Search': - category = CONFIG_CATEGORIES.PRODUCTS_SEARCHED; - break; - case CONFIG_CATEGORIES.CHECKOUT_STARTED.type: - case 'InitiateCheckout': - category = CONFIG_CATEGORIES.CHECKOUT_STARTED; - break; - case 'AddToWishlist': - case 'AddPaymentInfo': - case 'Lead': - case 'CompleteRegistration': - case 'Contact': - case 'CustomizeProduct': - case 'Donate': - case 'FindLocation': - case 'Schedule': - case 'StartTrial': - case 'SubmitApplication': - case 'Subscribe': - category = CONFIG_CATEGORIES.OTHER_STANDARD; - category.event = checkEvent; - break; - case 'PageView': - category = CONFIG_CATEGORIES.PAGE_VIEW; - break; - default: - category = CONFIG_CATEGORIES.SIMPLE_TRACK; - break; - } - return category; -} - const processEvent = (message, destination) => { if (!message.type) { throw new InstrumentationError("'type' is missing"); @@ -265,7 +189,7 @@ const processEvent = (message, destination) => { } let eventsToEvents; - if (destination.Config.eventsToEvents) + if (Array.isArray(destination.Config.eventsToEvents)) { eventsToEvents = getValidDynamicFormConfig( destination.Config.eventsToEvents, 'from', @@ -273,21 +197,12 @@ const processEvent = (message, destination) => { 'FB_PIXEL', destination.ID, ); - let categoryToContent; - if (destination.Config.categoryToContent) - categoryToContent = getValidDynamicFormConfig( - destination.Config.categoryToContent, - 'from', - 'to', - 'FB_PIXEL', - destination.ID, - ); + } + const { advancedMapping } = destination.Config; - let standard; - let standardTo = ''; - let checkEvent; const messageType = message.type.toLowerCase(); let category; + let mappedEvent; switch (messageType) { case EventType.IDENTIFY: if (advancedMapping) { @@ -309,24 +224,17 @@ const processEvent = (message, destination) => { if (typeof message.event !== 'string') { throw new InstrumentationError('event name should be string'); } - standard = eventsToEvents; - if (standard) { - standardTo = standard.reduce((filtered, standards) => { - if (standards.from.toLowerCase() === message.event.toLowerCase()) { - filtered = standards.to; - } - return filtered; - }, ''); + if (eventsToEvents) { + const eventMappingHash = getHashFromArray(eventsToEvents); + mappedEvent = eventMappingHash[message.event.toLowerCase()]; } - checkEvent = standardTo !== '' ? standardTo : message.event.toLowerCase(); - - category = getCategoryFromEvent(checkEvent); + category = getCategoryFromEvent(mappedEvent || message.event.toLowerCase()); break; default: throw new InstrumentationError(`Message type ${messageType} not supported`); } // build the response - return responseBuilderSimple(message, category, destination, categoryToContent); + return responseBuilderSimple(message, category, destination); }; const process = (event) => processEvent(event.message, event.destination); diff --git a/src/v0/destinations/facebook_pixel/utils.js b/src/v0/destinations/facebook_pixel/utils.js index e1347278bf0..8a63a0b0fe2 100644 --- a/src/v0/destinations/facebook_pixel/utils.js +++ b/src/v0/destinations/facebook_pixel/utils.js @@ -1,16 +1,12 @@ -const sha256 = require('sha256'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); +const { isObject } = require('../../util'); const { - isObject, - getFieldValueFromMessage, - formatTimeStamp, - getIntegrationsObj, - constructPayload, - defaultPostRequestConfig, - defaultRequestConfig, -} = require('../../util'); -const { ACTION_SOURCES_VALUES, CONFIG_CATEGORIES, MAPPING_CONFIG } = require('./config'); - -const { InstrumentationError, TransformationError } = require('../../util/errorTypes'); + ACTION_SOURCES_VALUES, + CONFIG_CATEGORIES, + OTHER_STANDARD_EVENTS, + FB_PIXEL_CUSTOM_DATA_EXCLUDE_FLATTENING, +} = require('./config'); +const { getContentType, getContentCategory } = require('../../util/facebookUtils'); /** format revenue according to fb standards with max two decimal places. * @param revenue @@ -18,211 +14,13 @@ const { InstrumentationError, TransformationError } = require('../../util/errorT */ const formatRevenue = (revenue) => { - const formattedRevenue = parseFloat(parseFloat(revenue || 0).toFixed(2)); + const formattedRevenue = parseFloat(parseFloat(revenue || '0').toFixed(2)); if (!Number.isNaN(formattedRevenue)) { return formattedRevenue; } throw new InstrumentationError('Revenue could not be converted to number'); }; -/** - * - * @param {*} message Rudder Payload - * @param {*} defaultValue product / product_group - * @param {*} categoryToContent [ { from: 'clothing', to: 'product' } ] - * - * We will be mapping properties.category to user provided content else taking the default value as per ecomm spec - * If category is clothing it will be set to ["product"] - * @return Content Type array as defined in: - * - https://developers.facebook.com/docs/facebook-pixel/reference/#object-properties - */ -const getContentType = (message, defaultValue, categoryToContent) => { - let tempCategoryToContent = categoryToContent; - const { properties } = message; - const integrationsObj = getIntegrationsObj(message, 'fb_pixel'); - - if (integrationsObj?.contentType) { - return integrationsObj.contentType; - } - - let { category } = properties; - if (!category) { - const { products } = properties; - if (products && products.length > 0 && Array.isArray(products) && isObject(products[0])) { - category = products[0].category; - } - } else { - if (tempCategoryToContent === undefined) { - tempCategoryToContent = []; - } - const mapped = tempCategoryToContent; - const mappedTo = mapped.reduce((filtered, map) => { - let filter = filtered; - if (map.from === category) { - filter = map.to; - } - return filter; - }, ''); - if (mappedTo.length > 0) { - return mappedTo; - } - } - return defaultValue; -}; - -/** This function transforms the payloads according to the config settings and adds, removes or hashes pii data. -Also checks if it is a standard event and sends properties only if it is mentioned in our configs. -@param message --> the rudder payload - -{ - anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - destination_props: { Fb: { app_id: 'RudderFbApp' } }, - context: { - device: { - id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', - manufacturer: 'Xiaomi', - model: 'Redmi 6', - name: 'xiaomi' - }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, - screen: { height: '100', density: 50 }, - traits: { - email: 'abc@gmail.com', - anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1' - } - }, - event: 'spin_result', - integrations: { - All: true, - FacebookPixel: { - dataProcessingOptions: [Array], - fbc: 'fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890', - fbp: 'fb.1.1554763741205.234567890', - fb_login_id: 'fb_id', - lead_id: 'lead_id' - } - }, - message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', - properties: { revenue: 400, additional_bet_index: 0 }, - timestamp: '2019-09-01T15:46:51.693229+05:30', - type: 'track' - } - -@param customData --> properties -{ revenue: 400, additional_bet_index: 0 } - -@param blacklistPiiProperties --> -[ { blacklistPiiProperties: 'phone', blacklistPiiHash: true } ] // hashes the phone property - -@param whitelistPiiProperties --> -[ { whitelistPiiProperties: 'email' } ] // sets email - - -@param eventCustomProperties --> -[ { eventCustomProperties: 'leadId' } ] // leadId if present will be set - -*/ - -const transformedPayloadData = ( - message, - customData, - blacklistPiiProperties, - whitelistPiiProperties, - integrationsObj, -) => { - const defaultPiiProperties = [ - 'email', - 'firstName', - 'lastName', - 'firstname', - 'lastname', - 'first_name', - 'last_name', - 'gender', - 'city', - 'country', - 'phone', - 'state', - 'zip', - 'postalCode', - 'birthday', - ]; - const clonedCustomData = { ...customData }; - const finalBlacklistPiiProperties = blacklistPiiProperties || []; - const finalWhitelistPiiProperties = whitelistPiiProperties || []; - const customBlackListedPiiProperties = {}; - - // create list of whitelisted properties - const customWhiteListedProperties = finalWhitelistPiiProperties.map( - (propObject) => propObject.whitelistPiiProperties, - ); - - // create map of blacklisted properties - finalBlacklistPiiProperties.forEach((property) => { - const singularConfigInstance = property; - customBlackListedPiiProperties[singularConfigInstance.blacklistPiiProperties] = - singularConfigInstance.blacklistPiiHash; - }); - - // remove properties which are default pii properties and not whitelisted - Object.keys(clonedCustomData).forEach((eventProp) => { - const isDefaultPiiProperty = defaultPiiProperties.includes(eventProp); - const isProperyWhiteListed = customWhiteListedProperties.includes(eventProp); - - if (Object.prototype.hasOwnProperty.call(customBlackListedPiiProperties, eventProp)) { - if (customBlackListedPiiProperties[eventProp]) { - // if customBlackListedPiiProperty is marked to be hashed from UI - clonedCustomData[eventProp] = integrationsObj?.hashed - ? String(message.properties[eventProp]) - : sha256(String(message.properties[eventProp])); - } else if (isDefaultPiiProperty && !isProperyWhiteListed) { - delete clonedCustomData[eventProp]; - } - } else if (isDefaultPiiProperty && !isProperyWhiteListed) { - delete clonedCustomData[eventProp]; - } - }); - - return clonedCustomData; -}; - -/** - * - * @param {*} message - * @returns fbc parameter which is a combined string of the parameters below - * - * version : "fb" (default) - * - * subdomainIndex : 1 ( recommended by facebook, as well as our JS SDK sets cookies on the main domain, i.e "facebook.com") - * - * creationTime : mapped to originalTimestamp converted in miliseconds - * - * fbclid : deduced query paramter from context.page.url - * - * ref: https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc#fbc - */ -const deduceFbcParam = (message) => { - const url = message.context?.page?.url; - if (!url) { - return undefined; - } - let parseUrl; - try { - parseUrl = new URL(url); - } catch { - return undefined; - } - const paramsList = new URLSearchParams(parseUrl.search); - const fbclid = paramsList.get('fbclid'); - - if (!fbclid) { - return undefined; - } - const creationTime = getFieldValueFromMessage(message, 'timestamp'); - return `fb.1.${formatTimeStamp(creationTime)}.${fbclid}`; -}; - /** * Returns action source * ref : https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/server-event#action-source @@ -247,65 +45,10 @@ const getActionSource = (payload, channel) => { return actionSource; }; -/** - * This method gets content category with proper error-handling - * - * @param {*} category - * @returns The content category as a string - */ -const getContentCategory = (category) => { - let contentCategory = category; - if (Array.isArray(contentCategory)) { - contentCategory = contentCategory.map(String).join(','); - } - if ( - contentCategory && - typeof contentCategory !== 'string' && - typeof contentCategory !== 'object' - ) { - contentCategory = String(contentCategory); - } - if ( - contentCategory && - typeof contentCategory !== 'string' && - !Array.isArray(contentCategory) && - typeof contentCategory === 'object' - ) { - throw new InstrumentationError("'properties.category' must be either be a string or an array"); - } - return contentCategory; -}; - -const fetchUserData = (message, Config) => { - const integrationsObj = getIntegrationsObj(message, 'fb_pixel'); - const userData = constructPayload( - message, - MAPPING_CONFIG[CONFIG_CATEGORIES.USERDATA.name], - 'fb_pixel', - ); - const { removeExternalId } = Config; - if (removeExternalId) { - delete userData.external_id; - } - - if (userData) { - const split = userData.name?.split(' '); - if (split && split.length === 2) { - const hashValue = (value) => (integrationsObj?.hashed ? value : sha256(value)); - userData.fn = hashValue(split[0]); - userData.ln = hashValue(split[1]); - } - delete userData.name; - userData.fbc = userData.fbc || deduceFbcParam(message); - } - - return userData; -}; - /** * * @param {*} message Rudder element - * @param {*} categoryToContent [ { from: 'clothing', to: 'product' } ] + * @param {*} categoryToContent example: [ { from: 'clothing', to: 'product' } ] * * Handles order completed and checkout started types of specific events */ @@ -316,11 +59,18 @@ const handleOrder = (message, categoryToContent) => { const contentType = getContentType(message, 'product', categoryToContent); const contentIds = []; const contents = []; - const { category, quantity, price, currency, contentName } = message.properties; + const { + category, + quantity, + price, + currency, + contentName, + delivery_category: deliveryCategory, + } = message.properties; if (products) { if (products.length > 0 && Array.isArray(products)) { products.forEach((singleProduct) => { - const pId = singleProduct.product_id || singleProduct.sku || singleProduct.id; + const pId = singleProduct?.product_id || singleProduct?.sku || singleProduct?.id; if (pId) { contentIds.push(pId); // required field for content @@ -329,6 +79,7 @@ const handleOrder = (message, categoryToContent) => { id: pId, quantity: singleProduct.quantity || quantity || 1, item_price: singleProduct.price || price, + delivery_category: singleProduct.delivery_category || deliveryCategory, }; contents.push(content); } @@ -353,7 +104,7 @@ const handleOrder = (message, categoryToContent) => { /** * * @param {*} message Rudder element - * @param {*} categoryToContent [ { from: 'clothing', to: 'product' } ] + * @param {*} categoryToContent example [ { from: 'clothing', to: 'product' } ] * * Handles product list viewed */ @@ -405,7 +156,7 @@ const handleProductListViewed = (message, categoryToContent) => { /** * * @param {*} message Rudder Payload - * @param {*} categoryToContent [ { from: 'clothing', to: 'product' } ] + * @param {*} categoryToContent Example: [ { from: 'clothing', to: 'product' } ] * @param {*} valueFieldIdentifier it can be either value or price which will be matched from properties and assigned to value for fb payload */ const handleProduct = (message, categoryToContent, valueFieldIdentifier) => { @@ -476,49 +227,115 @@ const handleSearch = (message) => { }; }; -const formingFinalResponse = ( - userData, - commonData, +const populateCustomDataBasedOnCategory = ( customData, - endpoint, - testDestination, - testEventCode, + message, + category, + categoryToContent, + valueFieldIdentifier, ) => { - if (userData && commonData) { - const response = defaultRequestConfig(); - response.endpoint = endpoint; - response.method = defaultPostRequestConfig.requestMethod; - const jsonStringify = JSON.stringify({ - user_data: userData, - ...commonData, - custom_data: customData, - }); - const payload = { - data: [jsonStringify], - }; - - // Ref: https://developers.facebook.com/docs/marketing-api/conversions-api/using-the-api/ - // Section: Test Events Tool - if (testDestination) { - payload.test_event_code = testEventCode; + let updatedCustomData; + switch (category.type) { + case 'product list viewed': + updatedCustomData = { + ...customData, + ...handleProductListViewed(message, categoryToContent), + }; + break; + case 'product viewed': + case 'product added': + updatedCustomData = { + ...customData, + ...handleProduct(message, categoryToContent, valueFieldIdentifier), + }; + break; + case 'order completed': + updatedCustomData = { + ...customData, + ...handleOrder(message, categoryToContent), + }; + break; + case 'products searched': { + updatedCustomData = { + ...customData, + ...handleSearch(message), + }; + break; + } + case 'checkout started': { + const orderPayload = handleOrder(message, categoryToContent); + delete orderPayload.content_name; + updatedCustomData = { + ...customData, + ...orderPayload, + }; + break; } - response.body.FORM = payload; - return response; + case 'page_view': // executed when sending track calls but with standard type PageView + case 'page': // executed when page call is done with standard PageView turned on + case 'otherStandard': + updatedCustomData = { ...customData }; + FB_PIXEL_CUSTOM_DATA_EXCLUDE_FLATTENING.forEach((customDataParameter) => { + if (message.properties?.[customDataParameter]) { + updatedCustomData[customDataParameter] = message.properties[customDataParameter]; + } + }); + break; + default: + throw new InstrumentationError(`${category.standard} type of standard event does not exist`); + } + return updatedCustomData; +}; + +const getCategoryFromEvent = (eventName) => { + let category; + switch (eventName) { + case CONFIG_CATEGORIES.PRODUCT_LIST_VIEWED.type: + case CONFIG_CATEGORIES.PRODUCT_LIST_VIEWED.eventName: + category = CONFIG_CATEGORIES.PRODUCT_LIST_VIEWED; + break; + case CONFIG_CATEGORIES.PRODUCT_VIEWED.type: + category = CONFIG_CATEGORIES.PRODUCT_VIEWED; + break; + case CONFIG_CATEGORIES.PRODUCT_ADDED.type: + case CONFIG_CATEGORIES.PRODUCT_ADDED.eventName: + category = CONFIG_CATEGORIES.PRODUCT_ADDED; + break; + case CONFIG_CATEGORIES.ORDER_COMPLETED.type: + case CONFIG_CATEGORIES.ORDER_COMPLETED.eventName: + category = CONFIG_CATEGORIES.ORDER_COMPLETED; + break; + case CONFIG_CATEGORIES.PRODUCTS_SEARCHED.type: + case CONFIG_CATEGORIES.PRODUCTS_SEARCHED.eventName: + category = CONFIG_CATEGORIES.PRODUCTS_SEARCHED; + break; + case CONFIG_CATEGORIES.CHECKOUT_STARTED.type: + case CONFIG_CATEGORIES.CHECKOUT_STARTED.eventName: + category = CONFIG_CATEGORIES.CHECKOUT_STARTED; + break; + case CONFIG_CATEGORIES.PAGE_VIEW.eventName: + category = CONFIG_CATEGORIES.PAGE_VIEW; + break; + default: + category = CONFIG_CATEGORIES.SIMPLE_TRACK; + break; } - // fail-safety for developer error - throw new TransformationError('Payload could not be constructed'); + + if (OTHER_STANDARD_EVENTS.includes(eventName)) { + category = CONFIG_CATEGORIES.OTHER_STANDARD; + category.eventName = eventName; + } + + return category; }; module.exports = { - deduceFbcParam, formatRevenue, - getContentType, - transformedPayloadData, getActionSource, - fetchUserData, handleProduct, handleSearch, handleProductListViewed, handleOrder, - formingFinalResponse, + populateCustomDataBasedOnCategory, + getCategoryFromEvent, }; diff --git a/src/v0/destinations/factorsai/transform.js b/src/v0/destinations/factorsai/transform.js index 612afe54d6b..9824b73bbf6 100644 --- a/src/v0/destinations/factorsai/transform.js +++ b/src/v0/destinations/factorsai/transform.js @@ -1,3 +1,4 @@ +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { @@ -9,7 +10,6 @@ const { simpleProcessRouterDest, } = require('../../util'); const { JSON_MIME_TYPE } = require('../../util/constant'); -const { InstrumentationError } = require('../../util/errorTypes'); const { ConfigCategories, mappingConfig, BASE_URL } = require('./config'); @@ -44,6 +44,7 @@ function processTrack(message, factorsAIApiKey) { // process Page Call function processPageAndGroup(message, factorsAIApiKey, category) { const requestJson = constructPayload(message, mappingConfig[category]); + requestJson.type = message.type; return buildResponse(requestJson, factorsAIApiKey); } diff --git a/src/v0/destinations/fb/config.js b/src/v0/destinations/fb/config.js index 2ad9aeacba9..0e52b424164 100644 --- a/src/v0/destinations/fb/config.js +++ b/src/v0/destinations/fb/config.js @@ -1,6 +1,8 @@ const fs = require('fs'); const path = require('path'); +const VERSION = 'v18.0'; + const getPath = (file) => path.resolve(__dirname, file); const baseMapping = JSON.parse(fs.readFileSync(getPath('./data/FbAppBasicMapping.json'))); @@ -20,6 +22,7 @@ const eventPropToTypeMapping = JSON.parse( ); module.exports = { + VERSION, baseMapping, eventNameMapping, eventPropsMapping, diff --git a/src/v0/destinations/fb/networkHandler.js b/src/v0/destinations/fb/networkHandler.js index b79b2ab4931..06235fab402 100644 --- a/src/v0/destinations/fb/networkHandler.js +++ b/src/v0/destinations/fb/networkHandler.js @@ -11,6 +11,7 @@ const destResponseHandler = (destinationResponse) => { }; }; +// eslint-disable-next-line @typescript-eslint/naming-convention class networkHandler { constructor() { this.prepareProxyRequest = prepareProxyRequest; diff --git a/src/v0/destinations/fb/transform.js b/src/v0/destinations/fb/transform.js index a73bbdca8b4..e6f8e986cf2 100644 --- a/src/v0/destinations/fb/transform.js +++ b/src/v0/destinations/fb/transform.js @@ -1,6 +1,7 @@ const get = require('get-value'); const set = require('set-value'); const sha256 = require('sha256'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { removeUndefinedValues, @@ -13,6 +14,7 @@ const { } = require('../../util'); const { + VERSION, baseMapping, eventNameMapping, eventPropsMapping, @@ -20,7 +22,6 @@ const { eventPropToTypeMapping, } = require('./config'); const logger = require('../../../logger'); -const { InstrumentationError } = require('../../util/errorTypes'); // const funcMap = { // integer: parseInt, @@ -83,7 +84,11 @@ function sanityCheckPayloadForTypesAndModifications(updatedEvent) { case 'ud[ln]': case 'ud[st]': case 'ud[cn]': - if (clonedUpdatedEvent[prop] && clonedUpdatedEvent[prop] !== '') { + if ( + clonedUpdatedEvent[prop] && + typeof clonedUpdatedEvent[prop] === 'string' && + clonedUpdatedEvent[prop] !== '' + ) { isUDSet = true; clonedUpdatedEvent[prop] = sha256(clonedUpdatedEvent[prop].toLowerCase()); } @@ -105,8 +110,7 @@ function sanityCheckPayloadForTypesAndModifications(updatedEvent) { if (clonedUpdatedEvent[prop] && clonedUpdatedEvent[prop] !== '') { if (typeof clonedUpdatedEvent[prop] !== 'string') { delete clonedUpdatedEvent[prop]; - } - else { + } else { isUDSet = true; clonedUpdatedEvent[prop] = sha256( clonedUpdatedEvent[prop].toLowerCase() === 'female' ? 'f' : 'm', @@ -158,7 +162,7 @@ function sanityCheckPayloadForTypesAndModifications(updatedEvent) { return clonedUpdatedEvent; } -function getCorrectedTypedValue(pathToKey, value, originalPath) { +function getCorrectedTypedValue(pathToKey, value) { const type = eventPropToTypeMapping[pathToKey]; // TODO: we should remove this eslint rule or comeup with a better way // eslint-disable-next-line valid-typeof @@ -166,9 +170,12 @@ function getCorrectedTypedValue(pathToKey, value, originalPath) { return value; } + const mappingKey = Object.keys(eventPropsMapping).find( + (key) => eventPropsMapping[key] === pathToKey, + ); + throw new InstrumentationError( - `${typeof originalPath === 'object' ? JSON.stringify(originalPath) : originalPath - } is not of valid type`, + `Value of ${mappingKey} is not of valid type. It should be of type ${type}`, ); } @@ -217,7 +224,6 @@ function processEventTypeGeneric(message, baseEvent, fbEventName) { updatedEvent.custom_events[0][fbEventPath][length] = getCorrectedTypedValue( fbEventPath, intendValue, - parentArray[length], ); length += 1; count -= 1; @@ -229,7 +235,7 @@ function processEventTypeGeneric(message, baseEvent, fbEventName) { set( updatedEvent.custom_events[0], fbEventPath, - getCorrectedTypedValue(fbEventPath, intendValue, rudderEventPath), + getCorrectedTypedValue(fbEventPath, intendValue), ); } } else { @@ -245,7 +251,7 @@ function responseBuilderSimple(message, payload, destination) { // "https://graph.facebook.com/v13.0/644748472345539/activities" - const endpoint = `https://graph.facebook.com/v17.0/${appID}/activities`; + const endpoint = `https://graph.facebook.com/${VERSION}/${appID}/activities`; const response = defaultRequestConfig(); response.endpoint = endpoint; diff --git a/src/v0/destinations/fb_custom_audience/config.js b/src/v0/destinations/fb_custom_audience/config.js index 635ad2a9bbf..284ab0d4a49 100644 --- a/src/v0/destinations/fb_custom_audience/config.js +++ b/src/v0/destinations/fb_custom_audience/config.js @@ -1,4 +1,4 @@ -const BASE_URL = 'https://graph.facebook.com/v17.0'; +const BASE_URL = 'https://graph.facebook.com/v18.0'; function getEndPoint(audienceId) { return `${BASE_URL}/${audienceId}/users`; @@ -93,7 +93,7 @@ const subTypeFields = [ // const MAX_USER_COUNT = 500; (using from destination definition) const USER_ADD = 'add'; const USER_DELETE = 'remove'; -/* No official Documentation is available for this but using trial +/* No official Documentation is available for this but using trial and error method we found that 65000 bytes is the maximum payload allowed size but we are 60000 just to be sure batching is done properly */ const maxPayloadSize = 60000; // bytes diff --git a/src/v0/destinations/fb_custom_audience/networkHandler.js b/src/v0/destinations/fb_custom_audience/networkHandler.js new file mode 100644 index 00000000000..0ea7aff7da6 --- /dev/null +++ b/src/v0/destinations/fb_custom_audience/networkHandler.js @@ -0,0 +1,6 @@ +const { networkHandler, errorResponseHandler } = require('../../util/facebookUtils/networkHandler'); + +module.exports = { + networkHandler, + errorResponseHandler, +}; diff --git a/src/v0/destinations/fb_custom_audience/transform.js b/src/v0/destinations/fb_custom_audience/transform.js index 64125ffc3ba..9320a3476b5 100644 --- a/src/v0/destinations/fb_custom_audience/transform.js +++ b/src/v0/destinations/fb_custom_audience/transform.js @@ -1,5 +1,10 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const get = require('get-value'); +const { + InstrumentationError, + TransformationError, + ConfigurationError, +} = require('@rudderstack/integrations-lib'); const { defaultRequestConfig, defaultPostRequestConfig, @@ -26,11 +31,6 @@ const { } = require('./config'); const { MappedToDestinationKey } = require('../../../constants'); -const { - InstrumentationError, - TransformationError, - ConfigurationError, -} = require('../../util/errorTypes'); const responseBuilderSimple = (payload, audienceId) => { if (payload) { @@ -62,7 +62,7 @@ const preparePayload = ( disableFormat, destinationId, ) => { - const prepareFinalPayload = _.cloneDeep(paramsPayload); + const prepareFinalPayload = lodash.cloneDeep(paramsPayload); if (Array.isArray(userSchema)) { prepareFinalPayload.schema = userSchema; } else { diff --git a/src/v0/destinations/fb_custom_audience/util.js b/src/v0/destinations/fb_custom_audience/util.js index 809de48a646..47ccb9bf7d2 100644 --- a/src/v0/destinations/fb_custom_audience/util.js +++ b/src/v0/destinations/fb_custom_audience/util.js @@ -1,12 +1,12 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const sha256 = require('sha256'); const get = require('get-value'); const jsonSize = require('json-size'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const stats = require('../../../util/stats'); const { isDefinedAndNotNull } = require('../../util'); const { maxPayloadSize } = require('./config'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); /** * Example payload ={ @@ -20,7 +20,7 @@ const { InstrumentationError, ConfigurationError } = require('../../util/errorTy ], "data": [ [ - "shrouti@abc.com", + "test@abc.com", "IN" ] ] @@ -31,7 +31,7 @@ const batchingWithPayloadSize = (payload) => { const revisedPayloadArray = []; const noOfBatches = Math.ceil(payloadSize / maxPayloadSize); const revisedRecordsPerPayload = Math.floor(payload.data.length / noOfBatches); - const revisedDataArray = _.chunk(payload.data, revisedRecordsPerPayload); + const revisedDataArray = lodash.chunk(payload.data, revisedRecordsPerPayload); revisedDataArray.forEach((data) => { revisedPayloadArray.push({ ...payload, data }); }); diff --git a/src/v0/destinations/firehose/transform.js b/src/v0/destinations/firehose/transform.js index b0dc8415799..81e2a1ebc8d 100644 --- a/src/v0/destinations/firehose/transform.js +++ b/src/v0/destinations/firehose/transform.js @@ -1,6 +1,6 @@ const isString = require('lodash/isString'); +const { ConfigurationError } = require('@rudderstack/integrations-lib'); const { getHashFromArray, simpleProcessRouterDest } = require('../../util'); -const { ConfigurationError } = require('../../util/errorTypes'); function getDeliveryStreamMapTo(event) { const { message, destination } = event; diff --git a/src/v0/destinations/freshmarketer/config.js b/src/v0/destinations/freshmarketer/config.js index f1018d439c1..a0d6449c3ab 100644 --- a/src/v0/destinations/freshmarketer/config.js +++ b/src/v0/destinations/freshmarketer/config.js @@ -4,23 +4,23 @@ const CONFIG_CATEGORIES = { IDENTIFY: { name: 'FRESHMARKETERIdentifyConfig', type: 'identify', - baseUrl: '.myfreshworks.com/crm/sales/api/contacts/upsert', + baseUrl: '/crm/sales/api/contacts/upsert', }, GROUP: { name: 'FRESHMARKETERGroupConfig', type: 'group', - baseUrlAccount: '.myfreshworks.com/crm/sales/api/sales_accounts/upsert', - baseUrlList: '.myfreshworks.com/crm/sales/api/lists', + baseUrlAccount: '/crm/sales/api/sales_accounts/upsert', + baseUrlList: '/crm/sales/api/lists', }, SALES_ACTIVITY: { name: 'SalesActivityConfig', - baseUrlCreate: '.myfreshworks.com/crm/sales/api/sales_activities', - baseUrlListAll: '.myfreshworks.com/crm/sales/api/selector/sales_activity_types', + baseUrlCreate: '/crm/sales/api/sales_activities', + baseUrlListAll: '/crm/sales/api/selector/sales_activity_types', }, }; -const DELETE_ENDPOINT = '.myfreshworks.com/crm/sales/api/contacts/'; -const LIFECYCLE_STAGE_ENDPOINT = '.myfreshworks.com/crm/sales/api/selector/lifecycle_stages'; +const DELETE_ENDPOINT = '/crm/sales/api/contacts/'; +const LIFECYCLE_STAGE_ENDPOINT = '/crm/sales/api/selector/lifecycle_stages'; const MAPPING_CONFIG = getMappingConfig(CONFIG_CATEGORIES, __dirname); module.exports = { diff --git a/src/v0/destinations/freshmarketer/transform.js b/src/v0/destinations/freshmarketer/transform.js index 41c604d407e..aa0e03811d8 100644 --- a/src/v0/destinations/freshmarketer/transform.js +++ b/src/v0/destinations/freshmarketer/transform.js @@ -1,4 +1,9 @@ const get = require('get-value'); +const { + InstrumentationError, + NetworkInstrumentationError, + TransformationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { defaultRequestConfig, @@ -9,11 +14,6 @@ const { getValidDynamicFormConfig, simpleProcessRouterDest, } = require('../../util'); -const { - InstrumentationError, - NetworkInstrumentationError, - TransformationError, -} = require('../../util/errorTypes'); const { CONFIG_CATEGORIES, MAPPING_CONFIG } = require('./config'); const { diff --git a/src/v0/destinations/freshmarketer/utils.js b/src/v0/destinations/freshmarketer/utils.js index 5b47bb91706..6fa1fe99762 100644 --- a/src/v0/destinations/freshmarketer/utils.js +++ b/src/v0/destinations/freshmarketer/utils.js @@ -1,5 +1,10 @@ /* eslint-disable no-param-reassign */ const get = require('get-value'); +const { + InstrumentationError, + NetworkInstrumentationError, + NetworkError, +} = require('@rudderstack/integrations-lib'); const logger = require('../../../logger'); const { httpPOST, httpGET } = require('../../../adapters/network'); const { @@ -13,11 +18,6 @@ const { getFieldValueFromMessage, } = require('../../util'); const { CONFIG_CATEGORIES, LIFECYCLE_STAGE_ENDPOINT } = require('./config'); -const { - InstrumentationError, - NetworkInstrumentationError, - NetworkError, -} = require('../../util/errorTypes'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); @@ -203,7 +203,7 @@ const updateAccountWOContact = (payload, Config) => { */ const updateContactWithList = (userId, listId, Config) => { const response = defaultRequestConfig(); - response.endpoint = `https://${Config.domain}.myfreshworks.com/crm/sales/api/lists/${listId}/add_contacts`; + response.endpoint = `https://${Config.domain}/crm/sales/api/lists/${listId}/add_contacts`; response.headers = getHeaders(Config.apiKey); response.body.JSON = { ids: [userId], diff --git a/src/v0/destinations/freshsales/config.js b/src/v0/destinations/freshsales/config.js index c6ae4b8165b..62f54c1297d 100644 --- a/src/v0/destinations/freshsales/config.js +++ b/src/v0/destinations/freshsales/config.js @@ -4,23 +4,23 @@ const CONFIG_CATEGORIES = { IDENTIFY: { name: 'identifyConfig', type: 'identify', - baseUrl: '.myfreshworks.com/crm/sales/api/contacts/upsert', + baseUrl: '/crm/sales/api/contacts/upsert', method: 'POST', }, GROUP: { name: 'groupConfig', type: 'group', - baseUrlAccount: '.myfreshworks.com/crm/sales/api/sales_accounts/upsert', + baseUrlAccount: '/crm/sales/api/sales_accounts/upsert', method: 'POST', }, SALES_ACTIVITY: { name: 'SalesActivityConfig', - baseUrlCreate: '.myfreshworks.com/crm/sales/api/sales_activities', - baseUrlListAll: '.myfreshworks.com/crm/sales/api/selector/sales_activity_types', + baseUrlCreate: '/crm/sales/api/sales_activities', + baseUrlListAll: '/crm/sales/api/selector/sales_activity_types', }, }; -const LIFECYCLE_STAGE_ENDPOINT = '.myfreshworks.com/crm/sales/api/selector/lifecycle_stages'; +const LIFECYCLE_STAGE_ENDPOINT = '/crm/sales/api/selector/lifecycle_stages'; const MAPPING_CONFIG = getMappingConfig(CONFIG_CATEGORIES, __dirname); module.exports = { diff --git a/src/v0/destinations/freshsales/transform.js b/src/v0/destinations/freshsales/transform.js index 46a9e8c5000..096a2d749cf 100644 --- a/src/v0/destinations/freshsales/transform.js +++ b/src/v0/destinations/freshsales/transform.js @@ -1,4 +1,5 @@ const get = require('get-value'); +const { InstrumentationError, TransformationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { defaultRequestConfig, @@ -8,8 +9,8 @@ const { defaultPostRequestConfig, getValidDynamicFormConfig, simpleProcessRouterDest, + validateEventName, } = require('../../util'); -const { InstrumentationError, TransformationError } = require('../../util/errorTypes'); const { CONFIG_CATEGORIES, MAPPING_CONFIG } = require('./config'); const { getUserAccountDetails, @@ -66,9 +67,6 @@ const identifyResponseBuilder = (message, { Config }) => { * @returns */ const trackResponseBuilder = async (message, { Config }, event) => { - if (!event) { - throw new InstrumentationError('Event name is required for track call.'); - } let payload; const response = defaultRequestConfig(); @@ -126,9 +124,6 @@ const groupResponseBuilder = async (message, { Config }) => { // Checks if there are any mapping events for the track event and returns them function eventMappingHandler(message, destination) { const event = get(message, 'event'); - if (!event) { - throw new InstrumentationError('Event name is required'); - } let { rudderEventsToFreshsalesEvents } = destination.Config; const mappedEvents = new Set(); @@ -162,6 +157,7 @@ const processEvent = async (message, destination) => { response = identifyResponseBuilder(message, destination); break; case EventType.TRACK: { + validateEventName(message.event); const mappedEvents = eventMappingHandler(message, destination); if (mappedEvents.length > 0) { const respList = await Promise.all( diff --git a/src/v0/destinations/freshsales/utils.js b/src/v0/destinations/freshsales/utils.js index b30d9fa16bc..96acabb0371 100644 --- a/src/v0/destinations/freshsales/utils.js +++ b/src/v0/destinations/freshsales/utils.js @@ -1,5 +1,10 @@ /* eslint-disable no-param-reassign */ const get = require('get-value'); +const { + NetworkInstrumentationError, + InstrumentationError, + NetworkError, +} = require('@rudderstack/integrations-lib'); const { httpPOST, httpGET } = require('../../../adapters/network'); const { processAxiosResponse, @@ -10,11 +15,6 @@ const { defaultPostRequestConfig, getFieldValueFromMessage, } = require('../../util'); -const { - NetworkInstrumentationError, - InstrumentationError, - NetworkError, -} = require('../../util/errorTypes'); const { CONFIG_CATEGORIES, LIFECYCLE_STAGE_ENDPOINT } = require('./config'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/ga/deleteUsers.js b/src/v0/destinations/ga/deleteUsers.js index cf4694f44af..bb909a0053a 100644 --- a/src/v0/destinations/ga/deleteUsers.js +++ b/src/v0/destinations/ga/deleteUsers.js @@ -1,7 +1,7 @@ const { isEmpty } = require('lodash'); +const { InstrumentationError, OAuthSecretError } = require('@rudderstack/integrations-lib'); const { httpPOST } = require('../../../adapters/network'); -const { InstrumentationError, OAuthSecretError } = require('../../util/errorTypes'); const { executeCommonValidations } = require('../../util/regulation-api'); const { GA_USER_DELETION_ENDPOINT } = require('./config'); const { gaResponseHandler } = require('./networkHandler'); diff --git a/src/v0/destinations/ga/networkHandler.js b/src/v0/destinations/ga/networkHandler.js index ac244fb4a7d..57db1cb7afa 100644 --- a/src/v0/destinations/ga/networkHandler.js +++ b/src/v0/destinations/ga/networkHandler.js @@ -1,10 +1,13 @@ -const { REFRESH_TOKEN } = require('../../../adapters/networkhandler/authConstants'); +const { NetworkError, InvalidAuthTokenError } = require('@rudderstack/integrations-lib'); +const { + REFRESH_TOKEN, + AUTH_STATUS_INACTIVE, +} = require('../../../adapters/networkhandler/authConstants'); const { processAxiosResponse, getDynamicErrorType, } = require('../../../adapters/utils/networkUtils'); -const { NetworkError, InvalidAuthTokenError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); /** @@ -29,6 +32,18 @@ const gaResponseHandler = (gaResponse) => { if (isInvalidCredsError || response?.error?.status === 'UNAUTHENTICATED') { throw new InvalidAuthTokenError('invalid credentials', 500, response, REFRESH_TOKEN); } + const isInvalidGrantError = + response?.error.code === 403 && + response.error?.errors?.some((errObj) => errObj.reason === 'insufficientPermissions'); + if (isInvalidGrantError) { + throw new InvalidAuthTokenError( + response?.error?.message || 'insufficent permissions', + 400, + response, + AUTH_STATUS_INACTIVE, + ); + } + throw new NetworkError( `Error occurred while completing deletion request: ${response.error?.message}`, status, diff --git a/src/v0/destinations/ga/transform.js b/src/v0/destinations/ga/transform.js index 0c2a0f8a49b..32e94bdd41a 100644 --- a/src/v0/destinations/ga/transform.js +++ b/src/v0/destinations/ga/transform.js @@ -1,6 +1,7 @@ /* eslint-disable no-nested-ternary */ const get = require('get-value'); const md5 = require('md5'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { EventType, MappedToDestinationKey } = require('../../../constants'); const { Event, GA_ENDPOINT, ConfigCategory, mappingConfig, nameToEventMap } = require('./config'); const { setContextualFields } = require('./utils'); @@ -19,7 +20,6 @@ const { } = require('../../util'); const { isDefinedAndNotNull } = require('../../util'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); const gaDisplayName = 'Google Analytics'; @@ -443,7 +443,7 @@ function processRefundEvent(message, destination) { let { enhancedEcommerce } = destination.Config; enhancedEcommerce = enhancedEcommerce || false; - // eslint-disable-next-line camelcase + // eslint-disable-next-line @typescript-eslint/naming-convention const { products, order_id } = message.properties; if (products && products.length > 0) { const productParams = setProductLevelProperties( @@ -598,7 +598,7 @@ function processProductEvent(message, destination) { const customParamKeys = getCustomParamKeys(destination.Config); Object.assign(parameters, getProductLevelCustomParams(message.properties, 1, customParamKeys)); } - // eslint-disable-next-line camelcase + // eslint-disable-next-line @typescript-eslint/naming-convention const { sku, product_id } = message.properties; // eslint-disable-next-line camelcase const productId = product_id; diff --git a/src/v0/destinations/ga/utils.js b/src/v0/destinations/ga/utils.js index 0d3a2f97985..617f2522a00 100644 --- a/src/v0/destinations/ga/utils.js +++ b/src/v0/destinations/ga/utils.js @@ -1,4 +1,4 @@ -const { InstrumentationError } = require('../../util/errorTypes'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { GA_ENDPOINT } = require('./config'); /** diff --git a/src/v0/destinations/ga360/transform.js b/src/v0/destinations/ga360/transform.js index a9d4f6b2103..3655c330d51 100644 --- a/src/v0/destinations/ga360/transform.js +++ b/src/v0/destinations/ga360/transform.js @@ -1,5 +1,6 @@ const get = require('get-value'); const md5 = require('md5'); +const { ConfigurationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { Event, GA_ENDPOINT, ConfigCategory, mappingConfig, nameToEventMap } = require('./config'); const { @@ -12,7 +13,6 @@ const { getDestinationExternalID, simpleProcessRouterDest, } = require('../../util'); -const { ConfigurationError, InstrumentationError } = require('../../util/errorTypes'); const gaDisplayName = 'Google Analytics'; @@ -401,7 +401,7 @@ function processRefundEvent(message, destination) { let { enhancedEcommerce } = destination.Config; enhancedEcommerce = enhancedEcommerce || false; - // eslint-disable-next-line camelcase + // eslint-disable-next-line @typescript-eslint/naming-convention const { products, order_id } = message.properties; if (products && products.length > 0) { const productParams = setProductLevelProperties( @@ -545,7 +545,7 @@ function processProductEvent(message, destination) { const customParamKeys = getCustomParamKeys(destination.Config); Object.assign(parameters, getProductLevelCustomParams(message.properties, 1, customParamKeys)); } - // eslint-disable-next-line camelcase + // eslint-disable-next-line @typescript-eslint/naming-convention const { sku, product_id } = message.properties; // eslint-disable-next-line camelcase const productId = product_id; diff --git a/src/v0/destinations/ga4/config.js b/src/v0/destinations/ga4/config.js index a177107b4e1..d76e2d26396 100644 --- a/src/v0/destinations/ga4/config.js +++ b/src/v0/destinations/ga4/config.js @@ -45,6 +45,7 @@ const ConfigCategory = { name: 'GA4GenerateLeadConfig', event: 'generate_lead', }, + CAMPAIGN_DETAILS: { name: 'GA4CampaignDetailsConfig', event: 'campaign_details' }, /* E-Commerce Events */ // Ref - https://www.rudderstack.com/docs/rudderstack-api/api-specification/rudderstack-ecommerce-events-specification/ diff --git a/src/v0/destinations/ga4/data/GA4CampaignDetailsConfig.json b/src/v0/destinations/ga4/data/GA4CampaignDetailsConfig.json new file mode 100644 index 00000000000..85a55c0c46b --- /dev/null +++ b/src/v0/destinations/ga4/data/GA4CampaignDetailsConfig.json @@ -0,0 +1,32 @@ +[ + { + "destKey": "campaign_id", + "sourceKeys": ["context.campaign.id", "properties.campaign.id"], + "required": false + }, + { + "destKey": "campaign", + "sourceKeys": ["context.campaign.name", "properties.campaign.name"], + "required": false + }, + { + "destKey": "source", + "sourceKeys": ["context.campaign.source", "properties.campaign.source"], + "required": false + }, + { + "destKey": "medium", + "sourceKeys": ["context.campaign.medium", "properties.campaign.medium"], + "required": false + }, + { + "destKey": "term", + "sourceKeys": ["context.campaign.term", "properties.campaign.term"], + "required": false + }, + { + "destKey": "content", + "sourceKeys": ["context.campaign.content", "properties.campaign.content"], + "required": false + } +] diff --git a/src/v0/destinations/ga4/networkHandler.js b/src/v0/destinations/ga4/networkHandler.js index e90d2c30953..b62fcc8d3bd 100644 --- a/src/v0/destinations/ga4/networkHandler.js +++ b/src/v0/destinations/ga4/networkHandler.js @@ -1,3 +1,4 @@ +const { NetworkError } = require('@rudderstack/integrations-lib'); const { proxyRequest, prepareProxyRequest } = require('../../../adapters/network'); const { getDynamicErrorType, @@ -5,7 +6,6 @@ const { } = require('../../../adapters/utils/networkUtils'); const { isDefinedAndNotNull, isDefined, isHttpStatusSuccess } = require('../../util'); -const { NetworkError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); const responseHandler = (destinationResponse, dest) => { diff --git a/src/v0/destinations/ga4/transform.js b/src/v0/destinations/ga4/transform.js index dc899270859..d8fc531e92c 100644 --- a/src/v0/destinations/ga4/transform.js +++ b/src/v0/destinations/ga4/transform.js @@ -1,4 +1,9 @@ const get = require('get-value'); +const { + ConfigurationError, + InstrumentationError, + UnsupportedEventError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { isEmptyObject, @@ -11,11 +16,6 @@ const { getDestinationExternalID, removeUndefinedAndNullValues, } = require('../../util'); -const { - ConfigurationError, - InstrumentationError, - UnsupportedEventError, -} = require('../../util/errorTypes'); const { ENDPOINT, mappingConfig, @@ -106,7 +106,7 @@ const responseBuilder = (message, { Config }) => { } break; default: - throw ConfigurationError('Invalid type of client'); + throw new ConfigurationError('Invalid type of client'); } let payload = {}; @@ -119,7 +119,7 @@ const responseBuilder = (message, { Config }) => { payload.name = evConfigEvent; payload.params = constructPayload(message, mappingConfig[name]); - const { items, mapRootLevelPropertiesToGA4ItemsArray } = getItemsArray(message, item, itemList) + const { items, mapRootLevelPropertiesToGA4ItemsArray } = getItemsArray(message, item, itemList); if (items.length > 0) { payload.params.items = items; @@ -233,7 +233,7 @@ const responseBuilder = (message, { Config }) => { } // Prepare GA4 user properties - const userProperties = prepareUserProperties(message); + const userProperties = prepareUserProperties(message, Config.piiPropertiesToIgnore); if (!isEmptyObject(userProperties)) { rawPayload.user_properties = userProperties; } diff --git a/src/v0/destinations/ga4/utils.js b/src/v0/destinations/ga4/utils.js index b86d14ef1ba..e4db494727b 100644 --- a/src/v0/destinations/ga4/utils.js +++ b/src/v0/destinations/ga4/utils.js @@ -1,4 +1,5 @@ const get = require('get-value'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { isEmpty, constructPayload, @@ -7,7 +8,6 @@ const { extractCustomFields, isDefinedAndNotNull, } = require('../../util'); -const { InstrumentationError } = require('../../util/errorTypes'); const { mappingConfig, ConfigCategory } = require('./config'); /** @@ -166,13 +166,15 @@ const GA4_ITEM_EXCLUSION = [ ]; /** - * Remove arrays and objects from transformed payload - * @param {*} params - * @returns + * Remove arrays and objects from transformed payload + * @param {*} params + * @returns */ const removeInvalidParams = (params) => Object.fromEntries( - Object.entries(params).filter(([key, value]) => key === 'items' || (typeof value !== 'object' && !isEmpty(value))), + Object.entries(params).filter( + ([key, value]) => key === 'items' || (typeof value !== 'object' && !isEmpty(value)), + ), ); /** @@ -244,10 +246,10 @@ const getItem = (message, isItemsRequired) => { /** * Returns items array for ga4 event payload - * @param {*} message - * @param {*} item - * @param {*} itemList - * @returns + * @param {*} message + * @param {*} item + * @param {*} itemList + * @returns */ const getItemsArray = (message, item, itemList) => { let items = []; @@ -269,7 +271,7 @@ const getItemsArray = (message, item, itemList) => { } return { items, mapRootLevelPropertiesToGA4ItemsArray }; -} +}; /** * get exclusion list for a particular event * ga4ExclusionList contains the sourceKeys that are already mapped @@ -398,21 +400,33 @@ const isValidUserProperty = (key, value) => { /** * Function to validate and prepare user_properties * @param {*} message + * @param {*} piiPropertiesToIgnore + * @returns */ -const prepareUserProperties = (message) => { +const prepareUserProperties = (message, piiPropertiesToIgnore = []) => { + // Exclude PII user traits + const piiProperties = []; + if (piiPropertiesToIgnore.length > 0) { + piiPropertiesToIgnore.forEach((property) => { + if (typeof property.piiProperty === 'string' && property.piiProperty.trim() !== '') { + piiProperties.push(property.piiProperty.trim()); + } + }); + } + const userProperties = extractCustomFields( message, {}, ['properties.user_properties', 'context.traits'], - GA4_RESERVED_USER_PROPERTY_EXCLUSION, + [...GA4_RESERVED_USER_PROPERTY_EXCLUSION, ...piiProperties], ); const validatedUserProperties = Object.entries(userProperties) .filter(([key, value]) => isValidUserProperty(key, value)) .reduce((acc, [key, value]) => { - const userProperties = acc; - userProperties[key] = { value }; - return userProperties; + const userPropertiesObj = acc; + userPropertiesObj[key] = { value }; + return userPropertiesObj; }, {}); return validatedUserProperties; diff --git a/src/v0/destinations/ga4/utils.test.js b/src/v0/destinations/ga4/utils.test.js index a39fef6f5e5..7826c23d351 100644 --- a/src/v0/destinations/ga4/utils.test.js +++ b/src/v0/destinations/ga4/utils.test.js @@ -2,7 +2,7 @@ const { validateEventName, prepareUserProperties, removeInvalidParams } = requir const userPropertyData = [ { - description: "Should validate and prepare user_properties", + description: 'Should validate and prepare user_properties', input: { userId: 'user@1', group_id: 'group@1', @@ -163,6 +163,256 @@ describe('Google Analytics 4 utils test', () => { }); describe('prepareUserProperties function tests', () => { + // Empty message and context returns empty object + it('should return empty object when message and context are empty', () => { + // Arrange + const message = {}; + const context = {}; + + // Act + const result = prepareUserProperties(message, []); + + // Assert + expect(result).toEqual({}); + }); + + // Filters out reserved and PII properties + it('should filter out reserved and PII properties', () => { + // Arrange + const message = { + context: { + traits: { + property3: 'value3', + property4: 'value4', + pii_property3: 'pii_value3', + pii_property4: 'pii_value4', + }, + }, + properties: { + user_properties: { + property1: 'value1', + property2: 'value2', + pii_property1: 'pii_value1', + pii_property2: 'pii_value2', + }, + }, + }; + + const piiPropertiesToIgnore = [ + { piiProperty: 'pii_property1' }, + { piiProperty: 'pii_property2' }, + { piiProperty: 'pii_property3' }, + { piiProperty: 'pii_property4' }, + ]; + + // Act + const result = prepareUserProperties(message, piiPropertiesToIgnore); + + // Assert + expect(result).toEqual({ + property1: { value: 'value1' }, + property2: { value: 'value2' }, + property3: { value: 'value3' }, + property4: { value: 'value4' }, + }); + }); + + // Validates user properties and returns them in expected format + it('should validate user properties and return them in expected format', () => { + // Arrange + const message = { + context: { + traits: { + valid_property3: 'value3', + _invalid_property3: '12_invalid_value3', + valid_property4: 'value4', + invalid_property4: [], + }, + }, + properties: { + user_properties: { + valid_property1: 'value1', + '12invalid_property1': 'ga_invalid_value1', + valid_property2: 'value2', + ga_invalid_property2: 'google_invalid_value2', + }, + }, + }; + // Act + const result = prepareUserProperties(message, []); + + // Assert + expect(result).toEqual({ + valid_property1: { value: 'value1' }, + valid_property2: { value: 'value2' }, + valid_property3: { value: 'value3' }, + valid_property4: { value: 'value4' }, + }); + }); + + // Invalid user properties are filtered out + + // User properties with invalid value types are filtered out + it('should filter out user properties with invalid value types', () => { + // Arrange + const message = { + context: { + traits: { + valid_property3: 'value3', + invalid_property3: { 456: 'value3' }, + valid_property4: 'value4', + invalid_property4: '01234567890123456789012345678901234567890123456789', + }, + }, + properties: { + user_properties: { + valid_property1: 'value1', + invalid_property1: [123, 456], + valid_property2: 'value2', + }, + }, + }; + + // Act + const result = prepareUserProperties(message, []); + + // Assert + expect(result).toEqual({ + valid_property1: { value: 'value1' }, + valid_property2: { value: 'value2' }, + valid_property3: { value: 'value3' }, + valid_property4: { value: 'value4' }, + }); + }); + + // PII properties are filtered out + it('should filter out PII properties from user_properties', () => { + // Arrange + const message = { + properties: { + user_properties: { + property1: 'value1', + property2: 'value2', + pii_property1: 'pii_value1', + pii_property2: 'pii_value2', + }, + }, + }; + const piiPropertiesToIgnore = [ + { piiProperty: 'pii_property1' }, + { piiProperty: 'pii_property2' }, + ]; + + // Act + const result = prepareUserProperties(message, piiPropertiesToIgnore); + + // Assert + expect(result).toEqual({ + property1: { value: 'value1' }, + property2: { value: 'value2' }, + }); + }); + + // PII properties are undefined + it('should return undefined when user_properties is undefined', () => { + // Arrange + const message = { + properties: { + user_properties: { + property1: 'value1', + property2: 'value2', + pii_property1: 'pii_value1', + pii_property2: 'pii_value2', + }, + }, + }; + const piiPropertiesToIgnore = undefined; + + // Act + const result = prepareUserProperties(message, piiPropertiesToIgnore); + + // Assert + expect(result).toEqual({ + pii_property1: { value: 'pii_value1' }, + pii_property2: { value: 'pii_value2' }, + property1: { value: 'value1' }, + property2: { value: 'value2' }, + }); + }); + + // User properties with valid keys and values are returned in expected format + it('should return user properties with valid keys and values in expected format', () => { + // Arrange + const message = { + properties: { + user_properties: { + property1: 'value1', + property2: 'value2', + }, + }, + }; + + // Act + const result = prepareUserProperties(message, []); + + // Assert + expect(result).toEqual({ + property1: { value: 'value1' }, + property2: { value: 'value2' }, + }); + }); + + // User properties with valid keys but invalid values are filtered out + it('should filter out user properties with invalid values', () => { + // Arrange + const message = { + properties: { + user_properties: { + validKey1: 'validValue1', + validKey2: 'validValue2', + invalidKey1: '', + invalidKey2: + 'invalidValueThatIsTooLongInvalidValueThatIsTooLongInvalidValueThatIsTooLongInvalidValueThatIsTooLong', + validKey4: true, + }, + }, + }; + const piiPropertiesToIgnore = []; + + // Act + const result = prepareUserProperties(message, piiPropertiesToIgnore); + + // Assert + expect(result).toEqual({ + validKey1: { value: 'validValue1' }, + validKey2: { value: 'validValue2' }, + validKey4: { value: true }, + }); + }); + // User properties with keys starting with reserved prefixes are filtered out + it('should filter out user properties with keys starting with reserved prefixes', () => { + // Arrange + const message = { + properties: { + user_properties: { + google_property: 'value1', + ga_property: 'value2', + firebase_property: 'value3', + valid_property: 'value4', + }, + }, + }; + const piiPropertiesToIgnore = []; + + // Act + const result = prepareUserProperties(message, piiPropertiesToIgnore); + + // Assert + expect(result).toEqual({ + valid_property: { value: 'value4' }, + }); + }); + userPropertyData.forEach((dataPoint) => { it(`${dataPoint.description}`, () => { try { diff --git a/src/v0/destinations/gainsight/transform.js b/src/v0/destinations/gainsight/transform.js index f58fc0d5666..f47296f066c 100644 --- a/src/v0/destinations/gainsight/transform.js +++ b/src/v0/destinations/gainsight/transform.js @@ -1,6 +1,7 @@ /* eslint-disable no-nested-ternary */ const set = require('set-value'); const get = require('get-value'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { identifyMapping, @@ -28,7 +29,6 @@ const { renameCustomFieldsFromMap, getConfigOrThrowError, } = require('./util'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); /** diff --git a/src/v0/destinations/gainsight/util.js b/src/v0/destinations/gainsight/util.js index 3c986b420df..39e666c1a58 100644 --- a/src/v0/destinations/gainsight/util.js +++ b/src/v0/destinations/gainsight/util.js @@ -1,7 +1,11 @@ +const { + ConfigurationError, + RetryableError, + NetworkError, +} = require('@rudderstack/integrations-lib'); const myAxios = require('../../../util/myAxios'); const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); const logger = require('../../../logger'); -const { ConfigurationError, RetryableError, NetworkError } = require('../../util/errorTypes'); const { ENDPOINTS, getLookupPayload } = require('./config'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/gainsight_px/transform.js b/src/v0/destinations/gainsight_px/transform.js index ab66b87c5a4..4d91980f117 100644 --- a/src/v0/destinations/gainsight_px/transform.js +++ b/src/v0/destinations/gainsight_px/transform.js @@ -1,4 +1,5 @@ /* eslint-disable no-nested-ternary */ +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { isEmptyObject, @@ -29,7 +30,6 @@ const { groupMapping, identifyMapping, } = require('./config'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); /** diff --git a/src/v0/destinations/gainsight_px/util.js b/src/v0/destinations/gainsight_px/util.js index 6900180ab50..5109286b3f3 100644 --- a/src/v0/destinations/gainsight_px/util.js +++ b/src/v0/destinations/gainsight_px/util.js @@ -1,6 +1,6 @@ +const { NetworkError } = require('@rudderstack/integrations-lib'); const myAxios = require('../../../util/myAxios'); const { ENDPOINTS } = require('./config'); -const { NetworkError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/google_adwords_enhanced_conversions/config.js b/src/v0/destinations/google_adwords_enhanced_conversions/config.js index a86d0606a6f..66d12c34d77 100644 --- a/src/v0/destinations/google_adwords_enhanced_conversions/config.js +++ b/src/v0/destinations/google_adwords_enhanced_conversions/config.js @@ -1,6 +1,6 @@ const { getMappingConfig } = require('../../util'); -const BASE_ENDPOINT = 'https://googleads.googleapis.com/v13/customers'; +const BASE_ENDPOINT = 'https://googleads.googleapis.com/v14/customers'; const CONFIG_CATEGORIES = { TRACK_CONFIG: { type: 'track', name: 'trackConfig' }, diff --git a/src/v0/destinations/google_adwords_enhanced_conversions/networkHandler.js b/src/v0/destinations/google_adwords_enhanced_conversions/networkHandler.js index 5349b741780..8ac432935f9 100644 --- a/src/v0/destinations/google_adwords_enhanced_conversions/networkHandler.js +++ b/src/v0/destinations/google_adwords_enhanced_conversions/networkHandler.js @@ -1,8 +1,8 @@ const { get, set } = require('lodash'); const sha256 = require('sha256'); +const { NetworkError, NetworkInstrumentationError } = require('@rudderstack/integrations-lib'); const { prepareProxyRequest, handleHttpRequest } = require('../../../adapters/network'); -const { isHttpStatusSuccess } = require('../../util/index'); -const { REFRESH_TOKEN } = require('../../../adapters/networkhandler/authConstants'); +const { isHttpStatusSuccess, getAuthErrCategoryFromStCode } = require('../../util/index'); const { CONVERSION_ACTION_ID_CACHE_TTL } = require('./config'); const Cache = require('../../util/cache'); @@ -13,20 +13,10 @@ const { getDynamicErrorType, } = require('../../../adapters/utils/networkUtils'); const { BASE_ENDPOINT } = require('./config'); -const { NetworkError, NetworkInstrumentationError } = require('../../util/errorTypes'); + const tags = require('../../util/tags'); -/** - * This function helps to detarmine type of error occured. According to the response - * we set authErrorCategory to take decision if we need to refresh the access_token - * or need to disable the destination. - * @param {*} code - * @param {*} response - * @returns - */ -const getAuthErrCategory = (code, response) => { - if (code === 401 && !get(response, 'error.details')) return REFRESH_TOKEN; - return ''; -}; + +const ERROR_MSG_PATH = 'response[0].error.message'; /** * This function is used for collecting the conversionActionId using the conversion name @@ -59,8 +49,8 @@ const getConversionActionId = async (method, headers, params) => { if (!isHttpStatusSuccess(gaecConversionActionIdResponse.status)) { throw new NetworkError( `"${JSON.stringify( - get(gaecConversionActionIdResponse, 'response[0].error.message', '') - ? get(gaecConversionActionIdResponse, 'response[0].error.message', '') + get(gaecConversionActionIdResponse, ERROR_MSG_PATH, '') + ? get(gaecConversionActionIdResponse, ERROR_MSG_PATH, '') : gaecConversionActionIdResponse.response, )} during Google_adwords_enhanced_conversions response transformation"`, gaecConversionActionIdResponse.status, @@ -68,10 +58,7 @@ const getConversionActionId = async (method, headers, params) => { [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(gaecConversionActionIdResponse.status), }, gaecConversionActionIdResponse.response, - getAuthErrCategory( - get(gaecConversionActionIdResponse, 'status'), - get(gaecConversionActionIdResponse, 'response[0].error.message'), - ), + getAuthErrCategoryFromStCode(gaecConversionActionIdResponse.status), ); } const conversionActionId = get( @@ -117,7 +104,23 @@ const responseHandler = (destinationResponse) => { const message = 'Request Processed Successfully'; const { status } = destinationResponse; if (isHttpStatusSuccess(status)) { - // Mostly any error will not have a status of 2xx + // for google ads enhance conversions the partialFailureError returns with status 200 + const { partialFailureError } = destinationResponse.response; + // non-zero code signifies partialFailure + // Ref - https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto + if (partialFailureError && partialFailureError.code !== 0) { + throw new NetworkError( + `[Google Ads Offline Conversions]:: partialFailureError - ${JSON.stringify( + partialFailureError, + )}`, + 400, + { + [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(400), + }, + partialFailureError, + ); + } + return { status, message, @@ -134,10 +137,11 @@ const responseHandler = (destinationResponse) => { [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), }, response, - getAuthErrCategory(status, response), + getAuthErrCategoryFromStCode(status), ); }; -// eslint-disable-next-line func-names + +// eslint-disable-next-line func-names, @typescript-eslint/naming-convention class networkHandler { constructor() { this.proxy = ProxyRequest; @@ -146,4 +150,5 @@ class networkHandler { this.prepareProxy = prepareProxyRequest; } } + module.exports = { networkHandler }; diff --git a/src/v0/destinations/google_adwords_enhanced_conversions/transform.js b/src/v0/destinations/google_adwords_enhanced_conversions/transform.js index 96ef0890016..0be7c3f0ee5 100644 --- a/src/v0/destinations/google_adwords_enhanced_conversions/transform.js +++ b/src/v0/destinations/google_adwords_enhanced_conversions/transform.js @@ -2,20 +2,16 @@ const get = require('get-value'); const { cloneDeep } = require('lodash'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { constructPayload, defaultRequestConfig, getValueFromMessage, removeHyphens, simpleProcessRouterDest, + getAccessToken, } = require('../../util'); -const { - InstrumentationError, - ConfigurationError, - OAuthSecretError, -} = require('../../util/errorTypes'); - const { trackMapping, BASE_ENDPOINT } = require('./config'); const { JSON_MIME_TYPE } = require('../../util/constant'); @@ -36,34 +32,13 @@ const updateMappingJson = (mapping) => { return newMapping; }; -/** - * Get access token to be bound to the event req headers - * - * Note: - * This method needs to be implemented particular to the destination - * As the schema that we'd get in `metadata.secret` can be different - * for different destinations - * - * @param {Object} metadata - * @returns - */ -const getAccessToken = (metadata) => { - // OAuth for this destination - const { secret } = metadata; - // we would need to verify if secret is present and also if the access token field is present in secret - if (!secret || !secret.access_token) { - throw new OAuthSecretError('Empty/Invalid access token'); - } - return secret.access_token; -}; - const responseBuilder = async (metadata, message, { Config }, payload) => { const response = defaultRequestConfig(); const { event } = message; const filteredCustomerId = removeHyphens(Config.customerId); response.endpoint = `${BASE_ENDPOINT}/${filteredCustomerId}:uploadConversionAdjustments`; response.body.JSON = payload; - const accessToken = getAccessToken(metadata); + const accessToken = getAccessToken(metadata, 'access_token'); response.headers = { Authorization: `Bearer ${accessToken}`, 'Content-Type': JSON_MIME_TYPE, diff --git a/src/v0/destinations/google_adwords_offline_conversions/config.js b/src/v0/destinations/google_adwords_offline_conversions/config.js index 1d77af02e68..a02732894fb 100644 --- a/src/v0/destinations/google_adwords_offline_conversions/config.js +++ b/src/v0/destinations/google_adwords_offline_conversions/config.js @@ -1,6 +1,6 @@ const { getMappingConfig } = require('../../util'); -const API_VERSION = 'v13'; +const API_VERSION = 'v14'; const BASE_ENDPOINT = `https://googleads.googleapis.com/${API_VERSION}/customers/:customerId`; diff --git a/src/v0/destinations/google_adwords_offline_conversions/helper.js b/src/v0/destinations/google_adwords_offline_conversions/helper.js new file mode 100644 index 00000000000..047cebedf23 --- /dev/null +++ b/src/v0/destinations/google_adwords_offline_conversions/helper.js @@ -0,0 +1,9 @@ +const moment = require('moment-timezone'); + +module.exports = { + formatTimestamp: (timestamp) => { + const tsMomentInstance = moment(timestamp); + const offsetFromUtc = tsMomentInstance.utcOffset(); + return tsMomentInstance.utcOffset(offsetFromUtc).format('YYYY-MM-DD HH:mm:ssZ'); + }, +}; diff --git a/src/v0/destinations/google_adwords_offline_conversions/helper.test.js b/src/v0/destinations/google_adwords_offline_conversions/helper.test.js new file mode 100644 index 00000000000..2ac5c6cfa04 --- /dev/null +++ b/src/v0/destinations/google_adwords_offline_conversions/helper.test.js @@ -0,0 +1,31 @@ +const moment = require('moment-timezone'); +const { formatTimestamp } = require('./helper'); + +describe('google adwords offline conversions - helper', () => { + it('should correctly format to IST', () => { + moment.tz.setDefault('Asia/Calcutta'); + expect(formatTimestamp('2019-10-14 11:15:18.299Z')).toEqual('2019-10-14 16:45:18+05:30'); + }); + it('should correctly format to UTC', () => { + moment.tz.setDefault('UTC'); + expect(formatTimestamp('2019-10-14 11:15:18.299Z')).toEqual('2019-10-14 11:15:18+00:00'); + }); + it('should return "Invalid date" when a string not in date-format is sent as argument', () => { + expect(formatTimestamp('abc')).toEqual('Invalid date'); + }); + it('should return offset value correctly when number is passed', () => { + moment.tz.setDefault('Asia/Tokyo'); + expect(formatTimestamp(11245)).toEqual('1970-01-01 09:00:11+09:00'); + }); + it('should return current date when a value not string is sent as argument', () => { + moment.tz.setDefault('UTC'); + const spy = jest.spyOn(Date, 'now').mockReturnValue('2023-10-22 12:51:30+00:00'); + expect(formatTimestamp([])).toEqual('2023-10-22 12:51:30+00:00'); + expect(formatTimestamp({})).toEqual('2023-10-22 12:51:30+00:00'); + expect(formatTimestamp(undefined)).toEqual('2023-10-22 12:51:30+00:00'); + spy.mockClear(); + }); + it('should return "Invalid date" when null value is passed as argument', () => { + expect(formatTimestamp(null)).toEqual('Invalid date'); + }); +}); diff --git a/src/v0/destinations/google_adwords_offline_conversions/networkHandler.js b/src/v0/destinations/google_adwords_offline_conversions/networkHandler.js index 4d960f94d75..a87a2431f2c 100644 --- a/src/v0/destinations/google_adwords_offline_conversions/networkHandler.js +++ b/src/v0/destinations/google_adwords_offline_conversions/networkHandler.js @@ -1,12 +1,17 @@ const set = require('set-value'); const get = require('get-value'); const sha256 = require('sha256'); +const { + AbortedError, + NetworkInstrumentationError, + NetworkError, +} = require('@rudderstack/integrations-lib'); const { prepareProxyRequest, httpSend, httpPOST } = require('../../../adapters/network'); -const { REFRESH_TOKEN } = require('../../../adapters/networkhandler/authConstants'); const { isHttpStatusSuccess, getHashFromArray, isDefinedAndNotNullAndNotEmpty, + getAuthErrCategoryFromStCode, } = require('../../util'); const { getConversionActionId } = require('./utils'); const Cache = require('../../util/cache'); @@ -15,30 +20,10 @@ const { processAxiosResponse, getDynamicErrorType, } = require('../../../adapters/utils/networkUtils'); -const { - AbortedError, - NetworkInstrumentationError, - NetworkError, -} = require('../../util/errorTypes'); const tags = require('../../util/tags'); const conversionCustomVariableCache = new Cache(CONVERSION_CUSTOM_VARIABLE_CACHE_TTL); -/** - * This function helps to determine the type of error occurred. We set the authErrorCategory - * as per the destination response that is received and take the decision whether - * to refresh the access_token or disable the destination. - * @param {*} status - * @returns - */ -const getAuthErrCategory = (status) => { - if (status === 401) { - // UNAUTHORIZED - return REFRESH_TOKEN; - } - return ''; -}; - const createJob = async (endpoint, headers, payload) => { const endPoint = `${endpoint}:create`; let createJobResponse = await httpPOST( @@ -57,7 +42,7 @@ const createJob = async (endpoint, headers, payload) => { `[Google Ads Offline Conversions]:: ${response?.error?.message} during google_ads_offline_store_conversions Job Creation`, status, response, - getAuthErrCategory(status), + getAuthErrCategoryFromStCode(status), ); } return response.resourceName.split('/')[3]; @@ -80,7 +65,7 @@ const addConversionToJob = async (endpoint, headers, jobId, payload) => { `[Google Ads Offline Conversions]:: ${addConversionToJobResponse.response?.error?.message} during google_ads_offline_store_conversions Add Conversion`, addConversionToJobResponse.status, addConversionToJobResponse.response, - getAuthErrCategory(get(addConversionToJobResponse, 'status')), + getAuthErrCategoryFromStCode(get(addConversionToJobResponse, 'status')), ); } return true; @@ -131,7 +116,7 @@ const getConversionCustomVariable = async (headers, params) => { [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(searchStreamResponse.status), }, searchStreamResponse?.response || searchStreamResponse, - getAuthErrCategory(searchStreamResponse.status), + getAuthErrCategoryFromStCode(searchStreamResponse.status), ); } const conversionCustomVariable = get(searchStreamResponse, 'response.0.results'); @@ -174,6 +159,24 @@ const getConversionCustomVariableHashMap = (arrays) => { return hashMap; }; +/** + * Validates custom variable + * @param {*} customVariables + * @returns + */ +const isValidCustomVariables = (customVariables) => { + if ( + isDefinedAndNotNullAndNotEmpty(customVariables) && + Array.isArray(customVariables) && + customVariables.length > 0 + ) { + return customVariables.some( + (customVariable) => !!(customVariable.from !== '' && customVariable.to !== ''), + ); + } + return false; +}; + /** * collect conversionActionId for conversionAction parameter * @param {*} request @@ -206,7 +209,7 @@ const ProxyRequest = async (request) => { set(body.JSON, 'conversions.0.conversionAction', conversionActionId); } // customVariables would be undefined in case of Store Conversions - if (isDefinedAndNotNullAndNotEmpty(params.customVariables)) { + if (isValidCustomVariables(params.customVariables)) { // fetch all conversion custom variable in google ads let conversionCustomVariable = await getConversionCustomVariable(headers, params); @@ -252,9 +255,9 @@ const responseHandler = (destinationResponse) => { if (partialFailureError && partialFailureError.code !== 0) { throw new NetworkError( `[Google Ads Offline Conversions]:: partialFailureError - ${partialFailureError?.message}`, - status, + 400, { - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), + [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(400), }, partialFailureError, ); @@ -274,7 +277,7 @@ const responseHandler = (destinationResponse) => { `[Google Ads Offline Conversions]:: ${response?.error?.message} during google_ads_offline_conversions response transformation`, status, response, - getAuthErrCategory(status), + getAuthErrCategoryFromStCode(status), ); }; diff --git a/src/v0/destinations/google_adwords_offline_conversions/transform.js b/src/v0/destinations/google_adwords_offline_conversions/transform.js index db87d2488ef..397895c6032 100644 --- a/src/v0/destinations/google_adwords_offline_conversions/transform.js +++ b/src/v0/destinations/google_adwords_offline_conversions/transform.js @@ -1,5 +1,5 @@ const { set, get } = require('lodash'); -const moment = require('moment'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { getHashFromArrayWithDuplicate, @@ -22,7 +22,7 @@ const { requestBuilder, getClickConversionPayloadAndEndpoint, } = require('./utils'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); +const helper = require('./helper'); /** * get conversions depending on the type set from dashboard @@ -65,9 +65,7 @@ const getConversions = (message, metadata, { Config }, event, conversionType) => // eslint-disable-next-line unicorn/consistent-destructuring if (!properties.conversionDateTime && (timestamp || originalTimestamp)) { const conversionTimestamp = timestamp || originalTimestamp; - const conversionDateTime = moment(conversionTimestamp) - .utcOffset(moment(conversionTimestamp).utcOffset()) - .format('YYYY-MM-DD HH:mm:ssZ'); + const conversionDateTime = helper.formatTimestamp(conversionTimestamp); set(payload, 'conversions[0].conversionDateTime', conversionDateTime); } payload.partialFailure = true; @@ -100,7 +98,9 @@ const trackResponseBuilder = (message, metadata, destination) => { const responseList = []; if (!eventsToConversionsNamesMapping[event] || !eventsToOfflineConversionsTypeMapping[event]) { - throw new ConfigurationError(`Event name '${event}' is not valid`); + throw new ConfigurationError( + `Event name '${event}' is not present in the mapping provided in the dashboard.`, + ); } const conversionTypes = Array.from(eventsToOfflineConversionsTypeMapping[event]); conversionTypes.forEach((conversionType) => { @@ -139,6 +139,7 @@ const process = async (event) => { const getEventChunks = (event, storeSalesEvents, clickCallEvents) => { const { message, metadata, destination } = event; + // eslint-disable-next-line @typescript-eslint/no-shadow message.forEach((message) => { if (message.body.JSON?.isStoreConversion) { storeSalesEvents.push({ message, metadata, destination }); @@ -166,7 +167,7 @@ const batchEvents = (storeSalesEvents) => { if (index === 0) { return; } - batchEventResponse.batchedRequest?.body?.JSON['addConversionPayload']?.operations?.push( + batchEventResponse.batchedRequest?.body?.JSON.addConversionPayload?.operations?.push( storeSalesEvent.message?.body?.JSON?.addConversionPayload?.operations, ); batchEventResponse.metadatas.push(storeSalesEvent.metadata); diff --git a/src/v0/destinations/google_adwords_offline_conversions/utils.js b/src/v0/destinations/google_adwords_offline_conversions/utils.js index 6131b5dde70..c69c5a436f1 100644 --- a/src/v0/destinations/google_adwords_offline_conversions/utils.js +++ b/src/v0/destinations/google_adwords_offline_conversions/utils.js @@ -1,6 +1,10 @@ const sha256 = require('sha256'); const { get, set, cloneDeep } = require('lodash'); -const moment = require('moment'); +const { + AbortedError, + ConfigurationError, + InstrumentationError, +} = require('@rudderstack/integrations-lib'); const { httpPOST } = require('../../../adapters/network'); const { isHttpStatusSuccess, @@ -11,8 +15,9 @@ const { getFieldValueFromMessage, isDefinedAndNotNullAndNotEmpty, isDefinedAndNotNull, + getAuthErrCategoryFromStCode, + getAccessToken, } = require('../../util'); -const { REFRESH_TOKEN } = require('../../../adapters/networkhandler/authConstants'); const { SEARCH_STREAM, CONVERSION_ACTION_ID_CACHE_TTL, @@ -24,12 +29,7 @@ const { } = require('./config'); const { processAxiosResponse } = require('../../../adapters/utils/networkUtils'); const Cache = require('../../util/cache'); -const { - AbortedError, - OAuthSecretError, - ConfigurationError, - InstrumentationError, -} = require('../../util/errorTypes'); +const helper = require('./helper'); const conversionActionIdCache = new Cache(CONVERSION_ACTION_ID_CACHE_TTL); @@ -43,34 +43,6 @@ const validateDestinationConfig = ({ Config }) => { } }; -/** - * for OAuth destination - * get access_token from metadata.secret{ ... } - * @param {*} param0 - * @returns - */ -const getAccessToken = ({ secret }) => { - if (!secret) { - throw new OAuthSecretError('OAuth - access token not found'); - } - return secret.access_token; -}; - -/** - * This function helps to determine the type of error occured. We set the authErrorCategory - * as per the destination response that is received and take the decision whether - * to refresh the access_token or disable the destination. - * @param {*} status - * @returns - */ -const getAuthErrCategory = (status) => { - if (status === 401) { - // UNAUTHORIZED - return REFRESH_TOKEN; - } - return ''; -}; - /** * get conversionAction using the conversion name using searchStream endpoint * @param {*} customerId @@ -100,7 +72,7 @@ const getConversionActionId = async (headers, params) => { )} during google_ads_offline_conversions response transformation`, searchStreamResponse.status, searchStreamResponse.response, - getAuthErrCategory(get(searchStreamResponse, 'status')), + getAuthErrCategoryFromStCode(get(searchStreamResponse, 'status')), ); } const conversionAction = get( @@ -108,7 +80,9 @@ const getConversionActionId = async (headers, params) => { 'response.0.results.0.conversionAction.resourceName', ); if (!conversionAction) { - throw new AbortedError(`Unable to find conversionActionId for conversion:${params.event}`); + throw new AbortedError( + `Unable to find conversionActionId for conversion:${params.event}. Most probably the conversion name in Google dashboard and Rudderstack dashboard are not same.`, + ); } return conversionAction; }); @@ -194,7 +168,7 @@ const requestBuilder = ( } response.body.JSON = payload; response.headers = { - Authorization: `Bearer ${getAccessToken(metadata)}`, + Authorization: `Bearer ${getAccessToken(metadata, 'access_token')}`, 'Content-Type': 'application/json', 'developer-token': get(metadata, 'secret.developer_token'), }; @@ -204,7 +178,7 @@ const requestBuilder = ( const filteredLoginCustomerId = removeHyphens(loginCustomerId); response.headers['login-customer-id'] = filteredLoginCustomerId; } else { - throw new ConfigurationError(`loginCustomerId is required as subAccount is enabled`); + throw new ConfigurationError(`"Login Customer ID" is required as "Sub Account" is enabled`); } } return response; @@ -254,9 +228,7 @@ const getAddConversionPayload = (message, Config) => { // transform originalTimestamp to format (yyyy-mm-dd hh:mm:ss+|-hh:mm) // e.g 2019-10-14T11:15:18.299Z -> 2019-10-14 16:10:29+0530 const timestamp = payload.operations.create.transaction_attribute.transaction_date_time; - const convertedDateTime = moment(timestamp) - .utcOffset(moment(timestamp).utcOffset()) - .format('YYYY-MM-DD HH:mm:ssZ'); + const convertedDateTime = helper.formatTimestamp(timestamp); payload.operations.create.transaction_attribute.transaction_date_time = convertedDateTime; // mapping custom_key that should be predefined in google Ui and mentioned when new job is created if (properties.custom_key && properties[properties.custom_key]) { @@ -390,7 +362,6 @@ const getClickConversionPayloadAndEndpoint = (message, Config, filteredCustomerI module.exports = { validateDestinationConfig, generateItemListFromProducts, - getAccessToken, getConversionActionId, removeHashToSha256TypeFromMappingJson, getStoreConversionPayload, diff --git a/src/v0/destinations/google_adwords_offline_conversions/utils.test.js b/src/v0/destinations/google_adwords_offline_conversions/utils.test.js index 775e123cfee..8deaa3ab0a5 100644 --- a/src/v0/destinations/google_adwords_offline_conversions/utils.test.js +++ b/src/v0/destinations/google_adwords_offline_conversions/utils.test.js @@ -161,7 +161,7 @@ describe('getExisitingUserIdentifier util tests', () => { describe('getClickConversionPayloadAndEndpoint util tests', () => { it('getClickConversionPayloadAndEndpoint flow check when default field identifier is present', () => { let expectedOutput = { - endpoint: 'https://googleads.googleapis.com/v13/customers/9625812972:uploadClickConversions', + endpoint: 'https://googleads.googleapis.com/v14/customers/9625812972:uploadClickConversions', payload: { conversions: [ { @@ -187,7 +187,7 @@ describe('getClickConversionPayloadAndEndpoint util tests', () => { delete fittingPayload.traits.email; delete fittingPayload.properties.email; let expectedOutput = { - endpoint: 'https://googleads.googleapis.com/v13/customers/9625812972:uploadClickConversions', + endpoint: 'https://googleads.googleapis.com/v14/customers/9625812972:uploadClickConversions', payload: { conversions: [ { @@ -215,7 +215,7 @@ describe('getClickConversionPayloadAndEndpoint util tests', () => { delete fittingPayload.traits.phone; delete fittingPayload.properties.email; let expectedOutput = { - endpoint: 'https://googleads.googleapis.com/v13/customers/9625812972:uploadClickConversions', + endpoint: 'https://googleads.googleapis.com/v14/customers/9625812972:uploadClickConversions', payload: { conversions: [ { @@ -251,7 +251,7 @@ describe('getClickConversionPayloadAndEndpoint util tests', () => { }, ]; let expectedOutput = { - endpoint: 'https://googleads.googleapis.com/v13/customers/9625812972:uploadClickConversions', + endpoint: 'https://googleads.googleapis.com/v14/customers/9625812972:uploadClickConversions', payload: { conversions: [ { diff --git a/src/v0/destinations/google_adwords_remarketing_lists/config.js b/src/v0/destinations/google_adwords_remarketing_lists/config.js index 902ac1cbff7..94059c69f1f 100644 --- a/src/v0/destinations/google_adwords_remarketing_lists/config.js +++ b/src/v0/destinations/google_adwords_remarketing_lists/config.js @@ -1,6 +1,6 @@ const { getMappingConfig } = require('../../util'); -const BASE_ENDPOINT = 'https://googleads.googleapis.com/v13/customers'; +const BASE_ENDPOINT = 'https://googleads.googleapis.com/v14/customers'; const CONFIG_CATEGORIES = { AUDIENCE_LIST: { type: 'audienceList', name: 'offlineDataJobs' }, ADDRESSINFO: { type: 'addressInfo', name: 'addressInfo' }, diff --git a/src/v0/destinations/google_adwords_remarketing_lists/networkHandler.js b/src/v0/destinations/google_adwords_remarketing_lists/networkHandler.js index ceea51f6a28..5be8597bdb2 100644 --- a/src/v0/destinations/google_adwords_remarketing_lists/networkHandler.js +++ b/src/v0/destinations/google_adwords_remarketing_lists/networkHandler.js @@ -1,13 +1,11 @@ +const { NetworkError } = require('@rudderstack/integrations-lib'); const { httpSend, prepareProxyRequest } = require('../../../adapters/network'); -const { isHttpStatusSuccess } = require('../../util/index'); - -const { REFRESH_TOKEN } = require('../../../adapters/networkhandler/authConstants'); +const { isHttpStatusSuccess, getAuthErrCategoryFromStCode } = require('../../util/index'); const { processAxiosResponse, getDynamicErrorType, } = require('../../../adapters/utils/networkUtils'); -const { NetworkError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); /** * This function helps to create a offlineUserDataJobs @@ -98,38 +96,39 @@ const gaAudienceProxyRequest = async (request) => { // step1: offlineUserDataJobs creation const firstResponse = await createJob(endpoint, customerId, listId, headers, method); - if (!firstResponse.success && !isHttpStatusSuccess(firstResponse?.response?.response?.status)) { + if (!firstResponse.success && !isHttpStatusSuccess(firstResponse?.response?.status)) { return firstResponse; } + if (isHttpStatusSuccess(firstResponse?.response?.status)) { + const { partialFailureError } = firstResponse.response.data; + if (partialFailureError && partialFailureError.code !== 0) { + return firstResponse; + } + } + // step2: putting users into the job let jobId; if (firstResponse?.response?.data?.resourceName) // eslint-disable-next-line prefer-destructuring jobId = firstResponse.response.data.resourceName.split('/')[3]; const secondResponse = await addUserToJob(endpoint, headers, method, jobId, body); - if (!secondResponse.success && !isHttpStatusSuccess(secondResponse?.response?.response?.status)) { + if (!secondResponse.success && !isHttpStatusSuccess(secondResponse?.response?.status)) { return secondResponse; } + if (isHttpStatusSuccess(secondResponse?.response?.status)) { + const { partialFailureError } = secondResponse.response.data; + if (partialFailureError && partialFailureError.code !== 0) { + return secondResponse; + } + } + // step3: running the job const thirdResponse = await runTheJob(endpoint, headers, method, jobId); return thirdResponse; }; -/** - * This function helps to detarmine type of error occured. According to the response - * we set authErrorCategory to take decision if we need to refresh the access_token - * or need to disable the destination. - * @param {*} code - * @param {*} response - * @returns - */ -const getAuthErrCategory = (code, response) => { - if (code === 401 && !response.error.details) return REFRESH_TOKEN; - return ''; -}; - const gaAudienceRespHandler = (destResponse, stageMsg) => { const { status, response } = destResponse; // const respAttributes = response["@attributes"] || null; @@ -142,14 +141,31 @@ const gaAudienceRespHandler = (destResponse, stageMsg) => { [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), }, response, - getAuthErrCategory(status, response), + getAuthErrCategoryFromStCode(status), ); }; const responseHandler = (destinationResponse) => { const message = `Request Processed Successfully`; - const { status } = destinationResponse; + const { status, response } = destinationResponse; if (isHttpStatusSuccess(status)) { + // for google ads offline conversions the partialFailureError returns with status 200 + const { partialFailureError } = response; + // non-zero code signifies partialFailure + // Ref - https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto + if (partialFailureError && partialFailureError.code !== 0) { + throw new NetworkError( + `[Google Ads Re-marketing Lists]:: partialFailureError - ${JSON.stringify( + partialFailureError, + )}`, + 400, + { + [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(400), + }, + partialFailureError, + ); + } + // Mostly any error will not have a status of 2xx return { status, diff --git a/src/v0/destinations/google_adwords_remarketing_lists/transform.js b/src/v0/destinations/google_adwords_remarketing_lists/transform.js index 9aaae3dbe3e..884fcd71f68 100644 --- a/src/v0/destinations/google_adwords_remarketing_lists/transform.js +++ b/src/v0/destinations/google_adwords_remarketing_lists/transform.js @@ -1,4 +1,6 @@ const sha256 = require('sha256'); +const get = require('get-value'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const logger = require('../../../logger'); const { isDefinedAndNotNullAndNotEmpty, @@ -9,13 +11,10 @@ const { removeUndefinedAndNullValues, removeHyphens, simpleProcessRouterDest, + getDestinationExternalIDInfoForRetl, + getAccessToken, } = require('../../util'); -const { - InstrumentationError, - ConfigurationError, - OAuthSecretError, -} = require('../../util/errorTypes'); const { offlineDataJobsMapping, addressInfoMapping, @@ -25,6 +24,7 @@ const { TYPEOFLIST, } = require('./config'); const { JSON_MIME_TYPE } = require('../../util/constant'); +const { MappedToDestinationKey } = require('../../../constants'); const hashEncrypt = (object) => { Object.keys(object).forEach((key) => { @@ -35,27 +35,6 @@ const hashEncrypt = (object) => { }); }; -/** - * Get access token to be bound to the event req headers - * - * Note: - * This method needs to be implemented particular to the destination - * As the schema that we'd get in `metadata.secret` can be different - * for different destinations - * - * @param {Object} metadata - * @returns - */ -const getAccessToken = (metadata) => { - // OAuth for this destination - const { secret } = metadata; - // we would need to verify if secret is present and also if the access token field is present in secret - if (!secret || !secret.access_token) { - throw new OAuthSecretError('Empty/Invalid access token'); - } - return secret.access_token; -}; - /** * This function is used for building the response. It create a default rudder response * and populate headers, params and body.JSON @@ -64,14 +43,26 @@ const getAccessToken = (metadata) => { * @param {*} param2 * @returns */ -const responseBuilder = (metadata, body, { Config }) => { +const responseBuilder = (metadata, body, { Config }, message) => { const payload = body; const response = defaultRequestConfig(); const filteredCustomerId = removeHyphens(Config.customerId); response.endpoint = `${BASE_ENDPOINT}/${filteredCustomerId}/offlineUserDataJobs`; response.body.JSON = removeUndefinedAndNullValues(payload); - const accessToken = getAccessToken(metadata); - response.params = { listId: Config.listId, customerId: filteredCustomerId }; + const accessToken = getAccessToken(metadata, 'access_token'); + let operationAudienceId = Config.audienceId || Config.listId; + const mappedToDestination = get(message, MappedToDestinationKey); + if (!operationAudienceId && mappedToDestination) { + const { objectType } = getDestinationExternalIDInfoForRetl( + message, + 'GOOGLE_ADWORDS_REMARKETING_LISTS', + ); + operationAudienceId = objectType; + } + if (!isDefinedAndNotNullAndNotEmpty(operationAudienceId)) { + throw new ConfigurationError('List ID is a mandatory field'); + } + response.params = { listId: operationAudienceId, customerId: filteredCustomerId }; response.headers = { Authorization: `Bearer ${accessToken}`, 'Content-Type': JSON_MIME_TYPE, @@ -221,7 +212,7 @@ const processEvent = async (metadata, message, destination) => { } Object.values(createdPayload).forEach((data) => { - response.push(responseBuilder(metadata, data, destination)); + response.push(responseBuilder(metadata, data, destination, message)); }); return response; } diff --git a/src/v0/destinations/google_cloud_function/config.js b/src/v0/destinations/google_cloud_function/config.js deleted file mode 100644 index 40efc2c04c1..00000000000 --- a/src/v0/destinations/google_cloud_function/config.js +++ /dev/null @@ -1,7 +0,0 @@ -const TRIGGERTYPE = { - HTTP: 'http', - HTTPS: 'https', -}; -module.exports = { - TRIGGERTYPE, -}; diff --git a/src/v0/destinations/google_cloud_function/transform.js b/src/v0/destinations/google_cloud_function/transform.js index e2c01cd8bc2..b218615b44d 100644 --- a/src/v0/destinations/google_cloud_function/transform.js +++ b/src/v0/destinations/google_cloud_function/transform.js @@ -1,29 +1,19 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const { - defaultRequestConfig, - defaultPostRequestConfig, getSuccessRespEvents, checkInvalidRtTfEvents, handleRtTfSingleEventError, } = require('../../util'); -const { generateBatchedPayload, validateDestinationConfig, addHeader } = require('./util'); +const { generateBatchedPayload, validateDestinationConfig } = require('./util'); // Main process Function to handle transformation function process(event) { const { message, destination } = event; - const { googleCloudFunctionUrl } = destination.Config; - // Config Validation validateDestinationConfig(destination); - const response = defaultRequestConfig(); - // adding header - addHeader(response, destination.Config); - response.method = defaultPostRequestConfig.requestMethod; - response.body.JSON = message; - response.endpoint = googleCloudFunctionUrl; - + const response = message; return response; } @@ -32,12 +22,12 @@ function batchEvents(successRespList, maxBatchSize = 10) { const batchedResponseList = []; // arrayChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] - const arrayChunks = _.chunk(successRespList, maxBatchSize); + const arrayChunks = lodash.chunk(successRespList, maxBatchSize); arrayChunks.forEach((chunk) => { const batchEventResponse = generateBatchedPayload(chunk); batchedResponseList.push( getSuccessRespEvents( - batchEventResponse.batchedRequest, + batchEventResponse.message, batchEventResponse.metadata, batchEventResponse.destination, true, diff --git a/src/v0/destinations/google_cloud_function/util.js b/src/v0/destinations/google_cloud_function/util.js index 10c4365b774..8f85460902c 100644 --- a/src/v0/destinations/google_cloud_function/util.js +++ b/src/v0/destinations/google_cloud_function/util.js @@ -1,77 +1,47 @@ -const { defaultBatchRequestConfig } = require('../../util'); -const { JSON_MIME_TYPE } = require('../../util/constant'); -const { ConfigurationError } = require('../../util/errorTypes'); - -const { TRIGGERTYPE } = require('./config'); +const { ConfigurationError } = require('@rudderstack/integrations-lib'); /** * validate destination config * @param {*} param0 */ const validateDestinationConfig = ({ Config }) => { - // throw error if google Cloud Function is not provided + // throw error if google Cloud Function URL is not provided if (!Config.googleCloudFunctionUrl) { throw new ConfigurationError('[GCF]:: Url not found. Aborting'); } - if ( - Config.triggerType === 'https' && // for triggerType https gcloud Authorization is mandatory - !Config.gcloudAuthorization - ) { - throw new ConfigurationError('[GCF]:: Access Token not found. Aborting'); + if (Config.requireAuthentication && !Config.credentials) { + throw new ConfigurationError( + '[GCF]:: Service Account credentials are required if your function required authentication. Aborting', + ); } }; -/** - * add headers in the payload that is provided in destination config - * @param {*} response - * @param {*} Config - */ -function addHeader(response, Config) { - const { triggerType, apiKeyId, gcloudAuthorization } = Config; - - response.headers = { 'content-type': JSON_MIME_TYPE }; - if (apiKeyId) { - const basicAuth = Buffer.from(`apiKey:${apiKeyId}`).toString('base64'); - response.headers.ApiKey = `Basic ${basicAuth}`; - } - if (TRIGGERTYPE.HTTPS === triggerType.toLowerCase()) { - response.headers.Authorization = `bearer ${gcloudAuthorization}`; - } -} - /** * Create GoogleCloudFunction Batch payload based on the passed events * @param {*} events * @returns */ + function generateBatchedPayload(events) { - const batchResponseList = []; const metadata = []; // extracting destination // from the first event in a batch const { destination } = events[0]; - const { googleCloudFunctionUrl } = destination.Config; - let batchEventResponse = defaultBatchRequestConfig(); + let batchEventResponse = events.map((event) => event.message); // Batch event into dest batch structure events.forEach((ev) => { - batchResponseList.push(ev.message.body.JSON); + // batchResponseList.push(ev.message.body.JSON); metadata.push(ev.metadata); }); - batchEventResponse.batchedRequest.body.JSON_ARRAY = { - batch: JSON.stringify(batchResponseList), - }; - batchEventResponse.batchedRequest.endpoint = googleCloudFunctionUrl; - addHeader(batchEventResponse.batchedRequest, destination.Config); batchEventResponse = { - ...batchEventResponse, - metadata, + message: batchEventResponse, destination, + metadata, }; return batchEventResponse; } module.exports = { validateDestinationConfig, - addHeader, generateBatchedPayload, }; diff --git a/src/v0/destinations/googlepubsub/transform.js b/src/v0/destinations/googlepubsub/transform.js index 44208735e07..7a022d6c29f 100644 --- a/src/v0/destinations/googlepubsub/transform.js +++ b/src/v0/destinations/googlepubsub/transform.js @@ -1,5 +1,5 @@ +const { ConfigurationError } = require('@rudderstack/integrations-lib'); const { simpleProcessRouterDest } = require('../../util'); -const { ConfigurationError } = require('../../util/errorTypes'); const { getTopic, createAttributesMetadata } = require('./util'); diff --git a/src/v0/destinations/googlesheets/transform.js b/src/v0/destinations/googlesheets/transform.js index 6cfb3f1d1e7..6e27f6192c1 100644 --- a/src/v0/destinations/googlesheets/transform.js +++ b/src/v0/destinations/googlesheets/transform.js @@ -1,12 +1,12 @@ /* eslint-disable no-nested-ternary */ const get = require('get-value'); +const { ConfigurationError } = require('@rudderstack/integrations-lib'); const { getValueFromMessage, getSuccessRespEvents, handleRtTfSingleEventError, checkInvalidRtTfEvents, } = require('../../util'); -const { ConfigurationError } = require('../../util/errorTypes'); const SOURCE_KEYS = ['properties', 'traits', 'context.traits']; diff --git a/src/v0/destinations/heap/transform.js b/src/v0/destinations/heap/transform.js index 32196eb7bee..42563241657 100644 --- a/src/v0/destinations/heap/transform.js +++ b/src/v0/destinations/heap/transform.js @@ -1,3 +1,4 @@ +const { InstrumentationError, TransformationError } = require('@rudderstack/integrations-lib'); const { CONFIG_CATEGORIES, MAPPING_CONFIG } = require('./config'); const { EventType } = require('../../../constants'); const { @@ -8,7 +9,6 @@ const { flattenJson, simpleProcessRouterDest, } = require('../../util'); -const { InstrumentationError, TransformationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); function responseBuilderSimple(message, category, destination) { diff --git a/src/v0/destinations/hs/HSTransform-v1.js b/src/v0/destinations/hs/HSTransform-v1.js index 13eeabbc455..51feebea74a 100644 --- a/src/v0/destinations/hs/HSTransform-v1.js +++ b/src/v0/destinations/hs/HSTransform-v1.js @@ -1,5 +1,10 @@ const get = require('get-value'); -const _ = require('lodash'); +const lodash = require('lodash'); +const { + InstrumentationError, + ConfigurationError, + TransformationError, +} = require('@rudderstack/integrations-lib'); const { MappedToDestinationKey, GENERIC_TRUE_VALUES } = require('../../../constants'); const { defaultGetRequestConfig, @@ -14,11 +19,6 @@ const { getDestinationExternalID, getDestinationExternalIDInfoForRetl, } = require('../../util'); -const { - InstrumentationError, - ConfigurationError, - TransformationError, -} = require('../../util/errorTypes'); const { BATCH_CONTACT_ENDPOINT, MAX_BATCH_SIZE, @@ -34,6 +34,7 @@ const { getEmailAndUpdatedProps, formatPropertyValueForIdentify, getHsSearchId, + populateTraits, } = require('./util'); const { JSON_MIME_TYPE } = require('../../util/constant'); @@ -52,7 +53,7 @@ const { JSON_MIME_TYPE } = require('../../util/constant'); */ const processLegacyIdentify = async (message, destination, propertyMap) => { const { Config } = destination; - const traits = getFieldValueFromMessage(message, 'traits'); + let traits = getFieldValueFromMessage(message, 'traits'); const mappedToDestination = get(message, MappedToDestinationKey); const operation = get(message, 'context.hubspotOperation'); // if mappedToDestination is set true, then add externalId to traits @@ -80,6 +81,8 @@ const processLegacyIdentify = async (message, destination, propertyMap) => { )}/${hsSearchId}`; response.method = defaultPatchRequestConfig.requestMethod; } + + traits = await populateTraits(propertyMap, traits, destination); response.body.JSON = removeUndefinedAndNullValues({ properties: traits }); response.source = 'rETL'; response.operation = operation; @@ -286,9 +289,9 @@ const legacyBatchEvents = (destEvents) => { eventsChunk.push(event); } }); - const arrayChunksIdentifyCreateObjects = _.chunk(createAllObjectsEventChunk, maxBatchSize); + const arrayChunksIdentifyCreateObjects = lodash.chunk(createAllObjectsEventChunk, maxBatchSize); - const arrayChunksIdentifyUpdateObjects = _.chunk(updateAllObjectsEventChunk, maxBatchSize); + const arrayChunksIdentifyUpdateObjects = lodash.chunk(updateAllObjectsEventChunk, maxBatchSize); // batching up 'create' all objects endpoint chunks if (arrayChunksIdentifyCreateObjects.length > 0) { batchedResponseList = batchIdentifyForrETL( @@ -308,7 +311,7 @@ const legacyBatchEvents = (destEvents) => { } // eventChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] - const arrayChunksIdentify = _.chunk(eventsChunk, MAX_BATCH_SIZE); + const arrayChunksIdentify = lodash.chunk(eventsChunk, MAX_BATCH_SIZE); // list of chunks [ [..], [..] ] arrayChunksIdentify.forEach((chunk) => { diff --git a/src/v0/destinations/hs/HSTransform-v2.js b/src/v0/destinations/hs/HSTransform-v2.js index 8cea4611e55..2acdd82152a 100644 --- a/src/v0/destinations/hs/HSTransform-v2.js +++ b/src/v0/destinations/hs/HSTransform-v2.js @@ -1,5 +1,10 @@ const get = require('get-value'); -const _ = require('lodash'); +const lodash = require('lodash'); +const { + TransformationError, + ConfigurationError, + InstrumentationError, +} = require('@rudderstack/integrations-lib'); const { MappedToDestinationKey, GENERIC_TRUE_VALUES } = require('../../../constants'); const { defaultPostRequestConfig, @@ -16,11 +21,6 @@ const { getDestinationExternalIDInfoForRetl, getDestinationExternalIDObjectForRetl, } = require('../../util'); -const { - TransformationError, - ConfigurationError, - InstrumentationError, -} = require('../../util/errorTypes'); const { IDENTIFY_CRM_UPDATE_CONTACT, IDENTIFY_CRM_CREATE_NEW_CONTACT, @@ -41,6 +41,7 @@ const { searchContacts, getEventAndPropertiesFromConfig, getHsSearchId, + populateTraits, } = require('./util'); const { JSON_MIME_TYPE } = require('../../util/constant'); @@ -69,7 +70,7 @@ const addHsAuthentication = (response, Config) => { */ const processIdentify = async (message, destination, propertyMap) => { const { Config } = destination; - const traits = getFieldValueFromMessage(message, 'traits'); + let traits = getFieldValueFromMessage(message, 'traits'); const mappedToDestination = get(message, MappedToDestinationKey); const operation = get(message, 'context.hubspotOperation'); const externalIdObj = getDestinationExternalIDObjectForRetl(message, 'HS'); @@ -124,6 +125,7 @@ const processIdentify = async (message, destination, propertyMap) => { response.method = defaultPatchRequestConfig.requestMethod; } + traits = await populateTraits(propertyMap, traits, destination); response.body.JSON = removeUndefinedAndNullValues({ properties: traits }); response.source = 'rETL'; response.operation = operation; @@ -417,23 +419,23 @@ const batchEvents = (destEvents) => { } }); - const arrayChunksIdentifyCreateObjects = _.chunk(createAllObjectsEventChunk, maxBatchSize); + const arrayChunksIdentifyCreateObjects = lodash.chunk(createAllObjectsEventChunk, maxBatchSize); - const arrayChunksIdentifyUpdateObjects = _.chunk(updateAllObjectsEventChunk, maxBatchSize); + const arrayChunksIdentifyUpdateObjects = lodash.chunk(updateAllObjectsEventChunk, maxBatchSize); // eventChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] // CRM create contact endpoint chunks - const arrayChunksIdentifyCreateContact = _.chunk( + const arrayChunksIdentifyCreateContact = lodash.chunk( createContactEventsChunk, MAX_BATCH_SIZE_CRM_CONTACT, ); // CRM update contact endpoint chunks - const arrayChunksIdentifyUpdateContact = _.chunk( + const arrayChunksIdentifyUpdateContact = lodash.chunk( updateContactEventsChunk, MAX_BATCH_SIZE_CRM_CONTACT, ); - const arrayChunksIdentifyCreateAssociations = _.chunk( + const arrayChunksIdentifyCreateAssociations = lodash.chunk( associationObjectsEventChunk, MAX_BATCH_SIZE_CRM_OBJECT, ); diff --git a/src/v0/destinations/hs/transform.js b/src/v0/destinations/hs/transform.js index 3f8010ff492..c26e024a6c5 100644 --- a/src/v0/destinations/hs/transform.js +++ b/src/v0/destinations/hs/transform.js @@ -1,4 +1,5 @@ const get = require('get-value'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { checkInvalidRtTfEvents, @@ -19,7 +20,6 @@ const { getProperties, validateDestinationConfig, } = require('./util'); -const { InstrumentationError } = require('../../util/errorTypes'); const processSingleMessage = async (message, destination, propertyMap) => { if (!message.type) { @@ -88,6 +88,7 @@ const processRouterDest = async (inputs, reqMetadata) => { if (mappedToDestination && GENERIC_TRUE_VALUES.includes(mappedToDestination?.toString())) { // skip splitting the batches to inserts and updates if object it is an association if (objectType.toLowerCase() !== 'association') { + propertyMap = await getProperties(destination); // get info about existing objects and splitting accordingly. tempInputs = await splitEventsForCreateUpdate(tempInputs, destination); } diff --git a/src/v0/destinations/hs/util.js b/src/v0/destinations/hs/util.js index 71ed97b7500..f83ce0b6de7 100644 --- a/src/v0/destinations/hs/util.js +++ b/src/v0/destinations/hs/util.js @@ -1,4 +1,10 @@ const get = require('get-value'); +const { + NetworkInstrumentationError, + InstrumentationError, + ConfigurationError, + NetworkError, +} = require('@rudderstack/integrations-lib'); const { httpGET, httpPOST } = require('../../../adapters/network'); const { processAxiosResponse, @@ -12,12 +18,6 @@ const { getDestinationExternalIDInfoForRetl, getValueFromMessage, } = require('../../util'); -const { - NetworkInstrumentationError, - InstrumentationError, - ConfigurationError, - NetworkError, -} = require('../../util/errorTypes'); const { CONTACT_PROPERTY_MAP_ENDPOINT, IDENTIFY_CRM_SEARCH_CONTACT, @@ -175,6 +175,18 @@ const validatePayloadDataTypes = (propertyMap, hsSupportedKey, value, traitsKey) return propValue; }; +/** + * Converts date to UTC Midnight TimeStamp + * @param {*} propValue + * @returns + */ +const getUTCMidnightTimeStampValue = (propValue) => { + const time = propValue; + const date = new Date(time); + date.setUTCHours(0, 0, 0, 0); + return date.getTime(); +}; + /** * add addtional properties in the payload that is provided in traits * only when it matches with HS properties (pre-defined/created from dashboard) @@ -204,10 +216,7 @@ const getTransformedJSON = async (message, destination, propertyMap) => { if (!rawPayload[traitsKey] && propertyMap[hsSupportedKey]) { let propValue = traits[traitsKey]; if (propertyMap[hsSupportedKey] === 'date') { - const time = propValue; - const date = new Date(time); - date.setUTCHours(0, 0, 0, 0); - propValue = date.getTime(); + propValue = getUTCMidnightTimeStampValue(propValue); } rawPayload[hsSupportedKey] = validatePayloadDataTypes( @@ -334,6 +343,7 @@ const searchContacts = async (message, destination) => { after: 0, }; + const endpointPath = '/contacts/search'; if (Config.authorizationType === 'newPrivateAppApi') { // Private Apps const requestOptions = { @@ -349,6 +359,7 @@ const searchContacts = async (message, destination) => { { destType: 'hs', feature: 'transformation', + endpointPath, }, ); searchContactsResponse = processAxiosResponse(searchContactsResponse); @@ -358,6 +369,7 @@ const searchContacts = async (message, destination) => { searchContactsResponse = await httpPOST(url, requestData, { destType: 'hs', feature: 'transformation', + endpointPath, }); searchContactsResponse = processAxiosResponse(searchContactsResponse); } @@ -404,6 +416,9 @@ const getEventAndPropertiesFromConfig = (message, destination, payload) => { if (!event) { throw new InstrumentationError('event name is required for track call'); } + if (!hubspotEvents) { + throw new InstrumentationError('Event and property mappings are required for track call'); + } event = event.trim().toLowerCase(); let eventName; let eventProperties; @@ -426,7 +441,9 @@ const getEventAndPropertiesFromConfig = (message, destination, payload) => { }); if (!hubspotEventFound) { - throw new ConfigurationError(`'${event}' event name not found`); + throw new ConfigurationError( + `Event name '${event}' mappings are not configured in the destination`, + ); } // 2. fetch event properties from webapp config @@ -451,7 +468,7 @@ const getEventAndPropertiesFromConfig = (message, destination, payload) => { */ const getExistingData = async (inputs, destination) => { const { Config } = destination; - const values = []; + let values = []; let searchResponse; let updateHubspotIds = []; const firstMessage = inputs[0].message; @@ -470,8 +487,10 @@ const getExistingData = async (inputs, destination) => { inputs.map(async (input) => { const { message } = input; const { destinationExternalId } = getDestinationExternalIDInfoForRetl(message, DESTINATION); - values.push(destinationExternalId); + values.push(destinationExternalId.toString().toLowerCase()); }); + + values = Array.from(new Set(values)); const requestData = { filterGroups: [ { @@ -506,6 +525,7 @@ const getExistingData = async (inputs, destination) => { while (checkAfter) { const endpoint = IDENTIFY_CRM_SEARCH_ALL_OBJECTS.replace(':objectType', objectType); + const endpointPath = `objects/:objectType/search`; const url = Config.authorizationType === 'newPrivateAppApi' @@ -516,10 +536,12 @@ const getExistingData = async (inputs, destination) => { ? await httpPOST(url, requestData, requestOptions, { destType: 'hs', feature: 'transformation', + endpointPath, }) : await httpPOST(url, requestData, { destType: 'hs', feature: 'transformation', + endpointPath, }); searchResponse = processAxiosResponse(searchResponse); @@ -585,7 +607,8 @@ const splitEventsForCreateUpdate = async (inputs, destination) => { const { destinationExternalId } = getDestinationExternalIDInfoForRetl(message, DESTINATION); const filteredInfo = updateHubspotIds.filter( - (update) => update.property.toString() === destinationExternalId.toString(), + (update) => + update.property.toString().toLowerCase() === destinationExternalId.toString().toLowerCase(), ); if (filteredInfo.length > 0) { @@ -615,6 +638,31 @@ const getHsSearchId = (message) => { return { hsSearchId }; }; +/** + * returns updated traits + * @param {*} propertyMap + * @param {*} traits + * @param {*} destination + */ +const populateTraits = async (propertyMap, traits, destination) => { + const populatedTraits = traits; + let propertyToTypeMap = propertyMap; + if (!propertyToTypeMap) { + // fetch HS properties + propertyToTypeMap = await getProperties(destination); + } + + const keys = Object.keys(populatedTraits); + keys.forEach((key) => { + const value = populatedTraits[key]; + if (propertyToTypeMap[key] === 'date') { + populatedTraits[key] = getUTCMidnightTimeStampValue(value); + } + }); + + return populatedTraits; +}; + module.exports = { validateDestinationConfig, formatKey, @@ -628,4 +676,6 @@ module.exports = { splitEventsForCreateUpdate, getHsSearchId, validatePayloadDataTypes, + getUTCMidnightTimeStampValue, + populateTraits, }; diff --git a/src/v0/destinations/impact/transform.js b/src/v0/destinations/impact/transform.js index 026318cec73..2eefdf7992d 100644 --- a/src/v0/destinations/impact/transform.js +++ b/src/v0/destinations/impact/transform.js @@ -1,5 +1,10 @@ const sha1 = require('js-sha1'); const btoa = require('btoa'); +const { + ConfigurationError, + TransformationError, + InstrumentationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { CONFIG_CATEGORIES, MAPPING_CONFIG } = require('./config'); const { @@ -17,11 +22,6 @@ const { removeUndefinedAndNullValues, isDefinedAndNotNullAndNotEmpty, } = require('../../util'); -const { - ConfigurationError, - TransformationError, - InstrumentationError, -} = require('../../util/errorTypes'); /** * This function takes the transformed payload, endpoint and destination Config as input and returns the prepared response. diff --git a/src/v0/destinations/indicative/transform.js b/src/v0/destinations/indicative/transform.js index 81eb19f320e..000998c3b86 100644 --- a/src/v0/destinations/indicative/transform.js +++ b/src/v0/destinations/indicative/transform.js @@ -1,4 +1,5 @@ const get = require('get-value'); +const { InstrumentationError, TransformationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { CONFIG_CATEGORIES, MAPPING_CONFIG } = require('./config'); const { @@ -9,7 +10,6 @@ const { simpleProcessRouterDest, } = require('../../util'); const { getUAInfo } = require('./utils'); -const { InstrumentationError, TransformationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const handleProperties = (properties) => { diff --git a/src/v0/destinations/intercom/deleteUsers.js b/src/v0/destinations/intercom/deleteUsers.js index 9241a229069..e11d3521178 100644 --- a/src/v0/destinations/intercom/deleteUsers.js +++ b/src/v0/destinations/intercom/deleteUsers.js @@ -1,8 +1,8 @@ +const { NetworkError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { httpPOST } = require('../../../adapters/network'); const { processAxiosResponse } = require('../../../adapters/utils/networkUtils'); const { isHttpStatusSuccess } = require('../../util'); const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); -const { NetworkError, ConfigurationError } = require('../../util/errorTypes'); const { executeCommonValidations } = require('../../util/regulation-api'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/intercom/networkHandler.js b/src/v0/destinations/intercom/networkHandler.js new file mode 100644 index 00000000000..a4106257b38 --- /dev/null +++ b/src/v0/destinations/intercom/networkHandler.js @@ -0,0 +1,37 @@ +const { RetryableError } = require('@rudderstack/integrations-lib'); +const { proxyRequest, prepareProxyRequest } = require('../../../adapters/network'); +const { processAxiosResponse } = require('../../../adapters/utils/networkUtils'); + +const errorResponseHandler = (destinationResponse, dest) => { + const { status } = destinationResponse; + if (status === 408) { + throw new RetryableError( + `[Intercom Response Handler] Request failed for destination ${dest} with status: ${status}`, + 500, + destinationResponse, + ); + } +}; + +const destResponseHandler = (destinationResponse, dest) => { + errorResponseHandler(destinationResponse, dest); + return { + destinationResponse: destinationResponse.response, + message: 'Request Processed Successfully', + status: destinationResponse.status, + }; +}; + +// eslint-disable-next-line @typescript-eslint/naming-convention +class networkHandler { + constructor() { + this.responseHandler = destResponseHandler; + this.proxy = proxyRequest; + this.prepareProxy = prepareProxyRequest; + this.processAxiosResponse = processAxiosResponse; + } +} + +module.exports = { + networkHandler, +}; diff --git a/src/v0/destinations/intercom/transform.js b/src/v0/destinations/intercom/transform.js index 9616b242200..212eaba13b5 100644 --- a/src/v0/destinations/intercom/transform.js +++ b/src/v0/destinations/intercom/transform.js @@ -1,5 +1,6 @@ const md5 = require('md5'); const get = require('get-value'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType, MappedToDestinationKey } = require('../../../constants'); const { ConfigCategory, @@ -18,7 +19,6 @@ const { flattenJson, } = require('../../util'); const { separateReservedAndRestMetadata } = require('./util'); -const { InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); function getCompanyAttribute(company) { @@ -76,12 +76,12 @@ function validateIdentify(message, payload, config) { return finalPayload; } - throw new InstrumentationError('Email or userId is mandatory'); + throw new InstrumentationError('Either of `email` or `userId` is required for Identify call'); } function validateTrack(payload) { if (!payload.user_id && !payload.email) { - throw new InstrumentationError('Email or userId is mandatory'); + throw new InstrumentationError('Either of `email` or `userId` is required for Track call'); } // pass only string, number, boolean properties if (payload.metadata) { @@ -94,16 +94,17 @@ function validateTrack(payload) { } const checkIfEmailOrUserIdPresent = (message, Config) => { - let user_id = message.userId; - if (Config.sendAnonymousId && !user_id) { - user_id = message.anonymousId; + const { context, anonymousId } = message; + let { userId } = message; + if (Config.sendAnonymousId && !userId) { + userId = anonymousId; } - return !!(user_id || message.context?.traits?.email); + return !!(userId || context.traits?.email); }; function attachUserAndCompany(message, Config) { const email = message.context?.traits?.email; - const { userId, anonymousId } = message; + const { userId, anonymousId, traits, groupId } = message; const requestBody = {}; if (userId) { requestBody.user_id = userId; @@ -115,10 +116,10 @@ function attachUserAndCompany(message, Config) { requestBody.email = email; } const companyObj = { - company_id: message.groupId, + company_id: groupId, }; - if (message.traits?.name) { - companyObj.name = message.traits.name; + if (traits?.name) { + companyObj.name = traits.name; } requestBody.companies = [companyObj]; const response = defaultRequestConfig(); diff --git a/src/v0/destinations/iterable/data/IterableTrackConfig.json b/src/v0/destinations/iterable/data/IterableTrackConfig.json index 1a751e2fe45..5de4856b336 100644 --- a/src/v0/destinations/iterable/data/IterableTrackConfig.json +++ b/src/v0/destinations/iterable/data/IterableTrackConfig.json @@ -21,6 +21,14 @@ ], "required": false }, + { + "destKey": "id", + "sourceKeys": "properties.event_id", + "required": false, + "metadata": { + "type": "toString" + } + }, { "destKey": "eventName", "sourceKeys": "event", diff --git a/src/v0/destinations/iterable/data/IterableTrackPurchaseConfig.json b/src/v0/destinations/iterable/data/IterableTrackPurchaseConfig.json index 08014dec3f6..aa15d76a709 100644 --- a/src/v0/destinations/iterable/data/IterableTrackPurchaseConfig.json +++ b/src/v0/destinations/iterable/data/IterableTrackPurchaseConfig.json @@ -6,8 +6,11 @@ }, { "destKey": "id", - "sourceKeys": "properties.orderId", - "required": false + "sourceKeys": ["properties.order_id", "properties.orderId", "properties.event_id"], + "required": false, + "metadata": { + "type": "toString" + } }, { "destKey": "createdAt", diff --git a/src/v0/destinations/iterable/deleteUsers.js b/src/v0/destinations/iterable/deleteUsers.js new file mode 100644 index 00000000000..a179a8930f0 --- /dev/null +++ b/src/v0/destinations/iterable/deleteUsers.js @@ -0,0 +1,80 @@ +const { NetworkError, ConfigurationError } = require('@rudderstack/integrations-lib'); +const { httpDELETE } = require('../../../adapters/network'); +const { processAxiosResponse } = require('../../../adapters/utils/networkUtils'); +const { isHttpStatusSuccess } = require('../../util'); +const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); +const { executeCommonValidations } = require('../../util/regulation-api'); +const tags = require('../../util/tags'); +const { JSON_MIME_TYPE } = require('../../util/constant'); + +// Ref-> https://developers.intercom.com/intercom-api-reference/v1.3/reference/permanently-delete-a-user +const userDeletionHandler = async (userAttributes, config) => { + if (!config) { + throw new ConfigurationError('Config for deletion not present'); + } + const { apiKey } = config; + if (!apiKey) { + throw new ConfigurationError('api key for deletion not present'); + } + const validUserIds = []; + userAttributes.forEach((userAttribute) => { + // Dropping the user if userId is not present + if (userAttribute.userId) { + validUserIds.push(userAttribute.userId); + } + }); + const failedUserDeletions = []; + await Promise.all( + validUserIds.map(async (uId) => { + const url = `https://api.iterable.com/api/users/byUserId/${uId}`; + const requestOptions = { + headers: { + 'Content-Type': JSON_MIME_TYPE, + api_key: apiKey, + }, + }; + const resp = await httpDELETE(url, requestOptions, { + destType: 'iterable', + feature: 'deleteUsers', + }); + const handledDelResponse = processAxiosResponse(resp); + if (!isHttpStatusSuccess(handledDelResponse.status) && handledDelResponse.status !== 404) { + if (handledDelResponse.status !== 400) { + // Generic errors such as invalid api key + throw new NetworkError( + `User deletion request failed : ${handledDelResponse.response.msg}`, + handledDelResponse.status, + { + [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(handledDelResponse.status), + }, + handledDelResponse, + ); + } else { + // Specific errors such as user is not found + failedUserDeletions.push({ userId: uId, Reason: handledDelResponse.response.msg }); + } + } + }), + ); + + if (failedUserDeletions.length > 0) { + throw new NetworkError( + `User deletion request failed for userIds : ${JSON.stringify(failedUserDeletions)}`, + 400, + { + [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(400), + }, + failedUserDeletions, + ); + } + + return { statusCode: 200, status: 'successful' }; +}; +const processDeleteUsers = async (event) => { + const { userAttributes, config } = event; + executeCommonValidations(userAttributes); + const resp = await userDeletionHandler(userAttributes, config); + return resp; +}; + +module.exports = { processDeleteUsers }; diff --git a/src/v0/destinations/iterable/transform.js b/src/v0/destinations/iterable/transform.js index 907030db9f6..64bdcfcfa46 100644 --- a/src/v0/destinations/iterable/transform.js +++ b/src/v0/destinations/iterable/transform.js @@ -1,7 +1,7 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const get = require('get-value'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { - batchEvents, getCatalogEndpoint, hasMultipleResponses, pageEventPayloadBuilder, @@ -23,10 +23,10 @@ const { handleRtTfSingleEventError, removeUndefinedAndNullValues, getDestinationExternalIDInfoForRetl, + groupEventsByType: batchEvents, } = require('../../util'); const { JSON_MIME_TYPE } = require('../../util/constant'); const { mappingConfig, ConfigCategory } = require('./config'); -const { InstrumentationError } = require('../../util/errorTypes'); const { EventType, MappedToDestinationKey } = require('../../../constants'); /** @@ -213,10 +213,10 @@ const processRouterDest = async (inputs, reqMetadata) => { * ] */ - const responses = process(event); - const transformedPayloads = Array.isArray(responses) ? responses : [responses]; - return transformedPayloads.map((response) => ({ - message: response, + const responsesFn = process(event); + const transformedPayloadsArr = Array.isArray(responsesFn) ? responsesFn : [responsesFn]; + return transformedPayloadsArr.map((res) => ({ + message: res, metadata: event.metadata, destination: event.destination, })); @@ -230,13 +230,13 @@ const processRouterDest = async (inputs, reqMetadata) => { * Before flat map : transformedPayloads = [{e1}, {e2}, [{e3}, {e4}, {e5}], {e6}] * After flat map : transformedPayloads = [{e1}, {e2}, {e3}, {e4}, {e5}, {e6}] */ - transformedPayloads = _.flatMap(transformedPayloads); + transformedPayloads = lodash.flatMap(transformedPayloads); return filterEventsAndPrepareBatchRequests(transformedPayloads); }), ); // Flatten the response array containing batched events from multiple groups - const allBatchedEvents = _.flatMap(response); + const allBatchedEvents = lodash.flatMap(response); return allBatchedEvents; }; diff --git a/src/v0/destinations/iterable/util.js b/src/v0/destinations/iterable/util.js index 64adbc6c2e5..7c1509c2b79 100644 --- a/src/v0/destinations/iterable/util.js +++ b/src/v0/destinations/iterable/util.js @@ -1,6 +1,7 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const get = require('get-value'); const jsonSize = require('json-size'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { isAppleFamily, constructPayload, @@ -20,12 +21,13 @@ const { } = require('./config'); const { JSON_MIME_TYPE } = require('../../util/constant'); const { EventType, MappedToDestinationKey } = require('../../../constants'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); + +const MESSAGE_JSON_PATH = 'message.body.JSON'; /** * Returns preferUserId param - * @param {*} config - * @returns + * @param {*} config + * @returns */ const getPreferUserId = (config) => { if (config.preferUserId !== undefined) { @@ -36,8 +38,8 @@ const getPreferUserId = (config) => { /** * Returns mergeNestedObjects param - * @param {*} config - * @returns + * @param {*} config + * @returns */ const getMergeNestedObjects = (config) => { if (config.mergeNestedObjects !== undefined) { @@ -70,10 +72,10 @@ const validateMandatoryField = (payload) => { /** * Check for register device and register browser events - * @param {*} message - * @param {*} category - * @param {*} config - * @returns + * @param {*} message + * @param {*} category + * @param {*} config + * @returns */ const hasMultipleResponses = (message, category, config) => { const { context } = message; @@ -92,7 +94,10 @@ const hasMultipleResponses = (message, category, config) => { * @returns */ const getCategoryUsingEventName = (message) => { - const event = message.event?.toLowerCase(); + let { event } = message; + if (typeof event === 'string') { + event = event.toLowerCase(); + } switch (event) { case 'order completed': @@ -165,7 +170,8 @@ const pageOrScreenEventPayloadBuilder = (message, destination, category) => { let rawPayload = {}; const eventType = message.type.toLowerCase(); - const { trackAllPages, trackCategorisedPages, trackNamedPages } = destination.Config; + const { trackAllPages, trackCategorisedPages, trackNamedPages, mapToSingleEvent } = + destination.Config; if (trackAllPages) { rawPayload = constructPayload(message, mappingConfig[category.name]); } else if (trackCategorisedPages && (message.properties?.category || message.category)) { @@ -182,7 +188,7 @@ const pageOrScreenEventPayloadBuilder = (message, destination, category) => { rawPayload.campaignId = rawPayload.campaignId ? parseInt(rawPayload.campaignId, 10) : undefined; rawPayload.templateId = rawPayload.templateId ? parseInt(rawPayload.templateId, 10) : undefined; rawPayload.eventName = - destination.Config.mapToSingleEvent === true + mapToSingleEvent === true ? `Loaded a ${eventType.charAt(0).toUpperCase()}${eventType.slice(1)}` : `${rawPayload.eventName} ${eventType}`; @@ -262,9 +268,9 @@ const purchaseEventPayloadBuilder = (message, category, config) => { user: { ...constructPayload(message, mappingConfig[ConfigCategory.IDENTIFY.name]), preferUserId: getPreferUserId(config), - mergeNestedObjects: getMergeNestedObjects(config) - } - } + mergeNestedObjects: getMergeNestedObjects(config), + }, + }; validateMandatoryField(rawPayload.user); @@ -288,8 +294,8 @@ const updateCartEventPayloadBuilder = (message, config) => { user: { ...constructPayload(message, mappingConfig[ConfigCategory.IDENTIFY.name]), preferUserId: getPreferUserId(config), - mergeNestedObjects: getMergeNestedObjects(config) - } + mergeNestedObjects: getMergeNestedObjects(config), + }, }; validateMandatoryField(rawPayload.user); @@ -365,7 +371,7 @@ const prepareAndSplitUpdateUserBatchesBasedOnPayloadSize = ( let nonBatchedRequests = []; chunk.forEach((event) => { - size += jsonSize(get(event, 'message.body.JSON')); + size += jsonSize(get(event, `${MESSAGE_JSON_PATH}`)); if (size > IDENTIFY_MAX_BODY_SIZE_IN_BYTES) { batches.push({ users: usersChunk, @@ -377,7 +383,7 @@ const prepareAndSplitUpdateUserBatchesBasedOnPayloadSize = ( usersChunk = []; metadataChunk = []; nonBatchedRequests = []; - size = jsonSize(get(event, 'message.body.JSON')); + size = jsonSize(get(event, `${MESSAGE_JSON_PATH}`)); } if (registerDeviceOrBrowserTokenEvents[event.metadata.jobId]) { @@ -386,7 +392,7 @@ const prepareAndSplitUpdateUserBatchesBasedOnPayloadSize = ( } metadataChunk.push(event.metadata); - usersChunk.push(get(event, 'message.body.JSON')); + usersChunk.push(get(event, `${MESSAGE_JSON_PATH}`)); }); if (usersChunk.length > 0) { @@ -464,7 +470,7 @@ const processUpdateUserBatch = (chunk, registerDeviceOrBrowserTokenEvents) => { const batchUpdateUserEvents = (updateUserEvents, registerDeviceOrBrowserTokenEvents) => { // Batching update user events // arrayChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] - const updateUserEventsChunks = _.chunk(updateUserEvents, IDENTIFY_MAX_BATCH_SIZE); + const updateUserEventsChunks = lodash.chunk(updateUserEvents, IDENTIFY_MAX_BATCH_SIZE); return updateUserEventsChunks.reduce((batchedResponseList, chunk) => { const batchedResponse = processUpdateUserBatch(chunk, registerDeviceOrBrowserTokenEvents); return batchedResponseList.concat(batchedResponse); @@ -529,7 +535,7 @@ const processCatalogBatch = (chunk) => { const batchCatalogEvents = (catalogEvents) => { // Batching catalog events // arrayChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] - const catalogEventsChunks = _.chunk(catalogEvents, IDENTIFY_MAX_BATCH_SIZE); + const catalogEventsChunks = lodash.chunk(catalogEvents, IDENTIFY_MAX_BATCH_SIZE); return catalogEventsChunks.reduce((batchedResponseList, chunk) => { const batchedResponse = processCatalogBatch(chunk); return batchedResponseList.concat(batchedResponse); @@ -550,7 +556,7 @@ const processTrackBatch = (chunk) => { chunk.forEach((event) => { metadata.push(event.metadata); - events.push(get(event, 'message.body.JSON')); + events.push(get(event, `${MESSAGE_JSON_PATH}`)); }); const batchEventResponse = defaultBatchRequestConfig(); @@ -576,7 +582,7 @@ const processTrackBatch = (chunk) => { const batchTrackEvents = (trackEvents) => { // Batching track events // arrayChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] - const trackEventsChunks = _.chunk(trackEvents, TRACK_MAX_BATCH_SIZE); + const trackEventsChunks = lodash.chunk(trackEvents, TRACK_MAX_BATCH_SIZE); return trackEventsChunks.reduce((batchedResponseList, chunk) => { const batchedResponse = processTrackBatch(chunk); return batchedResponseList.concat(batchedResponse); @@ -646,9 +652,9 @@ const mapRegisterDeviceOrBrowserTokenEventsWithJobId = (events) => { * @returns */ const categorizeEvent = (event) => { - const { message, metadata, destination } = event; + const { message, metadata, destination, error } = event; - if (event?.error) { + if (error) { return { type: 'error', data: event }; } @@ -733,41 +739,7 @@ const filterEventsAndPrepareBatchRequests = (transformedEvents) => { return prepareBatchRequests(filteredEvents); }; -/** - * Groups events with the same message type together in batches. - * Each batch contains events that have the same message type and are from different users. - * - * @param {Array} inputs - An array of events - * @returns {Array} - An array of batches - */ -const batchEvents = (inputs) => { - const batches = []; - let currentInputsArray = inputs; - while (currentInputsArray.length > 0) { - const remainingInputsArray = []; - const userOrderTracker = {}; - const event = currentInputsArray.shift(); - const messageType = event.message.type; - const batch = [event]; - currentInputsArray.forEach((currentInput) => { - const currentMessageType = currentInput.message.type; - const currentUser = currentInput.metadata.userId; - if (currentMessageType === messageType && !userOrderTracker[currentUser]) { - batch.push(currentInput); - } else { - remainingInputsArray.push(currentInput); - userOrderTracker[currentUser] = true; - } - }) - batches.push(batch); - currentInputsArray = remainingInputsArray; - } - - return batches; -} - module.exports = { - batchEvents, getCatalogEndpoint, hasMultipleResponses, pageEventPayloadBuilder, diff --git a/src/v0/destinations/iterable/util.test.js b/src/v0/destinations/iterable/util.test.js index e7a1ea5862d..098960ac775 100644 --- a/src/v0/destinations/iterable/util.test.js +++ b/src/v0/destinations/iterable/util.test.js @@ -1,5 +1,4 @@ const { - batchEvents, pageEventPayloadBuilder, trackEventPayloadBuilder, screenEventPayloadBuilder, @@ -108,103 +107,6 @@ const getTestEcommMessage = () => { return message; }; -const orderEventsFuncData = [ - { - inputs: [ - { message: { type: 'identify' }, metadata: { userId: '1' } }, - { message: { type: 'track' }, metadata: { userId: '1' } }, - { message: { type: 'identify' }, metadata: { userId: '2' } }, - { message: { type: 'track' }, metadata: { userId: '2' } }, - { message: { type: 'track' }, metadata: { userId: '2' } }, - { message: { type: 'identify' }, metadata: { userId: '3' } }, - { message: { type: 'track' }, metadata: { userId: '3' } }, - { message: { type: 'identify' }, metadata: { userId: '4' } }, - { message: { type: 'track' }, metadata: { userId: '4' } }, - { message: { type: 'identify' }, metadata: { userId: '5' } }, - { message: { type: 'track' }, metadata: { userId: '5' } }, - { message: { type: 'identify' }, metadata: { userId: '5' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - ], - output: [ - [ - { message: { type: 'identify' }, metadata: { userId: '1' } }, - { message: { type: 'identify' }, metadata: { userId: '2' } }, - { message: { type: 'identify' }, metadata: { userId: '3' } }, - { message: { type: 'identify' }, metadata: { userId: '4' } }, - { message: { type: 'identify' }, metadata: { userId: '5' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - ], - [ - { message: { type: 'track' }, metadata: { userId: '1' } }, - { message: { type: 'track' }, metadata: { userId: '2' } }, - { message: { type: 'track' }, metadata: { userId: '2' } }, - { message: { type: 'track' }, metadata: { userId: '3' } }, - { message: { type: 'track' }, metadata: { userId: '4' } }, - { message: { type: 'track' }, metadata: { userId: '5' } }, - ], - [ - { message: { type: 'identify' }, metadata: { userId: '5' } }, - ] - ] - }, - { - inputs: [ - { message: { type: 'track' }, metadata: { userId: '3' } }, - { message: { type: 'identify' }, metadata: { userId: '3' } }, - { message: { type: 'identify' }, metadata: { userId: '1' } }, - { message: { type: 'track' }, metadata: { userId: '1' } }, - { message: { type: 'identify' }, metadata: { userId: '5' } }, - { message: { type: 'track' }, metadata: { userId: '5' } }, - { message: { type: 'identify' }, metadata: { userId: '5' } }, - { message: { type: 'identify' }, metadata: { userId: '2' } }, - { message: { type: 'track' }, metadata: { userId: '2' } }, - { message: { type: 'track' }, metadata: { userId: '2' } }, - { message: { type: 'track' }, metadata: { userId: '4' } }, - { message: { type: 'identify' }, metadata: { userId: '4' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - ], - output: [ - [ - { message: { type: 'track' }, metadata: { userId: '3' } }, - { message: { type: 'track' }, metadata: { userId: '4' } }, - ], - [ - { message: { type: 'identify' }, metadata: { userId: '3' } }, - { message: { type: 'identify' }, metadata: { userId: '1' } }, - { message: { type: 'identify' }, metadata: { userId: '5' } }, - { message: { type: 'identify' }, metadata: { userId: '2' } }, - { message: { type: 'identify' }, metadata: { userId: '4' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - ], - [ - { message: { type: 'track' }, metadata: { userId: '1' } }, - { message: { type: 'track' }, metadata: { userId: '5' } }, - { message: { type: 'track' }, metadata: { userId: '2' } }, - { message: { type: 'track' }, metadata: { userId: '2' } }, - ], - [ - { message: { type: 'identify' }, metadata: { userId: '5' } }, - ] - ] - } -] - -describe('Order Event Tests', () => { - it('Order Event func tests', () => { - orderEventsFuncData.forEach((data) => { - expect(batchEvents(data.inputs)).toEqual(data.output); - }) - }); -}); - describe('iterable utils test', () => { describe('Unit test cases for iterable registerDeviceTokenEventPayloadBuilder', () => { it('for no device type', async () => { diff --git a/src/v0/destinations/june/config.js b/src/v0/destinations/june/config.js index 86503a39264..ba5030dbada 100644 --- a/src/v0/destinations/june/config.js +++ b/src/v0/destinations/june/config.js @@ -22,7 +22,7 @@ const CONFIG_CATEGORIES = { name: 'JunePageConfig', type: 'page', endpoint: `${BASE_ENDPOINT}/page`, - } + }, }; const MAPPING_CONFIG = getMappingConfig(CONFIG_CATEGORIES, __dirname); diff --git a/src/v0/destinations/june/data/JuneGroupConfig.json b/src/v0/destinations/june/data/JuneGroupConfig.json index dabd16a8e5c..90051321694 100644 --- a/src/v0/destinations/june/data/JuneGroupConfig.json +++ b/src/v0/destinations/june/data/JuneGroupConfig.json @@ -28,9 +28,7 @@ "sourceFromGenericMap": true, "required": false, "metadata": { - "excludes": [ - "groupId" - ] + "excludes": ["groupId"] } }, { @@ -38,13 +36,7 @@ "sourceKeys": "context", "required": false, "metadata": { - "excludes": [ - "page", - "traits", - "sessionId", - "sessionStart", - "consentManagement" - ] + "excludes": ["page", "traits", "sessionId", "sessionStart", "consentManagement"] } } -] \ No newline at end of file +] diff --git a/src/v0/destinations/june/data/JuneIdentifyConfig.json b/src/v0/destinations/june/data/JuneIdentifyConfig.json index 62ffff6ff64..d49406a5edc 100644 --- a/src/v0/destinations/june/data/JuneIdentifyConfig.json +++ b/src/v0/destinations/june/data/JuneIdentifyConfig.json @@ -18,10 +18,7 @@ }, { "destKey": "traits", - "sourceKeys": [ - "context.traits", - "traits" - ], + "sourceKeys": ["context.traits", "traits"], "required": false }, { @@ -29,13 +26,7 @@ "sourceKeys": "context", "required": false, "metadata": { - "excludes": [ - "page", - "traits", - "sessionId", - "sessionStart", - "consentManagement" - ] + "excludes": ["page", "traits", "sessionId", "sessionStart", "consentManagement"] } } -] \ No newline at end of file +] diff --git a/src/v0/destinations/june/data/JunePageConfig.json b/src/v0/destinations/june/data/JunePageConfig.json index 0f2982e8d63..96791ef09f0 100644 --- a/src/v0/destinations/june/data/JunePageConfig.json +++ b/src/v0/destinations/june/data/JunePageConfig.json @@ -1,49 +1,41 @@ [ - { - "destKey": "userId", - "sourceKeys": "userIdOnly", - "sourceFromGenericMap": true, - "required": false - }, - { - "destKey": "anonymousId", - "sourceKeys": "anonymousId", - "required": false - }, - { - "destKey": "timestamp", - "sourceKeys": "timestamp", - "sourceFromGenericMap": true, - "required": false - }, - { - "destKey": "properties", - "sourceKeys": "properties", - "required": true, - "metadata": { - "excludes": [ - "groupId" - ] - } - }, - { - "destKey": "context", - "sourceKeys": "context", - "required": false, - "metadata": { - "excludes": [ - "page", - "traits", - "sessionId", - "sessionStart", - "consentManagement" - ] - } - }, - { - "destKey": "context.groupId", - "sourceKeys": "groupId", - "sourceFromGenericMap": true, - "required": false + { + "destKey": "userId", + "sourceKeys": "userIdOnly", + "sourceFromGenericMap": true, + "required": false + }, + { + "destKey": "anonymousId", + "sourceKeys": "anonymousId", + "required": false + }, + { + "destKey": "timestamp", + "sourceKeys": "timestamp", + "sourceFromGenericMap": true, + "required": false + }, + { + "destKey": "properties", + "sourceKeys": "properties", + "required": true, + "metadata": { + "excludes": ["groupId"] } -] \ No newline at end of file + }, + { + "destKey": "context", + "sourceKeys": "context", + "required": false, + "metadata": { + "excludes": ["page", "traits", "sessionId", "sessionStart", "consentManagement"] + } + }, + { + "destKey": "context.groupId", + "sourceKeys": "groupId", + "sourceFromGenericMap": true, + "required": false + } +] diff --git a/src/v0/destinations/june/data/JuneTrackConfig.json b/src/v0/destinations/june/data/JuneTrackConfig.json index 6f873363ad6..839c331ae2f 100644 --- a/src/v0/destinations/june/data/JuneTrackConfig.json +++ b/src/v0/destinations/june/data/JuneTrackConfig.json @@ -34,13 +34,7 @@ "sourceKeys": "context", "required": false, "metadata": { - "excludes": [ - "page", - "traits", - "sessionId", - "sessionStart", - "consentManagement" - ] + "excludes": ["page", "traits", "sessionId", "sessionStart", "consentManagement"] } } ] diff --git a/src/v0/destinations/june/transform.js b/src/v0/destinations/june/transform.js index 14216b5d146..c8f3206903c 100644 --- a/src/v0/destinations/june/transform.js +++ b/src/v0/destinations/june/transform.js @@ -1,3 +1,4 @@ +const { TransformationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { isEmptyObject, constructPayload, @@ -10,7 +11,6 @@ const { const { EventType } = require('../../../constants'); const { JSON_MIME_TYPE } = require('../../util/constant'); const { CONFIG_CATEGORIES, MAPPING_CONFIG } = require('./config'); -const { TransformationError, InstrumentationError } = require('../../util/errorTypes'); const responseBuilder = (payload, endpoint, destination) => { const destPayload = payload; @@ -50,7 +50,7 @@ const genericResponseBuilder = (message, destination, category) => { const { endpoint, name } = CONFIG_CATEGORIES[category]; const payload = constructPayload(message, MAPPING_CONFIG[name]); return responseBuilder(payload, endpoint, destination); -} +}; const processEvent = (message, destination) => { if (!message.type) { @@ -85,4 +85,4 @@ const processRouterDest = async (inputs, reqMetadata) => { return respList; }; -module.exports = { process, processRouterDest }; \ No newline at end of file +module.exports = { process, processRouterDest }; diff --git a/src/v0/destinations/kafka/transform.js b/src/v0/destinations/kafka/transform.js index 210469b9e50..b08c7174753 100644 --- a/src/v0/destinations/kafka/transform.js +++ b/src/v0/destinations/kafka/transform.js @@ -5,8 +5,9 @@ const { getIntegrationsObj, getHashFromArray, removeUndefinedAndNullValues, + getSuccessRespEvents, + getErrorRespEvents, } = require('../../util'); -// const { InstrumentationError } = require("../../util/errorTypes"); const filterConfigTopics = (message, destination) => { const { Config } = destination; @@ -37,6 +38,10 @@ const filterConfigTopics = (message, destination) => { const batch = (destEvents) => { const respList = []; + if (!Array.isArray(destEvents) || destEvents.length <= 0) { + const respEvents = getErrorRespEvents(null, 400, 'Invalid event array'); + return [respEvents]; + } // Grouping the events by topic const groupedEvents = groupBy(destEvents, (event) => event.message.topic); @@ -52,9 +57,10 @@ const batch = (destEvents) => { metadata: events.map((event) => event.metadata), destination: events[0].destination, }; - respList.push(response); + respList.push( + getSuccessRespEvents(response.batchedRequest, response.metadata, response.destination, true), + ); } - return respList; }; diff --git a/src/v0/destinations/keen/transform.js b/src/v0/destinations/keen/transform.js index 6d99c90dcc5..b68b5e5e1dd 100644 --- a/src/v0/destinations/keen/transform.js +++ b/src/v0/destinations/keen/transform.js @@ -2,6 +2,7 @@ /* eslint-disable no-nested-ternary */ const isIp = require('is-ip'); const validUrl = require('valid-url'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { defaultPostRequestConfig, @@ -10,7 +11,6 @@ const { getFieldValueFromMessage, simpleProcessRouterDest, } = require('../../util'); -const { InstrumentationError } = require('../../util/errorTypes'); const { ENDPOINT } = require('./config'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/kissmetrics/transform.js b/src/v0/destinations/kissmetrics/transform.js index 3e2c5593de9..b24395076c9 100644 --- a/src/v0/destinations/kissmetrics/transform.js +++ b/src/v0/destinations/kissmetrics/transform.js @@ -9,6 +9,7 @@ const is = require('is'); const extend = require('@ndhoule/extend'); const each = require('component-each'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { defaultGetRequestConfig, @@ -17,7 +18,6 @@ const { simpleProcessRouterDest, } = require('../../util'); const { ENDPOINT } = require('./config'); -const { InstrumentationError } = require('../../util/errorTypes'); // source : https://github.com/segment-integrations/analytics.js-integration-kissmetrics/blob/master/lib/index.js function toUnixTimestamp(date) { diff --git a/src/v0/destinations/klaviyo/transform.js b/src/v0/destinations/klaviyo/transform.js index d7170ce789b..9273b6a0481 100644 --- a/src/v0/destinations/klaviyo/transform.js +++ b/src/v0/destinations/klaviyo/transform.js @@ -2,6 +2,7 @@ /* eslint-disable no-underscore-dangle */ /* eslint-disable array-callback-return */ const get = require('get-value'); +const { ConfigurationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType, WhiteListedTraits, MappedToDestinationKey } = require('../../../constants'); const { CONFIG_CATEGORIES, @@ -34,25 +35,26 @@ const { checkInvalidRtTfEvents, handleRtTfSingleEventError, flattenJson, + isNewStatusCodesAccepted, } = require('../../util'); - -const { ConfigurationError, InstrumentationError } = require('../../util/errorTypes'); -const { JSON_MIME_TYPE } = require('../../util/constant'); +const { JSON_MIME_TYPE, HTTP_STATUS_CODES } = require('../../util/constant'); /** * Main Identify request handler func * The function is used to create/update new users and also for adding/subscribing - * members to the list depending on conditons.If listId is there member is added to that list & - * if subscribe is true member is subscribed to that list else not. - * DOCS: https://www.klaviyo.com/docs/http-api + * users to the list. + * DOCS: 1. https://developers.klaviyo.com/en/v2023-02-22/reference/create_profile + * 2. https://developers.klaviyo.com/en/v2023-02-22/reference/update_profile + * 3. https://developers.klaviyo.com/en/v2023-02-22/reference/subscribe_profiles * @param {*} message * @param {*} category * @param {*} destination + * @param {*} reqMetadata * @returns */ -const identifyRequestHandler = async (message, category, destination) => { +const identifyRequestHandler = async (message, category, destination, reqMetadata) => { // If listId property is present try to subscribe/member user in list - const { privateApiKey, enforceEmailAsPrimary, flattenProperties } = destination.Config; + const { privateApiKey, enforceEmailAsPrimary, listId, flattenProperties } = destination.Config; const mappedToDestination = get(message, MappedToDestinationKey); if (mappedToDestination) { addExternalIdToTraits(message); @@ -91,6 +93,10 @@ const identifyRequestHandler = async (message, category, destination) => { data.attributes.properties = flattenProperties ? flattenJson(data.attributes.properties, '.', 'normal', false) : data.attributes.properties; + + if (isEmptyObject(data.attributes.properties)) { + delete data.attributes.properties; + } const payload = { data: removeUndefinedAndNullValues(data), }; @@ -104,26 +110,46 @@ const identifyRequestHandler = async (message, category, destination) => { }, }; - const profileId = await getIdFromNewOrExistingProfile(endpoint, payload, requestOptions); + const { profileId, response, statusCode } = await getIdFromNewOrExistingProfile( + endpoint, + payload, + requestOptions, + ); - // Update Profile - const responseArray = [profileUpdateResponseBuilder(payload, profileId, category, privateApiKey)]; + const responseMap = { + profileUpdateResponse: profileUpdateResponseBuilder( + payload, + profileId, + category, + privateApiKey, + ), + }; // check if user wants to subscribe profile or not and listId is present or not - if ( - traitsInfo?.properties?.subscribe && - (traitsInfo.properties?.listId || destination.Config?.listId) - ) { - responseArray.push(subscribeUserToList(message, traitsInfo, destination)); - return responseArray; + if (traitsInfo?.properties?.subscribe && (traitsInfo.properties?.listId || listId)) { + responseMap.subscribeUserToListResponse = subscribeUserToList(message, traitsInfo, destination); } - return responseArray[0]; + + if (isNewStatusCodesAccepted(reqMetadata) && statusCode === HTTP_STATUS_CODES.CREATED) { + responseMap.suppressEventResponse = { + ...responseMap.profileUpdateResponse, + statusCode: HTTP_STATUS_CODES.SUPPRESS_EVENTS, + error: JSON.stringify(response), + }; + return responseMap.subscribeUserToListResponse + ? [responseMap.subscribeUserToListResponse] + : responseMap.suppressEventResponse; + } + + return responseMap.subscribeUserToListResponse + ? [responseMap.profileUpdateResponse, responseMap.subscribeUserToListResponse] + : responseMap.profileUpdateResponse; }; // ---------------------- // Main handler func for track request/screen request // User info needs to be mapped to a track event (mandatory) -// DOCS: https://www.klaviyo.com/docs/http-api +// DOCS: https://developers.klaviyo.com/en/v2023-02-22/reference/create_event // ---------------------- const trackRequestHandler = (message, category, destination) => { @@ -138,10 +164,6 @@ const trackRequestHandler = (message, category, destination) => { attributes.metric = { name: eventName }; const categ = CONFIG_CATEGORIES[eventMap]; attributes.properties = constructPayload(message.properties, MAPPING_CONFIG[categ.name]); - attributes.properties = { - ...attributes.properties, - ...populateCustomFieldsFromTraits(message), - }; // products mapping using Items.json // mapping properties.items to payload.properties.items and using properties.products as a fallback to properties.items @@ -191,17 +213,21 @@ const trackRequestHandler = (message, category, destination) => { if (value) { attributes.value = value; } - attributes.properties = { - ...attributes.properties, - ...populateCustomFieldsFromTraits(message), - }; } // if flattenProperties is enabled from UI, flatten the event properties attributes.properties = flattenProperties ? flattenJson(attributes.properties, '.', 'normal', false) : attributes.properties; // Map user properties to profile object - attributes.profile = createCustomerProperties(message, destination.Config); + attributes.profile = { + ...createCustomerProperties(message, destination.Config), + ...populateCustomFieldsFromTraits(message), + }; + + attributes.profile = flattenProperties + ? flattenJson(attributes.profile, '.', 'normal', false) + : attributes.profile; + if (message.timestamp) { attributes.time = message.timestamp; } @@ -222,9 +248,9 @@ const trackRequestHandler = (message, category, destination) => { // ---------------------- // Main handlerfunc for group request -// we will map user to list (subscribe and/or member) +// we will add/subscribe users to the list // based on property sent -// DOCS: https://www.klaviyo.com/docs/api/v2/lists +// DOCS: https://developers.klaviyo.com/en/v2023-02-22/reference/subscribe_profiles // ---------------------- const groupRequestHandler = (message, category, destination) => { if (!message.groupId) { @@ -243,7 +269,7 @@ const groupRequestHandler = (message, category, destination) => { }; // Main event processor using specific handler funcs -const processEvent = async (message, destination) => { +const processEvent = async (message, destination, reqMetadata) => { if (!message.type) { throw new InstrumentationError('Event type is required'); } @@ -257,7 +283,7 @@ const processEvent = async (message, destination) => { switch (messageType) { case EventType.IDENTIFY: category = CONFIG_CATEGORIES.IDENTIFY; - response = await identifyRequestHandler(message, category, destination); + response = await identifyRequestHandler(message, category, destination, reqMetadata); break; case EventType.SCREEN: case EventType.TRACK: @@ -274,8 +300,8 @@ const processEvent = async (message, destination) => { return response; }; -const process = async (event) => { - const result = await processEvent(event.message, event.destination); +const process = async (event, reqMetadata) => { + const result = await processEvent(event.message, event.destination, reqMetadata); return result; }; @@ -314,7 +340,7 @@ const processRouterDest = async (inputs, reqMetadata) => { // if not transformed getEventChunks( { - message: await process(event), + message: await process(event, reqMetadata), metadata: event.metadata, destination, }, @@ -328,13 +354,36 @@ const processRouterDest = async (inputs, reqMetadata) => { } }), ); - let batchedSubscribeResponseList = []; + const batchedSubscribeResponseList = []; if (subscribeRespList.length > 0) { - batchedSubscribeResponseList = batchSubscribeEvents(subscribeRespList); + const batchedResponseList = batchSubscribeEvents(subscribeRespList); + batchedSubscribeResponseList.push(...batchedResponseList); } - const nonSubscribeSuccessList = nonSubscribeRespList.map((resp) => - getSuccessRespEvents(resp.message, [resp.metadata], resp.destination), - ); + const nonSubscribeSuccessList = nonSubscribeRespList.map((resp) => { + const response = resp; + const { message, metadata, destination: eventDestination } = response; + if ( + isNewStatusCodesAccepted(reqMetadata) && + message?.statusCode && + message.statusCode === HTTP_STATUS_CODES.SUPPRESS_EVENTS + ) { + const { error } = message; + delete message.error; + delete message.statusCode; + return { + ...getSuccessRespEvents( + message, + [metadata], + eventDestination, + false, + HTTP_STATUS_CODES.SUPPRESS_EVENTS, + ), + error, + }; + } + return getSuccessRespEvents(message, [metadata], eventDestination); + }); + batchResponseList = [...batchedSubscribeResponseList, ...nonSubscribeSuccessList]; return [...batchResponseList, ...batchErrorRespList]; diff --git a/src/v0/destinations/klaviyo/util.js b/src/v0/destinations/klaviyo/util.js index 319d60c8c96..60b334f3a2f 100644 --- a/src/v0/destinations/klaviyo/util.js +++ b/src/v0/destinations/klaviyo/util.js @@ -1,5 +1,6 @@ const { defaultRequestConfig } = require('rudder-transformer-cdk/build/utils'); -const _ = require('lodash'); +const lodash = require('lodash'); +const { NetworkError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { WhiteListedTraits } = require('../../../constants'); const { @@ -12,14 +13,13 @@ const { getSuccessRespEvents, defaultPatchRequestConfig, } = require('../../util'); - -const { BASE_ENDPOINT, MAPPING_CONFIG, CONFIG_CATEGORIES, MAX_BATCH_SIZE } = require('./config'); -const { JSON_MIME_TYPE } = require('../../util/constant'); -const { NetworkError, InstrumentationError } = require('../../util/errorTypes'); -const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); const tags = require('../../util/tags'); const { handleHttpRequest } = require('../../../adapters/network'); -const { client: errNotificationClient } = require("../../../util/errorNotifier"); +const { JSON_MIME_TYPE, HTTP_STATUS_CODES } = require('../../util/constant'); +const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); +const { BASE_ENDPOINT, MAPPING_CONFIG, CONFIG_CATEGORIES, MAX_BATCH_SIZE } = require('./config'); + +const REVISION_CONSTANT = '2023-02-22'; /** * This function calls the create user endpoint ref: https://developers.klaviyo.com/en/reference/create_profile @@ -33,7 +33,9 @@ const { client: errNotificationClient } = require("../../../util/errorNotifier") * @returns */ const getIdFromNewOrExistingProfile = async (endpoint, payload, requestOptions) => { + let response; let profileId; + const endpointPath = '/api/profiles'; const { processedResponse: resp } = await handleHttpRequest( 'post', endpoint, @@ -42,23 +44,30 @@ const getIdFromNewOrExistingProfile = async (endpoint, payload, requestOptions) { destType: 'klaviyo', feature: 'transformation', + endpointPath, }, ); - if (resp.status === 201) { + + /** + * 201 - profile is created with updated payload no need to update it again (suppress event with 299 status code) + * 409 - profile is already exist, it needs to get updated + */ + if (resp.status === HTTP_STATUS_CODES.CREATED) { profileId = resp.response?.data?.id; - } else if (resp.status === 409) { + const { data } = resp.response; + response = { id: data.id, attributes: data.attributes }; + } else if (resp.status === HTTP_STATUS_CODES.CONFLICT) { const { errors } = resp.response; profileId = errors?.[0]?.meta?.duplicate_profile_id; } if (profileId) { - return profileId; + return { profileId, response, statusCode: resp.status }; } let statusCode = resp.status; if (resp.status === 201 || resp.status === 409) { // retryable error if the profile id is not found in the response - errNotificationClient.notify(new Error("Klaviyo: ProfileId not found"), "Profile Id not Found in the response", JSON.stringify(resp.response)) statusCode = 500; } @@ -72,6 +81,14 @@ const getIdFromNewOrExistingProfile = async (endpoint, payload, requestOptions) ); }; +/** + * Update profile response builder + * @param {*} payload + * @param {*} profileId + * @param {*} category + * @param {*} privateApiKey + * @returns + */ const profileUpdateResponseBuilder = (payload, profileId, category, privateApiKey) => { const updatedPayload = payload; const identifyResponse = defaultRequestConfig(); @@ -82,7 +99,7 @@ const profileUpdateResponseBuilder = (payload, profileId, category, privateApiKe Authorization: `Klaviyo-API-Key ${privateApiKey}`, 'Content-Type': JSON_MIME_TYPE, Accept: JSON_MIME_TYPE, - revision: '2023-02-22', + revision: REVISION_CONSTANT, }; identifyResponse.body.JSON = removeUndefinedAndNullValues(payload); return identifyResponse; @@ -90,7 +107,7 @@ const profileUpdateResponseBuilder = (payload, profileId, category, privateApiKe /** * This function is used for creating response for subscribing users to a particular list. - * DOCS: https://www.klaviyo.com/docs/api/v2/lists + * DOCS: https://developers.klaviyo.com/en/v2023-02-22/reference/subscribe_profiles */ const subscribeUserToList = (message, traitsInfo, destination) => { // listId from message properties are preferred over Config listId @@ -142,7 +159,7 @@ const subscribeUserToList = (message, traitsInfo, destination) => { Authorization: `Klaviyo-API-Key ${privateApiKey}`, 'Content-Type': JSON_MIME_TYPE, Accept: JSON_MIME_TYPE, - revision: '2023-02-22', + revision: REVISION_CONSTANT, }; response.body.JSON = removeUndefinedAndNullValues(payload); @@ -214,7 +231,7 @@ const generateBatchedPaylaodForArray = (events) => { Authorization: `Klaviyo-API-Key ${destination.Config.privateApiKey}`, 'Content-Type': JSON_MIME_TYPE, Accept: JSON_MIME_TYPE, - revision: '2023-02-22', + revision: REVISION_CONSTANT, }; batchEventResponse = { @@ -230,8 +247,8 @@ const generateBatchedPaylaodForArray = (events) => { * @param {*} subscribeResponseList * @returns */ -const groupSubsribeResponsesUsingListId = (subscribeResponseList) => { - const subscribeEventGroups = _.groupBy( +const groupSubscribeResponsesUsingListId = (subscribeResponseList) => { + const subscribeEventGroups = lodash.groupBy( subscribeResponseList, (event) => event.message.body.JSON.data.attributes.list_id, ); @@ -242,7 +259,7 @@ const getBatchedResponseList = (subscribeEventGroups, identifyResponseList) => { let batchedResponseList = []; Object.keys(subscribeEventGroups).forEach((listId) => { // eventChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] - const eventChunks = _.chunk(subscribeEventGroups[listId], MAX_BATCH_SIZE); + const eventChunks = lodash.chunk(subscribeEventGroups[listId], MAX_BATCH_SIZE); const batchedResponse = eventChunks.map((chunk) => { const batchEventResponse = generateBatchedPaylaodForArray(chunk); return getSuccessRespEvents( @@ -254,9 +271,13 @@ const getBatchedResponseList = (subscribeEventGroups, identifyResponseList) => { }); batchedResponseList = [...batchedResponseList, ...batchedResponse]; }); - identifyResponseList.forEach((response) => { - batchedResponseList[0].batchedRequest.push(response); - }); + + if (identifyResponseList.length > 0) { + identifyResponseList.forEach((response) => { + batchedResponseList[0].batchedRequest.push(response); + }); + } + return batchedResponseList; }; @@ -264,6 +285,7 @@ const batchSubscribeEvents = (subscribeRespList) => { const identifyResponseList = []; subscribeRespList.forEach((event) => { const processedEvent = event; + // for group and identify events (it will contain only subscribe response) if (processedEvent.message.length === 2) { // the array will contain one update profile reponse and one subscribe reponse identifyResponseList.push(event.message[0]); @@ -274,7 +296,7 @@ const batchSubscribeEvents = (subscribeRespList) => { } }); - const subscribeEventGroups = groupSubsribeResponsesUsingListId(subscribeRespList); + const subscribeEventGroups = groupSubscribeResponsesUsingListId(subscribeRespList); const batchedResponseList = getBatchedResponseList(subscribeEventGroups, identifyResponseList); @@ -287,6 +309,6 @@ module.exports = { populateCustomFieldsFromTraits, generateBatchedPaylaodForArray, batchSubscribeEvents, - getIdFromNewOrExistingProfile, profileUpdateResponseBuilder, + getIdFromNewOrExistingProfile, }; diff --git a/src/v0/destinations/kochava/transform.js b/src/v0/destinations/kochava/transform.js index c5a4fec81f7..e9cf2eb1a08 100644 --- a/src/v0/destinations/kochava/transform.js +++ b/src/v0/destinations/kochava/transform.js @@ -1,4 +1,5 @@ const get = require('get-value'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { KOCHAVA_ENDPOINT, @@ -11,7 +12,6 @@ const { formatTimeStamp, isAppleFamily, } = require('../../util'); -const { InstrumentationError } = require('../../util/errorTypes'); // build final response // -------------------- diff --git a/src/v0/destinations/kustomer/config.js b/src/v0/destinations/kustomer/config.js index d90c1b837b4..19e1e52c60e 100644 --- a/src/v0/destinations/kustomer/config.js +++ b/src/v0/destinations/kustomer/config.js @@ -1,6 +1,6 @@ const { getMappingConfig } = require('../../util'); -const BASE_ENDPOINT = 'https://api.kustomerapp.com'; +const DEFAULT_BASE_ENDPOINT = 'https://api.kustomerapp.com'; const CONFIG_CATEGORIES = { IDENTIFY: { name: 'KustomerIdentify' }, @@ -12,7 +12,7 @@ const CONFIG_CATEGORIES = { const MAPPING_CONFIG = getMappingConfig(CONFIG_CATEGORIES, __dirname); module.exports = { - BASE_ENDPOINT, + DEFAULT_BASE_ENDPOINT, CONFIG_CATEGORIES, MAPPING_CONFIG, }; diff --git a/src/v0/destinations/kustomer/transform.js b/src/v0/destinations/kustomer/transform.js index 1d326758dce..e5010f55e02 100644 --- a/src/v0/destinations/kustomer/transform.js +++ b/src/v0/destinations/kustomer/transform.js @@ -1,7 +1,8 @@ /* eslint-disable no-nested-ternary */ const get = require('get-value'); +const { TransformationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); -const { CONFIG_CATEGORIES, MAPPING_CONFIG, BASE_ENDPOINT } = require('./config'); +const { CONFIG_CATEGORIES, MAPPING_CONFIG, DEFAULT_BASE_ENDPOINT } = require('./config'); const { defaultRequestConfig, getFieldValueFromMessage, @@ -13,7 +14,6 @@ const { simpleProcessRouterDest, } = require('../../util'); const { fetchKustomer, handleAdvancedtransformations } = require('./util'); -const { TransformationError, InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); // Function responsible for constructing the Kustomer (User) Payload for identify @@ -85,6 +85,11 @@ const constructKustomerPayload = (message, category, email) => { // type of events. const responseBuilderSimple = async (message, category, destination) => { let payload = {}; + + // Reference for base endpoint + // https://developer.kustomer.com/kustomer-api-docs/reference/getting-started-with-kustomer-api#using-the-kustomer-api + // There are two instance choices, US: https://api.kustomerapp.com and EU: https://api.prod2.kustomerapp.com + const BASE_ENDPOINT = destination.Config.baseEndpoint || DEFAULT_BASE_ENDPOINT; let targetUrl; let storedState = { userExists: false, diff --git a/src/v0/destinations/kustomer/util.js b/src/v0/destinations/kustomer/util.js index c40f6faf84d..571a03f1399 100644 --- a/src/v0/destinations/kustomer/util.js +++ b/src/v0/destinations/kustomer/util.js @@ -1,12 +1,12 @@ /* eslint-disable eqeqeq */ -const _ = require('lodash'); +const lodash = require('lodash'); const set = require('set-value'); const get = require('get-value'); +const { NetworkError, AbortedError } = require('@rudderstack/integrations-lib'); const myAxios = require('../../../util/myAxios'); -const { BASE_ENDPOINT } = require('./config'); +const { DEFAULT_BASE_ENDPOINT } = require('./config'); const { getType, isDefinedAndNotNull, isObject } = require('../../util'); const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); -const { NetworkError, AbortedError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); /** @@ -26,7 +26,7 @@ const ISO_8601 = /^\d{4}(-\d\d(-\d\d(t\d\d:\d\d(:\d\d)?(\.\d+)?(([+-]\d\d:\d\d)| const transformNumberField = (fieldName) => { const typeDelim = ''; const transformedFieldName = fieldName.trim().replace(/\s+/g, '-'); - if (_.endsWith(transformedFieldName, 'Num')) { + if (lodash.endsWith(transformedFieldName, 'Num')) { return transformedFieldName; } return `${transformedFieldName}${typeDelim}Num`; @@ -35,7 +35,7 @@ const transformNumberField = (fieldName) => { const transformDateField = (fieldName) => { const typeDelim = ''; const transformedFieldName = fieldName.trim().replace(/\s+/g, '-'); - if (_.endsWith(transformedFieldName, 'At')) { + if (lodash.endsWith(transformedFieldName, 'At')) { return transformedFieldName; } return `${transformedFieldName}${typeDelim}At`; @@ -62,7 +62,7 @@ const transformField = (fieldName) => { }; const handleAdvancedtransformations = (event) => { - let cloneEvent = _.cloneDeep(event); + let cloneEvent = lodash.cloneDeep(event); const transformedMeta = {}; let eventName = get(cloneEvent, 'name'); const { meta } = cloneEvent; @@ -104,7 +104,7 @@ const handleResponse = (response) => { if (data && data.data && data.data.id) { return { userExists: true, - targetUrl: `${BASE_ENDPOINT}/v1/customers/${data.data.id}?replace=false`, + targetUrl: `${DEFAULT_BASE_ENDPOINT}/v1/customers/${data.data.id}?replace=false`, }; } throw new NetworkError( diff --git a/src/v0/destinations/lambda/transform.js b/src/v0/destinations/lambda/transform.js index 221ef181865..1570a69ec31 100644 --- a/src/v0/destinations/lambda/transform.js +++ b/src/v0/destinations/lambda/transform.js @@ -1,6 +1,6 @@ const _ = require('lodash'); const { getErrorRespEvents, getSuccessRespEvents } = require('../../util'); -const { ConfigurationError } = require('../../util/errorTypes'); +const { ConfigurationError } = require('@rudderstack/integrations-lib'); const DEFAULT_INVOCATION_TYPE = 'Event'; // asynchronous invocation const MAX_PAYLOAD_SIZE_IN_KB = 256; // only for asynchronous invocation diff --git a/src/v0/destinations/leanplum/transform.js b/src/v0/destinations/leanplum/transform.js index 9a5462f2e55..df075dd6313 100644 --- a/src/v0/destinations/leanplum/transform.js +++ b/src/v0/destinations/leanplum/transform.js @@ -1,3 +1,4 @@ +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { ConfigCategory, mappingConfig, ENDPOINT, API_VERSION } = require('./config'); const { @@ -7,7 +8,6 @@ const { constructPayload, simpleProcessRouterDest, } = require('../../util'); -const { InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); function preparePayload(message, name, destination) { diff --git a/src/v0/destinations/lemnisk/transform.js b/src/v0/destinations/lemnisk/transform.js index 1d6d9a89fb5..905199079b2 100644 --- a/src/v0/destinations/lemnisk/transform.js +++ b/src/v0/destinations/lemnisk/transform.js @@ -1,3 +1,8 @@ +const { + ConfigurationError, + TransformationError, + InstrumentationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { CONFIG_CATEGORIES, @@ -14,11 +19,6 @@ const { isDefinedAndNotNullAndNotEmpty, } = require('../../util'); const { fetchPlatform } = require('./utils'); -const { - ConfigurationError, - TransformationError, - InstrumentationError, -} = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const responseBuilder = (message, category, destination, platform) => { diff --git a/src/v0/destinations/lemnisk/utils.js b/src/v0/destinations/lemnisk/utils.js index 207122153dd..28de9ab354f 100644 --- a/src/v0/destinations/lemnisk/utils.js +++ b/src/v0/destinations/lemnisk/utils.js @@ -1,4 +1,4 @@ -const { ConfigurationError } = require('../../util/errorTypes'); +const { ConfigurationError } = require('@rudderstack/integrations-lib'); /** * Fetches the platform type from the destination Config diff --git a/src/v0/destinations/lytics/transform.js b/src/v0/destinations/lytics/transform.js index a8d489fa5f8..c3a971adba9 100644 --- a/src/v0/destinations/lytics/transform.js +++ b/src/v0/destinations/lytics/transform.js @@ -1,3 +1,4 @@ +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { CONFIG_CATEGORIES, @@ -14,7 +15,6 @@ const { flattenJson, simpleProcessRouterDest, } = require('../../util'); -const { InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const responseBuilderSimple = (message, category, destination) => { diff --git a/src/v0/destinations/mailchimp/transform.js b/src/v0/destinations/mailchimp/transform.js index 3ceb669da1c..894f70672a5 100644 --- a/src/v0/destinations/mailchimp/transform.js +++ b/src/v0/destinations/mailchimp/transform.js @@ -1,4 +1,5 @@ -const _ = require('lodash'); +const lodash = require('lodash'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { defaultPutRequestConfig, handleRtTfSingleEventError, @@ -23,7 +24,6 @@ const { stringifyPropertiesValues, } = require('./utils'); const { MAX_BATCH_SIZE, VALID_STATUSES, TRACK_CONFIG } = require('./config'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const responseBuilderSimple = (finalPayload, endpoint, Config, audienceId) => { @@ -62,7 +62,10 @@ const trackResponseBuilder = (message, { Config }) => { if (processedPayload?.properties) { processedPayload.properties = stringifyPropertiesValues(processedPayload.properties); } - if (processedPayload.name && !(processedPayload.name.length >= 2 && processedPayload.name.length <= 30)) { + if ( + processedPayload.name && + !(processedPayload.name.length >= 2 && processedPayload.name.length <= 30) + ) { throw new InstrumentationError('Event name should be between 2 and 30 characters'); } processedPayload.name = processedPayload.name.trim().replace(/\s+/g, '_'); @@ -130,10 +133,10 @@ const batchEvents = (successRespList) => { // audienceId1: [...events] // audienceId2: [...events] // } - const audienceEventGroups = _.groupBy(successRespList, (event) => event.message.audienceId); + const audienceEventGroups = lodash.groupBy(successRespList, (event) => event.message.audienceId); Object.keys(audienceEventGroups).forEach((audienceId) => { // eventChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] - const eventChunks = _.chunk(audienceEventGroups[audienceId], MAX_BATCH_SIZE); + const eventChunks = lodash.chunk(audienceEventGroups[audienceId], MAX_BATCH_SIZE); eventChunks.forEach((chunk) => { const batchEventResponse = generateBatchedPaylaodForArray(audienceId, chunk); batchedResponseList.push( diff --git a/src/v0/destinations/mailchimp/utils.js b/src/v0/destinations/mailchimp/utils.js index 5a6d62c72ce..e1e2e9883b7 100644 --- a/src/v0/destinations/mailchimp/utils.js +++ b/src/v0/destinations/mailchimp/utils.js @@ -1,5 +1,6 @@ const get = require('get-value'); const md5 = require('md5'); +const { InstrumentationError, NetworkError } = require('@rudderstack/integrations-lib'); const myAxios = require('../../../util/myAxios'); const { MappedToDestinationKey } = require('../../../constants'); const logger = require('../../../logger'); @@ -15,7 +16,6 @@ const { defaultBatchRequestConfig, constructPayload, } = require('../../util'); -const { InstrumentationError, NetworkError } = require('../../util/errorTypes'); const { MERGE_CONFIG, MERGE_ADDRESS, SUBSCRIPTION_STATUS, VALID_STATUSES } = require('./config'); const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); const tags = require('../../util/tags'); diff --git a/src/v0/destinations/mailjet/transform.js b/src/v0/destinations/mailjet/transform.js index fa87b3ed2a6..9156bf45e95 100644 --- a/src/v0/destinations/mailjet/transform.js +++ b/src/v0/destinations/mailjet/transform.js @@ -1,4 +1,5 @@ -const _ = require('lodash'); +const lodash = require('lodash'); +const { TransformationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { getErrorRespEvents, getSuccessRespEvents, @@ -12,7 +13,6 @@ const { const { MAX_BATCH_SIZE } = require('./config'); const { EventType } = require('../../../constants'); const { createOrUpdateContactResponseBuilder } = require('./utils'); -const { TransformationError, InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const responseBuilder = (payload) => { @@ -98,12 +98,12 @@ const batchEvents = (successRespList) => { "listId2&&Action2": [{message : {}, metadata : {}, destination: {}}], "listId2&&Action1": [{message : {}, metadata : {}, destination: {}}] */ - const eventGroups = _.groupBy(successRespList, (event) => { + const eventGroups = lodash.groupBy(successRespList, (event) => { const { listId, action } = event.message; return `${listId}&&${action}`; }); Object.keys(eventGroups).forEach((combination) => { - const eventChunks = _.chunk(eventGroups[combination], MAX_BATCH_SIZE); + const eventChunks = lodash.chunk(eventGroups[combination], MAX_BATCH_SIZE); // eventChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] eventChunks.forEach((chunk) => { const batchEventResponse = generateBatchedPaylaodForArray(chunk, combination); diff --git a/src/v0/destinations/mailmodo/transform.js b/src/v0/destinations/mailmodo/transform.js index 4f1a3d7e8c2..756522939da 100644 --- a/src/v0/destinations/mailmodo/transform.js +++ b/src/v0/destinations/mailmodo/transform.js @@ -1,6 +1,7 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const get = require('get-value'); const { isEmpty } = require('lodash'); +const { ConfigurationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { ConfigCategory, IDENTIFY_MAX_BATCH_SIZE, mappingConfig, BASE_URL } = require('./config'); const { @@ -14,7 +15,6 @@ const { handleRtTfSingleEventError, } = require('../../util'); const { deduceAddressFields, extractCustomProperties } = require('./utils'); -const { ConfigurationError, InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const responseBuilder = (responseConfgs) => { @@ -112,7 +112,7 @@ const process = (event) => processEvent(event.message, event.destination); function batchEvents(eventsChunk) { const batchedResponseList = []; - const arrayChunks = _.chunk(eventsChunk, IDENTIFY_MAX_BATCH_SIZE); + const arrayChunks = lodash.chunk(eventsChunk, IDENTIFY_MAX_BATCH_SIZE); // list of chunks [ [..], [..] ] arrayChunks.forEach((chunk) => { diff --git a/src/v0/destinations/marketo/config.js b/src/v0/destinations/marketo/config.js index 5d70cc04250..604be41dc07 100644 --- a/src/v0/destinations/marketo/config.js +++ b/src/v0/destinations/marketo/config.js @@ -14,24 +14,18 @@ const DESTINATION = 'marketo'; const formatConfig = (destination) => ({ ID: destination.ID, ...destination.Config, - customActivityEventMap: getHashFromArray( - destination.Config.customActivityEventMap, - 'from', - 'to', - false, - ), + customActivityEventMap: destination.Config?.rudderEventsMapping + ? getHashFromArray(destination.Config.rudderEventsMapping, 'event', 'marketoActivityId', false) + : getHashFromArray(destination.Config.customActivityEventMap, 'from', 'to', false), customActivityPropertyMap: getHashFromArray( destination.Config.customActivityPropertyMap, 'from', 'to', false, ), - customActivityPrimaryKeyMap: getHashFromArray( - destination.Config.customActivityPrimaryKeyMap, - 'from', - 'to', - false, - ), + customActivityPrimaryKeyMap: destination.Config?.rudderEventsMapping + ? getHashFromArray(destination.Config.rudderEventsMapping, 'event', 'marketoPrimarykey', false) + : getHashFromArray(destination.Config.customActivityPrimaryKeyMap, 'from', 'to', false), leadTraitMapping: getHashFromArray(destination.Config.leadTraitMapping, 'from', 'to', false), responseRules: destination.DestinationDefinition ? destination.DestinationDefinition.ResponseRules diff --git a/src/v0/destinations/marketo/networkHandler.js b/src/v0/destinations/marketo/networkHandler.js index c25a7a246c5..7abcc65c02a 100644 --- a/src/v0/destinations/marketo/networkHandler.js +++ b/src/v0/destinations/marketo/networkHandler.js @@ -3,7 +3,6 @@ const { marketoResponseHandler } = require('./util'); const { proxyRequest, prepareProxyRequest } = require('../../../adapters/network'); const { processAxiosResponse } = require('../../../adapters/utils/networkUtils'); -// eslint-disable-next-line no-unused-vars const responseHandler = (destinationResponse, destType) => { const message = 'Request Processed Successfully'; const { status, rudderJobMetadata } = destinationResponse; diff --git a/src/v0/destinations/marketo/transform.js b/src/v0/destinations/marketo/transform.js index b23d992b64b..5000ef506b3 100644 --- a/src/v0/destinations/marketo/transform.js +++ b/src/v0/destinations/marketo/transform.js @@ -3,6 +3,11 @@ /* eslint-disable no-use-before-define */ const get = require('get-value'); const cloneDeep = require('lodash/cloneDeep'); +const { + InstrumentationError, + ConfigurationError, + UnauthorizedError, +} = require('@rudderstack/integrations-lib'); const stats = require('../../../util/stats'); const { EventType, MappedToDestinationKey } = require('../../../constants'); const { @@ -38,11 +43,6 @@ const { getResponseHandlerData, } = require('./util'); const logger = require('../../../logger'); -const { - InstrumentationError, - ConfigurationError, - UnauthorizedError, -} = require('../../util/errorTypes'); const userIdLeadCache = new Cache(USER_LEAD_CACHE_TTL); // 1 day const emailLeadCache = new Cache(USER_LEAD_CACHE_TTL); // 1 day diff --git a/src/v0/destinations/marketo/util.js b/src/v0/destinations/marketo/util.js index 622575bbcd4..203e0bf859e 100644 --- a/src/v0/destinations/marketo/util.js +++ b/src/v0/destinations/marketo/util.js @@ -1,9 +1,3 @@ -const { httpGET, httpPOST } = require('../../../adapters/network'); -const { - getDynamicErrorType, - processAxiosResponse, -} = require('../../../adapters/utils/networkUtils'); -const { isHttpStatusSuccess } = require('../../util/index'); const { NetworkError, AbortedError, @@ -11,7 +5,13 @@ const { RetryableError, UnhandledStatusCodeError, InstrumentationError, -} = require('../../util/errorTypes'); +} = require('@rudderstack/integrations-lib'); +const { httpGET, httpPOST } = require('../../../adapters/network'); +const { + getDynamicErrorType, + processAxiosResponse, +} = require('../../../adapters/utils/networkUtils'); +const { isHttpStatusSuccess } = require('../../util/index'); const tags = require('../../util/tags'); /** @@ -19,6 +19,8 @@ const tags = require('../../util/tags'); * https://developers.marketo.com/rest-api/error-codes/ */ +const ERROR_CODE_TO_PASS = ['1015']; + const MARKETO_RETRYABLE_CODES = ['601', '602', '604', '611']; const MARKETO_ABORTABLE_CODES = [ '600', @@ -34,29 +36,28 @@ const MARKETO_ABORTABLE_CODES = [ ]; const MARKETO_THROTTLED_CODES = ['502', '606', '607', '608', '615']; -const RECORD_LEVEL_ABORTBALE_ERRORS = [ - '1001', - '1002', - '1003', - '1004', - '1005', - '1006', - '1007', - '1008', - '1011', - '1013', - '1014', - '1015', - '1016', - '1017', - '1018', - '1021', - '1026', - '1027', - '1028', - '1036', - '1049', -]; +// Keeping here for reference const RECORD_LEVEL_ABORTBALE_ERRORS = [ +// '1001', +// '1002', +// '1003', +// '1004', +// '1005', +// '1006', +// '1007', +// '1008', +// '1011', +// '1013', +// '1014', +// '1016', +// '1017', +// '1018', +// '1021', +// '1026', +// '1027', +// '1028', +// '1036', +// '1049', +// ]; const { DESTINATION } = require('./config'); const logger = require('../../../logger'); @@ -86,7 +87,7 @@ const marketoApplicationErrorHandler = (marketoResponse, sourceMessage, destinat }; /** * this function checks the status of individual responses and throws error if any - * response ststus does not match the expected status + * response status does not match the expected status * doc1: https://developers.marketo.com/rest-api/lead-database/custom-objects/#create_and_update * doc2: https://developers.marketo.com/rest-api/lead-database/#create_and_update * Structure of marketoResponse: { @@ -122,20 +123,32 @@ const marketoApplicationErrorHandler = (marketoResponse, sourceMessage, destinat const nestedResponseHandler = (marketoResponse, sourceMessage) => { const checkStatus = (res) => { const { status } = res; - if (status && status !== 'updated' && status !== 'created' && status !== 'added') { + const allowedStatus = ['updated', 'added', 'removed', 'created']; + if ( + status && + !allowedStatus.includes(status) + // we need to check the case where the id are not in list + ) { const { reasons } = res; let statusCode = 400; - if (reasons && RECORD_LEVEL_ABORTBALE_ERRORS.includes(reasons[0].code)) { - statusCode = 400; - } else if (reasons && MARKETO_ABORTABLE_CODES.includes(reasons[0].code)) { - statusCode = 400; - } else if (reasons && MARKETO_THROTTLED_CODES.includes(reasons[0].code)) { - statusCode = 429; - } else if (reasons && MARKETO_RETRYABLE_CODES.includes(reasons[0].code)) { - statusCode = 500; + if (reasons) { + const errorCodesFromDest = reasons.map((reason) => reason.code); + const filteredErrorCode = errorCodesFromDest.find( + (errorCode) => !ERROR_CODE_TO_PASS.includes(errorCode), + ); + if (!filteredErrorCode) { + return; + } + if (MARKETO_THROTTLED_CODES.includes(filteredErrorCode)) { + statusCode = 429; + } else if (MARKETO_RETRYABLE_CODES.includes(filteredErrorCode)) { + statusCode = 500; + } } throw new InstrumentationError( - `Request failed during: ${sourceMessage}, error: ${JSON.stringify(reasons)}`, + `Request failed during: ${sourceMessage}, error: ${ + JSON.stringify(reasons) || 'Reason(s) not Found' + }`, statusCode, { [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(statusCode), @@ -176,17 +189,17 @@ const marketoResponseHandler = ( if (isHttpStatusSuccess(status)) { // for authentication requests if (response && response.access_token) { - /* This scenario will handle the case when we get the foloowing response - status: 200 - respnse: {"access_token":"86e6c440-1c2e-4a67-8b0d-53496bfaa510:sj","token_type":"bearer","expires_in":0,"scope":"CDP@cvent.com"} - wherein "expires_in":0 denotes that we should refresh the accessToken but its not expired yet. + /* This scenario will handle the case when we get the foloowing response + status: 200 + respnse: {"access_token":"86e6c440-1c2e-4a67-8b0d-53496bfaa510:sj","token_type":"bearer","expires_in":0,"scope":"a@b.com"} + wherein "expires_in":0 denotes that we should refresh the accessToken but its not expired yet. */ - if(response.expires_in === 0) { - throw new RetryableError( - `Request Failed for ${destination}, Access Token Expired (Retryable).${sourceMessage}`, - 500, - response, - ); + if (response.expires_in === 0) { + throw new RetryableError( + `Request Failed for ${destination}, Access Token Expired (Retryable).${sourceMessage}`, + 500, + response, + ); } return response; } diff --git a/src/v0/destinations/marketo_bulk_upload/config.js b/src/v0/destinations/marketo_bulk_upload/config.js new file mode 100644 index 00000000000..487e11fe240 --- /dev/null +++ b/src/v0/destinations/marketo_bulk_upload/config.js @@ -0,0 +1,36 @@ +const ABORTABLE_CODES = ['601', '603', '605', '609', '610']; +const RETRYABLE_CODES = ['713', '602', '604', '611']; +const THROTTLED_CODES = ['502', '606', '607', '608', '615']; + +const MARKETO_FILE_SIZE = 10485760; +const MARKETO_FILE_PATH = `${__dirname}/uploadFile/marketo_bulkupload.csv`; + +const FETCH_ACCESS_TOKEN = 'marketo_bulk_upload_access_token_fetching'; + +const POLL_ACTIVITY = 'marketo_bulk_upload_polling'; +const POLL_STATUS_ERR_MSG = 'Could not poll status'; + +const UPLOAD_FILE = 'marketo_bulk_upload_upload_file'; +const FILE_UPLOAD_ERR_MSG = 'Could not upload file'; + +const JOB_STATUS_ACTIVITY = 'marketo_bulk_upload_get_job_status'; +const FETCH_FAILURE_JOB_STATUS_ERR_MSG = 'Could not fetch failure job status'; +const FETCH_WARNING_JOB_STATUS_ERR_MSG = 'Could not fetch warning job status'; +const ACCESS_TOKEN_FETCH_ERR_MSG = 'Error during fetching access token'; + +module.exports = { + ABORTABLE_CODES, + RETRYABLE_CODES, + THROTTLED_CODES, + MARKETO_FILE_SIZE, + POLL_ACTIVITY, + UPLOAD_FILE, + JOB_STATUS_ACTIVITY, + MARKETO_FILE_PATH, + FETCH_ACCESS_TOKEN, + POLL_STATUS_ERR_MSG, + FILE_UPLOAD_ERR_MSG, + FETCH_FAILURE_JOB_STATUS_ERR_MSG, + FETCH_WARNING_JOB_STATUS_ERR_MSG, + ACCESS_TOKEN_FETCH_ERR_MSG, +}; diff --git a/src/v0/destinations/marketo_bulk_upload/fetchJobStatus.js b/src/v0/destinations/marketo_bulk_upload/fetchJobStatus.js index 7e7474c2a4b..e6f56620003 100644 --- a/src/v0/destinations/marketo_bulk_upload/fetchJobStatus.js +++ b/src/v0/destinations/marketo_bulk_upload/fetchJobStatus.js @@ -1,31 +1,21 @@ /* eslint-disable no-restricted-syntax */ /* eslint-disable no-prototype-builtins */ -const { - getAccessToken, - ABORTABLE_CODES, - THROTTLED_CODES, - RETRYABLE_CODES, - JOB_STATUS_ACTIVITY, -} = require('./util'); -const { httpGET } = require('../../../adapters/network'); -const { - AbortedError, - RetryableError, - ThrottledError, - PlatformError, -} = require('../../util/errorTypes'); +const { PlatformError } = require('@rudderstack/integrations-lib'); +const { getAccessToken } = require('./util'); +const { handleHttpRequest } = require('../../../adapters/network'); const stats = require('../../../util/stats'); const { JSON_MIME_TYPE } = require('../../util/constant'); +const { + handleFetchJobStatusResponse, + getFieldSchemaMap, + checkEventStatusViaSchemaMatching, +} = require('./util'); +const { removeUndefinedValues } = require('../../util'); -const FETCH_FAILURE_JOB_STATUS_ERR_MSG = 'Could not fetch failure job status'; -const FAILURE_JOB_STATUS_ERR_MSG = 'Error during fetching failure job status'; -const FETCH_WARNING_JOB_STATUS_ERR_MSG = 'Could not fetch warning job status'; -const WARNING_JOB_STATUS_ERR_MSG = 'Error during fetching warning job status'; - -const getFailedJobStatus = async (event) => { +const getJobsStatus = async (event, type, accessToken) => { const { config, importId } = event; - const accessToken = await getAccessToken(config); const { munchkinId } = config; + let url; // Get status of each lead for failed leads // DOC: https://developers.marketo.com/rest-api/bulk-import/bulk-lead-import/#failures const requestOptions = { @@ -34,270 +24,123 @@ const getFailedJobStatus = async (event) => { Authorization: `Bearer ${accessToken}`, }, }; - const failedLeadUrl = `https://${munchkinId}.mktorest.com/bulk/v1/leads/batch/${importId}/failures.json`; - const startTime = Date.now(); - const resp = await httpGET(failedLeadUrl, requestOptions, { - destType: 'marketo_bulk_upload', - feature: 'transformation', - }); - const endTime = Date.now(); - const requestTime = endTime - startTime; - - stats.gauge('marketo_bulk_upload_fetch_job_time', requestTime); - if (resp.success) { - if (resp.response && resp.response.data) { - stats.increment(JOB_STATUS_ACTIVITY, { - status: 200, - state: 'Success', - }); - return resp.response; - } - stats.increment(JOB_STATUS_ACTIVITY, { - status: 400, - state: 'Abortable', - }); - throw new AbortedError(FETCH_FAILURE_JOB_STATUS_ERR_MSG, 400, resp); - } - if (resp.response) { - if ( - ABORTABLE_CODES.includes(resp.response.code) || - (resp.response.code >= 400 && resp.response.code <= 499) - ) { - stats.increment(JOB_STATUS_ACTIVITY, { - status: 400, - state: 'Abortable', - }); - throw new AbortedError(resp.response.code, 400, resp); - } else if (RETRYABLE_CODES.includes(resp.response.code)) { - stats.increment(JOB_STATUS_ACTIVITY, { - status: 500, - state: 'Retryable', - }); - throw new RetryableError(resp.response.code, 500, resp); - } else if (resp.response.response) { - if (ABORTABLE_CODES.includes(resp.response.response.status)) { - stats.increment(JOB_STATUS_ACTIVITY, { - status: 400, - state: 'Abortable', - }); - throw new AbortedError( - resp.response.response.statusText || FAILURE_JOB_STATUS_ERR_MSG, - 400, - resp, - ); - } else if (THROTTLED_CODES.includes(resp.response.response.status)) { - stats.increment(JOB_STATUS_ACTIVITY, { - status: 500, - state: 'Retryable', - }); - throw new ThrottledError( - resp.response.response.statusText || FAILURE_JOB_STATUS_ERR_MSG, - resp, - ); - } - stats.increment(JOB_STATUS_ACTIVITY, { - status: 500, - state: 'Retryable', - }); - throw new RetryableError( - resp.response.response.statusText || FAILURE_JOB_STATUS_ERR_MSG, - 500, - resp, - ); - } - stats.increment(JOB_STATUS_ACTIVITY, { - status: 400, - state: 'Abortable', - }); - throw new AbortedError(FETCH_FAILURE_JOB_STATUS_ERR_MSG, 400, resp); + if (type === 'fail') { + url = `https://${munchkinId}.mktorest.com/bulk/v1/leads/batch/${importId}/failures.json`; + } else { + url = `https://${munchkinId}.mktorest.com/bulk/v1/leads/batch/${importId}/warnings.json`; } - stats.increment(JOB_STATUS_ACTIVITY, { - status: 400, - state: 'Abortable', - }); - throw new AbortedError(FETCH_FAILURE_JOB_STATUS_ERR_MSG, 400, resp); -}; - -const getWarningJobStatus = async (event) => { - const { config, importId } = event; - const accessToken = await getAccessToken(config); - const { munchkinId } = config; - // Get status of each lead for warning leads - // DOC: https://developers.marketo.com/rest-api/bulk-import/bulk-lead-import/#warnings - const requestOptions = { - headers: { - 'Content-Type': JSON_MIME_TYPE, - Authorization: `Bearer ${accessToken}`, - }, - }; const startTime = Date.now(); - const warningJobStatusUrl = `https://${munchkinId}.mktorest.com/bulk/v1/leads/batch/${importId}/warnings.json`; - const resp = await httpGET(warningJobStatusUrl, requestOptions, { + const { processedResponse: resp } = await handleHttpRequest('get', url, requestOptions, { destType: 'marketo_bulk_upload', feature: 'transformation', }); const endTime = Date.now(); const requestTime = endTime - startTime; - stats.gauge('marketo_bulk_upload_fetch_job_time', requestTime); - if (resp.success) { - if (resp.response && resp.response.data) { - stats.increment(JOB_STATUS_ACTIVITY, { - status: 200, - state: 'Success', - }); - return resp.response; - } - stats.increment(JOB_STATUS_ACTIVITY, { - status: 400, - state: 'Abortable', - }); - throw new AbortedError(FETCH_WARNING_JOB_STATUS_ERR_MSG, 400, resp); - } - if (resp.response) { - if ( - ABORTABLE_CODES.includes(resp.response.code) || - (resp.response.code >= 400 && resp.response.code <= 499) - ) { - stats.increment(JOB_STATUS_ACTIVITY, { - status: 400, - state: 'Abortable', - }); - throw new AbortedError(resp.response.code, 400, resp); - } else if (RETRYABLE_CODES.includes(resp.response.code)) { - stats.increment(JOB_STATUS_ACTIVITY, { - status: 500, - state: 'Retryable', - }); - throw new RetryableError(resp.response.code, 500, resp); - } else if (resp.response.response) { - if (ABORTABLE_CODES.includes(resp.response.response.status)) { - stats.increment(JOB_STATUS_ACTIVITY, { - status: 400, - state: 'Abortable', - }); - throw new AbortedError( - resp.response.response.statusText || WARNING_JOB_STATUS_ERR_MSG, - 400, - resp, - ); - } else if (THROTTLED_CODES.includes(resp.response.response.status)) { - stats.increment(JOB_STATUS_ACTIVITY, { - status: 500, - state: 'Retryable', - }); - throw new ThrottledError( - resp.response.response.statusText || WARNING_JOB_STATUS_ERR_MSG, - resp, - ); - } - stats.increment(JOB_STATUS_ACTIVITY, { - status: 500, - state: 'Retryable', - }); - throw new RetryableError( - resp.response.response.statusText || WARNING_JOB_STATUS_ERR_MSG, - 500, - resp, - ); - } - stats.increment(JOB_STATUS_ACTIVITY, { - status: 400, - state: 'Abortable', - }); - throw new AbortedError(FETCH_WARNING_JOB_STATUS_ERR_MSG, 400, resp); - } - stats.increment(JOB_STATUS_ACTIVITY, { - status: 400, - state: 'Abortable', - }); - throw new AbortedError(FETCH_WARNING_JOB_STATUS_ERR_MSG, 400, resp); + stats.histogram('marketo_bulk_upload_fetch_job_time', requestTime); + + return handleFetchJobStatusResponse(resp, type); }; +/** + * Handles the response from the server based on the provided type. + * Retrieves the job status using the getJobsStatus function and processes the response data. + * Matches the response data with the data received from the server. + * Returns a response object containing the failed keys, failed reasons, warning keys, warning reasons, and succeeded keys. + * @param {Object} event - An object containing the input data and metadata. + * @param {string} type - A string indicating the type of job status to retrieve ("fail" or "warn"). + * @returns {Object} - A response object with the failed keys, failed reasons, warning keys, warning reasons, and succeeded keys. + */ const responseHandler = async (event, type) => { - let failedKeys = []; - let failedReasons = {}; - let warningKeys = []; - let warningReasons = {}; + let FailedKeys = []; + const unsuccessfulJobIdsArr = []; + let successfulJobIdsArr = []; + let reasons = {}; + + const { config } = event; + const accessToken = await getAccessToken(config); /** * { - "failedKeys" : [jobID1,jobID3], - "failedReasons" : { + "FailedKeys" : [jobID1,jobID3], + "FailedReasons" : { "jobID1" : "failure-reason-1", "jobID3" : "failure-reason-2", }, - "warningKeys" : [jobID2,jobID4], - "warningReasons" : { + "WarningKeys" : [jobID2,jobID4], + "WarningReasons" : { "jobID2" : "warning-reason-1", "jobID4" : "warning-reason-2", }, - "succeededKeys" : [jobID5] + "SucceededKeys" : [jobID5] } */ - const responseStatus = - type === 'fail' ? await getFailedJobStatus(event) : await getWarningJobStatus(event); - const responseArr = responseStatus.data.split('\n'); + const jobStatus = + type === 'fail' + ? await getJobsStatus(event, 'fail', accessToken) + : await getJobsStatus(event, 'warn', accessToken); + const jobStatusArr = jobStatus.toString().split('\n'); // responseArr = ['field1,field2,Import Failure Reason', 'val1,val2,reason',...] const { input, metadata } = event; let headerArr; - if (metadata && metadata.csvHeader) { + if (metadata?.csvHeader) { headerArr = metadata.csvHeader.split(','); } else { throw new PlatformError('No csvHeader in metadata'); } + const startTime = Date.now(); const data = {}; - input.forEach((i) => { + const fieldSchemaMapping = await getFieldSchemaMap(accessToken, config.munchkinId); + const unsuccessfulJobInfo = checkEventStatusViaSchemaMatching(event, fieldSchemaMapping); + const mismatchJobIdArray = Object.keys(unsuccessfulJobInfo); + const dataTypeMismatchKeys = mismatchJobIdArray.map((strJobId) => parseInt(strJobId, 10)); + reasons = { ...unsuccessfulJobInfo }; + + const filteredEvents = input.filter( + (item) => !dataTypeMismatchKeys.includes(item.metadata.job_id), + ); + // create a map of job_id and data sent from server + // {: ','} + filteredEvents.forEach((i) => { const response = headerArr.map((fieldName) => Object.values(i)[0][fieldName]).join(','); data[i.metadata.job_id] = response; }); - const unsuccessfulJobIdsArr = []; - const reasons = {}; - const startTime = Date.now(); - for (const element of responseArr) { + + // match marketo response data with received data from server + for (const element of jobStatusArr) { // split response by comma but ignore commas inside double quotes const elemArr = element.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/); - const reasonMessage = elemArr.pop(); - // match response data with received data from server - for (const key in data) { - if (data.hasOwnProperty(key)) { - const val = data[key]; - if (val === `${elemArr.join()}`) { - // add job keys if warning/failure - - if (!unsuccessfulJobIdsArr.includes(key)) { - unsuccessfulJobIdsArr.push(key); - } - reasons[key] = reasonMessage; + // ref : + // https://developers.marketo.com/rest-api/bulk-import/bulk-custom-object-import/#:~:text=Now%20we%E2%80%99ll%20make%20Get%20Import%20Custom%20Object%20Failures%20endpoint%20call%20to%20get%20additional%20failure%20detail%3A + const reasonMessage = elemArr.pop(); // get the column named "Import Failure Reason" + for (const [key, val] of Object.entries(data)) { + // joining the parameter values sent from marketo match it with received data from server + if (val === `${elemArr.map((item) => item.replace(/"/g, '')).join(',')}`) { + // add job keys if warning/failure + if (!unsuccessfulJobIdsArr.includes(key)) { + unsuccessfulJobIdsArr.push(key); } + reasons[key] = reasonMessage; } } } - const successfulJobIdsArr = Object.keys(data).filter((x) => !unsuccessfulJobIdsArr.includes(x)); + FailedKeys = unsuccessfulJobIdsArr.map((strJobId) => parseInt(strJobId, 10)); + successfulJobIdsArr = Object.keys(data).filter((x) => !unsuccessfulJobIdsArr.includes(x)); - if (type === 'fail') { - failedKeys = unsuccessfulJobIdsArr; - failedReasons = reasons; - } else if (type === 'warn') { - warningKeys = unsuccessfulJobIdsArr; - warningReasons = reasons; - } - const succeededKeys = successfulJobIdsArr; + const SucceededKeys = successfulJobIdsArr.map((strJobId) => parseInt(strJobId, 10)); const endTime = Date.now(); const requestTime = endTime - startTime; - stats.gauge('marketo_bulk_upload_fetch_job_create_response_time', requestTime); + stats.histogram('marketo_bulk_upload_fetch_job_create_response_time', requestTime); const response = { statusCode: 200, metadata: { - failedKeys, - failedReasons, - warningKeys, - warningReasons, - succeededKeys, + FailedKeys: [...dataTypeMismatchKeys, ...FailedKeys], + FailedReasons: reasons, + SucceededKeys, }, }; - return response; + return removeUndefinedValues(response); }; const processJobStatus = async (event, type) => { diff --git a/src/v0/destinations/marketo_bulk_upload/fileUpload.js b/src/v0/destinations/marketo_bulk_upload/fileUpload.js index b9519186780..c7212ff9cb6 100644 --- a/src/v0/destinations/marketo_bulk_upload/fileUpload.js +++ b/src/v0/destinations/marketo_bulk_upload/fileUpload.js @@ -1,97 +1,63 @@ /* eslint-disable no-plusplus */ const FormData = require('form-data'); const fs = require('fs'); +const { + NetworkError, + ConfigurationError, + RetryableError, + TransformationError, +} = require('@rudderstack/integrations-lib'); const { getAccessToken, - ABORTABLE_CODES, - THROTTLED_CODES, - MARKETO_FILE_SIZE, getMarketoFilePath, - UPLOAD_FILE, + handleFileUploadResponse, + getFieldSchemaMap, + hydrateStatusForServer, } = require('./util'); +const { isHttpStatusSuccess } = require('../../util'); +const { MARKETO_FILE_SIZE, UPLOAD_FILE } = require('./config'); const { getHashFromArray, removeUndefinedAndNullValues, isDefinedAndNotNullAndNotEmpty, } = require('../../util'); -const { httpPOST, httpGET } = require('../../../adapters/network'); -const { - RetryableError, - AbortedError, - ThrottledError, - NetworkError, - ConfigurationError, -} = require('../../util/errorTypes'); -const tags = require('../../util/tags'); -const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); +const { handleHttpRequest } = require('../../../adapters/network'); +const { client } = require('../../../util/errorNotifier'); const stats = require('../../../util/stats'); -const fetchFieldSchema = async (config) => { - let fieldArr = []; - const fieldSchemaNames = []; - const accessToken = await getAccessToken(config); - const fieldSchemaMapping = await httpGET( - `https://${config.munchkinId}.mktorest.com/rest/v1/leads/describe2.json`, - { - params: { - access_token: accessToken, - }, - }, - { - destType: 'marketo_bulk_upload', - feature: 'transformation', - }, - ); - if ( - fieldSchemaMapping && - fieldSchemaMapping.success && - fieldSchemaMapping.response.data && - fieldSchemaMapping.response.data.result.length > 0 && - fieldSchemaMapping.response.data.result[0] - ) { - fieldArr = - fieldSchemaMapping.response.data.result && - Array.isArray(fieldSchemaMapping.response.data.result) - ? fieldSchemaMapping.response.data.result[0].fields - : []; - fieldArr.forEach((field) => { - fieldSchemaNames.push(field.name); - }); - } else if (fieldSchemaMapping.response.error) { - const status = fieldSchemaMapping?.response?.status || 400; - throw new NetworkError( - `${fieldSchemaMapping.response.error}`, - status, - { - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), - }, - fieldSchemaMapping, - ); - } else { - throw new AbortedError('Failed to fetch Marketo Field Schema', 400, fieldSchemaMapping); +const fetchFieldSchemaNames = async (config, accessToken) => { + const fieldSchemaMapping = await getFieldSchemaMap(accessToken, config.munchkinId); + if (Object.keys(fieldSchemaMapping).length > 0) { + const fieldSchemaNames = Object.keys(fieldSchemaMapping); + return { fieldSchemaNames }; } - return { fieldSchemaNames, accessToken }; + throw new RetryableError('Failed to fetch Marketo Field Schema', 500, fieldSchemaMapping); }; const getHeaderFields = (config, fieldSchemaNames) => { const { columnFieldsMapping } = config; columnFieldsMapping.forEach((colField) => { - if (fieldSchemaNames) { - if (!fieldSchemaNames.includes(colField.to)) { - throw new ConfigurationError( - `The field ${colField.to} is not present in Marketo Field Schema. Aborting`, - ); - } - } else { - throw new ConfigurationError('Marketo Field Schema is Empty. Aborting'); + if (!fieldSchemaNames.includes(colField.to)) { + throw new ConfigurationError( + `The field ${colField.to} is not present in Marketo Field Schema. Aborting`, + ); } }); const columnField = getHashFromArray(columnFieldsMapping, 'to', 'from', false); return Object.keys(columnField); }; - -const getFileData = async (inputEvents, config, fieldSchemaNames) => { +/** + * Processes input data to create a CSV file and returns the file data along with successful and unsuccessful job IDs. + * The file name is made unique with combination of UUID and current timestamp to avoid any overrides. It also has a + * maximum size limit of 10MB . The events that could be accomodated inside the file is marked as successful and the + * rest are marked as unsuccessful. Also the file is deleted when reading is complete. + * @param {Array} inputEvents - An array of input events. + * @param {Object} config - destination config + * @param {Array} headerArr - An array of header fields. + * @returns {Object} - An object containing the file stream, successful job IDs, and unsuccessful job IDs. + */ +const getFileData = async (inputEvents, config, headerArr) => { const input = inputEvents; const messageArr = []; let startTime; @@ -107,8 +73,6 @@ const getFileData = async (inputEvents, config, fieldSchemaNames) => { messageArr.push(data); }); - const headerArr = getHeaderFields(config, fieldSchemaNames); - if (isDefinedAndNotNullAndNotEmpty(config.deDuplicationField)) { // dedup starts // Time Complexity = O(n2) @@ -120,7 +84,7 @@ const getFileData = async (inputEvents, config, fieldSchemaNames) => { // user@email [4,7,9] // user2@email [2,3] // user3@email [1] - input.map((element, index) => { + input.forEach((element, index) => { const indexAr = dedupMap.get(element.message[config.deDuplicationField]) || []; indexAr.push(index); dedupMap.set(element.message[config.deDuplicationField], indexAr); @@ -145,19 +109,16 @@ const getFileData = async (inputEvents, config, fieldSchemaNames) => { // dedup ends } - if (Object.keys(headerArr).length === 0) { - throw new ConfigurationError('Header fields not present'); - } const csv = []; csv.push(headerArr.toString()); endTime = Date.now(); requestTime = endTime - startTime; - stats.gauge('marketo_bulk_upload_create_header_time', requestTime); + stats.histogram('marketo_bulk_upload_create_header_time', requestTime); const unsuccessfulJobs = []; const successfulJobs = []; const MARKETO_FILE_PATH = getMarketoFilePath(); startTime = Date.now(); - messageArr.map((row) => { + messageArr.forEach((row) => { const csvSize = JSON.stringify(csv); // stringify and remove all "stringification" extra data const response = headerArr .map((fieldName) => JSON.stringify(Object.values(row)[0][fieldName], '')) @@ -168,215 +129,140 @@ const getFileData = async (inputEvents, config, fieldSchemaNames) => { } else { unsuccessfulJobs.push(Object.keys(row)[0]); } - return response; }); endTime = Date.now(); requestTime = endTime - startTime; - stats.gauge('marketo_bulk_upload_create_csvloop_time', requestTime); + stats.histogram('marketo_bulk_upload_create_csvloop_time', requestTime); const fileSize = Buffer.from(csv.join('\n')).length; if (csv.length > 1) { startTime = Date.now(); fs.writeFileSync(MARKETO_FILE_PATH, csv.join('\n')); - const readStream = fs.createReadStream(MARKETO_FILE_PATH); + const readStream = fs.readFileSync(MARKETO_FILE_PATH); fs.unlinkSync(MARKETO_FILE_PATH); endTime = Date.now(); requestTime = endTime - startTime; - stats.gauge('marketo_bulk_upload_create_file_time', requestTime); - stats.gauge('marketo_bulk_upload_upload_file_size', fileSize); + stats.histogram('marketo_bulk_upload_create_file_time', requestTime); + stats.histogram('marketo_bulk_upload_upload_file_size', fileSize); return { readStream, successfulJobs, unsuccessfulJobs }; } return { successfulJobs, unsuccessfulJobs }; }; -const getImportID = async (input, config, fieldSchemaNames, accessToken) => { - const { readStream, successfulJobs, unsuccessfulJobs } = await getFileData( - input, - config, - fieldSchemaNames, - ); - const FILE_UPLOAD_ERR_MSG = 'Could not upload file'; +const getImportID = async (input, config, accessToken, csvHeader) => { + let readStream; + let successfulJobs; + let unsuccessfulJobs; try { - const formReq = new FormData(); - const { munchkinId, deDuplicationField } = config; - // create file for multipart form - if (readStream) { - formReq.append('format', 'csv'); - formReq.append('file', readStream, 'marketo_bulk_upload.csv'); - formReq.append('access_token', accessToken); - // Upload data received from server as files to marketo - // DOC: https://developers.marketo.com/rest-api/bulk-import/bulk-lead-import/#import_file - const requestOptions = { - headers: { - ...formReq.getHeaders(), - }, - }; - if (isDefinedAndNotNullAndNotEmpty(deDuplicationField)) { - requestOptions.params = { - lookupField: deDuplicationField, - }; - } - const startTime = Date.now(); - const resp = await httpPOST( - `https://${munchkinId}.mktorest.com/bulk/v1/leads.json`, - formReq, - requestOptions, - { - destType: 'marketo_bulk_upload', - feature: 'transformation', - }, - ); - const endTime = Date.now(); - const requestTime = endTime - startTime; - stats.gauge('marketo_bulk_upload_upload_file_succJobs', successfulJobs.length); - stats.gauge('marketo_bulk_upload_upload_file_unsuccJobs', unsuccessfulJobs.length); - if (resp.success) { - /** - * - { - "requestId": "d01f#15d672f8560", - "result": [ - { - "batchId": 3404, - "importId": "3404", - "status": "Queued" - } - ], - "success": true - } - */ - if ( - resp.response && - resp.response.data.success && - resp.response.data.result.length > 0 && - resp.response.data.result[0] && - resp.response.data.result[0].importId - ) { - const { importId } = await resp.response.data.result[0]; - stats.gauge('marketo_bulk_upload_upload_file_time', requestTime); - - stats.increment(UPLOAD_FILE, { - status: 200, - state: 'Success', - }); - return { importId, successfulJobs, unsuccessfulJobs }; - } - if (resp.response && resp.response.data) { - if ( - resp.response.data.errors[0] && - resp.response.data.errors[0].message === - 'There are 10 imports currently being processed. Please try again later' - ) { - stats.increment(UPLOAD_FILE, { - status: 500, - state: 'Retryable', - }); - throw new RetryableError( - resp.response.data.errors[0].message || FILE_UPLOAD_ERR_MSG, - 500, - { successfulJobs, unsuccessfulJobs }, - ); - } - if ( - resp.response.data.errors[0] && - ((resp.response.data.errors[0].code >= 1000 && - resp.response.data.errors[0].code <= 1077) || - ABORTABLE_CODES.indexOf(resp.response.data.errors[0].code)) - ) { - if (resp.response.data.errors[0].message === 'Empty file') { - stats.increment(UPLOAD_FILE, { - status: 500, - state: 'Retryable', - }); - throw new RetryableError( - resp.response.data.errors[0].message || FILE_UPLOAD_ERR_MSG, - 500, - { successfulJobs, unsuccessfulJobs }, - ); - } - - stats.increment(UPLOAD_FILE, { - status: 400, - state: 'Abortable', - }); - throw new AbortedError( - resp.response.data.errors[0].message || FILE_UPLOAD_ERR_MSG, - 400, - { successfulJobs, unsuccessfulJobs }, - ); - } else if (THROTTLED_CODES.indexOf(resp.response.data.errors[0].code)) { - stats.increment(UPLOAD_FILE, { - status: 500, - state: 'Retryable', - }); - throw new ThrottledError(resp.response.response.statusText || FILE_UPLOAD_ERR_MSG, { - successfulJobs, - unsuccessfulJobs, - }); - } - stats.increment(UPLOAD_FILE, { - status: 500, - state: 'Retryable', - }); - throw new RetryableError(resp.response.response.statusText || FILE_UPLOAD_ERR_MSG, 500, { - successfulJobs, - unsuccessfulJobs, - }); - } - } - } - return { successfulJobs, unsuccessfulJobs }; + ({ readStream, successfulJobs, unsuccessfulJobs } = await getFileData( + input, + config, + csvHeader, + )); } catch (err) { - // TODO check the tags - stats.increment(UPLOAD_FILE, { - status: err.response?.status || 400, - errorMessage: err.message || FILE_UPLOAD_ERR_MSG, + client.notify(err, `Marketo File Upload: Error while creating file: ${err.message}`, { + config, + csvHeader, }); - const status = err.response?.status || 400; - throw new NetworkError( - err.message || FILE_UPLOAD_ERR_MSG, - status, + throw new TransformationError( + `Marketo File Upload: Error while creating file: ${err.message}`, + 500, + ); + } + + const formReq = new FormData(); + const { munchkinId, deDuplicationField } = config; + // create file for multipart form + if (readStream) { + formReq.append('format', 'csv'); + formReq.append('file', readStream, 'marketo_bulk_upload.csv'); + formReq.append('access_token', accessToken); + // Upload data received from server as files to marketo + // DOC: https://developers.marketo.com/rest-api/bulk-import/bulk-lead-import/#import_file + const requestOptions = { + headers: { + ...formReq.getHeaders(), + }, + }; + if (isDefinedAndNotNullAndNotEmpty(deDuplicationField)) { + requestOptions.params = { + lookupField: deDuplicationField, + }; + } + const startTime = Date.now(); + const { processedResponse: resp } = await handleHttpRequest( + 'post', + `https://${munchkinId}.mktorest.com/bulk/v1/leads.json`, + formReq, + requestOptions, { - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), + destType: 'marketo_bulk_upload', + feature: 'transformation', }, - { successfulJobs, unsuccessfulJobs }, ); + const endTime = Date.now(); + const requestTime = endTime - startTime; + stats.counter('marketo_bulk_upload_upload_file_succJobs', successfulJobs.length); + stats.counter('marketo_bulk_upload_upload_file_unsuccJobs', unsuccessfulJobs.length); + if (!isHttpStatusSuccess(resp.status)) { + throw new NetworkError( + 'Unable to upload file', + hydrateStatusForServer(resp.status, 'During fetching poll status'), + ); + } + return handleFileUploadResponse(resp, successfulJobs, unsuccessfulJobs, requestTime, config); } + return { importId: null, successfulJobs, unsuccessfulJobs }; }; +/** + * + * @param {*} input + * @param {*} config + * @returns returns the final response of fileUpload.js + */ const responseHandler = async (input, config) => { + const accessToken = await getAccessToken(config); /** { "importId" : , "pollURL" : , } */ - const { fieldSchemaNames, accessToken } = await fetchFieldSchema(config); + const { fieldSchemaNames } = await fetchFieldSchemaNames(config, accessToken); + const headerForCsv = getHeaderFields(config, fieldSchemaNames); + if (Object.keys(headerForCsv).length === 0) { + throw new ConfigurationError( + 'Faulty configuration. Please map your traits to Marketo column fields', + ); + } const { importId, successfulJobs, unsuccessfulJobs } = await getImportID( input, config, - fieldSchemaNames, accessToken, + headerForCsv, ); + + // if upload is successful if (importId) { + const csvHeader = headerForCsv.toString(); + const metadata = { successfulJobs, unsuccessfulJobs, csvHeader }; const response = { statusCode: 200, importId, - pollURL: '/pollStatus', + metadata, }; - const csvHeader = getHeaderFields(config, fieldSchemaNames).toString(); - response.metadata = { successfulJobs, unsuccessfulJobs, csvHeader }; return response; } - + // if importId is returned null stats.increment(UPLOAD_FILE, { status: 500, state: 'Retryable', }); - throw new RetryableError('No import id received', 500, { - successfulJobs, - unsuccessfulJobs, - }); + return { + statusCode: 500, + FailedReason: '[Marketo File upload]: No import id received', + }; }; const processFileData = async (event) => { const { input, config } = event; diff --git a/src/v0/destinations/marketo_bulk_upload/marketo_bulk_upload.util.test.js b/src/v0/destinations/marketo_bulk_upload/marketo_bulk_upload.util.test.js new file mode 100644 index 00000000000..78ac7c9e485 --- /dev/null +++ b/src/v0/destinations/marketo_bulk_upload/marketo_bulk_upload.util.test.js @@ -0,0 +1,230 @@ +const { + handleCommonErrorResponse, + handlePollResponse, + handleFileUploadResponse, +} = require('./util'); + +const { AbortedError, RetryableError } = require('@rudderstack/integrations-lib'); + +describe('handleCommonErrorResponse', () => { + test('should throw AbortedError for abortable error codes', () => { + const resp = { + response: { + errors: [{ code: 1003, message: 'Aborted' }], + }, + }; + expect(() => handleCommonErrorResponse(resp, 'OpErrorMessage', 'OpActivity')).toThrow( + AbortedError, + ); + }); + + test('should throw ThrottledError for throttled error codes', () => { + const resp = { + response: { + errors: [{ code: 615, message: 'Throttled' }], + }, + }; + expect(() => handleCommonErrorResponse(resp, 'OpErrorMessage', 'OpActivity')).toThrow( + RetryableError, + ); + }); + + test('should throw RetryableError for other error codes', () => { + const resp = { + response: { + errors: [{ code: 2000, message: 'Retryable' }], + }, + }; + expect(() => handleCommonErrorResponse(resp, 'OpErrorMessage', 'OpActivity')).toThrow( + RetryableError, + ); + }); + + test('should throw RetryableError by default', () => { + const resp = { + response: { + errors: [], + }, + }; + expect(() => handleCommonErrorResponse(resp, 'OpErrorMessage', 'OpActivity')).toThrow( + RetryableError, + ); + }); +}); + +describe('handlePollResponse', () => { + // Tests that the function returns the response object if the polling operation was successful + it('should return the response object when the polling operation was successful', () => { + const pollStatus = { + response: { + success: true, + result: [ + { + batchId: '123', + status: 'Complete', + numOfLeadsProcessed: 2, + numOfRowsFailed: 1, + numOfRowsWithWarning: 0, + message: 'Import completed with errors, 2 records imported (2 members), 1 failed', + }, + ], + }, + }; + + const result = handlePollResponse(pollStatus); + + expect(result).toEqual(pollStatus.response); + }); + + // Tests that the function throws an AbortedError if the response contains an abortable error code + it('should throw an AbortedError when the response contains an abortable error code', () => { + const pollStatus = { + response: { + errors: [ + { + code: 1003, + message: 'Empty file', + }, + ], + }, + }; + + expect(() => handlePollResponse(pollStatus)).toThrow(AbortedError); + }); + + // Tests that the function throws a ThrottledError if the response contains a throttled error code + it('should throw a ThrottledError when the response contains a throttled error code', () => { + const pollStatus = { + response: { + errors: [ + { + code: 615, + message: 'Exceeded concurrent usage limit', + }, + ], + }, + }; + + expect(() => handlePollResponse(pollStatus)).toThrow(RetryableError); + }); + + // Tests that the function throws a RetryableError if the response contains an error code that is not abortable or throttled + it('should throw a RetryableError when the response contains an error code that is not abortable or throttled', () => { + const pollStatus = { + response: { + errors: [ + { + code: 601, + message: 'Unauthorized', + }, + ], + }, + }; + + expect(() => handlePollResponse(pollStatus)).toThrow(RetryableError); + }); + + // Tests that the function returns null if the polling operation was not successful + it('should return null when the polling operation was not successful', () => { + const pollStatus = { + response: { + success: false, + }, + }; + + const result = handlePollResponse(pollStatus); + + expect(result).toBeNull(); + }); +}); + +describe('handleFileUploadResponse', () => { + // Tests that the function returns an object with importId, successfulJobs, and unsuccessfulJobs when the response indicates a successful upload. + it('should return an object with importId, successfulJobs, and unsuccessfulJobs when the response indicates a successful upload', () => { + const resp = { + response: { + success: true, + result: [ + { + importId: '3404', + status: 'Queued', + }, + ], + }, + }; + const successfulJobs = []; + const unsuccessfulJobs = []; + const requestTime = 100; + + const result = handleFileUploadResponse(resp, successfulJobs, unsuccessfulJobs, requestTime); + + expect(result).toEqual({ + importId: '3404', + successfulJobs: [], + unsuccessfulJobs: [], + }); + }); + + // Tests that the function throws a RetryableError when the response indicates an empty file. + it('should throw a RetryableError when the response indicates an empty file', () => { + const resp = { + response: { + errors: [ + { + code: '1003', + message: 'Empty File', + }, + ], + }, + }; + const successfulJobs = []; + const unsuccessfulJobs = []; + const requestTime = 100; + + expect(() => { + handleFileUploadResponse(resp, successfulJobs, unsuccessfulJobs, requestTime); + }).toThrow(RetryableError); + }); + + // Tests that the function throws a RetryableError when the response indicates more than 10 concurrent uses. + it('should throw a RetryableError when the response indicates more than 10 concurrent uses', () => { + const resp = { + response: { + errors: [ + { + code: '615', + message: 'Concurrent Use Limit Exceeded', + }, + ], + }, + }; + const successfulJobs = []; + const unsuccessfulJobs = []; + const requestTime = 100; + + expect(() => { + handleFileUploadResponse(resp, successfulJobs, unsuccessfulJobs, requestTime); + }).toThrow(RetryableError); + }); + + // Tests that the function throws a RetryableError when the response contains an error code between 1000 and 1077. + it('should throw a Aborted when the response contains an error code between 1000 and 1077', () => { + const resp = { + response: { + errors: [ + { + code: 1001, + message: 'Some Error', + }, + ], + }, + }; + const successfulJobs = []; + const unsuccessfulJobs = []; + const requestTime = 100; + + expect(() => { + handleFileUploadResponse(resp, successfulJobs, unsuccessfulJobs, requestTime); + }).toThrow(AbortedError); + }); +}); diff --git a/src/v0/destinations/marketo_bulk_upload/poll.js b/src/v0/destinations/marketo_bulk_upload/poll.js index 7978f2d8762..3ad458c5455 100644 --- a/src/v0/destinations/marketo_bulk_upload/poll.js +++ b/src/v0/destinations/marketo_bulk_upload/poll.js @@ -1,9 +1,10 @@ -const { removeUndefinedValues } = require('../../util'); -const { getAccessToken, ABORTABLE_CODES, THROTTLED_CODES, POLL_ACTIVITY } = require('./util'); -const { httpGET } = require('../../../adapters/network'); +const { NetworkError } = require('@rudderstack/integrations-lib'); +const { removeUndefinedValues, isHttpStatusSuccess } = require('../../util'); +const { getAccessToken, handlePollResponse, hydrateStatusForServer } = require('./util'); +const { handleHttpRequest } = require('../../../adapters/network'); const stats = require('../../../util/stats'); -const { AbortedError, ThrottledError, RetryableError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); +const { POLL_ACTIVITY } = require('./config'); const getPollStatus = async (event) => { const accessToken = await getAccessToken(event.config); @@ -18,106 +19,41 @@ const getPollStatus = async (event) => { }, }; const pollUrl = `https://${munchkinId}.mktorest.com/bulk/v1/leads/batch/${event.importId}.json`; - const startTime = Date.now(); - const pollStatus = await httpGET(pollUrl, requestOptions, { - destType: 'marketo_bulk_upload', - feature: 'transformation', - }); - const endTime = Date.now(); - const requestTime = endTime - startTime; - const POLL_STATUS_ERR_MSG = 'Could not poll status'; - if (pollStatus.success) { - if (pollStatus.response && pollStatus.response.data.success) { - stats.increment(POLL_ACTIVITY, { - requestTime, - status: 200, - state: 'Success', - }); - return pollStatus.response; - } - // DOC: https://developers.marketo.com/rest-api/error-codes/ - if (pollStatus.response && pollStatus.response.data) { - // Abortable jobs - // Errors from polling come as - /** - * { - "requestId": "e42b#14272d07d78", - "success": false, - "errors": [ - { - "code": "601", - "message": "Unauthorized" - } - ] -} - */ - if ( - pollStatus.response.data.errors[0] && - ((pollStatus.response.data.errors[0].code >= 1000 && - pollStatus.response.data.errors[0].code <= 1077) || - ABORTABLE_CODES.includes(pollStatus.response.data.errors[0].code)) - ) { - stats.increment(POLL_ACTIVITY, { - requestTime, - status: 400, - state: 'Abortable', - }); - throw new AbortedError( - pollStatus.response.data.errors[0].message || POLL_STATUS_ERR_MSG, - 400, - pollStatus, - ); - } else if (THROTTLED_CODES.includes(pollStatus.response.data.errors[0].code)) { - stats.increment(POLL_ACTIVITY, { - requestTime, - status: 500, - state: 'Retryable', - }); - throw new ThrottledError( - pollStatus.response.data.errors[0].message || POLL_STATUS_ERR_MSG, - pollStatus, - ); - } - stats.increment(POLL_ACTIVITY, { - requestTime, - status: 500, - state: 'Retryable', - }); - throw new RetryableError( - pollStatus.response.response.statusText || 'Error during polling status', - 500, - pollStatus, - ); - } + const { processedResponse: pollStatus } = await handleHttpRequest( + 'get', + pollUrl, + requestOptions, + { + destType: 'marketo_bulk_upload', + feature: 'transformation', + }, + ); + if (!isHttpStatusSuccess(pollStatus.status)) { + stats.counter(POLL_ACTIVITY, 1, { + status: pollStatus.status, + state: 'Retryable', + }); + throw new NetworkError( + 'Could not poll status', + hydrateStatusForServer(pollStatus.status, 'During fetching poll status'), + ); } - stats.increment(POLL_ACTIVITY, { - requestTime, - status: 400, - state: 'Abortable', - }); - throw new AbortedError(POLL_STATUS_ERR_MSG, 400, pollStatus); + return handlePollResponse(pollStatus, event.config); }; const responseHandler = async (event) => { const pollResp = await getPollStatus(event); - let pollSuccess; - let success; - let statusCode; - let hasFailed; - let failedJobsURL; - let hasWarnings; - let warningJobsURL; - let errorResponse; // Server expects : /** * * { - "success": true, + "Complete": true, "statusCode": 200, "hasFailed": true, - "failedJobsURL": "", // transformer URL - "hasWarnings": false, - "warningJobsURL": "", // transformer URL + "InProgress": false, + "FailedJobURLs": "", // transformer URL + "HasWarning": false, + "WarningJobURLs": "", // transformer URL } // Succesful Upload { "success": false, @@ -126,41 +62,57 @@ const responseHandler = async (event) => { } // Failed Upload { "success": false, + "Inprogress": true, + statusCode: 500, } // Importing or Queue */ - if (pollResp && pollResp.data) { - pollSuccess = pollResp.data.success; - if (pollSuccess) { - const { status, numOfRowsFailed, numOfRowsWithWarning } = pollResp.data.result[0]; - if (status === 'Complete') { - success = true; - statusCode = 200; - hasFailed = numOfRowsFailed > 0; - failedJobsURL = '/getFailedJobs'; - warningJobsURL = '/getWarningJobs'; - hasWarnings = numOfRowsWithWarning > 0; - } else if (status === 'Importing' || status === 'Queued') { - success = false; - } - } else { - success = false; - statusCode = 400; - errorResponse = pollResp.data.errors - ? pollResp.data.errors[0].message - : 'Error in importing jobs'; + if (pollResp) { + // As marketo lead import API or bulk API does not support record level error response we are considering + // file level errors only. + // ref: https://nation.marketo.com/t5/ideas/support-error-code-in-record-level-in-lead-bulk-api/idi-p/262191 + const { status, numOfRowsFailed, numOfRowsWithWarning, message } = pollResp.result[0]; + if (status === 'Complete') { + const response = { + Complete: true, + statusCode: 200, + InProgress: false, + hasFailed: numOfRowsFailed > 0, + FailedJobURLs: numOfRowsFailed > 0 ? '/getFailedJobs' : undefined, + HasWarning: numOfRowsWithWarning > 0, + WarningJobURLs: numOfRowsWithWarning > 0 ? '/getWarningJobs' : undefined, + }; + return removeUndefinedValues(response); + } + if (status === 'Importing' || status === 'Queued') { + return { + Complete: false, + statusCode: 500, + hasFailed: false, + InProgress: true, + HasWarning: false, + }; + } + if (status === 'Failed') { + return { + Complete: false, + statusCode: 500, + hasFailed: false, + InProgress: false, + HasWarning: false, + Error: message || 'Marketo Poll Status Failed', + }; } } - const response = { - success, - statusCode, - hasFailed, - failedJobsURL, - hasWarnings, - warningJobsURL, - errorResponse, + // when pollResp is null + return { + Complete: false, + statusCode: 500, + hasFailed: false, + InProgress: false, + HasWarning: false, + Error: 'No poll response received from Marketo', }; - return removeUndefinedValues(response); }; const processPolling = async (event) => { diff --git a/src/v0/destinations/marketo_bulk_upload/transform.js b/src/v0/destinations/marketo_bulk_upload/transform.js index d5764ee6c39..5431e67d38a 100644 --- a/src/v0/destinations/marketo_bulk_upload/transform.js +++ b/src/v0/destinations/marketo_bulk_upload/transform.js @@ -1,3 +1,4 @@ +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { getHashFromArray, getFieldValueFromMessage, @@ -5,7 +6,6 @@ const { defaultRequestConfig, } = require('../../util'); const { EventType } = require('../../../constants'); -const { InstrumentationError } = require('../../util/errorTypes'); function responseBuilderSimple(message, destination) { const payload = {}; diff --git a/src/v0/destinations/marketo_bulk_upload/util.js b/src/v0/destinations/marketo_bulk_upload/util.js index 38bda6c3a4a..7b329a3441b 100644 --- a/src/v0/destinations/marketo_bulk_upload/util.js +++ b/src/v0/destinations/marketo_bulk_upload/util.js @@ -1,98 +1,445 @@ -const { httpGET } = require('../../../adapters/network'); const { - ThrottledError, AbortedError, RetryableError, NetworkError, -} = require('../../util/errorTypes'); + TransformationError, +} = require('@rudderstack/integrations-lib'); +const { handleHttpRequest } = require('../../../adapters/network'); const tags = require('../../util/tags'); +const { isHttpStatusSuccess, generateUUID } = require('../../util'); const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); +const stats = require('../../../util/stats'); +const { + ABORTABLE_CODES, + THROTTLED_CODES, + POLL_ACTIVITY, + UPLOAD_FILE, + FETCH_ACCESS_TOKEN, + POLL_STATUS_ERR_MSG, + FILE_UPLOAD_ERR_MSG, + ACCESS_TOKEN_FETCH_ERR_MSG, +} = require('./config'); +const Cache = require('../../util/cache'); +const logger = require('../../../logger'); -const ABORTABLE_CODES = ['ENOTFOUND', 'ECONNREFUSED', 603, 605, 609, 610]; -const RETRYABLE_CODES = ['EADDRINUSE', 'ECONNRESET', 'ETIMEDOUT', 713, 601, 602, 604, 611]; -const THROTTLED_CODES = [502, 606, 607, 608, 615]; +const { AUTH_CACHE_TTL } = require('../../util/constant'); -const MARKETO_FILE_SIZE = 10485760; -const MARKETO_FILE_PATH = `${__dirname}/uploadFile/marketo_bulkupload.csv`; +const authCache = new Cache(AUTH_CACHE_TTL); -const POLL_ACTIVITY = 'marketo_bulk_upload_polling'; -const UPLOAD_FILE = 'marketo_bulk_upload_upload_file'; -const JOB_STATUS_ACTIVITY = 'marketo_bulk_upload_get_job_status'; +const getMarketoFilePath = () => + `${__dirname}/uploadFile/${Date.now()}_marketo_bulk_upload_${generateUUID()}.csv`; -const getMarketoFilePath = () => MARKETO_FILE_PATH; -// Fetch access token from client id and client secret -// DOC: https://developers.marketo.com/rest-api/authentication/ -const getAccessToken = async (config) => { +// Server only aborts when status code is 400 +const hydrateStatusForServer = (statusCode, context) => { + const status = Number(statusCode); + if (Number.isNaN(status)) { + throw new TransformationError(`${context}: Couldn't parse status code ${statusCode}`); + } + if (status >= 400 && status <= 499) { + return 400; + } + return status; +}; + +const getAccessTokenCacheKey = (config = {}) => { + const { munchkinId, clientId, clientSecret } = config; + return `${munchkinId}-${clientId}-${clientSecret}`; +}; + +/** + * Handles common error responses returned from API calls. + * Checks the error code and throws the appropriate error object based on the code. + * + * @param {object} resp - The response object containing the error information. + * @param {string} OpErrorMessage - The error message to be used if the error code is not recognized. + * @param {string} OpActivity - The activity name for tracking purposes. + * @throws {AbortedError} - If the error code is abortable. + * @throws {ThrottledError} - If the error code is within the range of throttled codes. + * @throws {RetryableError} - If the error code is neither abortable nor throttled. + * + * @example + * const resp = { + * response: { + * errors: [ + * { + * code: "1003", + * message: "Empty File" + * } + * ] + * } + * }; + * + * try { + * handleCommonErrorResponse(resp, "Error message", "Activity"); + * } catch (error) { + * console.log(error); + * } + */ +const handleCommonErrorResponse = (apiCallResult, OpErrorMessage, OpActivity, config) => { + // checking for invalid/expired token errors and evicting cache in that case + // rudderJobMetadata contains some destination info which is being used to evict the cache + if ( + authCache && + apiCallResult.response?.errors && + apiCallResult.response?.errors?.length > 0 && + apiCallResult.response?.errors.some( + (errorObj) => errorObj.code === '601' || errorObj.code === '602', + ) + ) { + // Special handling for 601 and 602 error codes for access token + authCache.del(getAccessTokenCacheKey(config)); + if (apiCallResult.response?.errors.some((errorObj) => errorObj.code === '601')) { + throw new AbortedError( + `[${OpErrorMessage}]Error message: ${apiCallResult.response?.errors[0]?.message}`, + ); + } + if (apiCallResult.response?.errors.some((errorObj) => errorObj.code === '602')) { + throw new RetryableError( + `[${OpErrorMessage}]Error message: ${apiCallResult.response?.errors[0]?.message}`, + ); + } + } + if ( + apiCallResult.response?.errors?.length > 0 && + apiCallResult.response?.errors[0] && + ((apiCallResult.response?.errors[0]?.code >= 1000 && + apiCallResult.response?.errors[0]?.code <= 1077) || + ABORTABLE_CODES.includes(apiCallResult.response?.errors[0]?.code)) + ) { + // for empty file the code is 1003 and that should be retried + stats.increment(OpActivity, { + status: 400, + state: 'Abortable', + }); + throw new AbortedError(apiCallResult.response?.errors[0]?.message || OpErrorMessage, 400); + } else if (THROTTLED_CODES.includes(apiCallResult.response?.errors[0]?.code)) { + // for more than 10 concurrent uses the code is 615 and that should be retried + stats.increment(OpActivity, { + status: 429, + state: 'Retryable', + }); + throw new RetryableError( + `[${OpErrorMessage}]Error message: ${apiCallResult.response?.errors[0]?.message}`, + 500, + ); + } + // by default every thing will be retried + stats.increment(OpActivity, { + status: 500, + state: 'Retryable', + }); + throw new RetryableError( + `[${OpErrorMessage}]Error message: ${apiCallResult.response?.errors[0]?.message}`, + 500, + ); +}; + +const getAccessTokenURL = (config) => { const { clientId, clientSecret, munchkinId } = config; const url = `https://${munchkinId}.mktorest.com/identity/oauth/token?client_id=${clientId}&client_secret=${clientSecret}&grant_type=client_credentials`; - const resp = await httpGET( - url, - {}, - { + return url; +}; + +// Fetch access token from client id and client secret +// DOC: https://developers.marketo.com/rest-api/authentication/ +const getAccessToken = async (config) => + authCache.get(getAccessTokenCacheKey(config), async () => { + const url = getAccessTokenURL(config); + const { processedResponse: accessTokenResponse } = await handleHttpRequest('get', url, { destType: 'marketo_bulk_upload', feature: 'transformation', - }, - ); - const ACCESS_TOKEN_FETCH_ERR_MSG = 'Error during fetching access token'; - if (resp.success) { - if (resp.response && resp.response.data && resp.response.data.access_token) { - return resp.response.data.access_token; + }); + + // sample response : {response: '[ENOTFOUND] :: DNS lookup failed', status: 400} + if (!isHttpStatusSuccess(accessTokenResponse.status)) { + throw new NetworkError( + 'Could not retrieve authorisation token', + hydrateStatusForServer(accessTokenResponse.status, FETCH_ACCESS_TOKEN), + { + [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(accessTokenResponse.status), + }, + accessTokenResponse, + ); + } + if (accessTokenResponse.response?.success === false) { + handleCommonErrorResponse( + accessTokenResponse, + ACCESS_TOKEN_FETCH_ERR_MSG, + FETCH_ACCESS_TOKEN, + config, + ); + } + + // when access token is present + if (accessTokenResponse.response.access_token) { + /* This scenario will handle the case when we get the foloowing response + status: 200 + respnse: {"access_token":"","token_type":"bearer","expires_in":0,"scope":"dummy@scope.com"} + wherein "expires_in":0 denotes that we should refresh the accessToken but its not expired yet. + */ + if (accessTokenResponse.response?.expires_in === 0) { + throw new RetryableError( + `Request Failed for marketo_bulk_upload, Access Token Expired (Retryable).`, + 500, + ); + } + return accessTokenResponse.response.access_token; + } + throw new AbortedError('Could not retrieve authorisation token', 400); + }); + +/** + * Handles the response of a polling operation. + * Checks for any errors in the response and calls the `handleCommonErrorResponse` function to handle them. + * If the response is successful, increments the stats and returns the response. + * Otherwise, returns null. + * + * @param {object} pollStatus - The response object from the polling operation. + * @returns {object|null} - The response object if the polling operation was successful, otherwise null. + */ +const handlePollResponse = (pollStatus, config) => { + // DOC: https://developers.marketo.com/rest-api/error-codes/ + if (pollStatus.response.errors) { + /* Sample error response for poll is: + + { + "requestId": "e42b#14272d07d78", + "success": false, + "errors": [ + { + "code": "601", + "message": "Unauthorized" + } + ] + } + */ + handleCommonErrorResponse(pollStatus, POLL_STATUS_ERR_MSG, POLL_ACTIVITY, config); + } + + /* + Sample Successful Poll response structure: + { + "requestId":"8136#146daebc2ed", + "success":true, + "result":[ + { + "batchId":, + "status":"Complete", + "numOfLeadsProcessed":2, + "numOfRowsFailed":1, + "numOfRowsWithWarning":0, + "message":"Import completed with errors, 2 records imported (2 members), 1 failed" + } + ] + } + */ + if (pollStatus.response?.success) { + stats.counter(POLL_ACTIVITY, 1, { + status: 200, + state: 'Success', + }); + + if (pollStatus.response?.result?.length > 0) { + return pollStatus.response; } - const status = resp?.response?.status || 400; + } + + return null; +}; + +const handleFetchJobStatusResponse = (resp, type) => { + const marketoResponse = resp.response; + const marketoReposnseStatus = resp.status; + + if (!isHttpStatusSuccess(marketoReposnseStatus)) { + logger.info('[Network Error]:Failed during fetching job status', { marketoResponse, type }); throw new NetworkError( - 'Could not retrieve authorisation token', - status, - { - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), - }, - resp, + 'Unable to fetch job status', + hydrateStatusForServer(marketoReposnseStatus, 'During fetching job status'), ); } - if (resp.response) { - // handle for abortable codes - if ( - ABORTABLE_CODES.includes(resp.response.code) || - (resp.response.code >= 400 && resp.response.code <= 499) - ) { - throw new AbortedError(resp.response.code, 400, resp); - } // handle for retryable codes - else if (RETRYABLE_CODES.includes(resp.response.code)) { - throw new RetryableError(resp.response.code, 500, resp); - } // handle for abortable codes - else if (resp.response.response) { - if (ABORTABLE_CODES.includes(resp.response.response.status)) { - throw new AbortedError( - resp.response.response.statusText || ACCESS_TOKEN_FETCH_ERR_MSG, - 400, - resp, - ); - } // handle for throttled codes - else if (THROTTLED_CODES.includes(resp.response.response.status)) { - throw new ThrottledError( - resp.response.response.statusText || ACCESS_TOKEN_FETCH_ERR_MSG, - resp, - ); - } - // Assuming none we should retry the remaining errors + + if (marketoResponse?.success === false) { + logger.info('[Application Error]Failed during fetching job status', { marketoResponse, type }); + throw new RetryableError('Failure during fetching job status', 500, resp); + } + + /* + successful response : + { + response: 'city, email,Import Failure ReasonChennai,s…a,Value for lookup field 'email' not found', + status: 200 + } + + */ + + return marketoResponse; +}; + +/** + * Handles the response received after a file upload request. + * Checks for errors in the response and throws appropriate error objects based on the error codes. + * If the response indicates a successful upload, extracts the importId and returns it along with other job details. + * + * @param {object} resp - The response object received after a file upload request. + * @param {array} successfulJobs - An array to store details of successful jobs. + * @param {array} unsuccessfulJobs - An array to store details of unsuccessful jobs. + * @param {number} requestTime - The time taken for the request in milliseconds. + * @returns {object} - An object containing the importId, successfulJobs, and unsuccessfulJobs. + */ +const handleFileUploadResponse = (resp, successfulJobs, unsuccessfulJobs, requestTime, config) => { + /* + For unsuccessful response + { + "requestId": "e42b#14272d07d78", + "success": false, + "errors": [ + { + "code": "1003", + "message": "Empty File" + } + ] + } + */ + if (resp.response?.errors) { + if (resp.response?.errors[0]?.code === '1003') { + stats.increment(UPLOAD_FILE, { + status: 500, + state: 'Retryable', + }); throw new RetryableError( - resp.response.response.statusText || ACCESS_TOKEN_FETCH_ERR_MSG, + `[${FILE_UPLOAD_ERR_MSG}]:Error Message ${resp.response.errors[0]?.message}`, 500, - resp, ); + } else { + handleCommonErrorResponse(resp, FILE_UPLOAD_ERR_MSG, UPLOAD_FILE, config); + } + } + + /** + * SuccessFul Upload Response : + { + "requestId": "d01f#15d672f8560", + "result": [ + { + "batchId": 3404, + "importId": "3404", + "status": "Queued" + } + ], + "success": true } - throw new NetworkError('Could not retrieve authorization token'); + */ + if ( + resp.response?.success && + resp.response?.result?.length > 0 && + resp.response?.result[0]?.importId + ) { + const { importId } = resp.response.result[0]; + stats.histogram('marketo_bulk_upload_upload_file_time', requestTime); + + stats.increment(UPLOAD_FILE, { + status: 200, + state: 'Success', + }); + return { importId, successfulJobs, unsuccessfulJobs }; + } + // if neither successful, nor the error message is appropriate sending importId as default null + return { importId: null, successfulJobs, unsuccessfulJobs }; +}; + +/** + * Retrieves the field schema mapping for a given access token and munchkin ID from the Marketo API. + * + * @param {string} accessToken - The access token used to authenticate the API request. + * @param {string} munchkinId - The munchkin ID of the Marketo instance. + * @returns {object} - The field schema mapping retrieved from the Marketo API. + */ +const getFieldSchemaMap = async (accessToken, munchkinId) => { + let fieldArr = []; + const fieldMap = {}; // map to store field name and data type + // ref: https://developers.marketo.com/rest-api/endpoint-reference/endpoint-index/#:~:text=Describe%20Lead2,leads/describe2.json + const { processedResponse: fieldSchemaMapping } = await handleHttpRequest( + 'get', + `https://${munchkinId}.mktorest.com/rest/v1/leads/describe2.json`, + { + params: { + access_token: accessToken, + }, + }, + { + destType: 'marketo_bulk_upload', + feature: 'transformation', + }, + ); + + if (fieldSchemaMapping.response.errors) { + handleCommonErrorResponse( + fieldSchemaMapping, + 'Error while fetching Marketo Field Schema', + 'FieldSchemaMapping', + ); + } + if ( + fieldSchemaMapping.response?.success && + fieldSchemaMapping.response?.result.length > 0 && + fieldSchemaMapping.response?.result[0] + ) { + fieldArr = + fieldSchemaMapping.response.result && Array.isArray(fieldSchemaMapping.response.result) + ? fieldSchemaMapping.response.result[0]?.fields + : []; + + fieldArr.forEach((field) => { + fieldMap[field?.name] = field?.dataType; + }); + } else { + throw new RetryableError('Failed to fetch Marketo Field Schema', 500, fieldSchemaMapping); } - throw new NetworkError('Could not retrieve authorization token'); + return fieldMap; +}; + +/** + * Compares the data types of the fields in an event message with the expected data types defined in the field schema mapping. + * Identifies any mismatched fields and returns them as a map of job IDs and the corresponding invalid fields. + * + * @param {object} event - An object containing an `input` array of events. Each event has a `message` object with field-value pairs and a `metadata` object with a `job_id` property. + * @param {object} fieldSchemaMapping - An object containing the field schema mapping, which includes the expected data types for each field. + * @returns {object} - An object containing the job IDs as keys and the corresponding invalid fields as values. + */ +const checkEventStatusViaSchemaMatching = (event, fieldMap) => { + const mismatchedFields = {}; + const events = event.input; + events.forEach((ev) => { + const { message, metadata } = ev; + // eslint-disable-next-line @typescript-eslint/naming-convention + const { job_id } = metadata; + + Object.entries(message).forEach(([paramName, paramValue]) => { + let expectedDataType = fieldMap[paramName]; + const actualDataType = typeof paramValue; + + // If expectedDataType is not one of the primitive data types, treat it as a string + if (!['string', 'number', 'boolean', 'undefined'].includes(expectedDataType)) { + expectedDataType = 'string'; + } + + if (!mismatchedFields[job_id] && actualDataType !== expectedDataType) { + mismatchedFields[job_id] = `invalid ${paramName}`; + } + }); + }); + return mismatchedFields; }; module.exports = { + checkEventStatusViaSchemaMatching, + handlePollResponse, + handleFetchJobStatusResponse, + handleFileUploadResponse, + handleCommonErrorResponse, + hydrateStatusForServer, getAccessToken, - ABORTABLE_CODES, - RETRYABLE_CODES, - THROTTLED_CODES, - MARKETO_FILE_SIZE, getMarketoFilePath, - POLL_ACTIVITY, - UPLOAD_FILE, - JOB_STATUS_ACTIVITY, + getFieldSchemaMap, }; diff --git a/src/v0/destinations/marketo_static_list/networkHandler.js b/src/v0/destinations/marketo_static_list/networkHandler.js index 5a783086b82..30b053b9d3e 100644 --- a/src/v0/destinations/marketo_static_list/networkHandler.js +++ b/src/v0/destinations/marketo_static_list/networkHandler.js @@ -4,7 +4,6 @@ const v0Utils = require('../../util'); const { processAxiosResponse } = require('../../../adapters/utils/networkUtils'); const { DESTINATION } = require('./config'); -// eslint-disable-next-line no-unused-vars const responseHandler = (destinationResponse, destType) => { const message = 'Request Processed Successfully'; const { status, rudderJobMetadata } = destinationResponse; @@ -25,6 +24,7 @@ const responseHandler = (destinationResponse, destType) => { }; }; +// eslint-disable-next-line @typescript-eslint/naming-convention class networkHandler { constructor() { this.responseHandler = responseHandler; diff --git a/src/v0/destinations/marketo_static_list/testData/constants.js b/src/v0/destinations/marketo_static_list/testData/constants.js new file mode 100644 index 00000000000..2c420c6bc2a --- /dev/null +++ b/src/v0/destinations/marketo_static_list/testData/constants.js @@ -0,0 +1,45 @@ +const EXTERNAL_ID = 'marketoStaticListId'; +const TOKEN = 'Bearer access_token_success'; +const CONTENT_TYPE = 'application/json'; +const DEST_CONFIG = { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1234, +}; +const DEST_DEFINITION = { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', +}; +const DEST_OBJECT = { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: DEST_DEFINITION, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, +}; +const MESSAGE_SOURCES_CONTEXT = { + job_id: '2VsZs4hyPpq7f1p8igrpmHsibHl', + job_run_id: 'ck99nbd2kqiljdihhkh0', + task_run_id: 'ck99nbd2kqiljdihhkhg', +}; + +module.exports = { + EXTERNAL_ID, + TOKEN, + CONTENT_TYPE, + DEST_OBJECT, + DEST_DEFINITION, + MESSAGE_SOURCES_CONTEXT, + DEST_CONFIG, +}; diff --git a/src/v0/destinations/marketo_static_list/testData/testData.js b/src/v0/destinations/marketo_static_list/testData/testData.js new file mode 100644 index 00000000000..45328436ce7 --- /dev/null +++ b/src/v0/destinations/marketo_static_list/testData/testData.js @@ -0,0 +1,3085 @@ +const { + EXTERNAL_ID, + TOKEN, + CONTENT_TYPE, + DEST_OBJECT, + DEST_DEFINITION, + MESSAGE_SOURCES_CONTEXT, + DEST_CONFIG, +} = require('./constants'); + +const recordInputs = [ + { + destination: DEST_OBJECT, + message: { + type: 'record', + action: 'insert', + fields: { + id: 1001, + }, + channel: 'sources', + context: { + sources: MESSAGE_SOURCES_CONTEXT, + externalId: [ + { + type: EXTERNAL_ID, + id: 'id001', + }, + ], + destinationFields: 'id', + mappedToDestination: 'true', + }, + recordId: '3', + }, + metadata: { + jobId: 1, + }, + }, + { + destination: DEST_OBJECT, + message: { + type: 'record', + action: 'insert', + fields: { + id: 1002, + }, + channel: 'sources', + context: { + sources: MESSAGE_SOURCES_CONTEXT, + externalId: [ + { + type: EXTERNAL_ID, + id: 'id002', + }, + ], + destinationFields: 'id', + mappedToDestination: 'true', + }, + recordId: '3', + }, + metadata: { + jobId: 2, + }, + }, + { + destination: DEST_OBJECT, + message: { + type: 'record', + action: 'insert', + fields: { + id: 1003, + }, + channel: 'sources', + context: { + sources: MESSAGE_SOURCES_CONTEXT, + externalId: [ + { + type: EXTERNAL_ID, + id: 'id001', + }, + ], + destinationFields: 'id', + mappedToDestination: 'true', + }, + recordId: '3', + }, + metadata: { + jobId: 3, + }, + }, + { + destination: DEST_OBJECT, + message: { + action: 'delete', + context: { + destinationFields: 'id', + externalId: [ + { + id: 'id002', + type: EXTERNAL_ID, + }, + ], + mappedToDestination: 'true', + sources: { + job_id: 'sf', + job_run_id: 'ck985bve58cvnti48120', + task_run_id: 'ck985bve58cvnti4812g', + version: '', + }, + }, + recordId: '2', + rudderId: '2', + fields: { + id: '2001', + }, + type: 'record', + }, + metadata: { + jobId: 4, + }, + }, +]; + +const recordOutput = [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/id001/leads.json?id=1001&id=1003', + headers: { + Authorization: TOKEN, + 'Content-Type': CONTENT_TYPE, + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 1, + }, + { + jobId: 3, + }, + ], + batched: true, + statusCode: 200, + destination: DEST_OBJECT, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/id002/leads.json?id=2001', + headers: { + Authorization: TOKEN, + 'Content-Type': CONTENT_TYPE, + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 4, + }, + ], + batched: true, + statusCode: 200, + destination: DEST_OBJECT, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/id002/leads.json?id=1002', + headers: { + Authorization: TOKEN, + 'Content-Type': CONTENT_TYPE, + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 2, + }, + ], + batched: true, + statusCode: 200, + destination: DEST_OBJECT, + }, +]; + +const audiencelistInputs = [ + { + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo', + DestinationDefinition: DEST_DEFINITION, + Config: DEST_CONFIG, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + id: 501, + }, + { + id: 502, + }, + { + id: 503, + }, + ], + remove: [ + { + id: 704, + }, + { + id: 705, + }, + { + id: 706, + }, + ], + }, + enablePartialFailure: true, + }, + context: { + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 1, + }, + }, + { + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo', + DestinationDefinition: DEST_DEFINITION, + Config: DEST_CONFIG, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + id: 0, + }, + { + id: 1, + }, + { + id: 2, + }, + { + id: 3, + }, + { + id: 4, + }, + { + id: 5, + }, + { + id: 6, + }, + { + id: 7, + }, + { + id: 8, + }, + { + id: 9, + }, + { + id: 10, + }, + { + id: 11, + }, + { + id: 12, + }, + { + id: 13, + }, + { + id: 14, + }, + { + id: 15, + }, + { + id: 16, + }, + { + id: 17, + }, + { + id: 18, + }, + { + id: 19, + }, + { + id: 20, + }, + { + id: 21, + }, + { + id: 22, + }, + { + id: 23, + }, + { + id: 24, + }, + { + id: 25, + }, + { + id: 26, + }, + { + id: 27, + }, + { + id: 28, + }, + { + id: 29, + }, + { + id: 30, + }, + { + id: 31, + }, + { + id: 32, + }, + { + id: 33, + }, + { + id: 34, + }, + { + id: 35, + }, + { + id: 36, + }, + { + id: 37, + }, + { + id: 38, + }, + { + id: 39, + }, + { + id: 40, + }, + { + id: 41, + }, + { + id: 42, + }, + { + id: 43, + }, + { + id: 44, + }, + { + id: 45, + }, + { + id: 46, + }, + { + id: 47, + }, + { + id: 48, + }, + { + id: 49, + }, + { + id: 50, + }, + { + id: 51, + }, + { + id: 52, + }, + { + id: 53, + }, + { + id: 54, + }, + { + id: 55, + }, + { + id: 56, + }, + { + id: 57, + }, + { + id: 58, + }, + { + id: 59, + }, + { + id: 60, + }, + { + id: 61, + }, + { + id: 62, + }, + { + id: 63, + }, + { + id: 64, + }, + { + id: 65, + }, + { + id: 66, + }, + { + id: 67, + }, + { + id: 68, + }, + { + id: 69, + }, + { + id: 70, + }, + { + id: 71, + }, + { + id: 72, + }, + { + id: 73, + }, + { + id: 74, + }, + { + id: 75, + }, + { + id: 76, + }, + { + id: 77, + }, + { + id: 78, + }, + { + id: 79, + }, + { + id: 80, + }, + { + id: 81, + }, + { + id: 82, + }, + { + id: 83, + }, + { + id: 84, + }, + { + id: 85, + }, + { + id: 86, + }, + { + id: 87, + }, + { + id: 88, + }, + { + id: 89, + }, + { + id: 90, + }, + { + id: 91, + }, + { + id: 92, + }, + { + id: 93, + }, + { + id: 94, + }, + { + id: 95, + }, + { + id: 96, + }, + { + id: 97, + }, + { + id: 98, + }, + { + id: 99, + }, + { + id: 100, + }, + { + id: 101, + }, + { + id: 102, + }, + { + id: 103, + }, + { + id: 104, + }, + { + id: 105, + }, + { + id: 106, + }, + { + id: 107, + }, + { + id: 108, + }, + { + id: 109, + }, + { + id: 110, + }, + { + id: 111, + }, + { + id: 112, + }, + { + id: 113, + }, + { + id: 114, + }, + { + id: 115, + }, + { + id: 116, + }, + { + id: 117, + }, + { + id: 118, + }, + { + id: 119, + }, + { + id: 120, + }, + { + id: 121, + }, + { + id: 122, + }, + { + id: 123, + }, + { + id: 124, + }, + { + id: 125, + }, + { + id: 126, + }, + { + id: 127, + }, + { + id: 128, + }, + { + id: 129, + }, + { + id: 130, + }, + { + id: 131, + }, + { + id: 132, + }, + { + id: 133, + }, + { + id: 134, + }, + { + id: 135, + }, + { + id: 136, + }, + { + id: 137, + }, + { + id: 138, + }, + { + id: 139, + }, + { + id: 140, + }, + { + id: 141, + }, + { + id: 142, + }, + { + id: 143, + }, + { + id: 144, + }, + { + id: 145, + }, + { + id: 146, + }, + { + id: 147, + }, + { + id: 148, + }, + { + id: 149, + }, + { + id: 150, + }, + { + id: 151, + }, + { + id: 152, + }, + { + id: 153, + }, + { + id: 154, + }, + { + id: 155, + }, + { + id: 156, + }, + { + id: 157, + }, + { + id: 158, + }, + { + id: 159, + }, + { + id: 160, + }, + { + id: 161, + }, + { + id: 162, + }, + { + id: 163, + }, + { + id: 164, + }, + { + id: 165, + }, + { + id: 166, + }, + { + id: 167, + }, + { + id: 168, + }, + { + id: 169, + }, + { + id: 170, + }, + { + id: 171, + }, + { + id: 172, + }, + { + id: 173, + }, + { + id: 174, + }, + { + id: 175, + }, + { + id: 176, + }, + { + id: 177, + }, + { + id: 178, + }, + { + id: 179, + }, + { + id: 180, + }, + { + id: 181, + }, + { + id: 182, + }, + { + id: 183, + }, + { + id: 184, + }, + { + id: 185, + }, + { + id: 186, + }, + { + id: 187, + }, + { + id: 188, + }, + { + id: 189, + }, + { + id: 190, + }, + { + id: 191, + }, + { + id: 192, + }, + { + id: 193, + }, + { + id: 194, + }, + { + id: 195, + }, + { + id: 196, + }, + { + id: 197, + }, + { + id: 198, + }, + { + id: 199, + }, + { + id: 200, + }, + { + id: 201, + }, + { + id: 202, + }, + { + id: 203, + }, + { + id: 204, + }, + { + id: 205, + }, + { + id: 206, + }, + { + id: 207, + }, + { + id: 208, + }, + { + id: 209, + }, + { + id: 210, + }, + { + id: 211, + }, + { + id: 212, + }, + { + id: 213, + }, + { + id: 214, + }, + { + id: 215, + }, + { + id: 216, + }, + { + id: 217, + }, + { + id: 218, + }, + { + id: 219, + }, + { + id: 220, + }, + { + id: 221, + }, + { + id: 222, + }, + { + id: 223, + }, + { + id: 224, + }, + { + id: 225, + }, + { + id: 226, + }, + { + id: 227, + }, + { + id: 228, + }, + { + id: 229, + }, + { + id: 230, + }, + { + id: 231, + }, + { + id: 232, + }, + { + id: 233, + }, + { + id: 234, + }, + { + id: 235, + }, + { + id: 236, + }, + { + id: 237, + }, + { + id: 238, + }, + { + id: 239, + }, + { + id: 240, + }, + { + id: 241, + }, + { + id: 242, + }, + { + id: 243, + }, + { + id: 244, + }, + { + id: 245, + }, + { + id: 246, + }, + { + id: 247, + }, + { + id: 248, + }, + { + id: 249, + }, + { + id: 250, + }, + { + id: 251, + }, + { + id: 252, + }, + { + id: 253, + }, + { + id: 254, + }, + { + id: 255, + }, + { + id: 256, + }, + { + id: 257, + }, + { + id: 258, + }, + { + id: 259, + }, + { + id: 260, + }, + { + id: 261, + }, + { + id: 262, + }, + { + id: 263, + }, + { + id: 264, + }, + { + id: 265, + }, + { + id: 266, + }, + { + id: 267, + }, + { + id: 268, + }, + { + id: 269, + }, + { + id: 270, + }, + { + id: 271, + }, + { + id: 272, + }, + { + id: 273, + }, + { + id: 274, + }, + { + id: 275, + }, + { + id: 276, + }, + { + id: 277, + }, + { + id: 278, + }, + { + id: 279, + }, + { + id: 280, + }, + { + id: 281, + }, + { + id: 282, + }, + { + id: 283, + }, + { + id: 284, + }, + { + id: 285, + }, + { + id: 286, + }, + { + id: 287, + }, + { + id: 288, + }, + { + id: 289, + }, + { + id: 290, + }, + { + id: 291, + }, + { + id: 292, + }, + { + id: 293, + }, + { + id: 294, + }, + { + id: 295, + }, + { + id: 296, + }, + { + id: 297, + }, + { + id: 298, + }, + { + id: 299, + }, + { + id: 300, + }, + { + id: 301, + }, + { + id: 302, + }, + { + id: 303, + }, + { + id: 304, + }, + { + id: 305, + }, + { + id: 306, + }, + { + id: 307, + }, + { + id: 308, + }, + { + id: 309, + }, + { + id: 310, + }, + { + id: 311, + }, + { + id: 312, + }, + { + id: 313, + }, + { + id: 314, + }, + { + id: 315, + }, + { + id: 316, + }, + { + id: 317, + }, + { + id: 318, + }, + { + id: 319, + }, + { + id: 320, + }, + { + id: 321, + }, + { + id: 322, + }, + { + id: 323, + }, + { + id: 324, + }, + { + id: 325, + }, + { + id: 326, + }, + { + id: 327, + }, + { + id: 328, + }, + { + id: 329, + }, + { + id: 330, + }, + { + id: 331, + }, + { + id: 332, + }, + { + id: 333, + }, + { + id: 334, + }, + { + id: 335, + }, + { + id: 336, + }, + { + id: 337, + }, + { + id: 338, + }, + { + id: 339, + }, + { + id: 340, + }, + { + id: 341, + }, + { + id: 342, + }, + { + id: 343, + }, + { + id: 344, + }, + { + id: 345, + }, + { + id: 346, + }, + { + id: 347, + }, + { + id: 348, + }, + { + id: 349, + }, + { + id: 350, + }, + ], + }, + enablePartialFailure: true, + }, + context: { + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 2, + }, + }, +]; + +const reqMetadata = { + namespace: 'Unknown', + cluster: 'Unknown', + features: {}, +}; + +const largeRecordOutput = [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1122/leads.json?id=351&id=352&id=353&id=354&id=355&id=356&id=357&id=358&id=359&id=360&id=361&id=362&id=363&id=364&id=365&id=366&id=367&id=368&id=369&id=370&id=371&id=372&id=373&id=374&id=375&id=376&id=377&id=378&id=379&id=380&id=381&id=382&id=383&id=384&id=385&id=386&id=387&id=388&id=389&id=390&id=391&id=392&id=393&id=394&id=395&id=396&id=397&id=398&id=399&id=400&id=401&id=402&id=403&id=404&id=405&id=406&id=407&id=408&id=409&id=410&id=411&id=412&id=413&id=414&id=415&id=416&id=417&id=418&id=419&id=420&id=421&id=422&id=423&id=424&id=425&id=426&id=427&id=428&id=429&id=430&id=431&id=432&id=433&id=434&id=435&id=436&id=437&id=438&id=439&id=440&id=441&id=442&id=443&id=444&id=445&id=446&id=447&id=448&id=449&id=450', + headers: { + Authorization: TOKEN, + 'Content-Type': CONTENT_TYPE, + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 351, + }, + { + jobId: 352, + }, + { + jobId: 353, + }, + { + jobId: 354, + }, + { + jobId: 355, + }, + { + jobId: 356, + }, + { + jobId: 357, + }, + { + jobId: 358, + }, + { + jobId: 359, + }, + { + jobId: 360, + }, + { + jobId: 361, + }, + { + jobId: 362, + }, + { + jobId: 363, + }, + { + jobId: 364, + }, + { + jobId: 365, + }, + { + jobId: 366, + }, + { + jobId: 367, + }, + { + jobId: 368, + }, + { + jobId: 369, + }, + { + jobId: 370, + }, + { + jobId: 371, + }, + { + jobId: 372, + }, + { + jobId: 373, + }, + { + jobId: 374, + }, + { + jobId: 375, + }, + { + jobId: 376, + }, + { + jobId: 377, + }, + { + jobId: 378, + }, + { + jobId: 379, + }, + { + jobId: 380, + }, + { + jobId: 381, + }, + { + jobId: 382, + }, + { + jobId: 383, + }, + { + jobId: 384, + }, + { + jobId: 385, + }, + { + jobId: 386, + }, + { + jobId: 387, + }, + { + jobId: 388, + }, + { + jobId: 389, + }, + { + jobId: 390, + }, + { + jobId: 391, + }, + { + jobId: 392, + }, + { + jobId: 393, + }, + { + jobId: 394, + }, + { + jobId: 395, + }, + { + jobId: 396, + }, + { + jobId: 397, + }, + { + jobId: 398, + }, + { + jobId: 399, + }, + { + jobId: 400, + }, + { + jobId: 401, + }, + { + jobId: 402, + }, + { + jobId: 403, + }, + { + jobId: 404, + }, + { + jobId: 405, + }, + { + jobId: 406, + }, + { + jobId: 407, + }, + { + jobId: 408, + }, + { + jobId: 409, + }, + { + jobId: 410, + }, + { + jobId: 411, + }, + { + jobId: 412, + }, + { + jobId: 413, + }, + { + jobId: 414, + }, + { + jobId: 415, + }, + { + jobId: 416, + }, + { + jobId: 417, + }, + { + jobId: 418, + }, + { + jobId: 419, + }, + { + jobId: 420, + }, + { + jobId: 421, + }, + { + jobId: 422, + }, + { + jobId: 423, + }, + { + jobId: 424, + }, + { + jobId: 425, + }, + { + jobId: 426, + }, + { + jobId: 427, + }, + { + jobId: 428, + }, + { + jobId: 429, + }, + { + jobId: 430, + }, + { + jobId: 431, + }, + { + jobId: 432, + }, + { + jobId: 433, + }, + { + jobId: 434, + }, + { + jobId: 435, + }, + { + jobId: 436, + }, + { + jobId: 437, + }, + { + jobId: 438, + }, + { + jobId: 439, + }, + { + jobId: 440, + }, + { + jobId: 441, + }, + { + jobId: 442, + }, + { + jobId: 443, + }, + { + jobId: 444, + }, + { + jobId: 445, + }, + { + jobId: 446, + }, + { + jobId: 447, + }, + { + jobId: 448, + }, + { + jobId: 449, + }, + { + jobId: 450, + }, + ], + batched: true, + statusCode: 200, + destination: DEST_OBJECT, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1122/leads.json?id=1&id=2&id=3&id=4&id=5&id=6&id=7&id=8&id=9&id=10&id=11&id=12&id=13&id=14&id=15&id=16&id=17&id=18&id=19&id=20&id=21&id=22&id=23&id=24&id=25&id=26&id=27&id=28&id=29&id=30&id=31&id=32&id=33&id=34&id=35&id=36&id=37&id=38&id=39&id=40&id=41&id=42&id=43&id=44&id=45&id=46&id=47&id=48&id=49&id=50&id=51&id=52&id=53&id=54&id=55&id=56&id=57&id=58&id=59&id=60&id=61&id=62&id=63&id=64&id=65&id=66&id=67&id=68&id=69&id=70&id=71&id=72&id=73&id=74&id=75&id=76&id=77&id=78&id=79&id=80&id=81&id=82&id=83&id=84&id=85&id=86&id=87&id=88&id=89&id=90&id=91&id=92&id=93&id=94&id=95&id=96&id=97&id=98&id=99&id=100&id=101&id=102&id=103&id=104&id=105&id=106&id=107&id=108&id=109&id=110&id=111&id=112&id=113&id=114&id=115&id=116&id=117&id=118&id=119&id=120&id=121&id=122&id=123&id=124&id=125&id=126&id=127&id=128&id=129&id=130&id=131&id=132&id=133&id=134&id=135&id=136&id=137&id=138&id=139&id=140&id=141&id=142&id=143&id=144&id=145&id=146&id=147&id=148&id=149&id=150&id=151&id=152&id=153&id=154&id=155&id=156&id=157&id=158&id=159&id=160&id=161&id=162&id=163&id=164&id=165&id=166&id=167&id=168&id=169&id=170&id=171&id=172&id=173&id=174&id=175&id=176&id=177&id=178&id=179&id=180&id=181&id=182&id=183&id=184&id=185&id=186&id=187&id=188&id=189&id=190&id=191&id=192&id=193&id=194&id=195&id=196&id=197&id=198&id=199&id=200&id=201&id=202&id=203&id=204&id=205&id=206&id=207&id=208&id=209&id=210&id=211&id=212&id=213&id=214&id=215&id=216&id=217&id=218&id=219&id=220&id=221&id=222&id=223&id=224&id=225&id=226&id=227&id=228&id=229&id=230&id=231&id=232&id=233&id=234&id=235&id=236&id=237&id=238&id=239&id=240&id=241&id=242&id=243&id=244&id=245&id=246&id=247&id=248&id=249&id=250&id=251&id=252&id=253&id=254&id=255&id=256&id=257&id=258&id=259&id=260&id=261&id=262&id=263&id=264&id=265&id=266&id=267&id=268&id=269&id=270&id=271&id=272&id=273&id=274&id=275&id=276&id=277&id=278&id=279&id=280&id=281&id=282&id=283&id=284&id=285&id=286&id=287&id=288&id=289&id=290&id=291&id=292&id=293&id=294&id=295&id=296&id=297&id=298&id=299&id=300', + headers: { + Authorization: TOKEN, + 'Content-Type': CONTENT_TYPE, + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1122/leads.json?id=301&id=302&id=303&id=304&id=305&id=306&id=307&id=308&id=309&id=310&id=311&id=312&id=313&id=314&id=315&id=316&id=317&id=318&id=319&id=320&id=321&id=322&id=323&id=324&id=325&id=326&id=327&id=328&id=329&id=330&id=331&id=332&id=333&id=334&id=335&id=336&id=337&id=338&id=339&id=340&id=341&id=342&id=343&id=344&id=345&id=346&id=347&id=348&id=349&id=350', + headers: { + Authorization: TOKEN, + 'Content-Type': CONTENT_TYPE, + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 1, + }, + { + jobId: 2, + }, + { + jobId: 3, + }, + { + jobId: 4, + }, + { + jobId: 5, + }, + { + jobId: 6, + }, + { + jobId: 7, + }, + { + jobId: 8, + }, + { + jobId: 9, + }, + { + jobId: 10, + }, + { + jobId: 11, + }, + { + jobId: 12, + }, + { + jobId: 13, + }, + { + jobId: 14, + }, + { + jobId: 15, + }, + { + jobId: 16, + }, + { + jobId: 17, + }, + { + jobId: 18, + }, + { + jobId: 19, + }, + { + jobId: 20, + }, + { + jobId: 21, + }, + { + jobId: 22, + }, + { + jobId: 23, + }, + { + jobId: 24, + }, + { + jobId: 25, + }, + { + jobId: 26, + }, + { + jobId: 27, + }, + { + jobId: 28, + }, + { + jobId: 29, + }, + { + jobId: 30, + }, + { + jobId: 31, + }, + { + jobId: 32, + }, + { + jobId: 33, + }, + { + jobId: 34, + }, + { + jobId: 35, + }, + { + jobId: 36, + }, + { + jobId: 37, + }, + { + jobId: 38, + }, + { + jobId: 39, + }, + { + jobId: 40, + }, + { + jobId: 41, + }, + { + jobId: 42, + }, + { + jobId: 43, + }, + { + jobId: 44, + }, + { + jobId: 45, + }, + { + jobId: 46, + }, + { + jobId: 47, + }, + { + jobId: 48, + }, + { + jobId: 49, + }, + { + jobId: 50, + }, + { + jobId: 51, + }, + { + jobId: 52, + }, + { + jobId: 53, + }, + { + jobId: 54, + }, + { + jobId: 55, + }, + { + jobId: 56, + }, + { + jobId: 57, + }, + { + jobId: 58, + }, + { + jobId: 59, + }, + { + jobId: 60, + }, + { + jobId: 61, + }, + { + jobId: 62, + }, + { + jobId: 63, + }, + { + jobId: 64, + }, + { + jobId: 65, + }, + { + jobId: 66, + }, + { + jobId: 67, + }, + { + jobId: 68, + }, + { + jobId: 69, + }, + { + jobId: 70, + }, + { + jobId: 71, + }, + { + jobId: 72, + }, + { + jobId: 73, + }, + { + jobId: 74, + }, + { + jobId: 75, + }, + { + jobId: 76, + }, + { + jobId: 77, + }, + { + jobId: 78, + }, + { + jobId: 79, + }, + { + jobId: 80, + }, + { + jobId: 81, + }, + { + jobId: 82, + }, + { + jobId: 83, + }, + { + jobId: 84, + }, + { + jobId: 85, + }, + { + jobId: 86, + }, + { + jobId: 87, + }, + { + jobId: 88, + }, + { + jobId: 89, + }, + { + jobId: 90, + }, + { + jobId: 91, + }, + { + jobId: 92, + }, + { + jobId: 93, + }, + { + jobId: 94, + }, + { + jobId: 95, + }, + { + jobId: 96, + }, + { + jobId: 97, + }, + { + jobId: 98, + }, + { + jobId: 99, + }, + { + jobId: 100, + }, + { + jobId: 101, + }, + { + jobId: 102, + }, + { + jobId: 103, + }, + { + jobId: 104, + }, + { + jobId: 105, + }, + { + jobId: 106, + }, + { + jobId: 107, + }, + { + jobId: 108, + }, + { + jobId: 109, + }, + { + jobId: 110, + }, + { + jobId: 111, + }, + { + jobId: 112, + }, + { + jobId: 113, + }, + { + jobId: 114, + }, + { + jobId: 115, + }, + { + jobId: 116, + }, + { + jobId: 117, + }, + { + jobId: 118, + }, + { + jobId: 119, + }, + { + jobId: 120, + }, + { + jobId: 121, + }, + { + jobId: 122, + }, + { + jobId: 123, + }, + { + jobId: 124, + }, + { + jobId: 125, + }, + { + jobId: 126, + }, + { + jobId: 127, + }, + { + jobId: 128, + }, + { + jobId: 129, + }, + { + jobId: 130, + }, + { + jobId: 131, + }, + { + jobId: 132, + }, + { + jobId: 133, + }, + { + jobId: 134, + }, + { + jobId: 135, + }, + { + jobId: 136, + }, + { + jobId: 137, + }, + { + jobId: 138, + }, + { + jobId: 139, + }, + { + jobId: 140, + }, + { + jobId: 141, + }, + { + jobId: 142, + }, + { + jobId: 143, + }, + { + jobId: 144, + }, + { + jobId: 145, + }, + { + jobId: 146, + }, + { + jobId: 147, + }, + { + jobId: 148, + }, + { + jobId: 149, + }, + { + jobId: 150, + }, + { + jobId: 151, + }, + { + jobId: 152, + }, + { + jobId: 153, + }, + { + jobId: 154, + }, + { + jobId: 155, + }, + { + jobId: 156, + }, + { + jobId: 157, + }, + { + jobId: 158, + }, + { + jobId: 159, + }, + { + jobId: 160, + }, + { + jobId: 161, + }, + { + jobId: 162, + }, + { + jobId: 163, + }, + { + jobId: 164, + }, + { + jobId: 165, + }, + { + jobId: 166, + }, + { + jobId: 167, + }, + { + jobId: 168, + }, + { + jobId: 169, + }, + { + jobId: 170, + }, + { + jobId: 171, + }, + { + jobId: 172, + }, + { + jobId: 173, + }, + { + jobId: 174, + }, + { + jobId: 175, + }, + { + jobId: 176, + }, + { + jobId: 177, + }, + { + jobId: 178, + }, + { + jobId: 179, + }, + { + jobId: 180, + }, + { + jobId: 181, + }, + { + jobId: 182, + }, + { + jobId: 183, + }, + { + jobId: 184, + }, + { + jobId: 185, + }, + { + jobId: 186, + }, + { + jobId: 187, + }, + { + jobId: 188, + }, + { + jobId: 189, + }, + { + jobId: 190, + }, + { + jobId: 191, + }, + { + jobId: 192, + }, + { + jobId: 193, + }, + { + jobId: 194, + }, + { + jobId: 195, + }, + { + jobId: 196, + }, + { + jobId: 197, + }, + { + jobId: 198, + }, + { + jobId: 199, + }, + { + jobId: 200, + }, + { + jobId: 201, + }, + { + jobId: 202, + }, + { + jobId: 203, + }, + { + jobId: 204, + }, + { + jobId: 205, + }, + { + jobId: 206, + }, + { + jobId: 207, + }, + { + jobId: 208, + }, + { + jobId: 209, + }, + { + jobId: 210, + }, + { + jobId: 211, + }, + { + jobId: 212, + }, + { + jobId: 213, + }, + { + jobId: 214, + }, + { + jobId: 215, + }, + { + jobId: 216, + }, + { + jobId: 217, + }, + { + jobId: 218, + }, + { + jobId: 219, + }, + { + jobId: 220, + }, + { + jobId: 221, + }, + { + jobId: 222, + }, + { + jobId: 223, + }, + { + jobId: 224, + }, + { + jobId: 225, + }, + { + jobId: 226, + }, + { + jobId: 227, + }, + { + jobId: 228, + }, + { + jobId: 229, + }, + { + jobId: 230, + }, + { + jobId: 231, + }, + { + jobId: 232, + }, + { + jobId: 233, + }, + { + jobId: 234, + }, + { + jobId: 235, + }, + { + jobId: 236, + }, + { + jobId: 237, + }, + { + jobId: 238, + }, + { + jobId: 239, + }, + { + jobId: 240, + }, + { + jobId: 241, + }, + { + jobId: 242, + }, + { + jobId: 243, + }, + { + jobId: 244, + }, + { + jobId: 245, + }, + { + jobId: 246, + }, + { + jobId: 247, + }, + { + jobId: 248, + }, + { + jobId: 249, + }, + { + jobId: 250, + }, + { + jobId: 251, + }, + { + jobId: 252, + }, + { + jobId: 253, + }, + { + jobId: 254, + }, + { + jobId: 255, + }, + { + jobId: 256, + }, + { + jobId: 257, + }, + { + jobId: 258, + }, + { + jobId: 259, + }, + { + jobId: 260, + }, + { + jobId: 261, + }, + { + jobId: 262, + }, + { + jobId: 263, + }, + { + jobId: 264, + }, + { + jobId: 265, + }, + { + jobId: 266, + }, + { + jobId: 267, + }, + { + jobId: 268, + }, + { + jobId: 269, + }, + { + jobId: 270, + }, + { + jobId: 271, + }, + { + jobId: 272, + }, + { + jobId: 273, + }, + { + jobId: 274, + }, + { + jobId: 275, + }, + { + jobId: 276, + }, + { + jobId: 277, + }, + { + jobId: 278, + }, + { + jobId: 279, + }, + { + jobId: 280, + }, + { + jobId: 281, + }, + { + jobId: 282, + }, + { + jobId: 283, + }, + { + jobId: 284, + }, + { + jobId: 285, + }, + { + jobId: 286, + }, + { + jobId: 287, + }, + { + jobId: 288, + }, + { + jobId: 289, + }, + { + jobId: 290, + }, + { + jobId: 291, + }, + { + jobId: 292, + }, + { + jobId: 293, + }, + { + jobId: 294, + }, + { + jobId: 295, + }, + { + jobId: 296, + }, + { + jobId: 297, + }, + { + jobId: 298, + }, + { + jobId: 299, + }, + { + jobId: 300, + }, + { + jobId: 301, + }, + { + jobId: 302, + }, + { + jobId: 303, + }, + { + jobId: 304, + }, + { + jobId: 305, + }, + { + jobId: 306, + }, + { + jobId: 307, + }, + { + jobId: 308, + }, + { + jobId: 309, + }, + { + jobId: 310, + }, + { + jobId: 311, + }, + { + jobId: 312, + }, + { + jobId: 313, + }, + { + jobId: 314, + }, + { + jobId: 315, + }, + { + jobId: 316, + }, + { + jobId: 317, + }, + { + jobId: 318, + }, + { + jobId: 319, + }, + { + jobId: 320, + }, + { + jobId: 321, + }, + { + jobId: 322, + }, + { + jobId: 323, + }, + { + jobId: 324, + }, + { + jobId: 325, + }, + { + jobId: 326, + }, + { + jobId: 327, + }, + { + jobId: 328, + }, + { + jobId: 329, + }, + { + jobId: 330, + }, + { + jobId: 331, + }, + { + jobId: 332, + }, + { + jobId: 333, + }, + { + jobId: 334, + }, + { + jobId: 335, + }, + { + jobId: 336, + }, + { + jobId: 337, + }, + { + jobId: 338, + }, + { + jobId: 339, + }, + { + jobId: 340, + }, + { + jobId: 341, + }, + { + jobId: 342, + }, + { + jobId: 343, + }, + { + jobId: 344, + }, + { + jobId: 345, + }, + { + jobId: 346, + }, + { + jobId: 347, + }, + { + jobId: 348, + }, + { + jobId: 349, + }, + { + jobId: 350, + }, + ], + batched: true, + statusCode: 200, + destination: DEST_OBJECT, + }, +]; + +const mixedBatchOutput = [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1122/leads.json?id=911&id=912&id=913&id=914&id=915&id=916&id=917&id=918&id=919&id=920', + headers: { + Authorization: TOKEN, + 'Content-Type': CONTENT_TYPE, + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 911, + }, + { + jobId: 912, + }, + { + jobId: 913, + }, + { + jobId: 914, + }, + { + jobId: 915, + }, + { + jobId: 916, + }, + { + jobId: 917, + }, + { + jobId: 918, + }, + { + jobId: 919, + }, + { + jobId: 920, + }, + ], + batched: true, + statusCode: 200, + destination: DEST_OBJECT, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1122/leads.json?id=901&id=902&id=903&id=904&id=905&id=906&id=907&id=908&id=909&id=910', + headers: { + Authorization: TOKEN, + 'Content-Type': CONTENT_TYPE, + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 901, + }, + { + jobId: 902, + }, + { + jobId: 903, + }, + { + jobId: 904, + }, + { + jobId: 905, + }, + { + jobId: 906, + }, + { + jobId: 907, + }, + { + jobId: 908, + }, + { + jobId: 909, + }, + { + jobId: 910, + }, + ], + batched: true, + statusCode: 200, + destination: DEST_OBJECT, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=704&id=705&id=706', + headers: { + Authorization: TOKEN, + 'Content-Type': CONTENT_TYPE, + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=501&id=502&id=503', + headers: { + Authorization: TOKEN, + 'Content-Type': CONTENT_TYPE, + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo', + DestinationDefinition: DEST_DEFINITION, + Config: DEST_CONFIG, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=0&id=1&id=2&id=3&id=4&id=5&id=6&id=7&id=8&id=9&id=10&id=11&id=12&id=13&id=14&id=15&id=16&id=17&id=18&id=19&id=20&id=21&id=22&id=23&id=24&id=25&id=26&id=27&id=28&id=29&id=30&id=31&id=32&id=33&id=34&id=35&id=36&id=37&id=38&id=39&id=40&id=41&id=42&id=43&id=44&id=45&id=46&id=47&id=48&id=49&id=50&id=51&id=52&id=53&id=54&id=55&id=56&id=57&id=58&id=59&id=60&id=61&id=62&id=63&id=64&id=65&id=66&id=67&id=68&id=69&id=70&id=71&id=72&id=73&id=74&id=75&id=76&id=77&id=78&id=79&id=80&id=81&id=82&id=83&id=84&id=85&id=86&id=87&id=88&id=89&id=90&id=91&id=92&id=93&id=94&id=95&id=96&id=97&id=98&id=99&id=100&id=101&id=102&id=103&id=104&id=105&id=106&id=107&id=108&id=109&id=110&id=111&id=112&id=113&id=114&id=115&id=116&id=117&id=118&id=119&id=120&id=121&id=122&id=123&id=124&id=125&id=126&id=127&id=128&id=129&id=130&id=131&id=132&id=133&id=134&id=135&id=136&id=137&id=138&id=139&id=140&id=141&id=142&id=143&id=144&id=145&id=146&id=147&id=148&id=149&id=150&id=151&id=152&id=153&id=154&id=155&id=156&id=157&id=158&id=159&id=160&id=161&id=162&id=163&id=164&id=165&id=166&id=167&id=168&id=169&id=170&id=171&id=172&id=173&id=174&id=175&id=176&id=177&id=178&id=179&id=180&id=181&id=182&id=183&id=184&id=185&id=186&id=187&id=188&id=189&id=190&id=191&id=192&id=193&id=194&id=195&id=196&id=197&id=198&id=199&id=200&id=201&id=202&id=203&id=204&id=205&id=206&id=207&id=208&id=209&id=210&id=211&id=212&id=213&id=214&id=215&id=216&id=217&id=218&id=219&id=220&id=221&id=222&id=223&id=224&id=225&id=226&id=227&id=228&id=229&id=230&id=231&id=232&id=233&id=234&id=235&id=236&id=237&id=238&id=239&id=240&id=241&id=242&id=243&id=244&id=245&id=246&id=247&id=248&id=249&id=250&id=251&id=252&id=253&id=254&id=255&id=256&id=257&id=258&id=259&id=260&id=261&id=262&id=263&id=264&id=265&id=266&id=267&id=268&id=269&id=270&id=271&id=272&id=273&id=274&id=275&id=276&id=277&id=278&id=279&id=280&id=281&id=282&id=283&id=284&id=285&id=286&id=287&id=288&id=289&id=290&id=291&id=292&id=293&id=294&id=295&id=296&id=297&id=298&id=299', + headers: { + Authorization: TOKEN, + 'Content-Type': CONTENT_TYPE, + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=300&id=301&id=302&id=303&id=304&id=305&id=306&id=307&id=308&id=309&id=310&id=311&id=312&id=313&id=314&id=315&id=316&id=317&id=318&id=319&id=320&id=321&id=322&id=323&id=324&id=325&id=326&id=327&id=328&id=329&id=330&id=331&id=332&id=333&id=334&id=335&id=336&id=337&id=338&id=339&id=340&id=341&id=342&id=343&id=344&id=345&id=346&id=347&id=348&id=349&id=350', + headers: { + Authorization: TOKEN, + 'Content-Type': CONTENT_TYPE, + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo', + DestinationDefinition: DEST_DEFINITION, + Config: DEST_CONFIG, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, +]; + +const recordEventGenerator = (id, action, externalId) => { + // this function is used to generate record events for testing + const testRecordEvent = { + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: DEST_DEFINITION, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + type: 'record', + action, + fields: { + id, + }, + channel: 'sources', + context: { + sources: MESSAGE_SOURCES_CONTEXT, + externalId: [ + { + type: EXTERNAL_ID, + id: externalId, + }, + ], + destinationFields: 'id', + mappedToDestination: 'true', + }, + recordId: '3', + }, + metadata: { + jobId: id, + }, + }; + return testRecordEvent; +}; + +module.exports = { + recordInputs, + audiencelistInputs, + reqMetadata, + recordOutput, + largeRecordOutput, + mixedBatchOutput, + recordEventGenerator, +}; diff --git a/src/v0/destinations/marketo_static_list/transform.js b/src/v0/destinations/marketo_static_list/transform.js index 7175b5241fb..294e34f91bc 100644 --- a/src/v0/destinations/marketo_static_list/transform.js +++ b/src/v0/destinations/marketo_static_list/transform.js @@ -1,9 +1,11 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const cloneDeep = require('lodash/cloneDeep'); +const { InstrumentationError, UnauthorizedError } = require('@rudderstack/integrations-lib'); const { defaultPostRequestConfig, defaultDeleteRequestConfig, generateErrorObject, + simpleProcessRouterDest, } = require('../../util'); const { AUTH_CACHE_TTL, JSON_MIME_TYPE } = require('../../util/constant'); const { getIds, validateMessageType } = require('./util'); @@ -11,12 +13,11 @@ const { getDestinationExternalID, defaultRequestConfig, getErrorRespEvents, - simpleProcessRouterDest, } = require('../../util'); const { formatConfig, MAX_LEAD_IDS_SIZE } = require('./config'); const Cache = require('../../util/cache'); const { getAuthToken } = require('../marketo/transform'); -const { InstrumentationError, UnauthorizedError } = require('../../util/errorTypes'); +const { processRecordInputs } = require('./transformV2'); const authCache = new Cache(AUTH_CACHE_TTL); // 1 hr @@ -50,15 +51,15 @@ const batchResponseBuilder = (message, Config, token, leadIds, operation) => { throw new InstrumentationError('No static listId is provided'); } const response = []; - const leadIdsChunks = _.chunk(leadIds, MAX_LEAD_IDS_SIZE); + const leadIdsChunks = lodash.chunk(leadIds, MAX_LEAD_IDS_SIZE); leadIdsChunks.forEach((ids) => { response.push(responseBuilder(endpoint, ids, operation, token)); }); return response; }; -const processEvent = (input) => { - const { token, message, destination } = input; +const processEvent = (event) => { + const { token, message, destination } = event; const { Config } = destination; validateMessageType(message, ['audiencelist']); const response = []; @@ -70,77 +71,92 @@ const processEvent = (input) => { if (message.properties?.listData?.remove) { toRemove = getIds(message.properties.listData.remove); } - if ( - (Array.isArray(toAdd) && toAdd.length > 0) || - (Array.isArray(toRemove) && toRemove.length > 0) - ) { - if (Array.isArray(toAdd) && toAdd.length > 0) { - const payload = batchResponseBuilder(message, Config, token, toAdd, 'add'); - if (payload) { - response.push(...payload); - } + if (Array.isArray(toRemove) && toRemove.length > 0) { + const payload = batchResponseBuilder(message, Config, token, toRemove, 'remove'); + if (payload) { + response.push(...payload); } - if (Array.isArray(toRemove) && toRemove.length > 0) { - const payload = batchResponseBuilder(message, Config, token, toRemove, 'remove'); - if (payload) { - response.push(...payload); - } + } + if (Array.isArray(toAdd) && toAdd.length > 0) { + const payload = batchResponseBuilder(message, Config, token, toAdd, 'add'); + if (payload) { + response.push(...payload); } - } else { + } + if (response.length === 0) { throw new InstrumentationError( 'Invalid leadIds format or no leadIds found neither to add nor to remove', ); } return response; }; -const process = async (event) => { - const token = await getAuthToken(formatConfig(event.destination)); +// eslint-disable-next-line @typescript-eslint/no-unused-vars +const process = async (event, _processParams) => { + const token = await getAuthToken(formatConfig(event.destination)); if (!token) { throw new UnauthorizedError('Authorization failed'); } - const response = processEvent({ ...event, token }); + const updatedEvent = { ...event, token }; + const response = processEvent(updatedEvent); return response; }; const processRouterDest = async (inputs, reqMetadata) => { // Token needs to be generated for marketo which will be done on input level. // If destination information is not present Error should be thrown - let token; + + const { destination } = inputs[0]; try { - token = await getAuthToken(formatConfig(inputs[0].destination)); + const token = await getAuthToken(formatConfig(destination)); if (!token) { - const errResp = { - status: 400, - message: 'Authorisation failed', - responseTransformFailure: true, - statTags: {}, - }; - const respEvents = getErrorRespEvents( - inputs.map((input) => input.metadata), - errResp.status, - errResp.message, - errResp.statTags, - ); - return [{ ...respEvents, destination: inputs?.[0]?.destination }]; + throw new UnauthorizedError('Could not retrieve authorisation token'); } } catch (error) { - // Not using handleRtTfSingleEventError here as this is for multiple events - const errObj = generateErrorObject(error); - const respEvents = getErrorRespEvents( - inputs.map((input) => input.metadata), - errObj.status, - errObj.message, - errObj.statTags, + const errorObj = generateErrorObject(error); + const errResponses = inputs.map((input) => + getErrorRespEvents(input.metadata, errorObj.status, errorObj.message, errorObj.statTags), ); - return [{ ...respEvents, destination: inputs?.[0]?.destination }]; + + return errResponses; } - // Checking previous status Code. Initially setting to false. - // If true then previous status is 500 and every subsequent event output should be - // sent with status code 500 to the router to be retried. - const tokenisedInputs = inputs.map((input) => ({ ...input, token })); - const respList = await simpleProcessRouterDest(tokenisedInputs, processEvent, reqMetadata); + // use lodash.groupby to group the inputs based on message type + const transformedRecordEvent = []; + let transformedAudienceEvent = []; + const groupedInputs = lodash.groupBy(inputs, (input) => input.message.type?.toLowerCase()); + + const respList = []; + // process record events + if (groupedInputs.record) { + const groupedRecordInputs = groupedInputs.record; + const { staticListId } = destination.Config; + const externalIdGroupedRecordInputs = lodash.groupBy( + groupedRecordInputs, + (input) => getDestinationExternalID(input.message, 'marketoStaticListId') || staticListId, + ); + const alltransformedGroupedRecordEvent = await Promise.all( + Object.keys(externalIdGroupedRecordInputs).map(async (key) => { + const transformedGroupedRecordEvent = await processRecordInputs( + externalIdGroupedRecordInputs[key], + destination, + key, + ); + return transformedGroupedRecordEvent; + }), + ); + + transformedRecordEvent.push(...alltransformedGroupedRecordEvent.flat()); + } + // process audiencelist events + if (groupedInputs.audiencelist) { + transformedAudienceEvent = await simpleProcessRouterDest( + groupedInputs.audiencelist, + process, + reqMetadata, + ); + } + respList.push(...transformedRecordEvent, ...transformedAudienceEvent); return respList; }; @@ -152,16 +168,20 @@ const processRouterDest = async (inputs, reqMetadata) => { function processMetadataForRouter(output) { const { metadata, destination } = output; const clonedMetadata = cloneDeep(metadata); - clonedMetadata.forEach((metadataElement) => { - // eslint-disable-next-line no-param-reassign - metadataElement.destInfo = { authKey: destination.ID }; - }); + if (Array.isArray(clonedMetadata)) { + clonedMetadata.forEach((metadataElement) => { + // eslint-disable-next-line no-param-reassign + metadataElement.destInfo = { authKey: destination?.ID }; + }); + } return clonedMetadata; } module.exports = { process, + processEvent, processRouterDest, processMetadataForRouter, authCache, + batchResponseBuilder, }; diff --git a/src/v0/destinations/marketo_static_list/transform.test.js b/src/v0/destinations/marketo_static_list/transform.test.js new file mode 100644 index 00000000000..3c387c42957 --- /dev/null +++ b/src/v0/destinations/marketo_static_list/transform.test.js @@ -0,0 +1,138 @@ +const { processRouterDest } = require('./transform'); +const axios = require('axios'); +const MockAxiosAdapter = require('axios-mock-adapter'); +const { + recordInputs, + audiencelistInputs, + reqMetadata, + recordOutput, + largeRecordOutput, + mixedBatchOutput, + recordEventGenerator, +} = require('./testData/testData'); + +const mockAdapter = new MockAxiosAdapter(axios, { onNoMatch: 'throwException' }); +beforeAll(() => { + mockAdapter + .onGet('https://marketo_acct_id_success.mktorest.com/identity/oauth/token') + .reply(200, { access_token: 'access_token_success' }); +}); +describe('Unit cases covering the router flow for both record and audiencelist event types', () => { + it('Sending a small batch of only record events (4 events)', async () => { + const inputs = recordInputs; + const result = await processRouterDest(inputs, reqMetadata); + + // assert that the result is as expected + expect(result.length).toEqual(3); + expect(result[0].batchedRequest.length).toEqual(1); // 1 batched request for 2 record events + expect(result[1].batchedRequest.length).toEqual(1); // 1 batched request for 1 record events + expect(result[2].batchedRequest.length).toEqual(1); // 1 batched request for 1 record events + expect(result[0].batchedRequest[0].endpoint).toEqual( + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/id001/leads.json?id=1001&id=1003', + ); // 1 api call for 2 leadIds + expect(result[1].batchedRequest[0].endpoint).toEqual( + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/id002/leads.json?id=2001', + ); // 1 api call for 1 leadId + expect(result[2].batchedRequest[0].endpoint).toEqual( + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/id002/leads.json?id=1002', + ); // 1 api call for 1 leadId + expect(result[1].batchedRequest[0].method).toEqual('DELETE'); // DELETE requests are sent first + expect(result[0].metadata.length).toEqual(2); // 2 metadata objects for 2 record events + expect(result[1].metadata.length).toEqual(1); // 1 metadata object for 1 record event + expect(result[2].metadata.length).toEqual(1); // 1 metadata object for 1 record event + expect(result).toEqual(recordOutput); // overall result should be equal to the expected output + }); + + it('Sending a large batch of only record events (450 events: 350 inserts | 100 deletes )', async () => { + const largeRecordInputs = []; + for (let index = 0; index < 350; index++) { + largeRecordInputs.push(recordEventGenerator(index + 1, 'insert', 1122)); + } + for (let index = 350; index < 450; index++) { + largeRecordInputs.push(recordEventGenerator(index + 1, 'delete', 1122)); + } + const result = await processRouterDest(largeRecordInputs, reqMetadata); + + // assert that the result is as expected + /* + Total 3 API calls + 1. 1 API call for 100 DELETE requests + 2. 1 API call for 100 POST requests = limit reached for Marketo, leads split to next API call + 3. 1 API call for 50 POST requests + */ + expect(result.length).toEqual(2); + expect(result[0].batchedRequest.length).toEqual(1); // 1 batched request for 1 record event + expect(result[1].batchedRequest.length).toEqual(2); // 1 batched request for 2 record events + expect(result[0].batchedRequest[0].endpoint).toEqual( + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1122/leads.json?id=351&id=352&id=353&id=354&id=355&id=356&id=357&id=358&id=359&id=360&id=361&id=362&id=363&id=364&id=365&id=366&id=367&id=368&id=369&id=370&id=371&id=372&id=373&id=374&id=375&id=376&id=377&id=378&id=379&id=380&id=381&id=382&id=383&id=384&id=385&id=386&id=387&id=388&id=389&id=390&id=391&id=392&id=393&id=394&id=395&id=396&id=397&id=398&id=399&id=400&id=401&id=402&id=403&id=404&id=405&id=406&id=407&id=408&id=409&id=410&id=411&id=412&id=413&id=414&id=415&id=416&id=417&id=418&id=419&id=420&id=421&id=422&id=423&id=424&id=425&id=426&id=427&id=428&id=429&id=430&id=431&id=432&id=433&id=434&id=435&id=436&id=437&id=438&id=439&id=440&id=441&id=442&id=443&id=444&id=445&id=446&id=447&id=448&id=449&id=450', + ); + expect(result[1].batchedRequest[0].endpoint).toEqual( + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1122/leads.json?id=1&id=2&id=3&id=4&id=5&id=6&id=7&id=8&id=9&id=10&id=11&id=12&id=13&id=14&id=15&id=16&id=17&id=18&id=19&id=20&id=21&id=22&id=23&id=24&id=25&id=26&id=27&id=28&id=29&id=30&id=31&id=32&id=33&id=34&id=35&id=36&id=37&id=38&id=39&id=40&id=41&id=42&id=43&id=44&id=45&id=46&id=47&id=48&id=49&id=50&id=51&id=52&id=53&id=54&id=55&id=56&id=57&id=58&id=59&id=60&id=61&id=62&id=63&id=64&id=65&id=66&id=67&id=68&id=69&id=70&id=71&id=72&id=73&id=74&id=75&id=76&id=77&id=78&id=79&id=80&id=81&id=82&id=83&id=84&id=85&id=86&id=87&id=88&id=89&id=90&id=91&id=92&id=93&id=94&id=95&id=96&id=97&id=98&id=99&id=100&id=101&id=102&id=103&id=104&id=105&id=106&id=107&id=108&id=109&id=110&id=111&id=112&id=113&id=114&id=115&id=116&id=117&id=118&id=119&id=120&id=121&id=122&id=123&id=124&id=125&id=126&id=127&id=128&id=129&id=130&id=131&id=132&id=133&id=134&id=135&id=136&id=137&id=138&id=139&id=140&id=141&id=142&id=143&id=144&id=145&id=146&id=147&id=148&id=149&id=150&id=151&id=152&id=153&id=154&id=155&id=156&id=157&id=158&id=159&id=160&id=161&id=162&id=163&id=164&id=165&id=166&id=167&id=168&id=169&id=170&id=171&id=172&id=173&id=174&id=175&id=176&id=177&id=178&id=179&id=180&id=181&id=182&id=183&id=184&id=185&id=186&id=187&id=188&id=189&id=190&id=191&id=192&id=193&id=194&id=195&id=196&id=197&id=198&id=199&id=200&id=201&id=202&id=203&id=204&id=205&id=206&id=207&id=208&id=209&id=210&id=211&id=212&id=213&id=214&id=215&id=216&id=217&id=218&id=219&id=220&id=221&id=222&id=223&id=224&id=225&id=226&id=227&id=228&id=229&id=230&id=231&id=232&id=233&id=234&id=235&id=236&id=237&id=238&id=239&id=240&id=241&id=242&id=243&id=244&id=245&id=246&id=247&id=248&id=249&id=250&id=251&id=252&id=253&id=254&id=255&id=256&id=257&id=258&id=259&id=260&id=261&id=262&id=263&id=264&id=265&id=266&id=267&id=268&id=269&id=270&id=271&id=272&id=273&id=274&id=275&id=276&id=277&id=278&id=279&id=280&id=281&id=282&id=283&id=284&id=285&id=286&id=287&id=288&id=289&id=290&id=291&id=292&id=293&id=294&id=295&id=296&id=297&id=298&id=299&id=300', + ); + expect(result[1].batchedRequest[1].endpoint).toEqual( + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1122/leads.json?id=301&id=302&id=303&id=304&id=305&id=306&id=307&id=308&id=309&id=310&id=311&id=312&id=313&id=314&id=315&id=316&id=317&id=318&id=319&id=320&id=321&id=322&id=323&id=324&id=325&id=326&id=327&id=328&id=329&id=330&id=331&id=332&id=333&id=334&id=335&id=336&id=337&id=338&id=339&id=340&id=341&id=342&id=343&id=344&id=345&id=346&id=347&id=348&id=349&id=350', + ); + expect(result[0].batchedRequest[0].method).toEqual('DELETE'); // DELETE requests are sent first + expect(result[1].batchedRequest[0].method).toEqual('POST'); + expect(result[1].batchedRequest[1].method).toEqual('POST'); + expect(result[0].metadata.length).toEqual(100); // 100 metadata objects for 100 record events + expect(result[1].metadata.length).toEqual(350); // 350 metadata objects for 350 record events + expect(result).toEqual(largeRecordOutput); // overall result should be equal to the expected output + }); + + it('Sending a mixed batch of record and audiencelist events (22 events: 10 inserts | 10 deletes | 2 audiencelist (⌐■_■) )', async () => { + const mixedBatchInputs = []; + for (let index = 900; index < 910; index++) { + mixedBatchInputs.push(recordEventGenerator(index + 1, 'insert', 1122)); + } + for (let index = 910; index < 920; index++) { + mixedBatchInputs.push(recordEventGenerator(index + 1, 'delete', 1122)); + } + mixedBatchInputs.push(...audiencelistInputs); + const result = await processRouterDest(mixedBatchInputs, reqMetadata); + + // assert that the result is as expected + /* + Total 4 API calls + 1. 1 API call for 10 DELETE requests + 2. 1 API call for 10 POST requests = limit reached for Marketo, leads split to next API call + 3. 1 API call for 2 POST requests + 4. 1 API call for 2 POST requests + */ + expect(result.length).toEqual(4); + expect(result[0].batchedRequest.length).toEqual(1); // 1 batched request for 1 record event + expect(result[1].batchedRequest.length).toEqual(1); // 1 batched request for 1 record event + expect(result[2].batchedRequest.length).toEqual(2); // 1 batched request for 2 audiencelist events + expect(result[3].batchedRequest.length).toEqual(2); // 1 batched request for 2 audiencelist events + expect(result[0].batchedRequest[0].endpoint).toEqual( + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1122/leads.json?id=911&id=912&id=913&id=914&id=915&id=916&id=917&id=918&id=919&id=920', + ); + expect(result[1].batchedRequest[0].endpoint).toEqual( + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1122/leads.json?id=901&id=902&id=903&id=904&id=905&id=906&id=907&id=908&id=909&id=910', + ); + expect(result[2].batchedRequest[0].endpoint).toEqual( + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=704&id=705&id=706', + ); + expect(result[2].batchedRequest[1].endpoint).toEqual( + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=501&id=502&id=503', + ); + expect(result[3].batchedRequest[0].endpoint).toEqual( + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=0&id=1&id=2&id=3&id=4&id=5&id=6&id=7&id=8&id=9&id=10&id=11&id=12&id=13&id=14&id=15&id=16&id=17&id=18&id=19&id=20&id=21&id=22&id=23&id=24&id=25&id=26&id=27&id=28&id=29&id=30&id=31&id=32&id=33&id=34&id=35&id=36&id=37&id=38&id=39&id=40&id=41&id=42&id=43&id=44&id=45&id=46&id=47&id=48&id=49&id=50&id=51&id=52&id=53&id=54&id=55&id=56&id=57&id=58&id=59&id=60&id=61&id=62&id=63&id=64&id=65&id=66&id=67&id=68&id=69&id=70&id=71&id=72&id=73&id=74&id=75&id=76&id=77&id=78&id=79&id=80&id=81&id=82&id=83&id=84&id=85&id=86&id=87&id=88&id=89&id=90&id=91&id=92&id=93&id=94&id=95&id=96&id=97&id=98&id=99&id=100&id=101&id=102&id=103&id=104&id=105&id=106&id=107&id=108&id=109&id=110&id=111&id=112&id=113&id=114&id=115&id=116&id=117&id=118&id=119&id=120&id=121&id=122&id=123&id=124&id=125&id=126&id=127&id=128&id=129&id=130&id=131&id=132&id=133&id=134&id=135&id=136&id=137&id=138&id=139&id=140&id=141&id=142&id=143&id=144&id=145&id=146&id=147&id=148&id=149&id=150&id=151&id=152&id=153&id=154&id=155&id=156&id=157&id=158&id=159&id=160&id=161&id=162&id=163&id=164&id=165&id=166&id=167&id=168&id=169&id=170&id=171&id=172&id=173&id=174&id=175&id=176&id=177&id=178&id=179&id=180&id=181&id=182&id=183&id=184&id=185&id=186&id=187&id=188&id=189&id=190&id=191&id=192&id=193&id=194&id=195&id=196&id=197&id=198&id=199&id=200&id=201&id=202&id=203&id=204&id=205&id=206&id=207&id=208&id=209&id=210&id=211&id=212&id=213&id=214&id=215&id=216&id=217&id=218&id=219&id=220&id=221&id=222&id=223&id=224&id=225&id=226&id=227&id=228&id=229&id=230&id=231&id=232&id=233&id=234&id=235&id=236&id=237&id=238&id=239&id=240&id=241&id=242&id=243&id=244&id=245&id=246&id=247&id=248&id=249&id=250&id=251&id=252&id=253&id=254&id=255&id=256&id=257&id=258&id=259&id=260&id=261&id=262&id=263&id=264&id=265&id=266&id=267&id=268&id=269&id=270&id=271&id=272&id=273&id=274&id=275&id=276&id=277&id=278&id=279&id=280&id=281&id=282&id=283&id=284&id=285&id=286&id=287&id=288&id=289&id=290&id=291&id=292&id=293&id=294&id=295&id=296&id=297&id=298&id=299', + ); + expect(result[2].batchedRequest[1].endpoint).toEqual( + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=501&id=502&id=503', + ); + expect(result[0].batchedRequest[0].method).toEqual('DELETE'); // DELETE requests are sent first + expect(result[1].batchedRequest[0].method).toEqual('POST'); + expect(result[1].batchedRequest[0].method).toEqual('POST'); + expect(result[2].batchedRequest[0].method).toEqual('DELETE'); + expect(result[0].metadata.length).toEqual(10); + expect(result[1].metadata.length).toEqual(10); + expect(result[2].metadata.length).toEqual(1); + expect(result[3].metadata.length).toEqual(1); + expect(result).toEqual(mixedBatchOutput); // overall result should be equal to the expected output + }); +}); +afterAll(() => { + mockAdapter.restore(); +}); diff --git a/src/v0/destinations/marketo_static_list/transformV2.js b/src/v0/destinations/marketo_static_list/transformV2.js new file mode 100644 index 00000000000..912d548d098 --- /dev/null +++ b/src/v0/destinations/marketo_static_list/transformV2.js @@ -0,0 +1,143 @@ +const lodash = require('lodash'); +const { InstrumentationError, UnauthorizedError } = require('@rudderstack/integrations-lib'); +const { + defaultPostRequestConfig, + defaultDeleteRequestConfig, + defaultRequestConfig, + getSuccessRespEvents, + isDefinedAndNotNull, + generateErrorObject, + getErrorRespEvents, +} = require('../../util'); +const { JSON_MIME_TYPE } = require('../../util/constant'); +const { MAX_LEAD_IDS_SIZE } = require('./config'); +const { getAuthToken } = require('../marketo/transform'); +const { formatConfig } = require('../marketo/config'); + +/** + * Generates the final response structure to be sent to the destination + * @param {*} endPoint + * @param {*} leadIds + * @param {*} operation + * @param {*} token + * @returns batched response + */ +const responseBuilder = (endPoint, leadIds, operation, token) => { + let updatedEndpoint = endPoint; + if (leadIds.length > 0) { + leadIds.forEach((id) => { + updatedEndpoint = `${updatedEndpoint}id=${id}&`; + }); + } + updatedEndpoint = updatedEndpoint.slice(0, -1); + const response = defaultRequestConfig(); + response.endpoint = updatedEndpoint; + if (operation === 'insert') { + response.method = defaultPostRequestConfig.requestMethod; + } else { + response.method = defaultDeleteRequestConfig.requestMethod; + } + response.headers = { + Authorization: `Bearer ${token}`, + 'Content-Type': JSON_MIME_TYPE, + }; + return response; +}; + +/** + * The function is responsible for building the batched response for a given set of record inputs. + * @param {*} groupedRecordInputs + * @param {*} Config + * @param {*} token + * @param {*} leadIds + * @param {*} operation + * @returns an array of response objects, where each object represents a batched response for a chunk of lead IDs. + */ +const batchResponseBuilder = (listId, Config, token, leadIds, operation) => { + const { accountId } = Config; + const endpoint = `https://${accountId}.mktorest.com/rest/v1/lists/${listId}/leads.json?`; + const response = []; + const leadIdsChunks = lodash.chunk(leadIds, MAX_LEAD_IDS_SIZE); + leadIdsChunks.forEach((ids) => { + response.push(responseBuilder(endpoint, ids, operation, token)); + }); + return response; +}; + +/** + * A function that processes a list of grouped record inputs. + * It iterates through each input and groups the field IDs based on the action. + * @param {*} groupedRecordInputs + * @param {*} destination + * @param {*} listId + * @returns An array containing the batched responses for the insert and delete actions along with the metadata. + */ +async function processRecordInputs(groupedRecordInputs, destination, listId) { + const token = await getAuthToken(formatConfig(destination)); + if (!token) { + throw new UnauthorizedError('Authorization failed'); + } + const { Config } = destination; + + // iterate through each input and group field id based on action + const insertFields = []; + const deleteFields = []; + const successMetadataForInsert = []; + const successMetadataForDelete = []; + const errorMetadata = []; + + groupedRecordInputs.forEach((input) => { + const { fields, action } = input.message; + const fieldId = fields?.id; + if (action === 'insert' && isDefinedAndNotNull(fieldId)) { + insertFields.push(fieldId); + successMetadataForInsert.push(input.metadata); + } else if (action === 'delete' && isDefinedAndNotNull(fieldId)) { + deleteFields.push(fieldId); + successMetadataForDelete.push(input.metadata); + } else { + errorMetadata.push(input.metadata); + } + }); + const deletePayloads = batchResponseBuilder(listId, Config, token, deleteFields, 'delete'); + + const deleteResponse = getSuccessRespEvents( + deletePayloads, + successMetadataForDelete, + destination, + true, + ); + + const insertPayloads = batchResponseBuilder(listId, Config, token, insertFields, 'insert'); + + const insertResponse = getSuccessRespEvents( + insertPayloads, + successMetadataForInsert, + destination, + true, + ); + + const error = new InstrumentationError( + 'Invalid action type or no leadIds found neither to add nor to remove', + ); + const errorObj = generateErrorObject(error); + const errorResponseList = errorMetadata.map((metadata) => + getErrorRespEvents(metadata, errorObj.status, errorObj.message, errorObj.statTags), + ); + const finalResponse = []; + if (deleteResponse.batchedRequest.length > 0) { + finalResponse.push(deleteResponse); + } + if (insertResponse.batchedRequest.length > 0) { + finalResponse.push(insertResponse); + } + if (errorResponseList.length > 0) { + finalResponse.push(...errorResponseList); + } + return finalResponse; + // return [deleteResponse, insertResponse, ...errorResponseList]; +} + +module.exports = { + processRecordInputs, +}; diff --git a/src/v0/destinations/marketo_static_list/util.js b/src/v0/destinations/marketo_static_list/util.js index 2d4fe493a0c..c6959cb2564 100644 --- a/src/v0/destinations/marketo_static_list/util.js +++ b/src/v0/destinations/marketo_static_list/util.js @@ -1,4 +1,5 @@ -const { InstrumentationError } = require('../../util/errorTypes'); +/* eslint-disable unicorn/consistent-destructuring */ +const { InstrumentationError } = require('@rudderstack/integrations-lib'); /** * Fetches the ids from the array of objects diff --git a/src/v0/destinations/mautic/transform.js b/src/v0/destinations/mautic/transform.js index 12b0d06b6ff..13808f6e3c0 100644 --- a/src/v0/destinations/mautic/transform.js +++ b/src/v0/destinations/mautic/transform.js @@ -1,3 +1,8 @@ +const { + TransformationError, + InstrumentationError, + ConfigurationError, +} = require('@rudderstack/integrations-lib'); const { defaultRequestConfig, constructPayload, @@ -20,11 +25,6 @@ const { const { EventType } = require('../../../constants'); const { mappingConfig, ConfigCategories } = require('./config'); -const { - TransformationError, - InstrumentationError, - ConfigurationError, -} = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const responseBuilder = async (payload, endpoint, method, messageType, Config) => { diff --git a/src/v0/destinations/mautic/utils.js b/src/v0/destinations/mautic/utils.js index f9dd787d9d1..d8ad8dbffcd 100644 --- a/src/v0/destinations/mautic/utils.js +++ b/src/v0/destinations/mautic/utils.js @@ -1,5 +1,10 @@ /* eslint-disable no-return-assign, no-param-reassign, no-restricted-syntax */ const get = require('get-value'); +const { + NetworkError, + InstrumentationError, + ConfigurationError, +} = require('@rudderstack/integrations-lib'); const { getFieldValueFromMessage } = require('../../util'); const { BASE_URL, lookupFieldMap } = require('./config'); const { httpGET } = require('../../../adapters/network'); @@ -7,7 +12,6 @@ const { processAxiosResponse, getDynamicErrorType, } = require('../../../adapters/utils/networkUtils'); -const { NetworkError, InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/moengage/transform.js b/src/v0/destinations/moengage/transform.js index d87d931817a..8a16d9c7a71 100644 --- a/src/v0/destinations/moengage/transform.js +++ b/src/v0/destinations/moengage/transform.js @@ -1,4 +1,9 @@ const btoa = require('btoa'); +const { + ConfigurationError, + TransformationError, + InstrumentationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { CONFIG_CATEGORIES, @@ -16,11 +21,6 @@ const { simpleProcessRouterDest, isAppleFamily, } = require('../../util'); -const { - ConfigurationError, - TransformationError, - InstrumentationError, -} = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); function responseBuilderSimple(message, category, destination) { @@ -119,7 +119,7 @@ const processEvent = (message, destination) => { response = responseBuilderSimple(message, category, destination); // only if device information is present device info will be added/updated // with an identify call otherwise only user info will be added/updated - if (message.context.device && message.context.device.type && message.context.device.token) { + if (message?.context?.device?.type && message?.context?.device?.token) { // build the response response = [ // user api payload (output for identify) diff --git a/src/v0/destinations/monday/transform.js b/src/v0/destinations/monday/transform.js index a702f266029..152b42f8d02 100644 --- a/src/v0/destinations/monday/transform.js +++ b/src/v0/destinations/monday/transform.js @@ -1,4 +1,9 @@ const get = require('get-value'); +const { + ConfigurationError, + TransformationError, + InstrumentationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { ENDPOINT } = require('./config'); const { populatePayload, getBoardDetails, checkAllowedEventNameFromUI } = require('./util'); @@ -8,12 +13,8 @@ const { removeUndefinedAndNullValues, simpleProcessRouterDest, getDestinationExternalID, + validateEventName, } = require('../../util'); -const { - ConfigurationError, - TransformationError, - InstrumentationError, -} = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const responseBuilder = (payload, endpoint, apiToken) => { @@ -40,18 +41,14 @@ const responseBuilder = (payload, endpoint, apiToken) => { const trackResponseBuilder = async (message, { Config }) => { const { apiToken } = Config; let boardId = getDestinationExternalID(message, 'boardId'); + const event = get(message, 'event'); + validateEventName(event); if (!boardId) { boardId = Config.boardId; } if (!boardId) { throw new ConfigurationError('boardId is a required field'); } - const event = get(message, 'event'); - - if (!event) { - throw new InstrumentationError('event is not present in the input payloads'); - } - if (!checkAllowedEventNameFromUI(event, Config)) { throw new ConfigurationError('Event Discarded. To allow this event, add this in Allowlist'); } diff --git a/src/v0/destinations/monday/util.js b/src/v0/destinations/monday/util.js index dbd7b149d93..a66dd63dffa 100644 --- a/src/v0/destinations/monday/util.js +++ b/src/v0/destinations/monday/util.js @@ -1,8 +1,12 @@ const { isNumber } = require('lodash'); +const { + NetworkError, + ConfigurationError, + InstrumentationError, +} = require('@rudderstack/integrations-lib'); const { httpPOST } = require('../../../adapters/network'); const { processAxiosResponse } = require('../../../adapters/utils/networkUtils'); const { getDestinationExternalID, isDefinedAndNotNull } = require('../../util'); -const { NetworkError, ConfigurationError, InstrumentationError } = require('../../util/errorTypes'); const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); @@ -253,7 +257,7 @@ const checkAllowedEventNameFromUI = (event, Config) => { let allowEvent; if (whitelistedEvents && whitelistedEvents.length > 0) { allowEvent = whitelistedEvents.some( - (whiteListedEvent) => whiteListedEvent.eventName.toLowerCase() === event.toLowerCase(), + (whiteListedEvent) => whiteListedEvent?.eventName?.toLowerCase() === event.toLowerCase(), ); } return !!allowEvent; diff --git a/src/v0/destinations/monetate/transform.js b/src/v0/destinations/monetate/transform.js index e4d1f28b613..26a88e686b0 100644 --- a/src/v0/destinations/monetate/transform.js +++ b/src/v0/destinations/monetate/transform.js @@ -1,4 +1,5 @@ const get = require('get-value'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { removeUndefinedValues, simpleProcessRouterDest } = require('../../util'); const { handleProductViewed, @@ -11,7 +12,6 @@ const { } = require('./utils'); const { EventType } = require('../../../constants'); const { mappingConfig } = require('./config'); -const { InstrumentationError } = require('../../util/errorTypes'); function track(message, destination) { const rawPayload = constructPayload(message, mappingConfig.MONETATETrack); diff --git a/src/v0/destinations/monetate/utils.js b/src/v0/destinations/monetate/utils.js index 7facc2617d7..1fe899f120e 100644 --- a/src/v0/destinations/monetate/utils.js +++ b/src/v0/destinations/monetate/utils.js @@ -1,6 +1,6 @@ const set = require('set-value'); const get = require('get-value'); -const { InstrumentationError } = require('../../util/errorTypes'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { isDefinedAndNotNull, defaultRequestConfig, getValueFromMessage } = require('../../util'); const { ENDPOINT } = require('./config'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/mp/config.js b/src/v0/destinations/mp/config.js index 41a801e9da1..35b40294f55 100644 --- a/src/v0/destinations/mp/config.js +++ b/src/v0/destinations/mp/config.js @@ -11,6 +11,9 @@ const ConfigCategory = { IDENTIFY: { name: 'MPIdentifyConfig', }, + SET_ONCE: { + name: 'MPSetOnceConfig', + }, PROFILE_ANDROID: { name: 'MPProfilePropertiesAndroid', }, diff --git a/src/v0/destinations/mp/data/MPEventPropertiesConfig.json b/src/v0/destinations/mp/data/MPEventPropertiesConfig.json index 680daccb387..956b60248eb 100644 --- a/src/v0/destinations/mp/data/MPEventPropertiesConfig.json +++ b/src/v0/destinations/mp/data/MPEventPropertiesConfig.json @@ -35,30 +35,6 @@ "sourceKeys": "context.screen.density", "destKey": "$screen_dpi" }, - { - "sourceKeys": "context.campaign.name", - "destKey": "utm_campaign" - }, - { - "sourceKeys": "context.campaign.source", - "destKey": "utm_source" - }, - { - "sourceKeys": "context.campaign.medium", - "destKey": "utm_medium" - }, - { - "sourceKeys": "context.campaign.term", - "destKey": "utm_term" - }, - { - "sourceKeys": "context.campaign.content", - "destKey": "utm_content" - }, - { - "sourceKeys": "context.campaign.test", - "destKey": "utm_test" - }, { "sourceKeys": "context.network.carrier", "destKey": "$carrier" diff --git a/src/v0/destinations/mp/data/MPSetOnceConfig.json b/src/v0/destinations/mp/data/MPSetOnceConfig.json new file mode 100644 index 00000000000..e5aaf851a33 --- /dev/null +++ b/src/v0/destinations/mp/data/MPSetOnceConfig.json @@ -0,0 +1,122 @@ +[ + { + "destKey": "$created", + "sourceKeys": "createdAt", + "required": false + }, + { + "destKey": "$email", + "sourceKeys": "email", + "required": false + }, + { + "destKey": "$first_name", + "sourceKeys": ["firstName", "firstname", "first_name"], + "required": false + }, + { + "destKey": "$last_name", + "sourceKeys": ["lastName", "lastname", "last_name"], + "required": false + }, + { + "destKey": "$name", + "sourceKeys": "name", + "required": false + }, + { + "destKey": "$username", + "sourceKeys": ["username", "userName"], + "required": false + }, + { + "destKey": "$phone", + "sourceKeys": "phone", + "required": false + }, + { + "destKey": "$avatar", + "sourceKeys": "avatar", + "required": false + }, + { + "destKey": "$country_code", + "sourceKeys": ["country", "address.country"], + "required": false + }, + { + "destKey": "$city", + "sourceKeys": ["city", "address.city"], + "required": false + }, + { + "destKey": "$region", + "sourceKeys": ["state", "address.state", "location.region"], + "required": false + }, + { + "destKey": "$unsubscribed", + "sourceKeys": "unsubscribed", + "required": false + }, + { + "destKey": "$geo_source", + "sourceKeys": "location.geoSource", + "required": false + }, + { + "destKey": "$timezone", + "sourceKeys": "location.timezone", + "required": false + }, + { + "destKey": "$latitude", + "sourceKeys": "location.latitude", + "required": false + }, + { + "destKey": "$longitude", + "sourceKeys": "location.longitude", + "required": false + }, + { + "destKey": "$carrier", + "sourceKeys": "network.carrier", + "required": false + }, + { + "destKey": "$manufacturer", + "sourceKeys": "device.manufacturer", + "required": false + }, + { + "destKey": "$model", + "sourceKeys": "device.model", + "required": false + }, + { + "destKey": "$screen_height", + "sourceKeys": "screen.height", + "required": false + }, + { + "destKey": "$screen_width", + "sourceKeys": "screen.width", + "required": false + }, + { + "destKey": "$wifi", + "sourceKeys": "network.wifi", + "required": false + }, + { + "destKey": "$initial_referrer", + "sourceKeys": "page.initial_referrer", + "required": false + }, + { + "destKey": "$initial_referring_domain", + "sourceKeys": ["page.initial_referring_domain", "page.initialReferringDomain"], + "required": false + } +] diff --git a/src/v0/destinations/mp/deleteUsers.js b/src/v0/destinations/mp/deleteUsers.js index d35a7316900..f01475ef2b8 100644 --- a/src/v0/destinations/mp/deleteUsers.js +++ b/src/v0/destinations/mp/deleteUsers.js @@ -1,4 +1,5 @@ -const _ = require('lodash'); +const lodash = require('lodash'); +const { ConfigurationError, NetworkError } = require('@rudderstack/integrations-lib'); const { handleHttpRequest } = require('../../../adapters/network'); const { isHttpStatusSuccess } = require('../../util'); const { @@ -7,7 +8,6 @@ const { DISTINCT_ID_MAX_BATCH_SIZE, } = require('./config'); const { executeCommonValidations } = require('../../util/regulation-api'); -const { ConfigurationError, NetworkError } = require('../../util/errorTypes'); const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); @@ -18,6 +18,7 @@ const deleteProfile = async (userAttributes, config) => { config.dataResidency === 'eu' ? 'https://api-eu.mixpanel.com/engage' : 'https://api.mixpanel.com/engage'; + const endpointPath = '/engage'; const defaultValues = { $token: `${config.token}`, $delete: null, @@ -36,7 +37,7 @@ const deleteProfile = async (userAttributes, config) => { // batchEvents = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] // ref : https://developer.mixpanel.com/reference/delete-profile - const batchEvents = _.chunk(data, DEL_MAX_BATCH_SIZE); + const batchEvents = lodash.chunk(data, DEL_MAX_BATCH_SIZE); await Promise.all( batchEvents.map(async (batchEvent) => { const { processedResponse: handledDelResponse } = await handleHttpRequest( @@ -47,6 +48,7 @@ const deleteProfile = async (userAttributes, config) => { { destType: 'mp', feature: 'deleteUsers', + endpointPath, }, ); if (!isHttpStatusSuccess(handledDelResponse.status)) { @@ -68,7 +70,7 @@ const deleteProfile = async (userAttributes, config) => { }; const createDeletionTask = async (userAttributes, config) => { - const { token, gdprApiToken } = config; + const { token, gdprApiToken, dataResidency } = config; if (!gdprApiToken) { throw new ConfigurationError( @@ -77,11 +79,12 @@ const createDeletionTask = async (userAttributes, config) => { } const endpoint = getCreateDeletionTaskEndpoint(token); + const endpointPath = '/api/app/data-deletions/v3.0/'; const headers = { 'Content-Type': JSON_MIME_TYPE, Authorization: `Bearer ${gdprApiToken}`, }; - const complianceType = config?.dataResidency === 'eu' ? 'GDPR' : 'CCPA'; + const complianceType = dataResidency === 'eu' ? 'GDPR' : 'CCPA'; // batchEvents = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] // ref : https://developer.mixpanel.com/docs/privacy-security#create-a-deletion-task @@ -100,6 +103,7 @@ const createDeletionTask = async (userAttributes, config) => { { destType: 'mp', feature: 'deleteUsers', + endpointPath, }, ); if (!isHttpStatusSuccess(handledDelResponse.status)) { diff --git a/src/v0/destinations/mp/transform.js b/src/v0/destinations/mp/transform.js index 80c656c9ab1..3d0aaa7c4c6 100644 --- a/src/v0/destinations/mp/transform.js +++ b/src/v0/destinations/mp/transform.js @@ -1,4 +1,6 @@ +const lodash = require('lodash'); const get = require('get-value'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { base64Convertor, @@ -14,9 +16,8 @@ const { getFieldValueFromMessage, checkInvalidRtTfEvents, handleRtTfSingleEventError, - batchMultiplexedEvents, - getSuccessRespEvents, - defaultBatchRequestConfig, + groupEventsByType, + parseConfigArray, } = require('../../util'); const { ConfigCategory, @@ -31,9 +32,12 @@ const { const { createIdentifyResponse, isImportAuthCredentialsAvailable, + buildUtmParams, combineBatchRequestsWithSameJobIds, + groupEventsByEndpoint, + batchEvents, + trimTraits, } = require('./util'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); const { CommonUtils } = require('../../../util/common'); // ref: https://help.mixpanel.com/hc/en-us/articles/115004613766-Default-Properties-Collected-by-Mixpanel @@ -54,7 +58,7 @@ const setImportCredentials = (destConfig) => { params.projectId = projectId; } else { throw new InstrumentationError( - 'Event timestamp is older than 5 days and no apisecret or service account credentials (i.e. username, secret and projectId) is provided in destination config', + 'Event timestamp is older than 5 days and no API secret or service account credentials (i.e. username, secret and projectId) are provided in destination configuration', ); } return { endpoint, headers, params }; @@ -130,6 +134,39 @@ const processRevenueEvents = (message, destination, revenueValue) => { return responseBuilderSimple(payload, message, 'revenue', destination.Config); }; +/** + * This function is used to process the incremental properties + * ref :- https://developer.mixpanel.com/reference/profile-numerical-add + * @param {*} message + * @param {*} destination + * @param {*} propIncrements + * @returns + */ +const processIncrementalProperties = (message, destination, propIncrements) => { + const payload = { + $add: {}, + $token: destination.Config.token, + $distinct_id: message.userId || message.anonymousId, + }; + + if (destination?.Config.identityMergeApi === 'simplified') { + payload.$distinct_id = message.userId || `$device:${message.anonymousId}`; + } + + if (message.properties) { + Object.keys(message.properties).forEach((prop) => { + const value = message.properties[prop]; + if (value && propIncrements.includes(prop)) { + payload.$add[prop] = value; + } + }); + } + + return Object.keys(payload.$add).length > 0 + ? responseBuilderSimple(payload, message, 'incremental_properties', destination.Config) + : null; +}; + const getEventValueForTrackEvent = (message, destination) => { const mappedProperties = constructPayload(message, mPEventPropertiesConfigJson); // This is to conform with SDKs sending timestamp component with messageId @@ -145,6 +182,7 @@ const getEventValueForTrackEvent = (message, destination) => { token: destination.Config.token, distinct_id: message.userId || message.anonymousId, time: unixTimestamp, + ...buildUtmParams(message.context?.campaign), }; if (destination.Config?.identityMergeApi === 'simplified') { @@ -178,21 +216,63 @@ const processTrack = (message, destination) => { if (revenue) { returnValue.push(processRevenueEvents(message, destination, revenue)); } + + if (Array.isArray(destination.Config.propIncrements)) { + const propIncrements = destination.Config.propIncrements.map((item) => item.property); + const response = processIncrementalProperties(message, destination, propIncrements); + if (response) { + returnValue.push(response); + } + } returnValue.push(getEventValueForTrackEvent(message, destination)); return returnValue; }; +const createSetOnceResponse = (message, type, destination, setOnce) => { + const payload = { + $set_once: setOnce, + $token: destination.Config.token, + $distinct_id: message.userId || message.anonymousId, + }; + + if (destination?.Config.identityMergeApi === 'simplified') { + payload.$distinct_id = message.userId || `$device:${message.anonymousId}`; + } + + return responseBuilderSimple(payload, message, type, destination.Config); +}; + const processIdentifyEvents = async (message, type, destination) => { + const messageClone = { ...message }; + let seggregatedTraits = {}; const returnValue = []; + let setOnceProperties = []; + + // making payload for set_once properties + if (destination.Config.setOnceProperties && destination.Config.setOnceProperties.length > 0) { + setOnceProperties = parseConfigArray(destination.Config.setOnceProperties, 'property'); + seggregatedTraits = trimTraits( + messageClone.traits, + messageClone.context.traits, + setOnceProperties, + ); + messageClone.traits = seggregatedTraits.traits; + messageClone.context.traits = seggregatedTraits.contextTraits; + if (Object.keys(seggregatedTraits.setOnce).length > 0) { + returnValue.push( + createSetOnceResponse(messageClone, type, destination, seggregatedTraits.setOnce), + ); + } + } // Creating the user profile // https://developer.mixpanel.com/reference/profile-set - returnValue.push(createIdentifyResponse(message, type, destination, responseBuilderSimple)); + returnValue.push(createIdentifyResponse(messageClone, type, destination, responseBuilderSimple)); if ( destination.Config?.identityMergeApi !== 'simplified' && - message.userId && - message.anonymousId && + messageClone.userId && + messageClone.anonymousId && isImportAuthCredentialsAvailable(destination) ) { // If userId and anonymousId both are present and required credentials for /import @@ -201,13 +281,13 @@ const processIdentifyEvents = async (message, type, destination) => { const trackPayload = { event: '$merge', properties: { - $distinct_ids: [message.userId, message.anonymousId], + $distinct_ids: [messageClone.userId, messageClone.anonymousId], token: destination.Config.token, }, }; const identifyTrackResponse = responseBuilderSimple( trackPayload, - message, + messageClone, 'merge', destination.Config, ); @@ -225,6 +305,7 @@ const processPageOrScreenEvents = (message, type, destination) => { token: destination.Config.token, distinct_id: message.userId || message.anonymousId, time: toUnixTimestamp(message.timestamp), + ...buildUtmParams(message.context?.campaign), }; if (destination.Config?.identityMergeApi === 'simplified') { properties = { @@ -257,12 +338,14 @@ const processAliasEvents = (message, type, destination) => { const aliasId = message.previousId || message.anonymousId; if (!aliasId) { throw new InstrumentationError( - 'Either previous id or anonymous id should be present in alias payload', + 'Either `previousId` or `anonymousId` should be present in alias payload', ); } if (aliasId === message.userId) { - throw new InstrumentationError('One of previousId/anonymousId is same as userId'); + throw new InstrumentationError( + 'One of `previousId` or `anonymousId` is same as `userId`. Aborting', + ); } const payload = { @@ -327,37 +410,17 @@ const processGroupEvents = (message, type, destination) => { } }); } else { - throw new ConfigurationError('Group Key Settings is not configured'); + throw new ConfigurationError('`Group Key Settings` is not configured in destination'); } if (returnValue.length === 0) { - throw new InstrumentationError('Group Key is not present. Aborting message'); + throw new InstrumentationError( + 'Group Key is not present. Please ensure that the group key is included in the payload as configured in the `Group Key Settings` in destination', + ); } return returnValue; }; -const generateBatchedPayloadForArray = (events) => { - const { batchedRequest } = defaultBatchRequestConfig(); - const batchResponseList = events.flatMap((event) => JSON.parse(event.body.JSON_ARRAY.batch)); - batchedRequest.body.JSON_ARRAY = { batch: JSON.stringify(batchResponseList) }; - batchedRequest.endpoint = events[0].endpoint; - batchedRequest.headers = events[0].headers; - batchedRequest.params = events[0].params; - return batchedRequest; -}; - -const batchEvents = (successRespList, maxBatchSize) => { - const batchResponseList = []; - const batchedEvents = batchMultiplexedEvents(successRespList, maxBatchSize); - batchedEvents.forEach((batch) => { - const batchedRequest = generateBatchedPayloadForArray(batch.events); - batchResponseList.push( - getSuccessRespEvents(batchedRequest, batch.metadata, batch.destination, true), - ); - }); - return batchResponseList; -}; - -const processSingleMessage = async (message, destination) => { +const processSingleMessage = (message, destination) => { const clonedMessage = { ...message }; if (clonedMessage.userId) { clonedMessage.userId = String(clonedMessage.userId); @@ -378,86 +441,17 @@ const processSingleMessage = async (message, destination) => { return processIdentifyEvents(clonedMessage, clonedMessage.type, destination); case EventType.ALIAS: if (destination.Config?.identityMergeApi === 'simplified') { - throw new InstrumentationError( - `Event type '${EventType.ALIAS}' is not supported when 'Simplified ID merge' api is selected in webapp`, - ); + throw new InstrumentationError('Alias call is deprecated in `Simplified ID merge`'); } return processAliasEvents(message, message.type, destination); case EventType.GROUP: return processGroupEvents(clonedMessage, clonedMessage.type, destination); default: - throw new InstrumentationError(`Event type ${clonedMessage.type} is not supported`); + throw new InstrumentationError(`Event type '${clonedMessage.type}' is not supported`); } }; -const process = async (event) => processSingleMessage(event.message, event.destination); - -const processEvents = async (inputs, reqMetadata) => - await Promise.all( - inputs.map(async (event) => { - try { - if (event.message.statusCode) { - // already transformed event - return { output: event }; - } - - // if not transformed - return { - output: { - message: await process(event), - metadata: event.metadata, - destination: event.destination, - }, - }; - } catch (error) { - const errRespEvent = handleRtTfSingleEventError(event, error, reqMetadata); - return { error: errRespEvent }; - } - }), - ); - -const processAndChunkEvents = async (inputs, reqMetadata) => { - const processedEvents = await processEvents(inputs, reqMetadata); - const engageEventChunks = []; - const groupsEventChunks = []; - const trackEventChunks = []; - const importEventChunks = []; - const batchErrorRespList = []; - processedEvents.forEach((result) => { - if (result.output) { - const event = result.output; - const { destination, metadata } = event; - let { message } = event; - message = CommonUtils.toArray(message); - message.forEach((msg) => { - // eslint-disable-next-line default-case - switch (true) { - case msg.endpoint.includes('engage'): - engageEventChunks.push({ message: msg, destination, metadata }); - break; - case msg.endpoint.includes('groups'): - groupsEventChunks.push({ message: msg, destination, metadata }); - break; - case msg.endpoint.includes('track'): - trackEventChunks.push({ message: msg, destination, metadata }); - break; - case msg.endpoint.includes('import'): - importEventChunks.push({ message: msg, destination, metadata }); - break; - } - }); - } else if (result.error) { - batchErrorRespList.push(result.error); - } - }); - return { - engageEventChunks, - groupsEventChunks, - trackEventChunks, - importEventChunks, - batchErrorRespList, - }; -}; +const process = (event) => processSingleMessage(event.message, event.destination); // Documentation about how Mixpanel handles the utm parameters // Ref: https://help.mixpanel.com/hc/en-us/articles/115004613766-Default-Properties-Collected-by-Mixpanel @@ -468,28 +462,55 @@ const processRouterDest = async (inputs, reqMetadata) => { return errorRespEvents; } - const { - engageEventChunks, - groupsEventChunks, - trackEventChunks, - importEventChunks, - batchErrorRespList, - } = await processAndChunkEvents(inputs, reqMetadata); - - const engageRespList = batchEvents(engageEventChunks, ENGAGE_MAX_BATCH_SIZE); - const groupsRespList = batchEvents(groupsEventChunks, GROUPS_MAX_BATCH_SIZE); - const trackRespList = batchEvents(trackEventChunks, TRACK_MAX_BATCH_SIZE); - const importRespList = batchEvents(importEventChunks, IMPORT_MAX_BATCH_SIZE); - - let batchSuccessRespList = [ - ...engageRespList, - ...groupsRespList, - ...trackRespList, - ...importRespList, - ]; - batchSuccessRespList = combineBatchRequestsWithSameJobIds(batchSuccessRespList); - - return [...batchSuccessRespList, ...batchErrorRespList]; + const groupedEvents = groupEventsByType(inputs); + const response = await Promise.all( + groupedEvents.map(async (listOfEvents) => { + let transformedPayloads = await Promise.all( + listOfEvents.map(async (event) => { + try { + if (event.message.statusCode) { + // already transformed event + return { + message: event.message, + metadata: event.metadata, + destination: event.destination, + }; + } + let processedEvents = await process(event); + processedEvents = CommonUtils.toArray(processedEvents); + return processedEvents.map((res) => ({ + message: res, + metadata: event.metadata, + destination: event.destination, + })); + } catch (error) { + return handleRtTfSingleEventError(event, error, reqMetadata); + } + }), + ); + + transformedPayloads = lodash.flatMap(transformedPayloads); + const { engageEvents, groupsEvents, trackEvents, importEvents, batchErrorRespList } = + groupEventsByEndpoint(transformedPayloads); + + const engageRespList = batchEvents(engageEvents, ENGAGE_MAX_BATCH_SIZE, reqMetadata); + const groupsRespList = batchEvents(groupsEvents, GROUPS_MAX_BATCH_SIZE, reqMetadata); + const trackRespList = batchEvents(trackEvents, TRACK_MAX_BATCH_SIZE, reqMetadata); + const importRespList = batchEvents(importEvents, IMPORT_MAX_BATCH_SIZE, reqMetadata); + const batchSuccessRespList = [ + ...engageRespList, + ...groupsRespList, + ...trackRespList, + ...importRespList, + ]; + + return [...batchSuccessRespList, ...batchErrorRespList]; + }), + ); + + // Flatten the response array containing batched events from multiple groups + const allBatchedEvents = lodash.flatMap(response); + return combineBatchRequestsWithSameJobIds(allBatchedEvents); }; module.exports = { process, processRouterDest }; diff --git a/src/v0/destinations/mp/util.js b/src/v0/destinations/mp/util.js index 5a96c8d64bf..bb8f36fdbe3 100644 --- a/src/v0/destinations/mp/util.js +++ b/src/v0/destinations/mp/util.js @@ -1,5 +1,7 @@ +const lodash = require('lodash'); const set = require('set-value'); const get = require('get-value'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { isDefined, constructPayload, @@ -8,6 +10,12 @@ const { isAppleFamily, getBrowserInfo, toUnixTimestamp, + batchMultiplexedEvents, + getSuccessRespEvents, + defaultBatchRequestConfig, + IsGzipSupported, + isObject, + isDefinedAndNotNullAndNotEmpty, } = require('../../util'); const { ConfigCategory, @@ -15,11 +23,12 @@ const { GEO_SOURCE_ALLOWED_VALUES, mappingConfig, } = require('./config'); -const { InstrumentationError } = require('../../util/errorTypes'); +const { CommonUtils } = require('../../../util/common'); const mPIdentifyConfigJson = mappingConfig[ConfigCategory.IDENTIFY.name]; const mPProfileAndroidConfigJson = mappingConfig[ConfigCategory.PROFILE_ANDROID.name]; const mPProfileIosConfigJson = mappingConfig[ConfigCategory.PROFILE_IOS.name]; +const mPSetOnceConfigJson = mappingConfig[ConfigCategory.SET_ONCE.name]; /** * this function has been used to create @@ -139,6 +148,7 @@ const isImportAuthCredentialsAvailable = (destination) => const findExistingBatch = (batch, metadataMap) => { let existingBatch = null; + // eslint-disable-next-line no-restricted-syntax for (const metadataItem of batch.metadata) { if (metadataMap.has(metadataItem.jobId)) { existingBatch = metadataMap.get(metadataItem.jobId); @@ -154,8 +164,9 @@ const findExistingBatch = (batch, metadataMap) => { * @param {*} mergedBatches An array of merged batch objects. */ const removeDuplicateMetadata = (mergedBatches) => { - for (const batch of mergedBatches) { + mergedBatches.forEach((batch) => { const metadataSet = new Set(); + // eslint-disable-next-line no-param-reassign batch.metadata = batch.metadata.filter((metadataItem) => { if (!metadataSet.has(metadataItem.jobId)) { metadataSet.add(metadataItem.jobId); @@ -163,7 +174,103 @@ const removeDuplicateMetadata = (mergedBatches) => { } return false; }); + }); +}; + +/** + * Builds UTM parameters from a campaign object. + * + * @param {Object} campaign - The campaign object containing the campaign details. + * @returns {Object} - The object containing the UTM parameters extracted from the campaign object. + * + * @example + * const campaign = { + * name: 'summer_sale', + * source: 'newsletter', + * medium: 'email' + * }; + * { utm_campaign: 'summer_sale', utm_source: 'newsletter', utm_medium: 'email' } + */ +const buildUtmParams = (campaign) => { + const utmParams = {}; + if (isObject(campaign)) { + Object.keys(campaign).forEach((key) => { + if (key === 'name') { + utmParams.utm_campaign = campaign[key]; + } else { + utmParams[`utm_${key}`] = campaign[key]; + } + }); } + + return utmParams; +}; + +/** + * Group events with the same endpoint together in batches + * @param {*} events - An array of events + * @returns + */ +const groupEventsByEndpoint = (events) => { + const eventMap = { + engage: [], + groups: [], + track: [], + import: [], + }; + const batchErrorRespList = []; + + events.forEach((result) => { + if (result.message) { + const { destination, metadata } = result; + const message = CommonUtils.toArray(result.message); + + message.forEach((msg) => { + const endpoint = Object.keys(eventMap).find((key) => msg.endpoint.includes(key)); + + if (endpoint) { + eventMap[endpoint].push({ message: msg, destination, metadata }); + } + }); + } else if (result.error) { + batchErrorRespList.push(result); + } + }); + + return { + engageEvents: eventMap.engage, + groupsEvents: eventMap.groups, + trackEvents: eventMap.track, + importEvents: eventMap.import, + batchErrorRespList, + }; +}; + +const generateBatchedPayloadForArray = (events, reqMetadata) => { + const { batchedRequest } = defaultBatchRequestConfig(); + const firstEvent = events[0]; + batchedRequest.endpoint = firstEvent.endpoint; + batchedRequest.headers = firstEvent.headers; + batchedRequest.params = firstEvent.params; + + const batchResponseList = events.flatMap((event) => JSON.parse(event.body.JSON_ARRAY.batch)); + + if (IsGzipSupported(reqMetadata) && firstEvent.endpoint.includes('import')) { + // Gzipping the payload for /import endpoint + batchedRequest.body.GZIP = { payload: JSON.stringify(batchResponseList) }; + } else { + batchedRequest.body.JSON_ARRAY = { batch: JSON.stringify(batchResponseList) }; + } + + return batchedRequest; +}; + +const batchEvents = (successRespList, maxBatchSize, reqMetadata) => { + const batchedEvents = batchMultiplexedEvents(successRespList, maxBatchSize); + return batchedEvents.map((batch) => { + const batchedRequest = generateBatchedPayloadForArray(batch.events, reqMetadata); + return getSuccessRespEvents(batchedRequest, batch.metadata, batch.destination, true); + }); }; /** @@ -218,8 +325,79 @@ const combineBatchRequestsWithSameJobIds = (inputBatches) => { return combineBatches(combineBatches(inputBatches)); }; +/** + * Trims the traits and contextTraits objects based on the setOnceProperties array and returns an object containing the modified traits, contextTraits, and setOnce properties. + * + * @param {object} traits - An object representing the traits. + * @param {object} contextTraits - An object representing the context traits. + * @param {string[]} setOnceProperties - An array of property paths to be considered for the setOnce transformation. + * @returns {object} - An object containing the modified traits, contextTraits, and setOnce properties. + * + * @example + * const traits = { name: 'John', age: 30 }; + * const contextTraits = { country: 'USA', language: 'English', address: { city: 'New York', state: 'NY' }}}; + * const setOnceProperties = ['name', 'country', 'address.city']; + * + * const result = trimTraits(traits, contextTraits, setOnceProperties); + * // Output: { traits: { age: 30 }, contextTraits: { language: 'English' }, setOnce: { $name: 'John', $country_code: 'USA', city: 'New York'} } + */ +function trimTraits(traits, contextTraits, setOnceProperties) { + let sentOnceTransformedPayload; + // Create a copy of the original traits object + const traitsCopy = { ...traits }; + const contextTraitsCopy = { ...contextTraits }; + + // Initialize setOnce object + const setOnceEligible = {}; + + // Step 1: find the k-v pairs of setOnceProperties in traits and contextTraits + + setOnceProperties.forEach((propertyPath) => { + const propName = lodash.last(propertyPath.split('.')); + + const traitsValue = get(traitsCopy, propertyPath); + const contextTraitsValue = get(contextTraitsCopy, propertyPath); + + if (isDefinedAndNotNullAndNotEmpty(traitsValue)) { + setOnceEligible[propName] = traitsValue; + lodash.unset(traitsCopy, propertyPath); + } + if (isDefinedAndNotNullAndNotEmpty(contextTraitsValue)) { + if (!setOnceEligible.hasOwnProperty(propName)) { + setOnceEligible[propName] = contextTraitsValue; + } + lodash.unset(contextTraitsCopy, propertyPath); + } + }); + + if (setOnceEligible && Object.keys(setOnceEligible).length > 0) { + // Step 2: transform properties eligible as per rudderstack declared identify event mapping + // setOnce should have all traits from message.traits and message.context.traits by now + sentOnceTransformedPayload = constructPayload(setOnceEligible, mPSetOnceConfigJson); + + // Step 3: combine the transformed and custom setOnce traits + sentOnceTransformedPayload = extractCustomFields( + setOnceEligible, + sentOnceTransformedPayload, + 'root', + MP_IDENTIFY_EXCLUSION_LIST, + ); + } + + return { + traits: traitsCopy, + contextTraits: contextTraitsCopy, + setOnce: sentOnceTransformedPayload || {}, + }; +} + module.exports = { createIdentifyResponse, isImportAuthCredentialsAvailable, + buildUtmParams, + groupEventsByEndpoint, + generateBatchedPayloadForArray, + batchEvents, combineBatchRequestsWithSameJobIds, + trimTraits, }; diff --git a/src/v0/destinations/mp/util.test.js b/src/v0/destinations/mp/util.test.js index 24345646995..fbaa6f9b9ff 100644 --- a/src/v0/destinations/mp/util.test.js +++ b/src/v0/destinations/mp/util.test.js @@ -1,7 +1,12 @@ const { combineBatchRequestsWithSameJobIds, - combineBatchRequestsWithSameJobIds2, + groupEventsByEndpoint, + batchEvents, + generateBatchedPayloadForArray, + buildUtmParams, + trimTraits, } = require('./util'); +const { FEATURE_GZIP_SUPPORT } = require('../../util/constant'); const destinationMock = { Config: { @@ -21,7 +26,243 @@ const destinationMock = { Transformations: [], }; +const maxBatchSizeMock = 2; + describe('Mixpanel utils test', () => { + describe('Unit test cases for groupEventsByEndpoint', () => { + it('should return an object with empty arrays for all properties when the events array is empty', () => { + const events = []; + const result = groupEventsByEndpoint(events); + expect(result).toEqual({ + engageEvents: [], + groupsEvents: [], + trackEvents: [], + importEvents: [], + batchErrorRespList: [], + }); + }); + + it('should return an object with all properties containing their respective events when the events array contains events of all types', () => { + const events = [ + { + message: { + endpoint: '/engage', + body: { + JSON_ARRAY: { + batch: '[{prop:1}]', + }, + }, + userId: 'user1', + }, + }, + { + message: { + endpoint: '/engage', + body: { + JSON_ARRAY: { + batch: '[{prop:2}]', + }, + }, + userId: 'user2', + }, + }, + { + message: { + endpoint: '/groups', + body: { + JSON_ARRAY: { + batch: '[{prop:3}]', + }, + }, + userId: 'user1', + }, + }, + { + message: { + endpoint: '/track', + body: { + JSON_ARRAY: { + batch: '[{prop:4}]', + }, + }, + userId: 'user1', + }, + }, + { + message: { + endpoint: '/import', + body: { + JSON_ARRAY: { + batch: '[{prop:5}]', + }, + }, + userId: 'user2', + }, + }, + { error: 'Message type abc not supported' }, + ]; + const result = groupEventsByEndpoint(events); + expect(result).toEqual({ + engageEvents: [ + { + message: { + endpoint: '/engage', + body: { + JSON_ARRAY: { + batch: '[{prop:1}]', + }, + }, + userId: 'user1', + }, + }, + { + message: { + endpoint: '/engage', + body: { + JSON_ARRAY: { + batch: '[{prop:2}]', + }, + }, + userId: 'user2', + }, + }, + ], + groupsEvents: [ + { + message: { + endpoint: '/groups', + body: { + JSON_ARRAY: { + batch: '[{prop:3}]', + }, + }, + userId: 'user1', + }, + }, + ], + trackEvents: [ + { + message: { + endpoint: '/track', + body: { + JSON_ARRAY: { + batch: '[{prop:4}]', + }, + }, + userId: 'user1', + }, + }, + ], + importEvents: [ + { + message: { + endpoint: '/import', + body: { + JSON_ARRAY: { + batch: '[{prop:5}]', + }, + }, + userId: 'user2', + }, + }, + ], + batchErrorRespList: [{ error: 'Message type abc not supported' }], + }); + }); + }); + + describe('Unit test cases for batchEvents', () => { + it('should return an array of batched events with correct payload and metadata', () => { + const successRespList = [ + { + message: { + endpoint: '/engage', + body: { + JSON_ARRAY: { + batch: '[{"prop":1}]', + }, + }, + headers: {}, + params: {}, + userId: 'user1', + }, + metadata: { jobId: 3 }, + }, + { + message: { + endpoint: '/engage', + body: { + JSON_ARRAY: { + batch: '[{"prop":2}]', + }, + }, + headers: {}, + params: {}, + userId: 'user2', + }, + metadata: { jobId: 4 }, + }, + { + message: { + endpoint: '/engage', + body: { + JSON_ARRAY: { + batch: '[{"prop":3}]', + }, + }, + headers: {}, + params: {}, + userId: 'user2', + }, + metadata: { jobId: 6 }, + }, + ]; + + const result = batchEvents(successRespList, maxBatchSizeMock); + + expect(result).toEqual([ + { + batched: true, + batchedRequest: { + body: { FORM: {}, JSON: {}, JSON_ARRAY: { batch: '[{"prop":1},{"prop":2}]' }, XML: {} }, + endpoint: '/engage', + files: {}, + headers: {}, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + destination: undefined, + metadata: [{ jobId: 3 }, { jobId: 4 }], + statusCode: 200, + }, + { + batched: true, + batchedRequest: { + body: { FORM: {}, JSON: {}, JSON_ARRAY: { batch: '[{"prop":3}]' }, XML: {} }, + endpoint: '/engage', + files: {}, + headers: {}, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + destination: undefined, + metadata: [{ jobId: 6 }], + statusCode: 200, + }, + ]); + }); + + it('should return an empty array when successRespList is empty', () => { + const successRespList = []; + const result = batchEvents(successRespList, maxBatchSizeMock); + expect(result).toEqual([]); + }); + }); + describe('Unit test cases for combineBatchRequestsWithSameJobIds', () => { it('Combine batch request with same jobIds', async () => { const input = [ @@ -250,4 +491,209 @@ describe('Mixpanel utils test', () => { expect(combineBatchRequestsWithSameJobIds(input)).toEqual(expectedOutput); }); }); + + describe('Unit test cases for generateBatchedPayloadForArray', () => { + it('should generate a batched payload with GZIP payload for /import endpoint when given an array of events', () => { + const events = [ + { + body: { JSON_ARRAY: { batch: '[{"event": "event1"}]' } }, + endpoint: '/import', + headers: { 'Content-Type': 'application/json' }, + params: {}, + }, + { + body: { JSON_ARRAY: { batch: '[{"event": "event2"}]' } }, + endpoint: '/import', + headers: { 'Content-Type': 'application/json' }, + params: {}, + }, + ]; + const expectedBatchedRequest = { + body: { + FORM: {}, + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + GZIP: { + payload: '[{"event":"event1"},{"event":"event2"}]', + }, + }, + endpoint: '/import', + files: {}, + headers: { 'Content-Type': 'application/json' }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }; + + const result = generateBatchedPayloadForArray(events, { + features: { [FEATURE_GZIP_SUPPORT]: true }, + }); + + expect(result).toEqual(expectedBatchedRequest); + }); + + it('should generate a batched payload with JSON_ARRAY body when given an array of events', () => { + const events = [ + { + body: { JSON_ARRAY: { batch: '[{"event": "event1"}]' } }, + endpoint: '/endpoint', + headers: { 'Content-Type': 'application/json' }, + params: {}, + }, + { + body: { JSON_ARRAY: { batch: '[{"event": "event2"}]' } }, + endpoint: '/endpoint', + headers: { 'Content-Type': 'application/json' }, + params: {}, + }, + ]; + const expectedBatchedRequest = { + body: { + FORM: {}, + JSON: {}, + JSON_ARRAY: { batch: '[{"event":"event1"},{"event":"event2"}]' }, + XML: {}, + }, + endpoint: '/endpoint', + files: {}, + headers: { 'Content-Type': 'application/json' }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }; + + const result = generateBatchedPayloadForArray(events, { + features: { [FEATURE_GZIP_SUPPORT]: true }, + }); + + expect(result).toEqual(expectedBatchedRequest); + }); + }); + + describe('Unit test cases for buildUtmParams', () => { + it('should return an empty object when campaign is undefined', () => { + const campaign = undefined; + const result = buildUtmParams(campaign); + expect(result).toEqual({}); + }); + + it('should return an empty object when campaign is an empty object', () => { + const campaign = {}; + const result = buildUtmParams(campaign); + expect(result).toEqual({}); + }); + + it('should return an empty object when campaign is not an object', () => { + const campaign = [{ name: 'test' }]; + const result = buildUtmParams(campaign); + expect(result).toEqual({}); + }); + + it('should handle campaign object with null/undefined values', () => { + const campaign = { name: null, source: 'rudder', medium: 'rudder', test: undefined }; + const result = buildUtmParams(campaign); + expect(result).toEqual({ + utm_campaign: null, + utm_source: 'rudder', + utm_medium: 'rudder', + test: undefined, + }); + }); + }); + describe('Unit test cases for trimTraits', () => { + // Given a valid traits object and contextTraits object, and a valid setOnceProperties array, the function should return an object containing traits, contextTraits, and setOnce properties. + it('should return an object containing traits, contextTraits, and setOnce properties when given valid inputs', () => { + const traits = { name: 'John', age: 30 }; + const contextTraits = { email: 'john@example.com' }; + const setOnceProperties = ['name', 'email']; + + const result = trimTraits(traits, contextTraits, setOnceProperties); + console.log(result); + + expect(result).toEqual({ + traits: { + age: 30, + }, + contextTraits: {}, + setOnce: { $name: 'John', $email: 'john@example.com' }, + }); + }); + + // Given an empty traits object and contextTraits object, and a valid setOnceProperties array, the function should return an object containing empty traits and contextTraits, and an empty setOnce property. + it('should return an object containing empty traits and contextTraits, and an empty setOnce property when given empty traits and contextTraits objects', () => { + const traits = {}; + const contextTraits = {}; + const setOnceProperties = ['name', 'email']; + + const result = trimTraits(traits, contextTraits, setOnceProperties); + + expect(result).toEqual({ + traits: {}, + contextTraits: {}, + setOnce: {}, + }); + }); + + // Given an empty setOnceProperties array, the function should return an object containing the original traits and contextTraits objects, and an empty setOnce property. + it('should return an object containing the original traits and contextTraits objects, and an empty setOnce property when given an empty setOnceProperties array', () => { + const traits = { name: 'John', age: 30 }; + const contextTraits = { email: 'john@example.com' }; + const setOnceProperties = []; + + const result = trimTraits(traits, contextTraits, setOnceProperties); + + expect(result).toEqual({ + traits: { name: 'John', age: 30 }, + contextTraits: { email: 'john@example.com' }, + setOnce: {}, + }); + }); + + // Given a setOnceProperties array containing properties that do not exist in either traits or contextTraits objects, the function should not add the property to the setOnce property. + it('should not add properties to the setOnce property when given setOnceProperties array with non-existent properties', () => { + const traits = { name: 'John', age: 30 }; + const contextTraits = { email: 'john@example.com' }; + const setOnceProperties = ['name', 'email', 'address']; + + const result = trimTraits(traits, contextTraits, setOnceProperties); + + expect(result).toEqual({ + traits: { age: 30 }, + contextTraits: {}, + setOnce: { $name: 'John', $email: 'john@example.com' }, + }); + }); + + // Given a setOnceProperties array containing properties with nested paths that do not exist in either traits or contextTraits objects, the function should not add the property to the setOnce property. + it('should not add properties to the setOnce property when given setOnceProperties array with non-existent nested properties', () => { + const traits = { name: 'John', age: 30, address: 'kolkata' }; + const contextTraits = { email: 'john@example.com' }; + const setOnceProperties = ['name', 'email', 'address.city']; + + const result = trimTraits(traits, contextTraits, setOnceProperties); + + expect(result).toEqual({ + traits: { age: 30, address: 'kolkata' }, + contextTraits: {}, + setOnce: { $name: 'John', $email: 'john@example.com' }, + }); + }); + + it('should add properties to the setOnce property when given setOnceProperties array with existent nested properties', () => { + const traits = { name: 'John', age: 30, address: { city: 'kolkata' }, isAdult: false }; + const contextTraits = { email: 'john@example.com' }; + const setOnceProperties = ['name', 'email', 'address.city']; + + const result = trimTraits(traits, contextTraits, setOnceProperties); + + expect(result).toEqual({ + traits: { age: 30, address: {}, isAdult: false }, + contextTraits: {}, + setOnce: { $name: 'John', $email: 'john@example.com', $city: 'kolkata' }, + }); + }); + }); }); diff --git a/src/v0/destinations/mssql/transform.test.js b/src/v0/destinations/mssql/transform.test.js new file mode 100644 index 00000000000..0892651b21e --- /dev/null +++ b/src/v0/destinations/mssql/transform.test.js @@ -0,0 +1,48 @@ +const { getDataType } = require('../../../../src/warehouse/index'); +const { getDataTypeOverride } = require('./transform'); + +const testCases = [ + { + name: 'normalInt', + data: 1, + type: 'int', + }, + { + name: 'normalFloat', + data: 2.01, + type: 'float', + }, + { + name: 'normalBoolean', + data: true, + type: 'boolean', + }, + { + name: 'normalString', + data: 'mssql transformation[*007}', + type: 'string', + }, + { + name: 'violationErrors', + data: [ + { + message: + 'no schema for eventName : Product Purchased new, eventType : track in trackingPlanID : tp_20dfXJDpotQWHe7hMxfQfgWMZDv::1', + meta: {}, + type: 'Unplanned-Event', + }, + ], + type: 'string', + }, +]; + +describe('MSSQL data types testing', () => { + const options = {}; + options.getDataTypeOverride = getDataTypeOverride; + testCases.forEach((testCase) => { + it(`should return data type ${testCase.type} for this input data ${testCase.data} everytime`, () => { + const dataType = getDataType(testCase.name, testCase.data, options); + expect(dataType).toEqual(testCase.type); + }); + }); +}); diff --git a/src/v0/destinations/ometria/networkResponseHandler.js b/src/v0/destinations/ometria/networkResponseHandler.js index 2020ab03438..501b67f1760 100644 --- a/src/v0/destinations/ometria/networkResponseHandler.js +++ b/src/v0/destinations/ometria/networkResponseHandler.js @@ -1,8 +1,8 @@ +const { NetworkError } = require('@rudderstack/integrations-lib'); const { getDynamicErrorType, trimResponse } = require('../../../adapters/utils/networkUtils'); const { isDefinedAndNotNull } = require('../../util'); const { isEmpty } = require('../../util/index'); const tags = require('../../util/tags'); -const { NetworkError } = require('../../util/errorTypes'); const responseTransform = (destResponse) => { let respBody; diff --git a/src/v0/destinations/ometria/transform.js b/src/v0/destinations/ometria/transform.js index d3a4d717535..55038e10b83 100644 --- a/src/v0/destinations/ometria/transform.js +++ b/src/v0/destinations/ometria/transform.js @@ -1,7 +1,7 @@ -/* eslint-disable one-var */ +/* eslint-disable one-var, @typescript-eslint/naming-convention */ /* eslint-disable camelcase */ +const { ConfigurationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); -const { ConfigurationError, InstrumentationError } = require('../../util/errorTypes'); const { constructPayload, extractCustomFields, diff --git a/src/v0/destinations/one_signal/transform.js b/src/v0/destinations/one_signal/transform.js index db699935f4d..a072aef0e4f 100644 --- a/src/v0/destinations/one_signal/transform.js +++ b/src/v0/destinations/one_signal/transform.js @@ -1,4 +1,9 @@ const get = require('get-value'); +const { + ConfigurationError, + TransformationError, + InstrumentationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { ConfigCategory, mappingConfig, BASE_URL, ENDPOINTS } = require('./config'); const { @@ -13,11 +18,6 @@ const { defaultPutRequestConfig, } = require('../../util'); const { populateDeviceType, populateTags } = require('./util'); -const { - ConfigurationError, - TransformationError, - InstrumentationError, -} = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const responseBuilder = (payload, endpoint, eventType) => { diff --git a/src/v0/destinations/one_signal/util.js b/src/v0/destinations/one_signal/util.js index 4b53949e55c..2de57de1b41 100644 --- a/src/v0/destinations/one_signal/util.js +++ b/src/v0/destinations/one_signal/util.js @@ -1,5 +1,5 @@ +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { getIntegrationsObj, getFieldValueFromMessage, getBrowserInfo } = require('../../util'); -const { InstrumentationError } = require('../../util/errorTypes'); // For mapping device_type value const deviceTypeMapping = { diff --git a/src/v0/destinations/pagerduty/transform.js b/src/v0/destinations/pagerduty/transform.js index d7a8848ace4..fb862d2553c 100644 --- a/src/v0/destinations/pagerduty/transform.js +++ b/src/v0/destinations/pagerduty/transform.js @@ -1,3 +1,8 @@ +const { + ConfigurationError, + TransformationError, + InstrumentationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { defaultRequestConfig, @@ -6,11 +11,6 @@ const { removeUndefinedAndNullValues, } = require('../../util'); const { JSON_MIME_TYPE } = require('../../util/constant'); -const { - ConfigurationError, - TransformationError, - InstrumentationError, -} = require('../../util/errorTypes'); const { trackEventPayloadBuilder } = require('./util'); const responseBuilder = (payload, endpoint) => { diff --git a/src/v0/destinations/pagerduty/util.js b/src/v0/destinations/pagerduty/util.js index 42030aa2e78..5b768704edc 100644 --- a/src/v0/destinations/pagerduty/util.js +++ b/src/v0/destinations/pagerduty/util.js @@ -1,5 +1,6 @@ const get = require('get-value'); const moment = require('moment'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { SEVERITIES, EVENT_ACTIONS, @@ -9,7 +10,6 @@ const { DEFAULT_EVENT_ACTION, } = require('./config'); const { constructPayload, getIntegrationsObj } = require('../../util'); -const { InstrumentationError } = require('../../util/errorTypes'); /** * Validates the timestamp diff --git a/src/v0/destinations/pardot/networkHandler.js b/src/v0/destinations/pardot/networkHandler.js index 4cec03ebf80..12b4abbc530 100644 --- a/src/v0/destinations/pardot/networkHandler.js +++ b/src/v0/destinations/pardot/networkHandler.js @@ -1,3 +1,4 @@ +const { NetworkError } = require('@rudderstack/integrations-lib'); const { removeUndefinedValues } = require('../../util'); const { prepareProxyRequest, getPayloadData, httpSend } = require('../../../adapters/network'); const { @@ -7,7 +8,6 @@ const { const { isHttpStatusSuccess } = require('../../util/index'); const { REFRESH_TOKEN } = require('../../../adapters/networkhandler/authConstants'); const tags = require('../../util/tags'); -const { NetworkError } = require('../../util/errorTypes'); /** * Example Response from pardot diff --git a/src/v0/destinations/pardot/transform.js b/src/v0/destinations/pardot/transform.js index 128d72cb148..b32b8967bd2 100644 --- a/src/v0/destinations/pardot/transform.js +++ b/src/v0/destinations/pardot/transform.js @@ -34,6 +34,7 @@ */ const get = require('get-value'); +const { ConfigurationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { identifyConfig, DESTINATION } = require('./config'); const logger = require('../../../logger'); const { @@ -45,33 +46,9 @@ const { getSuccessRespEvents, checkInvalidRtTfEvents, handleRtTfSingleEventError, + getAccessToken, } = require('../../util'); const { CONFIG_CATEGORIES } = require('./config'); -const { - OAuthSecretError, - ConfigurationError, - InstrumentationError, -} = require('../../util/errorTypes'); - -/** - * Get access token to be bound to the event req headers - * - * Note: - * This method needs to be implemented particular to the destination - * As the schema that we'd get in `metadata.secret` can be different - * for different destinations - * - * @param {Object} metadata - * @returns - */ -const getAccessToken = (metadata) => { - // OAuth for this destination - const { secret } = metadata; - if (!secret) { - throw new OAuthSecretError('Empty/Invalid access token'); - } - return secret.access_token; -}; const buildResponse = (payload, url, destination, token) => { const responseBody = removeUndefinedValues(payload); @@ -122,7 +99,7 @@ const getUrl = (urlParams) => { const processIdentify = ({ message, metadata }, destination, category) => { const { campaignId } = destination.Config; - const accessToken = getAccessToken(metadata); + const accessToken = getAccessToken(metadata, 'access_token'); let extId = get(message, 'context.externalId'); extId = extId && extId.length > 0 ? extId[0] : null; diff --git a/src/v0/destinations/persistiq/transform.js b/src/v0/destinations/persistiq/transform.js index 195f8d6567b..3b4fd6cadc0 100644 --- a/src/v0/destinations/persistiq/transform.js +++ b/src/v0/destinations/persistiq/transform.js @@ -1,4 +1,5 @@ const { set } = require('lodash'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { defaultRequestConfig, removeUndefinedAndNullValues, @@ -8,7 +9,6 @@ const { const { configCategories } = require('./config'); const { buildLeadPayload, getIdentifyTraits } = require('./util'); const { EventType } = require('../../../constants'); -const { InstrumentationError } = require('../../util/errorTypes'); const responseBuilder = (payload, endpoint, method, Config) => { const { apiKey } = Config; diff --git a/src/v0/destinations/persistiq/util.js b/src/v0/destinations/persistiq/util.js index 7e1986e9b37..f37a9d1886c 100644 --- a/src/v0/destinations/persistiq/util.js +++ b/src/v0/destinations/persistiq/util.js @@ -1,4 +1,5 @@ const { get } = require('lodash'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { getFieldValueFromMessage, getHashFromArray, @@ -6,7 +7,6 @@ const { flattenMultilevelPayload, } = require('../../util'); const { identifySourceKeys, fileConfigCategories, mappingConfig } = require('./config'); -const { InstrumentationError } = require('../../util/errorTypes'); /** * Returns the remaining keys from traits diff --git a/src/v0/destinations/personalize/scripts/create-trackingid.js b/src/v0/destinations/personalize/scripts/create-trackingid.js index d2a513635ab..efd8eaa2f97 100644 --- a/src/v0/destinations/personalize/scripts/create-trackingid.js +++ b/src/v0/destinations/personalize/scripts/create-trackingid.js @@ -10,60 +10,64 @@ const { const { fromEnv } = require('@aws-sdk/credential-providers'); const readline = require('readline'); -let rl = readline.createInterface(process.stdin, process.stdout); -function promtForInput(questionText, envName) { - if (!process.env[envName]) { - rl.question(questionText, (input) => (process.env[envName] = input)); +require('dotenv').config(); + +async function promtForInput(rl, questionText) { + return new Promise((resolve) => { + rl.question(questionText, (input) => { + resolve(input); + }); + }); +} + +async function checkEnvAndpromtForInput(rl, questionText, envVar) { + if (process.env[envVar]) { + return; } + process.env[envVar] = await promtForInput(rl, questionText); } -// get inputs from user -promtForInput('AWS Access Key ID: ', 'AWS_ACCESS_KEY_ID'); -promtForInput('AWS Secret Access Key: ', 'AWS_SECRET_ACCESS_KEY'); -promtForInput('AWS REGION: ', 'AWS_REGION'); -promtForInput('Name of Dataset Group:', 'DATASET_GROUP_NAME'); -promtForInput( - 'Number of fields in Schema in addition to USER_ID, TIMESTAMP, ITEM_ID: ', - 'NUMBER_OF_FIELDS', -); -rl.close(); -const datasetGroup = process.env.DATASET_GROUP_NAME; -const columns = []; -const type = []; - -// eslint-disable-next-line radix -const noOfFields = parseInt(process.env.NUMBER_OF_FIELDS); -columns[0] = 'USER_ID'; -columns[1] = 'ITEM_ID'; -columns[2] = 'TIMESTAMP'; -type[0] = 'string'; -type[1] = 'string'; -type[2] = 'long'; - -for (let i = 4; i <= noOfFields + 3; i += 1) { - columns[i - 1] = readline.question(`Name of field no. ${i}: `); - type[i - 1] = readline.question(`Type of field ${columns[i - 1]}: `); + +async function collectInputs(rl) { + await checkEnvAndpromtForInput(rl, 'AWS Access Key ID: ', 'AWS_ACCESS_KEY_ID'); + await checkEnvAndpromtForInput(rl, 'AWS Secret Access Key: ', 'AWS_SECRET_ACCESS_KEY'); + await checkEnvAndpromtForInput(rl, 'AWS REGION: ', 'AWS_REGION'); + await checkEnvAndpromtForInput(rl, 'Name of Dataset Group: ', 'DATASET_GROUP_NAME'); + await checkEnvAndpromtForInput( + rl, + 'Number of fields in Schema in addition to USER_ID, TIMESTAMP, ITEM_ID: ', + 'NUMBER_OF_FIELDS', + ); } -let schema = { - type: 'record', - name: 'Interactions', - namespace: 'com.amazonaws.personalize.schema', - fields: [ - { name: 'USER_ID', type: 'string' }, - { name: 'ITEM_ID', type: 'string' }, - { name: 'TIMESTAMP', type: 'long' }, - ], - version: '1.0', -}; - -if (noOfFields > 0) { - for (let i = 3; i < noOfFields + 3; i += 1) { - schema.fields.push({ name: columns[i], type: type[i] }); +async function collectFileds(rl) { + const noOfFields = parseInt(process.env.NUMBER_OF_FIELDS); + let schema = { + type: 'record', + name: 'Interactions', + namespace: 'com.amazonaws.personalize.schema', + fields: [ + { name: 'USER_ID', type: 'string' }, + { name: 'ITEM_ID', type: 'string' }, + { name: 'TIMESTAMP', type: 'long' }, + ], + version: '1.0', + }; + + for (let i = 4; i <= noOfFields + 3; i += 1) { + const fieldName = await promtForInput(rl, `Name of field no. ${i}: `); + const typeName = await promtForInput(rl, `Type of field ${fieldName}: `); + schema.fields.push({ name: fieldName, type: typeName }); } + return schema; } (async function () { + let rl = readline.createInterface(process.stdin, process.stdout); + await collectInputs(rl); + const schema = await collectFileds(rl); + rl.close(); + const datasetGroup = process.env.DATASET_GROUP_NAME; try { const client = new PersonalizeClient({ region: process.env.AWS_REGION, diff --git a/src/v0/destinations/personalize/transform.js b/src/v0/destinations/personalize/transform.js index c8eca2af2ff..dcfaae755ca 100644 --- a/src/v0/destinations/personalize/transform.js +++ b/src/v0/destinations/personalize/transform.js @@ -1,4 +1,5 @@ -const _ = require('lodash'); +const lodash = require('lodash'); +const { ConfigurationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { KEY_CHECK_LIST, MANDATORY_PROPERTIES } = require('./config'); const { EventType } = require('../../../constants'); const { @@ -9,7 +10,6 @@ const { isDefined, simpleProcessRouterDest, } = require('../../util'); -const { ConfigurationError, InstrumentationError } = require('../../util/errorTypes'); const putEventsHandler = (message, destination) => { const { properties, anonymousId, event, messageId, context } = message; @@ -42,28 +42,30 @@ const putEventsHandler = (message, destination) => { throw new InstrumentationError(`Mapped property ${keyMap[key]} not found`); } if (isDefined(disableStringify) && disableStringify) { - outputEvent.properties[_.camelCase(key)] = value; + outputEvent.properties[lodash.camelCase(key)] = value; } else { // users using old config will have stringified property by default - outputEvent.properties[_.camelCase(key)] = String(value); + outputEvent.properties[lodash.camelCase(key)] = String(value); } } else if (!MANDATORY_PROPERTIES.includes(key.toUpperCase())) { if ((!isDefinedAndNotNull(value) || isBlank(value)) && key.toUpperCase() !== 'ITEM_ID') { throw new InstrumentationError(`Null values cannot be sent for ${keyMap[key]} `); } if (!(key.toUpperCase() === 'IMPRESSION' || key.toUpperCase() === 'EVENT_VALUE')) - outputEvent[_.camelCase(key)] = String(value); + outputEvent[lodash.camelCase(key)] = String(value); else if (key.toUpperCase() === 'IMPRESSION') { - outputEvent[_.camelCase(key)] = Array.isArray(value) ? value.map(String) : [String(value)]; - outputEvent[_.camelCase(key)] = _.without( - outputEvent[_.camelCase(key)], + outputEvent[lodash.camelCase(key)] = Array.isArray(value) + ? value.map(String) + : [String(value)]; + outputEvent[lodash.camelCase(key)] = lodash.without( + outputEvent[lodash.camelCase(key)], undefined, null, '', ); } else if (!Number.isNaN(parseFloat(value))) { // for eventValue - outputEvent[_.camelCase(key)] = parseFloat(value); + outputEvent[lodash.camelCase(key)] = parseFloat(value); } else throw new InstrumentationError('EVENT_VALUE should be a float value'); } }); @@ -115,7 +117,7 @@ const putItemsHandler = (message, destination) => { // eslint-disable-next-line no-lonely-if if (!isDefinedAndNotNull(value) || isBlank(value)) { // itemId cannot be null - value = String(_.get(message, keyMap[key])); + value = String(lodash.get(message, keyMap[key])); } } if (!isDefined(value)) { @@ -123,7 +125,7 @@ const putItemsHandler = (message, destination) => { } if (key.toUpperCase() !== 'ITEM_ID') { // itemId is not allowed inside properties - outputItem.properties[_.camelCase(key)] = value; + outputItem.properties[lodash.camelCase(key)] = value; } else { outputItem.itemId = String(value); } @@ -185,7 +187,7 @@ const identifyRequestHandler = (message, destination, eventOperation) => { } if (key.toUpperCase() !== 'USER_ID') { // userId is not allowed inside properties - outputUser.properties[_.camelCase(key)] = value; + outputUser.properties[lodash.camelCase(key)] = value; } }); if (!outputUser.userId) { diff --git a/src/v0/destinations/pinterest_tag/transform.js b/src/v0/destinations/pinterest_tag/transform.js index 15efd63436d..ee7e2e5b192 100644 --- a/src/v0/destinations/pinterest_tag/transform.js +++ b/src/v0/destinations/pinterest_tag/transform.js @@ -1,4 +1,5 @@ const { get } = require('lodash'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { defaultRequestConfig, @@ -28,7 +29,6 @@ const { getV5EventsEndpoint, API_VERSION, } = require('./config'); -const { InstrumentationError } = require('../../util/errorTypes'); const responseBuilderSimple = (finalPayload, { Config }) => { const { apiVersion = API_VERSION.v3, adAccountId, conversionToken, sendAsTestEvent } = Config; diff --git a/src/v0/destinations/pinterest_tag/utils.js b/src/v0/destinations/pinterest_tag/utils.js index c8ca8dabad5..c1493e9dbd5 100644 --- a/src/v0/destinations/pinterest_tag/utils.js +++ b/src/v0/destinations/pinterest_tag/utils.js @@ -1,5 +1,6 @@ /* eslint-disable no-param-reassign */ const sha256 = require('sha256'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { constructPayload, @@ -8,7 +9,6 @@ const { getHashFromArrayWithDuplicate, removeUndefinedAndNullValues, } = require('../../util'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); const { COMMON_CONFIGS, CUSTOM_CONFIGS, API_VERSION } = require('./config'); const VALID_ACTION_SOURCES = ['app_android', 'app_ios', 'web', 'offline']; @@ -165,7 +165,7 @@ const convertToSnakeCase = (eventName) => const deduceTrackScreenEventName = (message, Config) => { let eventName; const { event, name } = message; - const { apiVersion = API_VERSION.v3, eventsMapping, sendAsCustomEvent } = Config; + const { eventsMapping, sendAsCustomEvent } = Config; const trackEventOrScreenName = event || name; if (!trackEventOrScreenName) { throw new InstrumentationError('event_name could not be mapped. Aborting'); @@ -209,17 +209,11 @@ const deduceTrackScreenEventName = (message, Config) => { return ['custom']; } - if (apiVersion === API_VERSION.v3) { - /* - Step 4: In case both of the above stated cases fail, will send the event name as it is. - This is going to be reflected as "unknown" event in conversion API dashboard. - */ - return [trackEventOrScreenName]; - } - - throw new ConfigurationError( - `${event} is not mapped in UI. Make sure to map the event in UI or enable the 'send as custom event' setting`, - ); + /* + Step 4: In case all of the above stated cases failed, will send the event name as it is. + This is going to be reflected as "unknown" event in conversion API dashboard. + */ + return [trackEventOrScreenName]; }; /** diff --git a/src/v0/destinations/pinterest_tag/utils.test.js b/src/v0/destinations/pinterest_tag/utils.test.js index 717410f0bff..6b4cef95677 100644 --- a/src/v0/destinations/pinterest_tag/utils.test.js +++ b/src/v0/destinations/pinterest_tag/utils.test.js @@ -6,8 +6,8 @@ const userFields = [ ph: '+1234589947', ge: 'male', db: '19960314', - ln: 'Ganguly', - fn: 'Shrouti', + ln: 'Rudderlabs', + fn: 'Test', ct: 'Kolkata', st: 'WB', zp: '700114', @@ -20,10 +20,10 @@ const userFields = [ { em: ['abc@gmail.com', 'def@gmail.com'], ph: ['+1234589947', '+1234589948'], - ln: ['Ganguly', 'Xu'], + ln: ['Rudderlabs', 'Xu'], db: ['19960314', '19960315'], ge: ['female', 'male'], - fn: ['Shrouti', 'Alex'], + fn: ['Test', 'Alex'], ct: ['Kolkata', 'Mumbai'], st: ['WB', 'MH'], zp: ['700114', '700115'], @@ -39,8 +39,8 @@ const expectedOutput = [ { em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], - ln: ['b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8'], - fn: ['d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], @@ -62,7 +62,7 @@ const expectedOutput = [ '22bdde2594851294f2a6f4c34af704e68b398b03129ea9ceb58f0ffe33f6db52', ], ln: [ - 'b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8', + 'dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251', '9c2f138690fca4890c3c4a6691610fbbbdf32091cc001f7355cfdf574baa52b9', ], db: [ @@ -74,7 +74,7 @@ const expectedOutput = [ '0d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf', ], fn: [ - 'd03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776', + '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', '4135aa9dc1b842a653dea846903ddb95bfb8c5a10c504a7fa16e10bc31d1fdf0', ], ct: [ diff --git a/src/v0/destinations/postgres/transform.test.js b/src/v0/destinations/postgres/transform.test.js new file mode 100644 index 00000000000..9256d5bcde3 --- /dev/null +++ b/src/v0/destinations/postgres/transform.test.js @@ -0,0 +1,48 @@ +const { getDataType } = require('../../../../src/warehouse/index'); +const { getDataTypeOverride } = require('./transform'); + +const testCases = [ + { + name: 'normalInt', + data: 1, + type: 'int', + }, + { + name: 'normalFloat', + data: 2.01, + type: 'float', + }, + { + name: 'normalBoolean', + data: true, + type: 'boolean', + }, + { + name: 'normalString', + data: 'postgres transformation[*007}', + type: 'string', + }, + { + name: 'violationErrors', + data: [ + { + message: + 'no schema for eventName : Product Purchased new, eventType : track in trackingPlanID : tp_20dfXJDpotQWHe7hMxfQfgWMZDv::1', + meta: {}, + type: 'Unplanned-Event', + }, + ], + type: 'json', + }, +]; + +describe('Postgres data types testing', () => { + const options = {}; + options.getDataTypeOverride = getDataTypeOverride; + testCases.forEach((testCase) => { + it(`should return data type ${testCase.type} for this input data ${testCase.data} everytime`, () => { + const dataType = getDataType(testCase.name, testCase.data, options); + expect(dataType).toEqual(testCase.type); + }); + }); +}); diff --git a/src/v0/destinations/posthog/transform.js b/src/v0/destinations/posthog/transform.js index 0bdb9e1fea3..62a2f267834 100644 --- a/src/v0/destinations/posthog/transform.js +++ b/src/v0/destinations/posthog/transform.js @@ -1,4 +1,5 @@ const get = require('get-value'); +const { InstrumentationError, TransformationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { DEFAULT_BASE_ENDPOINT, CONFIG_CATEGORIES, MAPPING_CONFIG } = require('./config'); const { @@ -14,7 +15,6 @@ const { removeUndefinedAndNullValues, simpleProcessRouterDest, } = require('../../util'); -const { InstrumentationError, TransformationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); // Logic To match destination Property key that is in Rudder Stack Properties Object. @@ -83,6 +83,10 @@ const responseBuilderSimple = (message, category, destination) => { throw new TransformationError(ErrorMessage.FailedToConstructPayload); } + if (!payload.timestamp && isDefinedAndNotNull(payload.properties?.timestamp)) { + payload.timestamp = payload.properties.timestamp; + } + payload.properties = { ...generatePropertyDefination(message), ...payload.properties, diff --git a/src/v0/destinations/profitwell/transform.js b/src/v0/destinations/profitwell/transform.js index 70de193fbd2..58449fd9c1a 100644 --- a/src/v0/destinations/profitwell/transform.js +++ b/src/v0/destinations/profitwell/transform.js @@ -1,3 +1,8 @@ +const { + NetworkError, + ConfigurationError, + InstrumentationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { getSubscriptionHistory, @@ -15,7 +20,6 @@ const { simpleProcessRouterDest, } = require('../../util'); const { BASE_ENDPOINT, createPayloadMapping } = require('./config'); -const { NetworkError, ConfigurationError, InstrumentationError } = require('../../util/errorTypes'); const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/profitwell/utils.js b/src/v0/destinations/profitwell/utils.js index d7a3562126c..acc4db20353 100644 --- a/src/v0/destinations/profitwell/utils.js +++ b/src/v0/destinations/profitwell/utils.js @@ -1,4 +1,8 @@ const get = require('get-value'); +const { + InstrumentationError, + NetworkInstrumentationError, +} = require('@rudderstack/integrations-lib'); const { httpGET } = require('../../../adapters/network'); const { toUnixTimestamp, @@ -11,7 +15,6 @@ const { constructPayload, } = require('../../util'); const { BASE_ENDPOINT, createPayloadMapping, updatePayloadMapping } = require('./config'); -const { InstrumentationError, NetworkInstrumentationError } = require('../../util/errorTypes'); const CURRENCY_CODES = [ 'aed', diff --git a/src/v0/destinations/profitwell/utils.test.js b/src/v0/destinations/profitwell/utils.test.js index 7b954fc02df..d6fa5e7df0f 100644 --- a/src/v0/destinations/profitwell/utils.test.js +++ b/src/v0/destinations/profitwell/utils.test.js @@ -65,7 +65,7 @@ describe('profitwell utils test cases', () => { }, endpoint: 'https://api.profitwell.com/v2/subscriptions/testId/', files: {}, - headers: { Authorization: 'testApiKey', 'Content-Type': 'application/json' }, + headers: { Authorization: 'dummyApiKey', 'Content-Type': 'application/json' }, method: 'PUT', params: {}, type: 'REST', @@ -73,7 +73,7 @@ describe('profitwell utils test cases', () => { }; expect( createResponseForSubscribedUser(getTestMessage(), 'testId', 'testAlias', { - privateApiKey: 'testApiKey', + privateApiKey: 'dummyApiKey', }), ).toEqual(expectedOutput); }); @@ -83,7 +83,7 @@ describe('profitwell utils test cases', () => { fittingPayload.traits.effectiveDate = '2019-10-15T09:35:31.288Z'; expect(() => createResponseForSubscribedUser(fittingPayload, 'testId', 'testAlias', { - privateApiKey: 'testApiKey', + privateApiKey: 'dummyApiKey', }), ).toThrow('Invalid timestamp format for effectiveDate. Aborting'); }); @@ -108,7 +108,7 @@ describe('profitwell utils test cases', () => { }, endpoint: 'https://api.profitwell.com/v2/subscriptions/', files: {}, - headers: { Authorization: 'testApiKey', 'Content-Type': 'application/json' }, + headers: { Authorization: 'dummyApiKey', 'Content-Type': 'application/json' }, method: 'POST', params: {}, type: 'REST', @@ -116,7 +116,7 @@ describe('profitwell utils test cases', () => { }; expect( createMissingSubscriptionResponse('testId', 'testAlias', null, null, getTestMessage(), { - privateApiKey: 'testApiKey', + privateApiKey: 'dummyApiKey', }), ).toEqual(expectedOutput); }); @@ -126,7 +126,7 @@ describe('profitwell utils test cases', () => { fittingPayload.traits.planInterval = 'test'; expect(() => createMissingSubscriptionResponse('testId', 'testAlias', null, null, fittingPayload, { - privateApiKey: 'testApiKey', + privateApiKey: 'dummyApiKey', }), ).toThrow('invalid format for planInterval. Aborting'); }); @@ -136,7 +136,7 @@ describe('profitwell utils test cases', () => { fittingPayload.traits.planInterval = 'test'; expect(() => createMissingSubscriptionResponse('testId', 'testAlias', 124, fittingPayload, { - privateApiKey: 'testApiKey', + privateApiKey: 'dummyApiKey', }), ).toThrow('Profitwell subscription_id not found'); }); diff --git a/src/v0/destinations/reddit/networkHandler.js b/src/v0/destinations/reddit/networkHandler.js new file mode 100644 index 00000000000..836c0158592 --- /dev/null +++ b/src/v0/destinations/reddit/networkHandler.js @@ -0,0 +1,50 @@ +const { RetryableError } = require('@rudderstack/integrations-lib'); +const { prepareProxyRequest, proxyRequest } = require('../../../adapters/network'); +const { isHttpStatusSuccess } = require('../../util/index'); +const { REFRESH_TOKEN } = require('../../../adapters/networkhandler/authConstants'); + +const { processAxiosResponse } = require('../../../adapters/utils/networkUtils'); + +const redditRespHandler = (destResponse) => { + const { status, response } = destResponse; + + // to handle the case when authorization-token is invalid + if (status === 401 && response.includes('Authorization Required')) { + throw new RetryableError( + `Request failed due to ${response} 'during reddit response transformation'`, + 500, + destResponse, + REFRESH_TOKEN, + ); + } +}; +const responseHandler = (destinationResponse) => { + const message = `Request Processed Successfully`; + const { status } = destinationResponse; + if (!isHttpStatusSuccess(status)) { + // if error, successfully return status, message and original destination response + redditRespHandler(destinationResponse); + } + const { response } = destinationResponse; + const errorMessage = + response.invalid_events && Array.isArray(response.invalid_events) + ? response?.invalid_events[0]?.error_message + : null; + const destResp = errorMessage || destinationResponse; + // Mostly any error will not have a status of 2xx + return { + status, + message, + destResp, + }; +}; +// eslint-disable-next-line @typescript-eslint/naming-convention +class networkHandler { + constructor() { + this.responseHandler = responseHandler; + this.proxy = proxyRequest; + this.prepareProxy = prepareProxyRequest; + this.processAxiosResponse = processAxiosResponse; + } +} +module.exports = { networkHandler }; diff --git a/src/v0/destinations/redis/transform.js b/src/v0/destinations/redis/transform.js index d75385bb505..23c73f0ba40 100644 --- a/src/v0/destinations/redis/transform.js +++ b/src/v0/destinations/redis/transform.js @@ -1,9 +1,9 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const flatten = require('flat'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { isEmpty, isObject } = require('../../util'); const { EventType } = require('../../../constants'); -const { InstrumentationError } = require('../../util/errorTypes'); // processValues: // 1. removes keys with empty values or still an object(empty) after flattening @@ -17,16 +17,41 @@ const processValues = (obj) => { } const val = obj[key]; // eslint-disable-next-line no-param-reassign - obj[key] = _.isArray(val) ? JSON.stringify(val) : _.toString(val); + obj[key] = lodash.isArray(val) ? JSON.stringify(val) : lodash.toString(val); }); }; +const isSubEventTypeProfiles = (message) => { + // check if profiles_model, profiles_entity, profiles_id_type are present in message.context.sources + const { context } = message; + if (!context?.sources) { + return false; + } + const { sources } = context; + return sources.profiles_entity && sources.profiles_id_type && sources.profiles_model; +}; + +const transformSubEventTypeProfiles = (message, workspaceId, destinationId) => { + // form the hash + const hash = `${workspaceId}:${destinationId}:${message.context.sources.profiles_entity}:${message.context.sources.profiles_id_type}:${message.userId}`; + const key = `${message.context.sources.profiles_model}`; + const value = JSON.stringify(message.traits); + return { + message: { + hash, + key, + value, + }, + userId: message.userId, + }; +}; + const process = (event) => { - const { message, destination } = event; + const { message, destination, metadata } = event; const messageType = message && message.type && message.type.toLowerCase(); if (messageType !== EventType.IDENTIFY) { - return []; + throw new InstrumentationError('Only Identify calls are supported'); } if (isEmpty(message.userId)) { @@ -34,10 +59,16 @@ const process = (event) => { } const { prefix } = destination.Config; + const destinationId = destination.ID; const keyPrefix = isEmpty(prefix) ? '' : `${prefix.trim()}:`; + if (isSubEventTypeProfiles(message)) { + const { workspaceId } = metadata; + return transformSubEventTypeProfiles(message, workspaceId, destinationId); + } + const hmap = { - key: `${keyPrefix}user:${_.toString(message.userId)}`, + key: `${keyPrefix}user:${lodash.toString(message.userId)}`, fields: {}, }; diff --git a/src/v0/destinations/refiner/transform.js b/src/v0/destinations/refiner/transform.js index def685b597d..b891945f7fe 100644 --- a/src/v0/destinations/refiner/transform.js +++ b/src/v0/destinations/refiner/transform.js @@ -1,3 +1,4 @@ +const { TransformationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { ErrorMessage, defaultRequestConfig, @@ -13,7 +14,6 @@ const { identifyUserPayloadBuilder, } = require('./utils'); const { EventType } = require('../../../constants'); -const { TransformationError, InstrumentationError } = require('../../util/errorTypes'); const responseBuilder = (payload, endpoint, destination) => { if (payload) { diff --git a/src/v0/destinations/refiner/utils.js b/src/v0/destinations/refiner/utils.js index 109f6ff656e..5e788352ca6 100644 --- a/src/v0/destinations/refiner/utils.js +++ b/src/v0/destinations/refiner/utils.js @@ -1,7 +1,7 @@ const get = require('get-value'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { CONFIG_CATEGORIES } = require('./config'); const { getHashFromArray, getFieldValueFromMessage } = require('../../util'); -const { InstrumentationError } = require('../../util/errorTypes'); /** * Validation for userId and an email diff --git a/src/v0/destinations/revenue_cat/transform.js b/src/v0/destinations/revenue_cat/transform.js index 5f165a92789..407cb916087 100644 --- a/src/v0/destinations/revenue_cat/transform.js +++ b/src/v0/destinations/revenue_cat/transform.js @@ -1,5 +1,10 @@ const set = require('set-value'); const { defaultRequestConfig } = require('rudder-transformer-cdk/build/utils'); +const { + ConfigurationError, + TransformationError, + InstrumentationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { constructPayload, @@ -15,11 +20,6 @@ const { REVENUE_CAT_IDENTIFY_EXCLUSION, BASE_URL, } = require('./config'); -const { - ConfigurationError, - TransformationError, - InstrumentationError, -} = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const trackResponseBuilder = async (message, category, { Config }) => { diff --git a/src/v0/destinations/rockerbox/transform.js b/src/v0/destinations/rockerbox/transform.js index 5369afa7e5c..3ac806e5ee6 100644 --- a/src/v0/destinations/rockerbox/transform.js +++ b/src/v0/destinations/rockerbox/transform.js @@ -1,4 +1,5 @@ const get = require('get-value'); +const { ConfigurationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { defaultRequestConfig, removeUndefinedAndNullValues, @@ -9,7 +10,6 @@ const { } = require('../../util'); const { EventType } = require('../../../constants'); const { CONFIG_CATEGORIES, MAPPING_CONFIG, ROCKERBOX_DEFINED_PROPERTIES } = require('./config'); -const { ConfigurationError, InstrumentationError } = require('../../util/errorTypes'); const responseBuilderSimple = (message, category, destination) => { const payload = constructPayload(message, MAPPING_CONFIG[category.name]); diff --git a/src/v0/destinations/salesforce/config.js b/src/v0/destinations/salesforce/config.js index 6c0ccde80f7..1425bad51b2 100644 --- a/src/v0/destinations/salesforce/config.js +++ b/src/v0/destinations/salesforce/config.js @@ -24,6 +24,8 @@ const SF_TOKEN_REQUEST_URL = 'https://login.salesforce.com/services/oauth2/token const SF_TOKEN_REQUEST_URL_SANDBOX = 'https://test.salesforce.com/services/oauth2/token'; const DESTINATION = 'Salesforce'; +const OAUTH = 'oauth'; +const LEGACY = 'legacy'; const mappingConfig = getMappingConfig(ConfigCategory, __dirname); @@ -37,4 +39,6 @@ module.exports = { ignoredContactTraits: mappingConfig[ConfigCategory.IGNORE_CONTACT.name], ACCESS_TOKEN_CACHE_TTL, DESTINATION, + OAUTH, + LEGACY, }; diff --git a/src/v0/destinations/salesforce/networkHandler.js b/src/v0/destinations/salesforce/networkHandler.js index 622d2ae731c..918084cc899 100644 --- a/src/v0/destinations/salesforce/networkHandler.js +++ b/src/v0/destinations/salesforce/networkHandler.js @@ -1,5 +1,6 @@ const { proxyRequest, prepareProxyRequest } = require('../../../adapters/network'); const { processAxiosResponse } = require('../../../adapters/utils/networkUtils'); +const { LEGACY } = require('./config'); const { salesforceResponseHandler } = require('./utils'); const responseHandler = (destinationResponse, destType) => { @@ -9,6 +10,7 @@ const responseHandler = (destinationResponse, destType) => { destinationResponse, 'during Salesforce Response Handling', destinationResponse?.rudderJobMetadata?.destInfo?.authKey, + LEGACY, ); // else successfully return status as 200, message and original destination response diff --git a/src/v0/destinations/salesforce/transform.js b/src/v0/destinations/salesforce/transform.js index c09a3b33df2..5ada9dfaa07 100644 --- a/src/v0/destinations/salesforce/transform.js +++ b/src/v0/destinations/salesforce/transform.js @@ -1,5 +1,9 @@ const get = require('get-value'); const cloneDeep = require('lodash/cloneDeep'); +const { + InstrumentationError, + NetworkInstrumentationError, +} = require('@rudderstack/integrations-lib'); const { EventType, MappedToDestinationKey } = require('../../../constants'); const { SF_API_VERSION, @@ -22,11 +26,10 @@ const { checkInvalidRtTfEvents, handleRtTfSingleEventError, generateErrorObject, + isHttpStatusSuccess, } = require('../../util'); -const { getAccessToken, salesforceResponseHandler } = require('./utils'); +const { salesforceResponseHandler, collectAuthorizationInfo, getAuthHeader } = require('./utils'); const { handleHttpRequest } = require('../../../adapters/network'); -const { InstrumentationError, NetworkInstrumentationError } = require('../../util/errorTypes'); -const logger = require('../../../logger'); const { JSON_MIME_TYPE } = require('../../util/constant'); // Basic response builder @@ -39,6 +42,7 @@ function responseBuilderSimple( authorizationData, mapProperty, mappedToDestination, + authorizationFlow, ) { const { salesforceType, salesforceId } = salesforceMap; @@ -85,12 +89,12 @@ function responseBuilderSimple( } const response = defaultRequestConfig(); - const header = { + + response.method = defaultPostRequestConfig.requestMethod; + response.headers = { 'Content-Type': JSON_MIME_TYPE, - Authorization: authorizationData.token, + ...getAuthHeader({ authorizationFlow, authorizationData }), }; - response.method = defaultPostRequestConfig.requestMethod; - response.headers = header; response.body.JSON = removeUndefinedValues(rawPayload); response.endpoint = targetEndpoint; @@ -104,28 +108,30 @@ async function getSaleforceIdForRecord( identifierType, identifierValue, destination, + authorizationFlow, ) { const objSearchUrl = `${authorizationData.instanceUrl}/services/data/v${SF_API_VERSION}/parameterizedSearch/?q=${identifierValue}&sobject=${objectType}&in=${identifierType}&${objectType}.fields=id,${identifierType}`; const { processedResponse: processedsfSearchResponse } = await handleHttpRequest( 'get', objSearchUrl, { - headers: { Authorization: authorizationData.token }, + headers: getAuthHeader({ authorizationFlow, authorizationData }), }, { destType: 'salesforce', feature: 'transformation', }, ); - if (processedsfSearchResponse.status !== 200) { + if (!isHttpStatusSuccess(processedsfSearchResponse.status)) { salesforceResponseHandler( processedsfSearchResponse, `:- SALESFORCE SEARCH BY ID`, destination.ID, + authorizationFlow, ); } const searchRecord = processedsfSearchResponse.response?.searchRecords?.find( - (rec) => rec[identifierType] === identifierValue, + (rec) => typeof identifierValue !== 'undefined' && rec[identifierType] === `${identifierValue}`, ); return searchRecord?.Id; @@ -147,7 +153,12 @@ async function getSaleforceIdForRecord( // We'll use the Salesforce Object names by removing "Salesforce-" string from the type field // // Default Object type will be "Lead" for backward compatibility -async function getSalesforceIdFromPayload(message, authorizationData, destination) { +async function getSalesforceIdFromPayload( + message, + authorizationData, + destination, + authorizationFlow, +) { // define default map const salesforceMaps = []; @@ -189,6 +200,7 @@ async function getSalesforceIdFromPayload(message, authorizationData, destinatio identifierType, id, destination, + authorizationFlow, ); } @@ -210,12 +222,13 @@ async function getSalesforceIdFromPayload(message, authorizationData, destinatio throw new InstrumentationError('Invalid Email address for Lead Objet'); } const leadQueryUrl = `${authorizationData.instanceUrl}/services/data/v${SF_API_VERSION}/parameterizedSearch/?q=${email}&sobject=Lead&Lead.fields=id,IsConverted,ConvertedContactId,IsDeleted`; + // request configuration will be conditional const { processedResponse: processedLeadQueryResponse } = await handleHttpRequest( 'get', leadQueryUrl, { - headers: { Authorization: authorizationData.token }, + headers: getAuthHeader({ authorizationFlow, authorizationData }), }, { destType: 'salesforce', @@ -223,8 +236,13 @@ async function getSalesforceIdFromPayload(message, authorizationData, destinatio }, ); - if (processedLeadQueryResponse.status !== 200) { - salesforceResponseHandler(processedLeadQueryResponse, `:- during Lead Query`, destination.ID); + if (!isHttpStatusSuccess(processedLeadQueryResponse.status)) { + salesforceResponseHandler( + processedLeadQueryResponse, + `:- during Lead Query`, + destination.ID, + authorizationFlow, + ); } if (processedLeadQueryResponse.response.searchRecords.length > 0) { @@ -260,7 +278,7 @@ async function getSalesforceIdFromPayload(message, authorizationData, destinatio } // Function for handling identify events -async function processIdentify(message, authorizationData, destination) { +async function processIdentify(message, authorizationData, destination, authorizationFlow) { const mapProperty = destination.Config.mapProperty === undefined ? true : destination.Config.mapProperty; // check the traits before hand @@ -281,7 +299,12 @@ async function processIdentify(message, authorizationData, destination) { const responseData = []; // get salesforce object map - const salesforceMaps = await getSalesforceIdFromPayload(message, authorizationData, destination); + const salesforceMaps = await getSalesforceIdFromPayload( + message, + authorizationData, + destination, + authorizationFlow, + ); // iterate over the object types found salesforceMaps.forEach((salesforceMap) => { @@ -293,6 +316,7 @@ async function processIdentify(message, authorizationData, destination) { authorizationData, mapProperty, mappedToDestination, + authorizationFlow, ), ); }); @@ -302,10 +326,10 @@ async function processIdentify(message, authorizationData, destination) { // Generic process function which invokes specific handler functions depending on message type // and event type where applicable -async function processSingleMessage(message, authorizationData, destination) { +async function processSingleMessage(message, authorizationData, destination, authorizationFlow) { let response; if (message.type === EventType.IDENTIFY) { - response = await processIdentify(message, authorizationData, destination); + response = await processIdentify(message, authorizationData, destination, authorizationFlow); } else { throw new InstrumentationError(`message type ${message.type} is not supported`); } @@ -313,9 +337,13 @@ async function processSingleMessage(message, authorizationData, destination) { } async function process(event) { - // Get the authorization header if not available - const authorizationData = await getAccessToken(event.destination); - const response = await processSingleMessage(event.message, authorizationData, event.destination); + const authInfo = await collectAuthorizationInfo(event); + const response = await processSingleMessage( + event.message, + authInfo.authorizationData, + event.destination, + authInfo.authorizationFlow, + ); return response; } @@ -324,10 +352,9 @@ const processRouterDest = async (inputs, reqMetadata) => { if (errorRespEvents.length > 0) { return errorRespEvents; } - - let authorizationData; + let authInfo; try { - authorizationData = await getAccessToken(inputs[0].destination); + authInfo = await collectAuthorizationInfo(inputs[0]); } catch (error) { const errObj = generateErrorObject(error); const respEvents = getErrorRespEvents( @@ -349,7 +376,12 @@ const processRouterDest = async (inputs, reqMetadata) => { // unprocessed payload return getSuccessRespEvents( - await processSingleMessage(input.message, authorizationData, input.destination), + await processSingleMessage( + input.message, + authInfo.authorizationData, + input.destination, + authInfo.authorizationFlow, + ), [input.metadata], input.destination, ); diff --git a/src/v0/destinations/salesforce/utils.js b/src/v0/destinations/salesforce/utils.js index 295578c9294..96735ecc174 100644 --- a/src/v0/destinations/salesforce/utils.js +++ b/src/v0/destinations/salesforce/utils.js @@ -1,12 +1,18 @@ +const { RetryableError, ThrottledError, AbortedError } = require('@rudderstack/integrations-lib'); const { handleHttpRequest } = require('../../../adapters/network'); -const { isHttpStatusSuccess } = require('../../util'); +const { + isHttpStatusSuccess, + getAuthErrCategoryFromStCode, + isDefinedAndNotNull, +} = require('../../util'); const Cache = require('../../util/cache'); -const { RetryableError, ThrottledError, AbortedError } = require('../../util/errorTypes'); const { ACCESS_TOKEN_CACHE_TTL, SF_TOKEN_REQUEST_URL_SANDBOX, SF_TOKEN_REQUEST_URL, DESTINATION, + LEGACY, + OAUTH, } = require('./config'); const ACCESS_TOKEN_CACHE = new Cache(ACCESS_TOKEN_CACHE_TTL); @@ -19,7 +25,7 @@ const ACCESS_TOKEN_CACHE = new Cache(ACCESS_TOKEN_CACHE_TTL); * @param {*} stage * @param {String} authKey */ -const salesforceResponseHandler = (destResponse, sourceMessage, authKey) => { +const salesforceResponseHandler = (destResponse, sourceMessage, authKey, authorizationFlow) => { const { status, response } = destResponse; // if the response from destination is not a success case build an explicit error @@ -27,6 +33,14 @@ const salesforceResponseHandler = (destResponse, sourceMessage, authKey) => { const matchErrorCode = (errorCode) => response && Array.isArray(response) && response.some((resp) => resp?.errorCode === errorCode); if (status === 401 && authKey && matchErrorCode('INVALID_SESSION_ID')) { + if (authorizationFlow === OAUTH) { + throw new RetryableError( + `${DESTINATION} Request Failed - due to "INVALID_SESSION_ID", (Retryable) ${sourceMessage}`, + 500, + destResponse, + getAuthErrCategoryFromStCode(status), + ); + } // checking for invalid/expired token errors and evicting cache in that case // rudderJobMetadata contains some destination info which is being used to evict the cache ACCESS_TOKEN_CACHE.del(authKey); @@ -41,6 +55,18 @@ const salesforceResponseHandler = (destResponse, sourceMessage, authKey) => { `${DESTINATION} Request Failed - due to "REQUEST_LIMIT_EXCEEDED", (Throttled) ${sourceMessage}`, destResponse, ); + } else if ( + status === 400 && + matchErrorCode('CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY') && + response?.message?.includes('UNABLE_TO_LOCK_ROW') + ) { + // handling the error case where the record is locked by another background job + // this is a retryable error + throw new RetryableError( + `${DESTINATION} Request Failed - "Row locked due to another background running on the same object", (Retryable) ${sourceMessage}`, + 500, + destResponse, + ); } else if (status === 503 || status === 500) { // The salesforce server is unavailable to handle the request. Typically this occurs if the server is down // for maintenance or is currently overloaded. @@ -77,6 +103,11 @@ const salesforceResponseHandler = (destResponse, sourceMessage, authKey) => { * @param {*} destination * @returns */ +const getAccessTokenOauth = (metadata) => ({ + token: metadata.secret?.access_token, + instanceUrl: metadata.secret?.instance_url, +}); + const getAccessToken = async (destination) => { const accessTokenKey = destination.ID; @@ -110,6 +141,7 @@ const getAccessToken = async (destination) => { processedResponse, `:- authentication failed during fetching access token.`, accessTokenKey, + LEGACY, ); } const token = httpResponse.response.data; @@ -119,6 +151,7 @@ const getAccessToken = async (destination) => { processedResponse, `:- authentication failed could not retrieve authorization token.`, accessTokenKey, + LEGACY, ); } return { @@ -128,4 +161,30 @@ const getAccessToken = async (destination) => { }); }; -module.exports = { getAccessToken, salesforceResponseHandler }; +const collectAuthorizationInfo = async (event) => { + let authorizationFlow; + let authorizationData; + if (isDefinedAndNotNull(event.metadata?.secret)) { + authorizationFlow = OAUTH; + authorizationData = getAccessTokenOauth(event.metadata); + } else { + authorizationFlow = LEGACY; + authorizationData = await getAccessToken(event.destination); + } + return { authorizationFlow, authorizationData }; +}; + +const getAuthHeader = (authInfo) => { + const { authorizationFlow, authorizationData } = authInfo; + return authorizationFlow === OAUTH + ? { Authorization: `Bearer ${authorizationData.token}` } + : { Authorization: authorizationData.token }; +}; + +module.exports = { + getAccessTokenOauth, + salesforceResponseHandler, + getAccessToken, + collectAuthorizationInfo, + getAuthHeader, +}; diff --git a/src/v0/destinations/salesforce_oauth/networkHandler.js b/src/v0/destinations/salesforce_oauth/networkHandler.js new file mode 100644 index 00000000000..2bcace31c9a --- /dev/null +++ b/src/v0/destinations/salesforce_oauth/networkHandler.js @@ -0,0 +1,33 @@ +const { proxyRequest, prepareProxyRequest } = require('../../../adapters/network'); +const { processAxiosResponse } = require('../../../adapters/utils/networkUtils'); +const { OAUTH } = require('../salesforce/config'); +const { salesforceResponseHandler } = require('../salesforce/utils'); + +const responseHandler = (destinationResponse, destType) => { + const message = `Request for destination: ${destType} Processed Successfully`; + + salesforceResponseHandler( + destinationResponse, + 'during Salesforce Response Handling', + destinationResponse?.rudderJobMetadata?.destInfo?.authKey, + OAUTH, + ); + + // else successfully return status as 200, message and original destination response + return { + status: 200, + message, + destinationResponse, + }; +}; + +function networkHandler() { + this.responseHandler = responseHandler; + this.proxy = proxyRequest; + this.prepareProxy = prepareProxyRequest; + this.processAxiosResponse = processAxiosResponse; +} + +module.exports = { + networkHandler, +}; diff --git a/src/v0/destinations/sendgrid/deleteUsers.js b/src/v0/destinations/sendgrid/deleteUsers.js index e93fefa59ee..8410f41296f 100644 --- a/src/v0/destinations/sendgrid/deleteUsers.js +++ b/src/v0/destinations/sendgrid/deleteUsers.js @@ -1,3 +1,4 @@ +const { NetworkError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { httpDELETE } = require('../../../adapters/network'); const { delIdUrlLimit, DELETE_CONTACTS_ENDPOINT } = require('./config'); const { @@ -5,7 +6,6 @@ const { getDynamicErrorType, } = require('../../../adapters/utils/networkUtils'); const { isHttpStatusSuccess } = require('../../util'); -const { NetworkError, ConfigurationError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); const { executeCommonValidations } = require('../../util/regulation-api'); diff --git a/src/v0/destinations/sendgrid/transform.js b/src/v0/destinations/sendgrid/transform.js index 0f944e5f28f..5038fedf7b7 100644 --- a/src/v0/destinations/sendgrid/transform.js +++ b/src/v0/destinations/sendgrid/transform.js @@ -1,4 +1,9 @@ -const _ = require('lodash'); +const lodash = require('lodash'); +const { + ConfigurationError, + TransformationError, + InstrumentationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { ErrorMessage, @@ -34,11 +39,6 @@ const { generatePayloadFromConfig, createOrUpdateContactPayloadBuilder, } = require('./util'); -const { - ConfigurationError, - TransformationError, - InstrumentationError, -} = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const responseBuilder = (payload, method, endpoint, apiKey) => { @@ -211,10 +211,13 @@ const batchEvents = (successRespList) => { "contactListIds3": [{message : {}, metadata : {}, destination: {}}], "contactListIds4": [{message : {}, metadata : {}, destination: {}}] */ - const eventGroups = _.groupBy(identifyCalls, (event) => event.message.body.JSON.contactListIds); + const eventGroups = lodash.groupBy( + identifyCalls, + (event) => event.message.body.JSON.contactListIds, + ); Object.keys(eventGroups).forEach((combination) => { - const eventChunks = _.chunk(eventGroups[combination], MAX_BATCH_SIZE); + const eventChunks = lodash.chunk(eventGroups[combination], MAX_BATCH_SIZE); // eventChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] eventChunks.forEach((chunk) => { const batchEventResponse = generateBatchedPaylaodForArray(chunk, combination); diff --git a/src/v0/destinations/sendgrid/util.js b/src/v0/destinations/sendgrid/util.js index fad227a65be..1df34bfe69d 100644 --- a/src/v0/destinations/sendgrid/util.js +++ b/src/v0/destinations/sendgrid/util.js @@ -1,4 +1,9 @@ const get = require('get-value'); +const { + NetworkError, + ConfigurationError, + InstrumentationError, +} = require('@rudderstack/integrations-lib'); const logger = require('../../../logger'); const { isEmpty, @@ -21,7 +26,6 @@ const { processAxiosResponse, } = require('../../../adapters/utils/networkUtils'); const { httpGET } = require('../../../adapters/network'); -const { NetworkError, ConfigurationError, InstrumentationError } = require('../../util/errorTypes'); const { AUTH_CACHE_TTL, JSON_MIME_TYPE } = require('../../util/constant'); const { MAPPING_CONFIG, CONFIG_CATEGORIES } = require('./config'); diff --git a/src/v0/destinations/sendinblue/transform.js b/src/v0/destinations/sendinblue/transform.js index 8e8645f32fb..7663672f124 100644 --- a/src/v0/destinations/sendinblue/transform.js +++ b/src/v0/destinations/sendinblue/transform.js @@ -1,4 +1,6 @@ /* eslint-disable camelcase */ +/* eslint-disable @typescript-eslint/naming-convention */ +const { TransformationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { defaultRequestConfig, @@ -24,7 +26,6 @@ const { prepareTrackEventData, getListIds, } = require('./util'); -const { TransformationError, InstrumentationError } = require('../../util/errorTypes'); const responseBuilder = ( payload, diff --git a/src/v0/destinations/sendinblue/util.js b/src/v0/destinations/sendinblue/util.js index f184ee1ac15..9ad37fc9b79 100644 --- a/src/v0/destinations/sendinblue/util.js +++ b/src/v0/destinations/sendinblue/util.js @@ -1,3 +1,4 @@ +const { NetworkError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { EMAIL_SUFFIX, getContactDetailsEndpoint } = require('./config'); const { getHashFromArray, @@ -12,7 +13,6 @@ const { processAxiosResponse, getDynamicErrorType, } = require('../../../adapters/utils/networkUtils'); -const { NetworkError, InstrumentationError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/serenytics/transform.js b/src/v0/destinations/serenytics/transform.js index ee7279e2889..ee38f7d1a1b 100644 --- a/src/v0/destinations/serenytics/transform.js +++ b/src/v0/destinations/serenytics/transform.js @@ -1,14 +1,14 @@ +const { + ConfigurationError, + TransformationError, + InstrumentationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { ErrorMessage, simpleProcessRouterDest, getHashFromArrayWithDuplicate, } = require('../../util'); -const { - ConfigurationError, - TransformationError, - InstrumentationError, -} = require('../../util/errorTypes'); const { CONFIG_CATEGORIES, diff --git a/src/v0/destinations/serenytics/utils.js b/src/v0/destinations/serenytics/utils.js index bccce2585d0..90ce374d5a0 100644 --- a/src/v0/destinations/serenytics/utils.js +++ b/src/v0/destinations/serenytics/utils.js @@ -1,10 +1,10 @@ +const { ConfigurationError } = require('@rudderstack/integrations-lib'); const { constructPayload, extractCustomFields, defaultRequestConfig, defaultPostRequestConfig, } = require('../../util'); -const { ConfigurationError } = require('../../util/errorTypes'); const { MAPPING_CONFIG } = require('./config'); const checkStorageUrl = (STORAGE_URL, messageType) => { diff --git a/src/v0/destinations/sfmc/transform.js b/src/v0/destinations/sfmc/transform.js index 161720b2cc6..7623d751f1a 100644 --- a/src/v0/destinations/sfmc/transform.js +++ b/src/v0/destinations/sfmc/transform.js @@ -1,4 +1,11 @@ /* eslint-disable no-nested-ternary */ +const { + NetworkError, + ConfigurationError, + InstrumentationError, + isDefinedAndNotNull, + isEmpty, +} = require('@rudderstack/integrations-lib'); const myAxios = require('../../../util/myAxios'); const { EventType } = require('../../../constants'); const { CONFIG_CATEGORIES, MAPPING_CONFIG, ENDPOINTS } = require('./config'); @@ -12,14 +19,12 @@ const { flattenJson, toTitleCase, getHashFromArray, - isEmpty, simpleProcessRouterDest, } = require('../../util'); const { getDynamicErrorType, nodeSysErrorToStatus, } = require('../../../adapters/utils/networkUtils'); -const { NetworkError, ConfigurationError, InstrumentationError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); @@ -217,10 +222,22 @@ const responseBuilderSimple = async (message, category, destination) => { } if (category.type === 'identify' && createOrUpdateContacts) { - throw new ConfigurationError('Creating or updating contacts is disabled'); + throw new ConfigurationError( + 'Creating or updating contacts is disabled. To enable this feature set "Do Not Create or Update Contacts" to false', + ); } - if (category.type === 'track' && hashMapExternalKey[message.event.toLowerCase()]) { + if (category.type === 'track') { + if (isEmpty(message.event)) { + throw new ConfigurationError('Event name is required for track events'); + } + if (typeof message.event !== 'string') { + throw new ConfigurationError('Event name must be a string'); + } + if (!isDefinedAndNotNull(hashMapExternalKey[message.event.toLowerCase()])) { + throw new ConfigurationError('Event not mapped for this track call'); + } + return responseBuilderForInsertData( message, hashMapExternalKey[message.event.toLowerCase()], @@ -233,7 +250,7 @@ const responseBuilderSimple = async (message, category, destination) => { ); } - throw new ConfigurationError('Event not mapped for this track call'); + throw new ConfigurationError(`Event type '${category.type}' not supported`); }; const processEvent = async (message, destination) => { @@ -270,4 +287,4 @@ const processRouterDest = async (inputs, reqMetadata) => { return respList; }; -module.exports = { process, processRouterDest }; +module.exports = { process, processRouterDest, responseBuilderSimple }; diff --git a/src/v0/destinations/sfmc/transform.test.js b/src/v0/destinations/sfmc/transform.test.js new file mode 100644 index 00000000000..c49c49017c6 --- /dev/null +++ b/src/v0/destinations/sfmc/transform.test.js @@ -0,0 +1,125 @@ +const { ConfigurationError } = require('@rudderstack/integrations-lib'); +const axios = require('axios'); +const MockAxiosAdapter = require('axios-mock-adapter'); +const { responseBuilderSimple } = require('./transform'); +beforeAll(() => { + const mock = new MockAxiosAdapter(axios); + mock + .onPost('https://yourSubDomain.auth.marketingcloudapis.com/v2/token') + .reply(200, '{"access_token":"yourAuthToken"}'); +}); + +describe('responseBuilderSimple', () => { + const destination = { + Config: { + clientId: 'yourClientId', + clientSecret: 'yourClientSecret', + subDomain: 'yourSubDomain', + createOrUpdateContacts: false, + externalKey: 'yourExternalKey', + eventToExternalKey: [{ from: 'purchase', to: 'purchaseKey' }], + eventToPrimaryKey: [{ from: 'purchase', to: 'primaryKey' }], + eventToUUID: [{ event: 'purchase', uuid: true }], + }, + }; + it('should return an array of two payloads for identify calls when createOrUpdateContacts is false', async () => { + const message = { + type: 'identify', + userId: '12345', + }; + + const category = { + type: 'identify', + name: 'Identify', + }; + + const response = await responseBuilderSimple(message, category, destination); + + expect(response).toHaveLength(2); + expect(response[0]).toHaveProperty('endpoint'); + expect(response[0]).toHaveProperty('method'); + expect(response[0]).toHaveProperty('body.JSON'); + expect(response[0]).toHaveProperty('headers'); + expect(response[1]).toHaveProperty('endpoint'); + expect(response[1]).toHaveProperty('method'); + expect(response[1]).toHaveProperty('body.JSON'); + expect(response[1]).toHaveProperty('headers'); + }); + + // Throws an error when event name is not provided for track calls + it('should throw an error when event name is not provided for track calls', async () => { + const message = { + type: 'track', + }; + + const category = { + type: 'track', + name: 'Track', + }; + + try { + await responseBuilderSimple(message, category, destination); + } catch (e) { + expect(e).toBeInstanceOf(ConfigurationError); + expect(e.message).toBe('Event name is required for track events'); + } + }); + + // Throws an error when event is not mapped for track calls + it('should throw an error when event is not mapped for track calls', async () => { + const message = { + type: 'track', + event: 'unmappedEvent', + }; + + const category = { + type: 'track', + name: 'Track', + }; + try { + await responseBuilderSimple(message, category, destination); + } catch (e) { + expect(e).toBeInstanceOf(ConfigurationError); + expect(e.message).toBe('Event not mapped for this track call'); + } + }); + + // Throws an error when event type is not supported + it('should throw an error when event type is not supported', async () => { + const message = { + type: 'unsupported', + }; + + const category = { + type: 'unsupported', + name: 'Unsupported', + }; + + try { + await responseBuilderSimple(message, category, destination); + } catch (e) { + expect(e).toBeInstanceOf(ConfigurationError); + expect(e.message).toBe("Event type 'unsupported' not supported"); + } + }); + + // Returns a payload for track calls when event is mapped and event name is a string + it('should return a payload for track calls when event is mapped and event name is a string', async () => { + const message = { + type: 'track', + event: 'purchase', + userId: '12345', + }; + + const category = { + type: 'track', + name: 'Track', + }; + + const response = await responseBuilderSimple(message, category, destination); + expect(response).toHaveProperty('endpoint'); + expect(response).toHaveProperty('method'); + expect(response).toHaveProperty('body.JSON'); + expect(response).toHaveProperty('headers'); + }); +}); diff --git a/src/v0/destinations/shynet/transform.js b/src/v0/destinations/shynet/transform.js index 833616a11ff..565c0790d52 100644 --- a/src/v0/destinations/shynet/transform.js +++ b/src/v0/destinations/shynet/transform.js @@ -1,4 +1,5 @@ /* eslint-disable no-underscore-dangle */ +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { @@ -9,7 +10,6 @@ const { generateUUID, } = require('../../util'); const { JSON_MIME_TYPE } = require('../../util/constant'); -const { InstrumentationError } = require('../../util/errorTypes'); const { ConfigCategory, mappingConfig } = require('./config'); diff --git a/src/v0/destinations/signl4/transform.js b/src/v0/destinations/signl4/transform.js index 63dc10d73c7..3a8b23b630f 100644 --- a/src/v0/destinations/signl4/transform.js +++ b/src/v0/destinations/signl4/transform.js @@ -1,3 +1,8 @@ +const { + ConfigurationError, + TransformationError, + InstrumentationError, +} = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { BASE_URL } = require('./config'); const { populatePayload } = require('./utils'); @@ -7,11 +12,6 @@ const { simpleProcessRouterDest, removeUndefinedAndNullAndEmptyValues, } = require('../../util'); -const { - ConfigurationError, - TransformationError, - InstrumentationError, -} = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const responseBuilder = (payload, endpoint) => { diff --git a/src/v0/destinations/singular/transform.js b/src/v0/destinations/singular/transform.js index 749debb0b06..ff5d18db9aa 100644 --- a/src/v0/destinations/singular/transform.js +++ b/src/v0/destinations/singular/transform.js @@ -1,3 +1,4 @@ +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { BASE_URL } = require('./config'); const { defaultRequestConfig, @@ -10,7 +11,6 @@ const { generateRevenuePayloadArray, isSessionEvent, } = require('./util'); -const { InstrumentationError } = require('../../util/errorTypes'); const responseBuilderSimple = (message, { Config }) => { const eventName = message.event; diff --git a/src/v0/destinations/singular/util.js b/src/v0/destinations/singular/util.js index c2a88a9c46e..4c5aeb8964a 100644 --- a/src/v0/destinations/singular/util.js +++ b/src/v0/destinations/singular/util.js @@ -1,4 +1,5 @@ -const _ = require('lodash'); +const lodash = require('lodash'); +const { TransformationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { CONFIG_CATEGORIES, MAPPING_CONFIG, @@ -20,7 +21,6 @@ const { isDefinedAndNotNull, isAppleFamily, } = require('../../util'); -const { TransformationError, InstrumentationError } = require('../../util/errorTypes'); /* All the fields listed inside properties which are not directly mapped, will be sent to 'e' as custom event attributes @@ -75,7 +75,7 @@ const exclusionList = { * @param {*} eventName */ const isSessionEvent = (Config, eventName) => { - const mappedSessionEvents = _.map(Config.sessionEventList, 'sessionEventName'); + const mappedSessionEvents = lodash.map(Config.sessionEventList, 'sessionEventName'); return mappedSessionEvents.includes(eventName) || SESSIONEVENTS.includes(eventName.toLowerCase()); }; diff --git a/src/v0/destinations/slack/transform.js b/src/v0/destinations/slack/transform.js index ee58b63dff4..41282c68877 100644 --- a/src/v0/destinations/slack/transform.js +++ b/src/v0/destinations/slack/transform.js @@ -1,6 +1,6 @@ -/* eslint-disable no-nested-ternary */ -/* eslint-disable no-prototype-builtins */ +/* eslint-disable no-nested-ternary, no-restricted-syntax, no-prototype-builtins */ const Handlebars = require('handlebars'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { stringifyJSON, @@ -16,25 +16,37 @@ const { defaultRequestConfig, getFieldValueFromMessage, simpleProcessRouterDest, + isDefinedAndNotNull, } = require('../../util'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); // build the response to be sent to backend, url encoded header is required as slack accepts payload in this format // add the username and image for Rudder // image currently served from prod CDN -const buildResponse = (payloadJSON, message, destination) => { - const endpoint = destination.Config.webhookUrl; +const buildResponse = ( + payloadJSON, + message, + destination, + channelWebhook = null, + sendAppNameAndIcon = true, +) => { + const endpoint = channelWebhook || destination.Config.webhookUrl; const response = defaultRequestConfig(); response.endpoint = endpoint; response.method = defaultPostRequestConfig.requestMethod; response.headers = { 'Content-Type': 'application/x-www-form-urlencoded' }; response.userId = message.userId ? message.userId : message.anonymousId; + const payload = + sendAppNameAndIcon === true + ? JSON.stringify({ + ...payloadJSON, + username: SLACK_USER_NAME, + icon_url: SLACK_RUDDER_IMAGE_URL, + }) + : JSON.stringify({ + ...payloadJSON, + }); response.body.FORM = { - payload: JSON.stringify({ - ...payloadJSON, - username: SLACK_USER_NAME, - icon_url: SLACK_RUDDER_IMAGE_URL, - }), + payload, }; response.statusCode = 200; logger.debug(response); @@ -42,21 +54,15 @@ const buildResponse = (payloadJSON, message, destination) => { }; const processIdentify = (message, destination) => { - // debug(JSON.stringify(destination)); const identifyTemplateConfig = destination.Config.identifyTemplate; const traitsList = getWhiteListedTraits(destination); const defaultIdentifyTemplate = 'Identified {{name}}'; logger.debug('defaulTraitsList:: ', traitsList); const uName = getName(message); - // required traitlist ?? - /* if (!traitsList || traitsList.length == 0) { - throw Error("traits list in config not present"); - } */ - const template = Handlebars.compile( (identifyTemplateConfig - ? identifyTemplateConfig.trim().length === 0 + ? identifyTemplateConfig.trim()?.length === 0 ? undefined : identifyTemplateConfig : undefined) || @@ -69,7 +75,7 @@ const processIdentify = (message, destination) => { logger.debug( 'identifyTemplateConfig: ', (identifyTemplateConfig - ? identifyTemplateConfig.trim().length === 0 + ? identifyTemplateConfig.trim()?.length === 0 ? undefined : identifyTemplateConfig : undefined) || @@ -95,18 +101,40 @@ const processIdentify = (message, destination) => { return buildResponse({ text: resultText }, message, destination); }; -function buildChannelList(channelListToSendThisEvent, eventChannelConfig, eventName) { - eventChannelConfig.forEach((channelConfig) => { - const configEventName = channelConfig.eventName - ? channelConfig.eventName.trim().length > 0 - ? channelConfig.eventName - : undefined - : undefined; - const configEventChannel = channelConfig.eventChannel - ? channelConfig.eventChannel.trim().length > 0 - ? channelConfig.eventChannel - : undefined - : undefined; +const isEventNameMatchesRegex = (eventName, regex) => eventName.match(regex)?.length > 0; + +const getChannelForEventName = (eventChannelSettings, eventName) => { + for (const channelConfig of eventChannelSettings) { + const configEventName = + channelConfig?.eventName?.trim()?.length > 0 ? channelConfig.eventName : null; + const channelWebhook = + channelConfig?.eventChannelWebhook?.length > 0 ? channelConfig.eventChannelWebhook : null; + + if (configEventName && isDefinedAndNotNull(channelWebhook)) { + if (channelConfig.eventRegex) { + logger.debug('regex: ', `${configEventName} trying to match with ${eventName}`); + logger.debug( + 'match:: ', + configEventName, + eventName, + eventName.match(new RegExp(configEventName, 'g')), + ); + if (isEventNameMatchesRegex(eventName, new RegExp(configEventName, 'g'))) { + return channelWebhook; + } + } else if (channelConfig.eventName === eventName) { + return channelWebhook; + } + } + } + return null; +}; +const getChannelNameForEvent = (eventChannelSettings, eventName) => { + for (const channelConfig of eventChannelSettings) { + const configEventName = + channelConfig?.eventName?.trim()?.length > 0 ? channelConfig.eventName : null; + const configEventChannel = + channelConfig?.eventChannel?.trim()?.length > 0 ? channelConfig.eventChannel : null; if (configEventName && configEventChannel) { if (channelConfig.eventRegex) { logger.debug('regex: ', `${configEventName} trying to match with ${eventName}`); @@ -116,37 +144,29 @@ function buildChannelList(channelListToSendThisEvent, eventChannelConfig, eventN eventName, eventName.match(new RegExp(configEventName, 'g')), ); - if ( - eventName.match(new RegExp(configEventName, 'g')) && - eventName.match(new RegExp(configEventName, 'g')).length > 0 - ) { - channelListToSendThisEvent.add(configEventChannel); + if (isEventNameMatchesRegex(eventName, new RegExp(configEventName, 'g'))) { + return configEventChannel; } } else if (configEventName === eventName) { - channelListToSendThisEvent.add(configEventChannel); + return configEventChannel; } } - }); -} + } + return null; +}; -function buildtemplateList(templateListForThisEvent, eventTemplateConfig, eventName) { - eventTemplateConfig.forEach((templateConfig) => { - const configEventName = templateConfig.eventName - ? templateConfig.eventName.trim().length > 0 - ? templateConfig.eventName - : undefined - : undefined; +const buildtemplateList = (templateListForThisEvent, eventTemplateSettings, eventName) => { + eventTemplateSettings.forEach((templateConfig) => { + const configEventName = + templateConfig?.eventName?.trim()?.length > 0 ? templateConfig.eventName : undefined; const configEventTemplate = templateConfig.eventTemplate - ? templateConfig.eventTemplate.trim().length > 0 + ? templateConfig.eventTemplate.trim()?.length > 0 ? templateConfig.eventTemplate : undefined : undefined; if (configEventName && configEventTemplate) { if (templateConfig.eventRegex) { - if ( - eventName.match(new RegExp(configEventName, 'g')) && - eventName.match(new RegExp(configEventName, 'g')).length > 0 - ) { + if (isEventNameMatchesRegex(eventName, new RegExp(configEventName, 'g'))) { templateListForThisEvent.add(configEventTemplate); } } else if (configEventName === eventName) { @@ -154,32 +174,47 @@ function buildtemplateList(templateListForThisEvent, eventTemplateConfig, eventN } } }); -} +}; const processTrack = (message, destination) => { // logger.debug(JSON.stringify(destination)); - const eventChannelConfig = destination.Config.eventChannelSettings; - const eventTemplateConfig = destination.Config.eventTemplateSettings; + const { Config } = destination; + const { eventChannelSettings, eventTemplateSettings, incomingWebhooksType, denyListOfEvents } = + Config; + const eventName = message.event; - if (!message.event) { + if (!eventName) { throw new InstrumentationError('Event name is required'); } - const eventName = message.event; - const channelListToSendThisEvent = new Set(); + if (denyListOfEvents?.length > 0) { + const denyListofEvents = denyListOfEvents.map((item) => item.eventName); + if (denyListofEvents.includes(eventName)) { + throw new ConfigurationError('Event is denied. Please check configuration.'); + } + } + const templateListForThisEvent = new Set(); const traitsList = getWhiteListedTraits(destination); - // Add global context to regex always - // build the channel list and templatelist for the event, pick the first in case of multiple - // using set to filter out - // document this behaviour + /* Add global context to regex always + * build the channel list and template list for the event, pick the first in case of multiple + * using set to filter out + * document this behaviour + */ - // building channel list - buildChannelList(channelListToSendThisEvent, eventChannelConfig, eventName); - const channelListArray = Array.from(channelListToSendThisEvent); + // getting specific channel for event if available + + let channelWebhook; + let channelName; + if (incomingWebhooksType && incomingWebhooksType === 'modern') { + channelWebhook = getChannelForEventName(eventChannelSettings, eventName); + } else { + // default + channelName = getChannelNameForEvent(eventChannelSettings, eventName); + } // building templatelist - buildtemplateList(templateListForThisEvent, eventTemplateConfig, eventName); + buildtemplateList(templateListForThisEvent, eventTemplateSettings, eventName); const templateListArray = Array.from(templateListForThisEvent); logger.debug( @@ -187,8 +222,6 @@ const processTrack = (message, destination) => { templateListArray, templateListArray.length > 0 ? templateListArray[0] : undefined, ); - logger.debug('channelListToSendThisEvent: ', channelListArray); - // track event default handlebar expression const defaultTemplate = '{{name}} did {{event}}'; const template = templateListArray @@ -219,9 +252,16 @@ const processTrack = (message, destination) => { } catch (err) { throw new ConfigurationError(`Something is wrong with the event template: '${template}'`); } - - if (channelListArray && channelListArray.length > 0) { - return buildResponse({ channel: channelListArray[0], text: resultText }, message, destination); + if (incomingWebhooksType === 'modern' && channelWebhook) { + return buildResponse({ text: resultText }, message, destination, channelWebhook, false); + } + if (channelName) { + return buildResponse( + { channel: channelName, text: resultText }, + message, + destination, + channelWebhook, + ); } return buildResponse({ text: resultText }, message, destination); }; diff --git a/src/v0/destinations/slack/util.js b/src/v0/destinations/slack/util.js index b327d1d8677..658ffe4d374 100644 --- a/src/v0/destinations/slack/util.js +++ b/src/v0/destinations/slack/util.js @@ -72,8 +72,10 @@ const stringifyJSON = (json, whiteListedTraits) => { return output; }; -// build default identify template -// if whitelisted traits are present build on it else build the entire traits object +/* build default identify template + * if whitelisted traits are present build on it + * else build the entire traits object + */ const buildDefaultTraitTemplate = (traitsList, traits, template) => { let generatedStringFromTemplate = template; // build template with whitelisted traits diff --git a/src/v0/destinations/snapchat_conversion/config.js b/src/v0/destinations/snapchat_conversion/config.js index 1b36c0463cb..e0126ea3b1a 100644 --- a/src/v0/destinations/snapchat_conversion/config.js +++ b/src/v0/destinations/snapchat_conversion/config.js @@ -4,7 +4,8 @@ const ENDPOINT = 'https://tr.snapchat.com/v2/conversion'; const MAX_BATCH_SIZE = 2000; const ConfigCategory = { - COMMON: { name: 'SnapchatCommonConfig' }, + DEFAULT: { name: 'SnapchatTrackDefaultConfig' }, + TRACK_COMMON: { name: 'TrackEventCommonConfig' }, /* E-Commerce Events */ // Ref - https://www.rudderstack.com/docs/rudderstack-api/api-specification/rudderstack-ecommerce-events-specification/ /* Browsing Section */ @@ -72,7 +73,7 @@ const eventNameMapping = { custom_event_4: 'CUSTOM_EVENT_4', custom_event_5: 'CUSTOM_EVENT_5', }; - +const pageTypeToTrackEvent = 'page_view'; const mappingConfig = getMappingConfig(ConfigCategory, __dirname); module.exports = { @@ -80,6 +81,6 @@ module.exports = { ConfigCategory, eventNameMapping, mappingConfig, - trackCommonConfig: mappingConfig[ConfigCategory.COMMON.name], MAX_BATCH_SIZE, + pageTypeToTrackEvent, }; diff --git a/src/v0/destinations/snapchat_conversion/data/OrderCompletedConfig.json b/src/v0/destinations/snapchat_conversion/data/OrderCompletedConfig.json index dc5696e9a4b..38e85ca2d83 100644 --- a/src/v0/destinations/snapchat_conversion/data/OrderCompletedConfig.json +++ b/src/v0/destinations/snapchat_conversion/data/OrderCompletedConfig.json @@ -6,7 +6,7 @@ }, { "destKey": "item_category", - "sourceKeys": "properties.item_category", + "sourceKeys": ["properties.item_category", "properties.category"], "required": false }, { diff --git a/src/v0/destinations/snapchat_conversion/data/SnapchatCommonConfig.json b/src/v0/destinations/snapchat_conversion/data/SnapchatTrackDefaultConfig.json similarity index 100% rename from src/v0/destinations/snapchat_conversion/data/SnapchatCommonConfig.json rename to src/v0/destinations/snapchat_conversion/data/SnapchatTrackDefaultConfig.json diff --git a/src/v0/destinations/snapchat_conversion/data/TrackEventCommonConfig.json b/src/v0/destinations/snapchat_conversion/data/TrackEventCommonConfig.json new file mode 100644 index 00000000000..42b61fd605e --- /dev/null +++ b/src/v0/destinations/snapchat_conversion/data/TrackEventCommonConfig.json @@ -0,0 +1,90 @@ +[ + { + "destKey": "description", + "sourceKeys": "properties.description", + "required": false + }, + { + "destKey": "brands", + "sourceKeys": "properties.brands", + "required": false, + "metadata": { + "type": "IsArray" + } + }, + { + "destKey": "event_tag", + "sourceKeys": "properties.event_tag", + "required": false + }, + { + "destKey": "click_id", + "sourceKeys": "properties.click_id", + "required": false + }, + { + "destKey": "level", + "sourceKeys": "properties.level", + "required": false + }, + { + "destKey": "uuid_c1", + "sourceKeys": "properties.uuid_c1", + "required": false + }, + { + "destKey": "customer_status", + "sourceKeys": "properties.customer_status", + "required": false + }, + { + "destKey": "data", + "sourceKeys": "properties.data", + "required": false + }, + { + "destKey": "att_status", + "sourceKeys": "properties.att_status", + "required": false + }, + { + "destKey": "sign_up_method", + "sourceKeys": "properties.sign_up_method", + "required": false + }, + { + "destKey": "advertiser_cookie_1", + "sourceKeys": "properties.advertiser_cookie_1", + "required": false + }, + { + "destKey": "delivery_method", + "sourceKeys": "properties.delivery_method", + "required": false + }, + { + "sourceKeys": "context.device.model", + "destKey": "device_model", + "required": false + }, + { + "sourceKeys": "country", + "destKey": "country", + "sourceFromGenericMap": true, + "required": false + }, + { + "sourceKeys": "region", + "destKey": "region", + "sourceFromGenericMap": true, + "required": false + }, + { + "sourceKeys": "context.userAgent", + "destKey": "user_agent", + "metadata": { + "type": "toLower" + }, + "required": false + } +] diff --git a/src/v0/destinations/snapchat_conversion/transform.js b/src/v0/destinations/snapchat_conversion/transform.js index ca489f54600..37d321a468d 100644 --- a/src/v0/destinations/snapchat_conversion/transform.js +++ b/src/v0/destinations/snapchat_conversion/transform.js @@ -1,5 +1,6 @@ const get = require('get-value'); const moment = require('moment'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { @@ -21,6 +22,7 @@ const { mappingConfig, ConfigCategory, MAX_BATCH_SIZE, + pageTypeToTrackEvent, } = require('./config'); const { msUnixTimestamp, @@ -32,7 +34,6 @@ const { channelMapping, generateBatchedPayloadForArray, } = require('./util'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); function buildResponse(apiKey, payload) { @@ -46,6 +47,30 @@ function buildResponse(apiKey, payload) { response.body.JSON = removeUndefinedAndNullValues(payload); return response; } +const populateHashedTraitsValues = (payload, message) => { + const firstName = getFieldValueFromMessage(message, 'firstName'); + const lastName = getFieldValueFromMessage(message, 'lastName'); + const middleName = getFieldValueFromMessage(message, 'middleName'); + const city = getFieldValueFromMessage(message, 'city'); + const state = getFieldValueFromMessage(message, 'state'); + const zip = getFieldValueFromMessage(message, 'zipcode'); + const updatedPayload = { + ...payload, + hashed_first_name_sha: firstName + ? getHashedValue(firstName.toString().toLowerCase().trim()) + : undefined, + hashed_middle_name_sha: middleName + ? getHashedValue(middleName.toString().toLowerCase().trim()) + : undefined, + hashed_last_name_sha: lastName + ? getHashedValue(lastName.toString().toLowerCase().trim()) + : undefined, + hashed_city_sha: city ? getHashedValue(city.toString().toLowerCase().trim()) : undefined, + hashed_zip: zip ? getHashedValue(zip.toString().toLowerCase().trim()) : undefined, + hashed_state_sha: state ? getHashedValue(state.toString().toLowerCase().trim()) : undefined, + }; + return updatedPayload; +}; /** * Seperate out hashing operations into one function @@ -53,12 +78,12 @@ function buildResponse(apiKey, payload) { * @param {*} message * @returns updatedPayload */ -function populateHashedValues(payload, message) { - const updatedPayload = payload; +const populateHashedValues = (payload, message) => { const email = getFieldValueFromMessage(message, 'email'); const phone = getNormalizedPhoneNumber(message); const ip = message.context?.ip || message.request_ip; + const updatedPayload = populateHashedTraitsValues(payload, message); if (email) { updatedPayload.hashed_email = getHashedValue(email.toString().toLowerCase().trim()); } @@ -84,14 +109,59 @@ function populateHashedValues(payload, message) { ); } return updatedPayload; -} +}; +const getEventCommonProperties = (message) => + constructPayload(message, mappingConfig[ConfigCategory.TRACK_COMMON.name]); +const validateEventConfiguration = (eventConversionType, pixelId, snapAppId, appId) => { + if ((eventConversionType === 'WEB' || eventConversionType === 'OFFLINE') && !pixelId) { + throw new ConfigurationError('Pixel Id is required for web and offline events'); + } -// Returns the response for the track event after constructing the payload and setting necessary fields -function trackResponseBuilder(message, { Config }, mappedEvent) { - let payload = {}; - const event = mappedEvent.trim().replace(/\s+/g, '_'); + if (eventConversionType === 'MOBILE_APP' && !(appId && snapAppId)) { + let requiredId = 'App Id'; + if (!snapAppId) { + requiredId = 'Snap App Id'; + } + throw new ConfigurationError(`${requiredId} is required for app events`); + } +}; +const validateRequiredFields = (payload) => { + if ( + !payload.hashed_email && + !payload.hashed_phone_number && + !payload.hashed_mobile_ad_id && + !(payload.hashed_ip_address && payload.user_agent) + ) { + throw new InstrumentationError( + 'At least one of email or phone or advertisingId or ip and userAgent is required', + ); + } +}; +const addSpecificEventDetails = ( + message, + payload, + eventConversionType, + pixelId, + snapAppId, + appId, +) => { + const updatedPayload = { ...payload }; + if (eventConversionType === 'WEB') { + updatedPayload.pixel_id = pixelId; + updatedPayload.page_url = getFieldValueFromMessage(message, 'pageUrl'); + } - const { apiKey, pixelId, snapAppId, appId, deduplicationKey, enableDeduplication } = Config; + if (eventConversionType === 'MOBILE_APP') { + updatedPayload.snap_app_id = snapAppId; + updatedPayload.app_id = appId; + } + + if (eventConversionType === 'OFFLINE') { + updatedPayload.pixel_id = pixelId; + } + return updatedPayload; +}; +const getEventConversionType = (message) => { const channel = get(message, 'channel'); let eventConversionType = message?.properties?.eventConversionType; if ( @@ -104,18 +174,16 @@ function trackResponseBuilder(message, { Config }, mappedEvent) { } else { eventConversionType = 'OFFLINE'; } + return eventConversionType; +}; - if ((eventConversionType === 'WEB' || eventConversionType === 'OFFLINE') && !pixelId) { - throw new ConfigurationError('Pixel Id is required for web and offline events'); - } - - if (eventConversionType === 'MOBILE_APP' && !(appId && snapAppId)) { - if (!appId) { - throw new ConfigurationError('App Id is required for app events'); - } else { - throw new ConfigurationError('Snap App Id is required for app events'); - } - } +// Returns the response for the track event after constructing the payload and setting necessary fields +const trackResponseBuilder = (message, { Config }, mappedEvent) => { + let payload = {}; + const event = mappedEvent.trim().replace(/\s+/g, '_'); + const eventConversionType = getEventConversionType(message); + const { apiKey, pixelId, snapAppId, appId, deduplicationKey, enableDeduplication } = Config; + validateEventConfiguration(eventConversionType, pixelId, snapAppId, appId); if (eventNameMapping[event.toLowerCase()]) { // Snapchat standard events @@ -183,7 +251,7 @@ function trackResponseBuilder(message, { Config }, mappedEvent) { payload.event_type = eventNameMapping[event.toLowerCase()]; break; default: - payload = constructPayload(message, mappingConfig[ConfigCategory.COMMON.name]); + payload = constructPayload(message, mappingConfig[ConfigCategory.DEFAULT.name]); payload.event_type = eventNameMapping[event.toLowerCase()]; break; } @@ -191,21 +259,9 @@ function trackResponseBuilder(message, { Config }, mappedEvent) { throw new InstrumentationError(`Event ${event} doesn't match with Snapchat Events!`); } - payload.event_tag = get(message, 'properties.event_tag'); + payload = { ...payload, ...getEventCommonProperties(message) }; payload = populateHashedValues(payload, message); - - payload.user_agent = message.context?.userAgent?.toString().toLowerCase(); - - if ( - !payload.hashed_email && - !payload.hashed_phone_number && - !payload.hashed_mobile_ad_id && - !(payload.hashed_ip_address && payload.user_agent) - ) { - throw new InstrumentationError( - 'At least one of email or phone or advertisingId or ip and userAgent is required', - ); - } + validateRequiredFields(payload); payload.timestamp = getFieldValueFromMessage(message, 'timestamp'); const timeStamp = payload.timestamp; if (timeStamp) { @@ -223,18 +279,14 @@ function trackResponseBuilder(message, { Config }, mappedEvent) { } payload.event_conversion_type = eventConversionType; - if (eventConversionType === 'WEB') { - payload.pixel_id = pixelId; - payload.page_url = getFieldValueFromMessage(message, 'pageUrl'); - } - if (eventConversionType === 'MOBILE_APP') { - payload.snap_app_id = snapAppId; - payload.app_id = appId; - } - if (eventConversionType === 'OFFLINE') { - payload.pixel_id = pixelId; - } - + payload = addSpecificEventDetails( + message, + payload, + eventConversionType, + pixelId, + snapAppId, + appId, + ); // adding for deduplication for more than one source if (enableDeduplication) { const dedupId = deduplicationKey || 'messageId'; @@ -245,10 +297,10 @@ function trackResponseBuilder(message, { Config }, mappedEvent) { // build response const response = buildResponse(apiKey, payload); return response; -} +}; // Checks if there are any mapping events for the track event and returns them -function eventMappingHandler(message, destination) { +const eventMappingHandler = (message, destination) => { let event = get(message, 'event'); if (!event) { @@ -275,18 +327,20 @@ function eventMappingHandler(message, destination) { } return [...mappedEvents]; -} +}; -function process(event) { +const process = (event) => { const { message, destination } = event; - + // const message = { ...incomingMessage }; if (!message.type) { throw new InstrumentationError('Event type is required'); } const messageType = message.type.toLowerCase(); let response; - if (messageType === EventType.TRACK) { + if (messageType === EventType.PAGE) { + response = [trackResponseBuilder(message, destination, pageTypeToTrackEvent)]; + } else if (messageType === EventType.TRACK) { const mappedEvents = eventMappingHandler(message, destination); if (mappedEvents.length > 0) { response = []; @@ -301,7 +355,7 @@ function process(event) { throw new InstrumentationError(`Event type ${messageType} is not supported`); } return response; -} +}; const processRouterDest = async (inputs, reqMetadata) => { const errorRespEvents = checkInvalidRtTfEvents(inputs); diff --git a/src/v0/destinations/snapchat_custom_audience/networkHandler.js b/src/v0/destinations/snapchat_custom_audience/networkHandler.js index 0f75d36a560..db36f6f5180 100644 --- a/src/v0/destinations/snapchat_custom_audience/networkHandler.js +++ b/src/v0/destinations/snapchat_custom_audience/networkHandler.js @@ -1,4 +1,5 @@ -const { removeUndefinedValues } = require('../../util'); +const { NetworkError, RetryableError, AbortedError } = require('@rudderstack/integrations-lib'); +const { removeUndefinedValues, getAuthErrCategoryFromErrDetailsAndStCode } = require('../../util'); const { prepareProxyRequest, getPayloadData, httpSend } = require('../../../adapters/network'); const { isHttpStatusSuccess } = require('../../util/index'); const { REFRESH_TOKEN } = require('../../../adapters/networkhandler/authConstants'); @@ -7,7 +8,6 @@ const { getDynamicErrorType, processAxiosResponse, } = require('../../../adapters/utils/networkUtils'); -const { NetworkError, RetryableError, AbortedError } = require('../../util/errorTypes'); const { HTTP_STATUS_CODES } = require('../../util/constant'); const prepareProxyReq = (request) => { @@ -30,22 +30,6 @@ const prepareProxyReq = (request) => { }); }; -/** - * This function helps to determine type of error occurred. According to the response - * we set authErrorCategory to take decision if we need to refresh the access_token - * or need to disable the destination. - * @param {*} code - * @param {*} response - * @returns - */ -const getAuthErrCategory = (code, response) => { - let authErrCategory = ''; - if (code === 401) { - authErrCategory = !response.error?.details ? REFRESH_TOKEN : ''; - } - return authErrCategory; -}; - const scAudienceProxyRequest = async (request) => { const { endpoint, data, method, params, headers } = prepareProxyReq(request); @@ -65,7 +49,7 @@ const scAudienceProxyRequest = async (request) => { const scaAudienceRespHandler = (destResponse, stageMsg) => { const { status, response } = destResponse; - const authErrCategory = getAuthErrCategory(status, response); + const authErrCategory = getAuthErrCategoryFromErrDetailsAndStCode(status, response); if (authErrCategory === REFRESH_TOKEN) { throw new RetryableError( diff --git a/src/v0/destinations/snapchat_custom_audience/transform.js b/src/v0/destinations/snapchat_custom_audience/transform.js index 1c161154946..f4cbeafb56e 100644 --- a/src/v0/destinations/snapchat_custom_audience/transform.js +++ b/src/v0/destinations/snapchat_custom_audience/transform.js @@ -1,36 +1,16 @@ const sha256 = require('sha256'); +const { ConfigurationError } = require('@rudderstack/integrations-lib'); const { defaultRequestConfig, removeUndefinedAndNullValues, simpleProcessRouterDest, isDefinedAndNotNullAndNotEmpty, + getAccessToken, } = require('../../util'); -const { ConfigurationError, OAuthSecretError } = require('../../util/errorTypes'); const { BASE_URL, schemaType } = require('./config'); const { validatePayload, validateFields } = require('./utils'); const { JSON_MIME_TYPE } = require('../../util/constant'); -/** - * Get access token to be bound to the event req headers - * - * Note: - * This method needs to be implemented particular to the destination - * As the schema that we'd get in `metadata.secret` can be different - * for different destinations - * - * @param {Object} metadata - * @returns - */ -const getAccessToken = (metadata) => { - // OAuth for this destination - const { secret } = metadata; - // we would need to verify if secret is present and also if the access token field is present in secret - if (!secret || !secret.access_token) { - throw new OAuthSecretError('Empty/Invalid access token'); - } - return secret.access_token; -}; - const generateResponse = (groupedData, schema, segmentId, metadata, type) => { const payload = { users: [] }; const userPayload = { schema: [schema], data: groupedData }; @@ -43,7 +23,7 @@ const generateResponse = (groupedData, schema, segmentId, metadata, type) => { response.endpoint = `${BASE_URL}/segments/${segmentId}/users`; response.body.JSON = removeUndefinedAndNullValues(payload); - const accessToken = getAccessToken(metadata); + const accessToken = getAccessToken(metadata, 'access_token'); response.headers = { Authorization: `Bearer ${accessToken}`, 'Content-Type': JSON_MIME_TYPE, diff --git a/src/v0/destinations/snapchat_custom_audience/utils.js b/src/v0/destinations/snapchat_custom_audience/utils.js index 4d20b27a098..bc4a2292dae 100644 --- a/src/v0/destinations/snapchat_custom_audience/utils.js +++ b/src/v0/destinations/snapchat_custom_audience/utils.js @@ -1,4 +1,4 @@ -const { InstrumentationError } = require('../../util/errorTypes'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); /** * Verifies whether the input payload is in right format or not diff --git a/src/v0/destinations/splitio/transform.js b/src/v0/destinations/splitio/transform.js index 012c73a8b6c..6641a62fe8d 100644 --- a/src/v0/destinations/splitio/transform.js +++ b/src/v0/destinations/splitio/transform.js @@ -1,3 +1,4 @@ +const { TransformationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { CONFIG_CATEGORIES, MAPPING_CONFIG, @@ -18,7 +19,6 @@ const { simpleProcessRouterDest, ErrorMessage, } = require('../../util'); -const { TransformationError, InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); function responseBuilderSimple(payload, category, destination) { diff --git a/src/v0/destinations/statsig/transform.js b/src/v0/destinations/statsig/transform.js index 1be72d4095e..81658a255a4 100644 --- a/src/v0/destinations/statsig/transform.js +++ b/src/v0/destinations/statsig/transform.js @@ -1,7 +1,7 @@ +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { defaultPostRequestConfig, defaultRequestConfig } = require('../../util'); const { ENDPOINT } = require('./config'); -const { InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); function process(event) { diff --git a/src/v0/destinations/stormly/transform.js b/src/v0/destinations/stormly/transform.js index 756bfb80244..dc7a256583b 100644 --- a/src/v0/destinations/stormly/transform.js +++ b/src/v0/destinations/stormly/transform.js @@ -1,6 +1,7 @@ /* eslint-disable no-nested-ternary */ const get = require('get-value'); const set = require('set-value'); +const { TransformationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { defaultRequestConfig, @@ -12,7 +13,6 @@ const { getDestinationExternalID, } = require('../../util'); const { CONFIG_CATEGORIES, MAPPING_CONFIG } = require('./config'); -const { TransformationError, InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const responseBuilder = (payload, endpoint, destination) => { @@ -40,7 +40,8 @@ const identifyResponseBuilder = (message, destination) => { const trackResponseBuilder = (message, destination) => { const { endpoint, name } = CONFIG_CATEGORIES.TRACK; - const groupId = getDestinationExternalID(message, 'stormlyGroupId') || message.properties?.groupId; + const groupId = + getDestinationExternalID(message, 'stormlyGroupId') || message.properties?.groupId; let payload = constructPayload(message, MAPPING_CONFIG[name]); if (groupId) { diff --git a/src/v0/destinations/tiktok_ads/data/TikTokTrack.json b/src/v0/destinations/tiktok_ads/data/TikTokTrack.json index 05709af27a4..cc5f4886e0b 100644 --- a/src/v0/destinations/tiktok_ads/data/TikTokTrack.json +++ b/src/v0/destinations/tiktok_ads/data/TikTokTrack.json @@ -1,7 +1,7 @@ [ { "destKey": "event_id", - "sourceKeys": "properties.eventId", + "sourceKeys": ["properties.eventId", "properties.event_id", "messageId"], "required": false }, { @@ -72,6 +72,11 @@ "sourceKeys": ["properties.context.ad", "context.ad"], "required": false }, + { + "destKey": "context.ad.callback", + "sourceKeys": "properties.clickId", + "required": false + }, { "destKey": "context.page", "sourceKeys": ["properties.context.page", "context.page"], diff --git a/src/v0/destinations/tiktok_ads/networkHandler.js b/src/v0/destinations/tiktok_ads/networkHandler.js index ade33e5133b..ae93b1ec15b 100644 --- a/src/v0/destinations/tiktok_ads/networkHandler.js +++ b/src/v0/destinations/tiktok_ads/networkHandler.js @@ -1,10 +1,10 @@ +const { NetworkError, ThrottledError, AbortedError } = require('@rudderstack/integrations-lib'); const { proxyRequest, prepareProxyRequest } = require('../../../adapters/network'); const { processAxiosResponse, getDynamicErrorType, } = require('../../../adapters/utils/networkUtils'); const { DESTINATION } = require('./config'); -const { NetworkError, ThrottledError, AbortedError } = require('../../util/errorTypes'); const { TAG_NAMES } = require('../../util/tags'); const { HTTP_STATUS_CODES } = require('../../util/constant'); @@ -40,6 +40,7 @@ const responseHandler = (destinationResponse) => { ); }; +// eslint-disable-next-line @typescript-eslint/naming-convention class networkHandler { constructor() { this.responseHandler = responseHandler; diff --git a/src/v0/destinations/tiktok_ads/transform.js b/src/v0/destinations/tiktok_ads/transform.js index 6bf9cd7270c..09f0d95dccb 100644 --- a/src/v0/destinations/tiktok_ads/transform.js +++ b/src/v0/destinations/tiktok_ads/transform.js @@ -1,8 +1,10 @@ /* eslint-disable camelcase */ +/* eslint-disable @typescript-eslint/naming-convention */ const _ = require('lodash'); const { SHA256 } = require('crypto-js'); const get = require('get-value'); const set = require('set-value'); +const { ConfigurationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { constructPayload, @@ -28,7 +30,6 @@ const { MAX_BATCH_SIZE, PARTNER_NAME, } = require('./config'); -const { ConfigurationError, InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const USER_EMAIL_KEY_PATH = 'context.user.email'; @@ -127,7 +128,7 @@ const getTrackResponse = (message, Config, event) => { }; const trackResponseBuilder = async (message, { Config }) => { - const { eventsToStandard } = Config; + const { eventsToStandard, sendCustomEvents } = Config; let event = message.event?.toLowerCase().trim(); if (!event) { @@ -136,7 +137,7 @@ const trackResponseBuilder = async (message, { Config }) => { const standardEventsMap = getHashFromArrayWithDuplicate(eventsToStandard); - if (eventNameMapping[event] === undefined && !standardEventsMap[event]) { + if (!sendCustomEvents && eventNameMapping[event] === undefined && !standardEventsMap[event]) { throw new InstrumentationError( `Event name (${event}) is not valid, must be mapped to one of standard events`, ); @@ -151,10 +152,12 @@ const trackResponseBuilder = async (message, { Config }) => { }); } }); - } else { - event = eventNameMapping[event]; - responseList.push(getTrackResponse(message, Config, event)); + return responseList; } + // Doc https://ads.tiktok.com/help/article/standard-events-parameters?lang=en + event = eventNameMapping[event] || event; + // if there exists no event mapping we will build payload with custom event recieved + responseList.push(getTrackResponse(message, Config, event)); return responseList; }; diff --git a/src/v0/destinations/tiktok_ads/util.js b/src/v0/destinations/tiktok_ads/util.js index 98acb794a58..4050a9fe348 100644 --- a/src/v0/destinations/tiktok_ads/util.js +++ b/src/v0/destinations/tiktok_ads/util.js @@ -8,6 +8,7 @@ const { removeUndefinedAndNullValues } = require('../../util'); const getContents = (message) => { const contents = []; const { properties } = message; + // eslint-disable-next-line @typescript-eslint/naming-convention const { products, content_type, contentType } = properties; if (products && Array.isArray(products) && products.length > 0) { products.forEach((product) => { diff --git a/src/v0/destinations/tiktok_ads_offline_events/transform.js b/src/v0/destinations/tiktok_ads_offline_events/transform.js index 0ade5bbfbb8..945c31ea632 100644 --- a/src/v0/destinations/tiktok_ads_offline_events/transform.js +++ b/src/v0/destinations/tiktok_ads_offline_events/transform.js @@ -1,6 +1,7 @@ const { SHA256 } = require('crypto-js'); const set = require('set-value'); -const _ = require('lodash'); +const lodash = require('lodash'); +const { ConfigurationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { constructPayload, @@ -21,7 +22,6 @@ const { EVENT_NAME_MAPPING, PARTNER_NAME, } = require('./config'); -const { ConfigurationError, InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const getContents = (message) => { @@ -191,7 +191,7 @@ const batchEvents = (eventChunksArray) => { // event_set_id1: [...events] // event_set_id2: [...events] // } - const groupedEventChunks = _.groupBy(eventChunksArray, ({ message }) => { + const groupedEventChunks = lodash.groupBy(eventChunksArray, ({ message }) => { if (Array.isArray(message)) return message[0].event_set_id; return message.event_set_id; }); diff --git a/src/v0/destinations/trengo/transform.js b/src/v0/destinations/trengo/transform.js index 14d1d8c84ca..06e5496a1eb 100644 --- a/src/v0/destinations/trengo/transform.js +++ b/src/v0/destinations/trengo/transform.js @@ -2,6 +2,13 @@ /* eslint-disable no-prototype-builtins */ const Handlebars = require('handlebars'); const get = require('get-value'); +const { + NetworkError, + ConfigurationError, + TransformationError, + InstrumentationError, + NetworkInstrumentationError, +} = require('@rudderstack/integrations-lib'); const myAxios = require('../../../util/myAxios'); const { EventType } = require('../../../constants'); const { EndPoints, BASE_URL } = require('./config'); @@ -17,13 +24,6 @@ const { getStringValueOfJSON, ErrorMessage, } = require('../../util'); -const { - NetworkError, - ConfigurationError, - TransformationError, - InstrumentationError, - NetworkInstrumentationError, -} = require('../../util/errorTypes'); const tags = require('../../util/tags'); const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/twitter_ads/transform.js b/src/v0/destinations/twitter_ads/transform.js index 78c3379c649..268dca36366 100644 --- a/src/v0/destinations/twitter_ads/transform.js +++ b/src/v0/destinations/twitter_ads/transform.js @@ -1,5 +1,10 @@ const sha256 = require('sha256'); +const { + InstrumentationError, + OAuthSecretError, + ConfigurationError, +} = require('@rudderstack/integrations-lib'); const { constructPayload, defaultRequestConfig, @@ -9,15 +14,10 @@ const { simpleProcessRouterDest, } = require('../../util'); const { EventType } = require('../../../constants'); -const { - ConfigCategories, - mappingConfig, - BASE_URL -} = require('./config'); +const { ConfigCategories, mappingConfig, BASE_URL } = require('./config'); -const { InstrumentationError, OAuthSecretError, ConfigurationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); -const { getAuthHeaderForRequest } = require("./util"); +const { getAuthHeaderForRequest } = require('./util'); const getOAuthFields = ({ secret }) => { if (!secret) { @@ -27,7 +27,7 @@ const getOAuthFields = ({ secret }) => { consumerKey: secret.consumerKey, consumerSecret: secret.consumerSecret, accessToken: secret.accessToken, - accessTokenSecret: secret.accessTokenSecret + accessTokenSecret: secret.accessTokenSecret, }; return oAuthObject; }; @@ -42,7 +42,7 @@ function buildResponse(message, requestJson, metadata, endpointUrl) { const request = { url: response.endpoint, method: response.method, - body: response.body.JSON + body: response.body.JSON, }; const oAuthObject = getOAuthFields(metadata); @@ -60,17 +60,20 @@ function prepareUrl(message, destination) { } function populateEventId(event, requestJson, destination) { - const eventNameToIdMappings = destination.Config.twitterAdsEventNames; - let eventId = ""; + let eventId = ''; if (eventNameToIdMappings) { - const eventObj = eventNameToIdMappings.find(obj => obj.rudderEventName?.trim().toLowerCase() === event?.toString().toLowerCase()); + const eventObj = eventNameToIdMappings.find( + (obj) => obj.rudderEventName?.trim().toLowerCase() === event?.toString().toLowerCase(), + ); eventId = eventObj?.twitterEventId; } - if(!eventId) { - throw new ConfigurationError(`[TWITTER ADS]: Event - '${event}' do not have a corresponding eventId in configuration. Aborting`); + if (!eventId) { + throw new ConfigurationError( + `[TWITTER ADS]: Event - '${event}' do not have a corresponding eventId in configuration. Aborting`, + ); } return eventId; @@ -79,14 +82,16 @@ function populateEventId(event, requestJson, destination) { function populateContents(requestJson) { const reqJson = { ...requestJson }; if (reqJson.contents) { - const transformedContents = requestJson.contents.map(obj => ({ - ...(obj.id && { content_id: obj.id }), - ...(obj.groupId && { content_group_id: obj.groupId }), - ...(obj.name && { content_name: obj.name }), - ...(obj.price && { content_price: parseFloat(obj.price) }), - ...(obj.type && { content_type: obj.type }), - ...(obj.quantity && { num_items: parseInt(obj.quantity, 10) }) - })).filter(tfObj => Object.keys(tfObj).length > 0); + const transformedContents = requestJson.contents + .map((obj) => ({ + ...(obj.id && { content_id: obj.id }), + ...(obj.groupId && { content_group_id: obj.groupId }), + ...(obj.name && { content_name: obj.name }), + ...(obj.price && { content_price: parseFloat(obj.price) }), + ...(obj.type && { content_type: obj.type }), + ...(obj.quantity && { num_items: parseInt(obj.quantity, 10) }), + })) + .filter((tfObj) => Object.keys(tfObj).length > 0); if (transformedContents.length > 0) { reqJson.contents = transformedContents; } @@ -96,13 +101,14 @@ function populateContents(requestJson) { // process track call function processTrack(message, metadata, destination) { - let requestJson = constructPayload(message, mappingConfig[ConfigCategories.TRACK.name]); - requestJson.event_id = requestJson.event_id || populateEventId(message.event, requestJson, destination); + requestJson.event_id = + requestJson.event_id || populateEventId(message.event, requestJson, destination); requestJson.conversion_time = isDefinedAndNotNull(requestJson.conversion_time) - ? requestJson.conversion_time : message.timestamp; + ? requestJson.conversion_time + : message.timestamp; const identifiers = []; @@ -110,19 +116,19 @@ function processTrack(message, metadata, destination) { let email = message.properties.email.trim(); if (email) { email = email.toLowerCase(); - identifiers.push({hashed_email: sha256(email)}) + identifiers.push({ hashed_email: sha256(email) }); } } if (message.properties.phone) { const phone = message.properties.phone.trim(); if (phone) { - identifiers.push({hashed_phone_number: sha256(phone)}) + identifiers.push({ hashed_phone_number: sha256(phone) }); } } if (message.properties.twclid) { - identifiers.push({twclid: sha256(message.properties.twclid)}); + identifiers.push({ twclid: message.properties.twclid }); } requestJson = populateContents(requestJson); @@ -131,33 +137,26 @@ function processTrack(message, metadata, destination) { const endpointUrl = prepareUrl(message, destination); - return buildResponse( - message, - requestJson, - metadata, - endpointUrl - ); + return buildResponse(message, requestJson, metadata, endpointUrl); } function validateRequest(message) { - const { properties } = message; if (!properties) { throw new InstrumentationError( - '[TWITTER ADS]: properties must be present in event. Aborting message', + '[TWITTER ADS]: properties must be present in event. Aborting message', ); } if (!properties.email && !properties.phone && !properties.twclid) { throw new InstrumentationError( - '[TWITTER ADS]: one of twclid, phone or email must be present in properties.', + '[TWITTER ADS]: one of twclid, phone or email must be present in properties.', ); } } function process(event) { - const { message, metadata, destination } = event; validateRequest(message); @@ -169,7 +168,6 @@ function process(event) { } throw new InstrumentationError(`Message type ${messageType} not supported`); - } const processRouterDest = async (inputs, reqMetadata) => { diff --git a/src/v0/destinations/user/transform.js b/src/v0/destinations/user/transform.js index 6cde9c9b800..ed04f5ccd4f 100644 --- a/src/v0/destinations/user/transform.js +++ b/src/v0/destinations/user/transform.js @@ -1,3 +1,8 @@ +const { + TransformationError, + InstrumentationError, + NetworkInstrumentationError, +} = require('@rudderstack/integrations-lib'); const { defaultRequestConfig, simpleProcessRouterDest, @@ -17,11 +22,6 @@ const { createOrUpdateUserPayloadBuilder, createEventOccurrencePayloadBuilder, } = require('./utils'); -const { - TransformationError, - InstrumentationError, - NetworkInstrumentationError, -} = require('../../util/errorTypes'); const { EventType } = require('../../../constants'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/user/utils.js b/src/v0/destinations/user/utils.js index 23dd74a30f5..41ad1735835 100644 --- a/src/v0/destinations/user/utils.js +++ b/src/v0/destinations/user/utils.js @@ -1,4 +1,8 @@ const get = require('get-value'); +const { + InstrumentationError, + NetworkInstrumentationError, +} = require('@rudderstack/integrations-lib'); const { getHashFromArray, constructPayload, @@ -19,7 +23,6 @@ const { groupSourceKeys, identifySourceKeys, } = require('./config'); -const { InstrumentationError, NetworkInstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const ACCEPT_HEADER_VAL = '*/*;version=2'; diff --git a/src/v0/destinations/userlist/transform.js b/src/v0/destinations/userlist/transform.js index 20b47c6a355..45d58edbbfd 100644 --- a/src/v0/destinations/userlist/transform.js +++ b/src/v0/destinations/userlist/transform.js @@ -1,3 +1,4 @@ +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { defaultRequestConfig, @@ -9,7 +10,6 @@ const { const { endpoint } = require('./config'); -const { InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); // ------------------------------------------------ diff --git a/src/v0/destinations/vero/transform.js b/src/v0/destinations/vero/transform.js index 7115ea425d3..f4890566819 100644 --- a/src/v0/destinations/vero/transform.js +++ b/src/v0/destinations/vero/transform.js @@ -1,5 +1,6 @@ const set = require('set-value'); const get = require('get-value'); +const { InstrumentationError, ConfigurationError } = require('@rudderstack/integrations-lib'); const { defaultRequestConfig, constructPayload, @@ -11,7 +12,6 @@ const { } = require('../../util'); const { EventType } = require('../../../constants'); const { CONFIG_CATEGORIES, MAPPING_CONFIG } = require('./config'); -const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); // This function handles the common response payload for the supported calls const responseBuilderSimple = (message, category, destination) => { diff --git a/src/v0/destinations/webengage/transform.js b/src/v0/destinations/webengage/transform.js index 835a486eff5..f18a7399ff1 100644 --- a/src/v0/destinations/webengage/transform.js +++ b/src/v0/destinations/webengage/transform.js @@ -1,4 +1,5 @@ /* eslint-disable no-param-reassign */ +const { InstrumentationError, TransformationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { CONFIG_CATEGORIES, @@ -15,7 +16,6 @@ const { simpleProcessRouterDest, extractCustomFields, } = require('../../util'); -const { InstrumentationError, TransformationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const responseBuilder = (message, category, { Config }) => { diff --git a/src/v0/destinations/webhook/transform.js b/src/v0/destinations/webhook/transform.js index a4a7617f689..6a115f1c639 100644 --- a/src/v0/destinations/webhook/transform.js +++ b/src/v0/destinations/webhook/transform.js @@ -1,6 +1,7 @@ /* eslint-disable no-nested-ternary */ const get = require('get-value'); const set = require('set-value'); +const { ConfigurationError } = require('@rudderstack/integrations-lib'); const { defaultPostRequestConfig, defaultPutRequestConfig, @@ -17,7 +18,6 @@ const { } = require('../../util'); const { EventType } = require('../../../constants'); -const { ConfigurationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const getPropertyParams = (message) => { diff --git a/src/v0/destinations/woopra/transform.js b/src/v0/destinations/woopra/transform.js index 1414cbac23e..9104884416a 100644 --- a/src/v0/destinations/woopra/transform.js +++ b/src/v0/destinations/woopra/transform.js @@ -1,5 +1,6 @@ /* eslint-disable no-param-reassign */ const { set, get } = require('lodash'); +const { TransformationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { defaultRequestConfig, constructPayload, @@ -12,7 +13,6 @@ const { const { EventType } = require('../../../constants'); const { BASE_URL, mappingConfig, ConfigCategories } = require('./config'); const { refinePayload, getEvent } = require('./utils'); -const { TransformationError, InstrumentationError } = require('../../util/errorTypes'); const responseBuilder = (payload, endpoint, method, projectName) => { if (!payload) { diff --git a/src/v0/destinations/wootric/transform.js b/src/v0/destinations/wootric/transform.js index f89e63a5ed2..f8b4274af7f 100644 --- a/src/v0/destinations/wootric/transform.js +++ b/src/v0/destinations/wootric/transform.js @@ -1,3 +1,4 @@ +const { TransformationError, InstrumentationError } = require('@rudderstack/integrations-lib'); const { EventType } = require('../../../constants'); const { defaultRequestConfig, @@ -19,7 +20,6 @@ const { createDeclinePayloadBuilder, } = require('./util'); const { PROPERTIES, END_USER_PROPERTIES } = require('./config'); -const { TransformationError, InstrumentationError } = require('../../util/errorTypes'); const responseBuilder = async (payload, endpoint, method, accessToken) => { if (payload) { diff --git a/src/v0/destinations/wootric/util.js b/src/v0/destinations/wootric/util.js index 207a0994bbd..fce8a66586b 100644 --- a/src/v0/destinations/wootric/util.js +++ b/src/v0/destinations/wootric/util.js @@ -1,4 +1,5 @@ const qs = require('qs'); +const { InstrumentationError, NetworkError } = require('@rudderstack/integrations-lib'); const { httpGET, httpPOST } = require('../../../adapters/network'); const { getDynamicErrorType, @@ -8,7 +9,6 @@ const { BASE_ENDPOINT, VERSION, ACCESS_TOKEN_CACHE_TTL_SECONDS } = require('./co const { constructPayload, isDefinedAndNotNullAndNotEmpty } = require('../../util'); const { CONFIG_CATEGORIES, MAPPING_CONFIG } = require('./config'); const Cache = require('../../util/cache'); -const { InstrumentationError, NetworkError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/yahoo_dsp/transform.js b/src/v0/destinations/yahoo_dsp/transform.js index 8b0875f1a07..4cd1eee73db 100644 --- a/src/v0/destinations/yahoo_dsp/transform.js +++ b/src/v0/destinations/yahoo_dsp/transform.js @@ -1,3 +1,4 @@ +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { BASE_ENDPOINT, ENDPOINTS, @@ -12,7 +13,6 @@ const { } = require('../../util'); const { getAccessToken, createPayload } = require('./util'); -const { InstrumentationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); /** diff --git a/src/v0/destinations/yahoo_dsp/util.js b/src/v0/destinations/yahoo_dsp/util.js index f47717df513..d41716935fd 100644 --- a/src/v0/destinations/yahoo_dsp/util.js +++ b/src/v0/destinations/yahoo_dsp/util.js @@ -1,12 +1,12 @@ const qs = require('qs'); const sha256 = require('sha256'); +const { InstrumentationError, NetworkError } = require('@rudderstack/integrations-lib'); const { generateJWTToken } = require('../../../util/jwtTokenGenerator'); -const { httpPOST } = require('../../../adapters/network'); +const { httpSend } = require('../../../adapters/network'); const { isDefinedAndNotNullAndNotEmpty } = require('../../util'); const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); const { ACCESS_TOKEN_CACHE_TTL, AUDIENCE_ATTRIBUTE, DSP_SUPPORTED_OPERATION } = require('./config'); const Cache = require('../../util/cache'); -const { InstrumentationError, NetworkError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); @@ -119,7 +119,7 @@ const getAccessToken = async (destination) => { }; const request = { - header: { + headers: { 'Content-Type': 'application/x-www-form-urlencoded', Accept: JSON_MIME_TYPE, }, @@ -134,7 +134,7 @@ const getAccessToken = async (destination) => { }), method: 'POST', }; - const dspAuthorisationData = await httpPOST(request.url, request.data, request.header, { + const dspAuthorisationData = await httpSend(request, { destType: 'yahoo_dsp', feature: 'transformation', }); diff --git a/src/v0/destinations/zendesk/transform.js b/src/v0/destinations/zendesk/transform.js index 869e54c2207..bf2bc01ed28 100644 --- a/src/v0/destinations/zendesk/transform.js +++ b/src/v0/destinations/zendesk/transform.js @@ -1,5 +1,10 @@ const get = require('get-value'); const set = require('set-value'); +const { + NetworkInstrumentationError, + InstrumentationError, + NetworkError, +} = require('@rudderstack/integrations-lib'); const myAxios = require('../../../util/myAxios'); const { EventType } = require('../../../constants'); @@ -26,11 +31,6 @@ const { const { getSourceName } = require('./util'); const logger = require('../../../logger'); const { httpGET } = require('../../../adapters/network'); -const { - NetworkInstrumentationError, - InstrumentationError, - NetworkError, -} = require('../../util/errorTypes'); const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); const tags = require('../../util/tags'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/zendesk/util.js b/src/v0/destinations/zendesk/util.js index 0d03f73c19e..29f3fc0602e 100644 --- a/src/v0/destinations/zendesk/util.js +++ b/src/v0/destinations/zendesk/util.js @@ -1,4 +1,4 @@ -const { ConfigurationError } = require('../../util/errorTypes'); +const { ConfigurationError } = require('@rudderstack/integrations-lib'); /** * Get source name from config or return 'Rudder' as default source name diff --git a/src/v0/sources/appcenter/transform.js b/src/v0/sources/appcenter/transform.js index 3a98a6db3ec..40399d92e28 100644 --- a/src/v0/sources/appcenter/transform.js +++ b/src/v0/sources/appcenter/transform.js @@ -1,5 +1,6 @@ const path = require('path'); const fs = require('fs'); +const { TransformationError } = require('@rudderstack/integrations-lib'); const { generateUUID } = require('../../util'); const Message = require('../message'); @@ -7,7 +8,6 @@ const mappingJson = JSON.parse(fs.readFileSync(path.resolve(__dirname, './mappin const { removeUndefinedAndNullValues } = require('../../util'); -const { TransformationError } = require('../../util/errorTypes'); const { JSON_MIME_TYPE } = require('../../util/constant'); const processNormalEvent = (event) => { diff --git a/src/v0/sources/appsflyer/transform.js b/src/v0/sources/appsflyer/transform.js index 862e19acd01..1f21392b67c 100644 --- a/src/v0/sources/appsflyer/transform.js +++ b/src/v0/sources/appsflyer/transform.js @@ -1,8 +1,8 @@ const path = require('path'); const fs = require('fs'); +const { TransformationError } = require('@rudderstack/integrations-lib'); const Message = require('../message'); const { generateUUID } = require('../../util'); -const { TransformationError } = require('../../util/errorTypes'); const mappingJson = JSON.parse(fs.readFileSync(path.resolve(__dirname, './mapping.json'), 'utf-8')); diff --git a/src/v0/sources/auth0/transform.js b/src/v0/sources/auth0/transform.js index 8a0013036bc..d2721780d82 100644 --- a/src/v0/sources/auth0/transform.js +++ b/src/v0/sources/auth0/transform.js @@ -41,6 +41,7 @@ function processEvents(eventList) { eventList.forEach((event) => { let response = {}; // eslint-disable-next-line camelcase + // eslint-disable-next-line @typescript-eslint/naming-convention const { data, log_id } = event; // Dropping the event if type is not present if (data && data.type) { diff --git a/src/v0/sources/braze/transform.js b/src/v0/sources/braze/transform.js index 34158c8e687..e3d72000235 100644 --- a/src/v0/sources/braze/transform.js +++ b/src/v0/sources/braze/transform.js @@ -2,9 +2,9 @@ const set = require('set-value'); const get = require('get-value'); const path = require('path'); const fs = require('fs'); +const { TransformationError } = require('@rudderstack/integrations-lib'); const { formatTimeStamp, removeUndefinedAndNullValues } = require('../../util'); const Message = require('../message'); -const { TransformationError } = require('../../util/errorTypes'); // import mapping json using JSON.parse to preserve object key order const mapping = JSON.parse(fs.readFileSync(path.resolve(__dirname, './mapping.json'), 'utf-8')); diff --git a/src/v0/sources/canny/transform.js b/src/v0/sources/canny/transform.js index abc6f491b8d..9188f5ac345 100644 --- a/src/v0/sources/canny/transform.js +++ b/src/v0/sources/canny/transform.js @@ -1,8 +1,8 @@ const sha256 = require('sha256'); +const { TransformationError } = require('@rudderstack/integrations-lib'); const Message = require('../message'); const { voterMapping, authorMapping, checkForRequiredFields } = require('./util'); const { logger } = require('../../../logger'); -const { TransformationError } = require('../../util/errorTypes'); const CannyOperation = { VOTE_CREATED: 'vote.created', diff --git a/src/v0/sources/canny/util.js b/src/v0/sources/canny/util.js index cd92c0c2afe..549b7dcbbc3 100644 --- a/src/v0/sources/canny/util.js +++ b/src/v0/sources/canny/util.js @@ -1,6 +1,6 @@ const path = require('path'); const fs = require('fs'); -const { TransformationError } = require('../../util/errorTypes'); +const { TransformationError } = require('@rudderstack/integrations-lib'); // import mapping json using JSON.parse to preserve object key order const voterMapping = JSON.parse( diff --git a/src/v0/sources/customerio/transform.js b/src/v0/sources/customerio/transform.js index 51c353dd3b6..a2e69388b94 100644 --- a/src/v0/sources/customerio/transform.js +++ b/src/v0/sources/customerio/transform.js @@ -8,7 +8,6 @@ const Message = require('../message'); const { mappingConfig } = require('./config'); const { isDefinedAndNotNull } = require('../../util'); -// const { TransformationError } = require("../../util/errorTypes"); function process(event) { const message = new Message(`Customer.io`); @@ -35,7 +34,6 @@ function process(event) { message.setProperty('sentAt', validTimestamp); } - // when customer.io does not pass an associated userId, set the email address as anonymousId if ( (message.userId === null || message.userId === undefined) && diff --git a/src/v0/sources/gainsightpx/transform.js b/src/v0/sources/gainsightpx/transform.js index ca91765fa66..92f0a074562 100644 --- a/src/v0/sources/gainsightpx/transform.js +++ b/src/v0/sources/gainsightpx/transform.js @@ -1,4 +1,5 @@ const md5 = require('md5'); +const { TransformationError } = require('@rudderstack/integrations-lib'); const Message = require('../message'); const customMapping = require('./data/customMapping.json'); const identifyMapping = require('./data/identifyMapping.json'); @@ -9,7 +10,6 @@ const surveyMapping = require('./data/surveyMapping.json'); const featureMatchMapping = require('./data/featureMatchMapping.json'); const segmentIoMapping = require('./data/segmentIOMapping.json'); const { refinePayload, refineTraitPayload } = require('./utils'); -const { TransformationError } = require('../../util/errorTypes'); const buildIdentifyPayload = (event) => { let message = new Message(`GAINSIGHTPX`); diff --git a/src/v0/sources/iterable/transform.js b/src/v0/sources/iterable/transform.js index 275051815b4..dc3fc72c3c8 100644 --- a/src/v0/sources/iterable/transform.js +++ b/src/v0/sources/iterable/transform.js @@ -1,8 +1,8 @@ const path = require('path'); const fs = require('fs'); const md5 = require('md5'); +const { TransformationError } = require('@rudderstack/integrations-lib'); const Message = require('../message'); -const { TransformationError } = require('../../util/errorTypes'); // import mapping json using JSON.parse to preserve object key order const mapping = JSON.parse(fs.readFileSync(path.resolve(__dirname, './mapping.json'), 'utf-8')); diff --git a/src/v0/sources/mailjet/transform.js b/src/v0/sources/mailjet/transform.js index fcc27611bb8..d2719cc0bab 100644 --- a/src/v0/sources/mailjet/transform.js +++ b/src/v0/sources/mailjet/transform.js @@ -40,7 +40,7 @@ function process(event) { } message.context.externalId = externalId; - if (message.userId === null || message.userId === undefined) { + if (!message.userId && event.email) { // Treating userId as unique identifier // If userId is not present, then generating it from email using md5 hash function message.userId = md5(event.email); diff --git a/src/v0/sources/mailmodo/transform.js b/src/v0/sources/mailmodo/transform.js index 8b36eafa1aa..a4383fb4409 100644 --- a/src/v0/sources/mailmodo/transform.js +++ b/src/v0/sources/mailmodo/transform.js @@ -1,9 +1,9 @@ const path = require('path'); const fs = require('fs'); const sha256 = require('sha256'); +const { TransformationError } = require('@rudderstack/integrations-lib'); const { flattenJson, removeUndefinedAndNullAndEmptyValues } = require('../../util'); const Message = require('../message'); -const { TransformationError } = require('../../util/errorTypes'); // import mapping json using JSON.parse to preserve object key order const mapping = JSON.parse(fs.readFileSync(path.resolve(__dirname, './mapping.json'), 'utf-8')); diff --git a/src/v0/sources/monday/transform.js b/src/v0/sources/monday/transform.js index 48cddec3014..d63323605b3 100644 --- a/src/v0/sources/monday/transform.js +++ b/src/v0/sources/monday/transform.js @@ -1,7 +1,7 @@ const sha256 = require('sha256'); +const { TransformationError } = require('@rudderstack/integrations-lib'); const Message = require('../message'); const { mapping, formEventName } = require('./util'); -const { TransformationError } = require('../../util/errorTypes'); const { generateUUID, removeUndefinedAndNullValues } = require('../../util'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/sources/ortto/event_mapping.json b/src/v0/sources/ortto/event_mapping.json new file mode 100644 index 00000000000..f2075c7cd36 --- /dev/null +++ b/src/v0/sources/ortto/event_mapping.json @@ -0,0 +1,95 @@ +{ + "act::s": "Sent email", + "act::c": "Clicked email", + "act::o": "Opened email", + "act::r": "Received email", + "act::b": "Bounced email", + "act::sk": "Skipped email", + "act::rt": "Redacted email", + "act::f": "Forwarded email", + "act::i": "Invalid email", + "act::v": "Viewed email online", + "act::d": "Deferred email", + + "act::ss": "Incident Triggered", + "act::ds": "Incident Unacknowledged", + "act::cs": "Service Created", + "act::is": "Service Deleted", + "act::bs": "Service Updated", + "act::des": "Service Updated", + "act::rs": "Service Updated", + "act::rtss": "Service Updated", + "act::ras": "Service Updated", + "act::cos": "Service Updated", + "act::rtns": "Service Updated", + "act::sf": "Submitted form", + "act::oos-a": "Opted out from SMS audience", + "act::ois-a": "Opted in to SMS audience", + "act::oos-all": "Opted out from all SMS", + "act::ros-all": "Opted in to all SMS", + "act::ss-ab": "SMS subscription abuse", + "act::scr": "SMS consent requested", + "act::scf": "SMS consent failed", + + "act::sph": "Sent push", + "act::dph": "Delivered push", + "act::cph": "Clicked push", + "act::iph": "Invalid push", + "act::oiip-all": "Opted in to all iOS push", + "act::ooip-all": "Opted out of all iOS push", + "act::oiip-a": "Opted in to iOS push audience", + "act::oips-a": "Opted out of iOS push audience", + "act::oigp-all": "Opted in to all Android push", + "act::oogp-all": "Opted out of all Android push", + "act::oigp-a": "Opted out of Android push audience", + "act::oogs-a": "Opted in to Android push audience", + "act::oiwp-all": "Opted in to all web push", + "act::oowp-all": "Opted out of all web push", + "act::oiwp-a": "Opted in to web push audience", + "act::oows-a": "Opted out of to web push audience", + "act::iws-ab": "Web push subscription abuse", + + "act::ws": "Website session", + "act::us": "User session", + + "act::enter-audience": "Entered audience", + "act::leave-audience": "Left audience", + "act::ta": "Tag added", + "act::tr": "Tag removed", + "act::u-a": "Unsubscribe from audience", + "act::s-a": "Subscribe to audience", + "act::u-all": "Un subscribe from all email", + "act::s-all": "Resubscribe globally", + "act::s-ab": "Subscription abuse", + + "act::ep": "Entered playbook", + "act::lp": "Left playbook", + "act::spa": "Successful playbook action", + "act::fpa": "Failed playbook action", + + "act::ej": "Entered journey", + "act::lj": "Left journey", + "act::sja": "Successful journey action", + "act::fja": "Failed journey action", + + "act::cw": "Clicked widget", + "act::sw": "Shown widget", + "act::dw": "Dismissed widget", + "act::rw": "Reacted to widget", + "act::swf": "Submitted widget form", + "act::rws": "Responded to widget survey", + "act::wwv": "Watched widget video", + "act::sww": "Spun widget wheel", + + "act::cop": "Conversation opened", + "act::cro": "Conversation re-opened", + "act::cas": "Conversation assigned", + "act::clc": "Conversation closed", + "act::csn": "Conversation snoozed", + "act::crt": "Conversation rated", + "act::cms": "Conversation marked as spam", + "act::cvs": "Conversation voice call started", + "act::cve": "Conversation voice call ended", + "act::ctg": "Conversation tagged", + "act::cut": "Conversation un-tagged" +} diff --git a/src/v0/sources/ortto/mapping.json b/src/v0/sources/ortto/mapping.json new file mode 100644 index 00000000000..30ac8e153c0 --- /dev/null +++ b/src/v0/sources/ortto/mapping.json @@ -0,0 +1,38 @@ +[ + { + "sourceKeys": "contact.email", + "destKeys": "context.traits.email" + }, + { + "sourceKeys": "contact.external_id", + "destKeys": "userId" + }, + { + "sourceKeys": "contact.country.name", + "destKeys": "context.traits.address.country" + }, + { + "sourceKeys": "contact.city.name", + "destKeys": "context.traits.address.city" + }, + { + "sourceKeys": "contact.postal", + "destKeys": "context.traits.address.postalCode" + }, + { + "sourceKeys": "id", + "destKeys": "messageId" + }, + { + "sourceKeys": "time", + "destKeys": "originalTimestamp" + }, + { + "sourceKeys": "contact.first_name", + "destKeys": "context.traits.firstName" + }, + { + "sourceKeys": "contact.last_name", + "destKeys": "context.traits.lastName" + } +] diff --git a/src/v0/sources/ortto/transform.js b/src/v0/sources/ortto/transform.js new file mode 100644 index 00000000000..b40163f567b --- /dev/null +++ b/src/v0/sources/ortto/transform.js @@ -0,0 +1,114 @@ +const path = require('path'); +const fs = require('fs'); +const { flattenJson, removeUndefinedAndNullValues, generateUUID } = require('../../util'); +const Message = require('../message'); +const eventMapping = require('./event_mapping.json'); +const { JSON_MIME_TYPE } = require('../../util/constant'); + +// import mapping json using JSON.parse to preserve object key order +const mapping = JSON.parse(fs.readFileSync(path.resolve(__dirname, './mapping.json'), 'utf-8')); + +function settingProperties(event, message) { + const messageReplica = message; + + // flattening the event and assigning it to properties + messageReplica.properties = removeUndefinedAndNullValues(flattenJson(event)); + + // fields that are already mapped + const excludeFields = [ + 'contact.email', + 'contact.contact_id', + 'id', + 'time', + 'activity.field_id', + 'contact.external_id', + 'contact.country.name', + 'contact.city.name', + 'contact.postal', + 'contact.first_name', + 'contact.last_name', + 'contact.birthday.day', + 'contact.birthday.month', + 'contact.birthday.year', + 'contact.phone_number.c', + 'contact.phone_number', + 'contact.phone_number.n', + ]; + + // deleting already mapped fields + excludeFields.forEach((field) => { + delete messageReplica.properties[field]; + }); + + return message; +} + +function process(event) { + let message = new Message(`ortto`); + + // Here, we are checking for the test event to discard them + if (event.activity?.field_id === 'act::test_webhook') { + return { + outputToSource: { + body: Buffer.from(JSON.stringify(event)).toString('base64'), + contentType: JSON_MIME_TYPE, + }, + statusCode: 200, + }; + } + + // we are setting event type as track always + message.setEventType('track'); + + message.setPropertiesV2(event, mapping); + + // setting anonymousId + if (!message.userId) { + message.anonymousId = generateUUID(); + } + + if (event.contact?.birthday) { + const month = + event.contact.birthday?.month < 10 + ? `0${event.contact.birthday?.month}` + : event.contact.birthday?.month; + const day = + event.contact.birthday?.day < 10 + ? `0${event.contact.birthday?.day}` + : event.contact.birthday?.day; + message.context.traits.birthday = `${event.contact.birthday?.year}-${month}-${day}`; + } + + if (event.contact?.phone_number) { + message.context.traits.phone = `${event.contact.phone_number?.c}${event.contact.phone_number?.n}`; + } + + // Updating timestamp to acceptable timestamp format ["2023-10-10T06:24:19.103820974Z" -> "2023-10-10T06:24:19.000Z"] + if (message.originalTimestamp) { + const date = `${Math.floor(new Date(message.originalTimestamp).getTime() / 1000)}`; + message.originalTimestamp = new Date(date * 1000).toISOString(); + } + + // setting event Name + message.setEventName(eventMapping[event.activity.field_id]); + + if (!message.event) { + message.event = 'custom event triggered'; + } + + // setting up ortto contact.contact_id to externalId + if (event.contact?.contact_id) { + message.context.externalId = [ + { + type: 'orttoPersonId', + id: event.contact.contact_id, + }, + ]; + } + + message = settingProperties(event, message); + + return message; +} + +module.exports = { process }; diff --git a/src/v0/sources/revenuecat/mapping.json b/src/v0/sources/revenuecat/mapping.json new file mode 100644 index 00000000000..541568b71b6 --- /dev/null +++ b/src/v0/sources/revenuecat/mapping.json @@ -0,0 +1,10 @@ +[ + { + "sourceKeys": "event.type", + "destKeys": "event" + }, + { + "sourceKeys": "event.id", + "destKeys": "messageId" + } +] diff --git a/src/v0/sources/revenuecat/transform.js b/src/v0/sources/revenuecat/transform.js new file mode 100644 index 00000000000..36944e10fac --- /dev/null +++ b/src/v0/sources/revenuecat/transform.js @@ -0,0 +1,47 @@ +const { camelCase } = require('lodash'); +const moment = require('moment'); +const { removeUndefinedAndNullValues, isDefinedAndNotNull } = require('../../util'); +const Message = require('../message'); + +function process(event) { + const message = new Message(`RevenueCat`); + + // we are setting event type as track always + message.setEventType('track'); + + const properties = {}; + // dump all event properties to message.properties after converting them to camelCase + if (event.event) { + Object.keys(event.event).forEach((key) => { + properties[camelCase(key)] = event.event[key]; + }); + message.setProperty('properties', properties); + } + + // setting up app_user_id to externalId : revenuecatAppUserId + if (event?.event?.app_user_id) { + message.context.externalId = [ + { + type: 'revenuecatAppUserId', + id: event?.event?.app_user_id, + }, + ]; + } + + if ( + isDefinedAndNotNull(event?.event?.event_timestamp_ms) && + moment(event?.event?.event_timestamp_ms).isValid() + ) { + const validTimestamp = new Date(event.event.event_timestamp_ms).toISOString(); + message.setProperty('originalTimestamp', validTimestamp); + message.setProperty('sentAt', validTimestamp); + } + message.event = event?.event?.type; + message.messageId = event?.event?.id; + + // removing undefined and null values from message + removeUndefinedAndNullValues(message); + return message; +} + +module.exports = { process }; diff --git a/src/v0/sources/shopify/config.js b/src/v0/sources/shopify/config.js index d8593ce79b6..b8b3cde284d 100644 --- a/src/v0/sources/shopify/config.js +++ b/src/v0/sources/shopify/config.js @@ -119,5 +119,5 @@ module.exports = { SHOPIFY_TRACK_MAP, useRedisDatabase, SHOPIFY_ADMIN_ONLY_EVENTS, - maxTimeToIdentifyRSGeneratedCall + maxTimeToIdentifyRSGeneratedCall, }; diff --git a/src/v0/sources/shopify/shopify_redis.util.test.js b/src/v0/sources/shopify/shopify_redis.util.test.js index 49437551c2b..db596e1dfb1 100644 --- a/src/v0/sources/shopify/shopify_redis.util.test.js +++ b/src/v0/sources/shopify/shopify_redis.util.test.js @@ -1,274 +1,285 @@ const { getAnonymousIdAndSessionId, checkAndUpdateCartItems } = require('./util'); jest.mock('ioredis', () => require('../../../../test/__mocks__/redis')); describe('Shopify Utils Test', () => { + describe('Check for valid cart update event test cases', () => { + it('Event containing token and nothing is retreived from redis and less than req. time difference between created_at and uadated_at', async () => { + const input = { + query_parameters: { + topic: ['carts_update'], + }, + id: 'cartTokenTest1', + line_items: [], + note: null, + updated_at: '2023-02-10T12:05:07.251Z', + created_at: '2023-02-10T12:05:04.402Z', + }; + const expectedOutput = false; + const output = await checkAndUpdateCartItems(input); + expect(output).toEqual(expectedOutput); + }); + it('Event containing token and nothing is retreived from redis', async () => { + const input = { + token: 'token_not_in_redis', + line_items: [ + { + prod_id: 'prod_1', + quantity: 1, + }, + ], + }; + const expectedOutput = true; + const output = await checkAndUpdateCartItems(input); + expect(output).toEqual(expectedOutput); + }); - describe('Check for valid cart update event test cases', () => { - it('Event containing token and nothing is retreived from redis and less than req. time difference between created_at and uadated_at', async () => { - const input = { - "query_parameters": { - "topic": [ - "carts_update" - ] - }, - "id": "cartTokenTest1", - "line_items": [], - "note": null, - "updated_at": "2023-02-10T12:05:07.251Z", - "created_at": "2023-02-10T12:05:04.402Z" - }; - const expectedOutput = false; - const output = await checkAndUpdateCartItems(input); - expect(output).toEqual(expectedOutput); - }); - it('Event containing token and nothing is retreived from redis', async () => { - const input = { - token: 'token_not_in_redis', - line_items: [ - { - prod_id: 'prod_1', - quantity: 1, - }, - ], - }; - const expectedOutput = true; - const output = await checkAndUpdateCartItems(input); - expect(output).toEqual(expectedOutput); - }); - - it('Event contain id for cart_update event and isValid', async () => { - const input = { - id: 'shopify_test2', - line_items: [ - { - prod_id: 'prod_1', - quantity: 1, - }, - ], - }; + it('Event contain id for cart_update event and isValid', async () => { + const input = { + id: 'shopify_test2', + line_items: [ + { + prod_id: 'prod_1', + quantity: 1, + }, + ], + }; - const expectedOutput = true; - const output = await checkAndUpdateCartItems(input); - expect(output).toEqual(expectedOutput); - }); + const expectedOutput = true; + const output = await checkAndUpdateCartItems(input); + expect(output).toEqual(expectedOutput); + }); - it('Event contain id for cart_update event and isInValid', async () => { - const input = { - id: 'shopify_test_duplicate_cart', - line_items: [ - { - prod_id: 'prod_1', - quantity: 1, - }, - ], - }; + it('Event contain id for cart_update event and isInValid', async () => { + const input = { + id: 'shopify_test_duplicate_cart', + line_items: [ + { + prod_id: 'prod_1', + quantity: 1, + }, + ], + }; - const expectedOutput = false; - const output = await checkAndUpdateCartItems(input); - expect(output).toEqual(expectedOutput); - }); + const expectedOutput = false; + const output = await checkAndUpdateCartItems(input); + expect(output).toEqual(expectedOutput); + }); - it('Valid Cart Event but not able to set data due to redis error', async () => { - const input = { - id: 'shopify_test_set_redis_error', - line_items: [ - { - prod_id: 'prod_1', - quantity: 1, - }, - ], - }; + it('Valid Cart Event but not able to set data due to redis error', async () => { + const input = { + id: 'shopify_test_set_redis_error', + line_items: [ + { + prod_id: 'prod_1', + quantity: 1, + }, + ], + }; - const expectedOutput = true; - const output = await checkAndUpdateCartItems(input); - expect(output).toEqual(expectedOutput); - }); + const expectedOutput = true; + const output = await checkAndUpdateCartItems(input); + expect(output).toEqual(expectedOutput); }); + }); - describe(' Test Cases -> set AnonymousId and sessionId without using Redis', () => { - it('Order Updated -> Properties containing cartToken', async () => { - const input = { - event: 'Order Updated', - properties: { - cart_token: '123', - }, - }; - const expectedOutput = { "anonymousId": "b9b6607d-6974-594f-8e99-ac3de71c4d89", "sessionId": undefined }; - const output = await getAnonymousIdAndSessionId(input, {}, null); - expect(output).toEqual(expectedOutput); - }); + describe(' Test Cases -> set AnonymousId and sessionId without using Redis', () => { + it('Order Updated -> Properties containing cartToken', async () => { + const input = { + event: 'Order Updated', + properties: { + cart_token: '123', + }, + }; + const expectedOutput = { + anonymousId: 'b9b6607d-6974-594f-8e99-ac3de71c4d89', + sessionId: undefined, + }; + const output = await getAnonymousIdAndSessionId(input, {}, null); + expect(output).toEqual(expectedOutput); + }); - it('Cart Update -> Properties contain `id` ', async () => { - const input = { - event: 'Cart Update', - properties: { - id: '123', - }, - }; + it('Cart Update -> Properties contain `id` ', async () => { + const input = { + event: 'Cart Update', + properties: { + id: '123', + }, + }; - const expectedOutput = { "anonymousId": "b9b6607d-6974-594f-8e99-ac3de71c4d89", "sessionId": undefined }; - const output = await getAnonymousIdAndSessionId(input, {}, null); + const expectedOutput = { + anonymousId: 'b9b6607d-6974-594f-8e99-ac3de71c4d89', + sessionId: undefined, + }; + const output = await getAnonymousIdAndSessionId(input, {}, null); - expect(output).toEqual(expectedOutput); - }); + expect(output).toEqual(expectedOutput); + }); - it('Customer event -> random AnonymousId', async () => { - const input = { - event: 'Customer Enabled', - properties: {}, - }; + it('Customer event -> random AnonymousId', async () => { + const input = { + event: 'Customer Enabled', + properties: {}, + }; - const output = await getAnonymousIdAndSessionId(input, {}, null); - expect(output).toEqual(output); // since it will be random - }); + const output = await getAnonymousIdAndSessionId(input, {}, null); + expect(output).toEqual(output); // since it will be random + }); - it('Order Delete -> No anonymousId is there', async () => { - const input = { - event: 'Order Deleted', - properties: { - order_id: 'Order_ID', - }, - }; - const expectedOutput = { "anonymousId": undefined, "sessionId": undefined }; - const output = await getAnonymousIdAndSessionId(input, {}, null); - expect(output).toEqual(expectedOutput); - }); + it('Order Delete -> No anonymousId is there', async () => { + const input = { + event: 'Order Deleted', + properties: { + order_id: 'Order_ID', + }, + }; + const expectedOutput = { anonymousId: undefined, sessionId: undefined }; + const output = await getAnonymousIdAndSessionId(input, {}, null); + expect(output).toEqual(expectedOutput); + }); - it('Checkout Create -> rudderAnonymousId and rudderSessionId present in note_attributes', async () => { - const input = { - event: 'Checkout Create', - properties: { - cart_token: 'CART_TOKEN', - note_attributes: [ - { - "name": "rudderAnonymousId", - "value": "RUDDER_ANONYMOUSID" - }, - { - "name": "rudderSessionId", - "value": "RUDDER_SESSIONID" - }, - { - "name": "rudderUpdatedAt", - "value": "TIMESTAMP" - } - ], - }, - }; - const expectedOutput = { "anonymousId": "RUDDER_ANONYMOUSID", "sessionId": "RUDDER_SESSIONID" }; - const output = await getAnonymousIdAndSessionId(input, {}, null); - expect(output).toEqual(expectedOutput); - }); + it('Checkout Create -> rudderAnonymousId and rudderSessionId present in note_attributes', async () => { + const input = { + event: 'Checkout Create', + properties: { + cart_token: 'CART_TOKEN', + note_attributes: [ + { + name: 'rudderAnonymousId', + value: 'RUDDER_ANONYMOUSID', + }, + { + name: 'rudderSessionId', + value: 'RUDDER_SESSIONID', + }, + { + name: 'rudderUpdatedAt', + value: 'TIMESTAMP', + }, + ], + }, + }; + const expectedOutput = { anonymousId: 'RUDDER_ANONYMOUSID', sessionId: 'RUDDER_SESSIONID' }; + const output = await getAnonymousIdAndSessionId(input, {}, null); + expect(output).toEqual(expectedOutput); }); + }); - describe('set AnonymousId and sesssionId with Redis Test Cases', () => { - // Doing the following to enable redis mid test case file execution - process.env.USE_REDIS_DB = true; - jest.resetModules(); - const { getAnonymousIdAndSessionId } = require('./util'); - it('Properties containing cartToken but failed due redisError', async () => { - const input = { - event: 'Order Paid', - properties: { - cart_token: 'shopify_test2', - }, - }; - const expectedOutput = { "anonymousId": "bcaf0473-fb11-562f-80a1-c83a35f053bc", "sessionId": undefined } // cartToken hashed - const output = await getAnonymousIdAndSessionId(input, {}, null); - expect(output).toEqual(expectedOutput); - }); + describe('set AnonymousId and sesssionId with Redis Test Cases', () => { + // Doing the following to enable redis mid test case file execution + process.env.USE_REDIS_DB = true; + jest.resetModules(); + const { getAnonymousIdAndSessionId } = require('./util'); + it('Properties containing cartToken but failed due redisError', async () => { + const input = { + event: 'Order Paid', + properties: { + cart_token: 'shopify_test2', + }, + }; + const expectedOutput = { + anonymousId: 'bcaf0473-fb11-562f-80a1-c83a35f053bc', + sessionId: undefined, + }; // cartToken hashed + const output = await getAnonymousIdAndSessionId(input, {}, null); + expect(output).toEqual(expectedOutput); + }); - it('Order Paid- > Properties containing cartToken and fetched anonymousId and sessionId successfully', async () => { - const input = { - event: 'Order Paid', - properties: { - cart_token: 'shopify_test2', - note_attributes: [ - { - name: "rudderUpdatedAt", - value: "RUDDER_UPDTD_AT" - } - ], - }, - }; - const expectedOutput = { "anonymousId": "anon_shopify_test2", "sessionId": "session_id_2" }; // fetched succesfully from redis + it('Order Paid- > Properties containing cartToken and fetched anonymousId and sessionId successfully', async () => { + const input = { + event: 'Order Paid', + properties: { + cart_token: 'shopify_test2', + note_attributes: [ + { + name: 'rudderUpdatedAt', + value: 'RUDDER_UPDTD_AT', + }, + ], + }, + }; + const expectedOutput = { anonymousId: 'anon_shopify_test2', sessionId: 'session_id_2' }; // fetched succesfully from redis - const output = await getAnonymousIdAndSessionId(input, {}, null); - expect(output).toEqual(expectedOutput); - }); + const output = await getAnonymousIdAndSessionId(input, {}, null); + expect(output).toEqual(expectedOutput); + }); - it('Cart Update -> Properties contain id and fetched anonymousId successfully', async () => { - const input = { - event: 'Cart Update', - properties: { - id: 'shopify_test_only_anon_id', - }, - }; - const expectedOutput = { "anonymousId": "anon_shopify_test_only_anon_id", "sessionId": undefined }; - const output = await getAnonymousIdAndSessionId(input, {}, null); - expect(output).toEqual(expectedOutput); - }); + it('Cart Update -> Properties contain id and fetched anonymousId successfully', async () => { + const input = { + event: 'Cart Update', + properties: { + id: 'shopify_test_only_anon_id', + }, + }; + const expectedOutput = { + anonymousId: 'anon_shopify_test_only_anon_id', + sessionId: undefined, + }; + const output = await getAnonymousIdAndSessionId(input, {}, null); + expect(output).toEqual(expectedOutput); + }); - it('No mapping not present in DB for given cartToken', async () => { - const input = { - event: 'Cart Update', - properties: { - id: 'unstored_id', - }, - }; + it('No mapping not present in DB for given cartToken', async () => { + const input = { + event: 'Cart Update', + properties: { + id: 'unstored_id', + }, + }; - const expectedOutput = { "anonymousId": "281a3e25-e603-5870-9cda-281c22940970", "sessionId": undefined }; + const expectedOutput = { + anonymousId: '281a3e25-e603-5870-9cda-281c22940970', + sessionId: undefined, + }; - const output = await getAnonymousIdAndSessionId(input, {}, null); - expect(output).toEqual(expectedOutput); - }); + const output = await getAnonymousIdAndSessionId(input, {}, null); + expect(output).toEqual(expectedOutput); + }); - it('No cartToken for SHOPIFY_ADMIN_ONLY_EVENTS', async () => { - const input = { - event: 'Fulfillments Update', - properties: { - id: 'unstored_id', - }, - }; - const expectedOutput = { "anonymousId": undefined, "sessionId": undefined }; + it('No cartToken for SHOPIFY_ADMIN_ONLY_EVENTS', async () => { + const input = { + event: 'Fulfillments Update', + properties: { + id: 'unstored_id', + }, + }; + const expectedOutput = { anonymousId: undefined, sessionId: undefined }; - const output = await getAnonymousIdAndSessionId(input, {}, null); - expect(output).toEqual(expectedOutput); - }); + const output = await getAnonymousIdAndSessionId(input, {}, null); + expect(output).toEqual(expectedOutput); + }); - it('No cartToken for Order paid', async () => { - const input = { - event: 'Order Paid', - properties: { - cart_token: 'shopify_test2', - }, - }; - const expectedOutput = 'RANDOM_ANONYMOUS_ID'; // fetched succesfully from redis + it('No cartToken for Order paid', async () => { + const input = { + event: 'Order Paid', + properties: { + cart_token: 'shopify_test2', + }, + }; + const expectedOutput = 'RANDOM_ANONYMOUS_ID'; // fetched succesfully from redis - const output = await getAnonymousIdAndSessionId(input, {}, null); - expect('RANDOM_ANONYMOUS_ID').toEqual(expectedOutput); - }); + const output = await getAnonymousIdAndSessionId(input, {}, null); + expect('RANDOM_ANONYMOUS_ID').toEqual(expectedOutput); + }); - it('Only anonymousId fetched from note_attributes and no cartToken', async () => { - const input = { - event: 'Order Paid', - properties: { - note_attributes: [ - { - name: "rudderAnonymousId", - value: "RUDDER_ANON_ID" - }, - { - name: "rudderUpdatedAt", - value: "RUDDER_UPDTD_AT" - } - ], - }, - }; - const expectedOutput = { "anonymousId": "RUDDER_ANON_ID", "sessionId": null }; // fetched succesfully from redis - const output = await getAnonymousIdAndSessionId(input, {}, null); + it('Only anonymousId fetched from note_attributes and no cartToken', async () => { + const input = { + event: 'Order Paid', + properties: { + note_attributes: [ + { + name: 'rudderAnonymousId', + value: 'RUDDER_ANON_ID', + }, + { + name: 'rudderUpdatedAt', + value: 'RUDDER_UPDTD_AT', + }, + ], + }, + }; + const expectedOutput = { anonymousId: 'RUDDER_ANON_ID', sessionId: null }; // fetched succesfully from redis + const output = await getAnonymousIdAndSessionId(input, {}, null); - expect(output).toEqual(expectedOutput); - }); + expect(output).toEqual(expectedOutput); }); - + }); }); diff --git a/src/v0/sources/shopify/transform.js b/src/v0/sources/shopify/transform.js index 5c26bfd8449..013580d7a3c 100644 --- a/src/v0/sources/shopify/transform.js +++ b/src/v0/sources/shopify/transform.js @@ -1,4 +1,5 @@ -const _ = require('lodash'); +/* eslint-disable @typescript-eslint/naming-convention */ +const lodash = require('lodash'); const get = require('get-value'); const stats = require('../../../util/stats'); const { @@ -125,8 +126,8 @@ const trackPayloadBuilder = (event, shopifyTopic) => { const processEvent = async (inputEvent, metricMetadata) => { let message; + const event = lodash.cloneDeep(inputEvent); let redisData; - const event = _.cloneDeep(inputEvent); const shopifyTopic = getShopifyTopic(event); delete event.query_parameters; switch (shopifyTopic) { @@ -172,7 +173,11 @@ const processEvent = async (inputEvent, metricMetadata) => { } } if (message.type !== EventType.IDENTIFY) { - const { anonymousId, sessionId } = await getAnonymousIdAndSessionId(message, metricMetadata, redisData); + const { anonymousId, sessionId } = await getAnonymousIdAndSessionId( + message, + { shopifyTopic, ...metricMetadata }, + redisData, + ); if (isDefinedAndNotNull(anonymousId)) { message.setProperty('anonymousId', anonymousId); } else if (!message.userId) { @@ -197,7 +202,8 @@ const processEvent = async (inputEvent, metricMetadata) => { message = removeUndefinedAndNullValues(message); return message; }; -const isIdentifierEvent = (event) => ['rudderIdentifier', 'rudderSessionIdentifier'].includes(event?.event); +const isIdentifierEvent = (event) => + ['rudderIdentifier', 'rudderSessionIdentifier'].includes(event?.event); const processIdentifierEvent = async (event, metricMetadata) => { if (useRedisDatabase) { let value; @@ -240,7 +246,6 @@ const processIdentifierEvent = async (event, metricMetadata) => { ...metricMetadata, }); } - } const result = { outputToSource: { diff --git a/src/v0/sources/shopify/util.js b/src/v0/sources/shopify/util.js index 76cc255f385..6f31ade4a70 100644 --- a/src/v0/sources/shopify/util.js +++ b/src/v0/sources/shopify/util.js @@ -1,8 +1,16 @@ /* eslint-disable camelcase */ +/* eslint-disable @typescript-eslint/naming-convention */ const { v5 } = require('uuid'); const sha256 = require('sha256'); +const { TransformationError } = require('@rudderstack/integrations-lib'); const stats = require('../../../util/stats'); -const { constructPayload, extractCustomFields, flattenJson, generateUUID, isDefinedAndNotNull, } = require('../../util'); +const { + constructPayload, + extractCustomFields, + flattenJson, + generateUUID, + isDefinedAndNotNull, +} = require('../../util'); const { RedisDB } = require('../../../util/redis/redisConnector'); const logger = require('../../../logger'); const { @@ -13,10 +21,8 @@ const { SHOPIFY_TRACK_MAP, SHOPIFY_ADMIN_ONLY_EVENTS, useRedisDatabase, - maxTimeToIdentifyRSGeneratedCall + maxTimeToIdentifyRSGeneratedCall, } = require('./config'); -const { TransformationError } = require('../../util/errorTypes'); - const getDataFromRedis = async (key, metricMetadata) => { try { @@ -26,14 +32,16 @@ const getDataFromRedis = async (key, metricMetadata) => { ...metricMetadata, }); const redisData = await RedisDB.getVal(key); - if (redisData === null) { + if ( + redisData === null || + (typeof redisData === 'object' && Object.keys(redisData).length === 0) + ) { stats.increment('shopify_redis_no_val', { ...metricMetadata, }); } return redisData; - } - catch (e) { + } catch (e) { logger.debug(`{{SHOPIFY::}} Get call Failed due redis error ${e}`); stats.increment('shopify_redis_failures', { type: 'get', @@ -112,11 +120,11 @@ const extractEmailFromPayload = (event) => { }; const getCartToken = (message) => { - const { event } = message; + const { event, properties } = message; if (event === SHOPIFY_TRACK_MAP.carts_update) { - return message.properties?.id || message.properties?.token; + return properties?.id || properties?.token; } - return message.properties?.cart_token || null; + return properties?.cart_token || null; }; /** @@ -141,9 +149,9 @@ const getRudderIdFromNoteAtrributes = (noteAttributes, field) => { * -> if true we return `null`; * -> else we don't have any identifer (very edge case) we return `random anonymousId` * No Random SessionId is generated as its not a required field - * @param {*} message - * @param {*} metricMetadata - * @returns + * @param {*} message + * @param {*} metricMetadata + * @returns */ const getAnonymousIdAndSessionId = async (message, metricMetadata, redisData = null) => { let anonymousId; @@ -151,11 +159,15 @@ const getAnonymousIdAndSessionId = async (message, metricMetadata, redisData = n const noteAttributes = message.properties?.note_attributes; // Giving Priority to note_attributes to fetch rudderAnonymousId over Redis due to better efficiency if (isDefinedAndNotNull(noteAttributes)) { - anonymousId = getRudderIdFromNoteAtrributes(noteAttributes, "rudderAnonymousId"); - sessionId = getRudderIdFromNoteAtrributes(noteAttributes, "rudderSessionId"); + anonymousId = getRudderIdFromNoteAtrributes(noteAttributes, 'rudderAnonymousId'); + sessionId = getRudderIdFromNoteAtrributes(noteAttributes, 'rudderSessionId'); } // falling back to cartToken mapping or its hash in case no rudderAnonymousId or rudderSessionId is found if (isDefinedAndNotNull(anonymousId) && isDefinedAndNotNull(sessionId)) { + stats.increment('shopify_anon_id_resolve', { + method: 'note_attributes', + ...metricMetadata, + }); return { anonymousId, sessionId }; } const cartToken = getCartToken(message); @@ -163,7 +175,10 @@ const getAnonymousIdAndSessionId = async (message, metricMetadata, redisData = n if (SHOPIFY_ADMIN_ONLY_EVENTS.includes(message.event)) { return { anonymousId, sessionId }; } - return { anonymousId: isDefinedAndNotNull(anonymousId) ? anonymousId : generateUUID(), sessionId }; + return { + anonymousId: isDefinedAndNotNull(anonymousId) ? anonymousId : generateUUID(), + sessionId, + }; } if (useRedisDatabase) { if (!isDefinedAndNotNull(redisData)) { @@ -178,6 +193,13 @@ const getAnonymousIdAndSessionId = async (message, metricMetadata, redisData = n Hash the id and use it as anonymousId (limiting 256 -> 36 chars) and sessionId is not sent as its not required field */ anonymousId = v5(cartToken, v5.URL); + } else { + // This metric let us know how many events based on event name used redis for anonId resolution + // and for how many + stats.increment('shopify_anon_id_resolve', { + method: 'database', + ...metricMetadata, + }); } return { anonymousId, sessionId }; }; @@ -196,8 +218,7 @@ const updateCartItemsInRedis = async (cartToken, newCartItemsHash, metricMetadat ...metricMetadata, }); await RedisDB.setVal(`${cartToken}`, value); - } - catch (e) { + } catch (e) { logger.debug(`{{SHOPIFY::}} itemsHash set call Failed due redis error ${e}`); stats.increment('shopify_redis_failures', { type: 'set', @@ -228,10 +249,10 @@ const checkAndUpdateCartItems = async (inputEvent, redisData, metricMetadata) => } await updateCartItemsInRedis(cartToken, newCartItemsHash, metricMetadata); } else { - const { created_at, updated_at } = inputEvent; + const { created_at, updated_at, line_items } = inputEvent; const timeDifference = Date.parse(updated_at) - Date.parse(created_at); const isTimeWithinThreshold = timeDifference < maxTimeToIdentifyRSGeneratedCall; - const isLineItemsEmpty = inputEvent?.line_items?.length === 0; + const isLineItemsEmpty = line_items?.length === 0; if (isTimeWithinThreshold && isLineItemsEmpty) { return false; diff --git a/src/v0/util/constant.js b/src/v0/util/constant.js index a06fbd8b9a4..9996f1ea7c6 100644 --- a/src/v0/util/constant.js +++ b/src/v0/util/constant.js @@ -10,6 +10,9 @@ const API_CALL = 'api_call_count'; const JSON_MIME_TYPE = 'application/json'; +const FEATURE_FILTER_CODE = 'filter-code'; +const FEATURE_GZIP_SUPPORT = 'gzip-support'; + const HTTP_STATUS_CODES = { // 1xx Informational CONTINUE: 100, @@ -25,6 +28,8 @@ const HTTP_STATUS_CODES = { RESET_CONTENT: 205, PARTIAL_CONTENT: 206, MULTI_STATUS: 207, + FILTER_EVENTS: 298, + SUPPRESS_EVENTS: 299, // 3xx Redirection MULTIPLE_CHOICES: 300, @@ -75,14 +80,15 @@ const HTTP_STATUS_CODES = { GATEWAY_TIMEOUT: 504, HTTP_VERSION_NOT_SUPPORTED: 505, INSUFFICIENT_STORAGE: 507, - NETWORK_AUTHENTICATION_REQUIRED: 511 + NETWORK_AUTHENTICATION_REQUIRED: 511, }; - module.exports = { API_CALL, AUTH_CACHE_TTL, - USER_LEAD_CACHE_TTL, JSON_MIME_TYPE, - HTTP_STATUS_CODES + HTTP_STATUS_CODES, + USER_LEAD_CACHE_TTL, + FEATURE_FILTER_CODE, + FEATURE_GZIP_SUPPORT, }; diff --git a/src/v0/util/deleteUserUtils.js b/src/v0/util/deleteUserUtils.js index 81607aeb3da..6cf16d7f9ea 100644 --- a/src/v0/util/deleteUserUtils.js +++ b/src/v0/util/deleteUserUtils.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); /** * Takes the userAttributes array fetches userIds at root level of each element * and make batches of Ids accoring to MAX_BATCH_SIZE @@ -14,7 +14,7 @@ const getUserIdBatches = (userAttributes, MAX_BATCH_SIZE) => { userIds.push(userAttribute.userId); } }); - const userIdBatches = _.chunk(userIds, MAX_BATCH_SIZE); + const userIdBatches = lodash.chunk(userIds, MAX_BATCH_SIZE); return userIdBatches; }; diff --git a/src/v0/util/errorTypes/abortedError.js b/src/v0/util/errorTypes/abortedError.js deleted file mode 100644 index bf5896c8bec..00000000000 --- a/src/v0/util/errorTypes/abortedError.js +++ /dev/null @@ -1,15 +0,0 @@ -const tags = require('../tags'); -const { BaseError } = require('./base'); - -class AbortedError extends BaseError { - constructor(message, statusCode, destResponse, authErrorCategory) { - const finalStatTags = { - [tags.TAG_NAMES.ERROR_CATEGORY]: tags.ERROR_CATEGORIES.NETWORK, - [tags.TAG_NAMES.ERROR_TYPE]: tags.ERROR_TYPES.ABORTED, - }; - - super(message, statusCode || 400, finalStatTags, destResponse, authErrorCategory); - } -} - -module.exports = AbortedError; diff --git a/src/v0/util/errorTypes/configurationError.js b/src/v0/util/errorTypes/configurationError.js deleted file mode 100644 index 59df3718e70..00000000000 --- a/src/v0/util/errorTypes/configurationError.js +++ /dev/null @@ -1,16 +0,0 @@ -const tags = require('../tags'); -const { BaseError } = require('./base'); - -class ConfigurationError extends BaseError { - constructor(message) { - const finalStatTags = { - [tags.TAG_NAMES.ERROR_CATEGORY]: tags.ERROR_CATEGORIES.DATA_VALIDATION, - [tags.TAG_NAMES.ERROR_TYPE]: tags.ERROR_TYPES.CONFIGURATION, - }; - - // TODO: Change this to a retryable error - super(message, 400, finalStatTags); - } -} - -module.exports = ConfigurationError; diff --git a/src/v0/util/errorTypes/filteredEventsError.js b/src/v0/util/errorTypes/filteredEventsError.js new file mode 100644 index 00000000000..990ca76670c --- /dev/null +++ b/src/v0/util/errorTypes/filteredEventsError.js @@ -0,0 +1,10 @@ +const { BaseError } = require('@rudderstack/integrations-lib'); +const { HTTP_STATUS_CODES } = require('../constant'); + +class FilteredEventsError extends BaseError { + constructor(message, statusCode = HTTP_STATUS_CODES.FILTER_EVENTS) { + super(message, statusCode); + } +} + +module.exports = FilteredEventsError; diff --git a/src/v0/util/errorTypes/index.js b/src/v0/util/errorTypes/index.js index 01708caa15c..f3cef657cad 100644 --- a/src/v0/util/errorTypes/index.js +++ b/src/v0/util/errorTypes/index.js @@ -1,35 +1,7 @@ -const { BaseError } = require('./base'); -const TransformationError = require('./transformationError'); -const ConfigurationError = require('./configurationError'); -const InstrumentationError = require('./instrumentationError'); -const PlatformError = require('./platformError'); -const OAuthSecretError = require('./oAuthSecretError'); -const NetworkError = require('./networkError'); -const ThrottledError = require('./throttledError'); -const RedisError = require('./redisError'); -const RetryableError = require('./retryableError'); -const InvalidAuthTokenError = require('./invalidAuthTokenError'); -const AbortedError = require('./abortedError'); -const UnhandledStatusCodeError = require('./unhandledStatusCodeError'); -const UnauthorizedError = require('./unauthorizedError'); -const NetworkInstrumentationError = require('./networkInstrumentationError'); -const UnsupportedEventError = require('./unsupportedEventError'); +const FilteredEventsError = require('./filteredEventsError'); +const TransformerProxyError = require('./transformerProxyError'); module.exports = { - BaseError, - TransformationError, - ConfigurationError, - InstrumentationError, - PlatformError, - OAuthSecretError, - NetworkError, - ThrottledError, - RetryableError, - InvalidAuthTokenError, - AbortedError, - UnhandledStatusCodeError, - UnauthorizedError, - NetworkInstrumentationError, - UnsupportedEventError, - RedisError, + FilteredEventsError, + TransformerProxyError, }; diff --git a/src/v0/util/errorTypes/instrumentationError.js b/src/v0/util/errorTypes/instrumentationError.js deleted file mode 100644 index 74df966260f..00000000000 --- a/src/v0/util/errorTypes/instrumentationError.js +++ /dev/null @@ -1,15 +0,0 @@ -const tags = require('../tags'); -const { BaseError } = require('./base'); - -class InstrumentationError extends BaseError { - constructor(message) { - const finalStatTags = { - [tags.TAG_NAMES.ERROR_CATEGORY]: tags.ERROR_CATEGORIES.DATA_VALIDATION, - [tags.TAG_NAMES.ERROR_TYPE]: tags.ERROR_TYPES.INSTRUMENTATION, - }; - - super(message, 400, finalStatTags); - } -} - -module.exports = InstrumentationError; diff --git a/src/v0/util/errorTypes/invalidAuthTokenError.js b/src/v0/util/errorTypes/invalidAuthTokenError.js deleted file mode 100644 index 6a78996c6ec..00000000000 --- a/src/v0/util/errorTypes/invalidAuthTokenError.js +++ /dev/null @@ -1,16 +0,0 @@ -const tags = require('../tags'); -const { BaseError } = require('./base'); - -class InvalidAuthTokenError extends BaseError { - constructor(message, statusCode, destResponse, authErrorCategory) { - const finalStatTags = { - [tags.TAG_NAMES.ERROR_CATEGORY]: tags.ERROR_CATEGORIES.NETWORK, - [tags.TAG_NAMES.ERROR_TYPE]: tags.ERROR_TYPES.RETRYABLE, - [tags.TAG_NAMES.META]: tags.METADATA.INVALID_AUTH_TOKEN, - }; - - super(message, statusCode || 500, finalStatTags, destResponse, authErrorCategory); - } -} - -module.exports = InvalidAuthTokenError; diff --git a/src/v0/util/errorTypes/networkInstrumentationError.js b/src/v0/util/errorTypes/networkInstrumentationError.js deleted file mode 100644 index fb9acdfeb45..00000000000 --- a/src/v0/util/errorTypes/networkInstrumentationError.js +++ /dev/null @@ -1,16 +0,0 @@ -const tags = require('../tags'); -const { BaseError } = require('./base'); - -class NetworkInstrumentationError extends BaseError { - constructor(message, destResponse) { - const finalStatTags = { - [tags.TAG_NAMES.ERROR_CATEGORY]: tags.ERROR_CATEGORIES.NETWORK, - [tags.TAG_NAMES.ERROR_TYPE]: tags.ERROR_TYPES.ABORTED, - [tags.TAG_NAMES.META]: tags.METADATA.INSTRUMENTATION, - }; - - super(message, 400, finalStatTags, destResponse); - } -} - -module.exports = NetworkInstrumentationError; diff --git a/src/v0/util/errorTypes/oAuthSecretError.js b/src/v0/util/errorTypes/oAuthSecretError.js deleted file mode 100644 index dd8c51eaac7..00000000000 --- a/src/v0/util/errorTypes/oAuthSecretError.js +++ /dev/null @@ -1,15 +0,0 @@ -const tags = require('../tags'); -const { BaseError } = require('./base'); - -class OAuthSecretError extends BaseError { - constructor(message) { - const finalStatTags = { - [tags.TAG_NAMES.ERROR_CATEGORY]: tags.ERROR_CATEGORIES.PLATFORM, - [tags.TAG_NAMES.ERROR_TYPE]: tags.ERROR_TYPES.OAUTH_SECRET, - }; - - super(message, 500, finalStatTags); - } -} - -module.exports = OAuthSecretError; diff --git a/src/v0/util/errorTypes/platformError.js b/src/v0/util/errorTypes/platformError.js deleted file mode 100644 index b04ef50c162..00000000000 --- a/src/v0/util/errorTypes/platformError.js +++ /dev/null @@ -1,14 +0,0 @@ -const tags = require('../tags'); -const { BaseError } = require('./base'); - -class PlatformError extends BaseError { - constructor(message) { - const finalStatTags = { - [tags.TAG_NAMES.ERROR_CATEGORY]: tags.ERROR_CATEGORIES.PLATFORM, - }; - - super(message, 400, finalStatTags); - } -} - -module.exports = PlatformError; diff --git a/src/v0/util/errorTypes/redisError.js b/src/v0/util/errorTypes/redisError.js deleted file mode 100644 index ec3d49ff2b5..00000000000 --- a/src/v0/util/errorTypes/redisError.js +++ /dev/null @@ -1,15 +0,0 @@ -const tags = require('../tags'); -const { BaseError } = require('./base'); - -class RedisError extends BaseError { - constructor(message, statusCode) { - const finalStatTags = { - [tags.TAG_NAMES.ERROR_CATEGORY]: tags.ERROR_CATEGORIES.TRANSFORMATION, - [tags.TAG_NAMES.ERROR_TYPE]: tags.ERROR_TYPES.REDIS, - }; - - super(message, statusCode || 500, finalStatTags); - } -} - -module.exports = RedisError; diff --git a/src/v0/util/errorTypes/retryableError.js b/src/v0/util/errorTypes/retryableError.js deleted file mode 100644 index ba18424c76f..00000000000 --- a/src/v0/util/errorTypes/retryableError.js +++ /dev/null @@ -1,15 +0,0 @@ -const tags = require('../tags'); -const { BaseError } = require('./base'); - -class RetryableError extends BaseError { - constructor(message, statusCode, destResponse, authErrorCategory) { - const finalStatTags = { - [tags.TAG_NAMES.ERROR_CATEGORY]: tags.ERROR_CATEGORIES.NETWORK, - [tags.TAG_NAMES.ERROR_TYPE]: tags.ERROR_TYPES.RETRYABLE, - }; - - super(message, statusCode || 500, finalStatTags, destResponse, authErrorCategory); - } -} - -module.exports = RetryableError; diff --git a/src/v0/util/errorTypes/throttledError.js b/src/v0/util/errorTypes/throttledError.js deleted file mode 100644 index 0e873c78928..00000000000 --- a/src/v0/util/errorTypes/throttledError.js +++ /dev/null @@ -1,15 +0,0 @@ -const tags = require('../tags'); -const { BaseError } = require('./base'); - -class ThrottledError extends BaseError { - constructor(message, destResponse) { - const finalStatTags = { - [tags.TAG_NAMES.ERROR_CATEGORY]: tags.ERROR_CATEGORIES.NETWORK, - [tags.TAG_NAMES.ERROR_TYPE]: tags.ERROR_TYPES.THROTTLED, - }; - - super(message, 429, finalStatTags, destResponse); - } -} - -module.exports = ThrottledError; diff --git a/src/v0/util/errorTypes/transformationError.js b/src/v0/util/errorTypes/transformationError.js deleted file mode 100644 index 0b28b619840..00000000000 --- a/src/v0/util/errorTypes/transformationError.js +++ /dev/null @@ -1,14 +0,0 @@ -const tags = require('../tags'); -const { BaseError } = require('./base'); - -class TransformationError extends BaseError { - constructor(message, statusCode, destResponse, authErrorCategory) { - const finalStatTags = { - [tags.TAG_NAMES.ERROR_CATEGORY]: tags.ERROR_CATEGORIES.TRANSFORMATION, - }; - - super(message, statusCode || 400, finalStatTags, destResponse, authErrorCategory); - } -} - -module.exports = TransformationError; diff --git a/src/v0/util/errorTypes/networkError.js b/src/v0/util/errorTypes/transformerProxyError.js similarity index 72% rename from src/v0/util/errorTypes/networkError.js rename to src/v0/util/errorTypes/transformerProxyError.js index 3461efbbdd1..2fefb6fb926 100644 --- a/src/v0/util/errorTypes/networkError.js +++ b/src/v0/util/errorTypes/transformerProxyError.js @@ -1,11 +1,10 @@ +const { BaseError } = require('@rudderstack/integrations-lib'); const tags = require('../tags'); -const { BaseError } = require('./base'); const errorTypes = Object.values(tags.ERROR_TYPES); const metaTypes = Object.values(tags.METADATA); -// To throw error when error type (abort, retry or throttle) has to be dynamically deduced -class NetworkError extends BaseError { - constructor(message, statusCode, statTags, destResponse, authErrorCategory) { +class TransformerProxyError extends BaseError { + constructor(message, statusCode, statTags, destResponse, authErrorCategory, response) { const finalStatTags = { [tags.TAG_NAMES.ERROR_CATEGORY]: tags.ERROR_CATEGORIES.NETWORK, [tags.TAG_NAMES.ERROR_TYPE]: tags.ERROR_TYPES.ABORTED, @@ -21,9 +20,9 @@ class NetworkError extends BaseError { finalStatTags[tags.TAG_NAMES.META] = statTags[tags.TAG_NAMES.META]; } } - - super(message, statusCode || 400, finalStatTags, destResponse, authErrorCategory); + super(message, statusCode, finalStatTags, destResponse, authErrorCategory); + this.response = response; } } -module.exports = NetworkError; +module.exports = TransformerProxyError; diff --git a/src/v0/util/errorTypes/unauthorizedError.js b/src/v0/util/errorTypes/unauthorizedError.js deleted file mode 100644 index c9c35795b8a..00000000000 --- a/src/v0/util/errorTypes/unauthorizedError.js +++ /dev/null @@ -1,16 +0,0 @@ -const tags = require('../tags'); -const { BaseError } = require('./base'); - -class UnauthorizedError extends BaseError { - constructor(message, statusCode, destResponse, authErrorCategory) { - const finalStatTags = { - [tags.TAG_NAMES.ERROR_CATEGORY]: tags.ERROR_CATEGORIES.NETWORK, - [tags.TAG_NAMES.ERROR_TYPE]: tags.ERROR_TYPES.ABORTED, - [tags.TAG_NAMES.META]: tags.METADATA.UNAUTHORIZED, - }; - - super(message, statusCode || 400, finalStatTags, destResponse, authErrorCategory); - } -} - -module.exports = UnauthorizedError; diff --git a/src/v0/util/errorTypes/unhandledStatusCodeError.js b/src/v0/util/errorTypes/unhandledStatusCodeError.js deleted file mode 100644 index fe35c01c1ad..00000000000 --- a/src/v0/util/errorTypes/unhandledStatusCodeError.js +++ /dev/null @@ -1,16 +0,0 @@ -const tags = require('../tags'); -const { BaseError } = require('./base'); - -class UnhandledStatusCodeError extends BaseError { - constructor(message, destResponse) { - const finalStatTags = { - [tags.TAG_NAMES.ERROR_CATEGORY]: tags.ERROR_CATEGORIES.NETWORK, - [tags.TAG_NAMES.ERROR_TYPE]: tags.ERROR_TYPES.ABORTED, - [tags.TAG_NAMES.META]: tags.METADATA.UNHANDLED_STATUS_CODE, - }; - - super(message, 400, finalStatTags, destResponse); - } -} - -module.exports = UnhandledStatusCodeError; diff --git a/src/v0/util/errorTypes/unsupportedEventError.js b/src/v0/util/errorTypes/unsupportedEventError.js deleted file mode 100644 index c2e965b620a..00000000000 --- a/src/v0/util/errorTypes/unsupportedEventError.js +++ /dev/null @@ -1,14 +0,0 @@ -const tags = require('../tags'); -const { BaseError } = require('./base'); - -class UnsupportedEventError extends BaseError { - constructor(message) { - const finalStatTags = { - [tags.TAG_NAMES.ERROR_CATEGORY]: tags.ERROR_CATEGORIES.PLATFORM, - [tags.TAG_NAMES.ERROR_TYPE]: tags.ERROR_TYPES.UNSUPPORTED, - }; - super(message, 400, finalStatTags); - } -} - -module.exports = UnsupportedEventError; diff --git a/src/v0/util/facebookUtils/index.js b/src/v0/util/facebookUtils/index.js new file mode 100644 index 00000000000..4c095185592 --- /dev/null +++ b/src/v0/util/facebookUtils/index.js @@ -0,0 +1,301 @@ +const sha256 = require('sha256'); +const { InstrumentationError, TransformationError } = require('@rudderstack/integrations-lib'); +const { + isObject, + getIntegrationsObj, + getHashFromArray, + constructPayload, + defaultRequestConfig, + defaultPostRequestConfig, + getFieldValueFromMessage, + formatTimeStamp, +} = require('../index'); + +/** This function transforms the payloads according to the config settings and adds, removes or hashes pii data. + @param message --> the rudder payload + + { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { Fb: { app_id: 'RudderFbApp' } }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi' + }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + screen: { height: '100', density: 50 }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1' + } + }, + event: 'spin_result', + integrations: { + All: true, + FacebookPixel: { + dataProcessingOptions: [Array], + fbc: 'fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890', + fbp: 'fb.1.1554763741205.234567890', + fb_login_id: 'fb_id', + lead_id: 'lead_id' + } + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { revenue: 400, additional_bet_index: 0 }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track' + } + + @param customData --> properties + { revenue: 400, additional_bet_index: 0 } + + @param blacklistPiiProperties --> + [ { blacklistPiiProperties: 'phone', blacklistPiiHash: true } ] // hashes the phone property + + @param whitelistPiiProperties --> + [ { whitelistPiiProperties: 'email' } ] // sets email + + + @param integrationsObj --> + { hashed: true } + + */ + +const transformedPayloadData = ( + message, + customData, + blacklistPiiProperties, + whitelistPiiProperties, + integrationsObj, +) => { + const defaultPiiProperties = [ + 'email', + 'firstName', + 'lastName', + 'firstname', + 'lastname', + 'first_name', + 'last_name', + 'gender', + 'city', + 'country', + 'phone', + 'state', + 'zip', + 'postalCode', + 'birthday', + ]; + const clonedCustomData = { ...customData }; + const finalBlacklistPiiProperties = blacklistPiiProperties || []; + const finalWhitelistPiiProperties = whitelistPiiProperties || []; + const customBlackListedPiiProperties = {}; + + // create list of whitelisted properties + const customWhiteListedProperties = finalWhitelistPiiProperties.map( + (propObject) => propObject.whitelistPiiProperties, + ); + + // create map of blacklisted properties + finalBlacklistPiiProperties.forEach((property) => { + const singularConfigInstance = property; + customBlackListedPiiProperties[singularConfigInstance.blacklistPiiProperties] = + singularConfigInstance.blacklistPiiHash; + }); + + // remove properties which are default pii properties and not whitelisted + Object.keys(clonedCustomData).forEach((eventProp) => { + const isDefaultPiiProperty = defaultPiiProperties.includes(eventProp); + const isProperyWhiteListed = customWhiteListedProperties.includes(eventProp); + + if (Object.hasOwn(customBlackListedPiiProperties, eventProp)) { + if (customBlackListedPiiProperties[eventProp]) { + // if customBlackListedPiiProperty is marked to be hashed from UI + clonedCustomData[eventProp] = integrationsObj?.hashed + ? String(message.properties[eventProp]) + : sha256(String(message.properties[eventProp])); + } else if (isDefaultPiiProperty && !isProperyWhiteListed) { + delete clonedCustomData[eventProp]; + } + } else if (isDefaultPiiProperty && !isProperyWhiteListed) { + delete clonedCustomData[eventProp]; + } + }); + + return clonedCustomData; +}; + +/** + * + * @param {*} message Rudder Payload + * @param {*} defaultValue product / product_group + * @param {*} categoryToContent example: [ { from: 'clothing', to: 'product' } ] + * @param {*} destinationName destination name + * + * We will be mapping properties.category to user provided content else taking the default value as per ecomm spec + * If category is clothing it will be set to ["product"] + * @return Content Type array as defined in: + * - https://developers.facebook.com/docs/facebook-pixel/reference/#object-properties + */ +const getContentType = (message, defaultValue, categoryToContent, destinationName) => { + const { properties } = message; + const integrationsObj = getIntegrationsObj(message, destinationName || 'fb_pixel'); + + if (integrationsObj?.contentType) { + return integrationsObj.contentType; + } + + let { category } = properties; + if (!category) { + const { products } = properties; + if (products && products.length > 0 && Array.isArray(products) && isObject(products[0])) { + category = products[0].category; + } + } + + if (Array.isArray(categoryToContent) && category) { + const categoryToContentHash = getHashFromArray(categoryToContent, 'from', 'to', false); + if (categoryToContentHash[category]) { + return categoryToContentHash[category]; + } + } + + return defaultValue; +}; + +/** + * This method gets content category with proper error-handling + * + * @param {*} category + * @returns The content category as a string + */ +const getContentCategory = (category) => { + let contentCategory = category; + if (Array.isArray(contentCategory)) { + contentCategory = contentCategory.map(String).join(','); + } + if ( + contentCategory && + typeof contentCategory !== 'string' && + typeof contentCategory !== 'object' + ) { + contentCategory = String(contentCategory); + } + if ( + contentCategory && + typeof contentCategory !== 'string' && + !Array.isArray(contentCategory) && + typeof contentCategory === 'object' + ) { + throw new InstrumentationError("'properties.category' must be either be a string or an array"); + } + return contentCategory; +}; + +/** + * + * @param {*} message + * @returns string which is fbc parameter + * + * version : "fb" (default) + * + * subdomainIndex : 1 ( recommended by facebook, as well as our JS SDK sets cookies on the main domain, i.e "facebook.com") + * + * creationTime : mapped to originalTimestamp converted in miliseconds + * + * fbclid : deduced query paramter from context.page.url + * + * ref: https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc#fbc + */ +const deduceFbcParam = (message) => { + const url = message.context?.page?.url; + if (!url) { + return undefined; + } + let parseUrl; + try { + parseUrl = new URL(url); + } catch { + return undefined; + } + const paramsList = new URLSearchParams(parseUrl.search); + const fbclid = paramsList.get('fbclid'); + + if (!fbclid) { + return undefined; + } + const creationTime = getFieldValueFromMessage(message, 'timestamp'); + return `fb.1.${formatTimeStamp(creationTime)}.${fbclid}`; +}; + +const fetchUserData = (message, Config, mappingJson, destinationName) => { + const integrationsObj = getIntegrationsObj(message, destinationName); + const userData = constructPayload(message, mappingJson, destinationName); + const { removeExternalId } = Config; + if (removeExternalId) { + delete userData.external_id; + } + + if (userData) { + const split = userData.name?.split(' '); + if (split && split.length === 2) { + const hashValue = (value) => (integrationsObj?.hashed ? value : sha256(value)); + userData.fn = hashValue(split[0]); + userData.ln = hashValue(split[1]); + } + delete userData.name; + userData.fbc = userData.fbc || deduceFbcParam(message); + } + + return userData; +}; + +const formingFinalResponse = ( + userData, + commonData, + customData, + endpoint, + testDestination, + testEventCode, + appData, +) => { + if (userData && commonData) { + const response = defaultRequestConfig(); + response.endpoint = endpoint; + response.method = defaultPostRequestConfig.requestMethod; + const jsonData = { + user_data: userData, + ...commonData, + }; + if (appData && Object.keys(appData).length > 0) { + jsonData.app_data = appData; + } + if (customData && Object.keys(customData).length > 0) { + jsonData.custom_data = customData; + } + const jsonStringify = JSON.stringify(jsonData); + const payload = { + data: [jsonStringify], + }; + + // Ref: https://developers.facebook.com/docs/marketing-api/conversions-api/using-the-api/ + // Section: Test Events Tool + if (testDestination) { + payload.test_event_code = testEventCode; + } + response.body.FORM = payload; + return response; + } + // fail-safety for developer error + throw new TransformationError('Payload could not be constructed'); +}; + +module.exports = { + getContentType, + getContentCategory, + transformedPayloadData, + formingFinalResponse, + fetchUserData, +}; diff --git a/src/v0/destinations/facebook_pixel/utils.test.js b/src/v0/util/facebookUtils/index.test.js similarity index 98% rename from src/v0/destinations/facebook_pixel/utils.test.js rename to src/v0/util/facebookUtils/index.test.js index acd14ad2a80..98e4ccec402 100644 --- a/src/v0/destinations/facebook_pixel/utils.test.js +++ b/src/v0/util/facebookUtils/index.test.js @@ -1,4 +1,4 @@ -const { transformedPayloadData } = require('../../../../src/v0/destinations/facebook_pixel/utils'); +const { transformedPayloadData } = require('./index'); const sha256 = require('sha256'); describe('transformedPayloadData_function', () => { diff --git a/src/v0/util/facebookUtils/networkHandler.js b/src/v0/util/facebookUtils/networkHandler.js new file mode 100644 index 00000000000..e0d69fa5c8b --- /dev/null +++ b/src/v0/util/facebookUtils/networkHandler.js @@ -0,0 +1,272 @@ +const { isEmpty } = require('lodash'); +const get = require('get-value'); +const { NetworkError } = require('@rudderstack/integrations-lib'); +const { + processAxiosResponse, + getDynamicErrorType, +} = require('../../../adapters/utils/networkUtils'); +const { prepareProxyRequest, proxyRequest } = require('../../../adapters/network'); +const tags = require('../tags'); +const { ErrorDetailsExtractorBuilder } = require('../../../util/error-extractor'); + +/** + * Only under below mentioned scenario(s), add the errorCodes, subCodes etc,. to this map + * + * The actual API reference doc to which events from Rudderstack are being sent + * https://developers.facebook.com/docs/marketing-api/reference/ads-pixel/events/v13.0 + * + * The documents referred while formulating the error responses + * 1. https://developers.facebook.com/docs/graph-api/guides/error-handling/ + * - This seems like a generic document that contains errors possible for Graph API + * 2. https://developers.facebook.com/docs/marketing-api/error-reference/ + * - The doc seems to be more related to Marketing API + * 3. https://developers.facebook.com/docs/marketing-api/error-reference/ +{ + // A scenario where in we have to know the error with code and subcode, we can conclude that + // this error will have a particular status, statTags + code1: { + subCode1: { + status: , + // Only tags that are unique to this error needs to be provided + statTags: {}, + messageDetails: { + message: "", + field: + }, + + } + } +} + */ +const errorDetailsMap = { + 100: { + // This error talks about event being sent after seven days or so + 2804003: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setMessageField('error_user_title') + .build(), + 2804001: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setMessageField('error_user_title') + .build(), + 2804007: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setMessageField('error_user_title') + .build(), + 2804016: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setMessageField('error_user_title') + .build(), + 2804017: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setMessageField('error_user_title') + .build(), + 2804019: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setMessageField('error_user_title') + .build(), + 2804048: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setMessageField('error_user_title') + .build(), + // This error-subcode indicates that the business access token expired or is invalid or sufficient permissions are not provided + // since there is involvement of changes required on dashboard to make event successful + // for now, we are aborting this error-subCode combination + 33: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setMessage( + "Object with ID 'PIXEL_ID' / 'DATASET_ID' / 'AUDIENCE_ID' does not exist, cannot be loaded due to missing permissions, or does not support this operation", + ) + .build(), + default: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setMessage('Invalid Parameter') + .build(), + }, + 1: { + // An unknown error occurred. + // This error may occur if you set level to adset but the correct value should be campaign + 99: new ErrorDetailsExtractorBuilder() + .setStatus(500) + .setMessage( + 'This error may occur if you set level to adset but the correct value should be campaign', + ) + .build(), + default: new ErrorDetailsExtractorBuilder() + .setStatus(500) + .setMessage('An unknown error occurred') + .build(), + }, + 190: { + 460: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setMessage( + 'The session has been invalidated because the user changed their password or Facebook has changed the session for security reasons', + ) + .build(), + default: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setMessage('Invalid OAuth 2.0 access token') + .build(), + }, + 3: { + default: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setMessage('Capability or permissions issue.') + .build(), + }, + 2: { + default: new ErrorDetailsExtractorBuilder() + .setStatus(500) + .setMessage('Temporary issue due to downtime.') + .build(), + }, + 341: { + default: new ErrorDetailsExtractorBuilder() + .setStatus(500) + .setMessage('Application limit reached: Temporary issue due to downtime or throttling') + .build(), + }, + 368: { + default: new ErrorDetailsExtractorBuilder() + .setStatus(500) + .setMessage('Temporarily blocked for policies violations.') + .build(), + }, + 5000: { + default: new ErrorDetailsExtractorBuilder() + .setStatus(500) + .setMessage('Unknown Error Code') + .build(), + }, + 4: { + default: new ErrorDetailsExtractorBuilder() + .setStatus(429) + .setMessage('API Too Many Calls') + .build(), + }, + 17: { + default: new ErrorDetailsExtractorBuilder() + .setStatus(429) + .setMessage('API User Too Many Calls') + .build(), + }, + // facebook custom audience related error codes + // ref: + // https://developers.facebook.com/docs/marketing-api/reference/custom-audience/#error-codes-4 + // https://developers.facebook.com/docs/marketing-api/error-reference/ + 294: { + default: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setMessage( + 'Missing permission. Please make sure you have ads_management permission and the application is included in the allowlist', + ) + .build(), + }, + 1487301: { + default: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setMessage( + 'Custom Audience Unavailable: The custom audience you are trying to use has not been shared with your ad account', + ) + .build(), + }, + 1487366: { + default: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setMessage('Custom Audience Has Been Deleted') + .build(), + }, + 2650: { + default: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setMessage('Failed to update the custom audience') + .build(), + }, + 105: { + default: new ErrorDetailsExtractorBuilder() + .setStatus(400) + .setMessage('The number of parameters exceeded the maximum for this operation') + .build(), + }, + 80003: { + default: new ErrorDetailsExtractorBuilder() + .setStatus(429) + .setMessage('There have been too many calls to this ad-account.') + .build(), + }, + 200: { + default: new ErrorDetailsExtractorBuilder().setStatus(403).setMessageField('message').build(), + }, +}; + +const getErrorDetailsFromErrorMap = (error) => { + const { code, error_subcode: subCode } = error; + let errDetails; + if (!isEmpty(errorDetailsMap[code])) { + errDetails = errorDetailsMap[code][subCode] || errorDetailsMap[code]?.default; + } + return errDetails; +}; + +const getStatus = (error) => { + const errorDetail = getErrorDetailsFromErrorMap(error); + let errorStatus = 500; + const isErrorDetailEmpty = isEmpty(errorDetail); + if (isErrorDetailEmpty) { + // Unhandled error response + return { + status: errorStatus, + tags: { [tags.TAG_NAMES.META]: tags.METADATA.UNHANDLED_STATUS_CODE }, + }; + } + errorStatus = errorDetail.status; + + let errorMessage = errorDetail?.messageDetails?.message; + if (errorDetail?.messageDetails?.field) { + errorMessage = get(error, errorDetail?.messageDetails?.field); + } + + return { status: errorStatus, errorMessage }; +}; + +const errorResponseHandler = (destResponse) => { + const { response } = destResponse; + if (!response.error) { + // successful response from facebook pixel api + return; + } + const { error } = response; + const { status, errorMessage, tags: errorStatTags } = getStatus(error); + throw new NetworkError( + `${errorMessage || error.message || 'Unknown failure during response transformation'}`, + status, + { + ...errorStatTags, + [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), + }, + { ...response, status: destResponse.status }, + ); +}; + +const destResponseHandler = (destinationResponse) => { + errorResponseHandler(destinationResponse); + return { + destinationResponse: destinationResponse.response, + message: 'Request Processed Successfully', + status: destinationResponse.status, + }; +}; + +function networkHandler() { + // The order of execution also happens in this way + this.prepareProxy = prepareProxyRequest; + this.proxy = proxyRequest; + this.processAxiosResponse = processAxiosResponse; + this.responseHandler = destResponseHandler; +} + +module.exports = { + networkHandler, + errorResponseHandler, +}; diff --git a/src/v0/util/index.js b/src/v0/util/index.js index 1b9164c321b..34182a76850 100644 --- a/src/v0/util/index.js +++ b/src/v0/util/index.js @@ -9,40 +9,47 @@ const Handlebars = require('handlebars'); const fs = require('fs'); const path = require('path'); -const _ = require('lodash'); +const lodash = require('lodash'); const set = require('set-value'); const get = require('get-value'); const uaParser = require('ua-parser-js'); const moment = require('moment-timezone'); const sha256 = require('sha256'); const crypto = require('crypto'); -const logger = require('../../logger'); -const stats = require('../../util/stats'); -const { DestCanonicalNames, DestHandlerMap } = require('../../constants/destinationCanonicalNames'); const { InstrumentationError, BaseError, PlatformError, TransformationError, OAuthSecretError, -} = require('./errorTypes'); +} = require('@rudderstack/integrations-lib'); +const logger = require('../../logger'); +const stats = require('../../util/stats'); +const { DestCanonicalNames, DestHandlerMap } = require('../../constants/destinationCanonicalNames'); const { client: errNotificationClient } = require('../../util/errorNotifier'); const { HTTP_STATUS_CODES } = require('./constant'); +const { + REFRESH_TOKEN, + AUTH_STATUS_INACTIVE, +} = require('../../adapters/networkhandler/authConstants'); +const { FEATURE_FILTER_CODE, FEATURE_GZIP_SUPPORT } = require('./constant'); + // ======================================================================== // INLINERS // ======================================================================== -const isDefined = (x) => !_.isUndefined(x); -const isNotEmpty = (x) => !_.isEmpty(x); +const isDefined = (x) => !lodash.isUndefined(x); +const isNotEmpty = (x) => !lodash.isEmpty(x); const isNotNull = (x) => x != null; const isDefinedAndNotNull = (x) => isDefined(x) && isNotNull(x); const isDefinedAndNotNullAndNotEmpty = (x) => isDefined(x) && isNotNull(x) && isNotEmpty(x); -const removeUndefinedValues = (obj) => _.pickBy(obj, isDefined); -const removeNullValues = (obj) => _.pickBy(obj, isNotNull); -const removeUndefinedAndNullValues = (obj) => _.pickBy(obj, isDefinedAndNotNull); -const removeUndefinedAndNullAndEmptyValues = (obj) => _.pickBy(obj, isDefinedAndNotNullAndNotEmpty); -const isBlank = (value) => _.isEmpty(_.toString(value)); -const flattenMap = (collection) => _.flatMap(collection, (x) => x); +const removeUndefinedValues = (obj) => lodash.pickBy(obj, isDefined); +const removeNullValues = (obj) => lodash.pickBy(obj, isNotNull); +const removeUndefinedAndNullValues = (obj) => lodash.pickBy(obj, isDefinedAndNotNull); +const removeUndefinedAndNullAndEmptyValues = (obj) => + lodash.pickBy(obj, isDefinedAndNotNullAndNotEmpty); +const isBlank = (value) => lodash.isEmpty(lodash.toString(value)); +const flattenMap = (collection) => lodash.flatMap(collection, (x) => x); // ======================================================================== // GENERIC UTLITY // ======================================================================== @@ -73,6 +80,14 @@ const isPrimitive = (arg) => { return arg == null || (type !== 'object' && type !== 'function'); }; +const isNewStatusCodesAccepted = (reqMetadata = {}) => { + if (reqMetadata && typeof reqMetadata === 'object' && !Array.isArray(reqMetadata)) { + const { features } = reqMetadata; + return !!features?.[FEATURE_FILTER_CODE]; + } + return false; +}; + /** * * @param {*} arg @@ -104,7 +119,7 @@ const isObject = (value) => { }; function isEmpty(input) { - return _.isEmpty(_.toString(input).trim()); + return lodash.isEmpty(lodash.toString(input).trim()); } /** @@ -122,8 +137,8 @@ function isEmptyObject(obj) { /** * Function to check if value is Defined, Not null and Not Empty. - * Create this function, Because existing isDefinedAndNotNullAndNotEmpty(123) is returning false due to lodash _.isEmpty function. - * _.isEmpty is used to detect empty collections/objects and it will return true for Integer, Boolean values. + * Create this function, Because existing isDefinedAndNotNullAndNotEmpty(123) is returning false due to lodash lodash.isEmpty function. + * lodash.isEmpty is used to detect empty collections/objects and it will return true for Integer, Boolean values. * ref: https://github.com/lodash/lodash/issues/496 * @param {*} value 123 * @returns yes @@ -137,7 +152,7 @@ const isDefinedNotNullNotEmpty = (value) => (typeof value === 'string' && value.trim().length === 0) ); -const removeUndefinedNullEmptyExclBoolInt = (obj) => _.pickBy(obj, isDefinedNotNullNotEmpty); +const removeUndefinedNullEmptyExclBoolInt = (obj) => lodash.pickBy(obj, isDefinedNotNullNotEmpty); /** * Recursively removes undefined, null, empty objects, and empty arrays from the given object at all levels. @@ -145,6 +160,7 @@ const removeUndefinedNullEmptyExclBoolInt = (obj) => _.pickBy(obj, isDefinedNotN * @returns */ const removeUndefinedNullValuesAndEmptyObjectArray = (obj) => { + // eslint-disable-next-line @typescript-eslint/no-shadow function recursive(obj) { if (Array.isArray(obj)) { const cleanedArray = obj @@ -235,16 +251,46 @@ const getHashFromArrayWithValueAsObject = (arrays, fromKey = 'from', isLowerCase const getValueFromPropertiesOrTraits = ({ message, key }) => { const keySet = ['properties', 'traits', 'context.traits']; - const val = _.find( - _.map(keySet, (k) => get(message, `${k}.${key}`)), - (v) => !_.isNil(v), + const val = lodash.find( + lodash.map(keySet, (k) => get(message, `${k}.${key}`)), + (v) => !lodash.isNil(v), ); - return !_.isNil(val) ? val : null; + return !lodash.isNil(val) ? val : null; +}; + +/** + * Checks if an object contains a circular reference. + * + * @param {object} obj - The object to check for circular references. + * @param {array} [seen=[]] - An array that keeps track of objects already seen during the recursive traversal. Defaults to an empty array. + * @returns {boolean} - True if a circular reference is found, false otherwise. + */ +const hasCircularReference = (obj, seen = []) => { + if (typeof obj !== 'object' || obj === null) { + return false; + } + + if (seen.includes(obj)) { + return true; + } + + seen.push(obj); + // eslint-disable-next-line no-restricted-syntax + for (const value of Object.values(obj)) { + if (hasCircularReference(value, seen)) { + return true; + } + } + seen.pop(); + return false; }; // function to flatten a json function flattenJson(data, separator = '.', mode = 'normal', flattenArrays = true) { const result = {}; + if (hasCircularReference(data)) { + throw new InstrumentationError("Event has circular reference. Can't flatten the event"); + } // a recursive function to loop through the array of the data function recurse(cur, prop) { @@ -327,6 +373,9 @@ const hashToSha256 = (value) => sha256(value); // Check what type of gender and convert to f or m const getFbGenderVal = (gender) => { + if (typeof gender !== 'string') { + return null; + } if ( gender.toUpperCase() === 'FEMALE' || gender.toUpperCase() === 'F' || @@ -418,11 +467,17 @@ const defaultBatchRequestConfig = () => ({ // Router transformer // Success responses -const getSuccessRespEvents = (message, metadata, destination, batched = false) => ({ +const getSuccessRespEvents = ( + message, + metadata, + destination, + batched = false, + statusCode = 200, +) => ({ batchedRequest: message, metadata, batched, - statusCode: 200, + statusCode, destination, }); @@ -523,7 +578,7 @@ const handleSourceKeysOperation = ({ message, operationObject }) => { // quick sanity check for the undefined values in the list. // if there is any undefined values, return null // without going further for operations - const isAllDefined = _.every(argValues, (v) => !_.isNil(v)); + const isAllDefined = lodash.every(argValues, (v) => !lodash.isNil(v)); if (!isAllDefined) { return null; } @@ -535,8 +590,10 @@ const handleSourceKeysOperation = ({ message, operationObject }) => { result = 1; // eslint-disable-next-line no-restricted-syntax for (const v of argValues) { - if (_.isNumber(v)) { + if (lodash.isNumber(v)) { result *= v; + } else if (lodash.isString(v) && /^[+-]?(\d+(\.\d*)?|\.\d+)([Ee][+-]?\d+)?$/.test(v)) { + result *= parseFloat(v); } else { // if there is a non number argument simply return null // non numbers can't be operated arithmatically @@ -548,7 +605,7 @@ const handleSourceKeysOperation = ({ message, operationObject }) => { result = 0; // eslint-disable-next-line no-restricted-syntax for (const v of argValues) { - if (_.isNumber(v)) { + if (lodash.isNumber(v)) { result += v; } else { // if there is a non number argument simply return null @@ -768,6 +825,13 @@ function formatValues(formattedVal, formattingType, typeFormat, integrationsObj) curFormattedVal = false; } }, + IsArray: () => { + curFormattedVal = formattedVal; + if (!Array.isArray(formattedVal)) { + logger.debug('Array value missing, so dropping it'); + curFormattedVal = undefined; + } + }, trim: () => { if (typeof formattedVal === 'string') { curFormattedVal = formattedVal.trim(); @@ -1016,7 +1080,7 @@ const constructPayload = (message, mappingJson, destinationName = null) => { if (value || value === 0 || value === false) { if (destKey) { // set the value only if correct - _.set(payload, destKey, value); + lodash.set(payload, destKey, value); } else { // to set to root and flatten later payload[''] = value; @@ -1339,6 +1403,12 @@ const getMetadata = (metadata) => ({ destinationType: metadata.destinationType, k8_namespace: metadata.namespace, }); + +const getTransformationMetadata = (metadata) => ({ + transformationId: metadata.transformationId, + workspaceId: metadata.workspaceId, +}); + // checks if array 2 is a subset of array 1 function checkSubsetOfArray(array1, array2) { const result = array2.every((val) => array1.includes(val)); @@ -1393,12 +1463,12 @@ const errorStatusCodeKeys = ['response.status', 'code', 'status']; const getErrorStatusCode = (error, defaultStatusCode = HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR) => { try { let defaultStCode = defaultStatusCode; - if (!_.isNumber(defaultStatusCode)) { + if (!lodash.isNumber(defaultStatusCode)) { defaultStCode = HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR; } const errStCode = errorStatusCodeKeys .map((statusKey) => get(error, statusKey)) - .find((stCode) => _.isNumber(stCode)); + .find((stCode) => lodash.isNumber(stCode)); return errStCode || defaultStCode; } catch (err) { logger.error('Failed in getErrorStatusCode', err); @@ -1409,13 +1479,22 @@ const getErrorStatusCode = (error, defaultStatusCode = HTTP_STATUS_CODES.INTERNA /** * Used for generating error response with stats from native and built errors */ -function generateErrorObject(error, defTags = {}, shouldEnrichErrorMessage = false) { - let errObject = error; +function generateErrorObject(error, defTags = {}, shouldEnrichErrorMessage = true) { + let errObject = new BaseError( + error.message, + getErrorStatusCode(error), + { + ...error.statTags, + ...defTags, + }, + error.destinationResponse, + error.authErrorCategory, + ); let errorMessage = error.message; if (shouldEnrichErrorMessage) { if (error.destinationResponse) { errorMessage = JSON.stringify({ - message: error.message, + message: errorMessage, destinationResponse: error.destinationResponse, }); } @@ -1424,13 +1503,6 @@ function generateErrorObject(error, defTags = {}, shouldEnrichErrorMessage = fal if (!(error instanceof BaseError)) { errObject = new TransformationError(errorMessage, getErrorStatusCode(error)); } - - // Add higher level default tags - errObject.statTags = { - ...errObject.statTags, - ...defTags, - }; - return errObject; } /** @@ -1666,7 +1738,7 @@ const simpleProcessRouterDestSync = async (inputs, singleTfFunc, reqMetadata, pr // transform if not already done if (!input.message.statusCode) { // eslint-disable-next-line no-await-in-loop - resp = await singleTfFunc(input, processParams); + resp = await singleTfFunc(input, processParams, reqMetadata); } respList.push(getSuccessRespEvents(resp, [input.metadata], input.destination)); } catch (error) { @@ -1827,8 +1899,8 @@ const getAccessToken = (metadata, accessTokenKey) => { // OAuth for this destination const { secret } = metadata; // we would need to verify if secret is present and also if the access token field is present in secret - if (!secret || !secret[accessTokenKey]) { - throw new OAuthSecretError('Empty/Invalid access token'); + if (!secret?.[accessTokenKey]) { + throw new OAuthSecretError('OAuth - access token not found'); } return secret[accessTokenKey]; }; @@ -1896,7 +1968,7 @@ const batchMultiplexedEvents = (transformedEventsList, maxBatchSize) => { } if (batchedEvents.length === 0 || eventsNotBatched) { if (transformedMessage.length > maxBatchSize) { - transformedMessage = _.chunk(transformedMessage, maxBatchSize); + transformedMessage = lodash.chunk(transformedMessage, maxBatchSize); } batchedEvents.push({ events: transformedMessage, @@ -1910,6 +1982,132 @@ const batchMultiplexedEvents = (transformedEventsList, maxBatchSize) => { return batchedEvents; }; +/** + * Groups events with the same message type together in batches. + * Each batch contains events that have the same message type and are from different users. + * @param {*} inputs - An array of events + * @returns {*} - An array of batches + */ +const groupEventsByType = (inputs) => { + const batches = []; + let currentInputsArray = inputs; + while (currentInputsArray.length > 0) { + const remainingInputsArray = []; + const userOrderTracker = {}; + const event = currentInputsArray.shift(); + const messageType = event.message.type; + const batch = [event]; + currentInputsArray.forEach((currentInput) => { + const currentMessageType = currentInput.message.type; + const currentUser = currentInput.metadata.userId; + if (currentMessageType === messageType && !userOrderTracker[currentUser]) { + batch.push(currentInput); + } else { + remainingInputsArray.push(currentInput); + userOrderTracker[currentUser] = true; + } + }); + batches.push(batch); + currentInputsArray = remainingInputsArray; + } + + return batches; +}; + +/** + * This function helps to detarmine type of error occured. According to the response + * we set authErrorCategory to take decision if we need to refresh the access_token + * or need to de-activate authStatus for the destination. + * + * **Scenarios**: + * - statusCode=401, response.error.details !== "" -> REFRESH_TOKEN + * - statusCode=403, response.error.details !== "" -> AUTH_STATUS_INACTIVE + * + * @param {*} code + * @param {*} response + * @returns + */ +const getAuthErrCategoryFromErrDetailsAndStCode = (code, response) => { + if (code === 401 && (!get(response, 'error.details') || typeof response === 'string')) + return REFRESH_TOKEN; + if (code === 403 && (!get(response, 'error.details') || typeof response === 'string')) + return AUTH_STATUS_INACTIVE; + return ''; +}; + +/** + * This function helps to determine the type of error occurred. We set the authErrorCategory + * as per the destination response that is received and take the decision whether + * to refresh the access_token or de-activate authStatus. + * + * **Scenarios**: + * - statusCode=401 -> REFRESH_TOKEN + * - statusCode=403 -> AUTH_STATUS_INACTIVE + * + * @param {*} status + * @returns + */ +const getAuthErrCategoryFromStCode = (status) => { + if (status === 401) { + // UNAUTHORIZED + return REFRESH_TOKEN; + } + if (status === 403) { + // ACCESS_DENIED + return AUTH_STATUS_INACTIVE; + } + return ''; +}; + +const isValidInteger = (value) => { + if (Number.isNaN(value) || !isDefinedAndNotNull(value)) { + return false; + } + if (typeof value === 'number' && value % 1 === 0) { + return true; + } + // Use a regular expression to check if the string is a valid integer or a valid floating-point number + return typeof value === 'string' ? /^-?\d+$/.test(value) : false; +}; +const validateEventName = (event) => { + if (!event || typeof event !== 'string') { + throw new InstrumentationError('Event is a required field and should be a string'); + } +}; + +const IsGzipSupported = (reqMetadata = {}) => { + if (reqMetadata && typeof reqMetadata === 'object' && !Array.isArray(reqMetadata)) { + const { features } = reqMetadata; + return !!features?.[FEATURE_GZIP_SUPPORT]; + } + return false; +}; + +/** + * Returns an array containing the values of the specified key from each object in the input array. + * If the input array is falsy (null, undefined, empty array), an empty array is returned. + * + * @param {Array} arr - The input array from which values will be extracted. + * @param {string} key - The key of the property whose values will be extracted from each object in the input array. + * @returns {Array} - A new array containing the values of the specified key from each object in the input array. + * + * @example + * const configArray = [ + * { name: 'John', age: 25 }, + * { name: 'Jane', age: 30 }, + * { name: 'Bob', age: 35 } + * ]; + * + * const result = parseConfigArray(configArray, 'name'); + * Output: ['John', 'Jane', 'Bob'] + */ +const parseConfigArray = (arr, key) => { + if (!arr) { + return []; + } + return arr.map((item) => item[key]); +}; + // ======================================================================== // EXPORTS // ======================================================================== @@ -1956,6 +2154,7 @@ module.exports = { getIntegrationsObj, getMappingConfig, getMetadata, + getTransformationMetadata, getParsedIP, getStringValueOfJSON, getSuccessRespEvents, @@ -2003,6 +2202,7 @@ module.exports = { getDestAuthCacheInstance, refinePayload, validateEmail, + validateEventName, validatePhoneWithCountryCode, getEventReqMetadata, isHybridModeEnabled, @@ -2010,4 +2210,12 @@ module.exports = { checkAndCorrectUserId, getAccessToken, formatValues, + groupEventsByType, + hasCircularReference, + getAuthErrCategoryFromErrDetailsAndStCode, + getAuthErrCategoryFromStCode, + isValidInteger, + isNewStatusCodesAccepted, + IsGzipSupported, + parseConfigArray, }; diff --git a/src/v0/util/index.test.js b/src/v0/util/index.test.js index b575f006fa0..65d6313e301 100644 --- a/src/v0/util/index.test.js +++ b/src/v0/util/index.test.js @@ -1,5 +1,8 @@ +const { TAG_NAMES } = require('@rudderstack/integrations-lib'); const utilities = require('.'); const { getFuncTestData } = require('../../../test/testHelper'); +const { FilteredEventsError } = require('./errorTypes'); +const { hasCircularReference, flattenJson } = require('./index'); // Names of the utility functions to test const functionNames = [ @@ -11,6 +14,8 @@ const functionNames = [ 'extractCustomFields', 'batchMultiplexedEvents', 'removeUndefinedNullValuesAndEmptyObjectArray', + 'groupEventsByType', + 'isValidInteger', ]; // Names of the utility functions to test which expects multiple arguments as values and not objects @@ -67,3 +72,57 @@ describe('Utility Functions Tests', () => { }); //Test cases which can't be fit in above test suite, have individual function level test blocks + +describe('hasCircularReference', () => { + it('should return false when object has no circular reference', () => { + const obj = { a: 1, b: 2, c: 3 }; + expect(hasCircularReference(obj)).toBe(false); + }); + + it('should return true when object has circular reference', () => { + const obj = { a: 1, b: 2 }; + obj.c = obj; + expect(hasCircularReference(obj)).toBe(true); + }); + + it('should return true when object has nested objects containing circular reference', () => { + const obj1 = { a: 1 }; + const obj2 = { b: 2 }; + obj1.c = obj2; + obj2.d = obj1; + expect(hasCircularReference(obj1)).toBe(true); + }); + + it('should return false when input is null', () => { + expect(hasCircularReference(null)).toBe(false); + }); + + it('should return false when input is not an object', () => { + expect(hasCircularReference(123)).toBe(false); + }); + + it('should return true when object has self-reference', () => { + const obj = { a: 1 }; + obj.b = obj; + expect(hasCircularReference(obj)).toBe(true); + }); +}); + +// extra test cases for flattenJson +describe('flattenJson', () => { + it('should throw an error when flattening a json object with circular reference', () => { + const data = { name: 'John' }; + data.self = data; + expect(() => flattenJson(data)).toThrow( + "Event has circular reference. Can't flatten the event", + ); + }); +}); + +describe('tests for generateErrorObject', () => { + test('test-0', () => { + const myErr = new FilteredEventsError('error-1'); + const outputErrObj = utilities.generateErrorObject(myErr); + expect(outputErrObj.statTags).toEqual({}); + }); +}); diff --git a/src/v0/util/regulation-api.js b/src/v0/util/regulation-api.js index 8a557858e0d..238993ee811 100644 --- a/src/v0/util/regulation-api.js +++ b/src/v0/util/regulation-api.js @@ -1,4 +1,4 @@ -const { PlatformError } = require('./errorTypes'); +const { PlatformError } = require('@rudderstack/integrations-lib'); const RegulationApiUtils = { /** diff --git a/src/v0/util/tags.js b/src/v0/util/tags.js index 95e78825c39..81e6b9a2a65 100644 --- a/src/v0/util/tags.js +++ b/src/v0/util/tags.js @@ -51,6 +51,7 @@ const ERROR_TYPES = { OAUTH_SECRET: 'oAuthSecret', UNSUPPORTED: 'unsupported', REDIS: 'redis', + FILTERED: 'filtered', }; const METADATA = { diff --git a/src/v0/util/testdata/flattenJson.json b/src/v0/util/testdata/flattenJson.json index 42f4cd286d7..bdd1891be94 100644 --- a/src/v0/util/testdata/flattenJson.json +++ b/src/v0/util/testdata/flattenJson.json @@ -514,8 +514,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -543,8 +543,8 @@ "timezone": "Asia/Kolkata", "traits.company.id": "abc123", "traits.createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "traits.email": "ruchira@gmail.com", - "traits.name": "Ruchira Moitra", + "traits.email": "rudderTest@gmail.com", + "traits.name": "Rudder Test", "traits.plan": "Enterprise", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" } diff --git a/src/v0/util/testdata/groupEventsByType.json b/src/v0/util/testdata/groupEventsByType.json new file mode 100644 index 00000000000..168b875036a --- /dev/null +++ b/src/v0/util/testdata/groupEventsByType.json @@ -0,0 +1,624 @@ +[ + { + "description": "Should return an empty array when given an empty events array", + "input": [[]], + "output": [] + }, + { + "description": "Should group multiple events with the different message type and different users together in a batch: Scenario 1", + "input": [ + [ + { + "message": { + "type": "identify", + "userId": "user1" + }, + "metadata": { + "jobId": "1" + } + }, + { + "message": { + "type": "identify", + "userId": "user2" + }, + "metadata": { + "jobId": "2" + } + }, + { + "message": { + "type": "track", + "userId": "user1" + }, + "metadata": { + "jobId": "3" + } + }, + { + "message": { + "type": "identify", + "userId": "user1" + }, + "metadata": { + "jobId": "4" + } + }, + { + "message": { + "type": "identify", + "userId": "user2" + }, + "metadata": { + "jobId": "5" + } + } + ] + ], + "output": [ + [ + { + "message": { + "type": "identify", + "userId": "user1" + }, + "metadata": { + "jobId": "1" + } + }, + { + "message": { + "type": "identify", + "userId": "user2" + }, + "metadata": { + "jobId": "2" + } + } + ], + [ + { + "message": { + "type": "track", + "userId": "user1" + }, + "metadata": { + "jobId": "3" + } + } + ], + [ + { + "message": { + "type": "identify", + "userId": "user1" + }, + "metadata": { + "jobId": "4" + } + }, + { + "message": { + "type": "identify", + "userId": "user2" + }, + "metadata": { + "jobId": "5" + } + } + ] + ] + }, + { + "description": "Should group multiple events with the different message type and different users together in a batch: Scenario 2", + "input": [ + [ + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "1" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "1" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "3" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "3" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "4" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "4" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + } + ] + ], + "output": [ + [ + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "1" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "3" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "4" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + } + ], + [ + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "1" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "3" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "4" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "5" + } + } + ], + [ + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "5" + } + } + ] + ] + }, + { + "description": "Should group multiple events with the different message type and different users together in a batch: Scenario 3", + "input": [ + [ + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "3" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "3" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "1" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "1" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "4" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "4" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + } + ] + ], + "output": [ + [ + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "3" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "4" + } + } + ], + [ + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "3" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "1" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "4" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + } + ], + [ + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "1" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "2" + } + } + ], + [ + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "5" + } + } + ] + ] + } +] diff --git a/src/v0/util/testdata/isValidInteger.json b/src/v0/util/testdata/isValidInteger.json new file mode 100644 index 00000000000..be7be936a6c --- /dev/null +++ b/src/v0/util/testdata/isValidInteger.json @@ -0,0 +1,31 @@ +[ + { + "description": "Number is undefined", + "output": false + }, + { + "description": "Number in string format", + "input": "123", + "output": true + }, + { + "description": "Normal Integer", + "input": 123, + "output": true + }, + { + "description": "Float", + "input": 123.91, + "output": false + }, + { + "description": "Float string", + "input": "123.00", + "output": false + }, + { + "description": "Alphanumeric String", + "input": "abcd1234", + "output": false + } +] diff --git a/src/v1/destinations/campaign_manager/networkHandler.js b/src/v1/destinations/campaign_manager/networkHandler.js new file mode 100644 index 00000000000..431cbd69662 --- /dev/null +++ b/src/v1/destinations/campaign_manager/networkHandler.js @@ -0,0 +1,96 @@ +/* eslint-disable no-param-reassign */ +/* eslint-disable no-restricted-syntax */ +const { TransformerProxyError } = require('../../../v0/util/errorTypes'); +const { prepareProxyRequest, proxyRequest } = require('../../../adapters/network'); +const { isHttpStatusSuccess, getAuthErrCategoryFromStCode } = require('../../../v0/util/index'); + +const { + processAxiosResponse, + getDynamicErrorType, +} = require('../../../adapters/utils/networkUtils'); +const tags = require('../../../v0/util/tags'); + +function isEventAbortableAndExtractErrMsg(element, proxyOutputObj) { + let isAbortable = false; + let errorMsg = ''; + // success event + if (!element.errors) { + return isAbortable; + } + for (const err of element.errors) { + errorMsg += `${err.message}, `; + // if code is any of these, event is not retryable + if ( + err.code === 'PERMISSION_DENIED' || + err.code === 'INVALID_ARGUMENT' || + err.code === 'NOT_FOUND' + ) { + isAbortable = true; + } + } + if (errorMsg) { + proxyOutputObj.error = errorMsg; + } + return isAbortable; +} + +const responseHandler = (destinationResponse) => { + const message = `[CAMPAIGN_MANAGER Response V1 Handler] - Request Processed Successfully`; + const responseWithIndividualEvents = []; + const { response, status, rudderJobMetadata } = destinationResponse; + + if (isHttpStatusSuccess(status)) { + // check for Partial Event failures and Successes + const destPartialStatus = response.status; + + for (const [idx, element] of destPartialStatus.entries()) { + const proxyOutputObj = { + statusCode: 200, + metadata: rudderJobMetadata[idx], + error: 'success', + }; + // update status of partial event if abortable + if (isEventAbortableAndExtractErrMsg(element, proxyOutputObj)) { + proxyOutputObj.statusCode = 400; + } + responseWithIndividualEvents.push(proxyOutputObj); + } + + return { + status, + message, + destinationResponse, + response: responseWithIndividualEvents, + }; + } + + // in case of failure status, populate response to maintain len(metadata)=len(response) + const errorMessage = response.error?.message || 'unknown error format'; + for (const metadata of rudderJobMetadata) { + responseWithIndividualEvents.push({ + statusCode: 500, + metadata, + error: errorMessage, + }); + } + + throw new TransformerProxyError( + `Campaign Manager: Error transformer proxy v1 during CAMPAIGN_MANAGER response transformation`, + 500, + { + [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), + }, + destinationResponse, + getAuthErrCategoryFromStCode(status), + responseWithIndividualEvents, + ); +}; + +function networkHandler() { + this.prepareProxy = prepareProxyRequest; + this.proxy = proxyRequest; + this.processAxiosResponse = processAxiosResponse; + this.responseHandler = responseHandler; +} + +module.exports = { networkHandler }; diff --git a/src/v0/sources/webhook/transform.js b/src/v1/sources/webhook/transform.js similarity index 81% rename from src/v0/sources/webhook/transform.js rename to src/v1/sources/webhook/transform.js index 3a756ef63b8..fc13424b8a4 100644 --- a/src/v0/sources/webhook/transform.js +++ b/src/v1/sources/webhook/transform.js @@ -1,4 +1,4 @@ -const { removeUndefinedAndNullValues, generateUUID } = require('../../util'); +const { removeUndefinedAndNullValues, generateUUID } = require('../../../v0/util'); function processEvent(event) { const payload = { @@ -10,7 +10,8 @@ function processEvent(event) { return payload; } -function process(event) { +function process(inputEvent) { + const { event } = inputEvent; const response = processEvent(event); return removeUndefinedAndNullValues(response); } diff --git a/src/warehouse/identity.js b/src/warehouse/identity.js index 4326dddfc67..c34a66a481c 100644 --- a/src/warehouse/identity.js +++ b/src/warehouse/identity.js @@ -1,5 +1,5 @@ const _ = require('lodash'); -const { InstrumentationError } = require('../v0/util/errorTypes'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const { getVersionedUtils } = require('./util'); const identityEnabledWarehouses = ['snowflake', 'bq']; diff --git a/src/warehouse/index.js b/src/warehouse/index.js index dd5116f00e0..d88904b4a86 100644 --- a/src/warehouse/index.js +++ b/src/warehouse/index.js @@ -7,7 +7,8 @@ const { isObject, isBlank, isValidJsonPathKey, - getKeysFromJsonPaths, + isValidLegacyJsonPathKey, + keysFromJsonPaths, validTimestamp, getVersionedUtils, isRudderSourcesEvent, @@ -24,7 +25,7 @@ const whScreenColumnMappingRules = require('./config/WHScreenConfig.js'); const whGroupColumnMappingRules = require('./config/WHGroupConfig.js'); const whAliasColumnMappingRules = require('./config/WHAliasConfig.js'); const { isDataLakeProvider } = require('./config/helpers'); -const { InstrumentationError } = require('../v0/util/errorTypes'); +const { InstrumentationError } = require('@rudderstack/integrations-lib'); const whExtractEventTableColumnMappingRules = require('./config/WHExtractEventTableConfig.js'); const maxColumnsInEvent = parseInt(process.env.WH_MAX_COLUMNS_IN_EVENT || '200', 10); @@ -195,7 +196,6 @@ function setDataFromColumnMappingAndComputeColumnTypes( columnTypes = {context_library_name: 'string', context_library_version: 'string'} */ - function setDataFromInputAndComputeColumnTypes( utils, eventType, @@ -203,12 +203,26 @@ function setDataFromInputAndComputeColumnTypes( input, columnTypes, options, + completePrefix = '', + completeLevel = 0, prefix = '', level = 0, ) { if (!input || !isObject(input)) return; Object.keys(input).forEach((key) => { - if (isValidJsonPathKey(eventType, `${prefix + key}`, input[key], level, options.jsonKeys)) { + const isValidLegacyJSONPath = isValidLegacyJsonPathKey( + eventType, + `${prefix + key}`, + level, + options.jsonLegacyPathKeys, + ); + const isValidJSONPath = isValidJsonPathKey( + `${completePrefix + key}`, + completeLevel, + options.jsonPathKeys, + ); + + if (isValidJSONPath || isValidLegacyJSONPath) { if (isBlank(input[key])) { return; } @@ -232,6 +246,8 @@ function setDataFromInputAndComputeColumnTypes( input[key], columnTypes, options, + `${completePrefix + key}_`, + completeLevel + 1, `${prefix + key}_`, level + 1, ); @@ -321,7 +337,10 @@ function addJsonKeysToOptions(options) { if (options.destJsonPaths) { jsonPaths.push(...options.destJsonPaths.split(',')); } - options.jsonKeys = getKeysFromJsonPaths(jsonPaths); + + const keys = keysFromJsonPaths(jsonPaths); + options.jsonPathKeys = keys.jsonPathKeys; + options.jsonLegacyPathKeys = keys.jsonLegacyPathKeys; } /* @@ -583,6 +602,8 @@ function processWarehouseMessage(message, options) { message.context, commonColumnTypes, options, + `${eventType + '_context_'}`, + 2, 'context_', ); @@ -605,6 +626,8 @@ function processWarehouseMessage(message, options) { message.properties, eventTableColumnTypes, options, + `${eventType + '_properties_'}`, + 2, ); setDataFromColumnMappingAndComputeColumnTypes( utils, @@ -658,6 +681,8 @@ function processWarehouseMessage(message, options) { message.context, commonColumnTypes, options, + `${eventType + '_context_'}`, + 2, 'context_', ); setDataFromColumnMappingAndComputeColumnTypes( @@ -732,6 +757,8 @@ function processWarehouseMessage(message, options) { message.properties, eventTableColumnTypes, options, + `${eventType + '_properties_'}`, + 2, ); setDataFromInputAndComputeColumnTypes( utils, @@ -740,6 +767,8 @@ function processWarehouseMessage(message, options) { message.userProperties, eventTableColumnTypes, options, + `${eventType + '_userProperties_'}`, + 2, ); setDataFromColumnMappingAndComputeColumnTypes( utils, @@ -794,6 +823,8 @@ function processWarehouseMessage(message, options) { message.userProperties, commonColumnTypes, options, + `${eventType + '_userProperties_'}`, + 2, ); setDataFromInputAndComputeColumnTypes( utils, @@ -802,6 +833,8 @@ function processWarehouseMessage(message, options) { message.context ? message.context.traits : {}, commonColumnTypes, options, + `${eventType + '_context_traits_'}`, + 3, ); setDataFromInputAndComputeColumnTypes( utils, @@ -810,6 +843,8 @@ function processWarehouseMessage(message, options) { message.traits, commonColumnTypes, options, + `${eventType + '_traits_'}`, + 2, '', ); @@ -821,6 +856,8 @@ function processWarehouseMessage(message, options) { message.context, commonColumnTypes, options, + `${eventType + '_context_'}`, + 2, 'context_', ); @@ -925,6 +962,8 @@ function processWarehouseMessage(message, options) { message.properties, columnTypes, options, + `${eventType + '_properties_'}`, + 2, ); // set rudder properties after user set properties to prevent overwriting setDataFromInputAndComputeColumnTypes( @@ -934,6 +973,8 @@ function processWarehouseMessage(message, options) { message.context, columnTypes, options, + `${eventType + '_context_'}`, + 2, 'context_', ); setDataFromColumnMappingAndComputeColumnTypes( @@ -992,6 +1033,8 @@ function processWarehouseMessage(message, options) { message.traits, columnTypes, options, + `${eventType + '_traits_'}`, + 2, ); setDataFromInputAndComputeColumnTypes( utils, @@ -1000,6 +1043,8 @@ function processWarehouseMessage(message, options) { message.context, columnTypes, options, + `${eventType + '_context_'}`, + 2, 'context_', ); setDataFromColumnMappingAndComputeColumnTypes( @@ -1046,6 +1091,8 @@ function processWarehouseMessage(message, options) { message.traits, columnTypes, options, + `${eventType + '_traits_'}`, + 2, ); setDataFromInputAndComputeColumnTypes( utils, @@ -1054,6 +1101,8 @@ function processWarehouseMessage(message, options) { message.context, columnTypes, options, + `${eventType + '_context_'}`, + 2, 'context_', ); setDataFromColumnMappingAndComputeColumnTypes( diff --git a/src/warehouse/util.js b/src/warehouse/util.js index b965ecb0295..79981249e78 100644 --- a/src/warehouse/util.js +++ b/src/warehouse/util.js @@ -3,7 +3,7 @@ const get = require('get-value'); const v0 = require('./v0/util'); const v1 = require('./v1/util'); -const { PlatformError, InstrumentationError } = require('../v0/util/errorTypes'); +const { PlatformError, InstrumentationError } = require('@rudderstack/integrations-lib'); const minTimeInMs = Date.parse('0001-01-01T00:00:00Z'); const maxTimeInMs = Date.parse('9999-12-31T23:59:59.999Z'); @@ -15,26 +15,77 @@ const isObject = (value) => { return value != null && (type === 'object' || type === 'function') && !Array.isArray(value); }; -const isValidJsonPathKey = (eventType, key, val, level, jsonKeys = {}) => { +const isValidJsonPathKey = (key, level, jsonKeys = {}) => { + return jsonKeys[key] === level; +}; +const isValidLegacyJsonPathKey = (eventType, key, level, jsonKeys = {}) => { return eventType === 'track' && jsonKeys[key] === level; }; const isBlank = (value) => { return _.isEmpty(_.toString(value)); }; + /* - * input => ["a", "b.c"] - * output => { "a": 0, "b_c": 1} +This function takes in an array of json paths and returns an object with keys as the json path and value as the position of the key in the json path +Example: +Input: +[ + "a", + "b.c" +] +Output: +{ + "a": 0, + "b_c": 1 +} + +Input: +[ + "track.context.a", + "track.properties.b", + "pages.properties.c.d", + "groups.traits.e.f" +] +Output: +{ + "track_context_a": 2, + "track_properties_b": 2, + "pages_properties_c_d": 3, + "groups_traits_e_f": 3 +} */ -const getKeysFromJsonPaths = (jsonPaths) => { - const jsonKeys = {}; +const keysFromJsonPaths = (jsonPaths) => { + const jsonPathKeys = {}; + const jsonLegacyPathKeys = {}; + + const supportedEventPrefixes = [ + 'track.', + 'identify.', + 'page.', + 'screen.', + 'alias.', + 'group.', + 'extract.', + ]; + jsonPaths.forEach((jsonPath) => { - if (jsonPath.trim()) { - const paths = jsonPath.trim().split('.'); - jsonKeys[paths.join('_')] = paths.length - 1; + const trimmedJSONPath = jsonPath.trim(); + if (!trimmedJSONPath) { + return; + } + + const paths = trimmedJSONPath.split('.'); + const key = paths.join('_'); + const pos = paths.length - 1; + + if (supportedEventPrefixes.some((prefix) => trimmedJSONPath.startsWith(prefix))) { + jsonPathKeys[key] = pos; + return; } + jsonLegacyPathKeys[key] = pos; }); - return jsonKeys; + return { jsonPathKeys, jsonLegacyPathKeys }; }; // https://www.myintervals.com/blog/2009/05/20/iso-8601-date-validation-that-doesnt-suck/ @@ -98,7 +149,8 @@ module.exports = { isObject, isBlank, isValidJsonPathKey, - getKeysFromJsonPaths, + isValidLegacyJsonPathKey, + keysFromJsonPaths, timestampRegex, validTimestamp, getVersionedUtils, diff --git a/src/warehouse/v1/util.js b/src/warehouse/v1/util.js index 8f44a17b8e6..1c44a2385e9 100644 --- a/src/warehouse/v1/util.js +++ b/src/warehouse/v1/util.js @@ -2,7 +2,7 @@ const _ = require('lodash'); const reservedANSIKeywordsMap = require('../config/ReservedKeywords.json'); const { isDataLakeProvider } = require('../config/helpers'); -const { TransformationError } = require('../../v0/util/errorTypes'); +const { TransformationError } = require('@rudderstack/integrations-lib'); function safeTableName(options, name = '') { const { provider } = options; diff --git a/swagger/components/examples/batch/success.yaml b/swagger/components/examples/batch/success.yaml index 435f07ceff1..657f2dbde03 100644 --- a/swagger/components/examples/batch/success.yaml +++ b/swagger/components/examples/batch/success.yaml @@ -22,7 +22,7 @@ batchedRequest: plan: 'Open source' term: 'keyword' test: 'other value' - email: 'chandra+r@rudderlabs.com' + email: 'test@rudderstack.com' logins: 5 medium: 'medium' source: 'google' diff --git a/swagger/components/examples/processor/success.yaml b/swagger/components/examples/processor/success.yaml index 177a610a8eb..08924c88138 100644 --- a/swagger/components/examples/processor/success.yaml +++ b/swagger/components/examples/processor/success.yaml @@ -9,15 +9,15 @@ output: advertiser_id: 'advertiserId123' user_data: em: - - 7e4f504f2f6ec2d363365ec866894c6e2c4c1609889f33535bbfeeec3c33a617 + - b9ecbd1d999a0f17d442a08971caeea92d770dba89ac900688ecede233d652df ph: - - 6bd20b059b192cded172dfd75d49bd91d6a4ad09b56ace298db8a067cbef310a + - 92b5072176e723878b5e06ff3ca61898e4eb74e8c46642a0f2db800b17364ab0 ge: - 62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a ln: - - b0e6036f293e37324425377b579507ee4455a3bdf74447e5fd0ba1b512e739c2 + - dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251 fn: - - a4371f70c2cc620598bdd98dca42c1cfb2d57da40886fc19c10491cd7f666cd7 + - 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 client_ip_address: '[::1]' custom_data: num_items: 11 diff --git a/swagger/components/examples/router/success.yaml b/swagger/components/examples/router/success.yaml index 2452ff65e33..9d0f80807d2 100644 --- a/swagger/components/examples/router/success.yaml +++ b/swagger/components/examples/router/success.yaml @@ -8,15 +8,15 @@ body: advertiser_id: 'advertiserId123' user_data: em: - - '7e4f504f2f6ec2d363365ec866894c6e2c4c1609889f33535bbfeeec3c33a617' + - 'b9ecbd1d999a0f17d442a08971caeea92d770dba89ac900688ecede233d652df' ph: - - '6bd20b059b192cded172dfd75d49bd91d6a4ad09b56ace298db8a067cbef310a' + - '92b5072176e723878b5e06ff3ca61898e4eb74e8c46642a0f2db800b17364ab0' ge: - '62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a' ln: - - 'b0e6036f293e37324425377b579507ee4455a3bdf74447e5fd0ba1b512e739c2' + - 'dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251' fn: - - 'a4371f70c2cc620598bdd98dca42c1cfb2d57da40886fc19c10491cd7f666cd7' + - '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08' client_ip_address: '[::1]' custom_data: num_items: 11 diff --git a/test/__mocks__/axios.js b/test/__mocks__/axios.js index c5d0f13b0d4..6a3139c4e96 100644 --- a/test/__mocks__/axios.js +++ b/test/__mocks__/axios.js @@ -40,7 +40,6 @@ const { sendgridGetRequestHandler } = require("./sendgrid.mock"); const { sendinblueGetRequestHandler } = require("./sendinblue.mock"); const { courierGetRequestHandler } = require("./courier.mock"); const { brazePostRequestHandler } = require("./braze.mock"); -const {optimizelyFullStackGetRequestHandler} = require("./optimizely_fullstack.mock"); const urlDirectoryMap = { "api.hubapi.com": "hs", @@ -55,7 +54,6 @@ const urlDirectoryMap = { "api.sendinblue.com": "sendinblue", "api.criteo.com": "criteo_audience", "api.courier.com": "courier", - "cdn.optimizely.com": "optimizely_fullstack", }; const fs = require("fs"); @@ -88,7 +86,7 @@ function getData(url) { function get(url, options) { const mockData = getData(url); - if (url.includes("https://api.kustomerapp.com")) { + if (url.includes("https://api.kustomerapp.com") || url.includes("https://api.prod2.kustomerapp.com")) { return new Promise((resolve, reject) => { resolve(kustomerGetRequestHandler(url)); }); diff --git a/test/__mocks__/data/canny/response.json b/test/__mocks__/data/canny/response.json index a293a3b6946..b4dce15ed2c 100644 --- a/test/__mocks__/data/canny/response.json +++ b/test/__mocks__/data/canny/response.json @@ -3,12 +3,12 @@ "data": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@abc.com", + "email": "test@rudderstack.com", "id": "52d14c90fff7c80abcd12345", "isAdmin": true, "lastActivity": "2022-07-18T14:24:43.632Z", - "name": "Rohith Kumar Kaza", - "url": "https://rohith-kaza-rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://ruderstack.canny.io/admin/users/dummyUser", "userID": null } } diff --git a/test/__mocks__/data/criteo_audience/proxy_response.json b/test/__mocks__/data/criteo_audience/proxy_response.json index 0950419ea76..a16dbf26cd5 100644 --- a/test/__mocks__/data/criteo_audience/proxy_response.json +++ b/test/__mocks__/data/criteo_audience/proxy_response.json @@ -2,6 +2,23 @@ "https://api.criteo.com/2022-10/audiences/34894/contactlist": { "status": 200 }, + "https://api.criteo.com/2022-10/audiences/3485/contactlist": { + "code": "400", + "response": { + "data": { + "errors": [ + { + "traceIdentifier": "80a1a0ba3981b04da847d05700752c77", + "type": "authorization", + "code": "authorization-token-expired", + "instance": "/2022-10/audiences/123/contactlist", + "title": "The authorization token has expired" + } + ] + }, + "status": 401 + } + }, "https://api.criteo.com/2022-10/audiences/34895/contactlist": { "code": "400", "response": { diff --git a/test/__mocks__/data/google_adwords_offline_conversion/response.json b/test/__mocks__/data/google_adwords_offline_conversion/response.json index d9e763c3ace..285ef565097 100644 --- a/test/__mocks__/data/google_adwords_offline_conversion/response.json +++ b/test/__mocks__/data/google_adwords_offline_conversion/response.json @@ -1,17 +1,17 @@ { - "https://googleads.googleapis.com/v13/customers/11122233331/offlineUserDataJobs:create": { + "https://googleads.googleapis.com/v14/customers/11122233331/offlineUserDataJobs:create": { "data": { "resourceName": "customers/111-222-3333/offlineUserDataJobs/OFFLINE_USER_DATA_JOB_ID_FOR_ADD_FAILURE" }, "status": 200 }, - "https://googleads.googleapis.com/v13/customers/1112223333/offlineUserDataJobs:create": { + "https://googleads.googleapis.com/v14/customers/1112223333/offlineUserDataJobs:create": { "data": { "resourceName": "customers/111-222-3333/offlineUserDataJobs/OFFLINE_USER_DATA_JOB_ID" }, "status": 200 }, - "https://googleads.googleapis.com/v13/customers/customerid/offlineUserDataJobs:create": { + "https://googleads.googleapis.com/v14/customers/customerid/offlineUserDataJobs:create": { "status": 401, "data": { "error": { @@ -21,11 +21,11 @@ } } }, - "https://googleads.googleapis.com/v13/customers/1112223333/offlineUserDataJobs/OFFLINE_USER_DATA_JOB_ID:addOperations": { + "https://googleads.googleapis.com/v14/customers/1112223333/offlineUserDataJobs/OFFLINE_USER_DATA_JOB_ID:addOperations": { "status": 200, "data": {} }, - "https://googleads.googleapis.com/v13/customers/11122233331/offlineUserDataJobs/OFFLINE_USER_DATA_JOB_ID_FOR_ADD_FAILURE:addOperations": { + "https://googleads.googleapis.com/v14/customers/11122233331/offlineUserDataJobs/OFFLINE_USER_DATA_JOB_ID_FOR_ADD_FAILURE:addOperations": { "status": 400, "data": { "error": { @@ -34,7 +34,7 @@ "status": "INVALID_ARGUMENT", "details": [ { - "@type": "type.googleapis.com/google.ads.googleads.v13.errors.GoogleAdsFailure", + "@type": "type.googleapis.com/google.ads.googleads.v14.errors.GoogleAdsFailure", "errors": [ { "errorCode": { @@ -67,13 +67,13 @@ } } }, - "https://googleads.googleapis.com/v13/customers/1112223333/offlineUserDataJobs/OFFLINE_USER_DATA_JOB_ID:run": { + "https://googleads.googleapis.com/v14/customers/1112223333/offlineUserDataJobs/OFFLINE_USER_DATA_JOB_ID:run": { "status": 200, "data": { "name": "customers/111-222-3333/operations/abcd=" } }, - "https://googleads.googleapis.com/v13/customers/customerid/offlineUserDataJobs/OFFLINE_USER_DATA_JOB_ID_ADD_FAILURE:addOperations": { + "https://googleads.googleapis.com/v14/customers/customerid/offlineUserDataJobs/OFFLINE_USER_DATA_JOB_ID_ADD_FAILURE:addOperations": { "status": 400, "data": { "error": { @@ -82,7 +82,7 @@ "status": "INVALID_ARGUMENT", "details": [ { - "@type": "type.googleapis.com/google.ads.googleads.v13.errors.GoogleAdsFailure", + "@type": "type.googleapis.com/google.ads.googleads.v14.errors.GoogleAdsFailure", "errors": [ { "errorCode": { diff --git a/test/__mocks__/data/google_adwords_remarketing_lists/proxy_response.json b/test/__mocks__/data/google_adwords_remarketing_lists/proxy_response.json index 93689bb0cbf..5d3ac9496ba 100644 --- a/test/__mocks__/data/google_adwords_remarketing_lists/proxy_response.json +++ b/test/__mocks__/data/google_adwords_remarketing_lists/proxy_response.json @@ -1,23 +1,24 @@ { - "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs:create": { + "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs:create": { "status": 200, "data": { "resourceName": "customers/9249589672/offlineUserDataJobs/18025019461" } }, - "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs/18025019461:addOperations": { - "status": 200 + "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs/18025019461:addOperations": { + "status": 200, + "data": {} }, - "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs/18025019461:run": { + "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs/18025019461:run": { "status": 200 }, - "https://googleads.googleapis.com/v13/customers/7693729834/offlineUserDataJobs:create": { + "https://googleads.googleapis.com/v14/customers/7693729834/offlineUserDataJobs:create": { "status": 200, "data": { "resourceName": "customers/9249589672/offlineUserDataJobs/18025019462" } }, - "https://googleads.googleapis.com/v13/customers/7693729834/offlineUserDataJobs/18025019462:addOperations": { + "https://googleads.googleapis.com/v14/customers/7693729834/offlineUserDataJobs/18025019462:addOperations": { "response": { "data": { "error": { @@ -60,7 +61,7 @@ "status": 400 } }, - "https://googleads.googleapis.com/v13/customers/1234567890/googleAds:searchStream": { + "https://googleads.googleapis.com/v14/customers/1234567890/googleAds:searchStream": { "response": { "data": [ { @@ -74,11 +75,11 @@ "status": 401 } }, - "https://googleads.googleapis.com/v13/customers/1234567899/googleAds:searchStream": { + "https://googleads.googleapis.com/v14/customers/1234567899/googleAds:searchStream": { "response": "", "code": "ECONNREFUSED" }, - "https://googleads.googleapis.com/v13/customers/1234567891/googleAds:searchStream": { + "https://googleads.googleapis.com/v14/customers/1234567891/googleAds:searchStream": { "data": [ { "results": [ @@ -95,7 +96,7 @@ ], "status": 200 }, - "https://googleads.googleapis.com/v13/customers/1234567891:uploadConversionAdjustments": { + "https://googleads.googleapis.com/v14/customers/1234567891:uploadConversionAdjustments": { "data": [ { "adjustmentType": "ENHANCEMENT", diff --git a/test/__mocks__/data/hs/response.json b/test/__mocks__/data/hs/response.json index 721ee644100..e5522754662 100644 --- a/test/__mocks__/data/hs/response.json +++ b/test/__mocks__/data/hs/response.json @@ -3,6 +3,18 @@ { "name": "company_size", "type": "string" }, { "name": "date_of_birth", "type": "string" }, { "name": "days_to_close", "type": "number" }, + { + "name": "date_submitted", + "type": "date" + }, + { + "name": "days_create", + "type": "date" + }, + { + "name": "days_closed", + "type": "date" + }, { "name": "degree", "type": "string" }, { "name": "field_of_study", "type": "string" }, { "name": "first_conversion_date", "type": "datetime" }, @@ -192,6 +204,18 @@ { "name": "company_size", "type": "string" }, { "name": "date_of_birth", "type": "string" }, { "name": "days_to_close", "type": "number" }, + { + "name": "date_submitted", + "type": "date" + }, + { + "name": "date_created", + "type": "date" + }, + { + "name": "date_closed", + "type": "date" + }, { "name": "degree", "type": "string" }, { "name": "field_of_study", "type": "string" }, { "name": "first_conversion_date", "type": "datetime" }, diff --git a/test/__mocks__/data/intercom/proxy_response.json b/test/__mocks__/data/intercom/proxy_response.json new file mode 100644 index 00000000000..3c5a3d96389 --- /dev/null +++ b/test/__mocks__/data/intercom/proxy_response.json @@ -0,0 +1,15 @@ +{ + "https://api.intercom.io/users/test1": { + "data": { + "type": "error.list", + "request_id": "000on04msi4jpk7d3u60", + "errors": [ + { + "code": "Request Timeout", + "message": "The server would not wait any longer for the client" + } + ] + }, + "status": 408 + } +} diff --git a/test/__mocks__/data/marketo/proxy_response.json b/test/__mocks__/data/marketo/proxy_response.json deleted file mode 100644 index 4f5bfea7a66..00000000000 --- a/test/__mocks__/data/marketo/proxy_response.json +++ /dev/null @@ -1,282 +0,0 @@ -{ - "https://testMunchkin3.mktorest.com/bulk/v1/leads/batch/12345/warnings.json": { - "status": 200 - }, - "https://testMunchkin3.mktorest.com/bulk/v1/leads/batch/12345/failures.json": { - "status": 200 - }, - "https://a.mktorest.com/bulk/v1/leads/batch/12345/warnings.json": { - "status": 200, - "data": "data" - }, - "https://a.mktorest.com/bulk/v1/leads/batch/12345/failures.json": { - "status": 200, - "data": "data" - }, - "https://testMunchkin3.mktorest.com/bulk/v1/leads/batch/1234.json": { - "status": 200, - "data": { - "errors": [ - { - "message": "Any 400 error", - "code": 500 - } - ] - }, - "response": { - "statusText": "Any 500 error", - "status": 502 - } - }, - "https://testMunchkin4.mktorest.com/bulk/v1/leads/batch/1234.json": { - "status": 200, - "data": { - "errors": [ - { - "message": "Any 400 error", - "code": 1000 - } - ] - } - }, - "https://a.mktorest.com/bulk/v1/leads/batch/1234.json": { - "status": 200, - "data": { - "requestId": "13402#17e7238a1b9", - "result": [ - { - "batchId": 1234, - "importId": "1234", - "status": "Complete", - "numOfLeadsProcessed": 1, - "numOfRowsFailed": 0, - "numOfRowsWithWarning": 0, - "message": "Import succeeded, 1 records imported (1 members)" - } - ], - "success": true - } - }, - "https://testMunchkin4.mktorest.com/bulk/v1/leads.json": { - "status": 200, - "data": { - "requestId": "125f1#17e710ba1fd", - "success": false, - "errors": [ - { - "message": "Any other error" - } - ] - } - }, - "https://testMunchkin4.mktorest.com/identity/oauth/token?client_id=b&client_secret=c&grant_type=client_credentials": { - "status": 200, - "data": { - "access_token": "abc", - "token_type": "bearer", - "expires_in": 2340, - "scope": "integrations@rudderstack.com" - } - }, - "https://testMunchkin3.mktorest.com/bulk/v1/leads.json": { - "status": 200, - "data": { - "requestId": "125f1#17e710ba1fd", - "success": false, - "errors": [ - { - "message": "Empty file" - } - ] - } - }, - "https://testMunchkin3.mktorest.com/identity/oauth/token?client_id=b&client_secret=c&grant_type=client_credentials": { - "status": 200, - "data": { - "access_token": "abc", - "token_type": "bearer", - "expires_in": 2340, - "scope": "integrations@rudderstack.com" - } - }, - "https://testMunchkin2.mktorest.com/bulk/v1/leads.json": { - "status": 200, - "data": { - "requestId": "125f1#17e710ba1fd", - "success": false, - "errors": [ - { - "message": "There are 10 imports currently being processed. Please try again later" - } - ] - } - }, - "https://testMunchkin2.mktorest.com/identity/oauth/token?client_id=b&client_secret=c&grant_type=client_credentials": { - "status": 200, - "data": { - "access_token": "abc", - "token_type": "bearer", - "expires_in": 2340, - "scope": "integrations@rudderstack.com" - } - }, - "https://testMunchkin1.mktorest.com/bulk/v1/leads.json": { - "status": 400 - }, - "https://testMunchkin1.mktorest.com/identity/oauth/token?client_id=b&client_secret=c&grant_type=client_credentials": { - "status": 200, - "data": { - "access_token": "abc", - "token_type": "bearer", - "expires_in": 2340, - "scope": "integrations@rudderstack.com" - } - }, - "https://testMunchkin.mktorest.com/bulk/v1/leads.json": { - "status": 200, - "data": { - "requestId": "125f1#17e710ba1fd", - "success": false, - "errors": [ - { - "code": "1006", - "message": "Header field 'a' not found" - } - ] - } - }, - "https://testMunchkin.mktorest.com/identity/oauth/token?client_id=b&client_secret=c&grant_type=client_credentials": { - "status": 200, - "data": { - "access_token": "abc", - "token_type": "bearer", - "expires_in": 2340, - "scope": "integrations@rudderstack.com" - } - }, - "https://a.mktorest.com/identity/oauth/token?client_id=b&client_secret=forThrottle&grant_type=client_credentials": { - "status": 500, - "response": { - "status": 502, - "statusText": "throttled" - } - }, - "https://a.mktorest.com/identity/oauth/token?client_id=wrongClientId&client_secret=c&grant_type=client_credentials": { - "status": 400, - "code": 401, - "statusText": "Unauthorized" - }, - "https://wrongMunchkin.mktorest.com/identity/oauth/token?client_id=b&client_secret=c&grant_type=client_credentials": { - "status": 400, - "code": "ENOTFOUND" - }, - "https://a.mktorest.com/identity/oauth/token?client_id=b&client_secret=c&grant_type=client_credentials": { - "status": 200, - "data": { - "access_token": "abc", - "token_type": "bearer", - "expires_in": 2340, - "scope": "integrations@rudderstack.com" - } - }, - "https://a.mktorest.com/bulk/v1/leads.json": { - "status": 200, - "data": { - "success": true, - "result": [ - { - "importId": "TestImportId" - } - ], - "access_token": "abc", - "token_type": "bearer", - "expires_in": 2340, - "scope": "integrations@rudderstack.com" - } - }, - "https://mktId.mktorest.com/rest/v1/leads.json/test1": { - "data": { - "requestId": "664#17dae8c3d48", - "result": [ - { - "id": 1328328, - "status": "updated" - } - ], - "success": true - }, - "status": 200, - "statusText": "OK" - }, - "https://mktId.mktorest.com/rest/v1/leads.json/test2": { - "data": { - "requestId": "a61c#17daea5968a", - "success": false, - "errors": [ - { - "code": "601", - "message": "Access token invalid" - } - ] - }, - "status": 200, - "statusText": "OK" - }, - "https://mktId.mktorest.com/rest/v1/leads.json/test3": { - "data": { - "requestId": "a61c#17daea5968a", - "success": false, - "errors": [ - { - "code": "610", - "message": "Requested resource not found" - } - ] - }, - "status": 200, - "statusText": "OK" - }, - "https://mktId.mktorest.com/rest/v1/leads.json/test4": { - "response": { - "data": { - "code": 413, - "payload_size_bytes": 86321233, - "message": "Payload exceeded 1MB limit." - }, - "status": 413, - "statusText": "Request Entity Too Large", - "headers": { - "date": "Sat, 11 Dec 2021 15:08:22 GMT", - "content-type": "application/json", - "content-length": "93", - "connection": "keep-alive", - "access-control-allow-origin": "*", - "access-control-allow-methods": "GET, POST", - "strict-transport-security": "max-age=15768000" - } - } - }, - "https://mktId.mktorest.com/rest/v1/leads.json/test5": { - "response": {} - }, - "https://mktId.mktorest.com/rest/v1/leads.json/test6": { - "response": "" - }, - "https://mktId.mktorest.com/rest/v1/leads.json/test7": { - "code": "[ENOTFOUND] :: DNS lookup failed" - }, - "https://unhandled_exception_in_proxy_req.mktorest.com/rest/v1/leads.json": { - "data": { - "requestId": "142e4#1835b117b76", - "success": false, - "errors": [ - { - "code": "random_marketo_code", - "message": "problem" - } - ] - }, - "status": 200, - "statusText": "OK" - } -} diff --git a/test/__mocks__/data/marketo_static_list/proxy_response.json b/test/__mocks__/data/marketo_static_list/proxy_response.json index 5c00ced9416..290a4f5fbf6 100644 --- a/test/__mocks__/data/marketo_static_list/proxy_response.json +++ b/test/__mocks__/data/marketo_static_list/proxy_response.json @@ -1,4 +1,31 @@ { + "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=110&id=111&id=112": { + "data": { + "requestId": "b6d1#18a8d2c10e7", + "result": [ + { + "id": 110, + "status": "skipped", + "reasons": [ + { + "code": "1015", + "message": "Lead not in list" + } + ] + }, + { + "id": 111, + "status": "removed" + }, + { + "id": 112, + "status": "removed" + } + ], + "success": true + }, + "status": 200 + }, "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=1&id=2&id=3": { "data": { "requestId": "68d8#1846058ee27", @@ -60,12 +87,11 @@ "status": "skipped", "reasons": [ { - "code": "1004", - "message": "Lead not found" + "code": "1015", + "message": "Lead not in list" } ] }, - "success": true }, "status": 200 diff --git a/test/__mocks__/data/mautic/response.json b/test/__mocks__/data/mautic/response.json index 7af8b6ee780..13ec88e3015 100644 --- a/test/__mocks__/data/mautic/response.json +++ b/test/__mocks__/data/mautic/response.json @@ -11,9 +11,9 @@ "dateAdded": "2022-08-21T16:30:21+00:00", "dateModified": "2022-08-21T18:08:06+00:00", "createdBy": 1, - "createdByUser": "shruti Paul", + "createdByUser": "shruti rudderlabs", "modifiedBy": 1, - "modifiedByUser": "shruti Paul", + "modifiedByUser": "shruti rudderlabs", "id": 247, "points": 123, "color": null, @@ -81,8 +81,8 @@ "is_fixed": "1", "properties": "a:0:{}", "default_value": null, - "value": "Ganguly", - "normalizedValue": "Ganguly" + "value": "Test", + "normalizedValue": "Test" }, "company": { "id": "4", @@ -563,7 +563,7 @@ "last_active": null, "title": "abcd", "firstname": "hijibiji", - "lastname": "Ganguly", + "lastname": "Test", "company": null, "position": "lead", "email": "hijibi@gmail.com", @@ -640,9 +640,9 @@ "dateAdded": "2022-08-18T12:19:27+00:00", "dateModified": "2022-08-23T11:46:30+00:00", "createdBy": 1, - "createdByUser": "Jain Anant", + "createdByUser": "test rudderlabs", "modifiedBy": 1, - "modifiedByUser": "Jain Anant", + "modifiedByUser": "test rudderlabs", "id": 248, "points": 0, "color": null, @@ -697,8 +697,8 @@ "is_fixed": "1", "properties": "a:0:{}", "default_value": null, - "value": "Anant", - "normalizedValue": "Anant" + "value": "rudderstack", + "normalizedValue": "rudderstack" }, "lastname": { "id": "3", @@ -1191,7 +1191,7 @@ "points": 0, "last_active": "2022-08-23 11:46:27", "title": null, - "firstname": "Anant", + "firstname": "rudderstack", "lastname": "kumar", "company": null, "position": null, @@ -1264,9 +1264,9 @@ "dateAdded": "2022-08-18T12:20:05+00:00", "dateModified": "2022-08-24T09:19:10+00:00", "createdBy": 1, - "createdByUser": "Jain Anant", + "createdByUser": "test rudderlabs", "modifiedBy": 1, - "modifiedByUser": "Jain Anant", + "modifiedByUser": "test rudderlabs", "id": 249, "points": 0, "color": null, @@ -1888,9 +1888,9 @@ "dateAdded": "2022-08-18T13:20:27+00:00", "dateModified": "2022-08-18T13:20:27+00:00", "createdBy": 1, - "createdByUser": "Jain Anant", + "createdByUser": "test rudderlabs", "modifiedBy": 1, - "modifiedByUser": "Jain Anant", + "modifiedByUser": "test rudderlabs", "id": 254, "points": 0, "color": null, diff --git a/test/__mocks__/data/optimizely_fullstack/response.json b/test/__mocks__/data/optimizely_fullstack/response.json deleted file mode 100644 index e83dd8197f0..00000000000 --- a/test/__mocks__/data/optimizely_fullstack/response.json +++ /dev/null @@ -1,180 +0,0 @@ -{ - "https://cdn.optimizely.com/datafiles/abc.json": { - "accountId": "test_account_id", - "projectId": "test_project_id", - "revision": "45", - "attributes": [ - { - "id": "test_attribute_id_1", - "key": "gender" - }, - { - "id": "test_attribute_id_2", - "key": "name" - }, - { - "id": "test_attribute_id_3", - "key": "userId" - }, - { - "id": "test_attribute_id_4", - "key": "anonymousId" - }, - { - "id": "test_attribute_id_5", - "key": "company" - } - ], - "audiences": [ - { - "id": "$opt_test_audience", - "name": "Optimizely-Generated Audience for Backwards Compatibility", - "conditions": "[\"or\", {\"match\": \"exact\", \"name\": \"$opt_test_attribute\", \"type\": \"custom_attribute\", \"value\": \"$opt_test_value\"}]" - } - ], - "version": "4", - "events": [ - { - "id": "test_event_id_1", - "experimentIds": ["test_experiment_id"], - "key": "Product Added" - }, - { - "id": "test_event_id_2", - "experimentIds": ["test_experiment_id"], - "key": "Product Removed" - }, - { - "id": "test_event_id_3", - "experimentIds": ["test_experiment_id"], - "key": "Order Placed" - }, - { - "id": "test_event_id_4", - "experimentIds": ["test_experiment_id"], - "key": "Viewed Meal page" - }, - { - "id": "test_event_id_5", - "experimentIds": ["test_experiment_id"], - "key": "Viewed food page" - }, - { - "id": "test_event_id_6", - "experimentIds": ["test_experiment_id"], - "key": "Viewed Main screen" - }, - { - "id": "test_event_id_7", - "experimentIds": ["test_experiment_id"], - "key": "Home" - }, - { - "id": "test_event_id_8", - "experimentIds": ["test_experiment_id"], - "key": "Index" - } - ], - "anonymizeIP": true, - "botFiltering": false, - "typedAudiences": [], - "variables": [], - "environmentKey": "production", - "sdkKey": "test_sdk_key", - "featureFlags": [ - { - "id": "test_feature_flag_id", - "key": "testfeature", - "experimentIds": ["test_experiment_id"], - "rolloutId": "test_rollout_id", - "variables": [ - { - "id": "test_variable_id", - "key": "sort_method", - "type": "string", - "defaultValue": "alphabetical" - } - ] - } - ], - "rollouts": [ - { - "id": "test_rollout_id", - "experiments": [ - { - "forcedVariations": {}, - "id": "test_experiment_id", - "key": "test_experiment_key", - "status": "Running", - "trafficAllocation": [ - { - "entityId": "test_variation_id", - "endOfRange": 10000 - } - ], - "variations": [ - { - "id": "test_variation_id", - "key": "test_variation_key", - "variables": [ - { - "id": "test_variable_id", - "value": "alphabetical" - } - ], - "featureEnabled": true - } - ], - "layerId": "test_layer_id", - "audienceIds": [] - } - ] - } - ], - "experiments": [ - { - "forcedVariations": {}, - "id": "test_experiment_id", - "key": "test_experiment_key", - "status": "Running", - "trafficAllocation": [ - { - "entityId": "test_variation_id_1", - "endOfRange": 5000 - }, - { - "entityId": "test_variation_id_2", - "endOfRange": 10000 - } - ], - "variations": [ - { - "id": "test_variation_id_1", - "key": "variation_1", - "variables": [ - { - "id": "test_variable_id", - "value": "popular_first" - } - ], - "featureEnabled": true - }, - { - "id": "test_variation_id_2", - "key": "variation_2", - "variables": [ - { - "id": "test_variable_id", - "value": "popular_first" - } - ], - "featureEnabled": true - } - ], - "layerId": "test_layer_id", - "audienceIds": [] - } - ], - "groups": [] - } -} diff --git a/test/__mocks__/data/pardot/proxy_response.json b/test/__mocks__/data/pardot/proxy_response.json deleted file mode 100644 index 53cf0d1255e..00000000000 --- a/test/__mocks__/data/pardot/proxy_response.json +++ /dev/null @@ -1,352 +0,0 @@ -{ - "https://pi.pardot.com/api/prospect/version/4/do/upsert/id/123435": { - "data": { - "@attributes": { - "stat": "ok", - "version": 1 - }, - "prospect": { - "id": 123435, - "campaign_id": 42213, - "salutation": null, - "first_name": "Roger12", - "last_name": "Federer12", - "email": "Roger12@waltair.io", - "password": null, - "company": null, - "website": "https://rudderstack.com", - "job_title": null, - "department": null, - "country": "AU", - "address_one": null, - "address_two": null, - "city": null, - "state": null, - "territory": null, - "zip": null, - "phone": null, - "fax": null, - "source": null, - "annual_revenue": null, - "employees": null, - "industry": null, - "years_in_business": null, - "comments": null, - "notes": null, - "score": 14, - "grade": null, - "last_activity_at": null, - "recent_interaction": "Never active.", - "crm_lead_fid": null, - "crm_contact_fid": null, - "crm_owner_fid": "00G2v000004WYXaEAO", - "crm_account_fid": null, - "salesforce_fid": null, - "crm_last_sync": null, - "crm_url": null, - "is_do_not_email": null, - "is_do_not_call": null, - "opted_out": null, - "is_reviewed": 1, - "is_starred": null, - "created_at": "2022-01-21 18:21:46", - "updated_at": "2022-01-21 18:48:41", - "campaign": { - "id": 42113, - "name": "Test", - "crm_fid": "7012y000000MNOCLL4" - }, - "assigned_to": { - "user": { - "id": 38443703, - "email": "test_rudderstack@testcompany.com", - "first_name": "Rudderstack", - "last_name": "User", - "job_title": null, - "role": "Administrator", - "account": 489853, - "created_at": "2021-02-26 06:25:17", - "updated_at": "2021-02-26 06:25:17" - } - }, - "Are_you_shipping_large_fragile_or_bulky_items": false, - "Calendly": false, - "Country_Code": "AU", - "Currency": "AUD", - "Inventory_or_Warehouse_Management_System": false, - "Lead_Status": "New", - "Marketing_Stage": "SAL", - "Record_Type_ID": "TestCompany Lead", - "profile": { - "id": 304, - "name": "Default", - "profile_criteria": [ - { - "id": 1500, - "name": "Shipping Volume", - "matches": "Unknown" - }, - { - "id": 1502, - "name": "Industry", - "matches": "Unknown" - }, - { - "id": 1506, - "name": "Job Title", - "matches": "Unknown" - }, - { - "id": 1508, - "name": "Department", - "matches": "Unknown" - } - ] - }, - "visitors": null, - "visitor_activities": null, - "lists": null - } - }, - "status": 200, - "statusText": "OK" - }, - "https://pi.pardot.com/api/prospect/version/4/do/upsert/email/Roger_12@waltair.io": { - "data": { - "@attributes": { - "stat": "ok", - "version": 1 - }, - "prospect": { - "id": 123435, - "campaign_id": 42213, - "salutation": null, - "first_name": "Roger_12", - "last_name": "Federer_12", - "email": "Roger_12@waltair.io", - "password": null, - "company": null, - "website": "https://rudderstack.com", - "job_title": null, - "department": null, - "country": "AU", - "address_one": null, - "address_two": null, - "city": null, - "state": null, - "territory": null, - "zip": null, - "phone": null, - "fax": null, - "source": null, - "annual_revenue": null, - "employees": null, - "industry": null, - "years_in_business": null, - "comments": null, - "notes": null, - "score": 14, - "grade": null, - "last_activity_at": null, - "recent_interaction": "Never active.", - "crm_lead_fid": null, - "crm_contact_fid": null, - "crm_owner_fid": "00G2v000004WYXaEAO", - "crm_account_fid": null, - "salesforce_fid": null, - "crm_last_sync": null, - "crm_url": null, - "is_do_not_email": null, - "is_do_not_call": null, - "opted_out": null, - "is_reviewed": 1, - "is_starred": null, - "created_at": "2022-01-21 18:21:46", - "updated_at": "2022-01-21 18:48:41", - "campaign": { - "id": 42113, - "name": "Test", - "crm_fid": "7012y000000MNOCLL4" - }, - "assigned_to": { - "user": { - "id": 38443703, - "email": "test_rudderstack@testcompany.com", - "first_name": "Rudderstack", - "last_name": "User", - "job_title": null, - "role": "Administrator", - "account": 489853, - "created_at": "2021-02-26 06:25:17", - "updated_at": "2021-02-26 06:25:17" - } - }, - "Are_you_shipping_large_fragile_or_bulky_items": false, - "Calendly": false, - "Country_Code": "AU", - "Currency": "AUD", - "Inventory_or_Warehouse_Management_System": false, - "Lead_Status": "New", - "Marketing_Stage": "SAL", - "Record_Type_ID": "TestCompany Lead", - "profile": { - "id": 304, - "name": "Default", - "profile_criteria": [ - { - "id": 1500, - "name": "Shipping Volume", - "matches": "Unknown" - }, - { - "id": 1502, - "name": "Industry", - "matches": "Unknown" - }, - { - "id": 1506, - "name": "Job Title", - "matches": "Unknown" - }, - { - "id": 1508, - "name": "Department", - "matches": "Unknown" - } - ] - }, - "visitors": null, - "visitor_activities": null, - "lists": null - } - }, - "status": 201, - "statusText": "Created" - }, - "https://pi.pardot.com/api/prospect/version/4/do/upsert/fid/00Q6r000002LKhTPVR": { - "data": { - "@attributes": { - "stat": "ok", - "version": 1 - }, - "prospect": { - "id": 123435, - "campaign_id": 42213, - "salutation": null, - "first_name": "Roger_12", - "last_name": "Federer_12", - "email": "Roger_12@federer.io", - "password": null, - "company": null, - "website": "https://rudderstack.com", - "job_title": null, - "department": null, - "country": "AU", - "address_one": null, - "address_two": null, - "city": null, - "state": null, - "territory": null, - "zip": null, - "phone": null, - "fax": null, - "source": null, - "annual_revenue": null, - "employees": null, - "industry": null, - "years_in_business": null, - "comments": null, - "notes": null, - "score": 14, - "grade": null, - "last_activity_at": null, - "recent_interaction": "Never active.", - "crm_lead_fid": "00Q6r000002LKhTPVR", - "crm_contact_fid": null, - "crm_owner_fid": "00G2v000004WYXaEAO", - "crm_account_fid": null, - "salesforce_fid": "00Q6r000002LKhTPVR", - "crm_last_sync": "2022-01-21 18:47:37", - "crm_url": "https://testcompany.my.salesforce.com/00Q6r000002LKhTPVR", - "is_do_not_email": null, - "is_do_not_call": null, - "opted_out": null, - "is_reviewed": 1, - "is_starred": null, - "created_at": "2022-01-21 18:21:46", - "updated_at": "2022-01-21 18:48:41", - "campaign": { - "id": 42113, - "name": "Test", - "crm_fid": "7012y000000MNOCLL4" - }, - "assigned_to": { - "user": { - "id": 38443703, - "email": "test_rudderstack@testcompany.com", - "first_name": "Rudderstack", - "last_name": "User", - "job_title": null, - "role": "Administrator", - "account": 489853, - "created_at": "2021-02-26 06:25:17", - "updated_at": "2021-02-26 06:25:17" - } - }, - "Are_you_shipping_large_fragile_or_bulky_items": false, - "Calendly": false, - "Country_Code": "AU", - "Currency": "AUD", - "Inventory_or_Warehouse_Management_System": false, - "Lead_Status": "New", - "Marketing_Stage": "SAL", - "Record_Type_ID": "TestCompany Lead", - "profile": { - "id": 304, - "name": "Default", - "profile_criteria": [ - { - "id": 1500, - "name": "Shipping Volume", - "matches": "Unknown" - }, - { - "id": 1502, - "name": "Industry", - "matches": "Unknown" - }, - { - "id": 1506, - "name": "Job Title", - "matches": "Unknown" - }, - { - "id": 1508, - "name": "Department", - "matches": "Unknown" - } - ] - }, - "visitors": null, - "visitor_activities": null, - "lists": null - } - }, - "status": 200, - "statusText": "OK" - }, - "https://pi.pardot.com/api/prospect/version/4/do/upsert/email/rolex_waltair@mywebsite.io": { - "response": { - "data": { - "@attributes": { - "stat": "fail", - "version": 1, - "err_code": 184 - }, - "err": "access_token is invalid, unknown, or malformed: Inactive token" - } - }, - "status": 401, - "statusText": "Unauthorized" - } -} diff --git a/test/__mocks__/data/salesforce/proxy_response.json b/test/__mocks__/data/salesforce/proxy_response.json index f24e898825a..a92edc58c2d 100644 --- a/test/__mocks__/data/salesforce/proxy_response.json +++ b/test/__mocks__/data/salesforce/proxy_response.json @@ -1,4 +1,14 @@ { + "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/101": { + "message": "Connection Aborted", + "name": "Error", + "code": "ECONNABORTED" + }, + "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/102": { + "message": "DNS not found", + "name": "Error", + "code": "EAI_AGAIN" + }, "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/1": { "response": { "data": { @@ -69,7 +79,7 @@ "status": 503 } }, - "https://rudderstack.my.salesforce.com/services/data/v50.0/parameterizedSearch/?q=external_id&sobject=object_name&in=External_ID__c&object_name.fields=id,External_ID__c": { + "https://rudderstack.my.salesforce.com/services/data/v50.0/parameterizedSearch/?q=123&sobject=object_name&in=External_ID__c&object_name.fields=id,External_ID__c": { "response": { "searchRecords": [ { diff --git a/test/__mocks__/data/salesforce/response.json b/test/__mocks__/data/salesforce/response.json index 0527fda8f0c..de18da7656e 100644 --- a/test/__mocks__/data/salesforce/response.json +++ b/test/__mocks__/data/salesforce/response.json @@ -1,5 +1,5 @@ { - "https://login.salesforce.com/services/oauth2/token?username=sampathvinayak1453@gmail.com&password=hJCR557%23uzFfD9f58ryaM64FZp0rg3jyDV4PB5&client_id=undefined&client_secret=undefined&grant_type=password": { + "https://login.salesforce.com/services/oauth2/token?username=testsalesforce1453@gmail.com&password=dummyPassword1dummyInitialAccessToken&client_id=undefined&client_secret=undefined&grant_type=password": { "access_token": "00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY", "instance_url": "https://ap15.salesforce.com", "id": "https://login.salesforce.com/id/00D2v000002lXbXEAU/0052v00000ga9WqAAI", @@ -21,7 +21,7 @@ } ] }, - "https://test.salesforce.com/services/oauth2/token?username=utsab.c97-qvpd@force.com.test&password=vfNx8%268%25JR7fiy1FKcO9sohsxq1v6J88sg&client_id=undefined&client_secret=undefined&grant_type=password": { + "https://test.salesforce.com/services/oauth2/token?username=test.c97-qvpd@force.com.test&password=dummyPassword27fiy1FKcO9sohsxq1v6J88sg&client_id=undefined&client_secret=undefined&grant_type=password": { "access_token": "00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY", "instance_url": "https://ap15.salesforce.com", "id": "https://login.salesforce.com/id/00D2v000002lXbXEAU/0052v00000ga9WqAAI", diff --git a/test/__mocks__/data/trengo/response.json b/test/__mocks__/data/trengo/response.json index 18caac3b957..6b9248f6528 100644 --- a/test/__mocks__/data/trengo/response.json +++ b/test/__mocks__/data/trengo/response.json @@ -1,5 +1,5 @@ { - "https://app.trengo.com/api/v2/contacts?page=1&term=jimbo@dunmiff.com": { + "https://app.trengo.com/api/v2/contacts?page=1&term=j@d.com": { "data": [], "links": { "first": "https://app.trengo.com/api/v2/contacts?page=1", @@ -215,13 +215,13 @@ "to": 1 } }, - "https://app.trengo.com/api/v2/contacts?page=1&term=utsab@outlook.com": { + "https://app.trengo.com/api/v2/contacts?page=1&term=test@outlook.com": { "data": [ { "id": 97694755, - "name": "Utsab Email", - "full_name": "Utsab Email", - "email": "utsab@outlook.com", + "name": "test Email", + "full_name": "test Email", + "email": "test@outlook.com", "abbr": "U", "color": "#00bcd4", "profile_image": null, @@ -229,7 +229,7 @@ "phone": "98303115423", "formatted_phone": "+98 303115423", "avatar": "https://app.trengo.com/img/defaultpic.png", - "identifier": "utsab@outlook.com", + "identifier": "test@outlook.com", "custom_field_data": null, "profile": [], "channels": [ @@ -318,7 +318,7 @@ "Customer number": null, "Policy": null }, - "display_name": "Utsab Phone tct (utsab@outlook.com)", + "display_name": "test Phone tct (test@outlook.com)", "is_private": false } ], diff --git a/test/__mocks__/data/wootric/response.json b/test/__mocks__/data/wootric/response.json index b52730167b9..48cdd44a837 100644 --- a/test/__mocks__/data/wootric/response.json +++ b/test/__mocks__/data/wootric/response.json @@ -96,7 +96,7 @@ "surveys_disabled_by_end_user": null } }, - "https://api.wootric.com/oauth/token?account_token=NPS-1234567": { + "https://api.wootric.com/oauth/token?account_token=NPS-dummyToken": { "access_token": "2fe581c1c72851e73d60f4191f720be93e5d3e8a6147e37c4e8e852b1a8f506c", "token_type": "Bearer", "expires_in": 7200, diff --git a/test/__mocks__/data/yahoo_dsp/response.json b/test/__mocks__/data/yahoo_dsp/response.json index ada03fb0805..5b197cbea8f 100644 --- a/test/__mocks__/data/yahoo_dsp/response.json +++ b/test/__mocks__/data/yahoo_dsp/response.json @@ -1,7 +1,7 @@ { "https://id.b2b.yahooinc.com/identity/oauth2/access_token": { "data": { - "access_token": "fb8c05c9-3a32-409a-9993-3f53d307fe75", + "access_token": "testAuthToken", "scope": "dsp-api-access", "token_type": "Bearer", "expires_in": 3599 diff --git a/test/__mocks__/klaviyo.mock.js b/test/__mocks__/klaviyo.mock.js index 495a6c1f4a1..020387d1f21 100644 --- a/test/__mocks__/klaviyo.mock.js +++ b/test/__mocks__/klaviyo.mock.js @@ -7,7 +7,7 @@ const klaviyoPostRequestHandler = (url, payload) => { //resolve with status 200 return { data: payload, status: 200 }; case 'https://a.klaviyo.com/api/profiles': - if (payload.data.attributes.email === "utsab3@rudderstack.com") { + if (payload.data.attributes.email === "test3@rudderstack.com") { return { status: 409, data: { @@ -19,6 +19,7 @@ const klaviyoPostRequestHandler = (url, payload) => { data: { data: { id: '01GW3PHVY0MTCDGS0A1612HARX', + attributes: {} }, } }; diff --git a/test/__mocks__/kustomer.mock.js b/test/__mocks__/kustomer.mock.js index 90fad780726..0a1187595d3 100644 --- a/test/__mocks__/kustomer.mock.js +++ b/test/__mocks__/kustomer.mock.js @@ -126,6 +126,12 @@ const kustomerGetRequestHandler = url => { case "https://api.kustomerapp.com/v1/customers/externalId=annodD": //resolve with status 200 return { data: storedPayload, status: 200 }; + case "https://api.kustomerapp.com/v1/customers/externalId=58210c3db0f09110006b7953": + //resolve with status 200 + return { data: storedPayload, status: 200 }; + case "https://api.prod2.kustomerapp.com/v1/customers/externalId=58210c3db0f09110006b7953": + //resolve with status 200 + return { data: storedPayload, status: 200 }; default: return new Promise((resolve, reject) => { resolve({ error: "Request failed", status: 404 }); diff --git a/test/__mocks__/network.js b/test/__mocks__/network.js index acfe8985128..752dd48ca2f 100644 --- a/test/__mocks__/network.js +++ b/test/__mocks__/network.js @@ -23,7 +23,8 @@ const urlDirectoryMap = { "api.clevertap.com": "clevertap", "marketo_acct_id_success.mktorest.com": "marketo_static_list", "api.criteo.com": "criteo_audience", - "business-api.tiktok.com": "tiktok_ads" + "business-api.tiktok.com": "tiktok_ads", + "api.intercom.io": "intercom" }; function getData(arg) { diff --git a/test/__mocks__/optimizely_fullstack.mock.js b/test/__mocks__/optimizely_fullstack.mock.js deleted file mode 100644 index f2eb3deb8c1..00000000000 --- a/test/__mocks__/optimizely_fullstack.mock.js +++ /dev/null @@ -1,19 +0,0 @@ -const optimizelyFullStackGetRequestHandler = (url, mockData) => { - if (url === 'https://cdn.optimizely.com/datafiles/abc.json') { - return { data: mockData, status: 200 }; - } - - return Promise.reject({ - response: { - data: { - code: 'document_not_found', - message: 'document_not_found', - }, - status: 404, - }, - }); -}; - -module.exports = { - optimizelyFullStackGetRequestHandler, -}; diff --git a/test/__tests__/algolia-cdk.test.ts b/test/__tests__/algolia-cdk.test.ts deleted file mode 100644 index 0b6fae67411..00000000000 --- a/test/__tests__/algolia-cdk.test.ts +++ /dev/null @@ -1,59 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import { processCdkV2Workflow } from '../../src/cdk/v2/handler'; -import tags from '../../src/v0/util/tags'; - -const integration = 'algolia'; -const destName = 'Algolia'; - -const inputDataFile = fs.readFileSync(path.resolve(__dirname, `./data/${integration}_input.json`), { - encoding: 'utf8', -}); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`), - { encoding: 'utf8' }, -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -describe(`${destName} Tests`, () => { - describe('Processor Tests', () => { - inputData.forEach((input, index) => { - it(`${destName} - payload: ${index}`, async () => { - const expected = expectedData[index]; - try { - const output = await processCdkV2Workflow(integration, input, tags.FEATURES.PROCESSOR); - expect(output).toEqual(expected); - } catch (error: any) { - expect(error.message).toEqual(expected.message); - } - }); - }); - }); - - const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`), - { encoding: 'utf8' }, - ); - const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`), - { encoding: 'utf8' }, - ); - const inputRouterData = JSON.parse(inputRouterDataFile); - const expectedRouterData = JSON.parse(outputRouterDataFile); - - describe('Router Tests', () => { - inputRouterData.forEach((input, index) => { - it(`${destName} - payload: ${index}`, async () => { - const expected = expectedRouterData[index]; - try { - const output = await processCdkV2Workflow(integration, input, tags.FEATURES.ROUTER); - expect(output).toEqual(expected); - } catch (error: any) { - // console.log(error); - expect(error.message).toEqual(expected.message); - } - }); - }); - }); -}); diff --git a/test/__tests__/algolia.test.js b/test/__tests__/algolia.test.js deleted file mode 100644 index c958ff237b6..00000000000 --- a/test/__tests__/algolia.test.js +++ /dev/null @@ -1,58 +0,0 @@ -const integration = "algolia"; -const name = "algolia"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -inputData.forEach((input, index) => { - it(`${name} Tests: payload - ${index}`, () => { - let output, expected; - try { - output = transformer.process(input); - expected = expectedData[index]; - } catch (error) { - output = error.message; - // console.log(output); - expected = expectedData[index].message; - } - expect(output).toEqual(expected); - }); -}); - -const routerInputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const routerInputData = JSON.parse(routerInputDataFile); -const routerOutputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const routerOutputData = JSON.parse(routerOutputDataFile); - -describe("Router Tests", () => { - routerInputData.forEach((input, index) => { - it(`${name} Tests: payload - ${index}`, async () => { - let output, expected; - try { - output = await transformer.processRouterDest(input); - expected = routerOutputData[index]; - } catch (error) { - output = error.message; - // console.log(output); - expected = routerOutputData[index].message; - } - expect(output).toEqual(expected); - }); - }); -}); diff --git a/test/__tests__/appcues.test.js b/test/__tests__/appcues.test.js deleted file mode 100644 index 077d2e580c7..00000000000 --- a/test/__tests__/appcues.test.js +++ /dev/null @@ -1,49 +0,0 @@ -const integration = "appcues"; -const name = "Appcues"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -// Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -describe(`${name} Tests`, () => { - describe("Processor Tests", () => { - inputData.forEach((input, index) => { - it(`${name} - payload: ${index}`, async () => { - try { - const output = await transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - } - }); - }); - }); - - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/appsFlyer.test.js b/test/__tests__/appsFlyer.test.js index 9a3c81399c5..3a15f6232be 100644 --- a/test/__tests__/appsFlyer.test.js +++ b/test/__tests__/appsFlyer.test.js @@ -1,53 +1,3 @@ -// const integration = "af"; -// const name = "AppsFlyer"; -// const fs = require("fs"); -// const path = require("path"); -// const version = "v0"; - -// const transformer = require(`../../src/${version}/destinations/${integration}/transform`); -// const inputDataFile = fs.readFileSync( -// path.resolve(__dirname, `./data/${integration}_input.json`) -// ); -// const outputDataFile = fs.readFileSync( -// path.resolve(__dirname, `./data/${integration}_output.json`) -// ); -// const inputData = JSON.parse(inputDataFile); -// const expectedData = JSON.parse(outputDataFile); - -// // Router Test Data -// const inputRouterDataFile = fs.readFileSync( -// path.resolve(__dirname, `./data/${integration}_router_input.json`) -// ); -// const outputRouterDataFile = fs.readFileSync( -// path.resolve(__dirname, `./data/${integration}_router_output.json`) -// ); -// const inputRouterData = JSON.parse(inputRouterDataFile); -// const expectedRouterData = JSON.parse(outputRouterDataFile); - -// inputData.forEach((input, index) => { -// test(`${name} Tests - Payload ${index}`, () => { -// try { -// // ignored -// const output = transformer.process(input); -// expect(output).toEqual(expectedData[index]); -// } catch (error) { -// expect(error.message).toEqual(expectedData[index].error); -// } -// }); - -// }); - -// describe(`${name} Tests`, () => { - -// describe("Router Tests", () => { -// it("Payload", async () => { -// const routerOutput = await transformer.processRouterDest(inputRouterData); -// expect(routerOutput).toEqual(expectedRouterData); -// }); -// }); - -// }); - const { getDestFromTestFile, executeTransformationTest diff --git a/test/__tests__/attentive_tag.test.js b/test/__tests__/attentive_tag.test.js deleted file mode 100644 index ff8e278eced..00000000000 --- a/test/__tests__/attentive_tag.test.js +++ /dev/null @@ -1,51 +0,0 @@ -const integration = "attentive_tag"; -const name = "Attentive Tag"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -// Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -Date.now = jest.fn(() => new Date("2019-10-14T09:03:17.562Z")); - -describe(`${name} Tests`, () => { - describe("Processor Tests", () => { - inputData.forEach((input, index) => { - it(`${name} - payload: ${index}`, async () => { - try { - const output = await transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - } - }); - }); - }); - - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/autopilot-cdk.test.ts b/test/__tests__/autopilot-cdk.test.ts deleted file mode 100644 index fcb0ad401b8..00000000000 --- a/test/__tests__/autopilot-cdk.test.ts +++ /dev/null @@ -1,33 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import { processCdkV2Workflow } from '../../src/cdk/v2/handler'; -import tags from '../../src/v0/util/tags'; - -const integration = 'autopilot'; -const destName = 'Autopilot'; - -const inputDataFile = fs.readFileSync(path.resolve(__dirname, `./data/${integration}_input.json`), { - encoding: 'utf8', -}); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_cdk_output.json`), - { encoding: 'utf8' }, -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -describe(`${destName} Tests`, () => { - describe('Processor Tests', () => { - inputData.forEach((input, index) => { - it(`${destName} - payload: ${index}`, async () => { - const expected = expectedData[index]; - try { - const output = await processCdkV2Workflow(integration, input, tags.FEATURES.PROCESSOR); - expect(output).toEqual(expected); - } catch (error: any) { - expect(error.message).toEqual(expected.error); - } - }); - }); - }); -}); diff --git a/test/__tests__/autopilot.test.js b/test/__tests__/autopilot.test.js deleted file mode 100644 index d2b226aea35..00000000000 --- a/test/__tests__/autopilot.test.js +++ /dev/null @@ -1,7 +0,0 @@ -const { - getDestFromTestFile, - executeTransformationTest -} = require("./utilities/test-utils"); - -executeTransformationTest(getDestFromTestFile(__filename), "processor"); -executeTransformationTest(getDestFromTestFile(__filename), "router"); diff --git a/test/__tests__/azure_event_hub.test.js b/test/__tests__/azure_event_hub.test.js deleted file mode 100644 index b76c7450cd0..00000000000 --- a/test/__tests__/azure_event_hub.test.js +++ /dev/null @@ -1,46 +0,0 @@ -const integration = "azure_event_hub"; -const name = "Azure event Hub"; - -const fs = require("fs"); -const path = require("path"); -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); - -const dataWithMetadata = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_with_metadata.json`) -); - -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -inputData.forEach((input, index) => { - it(`${name} Tests: payload: ${index}`, async () => { - try { - const output = await transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].message); - } - }); -}); - -test(`${name} Metadata parse test`, done => { - const inputData = JSON.parse(dataWithMetadata); - inputData.forEach(async (data, _) => { - try { - const output = transformer.processMetadata(data.input); - expect(output).toEqual(data.output); - done(); - } catch (error) { - done(error); - } - }); -}); diff --git a/test/__tests__/blueshift.test.js b/test/__tests__/blueshift.test.js deleted file mode 100644 index 156552b54b3..00000000000 --- a/test/__tests__/blueshift.test.js +++ /dev/null @@ -1,51 +0,0 @@ -const integration = "blueshift"; -const name = "blueshift"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -// Processor Test Data -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -// Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -describe(`${name} Tests`, () => { - describe("Processor Tests", () => { - inputData.forEach((input, index) => { - it(`${name} - payload: ${index}`, async () => { - try { - const output = await transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - } - }); - }); - }); - - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/branch.test.js b/test/__tests__/branch.test.js deleted file mode 100644 index 74af08b18ac..00000000000 --- a/test/__tests__/branch.test.js +++ /dev/null @@ -1,49 +0,0 @@ -const integration = "branch"; -const name = "Branch"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -// Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -describe(`${name} Tests`, () => { - describe("Processor Tests", () => { - inputData.forEach((input, index) => { - it(`${name} - payload: ${index}`, async () => { - try { - const output = await transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - } - }); - }); - }); - - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/braze.test.js b/test/__tests__/braze.test.js index 9e4a663d51c..c1d317c6ba1 100644 --- a/test/__tests__/braze.test.js +++ b/test/__tests__/braze.test.js @@ -1,3 +1,4 @@ +const cloneDeep = require('lodash/cloneDeep'); const integration = "braze"; const name = "Braze"; @@ -6,6 +7,7 @@ const path = require("path"); const version = "v0"; +const { FEATURE_FILTER_CODE } = require('../../src/v0/util/constant'); const transformer = require(`../../src/${version}/destinations/${integration}/transform`); const inputDataFile = fs.readFileSync( path.resolve(__dirname, `./data/${integration}_input.json`) @@ -18,38 +20,57 @@ const expectedData = JSON.parse(outputDataFile); inputData.forEach((input, index) => { it(`${name} Tests: payload - ${index}`, async () => { - let output, expected; + let output1, output2, output3, expected; try { - output = await transformer.process(input); + // default reqMetadata + output1 = await transformer.process(cloneDeep(input)); + // null reqMetadata + output2 = await transformer.process(cloneDeep(input), { userStore: new Map() }, null); + // undefined reqMetadata + output3 = await transformer.process(cloneDeep(input), { userStore: new Map() }, undefined); expected = expectedData[index]; } catch (error) { - output = error.message; + output1 = error.message; + output2 = error.message; + output3 = error.message; expected = expectedData[index].message; } - expect(output).toEqual(expected); + expect(output1).toEqual(expected); + expect(output2).toEqual(expected); + expect(output3).toEqual(expected); }); }); + // Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) +const routerTestDataFile = fs.readFileSync( + path.resolve(__dirname, `./data/${integration}_router.json`) ); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); +const routerTestData = JSON.parse(routerTestDataFile); +const { simpleRouterTestData, dedupEnabledRouterTestData } = routerTestData; describe(`${name} Tests`, () => { describe("Simple Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData.simpleRouterRequests); - expect(routerOutput).toEqual(expectedRouterData.simpleRouterResponse); + simpleRouterTestData.forEach((dataPoint, index) => { + it(`${index}. ${integration} - ${dataPoint.description}`, async () => { + const output = await transformer.processRouterDest(dataPoint.input); + expect(output).toEqual(dataPoint.output); + }); }); }); describe("Dedupenabled Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData.dedupEnabledRouterRequests); - expect(routerOutput).toEqual(expectedRouterData.dedupEnabledRouterResponse); + dedupEnabledRouterTestData.forEach((dataPoint, index) => { + it(`${index}. ${integration} - ${dataPoint.description}`, async () => { + // default reqMetadata + const oldTransformerOutput = await transformer.processRouterDest(cloneDeep(dataPoint.input)); + // valid reqMetadata + const newTransformerOutput = await transformer.processRouterDest(cloneDeep(dataPoint.input), { features: { [FEATURE_FILTER_CODE]: true } }); + // invalid reqMetadata + const invalidRequestMetadataOutput = await transformer.processRouterDest(cloneDeep(dataPoint.input), [{ features: { [FEATURE_FILTER_CODE]: true } }]); + + expect(oldTransformerOutput).toEqual(dataPoint.oldTransformerOutput); + expect(newTransformerOutput).toEqual(dataPoint.newTransformerOutput); + expect(invalidRequestMetadataOutput).toEqual(dataPoint.oldTransformerOutput); + }); }); }); }); diff --git a/test/__tests__/campaign_manager.test.js b/test/__tests__/campaign_manager.test.js deleted file mode 100644 index 4f3a40d5205..00000000000 --- a/test/__tests__/campaign_manager.test.js +++ /dev/null @@ -1,47 +0,0 @@ -const integration = "campaign_manager"; -const name = "campaign_manager"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -// Processor Test Data -const testDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}.json`) -); -const testData = JSON.parse(testDataFile); - -// Router Test files -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -describe(`${name} Tests`, () => { - describe("Processor", () => { - testData.forEach((dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, async () => { - try { - let output = await transformer.process(dataPoint.input); - delete output.body.JSON.idempotency; - expect(output).toEqual(dataPoint.output); - } catch (error) { - expect(error.message).toEqual(dataPoint.output.error); - } - }); - }); - }); - - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/candu.test.js b/test/__tests__/candu.test.js deleted file mode 100644 index 6a2fcadb234..00000000000 --- a/test/__tests__/candu.test.js +++ /dev/null @@ -1,49 +0,0 @@ -const integration = "candu"; -const name = "Candu"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -// Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -describe(`${name} Tests`, () => { - describe("Processor Tests", () => { - inputData.forEach((input, index) => { - it(`${name} - payload: ${index}`, async () => { - try { - const output = await transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - } - }); - }); - }); - - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/clevertap.test.js b/test/__tests__/clevertap.test.js index f5c95c3dfda..1a07c2f6bcf 100644 --- a/test/__tests__/clevertap.test.js +++ b/test/__tests__/clevertap.test.js @@ -42,7 +42,7 @@ describe(`${name} Tests`, () => { describe("Router Tests", () => { it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); + const routerOutput = await transformer.processRouterDest(inputRouterData, {namespace: 'unknown', cluster: 'unknown'}); expect(routerOutput).toEqual(expectedRouterData); }); }); diff --git a/test/__tests__/confluent_cloud.test.js b/test/__tests__/confluent_cloud.test.js deleted file mode 100644 index 3c57ebccbe6..00000000000 --- a/test/__tests__/confluent_cloud.test.js +++ /dev/null @@ -1,47 +0,0 @@ -const integration = "confluent_cloud"; -const name = "Confluent Cloud"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); - -const dataWithMetadata = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_with_metadata.json`) -); - -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -inputData.forEach((input, index) => { - it(`${name} Tests: payload: ${index}`, async () => { - try { - const output = await transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].message); - } - }); -}); - -test(`${name} Metadata parse test`, done => { - const inputData = JSON.parse(dataWithMetadata); - inputData.forEach(async (data, _) => { - try { - const output = transformer.processMetadata(data.input); - expect(output).toEqual(data.output); - done(); - } catch (error) { - done(error); - } - }); -}); diff --git a/test/__tests__/courier.test.js b/test/__tests__/courier.test.js deleted file mode 100644 index 30c99a424cb..00000000000 --- a/test/__tests__/courier.test.js +++ /dev/null @@ -1,46 +0,0 @@ -const integration = "courier"; -const name = "Courier"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -// Processor Test files -const testDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}.json`) -); -const testData = JSON.parse(testDataFile); - -// Router Test files -const routerTestDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router.json`) - ); -const routerTestData = JSON.parse(routerTestDataFile); - -describe(`${name} Tests`, () => { - describe("Processor", () => { - testData.forEach(async (dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, async () => { - try { - const output = await transformer.process(dataPoint.input); - expect(output).toEqual(dataPoint.output); - } catch (error) { - expect(error.message).toEqual(dataPoint.output.error); - } - }); - }); - }); - - describe("Router Tests", () => { - routerTestData.forEach(dataPoint => { - it("Payload", async () => { - const output = await transformer.processRouterDest(dataPoint.input); - expect(output).toEqual(dataPoint.output); - }); - }); - }); - -}); diff --git a/test/__tests__/criteo_audience.test.js b/test/__tests__/criteo_audience.test.js deleted file mode 100644 index abeff146e58..00000000000 --- a/test/__tests__/criteo_audience.test.js +++ /dev/null @@ -1,70 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -const integration = "criteo_audience"; -const name = "Criteo_Audience"; -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -// Processor Test Data -const testDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}.json`) -); -const testData = JSON.parse(testDataFile); - -// Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -describe(`${name} Tests`, () => { - describe("Processor", () => { - testData.forEach((dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, async () => { - try { - const output = await transformer.process(dataPoint.input); - expect(output).toEqual(dataPoint.output); - } catch (error) { - expect(error.message).toEqual(dataPoint.output.error); - } - }); - }); - }); - - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); - -describe("Router Tests for rETL sources", () => { - it("should send events to dest", async () => { - const input = JSON.parse( - fs.readFileSync( - path.resolve( - __dirname, - `data/${integration}_router_rETL_input.json` - ) - ) - ); - const output = JSON.parse( - fs.readFileSync( - path.resolve( - __dirname, - `data/${integration}_router_rETL_output.json` - ) - ) - ); - const actualOutput = await transformer.processRouterDest(input); - console.log(JSON.stringify(actualOutput)) - expect(actualOutput).toEqual(output); - }); -}); diff --git a/test/__tests__/customerio.test.js b/test/__tests__/customerio.test.js deleted file mode 100644 index 7170c0dc307..00000000000 --- a/test/__tests__/customerio.test.js +++ /dev/null @@ -1,51 +0,0 @@ -const integration = "customerio"; -const name = "CustomerIO"; - -const fs = require("fs"); -const path = require("path"); -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/customerio/transform`); - -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -// Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -for (let index = 0; index < inputData.length; index++) { - it(`${name} Tests - payload: ${index}`, () => { - let output, expected; - try { - output = transformer.process(inputData[index]); - expected = expectedData[index]; - } catch (error) { - output = error.message; - expected = expectedData[index].message; - } - - expect(output).toEqual(expected); - }); -} - -describe(`${name} Tests`, () => { - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/data/adobe_analytics.json b/test/__tests__/data/adobe_analytics.json index cfffccb8da5..6361f92640c 100644 --- a/test/__tests__/data/adobe_analytics.json +++ b/test/__tests__/data/adobe_analytics.json @@ -1010,7 +1010,6 @@ }, "messageId": "1578564113557-af022c68-429e-4af4-b99b-2b9174056383", "properties": { - "order_id": "1234", "affiliation": "Apple Store", "value": 20, "revenue": 15.0, @@ -1019,6 +1018,7 @@ "discount": 1.5, "coupon": "ImagePro", "currency": "USD", + "purchaseId": "p101", "products": [ { "product_id": "123", @@ -1205,7 +1205,7 @@ "JSON": {}, "JSON_ARRAY": {}, "XML": { - "payload": "17941080sales campaignwebUSD127.0.0.1en-US12341234Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)https://www.google.com/search?q=estore+bestsellerroottval001RudderLabs JavaScript SDKocheckout startedhttps://www.estore.com/best-seller/12020-01-09T10:01:53.558Zmktcloudid001scCheckoutGames;Monopoly;1;14.00,Games;UNO;2;6.90footlockerrudderstackpoc" + "payload": "17941080sales campaignwebUSD127.0.0.1en-USDalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)https://www.google.com/search?q=estore+bestsellerroottval001RudderLabs JavaScript SDKocheckout startedhttps://www.estore.com/best-seller/12020-01-09T10:01:53.558Zmktcloudid001p101scCheckoutGames;Monopoly;1;14.00,Games;UNO;2;6.90footlockerrudderstackpoc" }, "FORM": {} }, diff --git a/test/__tests__/data/af_input.json b/test/__tests__/data/af_input.json index da46bae9cda..d5e2d6f16a6 100644 --- a/test/__tests__/data/af_input.json +++ b/test/__tests__/data/af_input.json @@ -265,7 +265,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com" + "email": "test@rudderstack.com" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -531,7 +531,9 @@ "app": { "namespace": "com.rudderlabs.javascript" }, - "os": { "name": "android" }, + "os": { + "name": "android" + }, "traits": { "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1" }, @@ -611,7 +613,9 @@ "app": { "namespace": "com.rudderlabs.javascript" }, - "os": { "name": "android" }, + "os": { + "name": "android" + }, "traits": { "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1" }, @@ -671,7 +675,9 @@ "app": { "namespace": "com.rudderlabs.javascript" }, - "os": { "name": "android" }, + "os": { + "name": "android" + }, "traits": { "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1" }, @@ -716,7 +722,9 @@ "app": { "namespace": "com.rudderlabs.javascript" }, - "os": { "name": "android" }, + "os": { + "name": "android" + }, "traits": { "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1" }, @@ -796,7 +804,9 @@ "app": { "namespace": "com.rudderlabs.javascript" }, - "os": { "name": "android" }, + "os": { + "name": "android" + }, "traits": { "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1" }, diff --git a/test/__tests__/data/af_router_input.json b/test/__tests__/data/af_router_input.json index 7a6f260f24b..42e63e8aa2e 100644 --- a/test/__tests__/data/af_router_input.json +++ b/test/__tests__/data/af_router_input.json @@ -56,7 +56,7 @@ } }, "metadata": { - "jobId": 2 + "jobId": 1 }, "destination": { "Config": { @@ -186,7 +186,7 @@ } }, "metadata": { - "jobId": 2 + "jobId": 3 }, "destination": { "Config": { diff --git a/test/__tests__/data/af_router_output.json b/test/__tests__/data/af_router_output.json index f2f6cbd8727..5719ee743f4 100644 --- a/test/__tests__/data/af_router_output.json +++ b/test/__tests__/data/af_router_output.json @@ -29,7 +29,7 @@ }, "metadata": [ { - "jobId": 2 + "jobId": 1 } ], "batched": false, @@ -116,7 +116,7 @@ }, "metadata": [ { - "jobId": 2 + "jobId": 3 } ], "batched": false, diff --git a/test/__tests__/data/algolia_input.json b/test/__tests__/data/algolia_input.json deleted file mode 100644 index 67216fc8710..00000000000 --- a/test/__tests__/data/algolia_input.json +++ /dev/null @@ -1,804 +0,0 @@ -[ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "testone@gmail.com", - "firstName": "test", - "lastName": "one" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/ometria", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/ometria", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "event": "product clicked", - "userId": "testuserId1", - "properties": { - "index": "products", - "filters": ["field1:hello", "val1:val2"] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", - "applicationId": "O2YARRI15I", - "eventTypeSettings": [ - { - "from": "product clicked", - "to": "cLick " - } - ] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "testone@gmail.com", - "firstName": "test", - "lastName": "one" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/ometria", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/ometria", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "event": "product list viewed", - "userId": "testuserId1", - "properties": { - "index": "products", - "products": [ - { - "objectId": "ecommerce-sample-data-919", - "position": 7 - }, - { - "objectId": "9780439784542", - "position": 8 - } - ], - "queryId": "43b15df305339e827f0ac0bdc5ebcaa7" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", - "applicationId": "O2YARRI15I", - "eventTypeSettings": [ - { - "from": "product list viewed", - "to": "click" - } - ] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "testone@gmail.com", - "firstName": "test", - "lastName": "one" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/ometria", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/ometria", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "event": "product clicked", - "userId": "testuserId1", - "properties": { - "eventType": "click", - "index": "products", - "queryId": "43b15df305339e827f0ac0bdc5ebcaa8" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", - "applicationId": "O2YARRI15I", - "eventTypeSettings": [] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "testone@gmail.com", - "firstName": "test", - "lastName": "one" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/ometria", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/ometria", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "userId": "testuserId1", - "event": "product clicked", - "properties": { - "index": "products", - "queryId": "43b15df305339e827f0ac0bdc5ebcaa7" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", - "applicationId": "O2YARRI15I", - "eventTypeSettings": [] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "testone@gmail.com", - "firstName": "test", - "lastName": "one" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/ometria", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/ometria", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "event": "product list viewed", - "userId": "testuserId1", - "properties": { - "index": "products", - "products": [ - { - "objectId": "ecommerce-sample-data-919", - "position": 7 - }, - { - "objectId": "9780439784542", - "position": 8 - } - ], - "queryId": "" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", - "applicationId": "O2YARRI15I", - "eventTypeSettings": [ - { - "from": "product list viewed", - "to": "click" - } - ] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "testone@gmail.com", - "firstName": "test", - "lastName": "one" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/ometria", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/ometria", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "event": "product list viewed", - "userId": "testuserId1", - "properties": { - "index": "products", - "products": [ - { - "objectId": "ecommerce-sample-data-919", - "position": 7 - }, - { - "objectId": "9780439784542", - "position": 8 - } - ], - "queryId": "43b15df305339e827f0ac0bdc5ebcaa7" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", - "applicationId": "O2YARRI15I", - "eventTypeSettings": [ - { - "from": "product list viewed", - "to": "view" - } - ] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "testone@gmail.com", - "firstName": "test", - "lastName": "one" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/ometria", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/ometria", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "event": "product list viewed", - "userId": "testuserId1", - "properties": { - "index": "products", - "products": [ - { - "objectId": "ecommerce-sample-data-919", - "position": "7" - }, - { - "objectId": "9780439784542", - "position": "a" - } - ], - "queryId": "43b15df305339e827f0ac0bdc5ebcaa7" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", - "applicationId": "O2YARRI15I", - "eventTypeSettings": [ - { - "from": "product list viewed", - "to": "click" - } - ] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "testone@gmail.com", - "firstName": "test", - "lastName": "one" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/ometria", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/ometria", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "event": "product list viewed", - "userId": "testuserId1", - "properties": { - "index": "products", - "products": [ - { - "objectId": "ecommerce-sample-data-919", - "position": "7" - }, - { - "objectId": "9780439784542", - "position": "a" - } - ], - "queryId": "43b15df305339e827f0ac0bdc5ebcaa7" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", - "applicationId": "O2YARRI15I", - "eventTypeSettings": [ - { - "from": "product list viewed", - "to": "check" - } - ] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "testone@gmail.com", - "firstName": "test", - "lastName": "one" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/ometria", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/ometria", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "event": "product list viewed", - "userId": "testuserId1", - "properties": { - "index": "products", - "products": [ - { - "objectId": "ecommerce-sample-data-919", - "position": "7" - }, - { - "objectId": "9780439784542", - "position": "a" - } - ], - "queryId": "43b15df305339e827f0ac0bdc5ebcaa7" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", - "applicationId": "O2YARRI15I" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "testone@gmail.com", - "firstName": "test", - "lastName": "one" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/ometria", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/ometria", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "event": "product clicked", - "userId": "testuserId1", - "properties": { - "filters": ["field1:hello", "val1:val2"] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", - "applicationId": "O2YARRI15I", - "eventTypeSettings": [ - { - "from": "product clicked", - "to": "cLick " - } - ] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "testone@gmail.com", - "firstName": "test", - "lastName": "one" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/ometria", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/ometria", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "event": ["abc", "def"], - "userId": "testuserId1", - "properties": { - "filters": ["field1:hello", "val1:val2"] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", - "applicationId": "O2YARRI15I", - "eventTypeSettings": [ - { - "from": "product clicked", - "to": "cLick " - } - ] - } - } - } -] diff --git a/test/__tests__/data/algolia_output.json b/test/__tests__/data/algolia_output.json deleted file mode 100644 index ed02c274e14..00000000000 --- a/test/__tests__/data/algolia_output.json +++ /dev/null @@ -1,121 +0,0 @@ -[ - { - "body": { - "FORM": {}, - "JSON_ARRAY": {}, - "JSON": { - "events": [ - { - "eventName": "product clicked", - "eventType": "click", - "filters": ["field1:hello", "val1:val2"], - "index": "products", - "userToken": "testuserId1" - } - ] - }, - "XML": {} - }, - "endpoint": "https://insights.algolia.io/1/events", - "files": {}, - "headers": { - "X-Algolia-API-Key": "34d8efa09c5b048bbacc6af157f2e687", - "X-Algolia-Application-Id": "O2YARRI15I" - }, - "method": "POST", - "params": {}, - "type": "REST", - "version": "1" - }, - { - "body": { - "FORM": {}, - "JSON_ARRAY": {}, - "JSON": { - "events": [ - { - "eventName": "product list viewed", - "eventType": "click", - "objectIDs": ["ecommerce-sample-data-919", "9780439784542"], - "positions": [7, 8], - "index": "products", - "userToken": "testuserId1", - "queryID": "43b15df305339e827f0ac0bdc5ebcaa7" - } - ] - }, - "XML": {} - }, - "endpoint": "https://insights.algolia.io/1/events", - "files": {}, - "headers": { - "X-Algolia-API-Key": "34d8efa09c5b048bbacc6af157f2e687", - "X-Algolia-Application-Id": "O2YARRI15I" - }, - "method": "POST", - "params": {}, - "type": "REST", - "version": "1" - }, - { - "statusCode": "400", - "message": "Either filters or objectIds is required." - }, - { - "statusCode": "400", - "message": "eventType is mandatory for track call" - }, - { - "statusCode": "400", - "message": "for click eventType either both positions and queryId should be present or none" - }, - { - "body": { - "FORM": {}, - "JSON_ARRAY": {}, - "JSON": { - "events": [ - { - "eventName": "product list viewed", - "eventType": "view", - "index": "products", - "objectIDs": ["ecommerce-sample-data-919", "9780439784542"], - "userToken": "testuserId1", - "queryID": "43b15df305339e827f0ac0bdc5ebcaa7" - } - ] - }, - "XML": {} - }, - "endpoint": "https://insights.algolia.io/1/events", - "files": {}, - "headers": { - "X-Algolia-API-Key": "34d8efa09c5b048bbacc6af157f2e687", - "X-Algolia-Application-Id": "O2YARRI15I" - }, - "method": "POST", - "params": {}, - "type": "REST", - "version": "1" - }, - { - "statusCode": "400", - "message": "for click eventType either both positions and queryId should be present or none" - }, - { - "statusCode": "400", - "message": "eventType can be either click, view or conversion" - }, - { - "statusCode": "400", - "message": "eventType is mandatory for track call" - }, - { - "statusCode": "400", - "message": "Missing required value from \"properties.index\"" - }, - { - "statusCode": "400", - "message": "event name should be a string" - } -] diff --git a/test/__tests__/data/algolia_router_input.json b/test/__tests__/data/algolia_router_input.json deleted file mode 100644 index 88685fcefe0..00000000000 --- a/test/__tests__/data/algolia_router_input.json +++ /dev/null @@ -1,1902 +0,0 @@ -[ - [ - { - "message": { - "type": "track", - "event": "product list viewed", - "sentAt": "2021-10-25T09:40:08.880Z", - "userId": "test-user-id1", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.1", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:5500/index.html", - "path": "/index.html", - "title": "Test", - "search": "", - "tab_url": "http://127.0.0.1:5500/index.html", - "referrer": "http://127.0.0.1:5500/index.html", - "initial_referrer": "http://127.0.0.1:5500/index.html", - "referring_domain": "127.0.0.1:5500", - "initial_referring_domain": "127.0.0.1:5500" - }, - "locale": "en-GB", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 1440, - "innerHeight": 335 - }, - "traits": { - "city": "Brussels", - "email": "testemail@email.com", - "phone": "1234567890", - "country": "Belgium", - "firstName": "Tintin", - "custom_date": 1574769933368, - "custom_date1": "2019-10-14T11:15:53.296Z", - "custom_flavor": "chocolate" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.1" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36" - }, - "rudderId": "e3e907f1-f79a-444b-b91d-da47488f8273", - "messageId": "8cdd3d2e-5e07-42ec-abdc-9b6bd4333840", - "timestamp": "2021-10-25T15:10:08.888+05:30", - "properties": { - "index": "products", - "queryId": "43b15df305339e827f0ac0bdc5ebcaa7", - "products": [ - { - "objectId": "ecommerce-sample-data-919", - "position": 7 - }, - { - "objectId": "9780439784542", - "position": 8 - } - ] - }, - "receivedAt": "2021-10-25T15:10:08.889+05:30", - "request_ip": "[::1]", - "anonymousId": "7138f7d9-5dd2-4337-805d-ca17be59dc8e", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-10-25T09:40:08.879Z" - }, - "metadata": { - "jobId": 1 - }, - "destination": { - "ID": "1zzHtStW2ZPlullmz6L7DGnmk9V", - "Name": "algolia-dev", - "DestinationDefinition": { - "ID": "1zgVZhcj1Tij4qlKg7B1Jp16IrH", - "Name": "ALGOLIA", - "DisplayName": "Algolia", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "applicationId", "eventTypeSettings"] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["apiKey", "applicationId"], - "supportedMessageTypes": ["track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "reactnative", - "flutter", - "cordova" - ], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "apiKey", - "applicationId": "appId", - "eventTypeSettings": [ - { - "from": "product clicked", - "to": "click" - }, - { - "from": "product list viewed", - "to": "view" - } - ] - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "type": "track", - "event": "product clicked", - "sentAt": "2021-10-25T09:40:08.886Z", - "userId": "test-user-id1", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.1", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:5500/index.html", - "path": "/index.html", - "title": "Test", - "search": "", - "tab_url": "http://127.0.0.1:5500/index.html", - "referrer": "http://127.0.0.1:5500/index.html", - "initial_referrer": "http://127.0.0.1:5500/index.html", - "referring_domain": "127.0.0.1:5500", - "initial_referring_domain": "127.0.0.1:5500" - }, - "locale": "en-GB", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 1440, - "innerHeight": 335 - }, - "traits": { - "city": "Brussels", - "email": "testemail@email.com", - "phone": "1234567890", - "country": "Belgium", - "firstName": "Tintin", - "custom_date": 1574769933368, - "custom_date1": "2019-10-14T11:15:53.296Z", - "custom_flavor": "chocolate" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.1" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36" - }, - "rudderId": "e3e907f1-f79a-444b-b91d-da47488f8273", - "messageId": "7b58e140-b66b-4e88-a5ec-bd6811fc3836", - "timestamp": "2021-10-25T15:10:08.943+05:30", - "properties": { - "index": "products", - "filters": ["field1:hello", "val1:val2"] - }, - "receivedAt": "2021-10-25T15:10:08.943+05:30", - "request_ip": "[::1]", - "anonymousId": "7138f7d9-5dd2-4337-805d-ca17be59dc8e", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-10-25T09:40:08.886Z" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "ID": "1zzHtStW2ZPlullmz6L7DGnmk9V", - "Name": "algolia-dev", - "DestinationDefinition": { - "ID": "1zgVZhcj1Tij4qlKg7B1Jp16IrH", - "Name": "ALGOLIA", - "DisplayName": "Algolia", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "applicationId", "eventTypeSettings"] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["apiKey", "applicationId"], - "supportedMessageTypes": ["track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "reactnative", - "flutter", - "cordova" - ], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "apiKey-2", - "applicationId": "appId-2", - "eventTypeSettings": [ - { - "from": "product clicked", - "to": "click" - }, - { - "from": "product list viewed", - "to": "view" - } - ] - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "testone@gmail.com", - "firstName": "test", - "lastName": "one" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/ometria", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/ometria", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "track", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "event": "product clicked", - "userId": "testuserId1", - "properties": { - "filters": ["field1:hello", "val1:val2"] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "metadata": { - "jobId": 3 - }, - "destination": { - "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", - "applicationId": "O2YARRI15I", - "eventTypeSettings": [ - { - "from": "product clicked", - "to": "cLick " - } - ] - } - } - } - ], - [], - {}, - [ - { - "message": { - "type": "track", - "event": "Product List Viewed", - "sentAt": "2023-06-19T22:22:34.928Z", - "userId": "anonymous", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "version": "2.35.0", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "https://m2-staging.ecmdi.com/supplies/air-distribution/grilles", - "path": "/supplies/air-distribution/grilles/", - "title": "Grilles - Air Distribution - Supplies | East Coast Metal Distributors", - "search": "", - "tab_url": "https://m2-staging.ecmdi.com/supplies/air-distribution/grilles", - "referrer": "https://m2-staging.ecmdi.com/", - "initial_referrer": "https://m2-staging.ecmdi.com/", - "referring_domain": "m2-staging.ecmdi.com", - "initial_referring_domain": "m2-staging.ecmdi.com" - }, - "locale": "en", - "screen": { - "width": 2560, - "height": 1440, - "density": 1, - "innerWidth": 2514, - "innerHeight": 567 - }, - "traits": { - "loggedIn": false, - "customerId": "anonymous" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.35.0" - }, - "campaign": {}, - "sessionId": 1687204412379, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/114.0", - "trackingPlanId": "tp_2P3vmVzstHPms8hwcqHYwgBjIC7", - "violationErrors": [ - { - "meta": { - "schemaPath": "#/properties/properties/properties/list_id/type", - "instacePath": "/properties/list_id" - }, - "type": "Datatype-Mismatch", - "message": "must be string" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/0" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/0" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/0" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/0" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/0" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/0" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/0" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/1" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/1" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/1" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/1" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/1" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/1" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/1" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/2" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/2" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/2" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/2" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/2" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/2" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/2" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/3" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/3" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/3" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/3" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/3" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/3" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/3" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/4" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/4" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/4" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/4" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/4" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/4" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/4" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/5" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/5" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/5" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/5" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/5" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/5" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/5" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/6" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/6" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/6" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/6" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/6" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/6" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/6" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/7" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/7" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/7" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/7" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/7" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/7" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/7" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/8" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/8" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/8" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/8" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/8" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/8" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/8" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/9" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/9" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/9" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/9" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/9" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/9" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/9" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/10" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/10" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/10" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/10" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/10" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/10" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/10" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/11" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/11" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/11" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/11" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/11" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/11" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/11" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/12" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/12" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/12" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/12" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/12" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/12" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/12" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/13" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/13" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/13" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/13" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/13" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/13" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/13" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/14" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/14" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/14" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/14" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/14" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/14" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/14" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/15" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/15" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/15" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/15" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/15" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/15" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/15" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/16" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/16" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/16" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/16" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/16" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/16" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/16" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/17" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/17" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/17" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/17" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/17" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/17" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/17" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/18" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'bu_product_num'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/18" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'erp_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/18" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/18" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'list_name'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/18" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'location_id'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/18" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'mpn'" - }, - { - "meta": { - "schemaPath": "#/properties/properties/properties/products/items/additionalProperties", - "instacePath": "/properties/products/18" - }, - "type": "Additional-Properties", - "message": "must NOT have additional properties 'pim_id'" - } - ], - "trackingPlanVersion": 2 - }, - "rudderId": "0d1f77df-5882-402a-a69f-d2dfe3175ebc", - "timestamp": "2023-06-19T19:54:39.188Z", - "properties": { - "index": "ecm_stg_product", - "list_id": 1100000063100, - "queryId": "eafb6ef1081263626abce46671147dc0", - "products": [ - { - "mpn": "190RF14X20", - "sku": "1367585787601", - "name": "14\" x 20\" Stamped Face Return Air Filter Grille with Removable Face - White", - "brand": "TRUaire", - "price": 0, - "erp_id": "168782", - "pim_id": "1367585787601", - "list_id": 1100000063100, - "category": "Grilles", - "position": 1, - "list_name": "Grilles", - "product_id": "49765", - "location_id": 1, - "bu_product_num": "49765" - }, - { - "mpn": "190RF20X20", - "sku": "1367585788656", - "name": "20\" x 20\" Stamped Face Return Air Filter Grille with Removable Face - White", - "brand": "TRUaire", - "price": 0, - "erp_id": "168790", - "pim_id": "1367585788656", - "list_id": 1100000063100, - "category": "Grilles", - "position": 2, - "list_name": "Grilles", - "product_id": "49773", - "location_id": 1, - "bu_product_num": "49773" - }, - { - "mpn": "210VM10X04", - "sku": "1367585790735", - "name": "10\" x 4\" Bar Type Supply Sidewall/Ceiling Register - White", - "brand": "TRUaire", - "price": 0, - "erp_id": "300529", - "pim_id": "1367585790735", - "list_id": 1100000063100, - "category": "Grilles", - "position": 3, - "list_name": "Grilles", - "product_id": "300529A", - "location_id": 1, - "bu_product_num": "300529A" - }, - { - "mpn": "17014X06", - "sku": "1367585782036", - "name": "14\" x 6\" Stamped Face Return Air Grille - White", - "brand": "TRUaire", - "price": 0, - "erp_id": "168752", - "pim_id": "1367585782036", - "list_id": 1100000063100, - "category": "Grilles", - "position": 4, - "list_name": "Grilles", - "product_id": "49741", - "location_id": 1, - "bu_product_num": "49741" - }, - { - "mpn": "17014X04", - "sku": "1367585782285", - "name": "14\" x 4\" Stamped Face Return Air Grille - White", - "brand": "TRUaire", - "price": 0, - "erp_id": "168751", - "pim_id": "1367585782285", - "list_id": 1100000063100, - "category": "Grilles", - "position": 5, - "list_name": "Grilles", - "product_id": "49740", - "location_id": 1, - "bu_product_num": "49740" - }, - { - "mpn": "190RF14X14", - "sku": "1367585790111", - "name": "14\" x 14\" Stamped Face Return Air Filter Grille with Removable Face - White", - "brand": "TRUaire", - "price": 0, - "erp_id": "168781", - "pim_id": "1367585790111", - "list_id": 1100000063100, - "category": "Grilles", - "position": 6, - "list_name": "Grilles", - "product_id": "49764", - "location_id": 1, - "bu_product_num": "49764" - }, - { - "mpn": "17014X10", - "sku": "1367585783304", - "name": "14\" x 10\" Stamped Face Return Air Grille - White", - "brand": "TRUaire", - "price": 0, - "erp_id": "168755", - "pim_id": "1367585783304", - "list_id": 1100000063100, - "category": "Grilles", - "position": 7, - "list_name": "Grilles", - "product_id": "49743", - "location_id": 1, - "bu_product_num": "49743" - }, - { - "mpn": "210VM12X04", - "sku": "1367585791531", - "name": "12\" x 4\" Bar Type Supply Sidewall/Ceiling Register - White", - "brand": "TRUaire", - "price": 0, - "erp_id": "240862", - "pim_id": "1367585791531", - "list_id": 1100000063100, - "category": "Grilles", - "position": 8, - "list_name": "Grilles", - "product_id": "49934", - "location_id": 1, - "bu_product_num": "49934" - }, - { - "mpn": "190RF20X25", - "sku": "1367585788307", - "name": "20\" x 25\" Stamped Face Return Air Filter Grille with Removable Face - White", - "brand": "TRUaire", - "price": 0, - "erp_id": "168791", - "pim_id": "1367585788307", - "list_id": 1100000063100, - "category": "Grilles", - "position": 9, - "list_name": "Grilles", - "product_id": "49774", - "location_id": 1, - "bu_product_num": "49774" - }, - { - "mpn": "190RF20X14", - "sku": "1367585789457", - "name": "20\" x 14\" Stamped Face Return Air Filter Grille with Removable Face - White", - "brand": "TRUaire", - "price": 0, - "erp_id": "168788", - "pim_id": "1367585789457", - "list_id": 1100000063100, - "category": "Grilles", - "position": 10, - "list_name": "Grilles", - "product_id": "49771", - "location_id": 1, - "bu_product_num": "49771" - }, - { - "mpn": "401M10X04", - "sku": "1367585800344", - "name": "10\" x 4\" Stamped Curved Blade Supply Sidewall/Ceiling Register", - "brand": "TRUaire", - "price": 0, - "erp_id": "300734", - "pim_id": "1367585800344", - "list_id": 1100000063100, - "category": "Grilles", - "position": 11, - "list_name": "Grilles", - "product_id": "300734A", - "location_id": 1, - "bu_product_num": "300734A" - }, - { - "mpn": "190RF14X25", - "sku": "1367585787467", - "name": "14\" x 25\" Stamped Face Return Air Filter Grille with Removable Face - White", - "brand": "TRUaire", - "price": 0, - "erp_id": "168783", - "pim_id": "1367585787467", - "list_id": 1100000063100, - "category": "Grilles", - "position": 12, - "list_name": "Grilles", - "product_id": "49766", - "location_id": 1, - "bu_product_num": "49766" - }, - { - "mpn": "17020X10", - "sku": "1367585783058", - "name": "20\" x 10\" Stamped Face Return Air Grille - White", - "brand": "TRUaire", - "price": 0, - "erp_id": "219506", - "pim_id": "1367585783058", - "list_id": 1100000063100, - "category": "Grilles", - "position": 13, - "list_name": "Grilles", - "product_id": "49881", - "location_id": 1, - "bu_product_num": "49881" - }, - { - "mpn": "17020X08", - "sku": "1367585783494", - "name": "20\" x 8\" Stamped Face Return Air Grille - White", - "brand": "TRUaire", - "price": 0, - "erp_id": "210374", - "pim_id": "1367585783494", - "list_id": 1100000063100, - "category": "Grilles", - "position": 14, - "list_name": "Grilles", - "product_id": "210374A", - "location_id": 1, - "bu_product_num": "210374A" - }, - { - "mpn": "190RF12X12", - "sku": "1367585787042", - "name": "12\" x 12\" Stamped Face Return Air Filter Grille with Removable Face - White", - "brand": "TRUaire", - "price": 0, - "erp_id": "168777", - "pim_id": "1367585787042", - "list_id": 1100000063100, - "category": "Grilles", - "position": 15, - "list_name": "Grilles", - "product_id": "49761", - "location_id": 1, - "bu_product_num": "49761" - }, - { - "mpn": "210VM14X04", - "sku": "1367585793228", - "name": "14\" x 4\" Bar Type Supply Sidewall/Ceiling Register - White", - "brand": "TRUaire", - "price": 0, - "erp_id": "232771", - "pim_id": "1367585793228", - "list_id": 1100000063100, - "category": "Grilles", - "position": 16, - "list_name": "Grilles", - "product_id": "49907", - "location_id": 1, - "bu_product_num": "49907" - }, - { - "mpn": "17014X144", - "sku": "1367585783124", - "name": "14\" x 14\" Stamped Face Return Air Grille - White - 4 Holes", - "brand": "TRUaire", - "price": 0, - "erp_id": "168757", - "pim_id": "1367585783124", - "list_id": 1100000063100, - "category": "Grilles", - "position": 17, - "list_name": "Grilles", - "product_id": "49744", - "location_id": 1, - "bu_product_num": "49744" - }, - { - "mpn": "190RF20X30", - "sku": "1367585788366", - "name": "20\" x 30\" Stamped Face Return Air Filter Grille with Removable Face - White", - "brand": "TRUaire", - "price": 0, - "erp_id": "168792", - "pim_id": "1367585788366", - "list_id": 1100000063100, - "category": "Grilles", - "position": 18, - "list_name": "Grilles", - "product_id": "49775", - "location_id": 1, - "bu_product_num": "49775" - }, - { - "mpn": "190RF16X25", - "sku": "1367585788996", - "name": "16\" x 25\" Stamped Face Return Air Filter Grille with Removable Face - White", - "brand": "TRUaire", - "price": 0, - "erp_id": "168786", - "pim_id": "1367585788996", - "list_id": 1100000063100, - "category": "Grilles", - "position": 19, - "list_name": "Grilles", - "product_id": "49769", - "location_id": 1, - "bu_product_num": "49769" - } - ], - "eventName": "productListView", - "eventType": "view", - "list_name": "Grilles", - "objectIds": [ - "1367585787601", - "1367585788656", - "1367585790735", - "1367585782036", - "1367585782285", - "1367585790111", - "1367585783304", - "1367585791531", - "1367585788307", - "1367585789457", - "1367585800344", - "1367585787467", - "1367585783058", - "1367585783494", - "1367585787042", - "1367585793228", - "1367585783124", - "1367585788366", - "1367585788996" - ], - "positions": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], - "userToken": "anonymous" - }, - "receivedAt": "2023-06-19T22:22:32.431Z", - "request_ip": "104.205.211.60", - "anonymousId": "7b701174-5998-480e-a4df-b322d0ec9d1c", - "integrations": { - "All": true - }, - "originalTimestamp": "2023-06-19T19:54:41.686Z" - }, - "destination": { - "secretConfig": {}, - "Config": { - "apiKey": "apiKey", - "applicationId": "appId", - "eventTypeSettings": [ - { - "from": "productClicked", - "to": "click" - }, - { - "from": "product list filtered", - "to": "click" - }, - { - "from": "Product List Viewed", - "to": "view" - }, - { - "from": "Order Completed", - "to": "conversion" - }, - { - "from": "Product Added", - "to": "click" - } - ], - "oneTrustCookieCategories": [], - "eventDelivery": false, - "eventDeliveryTS": 1687213909459 - }, - "liveEventsConfig": { - "eventDelivery": false, - "eventDeliveryTS": 1687213909459 - }, - "id": "destId", - "workspaceId": "wspId", - "DestinationDefinition": { - "Config": { - "destConfig": { - "defaultConfig": [ - "apiKey", - "applicationId", - "eventTypeSettings", - "oneTrustCookieCategories" - ] - }, - "secretKeys": ["apiKey", "applicationId"], - "excludeKeys": [], - "includeKeys": ["oneTrustCookieCategories"], - "transformAt": "router", - "cdkV2Enabled": true, - "transformAtV1": "router", - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "reactnative", - "flutter", - "cordova", - "warehouse" - ], - "supportedMessageTypes": ["track"], - "saveDestinationResponse": true - }, - "configSchema": {}, - "responseRules": {}, - "options": null, - "id": "1xrHTzX8VrnvL6FTGOrBBgT687S", - "name": "ALGOLIA", - "displayName": "Algolia", - "category": null, - "createdAt": "2021-09-08T13:04:58.041Z", - "updatedAt": "2023-06-13T13:18:08.335Z" - }, - "transformations": [], - "isConnectionEnabled": true, - "isProcessorEnabled": true, - "name": "my_algolia", - "enabled": true, - "deleted": false, - "createdAt": "2023-05-26T14:18:01.205Z", - "updatedAt": "2023-06-19T22:31:49.460Z", - "revisionId": "revisionId1", - "secretVersion": 7 - }, - "metadata": { - "sourceId": "srcId", - "workspaceId": "wspId", - "destinationId": "destId", - "jobId": 12 - } - } - ] -] diff --git a/test/__tests__/data/algolia_router_output.json b/test/__tests__/data/algolia_router_output.json deleted file mode 100644 index ad0159dcf6a..00000000000 --- a/test/__tests__/data/algolia_router_output.json +++ /dev/null @@ -1,288 +0,0 @@ -[ - [ - { - "metadata": [ - { - "jobId": 3 - } - ], - "batched": false, - "statusCode": 400, - "error": "Missing required value from \"properties.index\"", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - }, - "destination": { - "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", - "applicationId": "O2YARRI15I", - "eventTypeSettings": [ - { - "from": "product clicked", - "to": "cLick " - } - ] - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://insights.algolia.io/1/events", - "headers": { - "X-Algolia-Application-Id": "appId", - "X-Algolia-API-Key": "apiKey" - }, - "params": {}, - "body": { - "JSON": { - "events": [ - { - "index": "products", - "userToken": "test-user-id1", - "queryID": "43b15df305339e827f0ac0bdc5ebcaa7", - "eventName": "product list viewed", - "eventType": "view", - "objectIDs": ["ecommerce-sample-data-919", "9780439784542"] - }, - { - "index": "products", - "userToken": "test-user-id1", - "filters": ["field1:hello", "val1:val2"], - "eventName": "product clicked", - "eventType": "click" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 1 - }, - { - "jobId": 2 - } - ], - "batched": true, - "statusCode": 200, - "destination": { - "ID": "1zzHtStW2ZPlullmz6L7DGnmk9V", - "Name": "algolia-dev", - "DestinationDefinition": { - "ID": "1zgVZhcj1Tij4qlKg7B1Jp16IrH", - "Name": "ALGOLIA", - "DisplayName": "Algolia", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "applicationId", "eventTypeSettings"] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["apiKey", "applicationId"], - "supportedMessageTypes": ["track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "reactnative", - "flutter", - "cordova" - ], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "apiKey", - "applicationId": "appId", - "eventTypeSettings": [ - { - "from": "product clicked", - "to": "click" - }, - { - "from": "product list viewed", - "to": "view" - } - ] - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - } - ], - { - "message": "Invalid event array", - "statusCode": 400 - }, - { - "message": "Invalid event array", - "statusCode": 400 - }, - [ - { - "batched": true, - "batchedRequest": { - "body": { - "FORM": {}, - "JSON": { - "events": [ - { - "eventName": "product list viewed", - "eventType": "view", - "index": "ecm_stg_product", - "objectIDs": [ - "1367585787601", - "1367585788656", - "1367585790735", - "1367585782036", - "1367585782285", - "1367585790111", - "1367585783304", - "1367585791531", - "1367585788307", - "1367585789457", - "1367585800344", - "1367585787467", - "1367585783058", - "1367585783494", - "1367585787042", - "1367585793228", - "1367585783124", - "1367585788366", - "1367585788996" - ], - "queryID": "eafb6ef1081263626abce46671147dc0", - "userToken": "anonymous" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "endpoint": "https://insights.algolia.io/1/events", - "files": {}, - "headers": { - "X-Algolia-API-Key": "apiKey", - "X-Algolia-Application-Id": "appId" - }, - "method": "POST", - "params": {}, - "type": "REST", - "version": "1" - }, - "destination": { - "Config": { - "apiKey": "apiKey", - "applicationId": "appId", - "eventDelivery": false, - "eventDeliveryTS": 1687213909459, - "eventTypeSettings": [ - { - "from": "productClicked", - "to": "click" - }, - { - "from": "product list filtered", - "to": "click" - }, - { - "from": "Product List Viewed", - "to": "view" - }, - { - "from": "Order Completed", - "to": "conversion" - }, - { - "from": "Product Added", - "to": "click" - } - ], - "oneTrustCookieCategories": [] - }, - "DestinationDefinition": { - "Config": { - "cdkV2Enabled": true, - "destConfig": { - "defaultConfig": [ - "apiKey", - "applicationId", - "eventTypeSettings", - "oneTrustCookieCategories" - ] - }, - "excludeKeys": [], - "includeKeys": ["oneTrustCookieCategories"], - "saveDestinationResponse": true, - "secretKeys": ["apiKey", "applicationId"], - "supportedMessageTypes": ["track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "reactnative", - "flutter", - "cordova", - "warehouse" - ], - "transformAt": "router", - "transformAtV1": "router" - }, - "category": null, - "configSchema": {}, - "createdAt": "2021-09-08T13:04:58.041Z", - "displayName": "Algolia", - "id": "1xrHTzX8VrnvL6FTGOrBBgT687S", - "name": "ALGOLIA", - "options": null, - "responseRules": {}, - "updatedAt": "2023-06-13T13:18:08.335Z" - }, - "createdAt": "2023-05-26T14:18:01.205Z", - "deleted": false, - "enabled": true, - "id": "destId", - "isConnectionEnabled": true, - "isProcessorEnabled": true, - "liveEventsConfig": { - "eventDelivery": false, - "eventDeliveryTS": 1687213909459 - }, - "name": "my_algolia", - "revisionId": "revisionId1", - "secretConfig": {}, - "secretVersion": 7, - "transformations": [], - "updatedAt": "2023-06-19T22:31:49.460Z", - "workspaceId": "wspId" - }, - "metadata": [ - { - "sourceId": "srcId", - "workspaceId": "wspId", - "destinationId": "destId", - "jobId": 12 - } - ], - "statusCode": 200 - } - ] -] diff --git a/test/__tests__/data/am_batch_input.json b/test/__tests__/data/am_batch_input.json index f78de89451d..5b0440babf7 100644 --- a/test/__tests__/data/am_batch_input.json +++ b/test/__tests__/data/am_batch_input.json @@ -1,4 +1,67 @@ [ + [ + { + "message": { + "body": { + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {}, + "JSON": { + "events": [ + { + "ip": "0.0.0.0", + "time": 1603132665557, + "os_name": "", + "app_name": "RudderLabs JavaScript SDK", + "language": "en-US", + "library": "rudderstack", + "event_type": "$identify", + "os_version": "", + "session_id": -1, + "app_version": "1.1.5", + "user_properties": { + "name": "some campaign", + "plan": "Open source", + "term": "keyword", + "test": "other value", + "email": "test@rudderstack.com", + "logins": 5, + "medium": "medium", + "source": "google", + "content": "some content", + "category": "SampleIdentify", + "createdAt": 1599264000 + } + } + ], + "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", + "options": { + "min_id_length": 1 + } + } + }, + "type": "REST", + "files": {}, + "method": "POST", + "params": {}, + "headers": { + "Content-Type": "application/json" + }, + "version": "1", + "endpoint": "https://api.eu.amplitude.com/2/httpapi" + }, + "metadata": { + "job_id": 1 + }, + "destination": { + "ID": "a", + "url": "a", + "Config": { + "residencyServer": "EU" + } + } + } + ], [ { "message": { @@ -26,7 +89,7 @@ "plan": "Open source", "term": "keyword", "test": "other value", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "logins": 5, "medium": "medium", "source": "google", @@ -37,7 +100,9 @@ } ], "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -45,15 +110,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api.eu.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 1 }, + "metadata": { + "job_id": 1 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "EU" } + "Config": { + "residencyServer": "EU" + } } }, { @@ -77,11 +148,15 @@ "os_version": "", "session_id": -1, "app_version": "1.1.5", - "event_properties": { "key": "val" } + "event_properties": { + "key": "val" + } } ], "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -89,15 +164,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 2 }, + "metadata": { + "job_id": 2 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -121,11 +202,15 @@ "os_version": "", "session_id": -1, "app_version": "1.1.5", - "event_properties": { "key": "val" } + "event_properties": { + "key": "val" + } } ], "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -133,15 +218,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 3 }, + "metadata": { + "job_id": 3 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -155,7 +246,9 @@ { "ip": "[::1]", "time": 1603132726413, - "groups": { "Company": "Comapny-ABC" }, + "groups": { + "Company": "Comapny-ABC" + }, "os_name": "", "user_id": "sampleusrRudder3", "app_name": "RudderLabs JavaScript SDK", @@ -166,11 +259,15 @@ "os_version": "", "session_id": -1, "app_version": "1.1.5", - "user_properties": { "Company": "Comapny-ABC" } + "user_properties": { + "Company": "Comapny-ABC" + } } ], "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -178,15 +275,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 4 }, + "metadata": { + "job_id": 4 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -200,7 +303,9 @@ { "ip": "[::1]", "time": 1603132726413, - "groups": { "Company": "Comapny-ABC" }, + "groups": { + "Company": "Comapny-ABC" + }, "os_name": "", "user_id": "sampleusrRudder3", "app_name": "RudderLabs JavaScript SDK", @@ -211,11 +316,15 @@ "os_version": "", "session_id": -1, "app_version": "1.1.5", - "user_properties": { "Company": "Comapny-ABC" } + "user_properties": { + "Company": "Comapny-ABC" + } } ], "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -223,15 +332,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 5 }, + "metadata": { + "job_id": 5 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -256,11 +371,15 @@ "version": "1", "endpoint": "https://api2.amplitude.com/groupidentify" }, - "metadata": { "job_id": 6 }, + "metadata": { + "job_id": 6 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -283,11 +402,15 @@ "version": "1", "endpoint": "https://api2.amplitude.com/usermap" }, - "metadata": { "job_id": 7 }, + "metadata": { + "job_id": 7 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } } ], @@ -317,7 +440,7 @@ "plan": "Open source", "term": "keyword", "test": "other value", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "logins": 5, "medium": "medium", "source": "google", @@ -327,7 +450,9 @@ } }, "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -335,15 +460,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 1 }, + "metadata": { + "job_id": 1 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -366,10 +497,14 @@ "os_version": "", "session_id": -1, "app_version": "1.1.5", - "event_properties": { "key": "val" } + "event_properties": { + "key": "val" + } }, "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -377,15 +512,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 2 }, + "metadata": { + "job_id": 2 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -408,10 +549,14 @@ "os_version": "", "session_id": -1, "app_version": "1.1.5", - "event_properties": { "key": "val" } + "event_properties": { + "key": "val" + } }, "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -419,15 +564,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 3 }, + "metadata": { + "job_id": 3 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -440,7 +591,9 @@ "events": { "ip": "[::1]", "time": 1603132726413, - "groups": { "Company": "Comapny-ABC" }, + "groups": { + "Company": "Comapny-ABC" + }, "os_name": "", "user_id": "sampleusrRudder3", "app_name": "RudderLabs JavaScript SDK", @@ -451,10 +604,14 @@ "os_version": "", "session_id": -1, "app_version": "1.1.5", - "user_properties": { "Company": "Comapny-ABC" } + "user_properties": { + "Company": "Comapny-ABC" + } }, "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -462,15 +619,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 4 }, + "metadata": { + "job_id": 4 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -483,7 +646,9 @@ "events": { "ip": "[::1]", "time": 1603132726413, - "groups": { "Company": "Comapny-ABC" }, + "groups": { + "Company": "Comapny-ABC" + }, "os_name": "", "user_id": "sampleusrRudder3", "app_name": "RudderLabs JavaScript SDK", @@ -494,10 +659,14 @@ "os_version": "", "session_id": -1, "app_version": "1.1.5", - "user_properties": { "Company": "Comapny-ABC" } + "user_properties": { + "Company": "Comapny-ABC" + } }, "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -505,15 +674,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 5 }, + "metadata": { + "job_id": 5 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -538,11 +713,15 @@ "version": "1", "endpoint": "https://api2.amplitude.com/groupidentify" }, - "metadata": { "job_id": 6 }, + "metadata": { + "job_id": 6 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -565,15 +744,18 @@ "version": "1", "endpoint": "https://api2.amplitude.com/usermap" }, - "metadata": { "job_id": 7 }, + "metadata": { + "job_id": 7 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } } ], - [ { "message": { @@ -603,7 +785,9 @@ "device_manufacturer": "Google" }, "api_key": "afasf", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -611,7 +795,9 @@ "method": "POST", "params": {}, "userId": "anon_id", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, @@ -690,7 +876,9 @@ "device_manufacturer": "Google" }, "api_key": "afasf", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -698,7 +886,9 @@ "method": "POST", "params": {}, "userId": "anon_id", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, @@ -777,7 +967,9 @@ "device_manufacturer": "Google" }, "api_key": "afasf", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -785,7 +977,9 @@ "method": "POST", "params": {}, "userId": "anon_id", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, @@ -864,7 +1058,9 @@ "device_manufacturer": "Google" }, "api_key": "afasf", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -872,7 +1068,9 @@ "method": "POST", "params": {}, "userId": "anon_id", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, @@ -951,7 +1149,9 @@ "device_manufacturer": "Google" }, "api_key": "afasf", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -959,7 +1159,9 @@ "method": "POST", "params": {}, "userId": "anon_id", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, @@ -1011,7 +1213,6 @@ } } ], - [ { "message": { @@ -1039,7 +1240,7 @@ "plan": "Open source", "term": "keyword", "test": "other value", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "logins": 5, "medium": "medium", "source": "google", @@ -1050,7 +1251,9 @@ } ], "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -1058,15 +1261,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 1 }, + "metadata": { + "job_id": 1 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -1090,11 +1299,15 @@ "os_version": "", "session_id": -1, "app_version": "1.1.5", - "event_properties": { "key": "val" } + "event_properties": { + "key": "val" + } } ], "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -1102,15 +1315,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 2 }, + "metadata": { + "job_id": 2 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -1134,11 +1353,15 @@ "os_version": "", "session_id": -1, "app_version": "1.1.5", - "event_properties": { "key": "val" } + "event_properties": { + "key": "val" + } } ], "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -1146,15 +1369,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 3 }, + "metadata": { + "job_id": 3 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -1168,7 +1397,9 @@ { "ip": "[::1]", "time": 1603132726413, - "groups": { "Company": "Comapny-ABC" }, + "groups": { + "Company": "Comapny-ABC" + }, "os_name": "", "user_id": "sampleusrRudder3", "app_name": "RudderLabs JavaScript SDK", @@ -1179,11 +1410,15 @@ "os_version": "", "session_id": -1, "app_version": "1.1.5", - "user_properties": { "Company": "Comapny-ABC" } + "user_properties": { + "Company": "Comapny-ABC" + } } ], "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -1191,15 +1426,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 4 }, + "metadata": { + "job_id": 4 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -1213,7 +1454,9 @@ { "ip": "[::1]", "time": 1603132726413, - "groups": { "Company": "Comapny-ABC" }, + "groups": { + "Company": "Comapny-ABC" + }, "os_name": "", "user_id": "sampleusrRudder3", "app_name": "RudderLabs JavaScript SDK", @@ -1224,11 +1467,15 @@ "os_version": "", "session_id": -1, "app_version": "1.1.5", - "user_properties": { "Company": "Comapny-ABC" } + "user_properties": { + "Company": "Comapny-ABC" + } } ], "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -1236,15 +1483,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 5 }, + "metadata": { + "job_id": 5 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -1269,11 +1522,15 @@ "version": "1", "endpoint": "https://api2.amplitude.com/groupidentify" }, - "metadata": { "job_id": 6 }, + "metadata": { + "job_id": 6 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -1296,15 +1553,18 @@ "version": "1", "endpoint": "https://api2.amplitude.com/usermap" }, - "metadata": { "job_id": 7 }, + "metadata": { + "job_id": 7 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } } ], - [ { "message": { @@ -1331,7 +1591,7 @@ "plan": "Open source", "term": "keyword", "test": "other value", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "logins": 5, "medium": "medium", "source": "google", @@ -1342,7 +1602,9 @@ } ], "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -1350,15 +1612,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 1 }, + "metadata": { + "job_id": 1 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -1382,11 +1650,15 @@ "os_version": "", "session_id": -1, "app_version": "1.1.5", - "event_properties": { "key": "val" } + "event_properties": { + "key": "val" + } } ], "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -1394,15 +1666,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 2 }, + "metadata": { + "job_id": 2 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -1426,11 +1704,15 @@ "os_version": "", "session_id": -1, "app_version": "1.1.5", - "event_properties": { "key": "val" } + "event_properties": { + "key": "val" + } } ], "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -1438,15 +1720,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 3 }, + "metadata": { + "job_id": 3 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -1460,7 +1748,9 @@ { "ip": "[::1]", "time": 1603132726413, - "groups": { "Company": "Comapny-ABC" }, + "groups": { + "Company": "Comapny-ABC" + }, "os_name": "", "user_id": "sampleusrRudder3", "app_name": "RudderLabs JavaScript SDK", @@ -1471,11 +1761,15 @@ "os_version": "", "session_id": -1, "app_version": "1.1.5", - "user_properties": { "Company": "Comapny-ABC" } + "user_properties": { + "Company": "Comapny-ABC" + } } ], "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -1483,15 +1777,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 4 }, + "metadata": { + "job_id": 4 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -1505,7 +1805,9 @@ { "ip": "[::1]", "time": 1603132726413, - "groups": { "Company": "Comapny-ABC" }, + "groups": { + "Company": "Comapny-ABC" + }, "os_name": "", "user_id": "sampleusrRudder3", "app_name": "RudderLabs JavaScript SDK", @@ -1516,11 +1818,15 @@ "os_version": "", "session_id": -1, "app_version": "1.1.5", - "user_properties": { "Company": "Comapny-ABC" } + "user_properties": { + "Company": "Comapny-ABC" + } } ], "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "options": { "min_id_length": 1 } + "options": { + "min_id_length": 1 + } } }, "type": "REST", @@ -1528,15 +1834,21 @@ "method": "POST", "params": {}, "userId": "my-anonymous-id-new", - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": { "job_id": 5 }, + "metadata": { + "job_id": 5 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -1561,11 +1873,15 @@ "version": "1", "endpoint": "https://api2.amplitude.com/groupidentify" }, - "metadata": { "job_id": 6 }, + "metadata": { + "job_id": 6 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -1588,11 +1904,15 @@ "version": "1", "endpoint": "https://api2.amplitude.com/usermap" }, - "metadata": { "job_id": 7 }, + "metadata": { + "job_id": 7 + }, "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } } ] diff --git a/test/__tests__/data/am_batch_output.json b/test/__tests__/data/am_batch_output.json index e4a581d04ba..32735b000fb 100644 --- a/test/__tests__/data/am_batch_output.json +++ b/test/__tests__/data/am_batch_output.json @@ -1,4 +1,18 @@ [ + [ + { + "batched": false, + "error": "Both userId and deviceId cannot be undefined", + "metadata": { + "job_id": 1 + }, + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation" + }, + "statusCode": 400 + } + ], [ { "batchedRequest": { @@ -26,7 +40,7 @@ "plan": "Open source", "term": "keyword", "test": "other value", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "logins": 5, "medium": "medium", "source": "google", @@ -53,11 +67,17 @@ "version": "1", "endpoint": "https://api.eu.amplitude.com/2/httpapi" }, - "metadata": [{ "job_id": 1 }], + "metadata": [ + { + "job_id": 1 + } + ], "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "EU" } + "Config": { + "residencyServer": "EU" + } } }, { @@ -82,11 +102,17 @@ "version": "1", "endpoint": "https://api2.amplitude.com/groupidentify" }, - "metadata": [{ "job_id": 6 }], + "metadata": [ + { + "job_id": 6 + } + ], "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -96,7 +122,9 @@ "JSON_ARRAY": {}, "FORM": { "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "mapping": ["{\"global_user_id\":\"newUserIdAlias\",\"user_id\":\"sampleusrRudder3\"}"] + "mapping": [ + "{\"global_user_id\":\"newUserIdAlias\",\"user_id\":\"sampleusrRudder3\"}" + ] }, "JSON": {} }, @@ -109,11 +137,17 @@ "version": "1", "endpoint": "https://api2.amplitude.com/usermap" }, - "metadata": [{ "job_id": 7 }], + "metadata": [ + { + "job_id": 7 + } + ], "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -213,11 +247,26 @@ "version": "1", "endpoint": "https://api2.amplitude.com/batch" }, - "metadata": [{ "job_id": 2 }, { "job_id": 3 }, { "job_id": 4 }, { "job_id": 5 }], + "metadata": [ + { + "job_id": 2 + }, + { + "job_id": 3 + }, + { + "job_id": 4 + }, + { + "job_id": 5 + } + ], "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } } ], @@ -247,7 +296,7 @@ "plan": "Open source", "term": "keyword", "test": "other value", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "logins": 5, "medium": "medium", "source": "google", @@ -273,11 +322,17 @@ "version": "1", "endpoint": "https://api2.amplitude.com/2/httpapi" }, - "metadata": [{ "job_id": 1 }], + "metadata": [ + { + "job_id": 1 + } + ], "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -302,11 +357,17 @@ "version": "1", "endpoint": "https://api2.amplitude.com/groupidentify" }, - "metadata": [{ "job_id": 6 }], + "metadata": [ + { + "job_id": 6 + } + ], "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -316,7 +377,9 @@ "JSON_ARRAY": {}, "FORM": { "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "mapping": ["{\"global_user_id\":\"newUserIdAlias\",\"user_id\":\"sampleusrRudder3\"}"] + "mapping": [ + "{\"global_user_id\":\"newUserIdAlias\",\"user_id\":\"sampleusrRudder3\"}" + ] }, "JSON": {} }, @@ -329,11 +392,17 @@ "version": "1", "endpoint": "https://api2.amplitude.com/usermap" }, - "metadata": [{ "job_id": 7 }], + "metadata": [ + { + "job_id": 7 + } + ], "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -433,11 +502,26 @@ "version": "1", "endpoint": "https://api2.amplitude.com/batch" }, - "metadata": [{ "job_id": 2 }, { "job_id": 3 }, { "job_id": 4 }, { "job_id": 5 }], + "metadata": [ + { + "job_id": 2 + }, + { + "job_id": 3 + }, + { + "job_id": 4 + }, + { + "job_id": 5 + } + ], "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } } ], @@ -621,14 +705,29 @@ "DisplayName": "Braze", "Config": { "destConfig": { - "android": ["useNativeSDK"], - "defaultConfig": ["appKey", "dataCenter", "restApiKey"], - "ios": ["useNativeSDK"], - "web": ["useNativeSDK"] + "android": [ + "useNativeSDK" + ], + "defaultConfig": [ + "appKey", + "dataCenter", + "restApiKey" + ], + "ios": [ + "useNativeSDK" + ], + "web": [ + "useNativeSDK" + ] }, "excludeKeys": [], - "includeKeys": ["appKey", "dataCenter"], - "secretKeys": ["restApiKey"], + "includeKeys": [ + "appKey", + "dataCenter" + ], + "secretKeys": [ + "restApiKey" + ], "supportedSourceTypes": [ "android", "ios", @@ -682,7 +781,9 @@ "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -692,7 +793,9 @@ "JSON_ARRAY": {}, "FORM": { "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "mapping": ["{\"global_user_id\":\"newUserIdAlias\",\"user_id\":\"sampleusrRudder3\"}"] + "mapping": [ + "{\"global_user_id\":\"newUserIdAlias\",\"user_id\":\"sampleusrRudder3\"}" + ] }, "JSON": {} }, @@ -713,7 +816,9 @@ "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -741,7 +846,7 @@ "plan": "Open source", "term": "keyword", "test": "other value", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "logins": 5, "medium": "medium", "source": "google", @@ -859,7 +964,9 @@ "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } } ], @@ -889,7 +996,7 @@ "plan": "Open source", "term": "keyword", "test": "other value", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "logins": 5, "medium": "medium", "source": "google", @@ -924,7 +1031,9 @@ "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -957,7 +1066,9 @@ "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -967,7 +1078,9 @@ "JSON_ARRAY": {}, "FORM": { "api_key": "4c7ed7573eb73517ee4c26ed4bde9a85", - "mapping": ["{\"global_user_id\":\"newUserIdAlias\",\"user_id\":\"sampleusrRudder3\"}"] + "mapping": [ + "{\"global_user_id\":\"newUserIdAlias\",\"user_id\":\"sampleusrRudder3\"}" + ] }, "JSON": {} }, @@ -988,7 +1101,9 @@ "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } }, { @@ -1105,8 +1220,10 @@ "destination": { "ID": "a", "url": "a", - "Config": { "residencyServer": "standard" } + "Config": { + "residencyServer": "standard" + } } } ] -] +] \ No newline at end of file diff --git a/test/__tests__/data/am_input.json b/test/__tests__/data/am_input.json index 36a25bba5a5..2eecfb1d2c6 100644 --- a/test/__tests__/data/am_input.json +++ b/test/__tests__/data/am_input.json @@ -1,4 +1,214 @@ [ + { + "message": { + "type": "track", + "sentAt": "2020-08-14T05:30:30.118Z", + "context": { + "source": "test", + "traits": { + "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1" + }, + "library": { + "name": "rudder-sdk-ruby-sync", + "version": "1.0.6" + } + }, + "messageId": "7208bbb6-2c4e-45bb-bf5b-ad426f3593e9", + "timestamp": "2020-08-14T05:30:30.118Z", + "properties": { + "tax": 2, + "total": 27.5, + "coupon": "hasbros", + "revenue": 48, + "revenue_type": "Purchased", + "quantity": 2, + "currency": "USD", + "discount": 2.5, + "order_id": "50314b8e9bcf000000000000", + "shipping": 3, + "subtotal": 22.5, + "affiliation": "Google Store", + "checkout_id": "fksdjfsdjfisjf9sdfjsd9f" + }, + "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", + "integrations": { + "S3": false, + "All": true + } + }, + "destination": { + "Config": { + "apiKey": "abcde", + "groupTypeTrait": "email", + "groupValueTrait": "age", + "trackProductsOnce": true, + "trackRevenuePerProduct": false + } + } + }, + { + "message": { + "type": "UNSUPPORTED-TYPE", + "event": "Order Completed", + "sentAt": "2020-08-14T05:30:30.118Z", + "context": {}, + "messageId": "7208bbb6-2c4e-45bb-bf5b-ad426f3593e9", + "timestamp": "2020-08-14T05:30:30.118Z", + "properties": {}, + "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", + "integrations": { + "S3": false, + "All": true + } + }, + "destination": { + "Config": { + "groupTypeTrait": "email", + "apiKey": "abcde", + "groupValueTrait": "age", + "trackProductsOnce": true, + "trackRevenuePerProduct": false + } + } + }, + { + "message": { + "event": "Order Completed", + "sentAt": "2020-08-14T05:30:30.118Z", + "context": {}, + "messageId": "7208bbb6-2c4e-45bb-bf5b-ad426f3593e9", + "timestamp": "2020-08-14T05:30:30.118Z", + "properties": {}, + "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", + "integrations": { + "S3": false, + "All": true + } + }, + "destination": { + "Config": { + "groupTypeTrait": "email", + "groupValueTrait": "age", + "trackProductsOnce": true, + "trackRevenuePerProduct": false + } + } + }, + { + "message": { + "type": "track", + "event": "Order Completed", + "sentAt": "2020-08-14T05:30:30.118Z", + "context": { + "source": "test", + "traits": { + "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1" + }, + "library": { + "name": "rudder-sdk-ruby-sync", + "version": "1.0.6" + } + }, + "messageId": "7208bbb6-2c4e-45bb-bf5b-ad426f3593e9", + "timestamp": "2020-08-14T05:30:30.118Z", + "properties": { + "tax": 2, + "total": 27.5, + "coupon": "hasbros", + "revenue": 48, + "revenue_type": "Purchased", + "quantity": 2, + "currency": "USD", + "discount": 2.5, + "order_id": "50314b8e9bcf000000000000", + "shipping": 3, + "subtotal": 22.5, + "affiliation": "Google Store", + "checkout_id": "fksdjfsdjfisjf9sdfjsd9f" + }, + "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", + "integrations": { + "S3": false, + "All": true + } + }, + "destination": { + "Config": { + "apiKey": "abcde", + "groupTypeTrait": "email", + "groupValueTrait": "age", + "trackProductsOnce": true, + "trackRevenuePerProduct": false + } + } + }, + { + "message": { + "type": "track", + "event": "Order Completed", + "sentAt": "2020-08-14T05:30:30.118Z", + "context": { + "source": "test", + "traits": { + "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1" + }, + "library": { + "name": "rudder-sdk-ruby-sync", + "version": "1.0.6" + } + }, + "messageId": "7208bbb6-2c4e-45bb-bf5b-ad426f3593e9", + "timestamp": "2020-08-14T05:30:30.118Z", + "properties": { + "tax": 2, + "total": 27.5, + "coupon": "hasbros", + "revenue": 48, + "quantity": 2, + "currency": "USD", + "discount": 2.5, + "order_id": "50314b8e9bcf000000000000", + "products": [ + { + "sku": "45790-32", + "url": "https://www.example.com/product/path", + "name": "Monopoly: 3rd Edition", + "price": 19, + "category": "Games", + "quantity": 1, + "image_url": "https:///www.example.com/product/path.jpg", + "product_id": "507f1f77bcf86cd799439011" + }, + { + "sku": "46493-32", + "name": "Uno Card Game", + "price": 3, + "category": "Games", + "quantity": 2, + "product_id": "505bd76785ebb509fc183733" + } + ], + "shipping": 3, + "subtotal": 22.5, + "affiliation": "Google Store", + "checkout_id": "fksdjfsdjfisjf9sdfjsd9f" + }, + "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", + "integrations": { + "S3": false, + "All": true + } + }, + "destination": { + "Config": { + "apiKey": "abcde", + "groupTypeTrait": "email", + "groupValueTrait": "age", + "trackProductsOnce": true, + "trackRevenuePerProduct": false + } + } + }, { "message": { "channel": "web", @@ -19,7 +229,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "address": { "country": "India", "postalCode": 712136, @@ -57,7 +267,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "city": "kolkata", "address": { "country": "India", @@ -116,7 +326,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "address": { "country": "India", "postalCode": 712136, @@ -154,7 +364,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "city": "kolkata", "address": { "country": "India", @@ -200,7 +410,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "address": { "city": "kolkata", "country": "India", @@ -266,7 +476,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -333,7 +543,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -405,7 +615,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -502,7 +712,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "address": { "city": "kolkata", "country": "India", @@ -642,7 +852,92 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", + "plan": "Open source", + "logins": 5, + "createdAt": 1599264000 + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.5" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 0.8999999761581421 + }, + "campaign": { + "source": "google", + "medium": "medium", + "term": "keyword", + "content": "some content", + "name": "some campaign", + "test": "other value" + }, + "page": { + "path": "/destinations/amplitude", + "referrer": "", + "search": "", + "title": "", + "url": "https://docs.rudderstack.com/destinations/amplitude", + "category": "destination", + "initial_referrer": "https://docs.rudderstack.com", + "initial_referring_domain": "docs.rudderstack.com" + } + }, + "type": "group", + "messageId": "e5034df0-a404-47b4-a463-76df99934fea", + "originalTimestamp": "2020-10-20T07:54:58.983Z", + "anonymousId": "my-anonymous-id-new", + "userId": "sampleusrRudder3", + "integrations": { + "All": true, + "Amplitude": { + "groups": { + "group_type": "Company", + "group_value": "ABC" + } + } + }, + "groupId": "Sample_groupId23", + "traits": { + "KEY_3": { + "CHILD_KEY_92": "value_95", + "CHILD_KEY_102": "value_103" + }, + "KEY_2": { + "CHILD_KEY_92": "value_95", + "CHILD_KEY_102": "value_103" + }, + "name_trait": "Company", + "value_trait": "ABC" + }, + "sentAt": "2020-10-20T07:54:58.983Z" + }, + "destination": { + "Config": { + "apiKey": "abcde" + } + } + }, + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.5" + }, + "traits": { + "name": "Shehan Study", + "category": "SampleIdentify", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -698,7 +993,7 @@ "CHILD_KEY_102": "value_103" }, "name_trait": "Company", - "value_trait": "Comapny-ABC" + "value_trait": "ABC" }, "sentAt": "2020-10-20T07:54:58.983Z" }, @@ -723,7 +1018,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -779,7 +1074,7 @@ "CHILD_KEY_102": "value_103" }, "name_trait": "Company", - "value_trait": ["Comapny-ABC"] + "value_trait": ["ABC"] }, "sentAt": "2020-10-20T07:54:58.983Z" }, @@ -804,7 +1099,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -871,7 +1166,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -2854,7 +3149,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "address": { "city": "kolkata", "country": "India", @@ -3031,7 +3326,7 @@ }, "traits": { "anonymousId": "123456", - "email": "rohith@gmail.com", + "email": "test@rudderstack.com", "address": { "country": "India", "postalCode": 712136, @@ -3069,7 +3364,7 @@ }, "traits": { "anonymousId": "123456", - "email": "rohith@gmail.com", + "email": "test@rudderstack.com", "city": "kolkata", "address": { "country": "India", @@ -3117,7 +3412,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -3173,7 +3468,7 @@ "CHILD_KEY_102": "value_103" }, "name_trait": "Company", - "value_trait": "Comapny-ABC" + "value_trait": "ABC" }, "sentAt": "2020-10-20T07:54:58.983Z" }, @@ -3199,7 +3494,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -3478,7 +3773,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "address": { "country": "India", "postalCode": 712136, @@ -3516,7 +3811,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "city": "kolkata", "address": { "country": "India", @@ -3572,7 +3867,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "address": { "country": "India", "postalCode": 712136, @@ -3610,7 +3905,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "city": "kolkata", "address": { "country": "India", @@ -3659,7 +3954,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -3718,7 +4013,7 @@ "CHILD_KEY_102": "value_103" }, "name_trait": "Company", - "value_trait": "Comapny-ABC" + "value_trait": "ABC" }, "sentAt": "2020-10-20T07:54:58.983Z" }, @@ -3771,7 +4066,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -3843,7 +4138,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -3965,6 +4260,68 @@ } } }, + { + "message": { + "anonymousId": "5d205961641ee6c5", + "channel": "mobile", + "context": { + "app": { + "build": "6", + "name": "Sample Kotlin", + "namespace": "com.example.testapp1mg", + "version": "1.2" + }, + "device": { + "id": "5d205961641ee6c5", + "manufacturer": "Google", + "model": "Android SDK built for x86", + "name": "generic_x86", + "type": "Android" + }, + "library": { + "name": "com.rudderstack.android.sdk.core", + "version": "1.7.0" + }, + "locale": "en-US", + "network": { + "carrier": "Android", + "bluetooth": false, + "cellular": true, + "wifi": true + }, + "os": { + "name": "Android", + "version": "7.1.1" + }, + "screen": { + "density": 440, + "height": 2148, + "width": 1080 + }, + "sessionId": "1662393792", + "timezone": "Asia/Kolkata", + "traits": { + "anonymousId": "5d205961641ee6c5", + "id": "User Android", + "userId": "User Android" + }, + "userAgent": "Dalvik/2.1.0 (Linux; U; Android 7.1.1; Android SDK built for x86 Build/NYC)" + }, + "integrations": { + "All": true + }, + "messageId": "1662393883248-509420bf-b812-4f8d-bdb2-8c811bfde87f", + "properties": {}, + "originalTimestamp": "2022-09-05T16:04:43.250Z", + "type": "screen", + "userId": "User Android" + }, + "destination": { + "Config": { + "apiKey": "abcde" + } + } + }, { "message": { "channel": "web", @@ -3985,7 +4342,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "address": { "country": "India", "postalCode": 712136, @@ -4024,7 +4381,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "city": "kolkata", "address": { "country": "India", @@ -4131,7 +4488,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -4185,7 +4542,7 @@ "CHILD_KEY_102": "value_103" }, "name_trait": "Company", - "value_trait": "Comapny-ABC" + "value_trait": "ABC" }, "sentAt": "2020-10-20T07:54:58.983Z" }, @@ -4208,7 +4565,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -4280,7 +4637,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -4352,7 +4709,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -4424,7 +4781,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -4464,7 +4821,6 @@ "search": "", "title": "", "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", "initial_referrer": "https://docs.rudderstack.com", "initial_referring_domain": "docs.rudderstack.com" }, @@ -4474,15 +4830,114 @@ "event_id": 2 } }, - "name": "ApplicationLoaded", "sentAt": "2019-10-14T11:15:53.296Z" }, "destination": { "Config": { "apiKey": "abcde", - "useUserDefinedPageEventName": true, + "useUserDefinedPageEventName": false, "userProvidedPageEventString": "Viewed {{context.page.title}} event." } } + }, + { + "message": { + "type": "screen", + "userId": "identified user id", + "anonymousId": "anon-id-new", + "event": "Screen View", + "properties": { + "prop1": "5" + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + }, + "destination": { + "Config": { + "apiKey": "abcde", + "useUserDefinedScreenEventName": true, + "userProvidedScreenEventString": "My {{ event }} event." + } + } + }, + { + "message": { + "type": "screen", + "userId": "identified user id", + "anonymousId": "anon-id-new", + "event": "Screen View", + "properties": { + "prop1": "5" + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + }, + "destination": { + "Config": { + "apiKey": "abcde", + "useUserDefinedScreenEventName": false, + "userProvidedScreenEventString": "My {{ event }} event." + } + } + }, + { + "message": { + "type": "screen", + "userId": "identified user id", + "anonymousId": "anon-id-new", + "event": "Screen same as event", + "properties": { + "prop1": "5" + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + }, + "destination": { + "Config": { + "apiKey": "abcde", + "useUserDefinedScreenEventName": true, + "userProvidedScreenEventString": "{{ event }}" + } + } + }, + { + "message": { + "type": "screen", + "userId": "identified user id", + "anonymousId": "anon-id-new", + "name": "Screen", + "properties": { + "prop1": "5" + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + }, + "destination": { + "Config": { + "apiKey": "abcde", + "useUserDefinedScreenEventName": true, + "userProvidedScreenEventString": "" + } + } } ] diff --git a/test/__tests__/data/am_output.json b/test/__tests__/data/am_output.json index 8104f4ec791..6744a9dcefd 100644 --- a/test/__tests__/data/am_output.json +++ b/test/__tests__/data/am_output.json @@ -1,4 +1,138 @@ [ + { + "error": "Event not present. Please send event field" + }, + { + "error": "message type not supported" + }, + { + "error": "No API Key is Found. Please Configure API key from dashbaord" + }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api2.amplitude.com/2/httpapi", + "headers": { + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "api_key": "abcde", + "events": [ + { + "device_id": "50be5c78-6c3f-4b60-be84-97805a316fb1", + "library": "rudderstack", + "event_type": "Order Completed", + "insert_id": "7208bbb6-2c4e-45bb-bf5b-ad426f3593e9", + "event_properties": { + "tax": 2, + "total": 27.5, + "coupon": "hasbros", + "currency": "USD", + "discount": 2.5, + "order_id": "50314b8e9bcf000000000000", + "revenue_type": "Purchased", + "shipping": 3, + "subtotal": 22.5, + "affiliation": "Google Store", + "checkout_id": "fksdjfsdjfisjf9sdfjsd9f" + }, + "revenueType": "Purchased", + "price": 48, + "quantity": 1, + "revenue": 48, + "time": 1597383030118, + "user_properties": { + "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1" + }, + "session_id": -1 + } + ], + "options": { + "min_id_length": 1 + } + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "50be5c78-6c3f-4b60-be84-97805a316fb1" + }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api2.amplitude.com/2/httpapi", + "headers": { + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "api_key": "abcde", + "events": [ + { + "device_id": "50be5c78-6c3f-4b60-be84-97805a316fb1", + "library": "rudderstack", + "event_type": "Order Completed", + "insert_id": "7208bbb6-2c4e-45bb-bf5b-ad426f3593e9", + "event_properties": { + "tax": 2, + "total": 27.5, + "coupon": "hasbros", + "currency": "USD", + "discount": 2.5, + "order_id": "50314b8e9bcf000000000000", + "products": [ + { + "category": "Games", + "image_url": "https:///www.example.com/product/path.jpg", + "name": "Monopoly: 3rd Edition", + "price": 19, + "product_id": "507f1f77bcf86cd799439011", + "quantity": 1, + "sku": "45790-32", + "url": "https://www.example.com/product/path" + }, + { + "category": "Games", + "name": "Uno Card Game", + "price": 3, + "product_id": "505bd76785ebb509fc183733", + "quantity": 2, + "sku": "46493-32" + } + ], + "shipping": 3, + "subtotal": 22.5, + "affiliation": "Google Store", + "checkout_id": "fksdjfsdjfisjf9sdfjsd9f" + }, + "revenueType": "Purchased", + "price": 48, + "quantity": 1, + "revenue": 48, + "time": 1597383030118, + "user_properties": { + "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1" + }, + "session_id": -1 + } + ], + "options": { + "min_id_length": 1 + } + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "50be5c78-6c3f-4b60-be84-97805a316fb1" + }, { "version": "1", "type": "REST", @@ -21,14 +155,14 @@ "app_name": "RudderLabs JavaScript SDK", "app_version": "1.0.0", "language": "en-US", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "session_id": -1, "insert_id": "84e26acc-56a5-4835-8233-591137fca468", "ip": "0.0.0.0", "user_properties": { "initial_referrer": "https://docs.rudderstack.com", "initial_referring_domain": "docs.rudderstack.com", "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "postalCode": 712136, "state": "WB", "street": "", @@ -77,14 +211,14 @@ "app_name": "RudderLabs JavaScript SDK", "app_version": "1.0.0", "language": "en-US", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "session_id": -1, "insert_id": "84e26acc-56a5-4835-8233-591137fca468", "ip": "0.0.0.0", "user_properties": { "initial_referrer": "https://docs.rudderstack.com", "initial_referring_domain": "docs.rudderstack.com", "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "postalCode": 712136, "state": "WB", "street": "", @@ -137,11 +271,11 @@ "app_name": "RudderLabs JavaScript SDK", "app_version": "1.0.0", "language": "en-US", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "session_id": -1, "event_type": "$identify", "user_properties": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "postalCode": 712136, "state": "WB", "street": "", @@ -202,13 +336,13 @@ "initial_referring_domain": "docs.rudderstack.com", "initial_referrer": "https://docs.rudderstack.com" }, - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "session_id": -1, "ip": "1.1.1.1", "time": 1571051718299, "user_id": "12345", "user_properties": { "anonymousId": "12345", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "initial_referring_domain": "docs.rudderstack.com", "initial_referrer": "https://docs.rudderstack.com" } @@ -261,7 +395,7 @@ "initial_referring_domain": "docs.rudderstack.com", "initial_referrer": "https://docs.rudderstack.com" }, - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "session_id": -1, "ip": "1.1.1.1", "groups": { "Company": "ABC" @@ -270,7 +404,7 @@ "user_id": "12345", "user_properties": { "anonymousId": "12345", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "initial_referring_domain": "docs.rudderstack.com", "initial_referrer": "https://docs.rudderstack.com" } @@ -312,7 +446,7 @@ "app_version": "1.0.0", "language": "en-US", "event_type": "test track event", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "session_id": -1, "event_properties": { "user_actual_role": "system_admin", "user_actual_id": 12345, @@ -322,7 +456,7 @@ "user_id": "12345", "user_properties": { "anonymousId": "12345", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "initial_referring_domain": "docs.rudderstack.com", "initial_referrer": "https://docs.rudderstack.com" }, @@ -366,11 +500,11 @@ "app_name": "RudderLabs JavaScript SDK", "app_version": "1.0.0", "language": "en-US", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "session_id": -1, "event_type": "$identify", "user_properties": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "postalCode": 712136, "state": "WB", "street": "", @@ -419,7 +553,7 @@ "timestamp": "2020-08-28 09:00:00" }, "event_type": "$identify", - "session_id": "1598597129", + "session_id": 1598597129, "time": 0, "user_id": "ubcdfghi0001" } @@ -450,7 +584,7 @@ "events": [ { "device_id": "123456", - "session_id": "1598597129", + "session_id": 1598597129, "event_type": "$identify", "library": "rudderstack", "user_properties": { @@ -555,6 +689,81 @@ "files": {}, "userId": "123456" }, + [ + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api2.amplitude.com/2/httpapi", + "headers": { + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "api_key": "abcde", + "events": [ + { + "os_name": "Chrome", + "os_version": "85.0.4183.121", + "platform": "Web", + "library": "rudderstack", + "device_model": "Mac", + "device_id": "my-anonymous-id-new", + "app_name": "RudderLabs JavaScript SDK", + "app_version": "1.1.5", + "language": "en-US", + "event_type": "$identify", + "groups": { + "Company": "ABC" + }, + "user_properties": { + "Company": "ABC", + "utm_content": "some content", + "utm_medium": "medium", + "utm_name": "some campaign", + "utm_source": "google", + "utm_term": "keyword", + "utm_test": "other value", + "initial_referring_domain": "docs.rudderstack.com", + "initial_referrer": "https://docs.rudderstack.com" + }, + "time": 1603180498983, + "user_id": "sampleusrRudder3", + "session_id": -1 + } + ], + "options": { + "min_id_length": 1 + } + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "my-anonymous-id-new" + }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api2.amplitude.com/groupidentify", + "headers": {}, + "params": {}, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": { + "api_key": "abcde", + "identification": ["{\"group_type\":\"Company\",\"group_value\":\"ABC\"}"] + } + }, + "files": {}, + "userId": "my-anonymous-id-new" + } + ], [ { "version": "1", @@ -581,7 +790,7 @@ "language": "en-US", "event_type": "$identify", "user_properties": { - "Company": "Comapny-ABC", + "Company": "ABC", "utm_content": "some content", "utm_medium": "medium", "utm_name": "some campaign", @@ -592,7 +801,7 @@ "initial_referrer": "https://docs.rudderstack.com" }, "groups": { - "Company": "Comapny-ABC" + "Company": "ABC" }, "time": 1603180498983, "user_id": "sampleusrRudder3", @@ -624,7 +833,7 @@ "FORM": { "api_key": "abcde", "identification": [ - "{\"group_type\":\"Company\",\"group_value\":\"Comapny-ABC\",\"group_properties\":{\"KEY_3\":{\"CHILD_KEY_92\":\"value_95\",\"CHILD_KEY_102\":\"value_103\"},\"KEY_2\":{\"CHILD_KEY_92\":\"value_95\",\"CHILD_KEY_102\":\"value_103\"},\"name_trait\":\"Company\",\"value_trait\":\"Comapny-ABC\"}}" + "{\"group_type\":\"Company\",\"group_value\":\"ABC\",\"group_properties\":{\"KEY_3\":{\"CHILD_KEY_92\":\"value_95\",\"CHILD_KEY_102\":\"value_103\"},\"KEY_2\":{\"CHILD_KEY_92\":\"value_95\",\"CHILD_KEY_102\":\"value_103\"},\"name_trait\":\"Company\",\"value_trait\":\"ABC\"}}" ] } }, @@ -2244,7 +2453,7 @@ "event_type": "Order Completed", "user_id": "userID123", "revenueType": "Purchased", - "price": 25, + "price": 25.0, "quantity": 2, "revenue": 48, "time": 1597383030118, @@ -2886,13 +3095,13 @@ "app_name": "RudderLabs JavaScript SDK", "app_version": "1.0.0", "language": "en-US", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "session_id": -1, "event_type": "$identify", "device_brand": "testBrand", "device_manufacturer": "testManufacturer", "user_properties": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "postalCode": 712136, "state": "WB", "street": "", @@ -3031,14 +3240,14 @@ "app_name": "RudderLabs JavaScript SDK", "app_version": "1.0.0", "language": "en-US", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "session_id": -1, "insert_id": "84e26acc-56a5-4835-8233-591137fca468", "ip": "0.0.0.0", "user_properties": { "initial_referrer": "https://docs.rudderstack.com", "initial_referring_domain": "docs.rudderstack.com", "anonymousId": "123456", - "email": "rohith@gmail.com", + "email": "test@rudderstack.com", "postalCode": 712136, "state": "WB", "street": "", @@ -3091,7 +3300,7 @@ "language": "en-US", "event_type": "$identify", "user_properties": { - "Company": "Comapny-ABC", + "Company": "ABC", "utm_content": "some content", "utm_medium": "medium", "utm_name": "some campaign", @@ -3102,7 +3311,7 @@ "initial_referrer": "https://docs.rudderstack.com" }, "groups": { - "Company": "Comapny-ABC" + "Company": "ABC" }, "time": 1603180498983, "user_id": "sampleusrRudder3", @@ -3134,7 +3343,7 @@ "FORM": { "api_key": "abcde", "identification": [ - "{\"group_type\":\"Company\",\"group_value\":\"Comapny-ABC\",\"group_properties\":{\"KEY_3\":{\"CHILD_KEY_92\":\"value_95\",\"CHILD_KEY_102\":\"value_103\"},\"KEY_2\":{\"CHILD_KEY_92\":\"value_95\",\"CHILD_KEY_102\":\"value_103\"},\"name_trait\":\"Company\",\"value_trait\":\"Comapny-ABC\"}}" + "{\"group_type\":\"Company\",\"group_value\":\"ABC\",\"group_properties\":{\"KEY_3\":{\"CHILD_KEY_92\":\"value_95\",\"CHILD_KEY_102\":\"value_103\"},\"KEY_2\":{\"CHILD_KEY_92\":\"value_95\",\"CHILD_KEY_102\":\"value_103\"},\"name_trait\":\"Company\",\"value_trait\":\"ABC\"}}" ] } }, @@ -3365,7 +3574,7 @@ "initial_referrer": "https://docs.rudderstack.com", "initial_referring_domain": "docs.rudderstack.com", "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "postalCode": 712136, "state": "WB", "street": "", @@ -3422,7 +3631,7 @@ "initial_referrer": "https://docs.rudderstack.com", "initial_referring_domain": "docs.rudderstack.com", "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "postalCode": 712136, "state": "WB", "street": "", @@ -3483,11 +3692,11 @@ "utm_content": "some content", "utm_name": "some campaign", "utm_test": "other value", - "Company": "Comapny-ABC" + "Company": "ABC" }, "event_type": "$identify", "groups": { - "Company": "Comapny-ABC" + "Company": "ABC" }, "time": 1603180498983, "user_id": "sampleusrRudder3", @@ -3520,7 +3729,7 @@ "FORM": { "api_key": "abcde", "identification": [ - "{\"group_type\":\"Company\",\"group_value\":\"Comapny-ABC\",\"group_properties\":{\"KEY_3\":{\"CHILD_KEY_92\":\"value_95\",\"CHILD_KEY_102\":\"value_103\"},\"KEY_2\":{\"CHILD_KEY_92\":\"value_95\",\"CHILD_KEY_102\":\"value_103\"},\"name_trait\":\"Company\",\"value_trait\":\"Comapny-ABC\"}}" + "{\"group_type\":\"Company\",\"group_value\":\"ABC\",\"group_properties\":{\"KEY_3\":{\"CHILD_KEY_92\":\"value_95\",\"CHILD_KEY_102\":\"value_103\"},\"KEY_2\":{\"CHILD_KEY_92\":\"value_95\",\"CHILD_KEY_102\":\"value_103\"},\"name_trait\":\"Company\",\"value_trait\":\"ABC\"}}" ] } }, @@ -3603,14 +3812,14 @@ "initial_referring_domain": "docs.rudderstack.com", "name": "ApplicationLoaded" }, - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "session_id": -1, "insert_id": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", "ip": "1.1.1.1", "event_id": 2, "user_properties": { "initial_referrer": "https://docs.rudderstack.com", "initial_referring_domain": "docs.rudderstack.com", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "user_id": "12345", @@ -3702,6 +3911,56 @@ "files": {}, "userId": "5d205961641ee6c5" }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api2.amplitude.com/2/httpapi", + "headers": { + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "api_key": "abcde", + "events": [ + { + "os_name": "Android", + "os_version": "7.1.1", + "device_model": "Android SDK built for x86", + "device_manufacturer": "Google", + "device_id": "5d205961641ee6c5", + "carrier": "Android", + "app_name": "Sample Kotlin", + "app_version": "1.2", + "platform": "Android", + "language": "en-US", + "event_properties": {}, + "insert_id": "1662393883248-509420bf-b812-4f8d-bdb2-8c811bfde87f", + "user_properties": { + "anonymousId": "5d205961641ee6c5", + "id": "User Android", + "userId": "User Android" + }, + "event_type": "Viewed Screen", + "user_id": "User Android", + "device_brand": "Google", + "time": 1662393883250, + "session_id": 1662393792, + "library": "rudderstack" + } + ], + "options": { + "min_id_length": 1 + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "5d205961641ee6c5" + }, { "version": "1", "type": "REST", @@ -3730,7 +3989,7 @@ "initial_referrer": "https://docs.rudderstack.com", "initial_referring_domain": "docs.rudderstack.com", "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "postalCode": 712136, "state": "WB", "street": "", @@ -3741,7 +4000,7 @@ "event_type": "$identify", "time": 1571043797562, "user_id": "123456", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "session_id": 1662393792, "country": "India", "city": "kolkata", "library": "rudderstack" @@ -3847,14 +4106,14 @@ "initial_referring_domain": "docs.rudderstack.com", "name": "ApplicationLoaded" }, - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "session_id": -1, "insert_id": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", "ip": "1.1.1.1", "event_id": 2, "user_properties": { "initial_referrer": "https://docs.rudderstack.com", "initial_referring_domain": "docs.rudderstack.com", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "user_id": "12345", @@ -3907,14 +4166,14 @@ "initial_referring_domain": "docs.rudderstack.com", "name": "ApplicationLoaded" }, - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "session_id": -1, "insert_id": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", "ip": "1.1.1.1", "event_id": 2, "user_properties": { "initial_referrer": "https://docs.rudderstack.com", "initial_referring_domain": "docs.rudderstack.com", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "user_id": "12345", @@ -3967,14 +4226,14 @@ "initial_referring_domain": "docs.rudderstack.com", "name": "ApplicationLoaded" }, - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "session_id": -1, "insert_id": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", "ip": "1.1.1.1", "event_id": 2, "user_properties": { "initial_referrer": "https://docs.rudderstack.com", "initial_referring_domain": "docs.rudderstack.com", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "user_id": "12345", @@ -4015,26 +4274,24 @@ "app_name": "RudderLabs JavaScript SDK", "app_version": "1.0.0", "language": "en-US", - "event_type": "Viewed Home Page event.", + "event_type": "Viewed Page", "event_properties": { "path": "/destinations/amplitude", "referrer": "", "search": "", "title": "", "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com", - "name": "ApplicationLoaded" + "initial_referring_domain": "docs.rudderstack.com" }, - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "session_id": -1, "insert_id": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", "ip": "1.1.1.1", "event_id": 2, "user_properties": { "initial_referrer": "https://docs.rudderstack.com", "initial_referring_domain": "docs.rudderstack.com", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "user_id": "12345", @@ -4052,5 +4309,161 @@ }, "files": {}, "userId": "00000000000000000000000000" + }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api2.amplitude.com/2/httpapi", + "headers": { + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "api_key": "abcde", + "events": [ + { + "device_id": "anon-id-new", + "library": "rudderstack", + "event_properties": { + "prop1": "5", + "name": "Screen View" + }, + "event_type": "My Screen View event.", + "time": 1580602989544, + "user_id": "identified user id", + "user_properties": {}, + "session_id": -1, + "ip": "14.5.67.21" + } + ], + "options": { + "min_id_length": 1 + } + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "anon-id-new" + }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api2.amplitude.com/2/httpapi", + "headers": { + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "api_key": "abcde", + "events": [ + { + "device_id": "anon-id-new", + "library": "rudderstack", + "event_properties": { + "prop1": "5", + "name": "Screen View" + }, + "event_type": "Viewed Screen View Screen", + "time": 1580602989544, + "user_id": "identified user id", + "user_properties": {}, + "session_id": -1, + "ip": "14.5.67.21" + } + ], + "options": { + "min_id_length": 1 + } + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "anon-id-new" + }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api2.amplitude.com/2/httpapi", + "headers": { + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "api_key": "abcde", + "events": [ + { + "device_id": "anon-id-new", + "library": "rudderstack", + "event_properties": { + "prop1": "5", + "name": "Screen same as event" + }, + "event_type": "Screen same as event", + "time": 1580602989544, + "user_id": "identified user id", + "user_properties": {}, + "session_id": -1, + "ip": "14.5.67.21" + } + ], + "options": { + "min_id_length": 1 + } + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "anon-id-new" + }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api2.amplitude.com/2/httpapi", + "headers": { + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "api_key": "abcde", + "events": [ + { + "device_id": "anon-id-new", + "library": "rudderstack", + "event_properties": { + "prop1": "5", + "name": "Screen" + }, + "event_type": "Screen", + "time": 1580602989544, + "user_id": "identified user id", + "user_properties": {}, + "session_id": -1, + "ip": "14.5.67.21" + } + ], + "options": { + "min_id_length": 1 + } + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "anon-id-new" } ] diff --git a/test/__tests__/data/am_router_input.json b/test/__tests__/data/am_router_input.json index 47250ce1342..83314ae7de4 100644 --- a/test/__tests__/data/am_router_input.json +++ b/test/__tests__/data/am_router_input.json @@ -11,7 +11,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "address": { "city": "kolkata", "country": "India", @@ -59,7 +59,7 @@ "sentAt": "2019-10-14T09:03:22.563Z" }, "metadata": { - "jobId": 2 + "jobId": 1 }, "destination": { "Config": { @@ -80,7 +80,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { diff --git a/test/__tests__/data/am_router_output.json b/test/__tests__/data/am_router_output.json index 02f4881ea36..bfccb478b39 100644 --- a/test/__tests__/data/am_router_output.json +++ b/test/__tests__/data/am_router_output.json @@ -24,7 +24,7 @@ "app_name": "RudderLabs JavaScript SDK", "app_version": "1.0.0", "language": "en-US", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "session_id": -1, "insert_id": "84e26acc-56a5-4835-8233-591137fca468", "city": "kolkata", "country": "India", @@ -32,7 +32,7 @@ "initial_referrer": "https://docs.rudderstack.com", "initial_referring_domain": "docs.rudderstack.com", "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "postalCode": 712136, "state": "WB", "street": "", @@ -59,7 +59,7 @@ ], "metadata": [ { - "jobId": 2 + "jobId": 1 } ], "batched": false, @@ -109,13 +109,13 @@ "initial_referring_domain": "docs.rudderstack.com", "name": "ApplicationLoaded" }, - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "session_id": -1, "insert_id": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", "ip": "1.1.1.1", "user_properties": { "initial_referrer": "https://docs.rudderstack.com", "initial_referring_domain": "docs.rudderstack.com", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "user_id": "12345", diff --git a/test/__tests__/data/appcenter_source_input.json b/test/__tests__/data/appcenter_source_input.json index ae843ca0c08..1cde0666b1e 100644 --- a/test/__tests__/data/appcenter_source_input.json +++ b/test/__tests__/data/appcenter_source_input.json @@ -1,8 +1,8 @@ [ { - "text": "Hello from your Anant-test app in App Center!", + "text": "Hello from your abc-test app in App Center!", "sent_at": "2023-01-02T07: 53: 28.3117824Z", - "url": "https://appcenter.ms/users/anant-rudderstack.com/apps/Anant-test" + "url": "https://appcenter.ms/users/abc-rudderstack.com/apps/abc-test" }, { "app_name": "MSAppCenterTesting", diff --git a/test/__tests__/data/appcues_input.json b/test/__tests__/data/appcues_input.json deleted file mode 100644 index 45875726803..00000000000 --- a/test/__tests__/data/appcues_input.json +++ /dev/null @@ -1,734 +0,0 @@ -[ - { - "message": { - "anonymousId": "33787665-4168-4acc-8df7-17ba79325332", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.9" - }, - "campaign": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.9" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/rudder-sdk-js/tests/html/script-test.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost:4321/rudder-sdk-js/tests/html/script-test.html" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "6a5f38c0-4e75-4268-a066-2b73fbcad01f", - "originalTimestamp": "2021-01-04T08:25:04.780Z", - "receivedAt": "2021-01-04T13:55:04.799+05:30", - "request_ip": "[::1]", - "rudderId": "79881a62-980a-4d76-89ca-7099440f8c13", - "sentAt": "2021-01-04T08:25:04.781Z", - "timestamp": "2021-01-04T13:55:04.798+05:30", - "type": "identify", - "userId": "onlyUserId" - }, - "destination": { - "Config": { - "accountId": "86086", - "useNativeSDK": false - } - } - }, - { - "message": { - "anonymousId": "33787665-4168-4acc-8df7-17ba79325332", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.9" - }, - "campaign": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.9" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/rudder-sdk-js/tests/html/script-test.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost:4321/rudder-sdk-js/tests/html/script-test.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "first name": "John", - "last name": "Abraham" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "57494c6a-3c62-4b30-83aa-6e821d37ac75", - "originalTimestamp": "2021-01-04T08:25:04.786Z", - "receivedAt": "2021-01-04T13:55:04.799+05:30", - "request_ip": "[::1]", - "rudderId": "ed2ed08a-3cd9-4b2c-9b04-7e3d3501fab7", - "sentAt": "2021-01-04T08:25:04.787Z", - "timestamp": "2021-01-04T13:55:04.798+05:30", - "type": "identify", - "userId": "userIdWithProperties" - }, - "destination": { - "Config": { - "accountId": "86086", - "useNativeSDK": false - } - } - }, - { - "message": { - "anonymousId": "59f2911c-f050-497d-9f80-e1696a3c56aa", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.9" - }, - "campaign": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.9" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/rudder-sdk-js/tests/html/script-test.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost:4321/rudder-sdk-js/tests/html/script-test.html" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" - }, - "event": "eventWithoutProperties", - "integrations": { - "All": true - }, - "messageId": "045f5107-6036-4557-ae17-6ddf5ee57eb6", - "originalTimestamp": "2021-01-04T08:33:07.004Z", - "properties": {}, - "receivedAt": "2021-01-04T14:03:07.009+05:30", - "request_ip": "[::1]", - "rudderId": "9b6b8204-292c-493b-9c08-2c3ec0ade688", - "sentAt": "2021-01-04T08:33:07.005Z", - "timestamp": "2021-01-04T14:03:07.008+05:30", - "type": "track", - "userId": "sampleId" - }, - "destination": { - "Config": { - "accountId": "86086", - "useNativeSDK": false - } - } - }, - { - "message": { - "anonymousId": "59f2911c-f050-497d-9f80-e1696a3c56aa", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.9" - }, - "campaign": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.9" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/rudder-sdk-js/tests/html/script-test.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost:4321/rudder-sdk-js/tests/html/script-test.html" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" - }, - "event": "eventWithProperties", - "integrations": { - "All": true - }, - "messageId": "4b99c45d-8591-473c-b79d-abd466f6f4d5", - "originalTimestamp": "2021-01-04T08:33:07.006Z", - "properties": { - "category": "blah" - }, - "receivedAt": "2021-01-04T14:03:07.026+05:30", - "request_ip": "[::1]", - "rudderId": "9b6b8204-292c-493b-9c08-2c3ec0ade688", - "sentAt": "2021-01-04T08:33:07.006Z", - "timestamp": "2021-01-04T14:03:07.026+05:30", - "type": "track", - "userId": "sampleId" - }, - "destination": { - "Config": { - "accountId": "86086", - "useNativeSDK": false - } - } - }, - { - "message": { - "anonymousId": "a4a6304a-df41-4ca9-b2b7-4b0009dfddaa", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.9" - }, - "campaign": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.9" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/rudder-sdk-js/tests/html/script-test.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost:4321/rudder-sdk-js/tests/html/script-test.html" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "75a9e08b-955a-4dc7-8a39-3f6fba9d7497", - "originalTimestamp": "2021-01-04T08:43:05.783Z", - "properties": { - "path": "/rudder-sdk-js/tests/html/script-test.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost:4321/rudder-sdk-js/tests/html/script-test.html" - }, - "receivedAt": "2021-01-04T14:13:05.800+05:30", - "request_ip": "[::1]", - "rudderId": "2d03081c-8053-4cce-9abf-bb024f747900", - "sentAt": "2021-01-04T08:43:05.783Z", - "timestamp": "2021-01-04T14:13:05.799+05:30", - "type": "page", - "userId": "sampleId" - }, - "destination": { - "Config": { - "accountId": "86086", - "useNativeSDK": false - } - } - }, - { - "message": { - "anonymousId": "a4a6304a-df41-4ca9-b2b7-4b0009dfddaa", - "category": "page category", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.9" - }, - "campaign": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.9" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/testing", - "referrer": "", - "search": "", - "title": "", - "url": "https://pagecall.com/testing" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "397fdf96-daee-46c8-ac38-5d717cd8cabd", - "name": "page name", - "originalTimestamp": "2021-01-04T08:43:05.784Z", - "properties": { - "category": "page category", - "name": "page name", - "path": "/testing", - "referrer": "", - "search": "", - "title": "", - "url": "https://pagecall.com/testing" - }, - "receivedAt": "2021-01-04T14:13:05.801+05:30", - "request_ip": "[::1]", - "rudderId": "2d03081c-8053-4cce-9abf-bb024f747900", - "sentAt": "2021-01-04T08:43:05.784Z", - "timestamp": "2021-01-04T14:13:05.801+05:30", - "type": "page", - "userId": "sampleId" - }, - "destination": { - "Config": { - "accountId": "86086", - "useNativeSDK": false - } - } - }, - { - "message": { - "anonymousId": "a4a6304a-df41-4ca9-b2b7-4b0009dfddaa", - "category": "page category", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.9" - }, - "campaign": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.9" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/testing", - "referrer": "", - "search": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "397fdf96-daee-46c8-ac38-5d717cd8cabd", - "name": "page name", - "originalTimestamp": "2021-01-04T08:43:05.784Z", - "properties": { - "category": "page category", - "name": "page name", - "path": "/testing", - "referrer": "", - "search": "", - "title": "properties title", - "url": "https://pagecall.com/properties_url" - }, - "receivedAt": "2021-01-04T14:13:05.801+05:30", - "request_ip": "[::1]", - "rudderId": "2d03081c-8053-4cce-9abf-bb024f747900", - "sentAt": "2021-01-04T08:43:05.784Z", - "timestamp": "2021-01-04T14:13:05.801+05:30", - "type": "page", - "userId": "sampleId" - }, - "destination": { - "Config": { - "accountId": "86086", - "useNativeSDK": false - } - } - }, - { - "message": { - "anonymousId": "a4a6304a-df41-4ca9-b2b7-4b0009dfddaa", - "category": "page category", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.9" - }, - "campaign": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.9" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/testing", - "referrer": "", - "search": "", - "title": "context title", - "url": "https://pagecall.com/context_url" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "397fdf96-daee-46c8-ac38-5d717cd8cabd", - "name": "page name", - "originalTimestamp": "2021-01-04T08:43:05.784Z", - "properties": { - "category": "page category", - "name": "page name", - "path": "/testing", - "referrer": "", - "search": "" - }, - "receivedAt": "2021-01-04T14:13:05.801+05:30", - "request_ip": "[::1]", - "rudderId": "2d03081c-8053-4cce-9abf-bb024f747900", - "sentAt": "2021-01-04T08:43:05.784Z", - "timestamp": "2021-01-04T14:13:05.801+05:30", - "type": "page", - "userId": "sampleId" - }, - "destination": { - "Config": { - "accountId": "86086", - "useNativeSDK": false - } - } - }, - { - "message": { - "anonymousId": "5094f5704b9cf2b3", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AppcuesIntegration", - "namespace": "com.Appcues", - "version": "1.0" - }, - "device": { - "id": "5094f5704b9cf2b3", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.1-beta.1" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "8.1.0" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5094f5704b9cf2b3" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)" - }, - "event": "MainActivity", - "integrations": { - "All": true - }, - "messageId": "id1", - "properties": { - "name": "MainActivity", - "automatic": true - }, - "originalTimestamp": "2020-03-12T09:05:03.421Z", - "type": "screen", - "userId": "sampleId", - "sentAt": "2020-03-12T09:05:13.042Z" - }, - "destination": { - "Config": { - "accountId": "86086", - "useNativeSDK": false - } - } - }, - { - "message": { - "anonymousId": "5094f5704b9cf2b3", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AppcuesIntegration", - "namespace": "com.Appcues", - "version": "1.0" - }, - "device": { - "id": "5094f5704b9cf2b3", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.1-beta.1" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "8.1.0" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5094f5704b9cf2b3" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)" - }, - "event": "MainActivity", - "integrations": { - "All": true - }, - "messageId": "id1", - "properties": { - "name": "MainActivity", - "automatic": true - }, - "originalTimestamp": "2020-03-12T09:05:03.421Z", - "type": "screen", - "sentAt": "2020-03-12T09:05:13.042Z" - }, - "destination": { - "Config": { - "accountId": "86086", - "useNativeSDK": false - } - } - }, - { - "message": { - "anonymousId": "5094f5704b9cf2b3", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AppcuesIntegration", - "namespace": "com.Appcues", - "version": "1.0" - }, - "device": { - "id": "5094f5704b9cf2b3", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.1-beta.1" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "8.1.0" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5094f5704b9cf2b3" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)" - }, - "event": "MainActivity", - "integrations": { - "All": true - }, - "messageId": "id1", - "properties": { - "name": "MainActivity", - "automatic": true - }, - "originalTimestamp": "2020-03-12T09:05:03.421Z", - "type": "", - "userId": "sampleId", - "sentAt": "2020-03-12T09:05:13.042Z" - }, - "destination": { - "Config": { - "accountId": "86086", - "useNativeSDK": false - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.1.5" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { "name": "", "version": "" }, - "screen": { "density": 0.8999999761581421 }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/html/sajal.html", - "referrer": "", - "search": "?utm_source=google&utm_medium=medium&utm_term=keyword&utm_content=some%20content&utm_campaign=some%20campaign&utm_test=other%20value", - "title": "", - "url": "http://localhost:9116/html/sajal.html?utm_source=google&utm_medium=medium&utm_term=keyword&utm_content=some%20content&utm_campaign=some%20campaign&utm_test=other%20value" - } - }, - "type": "group", - "messageId": "e5034df0-a404-47b4-a463-76df99934fea", - "originalTimestamp": "2020-10-20T07:54:58.983Z", - "anonymousId": "my-anonymous-id-new", - "userId": "sampleusrRudder3", - "integrations": { "All": true }, - "groupId": "Sample_groupId23", - "traits": { - "KEY_3": { "CHILD_KEY_92": "value_95", "CHILD_KEY_102": "value_103" }, - "KEY_2": { "CHILD_KEY_92": "value_95", "CHILD_KEY_102": "value_103" }, - "name_trait": "Company", - "value_trait": "Comapny-ABC" - }, - "sentAt": "2020-10-20T07:54:58.983Z" - }, - "destination": { - "Config": { - "accountId": "86086", - "useNativeSDK": false - } - } - } -] diff --git a/test/__tests__/data/appcues_output.json b/test/__tests__/data/appcues_output.json deleted file mode 100644 index c8356726a2f..00000000000 --- a/test/__tests__/data/appcues_output.json +++ /dev/null @@ -1,320 +0,0 @@ -[ - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "request_id": "6a5f38c0-4e75-4268-a066-2b73fbcad01f", - "profile_update": {} - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.appcues.com/v1/accounts/86086/users/onlyUserId/activity" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "request_id": "57494c6a-3c62-4b30-83aa-6e821d37ac75", - "profile_update": { - "last name": "Abraham", - "first name": "John" - } - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.appcues.com/v1/accounts/86086/users/userIdWithProperties/activity" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "events": [ - { - "name": "eventWithoutProperties", - "timestamp": 1609749187, - "attributes": {} - } - ], - "request_id": "045f5107-6036-4557-ae17-6ddf5ee57eb6" - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.appcues.com/v1/accounts/86086/users/sampleId/activity" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "events": [ - { - "name": "eventWithProperties", - "timestamp": 1609749187, - "attributes": { - "category": "blah" - } - } - ], - "request_id": "4b99c45d-8591-473c-b79d-abd466f6f4d5" - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.appcues.com/v1/accounts/86086/users/sampleId/activity" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "events": [ - { - "name": "Visited a Page", - "context": { - "url": "http://localhost:4321/rudder-sdk-js/tests/html/script-test.html" - }, - "timestamp": 1609749785, - "attributes": { - "url": "http://localhost:4321/rudder-sdk-js/tests/html/script-test.html", - "path": "/rudder-sdk-js/tests/html/script-test.html", - "_identity": { - "userId": "sampleId" - } - } - } - ], - "request_id": "75a9e08b-955a-4dc7-8a39-3f6fba9d7497", - "profile_update": { - "_appcuesId": "86086", - "_updatedAt": "2021-01-04T14:13:05.799+05:30", - "_userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36", - "_currentPageUrl": "http://localhost:4321/rudder-sdk-js/tests/html/script-test.html", - "_lastBrowserLanguage": "en-GB", - "userId": "sampleId" - } - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.appcues.com/v1/accounts/86086/users/sampleId/activity" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "events": [ - { - "name": "Visited a Page", - "context": { - "url": "https://pagecall.com/testing" - }, - "timestamp": 1609749785, - "attributes": { - "url": "https://pagecall.com/testing", - "name": "page name", - "path": "/testing", - "category": "page category", - "_identity": { - "userId": "sampleId" - } - } - } - ], - "request_id": "397fdf96-daee-46c8-ac38-5d717cd8cabd", - "profile_update": { - "_appcuesId": "86086", - "_updatedAt": "2021-01-04T14:13:05.801+05:30", - "_userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36", - "_currentPageUrl": "https://pagecall.com/testing", - "_lastBrowserLanguage": "en-GB", - "userId": "sampleId" - } - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.appcues.com/v1/accounts/86086/users/sampleId/activity" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.appcues.com/v1/accounts/86086/users/sampleId/activity", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "request_id": "397fdf96-daee-46c8-ac38-5d717cd8cabd", - "profile_update": { - "userId": "sampleId", - "_lastBrowserLanguage": "en-GB", - "_updatedAt": "2021-01-04T14:13:05.801+05:30", - "_userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36", - "_currentPageTitle": "properties title", - "_currentPageUrl": "https://pagecall.com/properties_url", - "_appcuesId": "86086" - }, - "events": [ - { - "timestamp": 1609749785, - "attributes": { - "category": "page category", - "name": "page name", - "path": "/testing", - "title": "properties title", - "url": "https://pagecall.com/properties_url", - "_identity": { - "userId": "sampleId" - } - }, - "name": "Visited a Page", - "context": { - "url": "https://pagecall.com/properties_url" - } - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.appcues.com/v1/accounts/86086/users/sampleId/activity", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "request_id": "397fdf96-daee-46c8-ac38-5d717cd8cabd", - "profile_update": { - "userId": "sampleId", - "_lastBrowserLanguage": "en-GB", - "_updatedAt": "2021-01-04T14:13:05.801+05:30", - "_userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36", - "_currentPageTitle": "context title", - "_currentPageUrl": "https://pagecall.com/context_url", - "_appcuesId": "86086" - }, - "events": [ - { - "timestamp": 1609749785, - "attributes": { - "category": "page category", - "name": "page name", - "path": "/testing", - "_identity": { - "userId": "sampleId" - } - }, - "name": "Visited a Page", - "context": { - "url": "https://pagecall.com/context_url" - } - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.appcues.com/v1/accounts/86086/users/sampleId/activity", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "request_id": "id1", - "events": [ - { - "name": "Viewed a Screen", - "timestamp": 1584003903, - "attributes": { - "name": "MainActivity", - "automatic": true - } - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "statusCode": 400, - "error": "User id is absent. Aborting event as userId is mandatory for Appcues" - }, - { - "statusCode": 400, - "error": "Message Type is not present. Aborting message." - }, - { - "statusCode": 400, - "error": "Message type is not supported" - } -] diff --git a/test/__tests__/data/appcues_router_input.json b/test/__tests__/data/appcues_router_input.json deleted file mode 100644 index 26413458634..00000000000 --- a/test/__tests__/data/appcues_router_input.json +++ /dev/null @@ -1,119 +0,0 @@ -[ - { - "message": { - "anonymousId": "33787665-4168-4acc-8df7-17ba79325332", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.9" - }, - "campaign": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.9" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/rudder-sdk-js/tests/html/script-test.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost:4321/rudder-sdk-js/tests/html/script-test.html" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "6a5f38c0-4e75-4268-a066-2b73fbcad01f", - "originalTimestamp": "2021-01-04T08:25:04.780Z", - "receivedAt": "2021-01-04T13:55:04.799+05:30", - "request_ip": "[::1]", - "rudderId": "79881a62-980a-4d76-89ca-7099440f8c13", - "sentAt": "2021-01-04T08:25:04.781Z", - "timestamp": "2021-01-04T13:55:04.798+05:30", - "type": "identify", - "userId": "onlyUserId" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "accountId": "86086", - "useNativeSDK": false - } - } - }, - { - "message": { - "anonymousId": "33787665-4168-4acc-8df7-17ba79325332", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.9" - }, - "campaign": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.9" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/rudder-sdk-js/tests/html/script-test.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost:4321/rudder-sdk-js/tests/html/script-test.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "first name": "John", - "last name": "Abraham" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "57494c6a-3c62-4b30-83aa-6e821d37ac75", - "originalTimestamp": "2021-01-04T08:25:04.786Z", - "receivedAt": "2021-01-04T13:55:04.799+05:30", - "request_ip": "[::1]", - "rudderId": "ed2ed08a-3cd9-4b2c-9b04-7e3d3501fab7", - "sentAt": "2021-01-04T08:25:04.787Z", - "timestamp": "2021-01-04T13:55:04.798+05:30", - "type": "identify", - "userId": "userIdWithProperties" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "accountId": "86086", - "useNativeSDK": false - } - } - } -] diff --git a/test/__tests__/data/appcues_router_output.json b/test/__tests__/data/appcues_router_output.json deleted file mode 100644 index 3b78f9ae5f4..00000000000 --- a/test/__tests__/data/appcues_router_output.json +++ /dev/null @@ -1,75 +0,0 @@ -[ - { - "batchedRequest": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "request_id": "6a5f38c0-4e75-4268-a066-2b73fbcad01f", - "profile_update": {} - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.appcues.com/v1/accounts/86086/users/onlyUserId/activity" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "accountId": "86086", - "useNativeSDK": false - } - } - }, - { - "batchedRequest": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "request_id": "57494c6a-3c62-4b30-83aa-6e821d37ac75", - "profile_update": { - "last name": "Abraham", - "first name": "John" - } - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.appcues.com/v1/accounts/86086/users/userIdWithProperties/activity" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "accountId": "86086", - "useNativeSDK": false - } - } - } -] diff --git a/test/__tests__/data/attentive_tag_input.json b/test/__tests__/data/attentive_tag_input.json deleted file mode 100644 index 3617e7489aa..00000000000 --- a/test/__tests__/data/attentive_tag_input.json +++ /dev/null @@ -1,1062 +0,0 @@ -[ - { - "message": { - "anonymousId": "4eb021e9-a2af-4926-ae82-fe996d12f3c5", - "channel": "web", - "context": { - "locale": "en-GB", - "traits": { - "email": "alex13@gmail.com", - "phone": "+16405273911", - "customIdentifiers": [ - { - "name": "string", - "value": "string" - } - ] - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "e108eb05-f6cd-4624-ba8c-568f2e2b3f92", - "receivedAt": "2019-10-14T09:03:17.562Z", - "type": "identify" - }, - "destination": { - "Config": { - "apiKey": "d1cwZXF1eVZicnpPeGJ6M0JOTXFxTVN2QkdpWTJ3NENp", - "signUpSourceId": "241654" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderlabs.com", - "phone": "+16465053911" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "clientUserId", - "id": "144" - }, - { - "type": "shopifyId", - "id": "224" - }, - { - "type": "klaviyoId", - "id": "132" - } - ] - }, - "type": "track", - "properties": { - "price": "12", - "currency": "USD", - "product,id": "r494", - "quantity": "34", - "variant": "f" - }, - "event": "Order Shipped", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:17.562Z" - }, - "destination": { - "Config": { - "apiKey": "t1yurrb968zk", - "signUpSourceId": "240654" - } - } - }, - { - "message": { - "anonymousId": "4eb021e9-a2af-4926-ae82-fe996d12f3c5", - "channel": "web", - "context": { - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "traits": { - "company": { - "id": "abc123" - }, - "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "phone": "+16465453911" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" - }, - "integrations": { - "All": true, - "attentive_tag": { - "signUpSourceId": "241654", - "identifyOperation": "unsubscribe" - } - }, - "messageId": "e108eb05-f6cd-4624-ba8c-568f2e2b3f92", - "receivedAt": "2020-10-16T13:56:14.945+05:30", - "type": "identify" - }, - "destination": { - "Config": { - "apiKey": "d1cwZXF1eVZicnpPeGJ6M0JOTXFxTVN2QkdpWTJ3NENp", - "signUpSourceId": "241654" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "clientUserId", - "id": "144" - }, - { - "type": "shopifyId", - "id": "143" - }, - { - "type": "klaviyoId", - "id": "142" - } - ] - }, - "type": "track", - "properties": { - "price": "12", - "currency": "USD", - "product_id": "r494", - "quantity": "34", - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "name": "MOBILE", - "variant": "green", - "price": "19", - "quantity": "2", - "currency": "USD" - } - ] - }, - "event": "Order Completed", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "t1yurrb968zk", - "signUpSourceId": "240654" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderlabs.com", - "phone": "+16465053911" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "clientUserId", - "id": 1 - }, - { - "type": "shopifyId", - "id": 1 - }, - { - "type": "klaviyoId", - "id": 1 - } - ] - }, - "type": "track", - "properties": { - "price": "12", - "currency": "USD", - "product_id": "r494", - "quantity": "34", - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "name": "MOBILE", - "variant": "green", - "price": "19", - "quantity": "2", - "currency": "USD" - } - ] - }, - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "t1yurrb968zk", - "signUpSourceId": "240654" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderlabs.com", - "phone": "+16465053911" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "clientUserId", - "id": "144" - }, - { - "type": "shopifyId", - "id": "143" - }, - { - "type": "klaviyoId", - "id": "142" - } - ] - }, - "type": "track", - "properties": { - "price": "12", - "currency": "USD", - "product_id": "r494", - "quantity": "34", - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "name": "MOBILE", - "variant": "green", - "price": "19", - "quantity": "2", - "currency": "USD" - } - ] - }, - "event": "Product List Viewed", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "t1yurrb968zk", - "signUpSourceId": "240654" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderlabs.com", - "phone": "+16465053911" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "clientUserId", - "id": "144" - }, - { - "type": "shopifyId", - "id": "143" - }, - { - "type": "klaviyoId", - "id": "142" - } - ] - }, - "type": "track", - "properties": { - "price": "12", - "currency": "USD", - "product_id": "r494", - "quantity": "34", - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "name": "MOBILE", - "variant": "green", - "price": "19", - "quantity": "2", - "currency": "USD" - } - ] - }, - "event": "Product Viewed", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "t1yurrb968zk", - "signUpSourceId": "240654" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderlabs.com", - "phone": "+16465053911" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "clientUserId", - "id": "144" - }, - { - "type": "shopifyId", - "id": "224" - }, - { - "type": "klaviyoId", - "id": "132" - } - ] - }, - "type": "track", - "properties": { - "price": "12", - "currency": "USD", - "product_id": "r494", - "quantity": "34" - }, - "event": "Order Shipped", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "t1yurrb968zk", - "signUpSourceId": "240654" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderlabs.com", - "phone": "+16465053911" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "clientUserId", - "id": 1 - }, - { - "type": "shopifyId", - "id": 1 - }, - { - "type": "klaviyoId", - "id": 1 - } - ] - }, - "properties": { - "price": "12", - "currency": "USD", - "product_id": "r494", - "quantity": "34", - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "name": "MOBILE", - "variant": "green", - "price": "19", - "quantity": "2", - "currency": "USD" - } - ] - }, - "event": "Order Completed", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "t1yurrb968zk", - "signUpSourceId": "240654" - } - } - }, - { - "message": { - "anonymousId": "4eb021e9-a2af-4926-ae82-fe996d12f3c5", - "channel": "web", - "context": { - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "traits": { - "company": { - "id": "abc123" - }, - "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "test0@gmail.com", - "phone": "+16465453911" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" - }, - "integrations": { - "All": true, - "attentive_tag": { - "signUpSourceId": "241654", - "identifyOperation": "subscribe" - } - }, - "messageId": "e108eb05-f6cd-4624-ba8c-568f2e2b3f92", - "receivedAt": "2020-10-16T13:56:14.945+05:30", - "type": "identify" - }, - "destination": { - "Config": { - "apiKey": "d1cwZXF1eVZicnpPeGJ6M0JOTXFxTVN2QkdpWTJ3NENp", - "signUpSourceId": "241654" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "clientUserId", - "id": "144" - }, - { - "type": "shopifyId", - "id": "143" - }, - { - "type": "klaviyoId", - "id": "142" - } - ] - }, - "type": "track", - "properties": { - "price": "12", - "currency": "USD", - "product_id": "r494", - "quantity": "34", - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "name": "MOBILE", - "variant": "green", - "price": "19", - "quantity": "2", - "currency": "USD" - } - ] - }, - "event": "Product Viewed", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "t1yurrb968zk", - "signUpSourceId": "240654" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderlabs.com", - "phone": "+16465053911" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "clientUserId", - "id": "144" - }, - { - "type": "shopifyId", - "id": "143" - }, - { - "type": "klaviyoId", - "id": "142" - } - ] - }, - "type": "track", - "properties": { - "price": "12", - "currency": "USD", - "product_id": "r494", - "quantity": "34", - "products": [ - { - "name": "MOBILE", - "variant": "green", - "price": "19", - "quantity": "2", - "currency": "USD" - } - ] - }, - "event": "Product Viewed", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "t1yurrb968zk", - "signUpSourceId": "240654" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderlabs.com", - "phone": "+16465053911" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "clientUserId", - "id": "144" - }, - { - "type": "shopifyId", - "id": "143" - }, - { - "type": "klaviyoId", - "id": "142" - } - ] - }, - "type": "track", - "properties": { - "price": "12", - "currency": "USD", - "product_id": "r494", - "quantity": "34", - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "name": "MOBILE", - "price": "19", - "quantity": "2", - "currency": "USD" - } - ] - }, - "event": "Product Viewed", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "t1yurrb968zk", - "signUpSourceId": "240654" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "test@rudderlabs.com", - "phone": "+16465053911" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "clientUserId", - "id": "144" - }, - { - "type": "shopifyId", - "id": "143" - }, - { - "type": "klaviyoId", - "id": "142" - } - ] - }, - "type": "track", - "properties": { - "price": "12", - "curre,ncy": "USD", - "product_id": "r494", - "quantity": "34", - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "name": "MOBILE", - "variant": "green", - "price": "19", - "quantity": "2", - "currency": "USD" - } - ] - }, - "event": "Order Shipped", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "t1yurrb968zk", - "signUpSourceId": "240654" - } - } - }, - { - "message": { - "anonymousId": "4eb021e9-a2af-4926-ae82-fe996d12f3c5", - "channel": "web", - "context": { - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "traits": { - "company": { - "id": "abc123" - }, - "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "test0@gmail.com", - "phone": "+16465453911" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" - }, - "integrations": { - "All": true, - "attentive_tag": { - "signUpSourceId": "241654" - } - }, - "messageId": "e108eb05-f6cd-4624-ba8c-568f2e2b3f92", - "receivedAt": "2020-10-16T13:56:14.945+05:30", - "type": "identify" - }, - "destination": { - "Config": { - "apiKey": "d1cwZXF1eVZicnpPeGJ6M0JOTXFxTVN2QkdpWTJ3NENp", - "signUpSourceId": "241654" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "properties": { - "price": "12", - "currency": "USD", - "product_id": "r494", - "quantity": "34", - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "name": "MOBILE", - "variant": "green", - "price": "19", - "quantity": "2", - "currency": "USD" - } - ] - }, - "event": "Product Viewed", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "t1yurrb968zk", - "signUpSourceId": "240654" - } - } - } -] diff --git a/test/__tests__/data/attentive_tag_output.json b/test/__tests__/data/attentive_tag_output.json deleted file mode 100644 index 52ebe42e8f7..00000000000 --- a/test/__tests__/data/attentive_tag_output.json +++ /dev/null @@ -1,368 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.attentivemobile.com/v1/subscriptions", - "headers": { - "Authorization": "Bearer d1cwZXF1eVZicnpPeGJ6M0JOTXFxTVN2QkdpWTJ3NENp", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user": { - "phone": "+16405273911", - "email": "alex13@gmail.com" - }, - "signUpSourceId": "241654", - "externalIdentifiers": { - "customIdentifiers": [ - { - "name": "string", - "value": "string" - } - ] - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "statusCode": 400, - "error": "[Attentive Tag]:The event name contains characters which is not allowed" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.attentivemobile.com/v1/subscriptions/unsubscribe", - "headers": { - "Authorization": "Bearer d1cwZXF1eVZicnpPeGJ6M0JOTXFxTVN2QkdpWTJ3NENp", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user": { - "phone": "+16465453911" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.attentivemobile.com/v1/events/ecommerce/purchase", - "headers": { - "Authorization": "Bearer t1yurrb968zk", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user": { - "email": "test@rudderlabs.com", - "externalIdentifiers": { - "clientUserId": "144", - "shopifyId": "143", - "klaviyoId": "142" - } - }, - "occuredAt": "2019-10-14T09:03:17.562Z", - "items": [ - { - "productId": "507f1f77bcf86cd799439011", - "name": "MOBILE", - "productVariantId": "green", - "quantity": "2", - "price": [ - { - "value": 19, - "currency": "USD" - } - ] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "statusCode": 400, - "error": "[Attentive Tag] :: Event name is not present" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.attentivemobile.com/v1/events/ecommerce/product-view", - "headers": { - "Authorization": "Bearer t1yurrb968zk", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user": { - "phone": "+16465053911", - "email": "test@rudderlabs.com", - "externalIdentifiers": { - "clientUserId": "144", - "shopifyId": "143", - "klaviyoId": "142" - } - }, - "occuredAt": "2019-10-14T09:03:17.562Z", - "items": [ - { - "productId": "507f1f77bcf86cd799439011", - "name": "MOBILE", - "productVariantId": "green", - "quantity": "2", - "price": [ - { - "value": 19, - "currency": "USD" - } - ] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.attentivemobile.com/v1/events/ecommerce/product-view", - "headers": { - "Authorization": "Bearer t1yurrb968zk", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user": { - "phone": "+16465053911", - "email": "test@rudderlabs.com", - "externalIdentifiers": { - "clientUserId": "144", - "shopifyId": "143", - "klaviyoId": "142" - } - }, - "occuredAt": "2019-10-14T09:03:17.562Z", - "items": [ - { - "productId": "507f1f77bcf86cd799439011", - "name": "MOBILE", - "productVariantId": "green", - "quantity": "2", - "price": [ - { - "value": 19, - "currency": "USD" - } - ] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.attentivemobile.com/v1/events/custom", - "headers": { - "Authorization": "Bearer t1yurrb968zk", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user": { - "phone": "+16465053911", - "email": "test@rudderlabs.com", - "externalIdentifiers": { - "clientUserId": "144", - "shopifyId": "224", - "klaviyoId": "132" - } - }, - "occuredAt": "2019-10-14T09:03:17.562Z", - "properties": { - "price": "12", - "currency": "USD", - "product_id": "r494", - "quantity": "34" - }, - "type": "Order Shipped" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "statusCode": 400, - "error": "Message Type is not present. Aborting message." - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.attentivemobile.com/v1/subscriptions", - "headers": { - "Authorization": "Bearer d1cwZXF1eVZicnpPeGJ6M0JOTXFxTVN2QkdpWTJ3NENp", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user": { - "phone": "+16465453911", - "email": "test0@gmail.com" - }, - "signUpSourceId": "241654" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.attentivemobile.com/v1/events/ecommerce/product-view", - "headers": { - "Authorization": "Bearer t1yurrb968zk", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user": { - "externalIdentifiers": { - "clientUserId": "144", - "shopifyId": "143", - "klaviyoId": "142" - } - }, - "occuredAt": "2019-10-14T09:03:17.562Z", - "items": [ - { - "productId": "507f1f77bcf86cd799439011", - "name": "MOBILE", - "productVariantId": "green", - "quantity": "2", - "price": [ - { - "value": 19, - "currency": "USD" - } - ] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "statusCode": 400, - "error": "Missing required value from \"product_id\"" - }, - { - "statusCode": 400, - "error": "Missing required value from \"variant\"" - }, - { - "statusCode": 400, - "error": "[Attentive Tag]:The event name contains characters which is not allowed" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.attentivemobile.com/v1/subscriptions", - "headers": { - "Authorization": "Bearer d1cwZXF1eVZicnpPeGJ6M0JOTXFxTVN2QkdpWTJ3NENp", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user": { - "phone": "+16465453911", - "email": "test0@gmail.com" - }, - "signUpSourceId": "241654" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.attentivemobile.com/v1/events/ecommerce/product-view", - "headers": { - "Authorization": "Bearer t1yurrb968zk", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user": {}, - "occuredAt": "2019-10-14T09:03:17.562Z", - "items": [ - { - "productId": "507f1f77bcf86cd799439011", - "name": "MOBILE", - "productVariantId": "green", - "quantity": "2", - "price": [ - { - "value": 19, - "currency": "USD" - } - ] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } -] diff --git a/test/__tests__/data/attentive_tag_router_input.json b/test/__tests__/data/attentive_tag_router_input.json deleted file mode 100644 index 3ac3b904ab8..00000000000 --- a/test/__tests__/data/attentive_tag_router_input.json +++ /dev/null @@ -1,57 +0,0 @@ -[ - { - "destination": { - "Config": { - "apiKey": "d1cwZXF1eVZicnpPeGJ6M0JOTXFxTVN2QkdpWTJ3NENp", - "signUpSourceId": "241654" - } - }, - "metadata": { - "jobId": 1 - }, - "message": { - "anonymousId": "4eb021e9-a2af-4926-ae82-fe996d12f3c5", - "channel": "web", - "context": { - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "traits": { - "company": { - "id": "abc123" - }, - "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "test0@gmail.com", - "phone": "+16465453911" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36", - "externalId": [ - { - "type": "clientUsrId", - "id": 1 - }, - { - "type": "shopifyId", - "id": 1 - }, - { - "type": "klaviyoId", - "id": 1 - } - ] - }, - "integrations": { - "All": true, - "attentive_tag": { - "signUpSourceId": "241654", - "identifyOperation": "unsubscribe" - } - }, - "messageId": "e108eb05-f6cd-4624-ba8c-568f2e2b3f92", - "receivedAt": "2020-10-16T13:56:14.945+05:30", - "type": "identify" - } - } -] diff --git a/test/__tests__/data/attentive_tag_router_output.json b/test/__tests__/data/attentive_tag_router_output.json deleted file mode 100644 index 12878abc95e..00000000000 --- a/test/__tests__/data/attentive_tag_router_output.json +++ /dev/null @@ -1,40 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.attentivemobile.com/v1/subscriptions/unsubscribe", - "headers": { - "Authorization": "Bearer d1cwZXF1eVZicnpPeGJ6M0JOTXFxTVN2QkdpWTJ3NENp", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user": { - "phone": "+16465453911", - "email": "test0@gmail.com" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "d1cwZXF1eVZicnpPeGJ6M0JOTXFxTVN2QkdpWTJ3NENp", - "signUpSourceId": "241654" - } - } - } -] diff --git a/test/__tests__/data/auth0_source.json b/test/__tests__/data/auth0_source.json index 95ab797abb5..d47d7e0180a 100644 --- a/test/__tests__/data/auth0_source.json +++ b/test/__tests__/data/auth0_source.json @@ -16,15 +16,15 @@ "user_agent": "unknown", "details": { "body": { - "email": "bhalalamark+21@gmail.com", + "email": "testRudderlabs+21@gmail.com", "tenant": "dev-cu4jy2zgao6yx15x", - "password": "*****", + "password": "dummyPassword", "client_id": "vQcJNDTxsM1W72eHFonRJdzyOvawlwIt", "connection": "Username-Password-Authentication" } }, - "user_id": "auth0|*****", - "user_name": "bhalalamark+21@gmail.com", + "user_id": "auth0|dummyPassword", + "user_name": "testRudderlabs+21@gmail.com", "strategy": "auth0", "strategy_type": "database", "log_id": "90020221031055712103169676686005480714681762668315934738" @@ -45,9 +45,9 @@ "ip": "35.166.202.113", "auth": { "user": { - "name": "Bhalala Mihir", - "email": "bhalalamark@gmail.com", - "user_id": "auth0|*****" + "name": "rudder test", + "email": "test@rudderstack.com", + "user_id": "auth0|dummyPassword" }, "strategy": "jwt", "credentials": { @@ -187,8 +187,8 @@ } }, "body": { - "email": "bhalalamark+21@gmail.com", - "password": "*****", + "email": "testRudderlabs+21@gmail.com", + "password": "dummyPassword", "connection": "Username-Password-Authentication" }, "path": "/api/v2/users", @@ -199,15 +199,15 @@ }, "response": { "body": { - "name": "bhalalamark+21@gmail.com", - "email": "bhalalamark+21@gmail.com", + "name": "testRudderlabs+21@gmail.com", + "email": "testRudderlabs+21@gmail.com", "picture": "https://s.gravatar.com/avatar/0902f9d02b92aed9f0ac59aaf9475b60?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Fbh.png", - "user_id": "auth0|*****", - "nickname": "bhalalamark+21", + "user_id": "auth0|dummyPassword", + "nickname": "testRudderlabs+21", "created_at": "2022-10-31T05:57:06.864Z", "identities": [ { - "user_id": "auth0|*****", + "user_id": "auth0|dummyPassword", "isSocial": false, "provider": "auth0", "connection": "Username-Password-Authentication" @@ -219,7 +219,7 @@ "statusCode": 201 } }, - "user_id": "auth0|*****", + "user_id": "auth0|dummyPassword", "log_id": "90020221031055712103169676686007898566320991926665347090" } } @@ -232,11 +232,11 @@ "connection": "Username-Password-Authentication", "connection_id": "con_djwCjiwyID0vZy1S" }, - "userId": "auth0|*****", + "userId": "auth0|dummyPassword", "context": { "traits": { - "userId": "auth0|*****", - "user_name": "bhalalamark+21@gmail.com" + "userId": "auth0|dummyPassword", + "user_name": "testRudderlabs+21@gmail.com" }, "library": { "name": "unknown", @@ -252,9 +252,9 @@ "log_id": "90020221031055712103169676686005480714681762668315934738", "details": { "body": { - "email": "bhalalamark+21@gmail.com", + "email": "testRudderlabs+21@gmail.com", "tenant": "dev-cu4jy2zgao6yx15x", - "password": "*****", + "password": "dummyPassword", "client_id": "vQcJNDTxsM1W72eHFonRJdzyOvawlwIt", "connection": "Username-Password-Authentication" } @@ -272,14 +272,14 @@ "type": "track", "event": "Success API Operation", "sentAt": "2022-10-31T05:57:06.874Z", - "userId": "auth0|*****", + "userId": "auth0|dummyPassword", "context": { "library": { "name": "unknown", "version": "unknown" }, "traits": { - "userId": "auth0|*****" + "userId": "auth0|dummyPassword" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36", "request_ip": "35.166.202.113", @@ -294,9 +294,9 @@ "ip": "35.166.202.113", "auth": { "user": { - "name": "Bhalala Mihir", - "email": "bhalalamark@gmail.com", - "user_id": "auth0|*****" + "name": "rudder test", + "email": "test@rudderstack.com", + "user_id": "auth0|dummyPassword" }, "strategy": "jwt", "credentials": { @@ -436,8 +436,8 @@ } }, "body": { - "email": "bhalalamark+21@gmail.com", - "password": "*****", + "email": "testRudderlabs+21@gmail.com", + "password": "dummyPassword", "connection": "Username-Password-Authentication" }, "path": "/api/v2/users", @@ -448,15 +448,15 @@ }, "response": { "body": { - "name": "bhalalamark+21@gmail.com", - "email": "bhalalamark+21@gmail.com", + "name": "testRudderlabs+21@gmail.com", + "email": "testRudderlabs+21@gmail.com", "picture": "https://s.gravatar.com/avatar/0902f9d02b92aed9f0ac59aaf9475b60?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Fbh.png", - "user_id": "auth0|*****", - "nickname": "bhalalamark+21", + "user_id": "auth0|dummyPassword", + "nickname": "testRudderlabs+21", "created_at": "2022-10-31T05:57:06.864Z", "identities": [ { - "user_id": "auth0|*****", + "user_id": "auth0|dummyPassword", "isSocial": false, "provider": "auth0", "connection": "Username-Password-Authentication" @@ -497,8 +497,8 @@ "ip": "35.167.74.121", "auth": { "user": { - "name": "Bhalala Mihir", - "email": "bhalalamark@gmail.com", + "name": "rudder test", + "email": "test@rudderstack.com", "user_id": "google-oauth2|123456" }, "strategy": "jwt", @@ -552,8 +552,8 @@ "ip": "35.167.74.121", "auth": { "user": { - "name": "Bhalala Mihir", - "email": "bhalalamark@gmail.com", + "name": "rudder test", + "email": "test@rudderstack.com", "user_id": "google-oauth2|123456" }, "strategy": "jwt", @@ -604,8 +604,8 @@ "ip": "35.160.3.103", "auth": { "user": { - "name": "Bhalala Mihir", - "email": "bhalalamark@gmail.com", + "name": "rudder test", + "email": "test@rudderstack.com", "user_id": "google-oauth2|123456" }, "strategy": "jwt", @@ -863,8 +863,8 @@ "ip": "35.160.3.103", "auth": { "user": { - "name": "Bhalala Mihir", - "email": "bhalalamark@gmail.com", + "name": "rudder test", + "email": "test@rudderstack.com", "user_id": "google-oauth2|123456" }, "strategy": "jwt", diff --git a/test/__tests__/data/autopilot_cdk_output.json b/test/__tests__/data/autopilot_cdk_output.json deleted file mode 100644 index ce81fe05c2e..00000000000 --- a/test/__tests__/data/autopilot_cdk_output.json +++ /dev/null @@ -1,108 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.autopilothq.com/v1/contact", - "headers": { - "autopilotapikey": "1d6583b196d34de28a3g19ahadde4b0z", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "contact": { - "Email": "testmp@rudderstack.com", - "FirstName": "Test Kafka", - "custom": { - "age": 23 - } - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.autopilothq.com/v1/trigger/00XX/contact/testmp@rudderstack.com", - "headers": { - "autopilotapikey": "1d6583b196d34de28a3g19ahadde4b0z", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "property": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd" - }, - { - "statusCode": 400, - "error": "message type page is not supported" - }, - { - "statusCode": 400, - "error": "Email is required for track calls" - }, - { - "statusCode": 400, - "error": "message Type is not present. Aborting message." - }, - { - "statusCode": 400, - "error": "message type group is not supported" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.autopilothq.com/v1/contact", - "headers": { - "autopilotapikey": "1d6583b196d34de28a3g19ahadde4b0z", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "contact": { - "Email": "abc@rudderstack.com", - "FirstName": "Anuraj" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd" - }, - { - "statusCode": 400, - "error": "message Type is not present. Aborting message." - }, - { - "statusCode": 400, - "error": "message type group is not supported" - }, - { - "statusCode": 400, - "error": "message type Tals is not supported" - } -] diff --git a/test/__tests__/data/autopilot_input.json b/test/__tests__/data/autopilot_input.json deleted file mode 100644 index 3bdd60ffa2a..00000000000 --- a/test/__tests__/data/autopilot_input.json +++ /dev/null @@ -1,796 +0,0 @@ -[ - { - "destination": { - "ID": "1afjtc6chkhdeKsXYrNFOzR5D9v", - "Name": "Autopilot", - "DestinationDefinition": { - "ID": "1afjX4MlAucK57Q0ctTVlD27Tvo", - "Name": "AUTOPILOT", - "DisplayName": "Autopilot", - "Config": { - "cdkEnabled": true, - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "apiKey": "1d6583b196d34de28a3g19ahadde4b0z", - "customMappings": [ - { - "from": "0001", - "to": "Signup" - } - ], - "triggerId": "00XX" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "fad9b3fb-5778-4db3-9fb6-7168b554191f", - "originalTimestamp": "2020-04-17T14:42:44.722Z", - "receivedAt": "2020-04-17T20:12:44.758+05:30", - "request_ip": "[::1]:53513", - "sentAt": "2020-04-17T14:42:44.722Z", - "traits": { - "age": 23, - "email": "testmp@rudderstack.com", - "firstname": "Test Kafka" - }, - "timestamp": "2020-04-17T20:12:44.758+05:30", - "type": "identify", - "userId": "user12345" - } - }, - { - "destination": { - "ID": "1afjtc6chkhdeKsXYrNFOzR5D9v", - "Name": "Autopilot", - "DestinationDefinition": { - "ID": "1afjX4MlAucK57Q0ctTVlD27Tvo", - "Name": "AUTOPILOT", - "DisplayName": "Autopilot", - "Config": { - "cdkEnabled": true, - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "apiKey": "1d6583b196d34de28a3g19ahadde4b0z", - "customMappings": [ - { - "from": "0001", - "to": "Signup" - } - ], - "triggerId": "00XX" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "testmp@rudderstack.com", - "firstname": "Test Kafka" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "event": "test track with property", - "integrations": { - "All": true - }, - "messageId": "37b75e61-9bd2-4fb8-91ed-e3a064905f3a", - "originalTimestamp": "2020-04-17T14:42:44.724Z", - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "receivedAt": "2020-04-17T20:12:44.758+05:30", - "request_ip": "[::1]:53512", - "sentAt": "2020-04-17T14:42:44.725Z", - "timestamp": "2020-04-17T20:12:44.757+05:30", - "type": "track", - "userId": "user12345" - } - }, - { - "destination": { - "ID": "1afjtc6chkhdeKsXYrNFOzR5D9v", - "Name": "Autopilot", - "DestinationDefinition": { - "ID": "1afjX4MlAucK57Q0ctTVlD27Tvo", - "Name": "AUTOPILOT", - "DisplayName": "Autopilot", - "Config": { - "cdkEnabled": true, - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "apiKey": "1d6583b196d34de28a3g19ahadde4b0z", - "customMappings": [ - { - "from": "0001", - "to": "Signup" - } - ], - "triggerId": "00XX" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "testmp@rudderstack.com", - "firstname": "Test Kafka" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "event": "test track with property", - "integrations": { - "All": true - }, - "messageId": "37b75e61-9bd2-4fb8-91ed-e3a064905f3a", - "originalTimestamp": "2020-04-17T14:42:44.724Z", - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "receivedAt": "2020-04-17T20:12:44.758+05:30", - "request_ip": "[::1]:53512", - "sentAt": "2020-04-17T14:42:44.725Z", - "timestamp": "2020-04-17T20:12:44.757+05:30", - "type": "page", - "userId": "user12345" - } - }, - { - "destination": { - "ID": "1afjtc6chkhdeKsXYrNFOzR5D9v", - "Name": "Autopilot", - "DestinationDefinition": { - "ID": "1afjX4MlAucK57Q0ctTVlD27Tvo", - "Name": "AUTOPILOT", - "DisplayName": "Autopilot", - "Config": { - "cdkEnabled": true, - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "apiKey": "1d6583b196d34de28a3g19ahadde4b0z", - "customMappings": [ - { - "from": "0001", - "to": "Signup" - } - ], - "triggerId": "00XX" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "firstname": "Test Kafka" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "event": "test track with property", - "integrations": { - "All": true - }, - "messageId": "37b75e61-9bd2-4fb8-91ed-e3a064905f3a", - "originalTimestamp": "2020-04-17T14:42:44.724Z", - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "receivedAt": "2020-04-17T20:12:44.758+05:30", - "request_ip": "[::1]:53512", - "sentAt": "2020-04-17T14:42:44.725Z", - "timestamp": "2020-04-17T20:12:44.757+05:30", - "type": "track", - "userId": "user12345" - } - }, - { - "destination": { - "ID": "1afjtc6chkhdeKsXYrNFOzR5D9v", - "Name": "Autopilot", - "DestinationDefinition": { - "ID": "1afjX4MlAucK57Q0ctTVlD27Tvo", - "Name": "AUTOPILOT", - "DisplayName": "Autopilot", - "Config": { - "cdkEnabled": true, - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "apiKey": "1d6583b196d34de28a3g19ahadde4b0z", - "customMappings": [ - { - "from": "0001", - "to": "Signup" - } - ], - "triggerId": "00XX" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "firstname": "Test Kafka" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "event": "test track with property", - "integrations": { - "All": true - }, - "messageId": "37b75e61-9bd2-4fb8-91ed-e3a064905f3a", - "originalTimestamp": "2020-04-17T14:42:44.724Z", - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "receivedAt": "2020-04-17T20:12:44.758+05:30", - "request_ip": "[::1]:53512", - "sentAt": "2020-04-17T14:42:44.725Z", - "timestamp": "2020-04-17T20:12:44.757+05:30", - "userId": "user12345" - } - }, - { - "destination": { - "ID": "1afjtc6chkhdeKsXYrNFOzR5D9v", - "Name": "Autopilot", - "DestinationDefinition": { - "ID": "1afjX4MlAucK57Q0ctTVlD27Tvo", - "Name": "AUTOPILOT", - "DisplayName": "Autopilot", - "Config": { - "cdkEnabled": true, - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "apiKey": "1d6583b196d34de28a3g19ahadde4b0z", - "customMappings": [ - { - "from": "0001", - "to": "Signup" - } - ], - "triggerId": "00XX" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "testmp@rudderstack.com", - "firstname": "Test Kafka" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "event": "test track with property", - "integrations": { - "All": true - }, - "messageId": "37b75e61-9bd2-4fb8-91ed-e3a064905f3a", - "originalTimestamp": "2020-04-17T14:42:44.724Z", - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "receivedAt": "2020-04-17T20:12:44.758+05:30", - "request_ip": "[::1]:53512", - "sentAt": "2020-04-17T14:42:44.725Z", - "timestamp": "2020-04-17T20:12:44.757+05:30", - "type": "group", - "userId": "user12345" - } - }, - { - "destination": { - "ID": "1afjtc6chkhdeKsXYrNFOzR5D9v", - "Name": "Autopilot", - "DestinationDefinition": { - "ID": "1afjX4MlAucK57Q0ctTVlD27Tvo", - "Name": "AUTOPILOT", - "DisplayName": "Autopilot", - "Config": { - "cdkEnabled": true, - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "apiKey": "1d6583b196d34de28a3g19ahadde4b0z", - "customMappings": [ - { - "from": "0001", - "to": "Signup" - } - ], - "triggerId": "00XX" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "abc@rudderstack.com", - "firstname": "Anuraj" - }, - - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "integrations": { - "All": true - }, - "originalTimestamp": "2020-04-17T14:42:44.722Z", - "receivedAt": "2020-04-17T20:12:44.758+05:30", - "request_ip": "[::1]:53513", - "sentAt": "2020-04-17T14:42:44.722Z", - "timestamp": "2020-04-17T20:12:44.758+05:30", - "type": "identify", - "userId": "user12345" - } - }, - { - "destination": { - "ID": "1afjtc6chkhdeKsXYrNFOzR5D9v", - "Name": "Autopilot", - "DestinationDefinition": { - "ID": "1afjX4MlAucK57Q0ctTVlD27Tvo", - "Name": "AUTOPILOT", - "DisplayName": "Autopilot", - "Config": { - "cdkEnabled": true, - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "apiKey": "1d6583b196d34de28a3g19ahadde4b0z", - "customMappings": [ - { - "from": "0001", - "to": "Signup" - } - ], - "triggerId": "00XX" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "testmp@rudderstack.com", - "firstname": "Test Kafka" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "event": "test track with property", - "integrations": { - "All": true - }, - "messageId": "37b75e61-9bd2-4fb8-91ed-e3a064905f3a", - "originalTimestamp": "2020-04-17T14:42:44.724Z", - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "receivedAt": "2020-04-17T20:12:44.758+05:30", - "request_ip": "[::1]:53512", - "sentAt": "2020-04-17T14:42:44.725Z", - "timestamp": "2020-04-17T20:12:44.757+05:30", - "userId": "user12345" - } - }, - { - "destination": { - "ID": "1afjtc6chkhdeKsXYrNFOzR5D9v", - "Name": "Autopilot", - "DestinationDefinition": { - "ID": "1afjX4MlAucK57Q0ctTVlD27Tvo", - "Name": "AUTOPILOT", - "DisplayName": "Autopilot", - "Config": { - "cdkEnabled": true, - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "apiKey": "1d6583b196d34de28a3g19ahadde4b0z", - "customMappings": [ - { - "from": "0001", - "to": "Signup" - } - ], - "triggerId": "00XX" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "abc@rudderstack.com", - "firstname": "Anuraj" - }, - - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "integrations": { - "All": true - }, - "originalTimestamp": "2020-04-17T14:42:44.722Z", - "receivedAt": "2020-04-17T20:12:44.758+05:30", - "request_ip": "[::1]:53513", - "sentAt": "2020-04-17T14:42:44.722Z", - "timestamp": "2020-04-17T20:12:44.758+05:30", - "type": "group", - "userId": "user12345" - } - }, - { - "destination": { - "ID": "1afjtc6chkhdeKsXYrNFOzR5D9v", - "Name": "Autopilot", - "DestinationDefinition": { - "ID": "1afjX4MlAucK57Q0ctTVlD27Tvo", - "Name": "AUTOPILOT", - "DisplayName": "Autopilot", - "Config": { - "cdkEnabled": true, - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "apiKey": "1d6583b196d34de28a3g19ahadde4b0z", - "customMappings": [ - { - "from": "0001", - "to": "Signup" - } - ], - "triggerId": "00XX" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "abc@rudderstack.com", - "firstname": "Anuraj" - }, - - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "integrations": { - "All": true - }, - "originalTimestamp": "2020-04-17T14:42:44.722Z", - "receivedAt": "2020-04-17T20:12:44.758+05:30", - "request_ip": "[::1]:53513", - "sentAt": "2020-04-17T14:42:44.722Z", - "timestamp": "2020-04-17T20:12:44.758+05:30", - "type": "Tals", - "userId": "user12345" - } - } -] diff --git a/test/__tests__/data/autopilot_output.json b/test/__tests__/data/autopilot_output.json deleted file mode 100644 index 7c224addac6..00000000000 --- a/test/__tests__/data/autopilot_output.json +++ /dev/null @@ -1,108 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.autopilothq.com/v1/contact", - "headers": { - "autopilotapikey": "1d6583b196d34de28a3g19ahadde4b0z", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "contact": { - "Email": "testmp@rudderstack.com", - "FirstName": "Test Kafka", - "custom": { - "age": 23 - } - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.autopilothq.com/v1/trigger/00XX/contact/testmp@rudderstack.com", - "headers": { - "autopilotapikey": "1d6583b196d34de28a3g19ahadde4b0z", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "property": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd" - }, - { - "statusCode": 400, - "error": "message type \"page\" not supported for \"autopilot\"" - }, - { - "statusCode": 400, - "error": "Email is required for track calls" - }, - { - "statusCode": 400, - "error": "\"type\" is a required field and it must be a string" - }, - { - "statusCode": 400, - "error": "message type \"group\" not supported for \"autopilot\"" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.autopilothq.com/v1/contact", - "headers": { - "autopilotapikey": "1d6583b196d34de28a3g19ahadde4b0z", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "contact": { - "Email": "abc@rudderstack.com", - "FirstName": "Anuraj" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd" - }, - { - "statusCode": 400, - "error": "\"type\" is a required field and it must be a string" - }, - { - "statusCode": 400, - "error": "message type \"group\" not supported for \"autopilot\"" - }, - { - "statusCode": 400, - "error": "message type \"Tals\" not supported for \"autopilot\"" - } -] diff --git a/test/__tests__/data/autopilot_router_input.json b/test/__tests__/data/autopilot_router_input.json deleted file mode 100644 index 3e2b2b05142..00000000000 --- a/test/__tests__/data/autopilot_router_input.json +++ /dev/null @@ -1,165 +0,0 @@ -[ - { - "destination": { - "ID": "1afjtc6chkhdeKsXYrNFOzR5D9v", - "Name": "Autopilot", - "DestinationDefinition": { - "ID": "1afjX4MlAucK57Q0ctTVlD27Tvo", - "Name": "AUTOPILOT", - "DisplayName": "Autopilot", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "apiKey": "1d6583b196d34de28a3g19ahadde4b0z", - "customMappings": [ - { - "from": "0001", - "to": "Signup" - } - ], - "triggerId": "00XX" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "metadata": { - "jobId": 2 - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "fad9b3fb-5778-4db3-9fb6-7168b554191f", - "originalTimestamp": "2020-04-17T14:42:44.722Z", - "receivedAt": "2020-04-17T20:12:44.758+05:30", - "request_ip": "[::1]:53513", - "sentAt": "2020-04-17T14:42:44.722Z", - "traits": { - "age": 23, - "email": "testmp@rudderstack.com", - "firstname": "Test Kafka" - }, - "timestamp": "2020-04-17T20:12:44.758+05:30", - "type": "identify", - "userId": "user12345" - } - }, - { - "destination": { - "ID": "1afjtc6chkhdeKsXYrNFOzR5D9v", - "Name": "Autopilot", - "DestinationDefinition": { - "ID": "1afjX4MlAucK57Q0ctTVlD27Tvo", - "Name": "AUTOPILOT", - "DisplayName": "Autopilot", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "apiKey": "1d6583b196d34de28a3g19ahadde4b0z", - "customMappings": [ - { - "from": "0001", - "to": "Signup" - } - ], - "triggerId": "00XX" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "metadata": { - "jobId": 2 - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "testmp@rudderstack.com", - "firstname": "Test Kafka" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "event": "test track with property", - "integrations": { - "All": true - }, - "messageId": "37b75e61-9bd2-4fb8-91ed-e3a064905f3a", - "originalTimestamp": "2020-04-17T14:42:44.724Z", - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "receivedAt": "2020-04-17T20:12:44.758+05:30", - "request_ip": "[::1]:53512", - "sentAt": "2020-04-17T14:42:44.725Z", - "timestamp": "2020-04-17T20:12:44.757+05:30", - "type": "track", - "userId": "user12345" - } - } -] diff --git a/test/__tests__/data/autopilot_router_output.json b/test/__tests__/data/autopilot_router_output.json deleted file mode 100644 index 5c095d9fef6..00000000000 --- a/test/__tests__/data/autopilot_router_output.json +++ /dev/null @@ -1,125 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.autopilothq.com/v1/contact", - "headers": { - "autopilotapikey": "1d6583b196d34de28a3g19ahadde4b0z", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "contact": { - "Email": "testmp@rudderstack.com", - "FirstName": "Test Kafka", - "custom": { - "age": 23 - } - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "1afjtc6chkhdeKsXYrNFOzR5D9v", - "Name": "Autopilot", - "DestinationDefinition": { - "ID": "1afjX4MlAucK57Q0ctTVlD27Tvo", - "Name": "AUTOPILOT", - "DisplayName": "Autopilot", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "apiKey": "1d6583b196d34de28a3g19ahadde4b0z", - "customMappings": [ - { - "from": "0001", - "to": "Signup" - } - ], - "triggerId": "00XX" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.autopilothq.com/v1/trigger/00XX/contact/testmp@rudderstack.com", - "headers": { - "autopilotapikey": "1d6583b196d34de28a3g19ahadde4b0z", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "property": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "1afjtc6chkhdeKsXYrNFOzR5D9v", - "Name": "Autopilot", - "DestinationDefinition": { - "ID": "1afjX4MlAucK57Q0ctTVlD27Tvo", - "Name": "AUTOPILOT", - "DisplayName": "Autopilot", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "apiKey": "1d6583b196d34de28a3g19ahadde4b0z", - "customMappings": [ - { - "from": "0001", - "to": "Signup" - } - ], - "triggerId": "00XX" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - } -] diff --git a/test/__tests__/data/azure_event_hub_input.json b/test/__tests__/data/azure_event_hub_input.json deleted file mode 100644 index cc2ae736d65..00000000000 --- a/test/__tests__/data/azure_event_hub_input.json +++ /dev/null @@ -1,396 +0,0 @@ -[ - { - "destination": { - "ID": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "Name": "Azure Event Hub", - "DestinationDefinition": { - "ID": "1cCs4qQ72QY8vovP7BlJ47mkjBh", - "Name": "AZURE_EVENT_HUB", - "DisplayName": "Azure Event Hub", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": null, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "event": "Purchase", - "integrations": { - "All": true - }, - "messageId": "ce46866c-6f19-42f0-86cb-18c51863b817", - "originalTimestamp": "2020-05-21T10:23:15.984Z", - "properties": { - "currency": "USD", - "revenue": 100 - }, - "receivedAt": "2020-05-21T15:53:16.013+05:30", - "request_ip": "[::1]:59371", - "sentAt": "2020-05-21T10:23:15.985Z", - "timestamp": "2020-05-21T15:53:16.012+05:30", - "type": "track", - "userId": "user-12345" - }, - "metadata": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "destinationId": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "destinationType": "AZURE_EVENT_HUB", - "jobId": 46, - "messageId": "ce46866c-6f19-42f0-86cb-18c51863b817", - "sourceId": "1bqCEGibwCvR7F0acuLzbEMQYIC" - } - }, - { - "destination": { - "ID": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "Name": "Azure Event Hub", - "DestinationDefinition": { - "ID": "1cCs4qQ72QY8vovP7BlJ47mkjBh", - "Name": "AZURE_EVENT_HUB", - "DisplayName": "Azure Event Hub", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": null, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "e02dafb0-9df8-4fa2-becd-f4d8617956a4", - "originalTimestamp": "2020-05-21T10:23:15.975Z", - "properties": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "receivedAt": "2020-05-21T15:53:16.014+05:30", - "request_ip": "[::1]:58616", - "sentAt": "2020-05-21T10:23:15.975Z", - "timestamp": "2020-05-21T15:53:16.014+05:30", - "type": "page", - "userId": "user-12345" - }, - "metadata": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "destinationId": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "destinationType": "AZURE_EVENT_HUB", - "jobId": 47, - "messageId": "e02dafb0-9df8-4fa2-becd-f4d8617956a4", - "sourceId": "1bqCEGibwCvR7F0acuLzbEMQYIC" - } - }, - { - "destination": { - "ID": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "Name": "Azure Event Hub", - "DestinationDefinition": { - "ID": "1cCs4qQ72QY8vovP7BlJ47mkjBh", - "Name": "AZURE_EVENT_HUB", - "DisplayName": "Azure Event Hub", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": null, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "41b62b30-db5d-450c-98ed-cec14ead27cc", - "originalTimestamp": "2020-05-21T10:23:15.979Z", - "receivedAt": "2020-05-21T15:53:16.014+05:30", - "request_ip": "[::1]:59372", - "sentAt": "2020-05-21T10:23:15.979Z", - "timestamp": "2020-05-21T15:53:16.014+05:30", - "type": "identify", - "userId": "user-12345" - }, - "metadata": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "destinationId": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "destinationType": "AZURE_EVENT_HUB", - "jobId": 48, - "messageId": "41b62b30-db5d-450c-98ed-cec14ead27cc", - "sourceId": "1bqCEGibwCvR7F0acuLzbEMQYIC" - } - }, - { - "destination": { - "ID": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "Name": "Azure Event Hub", - "DestinationDefinition": { - "ID": "1cCs4qQ72QY8vovP7BlJ47mkjBh", - "Name": "AZURE_EVENT_HUB", - "DisplayName": "Azure Event Hub", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": null, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "event": "test track without property", - "integrations": { - "All": true - }, - "messageId": "c409577d-5dd4-430a-8965-a20aed7b9c9e", - "originalTimestamp": "2020-05-21T10:23:15.981Z", - "properties": {}, - "receivedAt": "2020-05-21T15:53:16.014+05:30", - "request_ip": "[::1]:59374", - "sentAt": "2020-05-21T10:23:15.981Z", - "timestamp": "2020-05-21T15:53:16.014+05:30", - "type": "track", - "userId": "user-12345" - }, - "metadata": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "destinationId": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "destinationType": "AZURE_EVENT_HUB", - "jobId": 49, - "messageId": "c409577d-5dd4-430a-8965-a20aed7b9c9e", - "sourceId": "1bqCEGibwCvR7F0acuLzbEMQYIC" - } - }, - { - "destination": { - "ID": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "Name": "Azure Event Hub", - "DestinationDefinition": { - "ID": "1cCs4qQ72QY8vovP7BlJ47mkjBh", - "Name": "AZURE_EVENT_HUB", - "DisplayName": "Azure Event Hub", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": null, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "event": "test track with property", - "integrations": { - "All": true - }, - "messageId": "f8b6e882-3186-446a-b589-51eba60930d7", - "originalTimestamp": "2020-05-21T10:23:15.982Z", - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "receivedAt": "2020-05-21T15:53:16.014+05:30", - "request_ip": "[::1]:59373", - "sentAt": "2020-05-21T10:23:15.983Z", - "timestamp": "2020-05-21T15:53:16.013+05:30", - "type": "track", - "userId": "user-12345" - }, - "metadata": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "destinationId": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "destinationType": "AZURE_EVENT_HUB", - "jobId": 50, - "messageId": "f8b6e882-3186-446a-b589-51eba60930d7", - "sourceId": "1bqCEGibwCvR7F0acuLzbEMQYIC" - } - } -] diff --git a/test/__tests__/data/azure_event_hub_output.json b/test/__tests__/data/azure_event_hub_output.json deleted file mode 100644 index 7bac8eca74c..00000000000 --- a/test/__tests__/data/azure_event_hub_output.json +++ /dev/null @@ -1,276 +0,0 @@ -[ - { - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "event": "Purchase", - "integrations": { - "All": true - }, - "messageId": "ce46866c-6f19-42f0-86cb-18c51863b817", - "originalTimestamp": "2020-05-21T10:23:15.984Z", - "properties": { - "currency": "USD", - "revenue": 100 - }, - "receivedAt": "2020-05-21T15:53:16.013+05:30", - "request_ip": "[::1]:59371", - "sentAt": "2020-05-21T10:23:15.985Z", - "timestamp": "2020-05-21T15:53:16.012+05:30", - "type": "track", - "userId": "user-12345" - }, - "userId": "user-12345" - }, - { - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "e02dafb0-9df8-4fa2-becd-f4d8617956a4", - "originalTimestamp": "2020-05-21T10:23:15.975Z", - "properties": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "receivedAt": "2020-05-21T15:53:16.014+05:30", - "request_ip": "[::1]:58616", - "sentAt": "2020-05-21T10:23:15.975Z", - "timestamp": "2020-05-21T15:53:16.014+05:30", - "type": "page", - "userId": "user-12345" - }, - "userId": "user-12345" - }, - { - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "41b62b30-db5d-450c-98ed-cec14ead27cc", - "originalTimestamp": "2020-05-21T10:23:15.979Z", - "receivedAt": "2020-05-21T15:53:16.014+05:30", - "request_ip": "[::1]:59372", - "sentAt": "2020-05-21T10:23:15.979Z", - "timestamp": "2020-05-21T15:53:16.014+05:30", - "type": "identify", - "userId": "user-12345" - }, - "userId": "user-12345" - }, - { - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "event": "test track without property", - "integrations": { - "All": true - }, - "messageId": "c409577d-5dd4-430a-8965-a20aed7b9c9e", - "originalTimestamp": "2020-05-21T10:23:15.981Z", - "properties": {}, - "receivedAt": "2020-05-21T15:53:16.014+05:30", - "request_ip": "[::1]:59374", - "sentAt": "2020-05-21T10:23:15.981Z", - "timestamp": "2020-05-21T15:53:16.014+05:30", - "type": "track", - "userId": "user-12345" - }, - "userId": "user-12345" - }, - { - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "event": "test track with property", - "integrations": { - "All": true - }, - "messageId": "f8b6e882-3186-446a-b589-51eba60930d7", - "originalTimestamp": "2020-05-21T10:23:15.982Z", - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "receivedAt": "2020-05-21T15:53:16.014+05:30", - "request_ip": "[::1]:59373", - "sentAt": "2020-05-21T10:23:15.983Z", - "timestamp": "2020-05-21T15:53:16.013+05:30", - "type": "track", - "userId": "user-12345" - }, - "userId": "user-12345" - } -] diff --git a/test/__tests__/data/blueshift_input.json b/test/__tests__/data/blueshift_input.json deleted file mode 100644 index 25b643cf535..00000000000 --- a/test/__tests__/data/blueshift_input.json +++ /dev/null @@ -1,1120 +0,0 @@ -[ - { - "destination": { - "Config": { - "eventApiKey": "efeb4a29aba5e75d99c8a18acd620ec1", - "dataCenter": "standard" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "hardik", - "email": "hardik@rudderstack.com", - "cookie": "1234abcd-efghklkj-1234kfjadslk-34iu123", - "industry": "Education", - "employees": 399, - "plan": "enterprise", - "total billed": 830 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - } - }, - "type": "group", - "messageId": "e5034df0-a404-47b4-a463-76df99934fea", - "anonymousId": "my-anonymous-id-new", - "userId": "sampleusrRudder7", - "traits": { - "groupType": "company", - "name_trait": "Company", - "value_trait": "Comapny-ABC" - } - } - }, - { - "destination": { - "Config": { - "eventApiKey": "efeb4a29aba5e75d99c8a18acd620ec1", - "usersApiKey": "b4a29aba5e75duic8a18acd920ec1e2e", - "dataCenter": "standard" - } - }, - "message": { - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "hardik", - "email": "hardik@rudderstack.com", - "cookie": "1234abcd-efghklkj-1234kfjadslk-34iu123", - "industry": "Education", - "employees": 399, - "plan": "enterprise", - "total billed": 830 - } - }, - "type": "group", - "userId": "rudderstack8", - "groupId": "35838" - } - }, - { - "destination": { - "Config": { - "eventApiKey": "efeb4a29aba5e75d99c8a18acd620ec1", - "usersApiKey": "b4a29aba5e75d99c8a18acd920ec1e2e", - "dataCenter": "standard" - } - }, - "message": { - "context": { - "ip": "14.5.67.21", - "device": { - "adTrackingEnabled": true, - "advertisingId": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "Android", - "attTrackingStatus": 3 - }, - "os": { - "name": "Android", - "version": "9" - }, - "network": { - "bluetooth": false, - "carrier": "Android", - "cellular": true, - "wifi": true - }, - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 789223, - "latitude": "37.7672319", - "longitude": "-122.4021353", - "state": "WB", - "street": "rajnagar" - } - }, - "properties": { - "cookie": "1234abcd-efghijkj-1234kfjadslk-34iu123" - }, - "messageId": "34abcd-efghijkj-1234kf", - "type": "track", - "event": "identify", - "userId": "sampleusrRudder7" - } - }, - { - "destination": { - "Config": { - "eventApiKey": "efeb4a29aba5e75d99c8a18acd620ec1", - "usersApiKey": "b4a29aba5e75duic8a18acd920ec1e2e", - "dataCenter": "standard" - } - }, - "message": { - "type": "track", - "event": "Product Viewed", - "properties": { - "cookie": "1234abcd-efghijkj-1234kfjadslk-34iu123", - "checkout_id": "C324532", - "order_id": "T1230", - "value": 15.98, - "revenue": 16.98, - "shipping": 3.0, - "coupon": "FY21", - "currency": "INR", - "products": [ - { - "product_id": "product-mixedfruit-jam", - "sku": "sku-1", - "category": "Food", - "name": "Food/Drink", - "brand": "Sample", - "variant": "None", - "price": 10.0, - "quantity": 2, - "currency": "INR", - "position": 1, - "value": 6.0, - "typeOfProduct": "Food", - "url": "https://www.example.com/product/bacon-jam", - "image_url": "https://www.example.com/product/bacon-jam.jpg" - } - ] - }, - "context": { - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.rudderstack.demo.android", - "version": "1.0" - }, - "device": { - "id": "7e32188a4dab669f", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign" - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Mumbai", - "traits": { - "anonymousId": "7e32188a4dab669f" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - } - }, - "messageId": "34abcd-efghijkj-1234kf", - "userId": "sampleRudderstack9" - }, - { - "destination": { - "Config": { - "eventApiKey": "efeb4a29aba5e75d99c8a18acd620ec1", - "usersApiKey": "b4a29aba5e75duic8a18acd920ec1e2e", - "dataCenter": "eu" - } - }, - "message": { - "type": "track", - "event": "Products Searched", - "properties": { - "description": "Sneaker purchase", - "brand": "Victory Sneakers", - "colors": ["red", "blue"], - "items": [ - { - "text": "New Line Sneakers", - "price": "$ 79.95" - }, - { - "text": "Old Line Sneakers", - "price": "$ 79.95" - }, - { - "text": "Blue Line Sneakers", - "price": "$ 79.95" - } - ], - "name": "Hugh Manbeing", - "userLocation": { - "state": "CO", - "zip": "80202" - } - }, - "context": { - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.rudderstack.demo.android", - "version": "1.0" - }, - "device": { - "id": "7e32188a4dab669f", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign" - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Mumbai", - "traits": { - "anonymousId": "7e32188a4dab669f" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - } - }, - "messageId": "34abcd-efghijkj-1234kf", - "userId": "sampleRudderstack9" - }, - { - "destination": { - "Config": { - "usersApiKey": "b4a29aba5e75d99c8a18acd920ec1e2e", - "dataCenter": "standard" - } - }, - "message": { - "type": "track", - "event": "Product_purchased", - "properties": { - "cookie": "1234abcd-efghijkj-1234kfjadslk-34iu123" - }, - "messageId": "34abcd-efghijkj-1234kf", - "context": { - "ip": "14.5.67.21", - "device": { - "adTrackingEnabled": true, - "advertisingId": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "Android", - "attTrackingStatus": 3 - }, - "os": { - "name": "Android", - "version": "9" - }, - "network": { - "bluetooth": false, - "carrier": "Android", - "cellular": true, - "wifi": true - }, - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 789223, - "latitude": "37.7672319", - "longitude": "-122.4021353", - "state": "WB", - "street": "rajnagar" - } - }, - "userId": "sampleRudderstack9" - } - }, - { - "destination": { - "Config": { - "eventApiKey": "a5e75d99c8a18acb4a29abd920ec1e2e", - "usersApiKey": "b4a29aba5e75d99c8a18acd920ec1e2e", - "dataCenter": "standard" - } - }, - "message": { - "type": "identify", - "event": "Product_purchased", - "properties": { - "cookie": "1234abcd-efghijkj-1234kfjadslk-34iu123" - }, - "messageId": "34abcd-efghijkj-1234kf", - "context": { - "ip": "14.5.67.21", - "device": { - "adTrackingEnabled": true, - "advertisingId": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "Android", - "attTrackingStatus": 3 - }, - "os": { - "name": "Android", - "version": "9" - }, - "network": { - "bluetooth": false, - "carrier": "Android", - "cellular": true, - "wifi": true - }, - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 789223, - "latitude": "37.7672319", - "longitude": "-122.4021353", - "state": "WB", - "street": "rajnagar" - } - }, - "userId": "sampleRudderstack9" - } - }, - { - "destination": { - "Config": { - "eventApiKey": "a5e75d99c8a18acb4a29abd920ec1e2e", - "usersApiKey": "b4a29aba5e75d99c8a18acd920ec1e2e", - "dataCenter": "standard" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "identify", - "traits": { - "email": "chandan@companyname.com", - "userId": "rudder123", - "anonymousId": "anon_id", - "name": "James Doe", - "phone": "92374162212", - "gender": "M", - "firstname": "James", - "lastname": "Doe", - "employed": true, - "birthday": "1614775793", - "education": "Science", - "graduate": true, - "married": true, - "customerType": "Prime", - "msg_push": true, - "msgSms": true, - "msgemail": true, - "msgwhatsapp": false, - "custom_tags": ["Test_User", "Interested_User", "DIY_Hobby"], - "custom_mappings": { - "Office": "Trastkiv", - "Country": "Russia" - }, - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 789223, - "state": "WB", - "street": "" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - }, - { - "destination": { - "Config": { - "eventApiKey": "a5e75d99c8a18acb4a29abd920ec1e2e", - "dataCenter": "eu" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "identify", - "traits": { - "email": "chandan@companyname.com", - "userId": "rudder123", - "anonymousId": "anon_id", - "name": "James Doe", - "phone": "92374162212", - "gender": "M", - "firstname": "James", - "lastname": "Doe", - "employed": true, - "birthday": "1614775793", - "education": "Science", - "graduate": true, - "married": true, - "customerType": "Prime", - "msg_push": true, - "msgSms": true, - "msgemail": true, - "msgwhatsapp": false, - "custom_tags": ["Test_User", "Interested_User", "DIY_Hobby"], - "custom_mappings": { - "Office": "Trastkiv", - "Country": "Russia" - }, - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 789223, - "state": "WB", - "street": "" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - }, - { - "destination": { - "Config": { - "eventApiKey": "a5e75d99c8a18acb4a29abd920ec1e2e", - "usersApiKey": "b4a29aba5e75d99c8a18acd920ec1e2e", - "dataCenter": "eu" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "ip": "0.0.0.0" - }, - "type": "identify", - "traits": { - "email": "chandan@companyname.com", - "userId": "rudder123", - "anonymousId": "anon_id", - "name": "James Doe", - "phone": "92374162212", - "gender": "M", - "firstname": "James", - "lastname": "Doe" - } - } - }, - { - "destination": { - "Config": { - "eventApiKey": "a5e75d99c8a18acb4a29abd920ec1e2e", - "usersApiKey": "b4a29aba5e75d99c8a18acd920ec1e2e", - "dataCenter": "eu" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "ip": "0.0.0.0" - }, - "traits": { - "email": "chandan@companyname.com", - "userId": "rudder123", - "anonymousId": "anon_id", - "name": "James Doe", - "phone": "92374162212", - "gender": "M", - "firstname": "James", - "lastname": "Doe" - } - } - }, - { - "destination": { - "Config": { - "eventApiKey": "a5e75d99c8a18acb4a29abd920ec1e2e", - "usersApiKey": "b4a29aba5e75d99c8a18acd920ec1e2e", - "dataCenter": "eu" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "ip": "0.0.0.0" - }, - "type": "page", - "traits": { - "email": "chandan@companyname.com", - "userId": "rudder123", - "anonymousId": "anon_id", - "name": "James Doe", - "phone": "92374162212", - "gender": "M", - "firstname": "James", - "lastname": "Doe" - } - } - }, - { - "destination": { - "Config": { - "eventApiKey": "efeb4a29aba5e75d99c8a18acd620ec1", - "usersApiKey": "b4a29aba5e75duic8a18acd920ec1e2e", - "dataCenter": "eu" - } - }, - "message": { - "type": "track", - "event": "Order Completed", - "properties": { - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": "Games,Gifts,Entertainment,Toys", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - }, - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "quantity": "2", - "position": "1", - "category": "Games,Gifts,Entertainment,Toys", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ] - }, - "context": { - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.rudderstack.demo.android", - "version": "1.0" - }, - "device": { - "id": "7e32188a4dab669f", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign" - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Mumbai", - "traits": { - "anonymousId": "7e32188a4dab669f" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "userId": "sampleRudderstack11" - } - }, - { - "destination": { - "Config": { - "eventApiKey": "efeb4a29aba5e75d99c8a18acd620ec1", - "usersApiKey": "b4a29aba5e75d99c8a18acd920ec1e2e", - "dataCenter": "eu" - } - }, - "message": { - "context": { - "ip": "14.5.67.21", - "device": { - "adTrackingEnabled": true, - "advertisingId": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "Android", - "attTrackingStatus": 3 - }, - "os": { - "name": "Android", - "version": "9" - }, - "network": { - "bluetooth": false, - "carrier": "Android", - "cellular": true, - "wifi": true - }, - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 789223, - "latitude": "37.7672319", - "longitude": "-122.4021353", - "state": "WB", - "street": "rajnagar" - } - }, - "properties": { - "cookie": "1234abcd-efghijkj-1234kfjadslk-34iu123" - }, - "messageId": "34abcd-efghijkj-1234kf", - "type": "track", - "event": "Custom Events", - "userId": "sampleusrRudder7" - } - }, - { - "destination": { - "Config": { - "eventApiKey": "efeb4a29aba5e75d99c8a18acd620ec1", - "usersApiKey": "b4a29aba5e75duic8a18acd920ec1e2e", - "dataCenter": "eu" - } - }, - "message": { - "type": "track", - "event": "Order 9Completed", - "properties": { - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": "Games,Gifts,Entertainment,Toys", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - }, - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "quantity": "2", - "position": "1", - "category": "Games,Gifts,Entertainment,Toys", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ] - }, - "context": { - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.rudderstack.demo.android", - "version": "1.0" - }, - "device": { - "id": "7e32188a4dab669f", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign" - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Mumbai", - "traits": { - "anonymousId": "7e32188a4dab669f" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "userId": "sampleRudderstack11" - } - }, - { - "destination": { - "Config": { - "eventApiKey": "efeb4a29aba5e75d99c8a18acd620ec1", - "usersApiKey": "b4a29aba5e75duic8a18acd920ec1e2e", - "dataCenter": "eu" - } - }, - "message": { - "type": "track", - "event": "Order.Completed", - "properties": { - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": "Games,Gifts,Entertainment,Toys", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - }, - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "quantity": "2", - "position": "1", - "category": "Games,Gifts,Entertainment,Toys", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ] - }, - "context": { - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.rudderstack.demo.android", - "version": "1.0" - }, - "device": { - "id": "7e32188a4dab669f", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign" - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Mumbai", - "traits": { - "anonymousId": "7e32188a4dab669f" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "userId": "sampleRudderstack11" - } - }, - { - "destination": { - "Config": { - "eventApiKey": "efeb4a29aba5e75d99c8a18acd620ec1", - "usersApiKey": "b4a29aba5e75duic8a18acd920ec1e2e", - "dataCenter": "standard" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.rudderstack.demo.android", - "version": "1.0" - }, - "device": { - "id": "7e32188a4dab669f", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign" - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Mumbai", - "traits": { - "anonymousId": "7e32188a4dab669f" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "type": "group", - "messageId": "e5034jh0-a404-47b4-a463-76df99934kl2", - "userId": "sampleusrRudder1", - "groupId": "group22222", - "traits": { - "name": "hardik", - "email": "hardik@rudderstack.com", - "cookie": "1234abcd-efghklkj-1234kfjadslk-34iu123", - "industry": "Education", - "employees": 399, - "plan": "enterprise", - "total billed": 830, - "gender": "male" - } - } - }, - { - "destination": { - "Config": { - "usersApiKey": "b4a29aba5e75duic8a18acd920ec1e2e", - "dataCenter": "eu" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.rudderstack.demo.android", - "version": "1.0" - }, - "device": { - "id": "7e32188a4dab669f", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign" - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Mumbai", - "traits": { - "anonymousId": "7e32188a4dab669f" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "type": "group", - "messageId": "e5034jh0-a404-47b4-a463-76df99934kl2", - "userId": "sampleusrRudder1", - "groupId": "group22222", - "traits": { - "name": "hardik", - "email": "hardik@rudderstack.com", - "cookie": "1234abcd-efghklkj-1234kfjadslk-34iu123", - "industry": "Education", - "employees": 399, - "plan": "enterprise", - "total billed": 830, - "gender": "male" - } - } - } -] diff --git a/test/__tests__/data/blueshift_output.json b/test/__tests__/data/blueshift_output.json deleted file mode 100644 index 189ad02aa3b..00000000000 --- a/test/__tests__/data/blueshift_output.json +++ /dev/null @@ -1,438 +0,0 @@ -[ - { - "statusCode": 400, - "error": "Missing required value from \"groupId\"", - "statTags": { - "destination": "blueshift", - "stage": "transform", - "scope": "exception" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getblueshift.com/api/v1/event", - "headers": { - "Authorization": "Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "group_id": "35838", - "customer_id": "rudderstack8", - "email": "hardik@rudderstack.com", - "event": "identify" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "ip": "14.5.67.21", - "event": "identify", - "cookie": "1234abcd-efghijkj-1234kfjadslk-34iu123", - "os_name": "Android", - "latitude": "37.7672319", - "device_id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "longitude": "-122.4021353", - "event_uuid": "34abcd-efghijkj-1234kf", - "customer_id": "sampleusrRudder7", - "device_idfa": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "device_idfv": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "device_type": "Android", - "network_carrier": "Android", - "device_manufacturer": "Google" - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=" - }, - "version": "1", - "endpoint": "https://api.getblueshift.com/api/v1/event" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getblueshift.com/api/v1/event", - "headers": { - "Authorization": "Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event": "view", - "device_type": "android", - "device_id": "7e32188a4dab669f", - "device_idfv": "7e32188a4dab669f", - "device_manufacturer": "Google", - "os_name": "Android", - "network_carrier": "Android", - "cookie": "1234abcd-efghijkj-1234kfjadslk-34iu123", - "checkout_id": "C324532", - "order_id": "T1230", - "value": 15.98, - "revenue": 16.98, - "shipping": 3, - "coupon": "FY21", - "currency": "INR", - "products": [ - { - "product_id": "product-mixedfruit-jam", - "sku": "sku-1", - "category": "Food", - "name": "Food/Drink", - "brand": "Sample", - "variant": "None", - "price": 10, - "quantity": 2, - "currency": "INR", - "position": 1, - "value": 6, - "typeOfProduct": "Food", - "url": "https://www.example.com/product/bacon-jam", - "image_url": "https://www.example.com/product/bacon-jam.jpg" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.eu.getblueshift.com/api/v1/event", - "headers": { - "Authorization": "Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event": "search", - "device_type": "android", - "device_id": "7e32188a4dab669f", - "device_idfv": "7e32188a4dab669f", - "device_manufacturer": "Google", - "os_name": "Android", - "network_carrier": "Android", - "description": "Sneaker purchase", - "brand": "Victory Sneakers", - "colors": ["red", "blue"], - "items": [ - { - "text": "New Line Sneakers", - "price": "$ 79.95" - }, - { - "text": "Old Line Sneakers", - "price": "$ 79.95" - }, - { - "text": "Blue Line Sneakers", - "price": "$ 79.95" - } - ], - "name": "Hugh Manbeing", - "userLocation": { - "state": "CO", - "zip": "80202" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "statusCode": 400, - "error": "[BLUESHIFT] event Api Keys required for Authentication.", - "statTags": { - "destination": "blueshift", - "stage": "transform", - "scope": "exception" - } - }, - { - "statusCode": 400, - "error": "Missing required value from \"email\"", - "statTags": { - "destination": "blueshift", - "stage": "transform", - "scope": "exception" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getblueshift.com/api/v1/customers", - "headers": { - "Authorization": "Basic YjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q5MjBlYzFlMmU=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "email": "chandan@companyname.com", - "customer_id": "rudder123", - "phone_number": "92374162212", - "firstname": "James", - "lastname": "Doe", - "gender": "M", - "userId": "rudder123", - "anonymousId": "anon_id", - "name": "James Doe", - "employed": true, - "birthday": "1614775793", - "education": "Science", - "graduate": true, - "married": true, - "customerType": "Prime", - "msg_push": true, - "msgSms": true, - "msgemail": true, - "msgwhatsapp": false, - "custom_tags": ["Test_User", "Interested_User", "DIY_Hobby"], - "custom_mappings": { - "Office": "Trastkiv", - "Country": "Russia" - }, - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 789223, - "state": "WB", - "street": "" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "statusCode": 400, - "error": "[BLUESHIFT] User API Key required for Authentication.", - "statTags": { - "destination": "blueshift", - "stage": "transform", - "scope": "exception" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.eu.getblueshift.com/api/v1/customers", - "headers": { - "Authorization": "Basic YjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q5MjBlYzFlMmU=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "email": "chandan@companyname.com", - "customer_id": "rudder123", - "phone_number": "92374162212", - "firstname": "James", - "lastname": "Doe", - "gender": "M", - "userId": "rudder123", - "anonymousId": "anon_id", - "name": "James Doe" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "statusCode": 400, - "error": "Message Type is not present. Aborting message.", - "statTags": { - "destination": "blueshift", - "stage": "transform", - "scope": "exception" - } - }, - { - "statusCode": 400, - "error": "Message type page not supported", - "statTags": { - "destination": "blueshift", - "stage": "transform", - "scope": "exception" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.eu.getblueshift.com/api/v1/event", - "headers": { - "Authorization": "Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "customer_id": "sampleRudderstack11", - "event": "purchase", - "device_type": "android", - "device_id": "7e32188a4dab669f", - "device_idfv": "7e32188a4dab669f", - "device_manufacturer": "Google", - "os_name": "Android", - "network_carrier": "Android", - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": "Games,Gifts,Entertainment,Toys", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - }, - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "quantity": "2", - "position": "1", - "category": "Games,Gifts,Entertainment,Toys", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.eu.getblueshift.com/api/v1/event", - "headers": { - "Authorization": "Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "customer_id": "sampleusrRudder7", - "event": "Custom_Events", - "device_type": "Android", - "device_id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "device_idfa": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "device_idfv": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "device_manufacturer": "Google", - "os_name": "Android", - "network_carrier": "Android", - "ip": "14.5.67.21", - "latitude": "37.7672319", - "longitude": "-122.4021353", - "event_uuid": "34abcd-efghijkj-1234kf", - "cookie": "1234abcd-efghijkj-1234kfjadslk-34iu123" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "statusCode": 400, - "error": "[Blueshift] Event shouldn't contain period(.), numeric value and contains not more than 64 characters", - "statTags": { - "destination": "blueshift", - "stage": "transform", - "scope": "exception" - } - }, - { - "statusCode": 400, - "error": "[Blueshift] Event shouldn't contain period(.), numeric value and contains not more than 64 characters", - "statTags": { - "destination": "blueshift", - "stage": "transform", - "scope": "exception" - } - }, - { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "group_id": "group22222", - "customer_id": "sampleusrRudder1", - "email": "hardik@rudderstack.com", - "device_type": "android", - "device_id": "7e32188a4dab669f", - "device_idfv": "7e32188a4dab669f", - "device_manufacturer": "Google", - "os_name": "Android", - "network_carrier": "Android", - "event_uuid": "e5034jh0-a404-47b4-a463-76df99934kl2", - "cookie": "1234abcd-efghklkj-1234kfjadslk-34iu123", - "event": "identify", - "name": "hardik", - "industry": "Education", - "employees": 399, - "plan": "enterprise", - "total billed": 830, - "gender": "male" - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=" - }, - "version": "1", - "endpoint": "https://api.getblueshift.com/api/v1/event" - }, - { - "statusCode": 400, - "error": "[BLUESHIFT] event API Key required for Authentication.", - "statTags": { - "destination": "blueshift", - "stage": "transform", - "scope": "exception" - } - } -] diff --git a/test/__tests__/data/blueshift_router_input.json b/test/__tests__/data/blueshift_router_input.json deleted file mode 100644 index 54012757710..00000000000 --- a/test/__tests__/data/blueshift_router_input.json +++ /dev/null @@ -1,167 +0,0 @@ -[ - { - "destination": { - "Config": { - "eventApiKey": "efeb4a29aba5e75d99c8a18acd620ec1", - "usersApiKey": "b4a29aba5e75duic8a18acd920ec1e2e", - "datacenterEU": false - } - }, - "metadata": { - "jobId": 1 - }, - "message": { - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "hardik", - "email": "hardik@rudderstack.com", - "cookie": "1234abcd-efghklkj-1234kfjadslk-34iu123", - "industry": "Education", - "employees": 399, - "plan": "enterprise", - "total billed": 830 - } - }, - "type": "group", - "userId": "rudderstack8", - "groupId": "35838" - } - }, - { - "destination": { - "Config": { - "eventApiKey": "efeb4a29aba5e75d99c8a18acd620ec1", - "usersApiKey": "b4a29aba5e75duic8a18acd920ec1e2e", - "datacenterEU": false - } - }, - "metadata": { - "jobId": 2 - }, - "message": { - "context": { - "ip": "14.5.67.21", - "device": { - "adTrackingEnabled": true, - "advertisingId": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "Android", - "attTrackingStatus": 3 - }, - "os": { - "name": "Android", - "version": "9" - }, - "network": { - "bluetooth": false, - "carrier": "Android", - "cellular": true, - "wifi": true - }, - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 789223, - "latitude": "37.7672319", - "longitude": "-122.4021353", - "state": "WB", - "street": "rajnagar" - } - }, - "properties": { - "cookie": "1234abcd-efghijkj-1234kfjadslk-34iu123" - }, - "messageId": "34abcd-efghijkj-1234kf", - "type": "track", - "event": "identify", - "userId": "sampleusrRudder7" - } - }, - { - "destination": { - "Config": { - "eventApiKey": "a5e75d99c8a18acb4a29abd920ec1e2e", - "usersApiKey": "b4a29aba5e75d99c8a18acd920ec1e2e", - "datacenterEU": false - } - }, - "metadata": { - "jobId": 3 - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "identify", - "traits": { - "email": "chandan@companyname.com", - "userId": "rudder123", - "anonymousId": "anon_id", - "name": "James Doe", - "phone": "92374162212", - "gender": "M", - "firstname": "James", - "lastname": "Doe", - "employed": true, - "birthday": "1614775793", - "education": "Science", - "graduate": true, - "married": true, - "customerType": "Prime", - "msg_push": true, - "msgSms": true, - "msgemail": true, - "msgwhatsapp": false, - "custom_tags": ["Test_User", "Interested_User", "DIY_Hobby"], - "custom_mappings": { - "Office": "Trastkiv", - "Country": "Russia" - }, - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 789223, - "state": "WB", - "street": "" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } -] diff --git a/test/__tests__/data/blueshift_router_output.json b/test/__tests__/data/blueshift_router_output.json deleted file mode 100644 index 669f5014a5b..00000000000 --- a/test/__tests__/data/blueshift_router_output.json +++ /dev/null @@ -1,156 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getblueshift.com/api/v1/event", - "headers": { - "Authorization": "Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "group_id": "35838", - "customer_id": "rudderstack8", - "email": "hardik@rudderstack.com", - "event": "identify" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "eventApiKey": "efeb4a29aba5e75d99c8a18acd620ec1", - "usersApiKey": "b4a29aba5e75duic8a18acd920ec1e2e", - "datacenterEU": false - } - } - }, - { - "batchedRequest": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "ip": "14.5.67.21", - "event": "identify", - "cookie": "1234abcd-efghijkj-1234kfjadslk-34iu123", - "os_name": "Android", - "latitude": "37.7672319", - "device_id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "longitude": "-122.4021353", - "event_uuid": "34abcd-efghijkj-1234kf", - "customer_id": "sampleusrRudder7", - "device_idfa": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "device_idfv": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "device_type": "Android", - "network_carrier": "Android", - "device_manufacturer": "Google" - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=" - }, - "version": "1", - "endpoint": "https://api.getblueshift.com/api/v1/event" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "eventApiKey": "efeb4a29aba5e75d99c8a18acd620ec1", - "usersApiKey": "b4a29aba5e75duic8a18acd920ec1e2e", - "datacenterEU": false - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getblueshift.com/api/v1/customers", - "headers": { - "Authorization": "Basic YjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q5MjBlYzFlMmU=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "email": "chandan@companyname.com", - "customer_id": "rudder123", - "phone_number": "92374162212", - "firstname": "James", - "lastname": "Doe", - "gender": "M", - "userId": "rudder123", - "anonymousId": "anon_id", - "name": "James Doe", - "employed": true, - "birthday": "1614775793", - "education": "Science", - "graduate": true, - "married": true, - "customerType": "Prime", - "msg_push": true, - "msgSms": true, - "msgemail": true, - "msgwhatsapp": false, - "custom_tags": ["Test_User", "Interested_User", "DIY_Hobby"], - "custom_mappings": { - "Office": "Trastkiv", - "Country": "Russia" - }, - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 789223, - "state": "WB", - "street": "" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 3 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "eventApiKey": "a5e75d99c8a18acb4a29abd920ec1e2e", - "usersApiKey": "b4a29aba5e75d99c8a18acd920ec1e2e", - "datacenterEU": false - } - } - } -] diff --git a/test/__tests__/data/branch_input.json b/test/__tests__/data/branch_input.json deleted file mode 100644 index 8e8d2bba5fa..00000000000 --- a/test/__tests__/data/branch_input.json +++ /dev/null @@ -1,806 +0,0 @@ -[ - { - "destination": { - "Config": { - "branchKey": "", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Branch Metrics", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "BRANCH" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "branch test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "adTrackingEnabled": true, - "advertisingId": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "product added", - "integrations": { - "All": true - }, - "messageId": "ea5cfab2-3961-4d8a-8187-3d1858c90a9f", - "originalTimestamp": "2020-01-17T04:53:51.185Z", - "properties": { - "name": "sampath" - }, - "receivedAt": "2020-01-17T10:23:52.688+05:30", - "request_ip": "[::1]:64059", - "sentAt": "2020-01-17T04:53:52.667Z", - "timestamp": "2020-01-17T10:23:51.206+05:30", - "type": "track", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "branchKey": "", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Branch Metrics", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "BRANCH" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "branch test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "adTrackingEnabled": true, - "advertisingId": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "Android", - "attTrackingStatus": 2 - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 2 - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "messageId": "ea5cfab2-3961-4d8a-8187-3d1858c90a9f", - "originalTimestamp": "2020-01-17T04:53:51.185Z", - "receivedAt": "2020-01-17T10:23:52.688+05:30", - "request_ip": "[::1]:64059", - "sentAt": "2020-01-17T04:53:52.667Z", - "timestamp": "2020-01-17T10:23:51.206+05:30", - "type": "identify", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "branchKey": "", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Branch Metrics", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "BRANCH" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "branch test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "messageId": "ea5cfab2-3961-4d8a-8187-3d1858c90a9f", - "originalTimestamp": "2020-01-17T04:53:51.185Z", - "receivedAt": "2020-01-17T10:23:52.688+05:30", - "request_ip": "[::1]:64059", - "sentAt": "2020-01-17T04:53:52.667Z", - "timestamp": "2020-01-17T10:23:51.206+05:30", - "type": "page", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "branchKey": "", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Branch Metrics", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "BRANCH" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "branch test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "adTrackingEnabled": true, - "advertisingId": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "attTrackingStatus": 3 - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "watchos" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "product added", - "integrations": { - "All": true - }, - "messageId": "ea5cfab2-3961-4d8a-8187-3d1858c90a9f", - "originalTimestamp": "2020-01-17T04:53:51.185Z", - "properties": { - "name": "sampath" - }, - "receivedAt": "2020-01-17T10:23:52.688+05:30", - "request_ip": "[::1]:64059", - "sentAt": "2020-01-17T04:53:52.667Z", - "timestamp": "2020-01-17T10:23:51.206+05:30", - "type": "track", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "branchKey": "", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Branch Metrics", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "BRANCH" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "branch test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "adTrackingEnabled": true, - "advertisingId": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "attTrackingStatus": 3 - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "ipados" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "product added", - "integrations": { - "All": true - }, - "messageId": "ea5cfab2-3961-4d8a-8187-3d1858c90a9f", - "originalTimestamp": "2020-01-17T04:53:51.185Z", - "properties": { - "name": "sampath" - }, - "receivedAt": "2020-01-17T10:23:52.688+05:30", - "request_ip": "[::1]:64059", - "sentAt": "2020-01-17T04:53:52.667Z", - "timestamp": "2020-01-17T10:23:51.206+05:30", - "type": "track", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "branchKey": "", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Branch Metrics", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "BRANCH" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "branch test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "adTrackingEnabled": true, - "advertisingId": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "attTrackingStatus": 3 - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "tvos" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "product added", - "integrations": { - "All": true - }, - "messageId": "ea5cfab2-3961-4d8a-8187-3d1858c90a9f", - "originalTimestamp": "2020-01-17T04:53:51.185Z", - "properties": { - "name": "sampath" - }, - "receivedAt": "2020-01-17T10:23:52.688+05:30", - "request_ip": "[::1]:64059", - "sentAt": "2020-01-17T04:53:52.667Z", - "timestamp": "2020-01-17T10:23:51.206+05:30", - "type": "track", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "branchKey": "", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Branch Metrics", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "BRANCH" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "branch test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "adTrackingEnabled": true, - "advertisingId": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "product added", - "integrations": { - "All": true - }, - "messageId": "ea5cfab2-3961-4d8a-8187-3d1858c90a9f", - "originalTimestamp": "2020-01-17T04:53:51.185Z", - "receivedAt": "2020-01-17T10:23:52.688+05:30", - "request_ip": "[::1]:64059", - "sentAt": "2020-01-17T04:53:52.667Z", - "timestamp": "2020-01-17T10:23:51.206+05:30", - "type": "track", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "branchKey": "", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Branch Metrics", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "BRANCH" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "branch test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "adTrackingEnabled": true, - "advertisingId": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "product added", - "integrations": { - "All": true - }, - "messageId": "ea5cfab2-3961-4d8a-8187-3d1858c90a9f", - "originalTimestamp": "2020-01-17T04:53:51.185Z", - - "receivedAt": "2020-01-17T10:23:52.688+05:30", - "request_ip": "[::1]:64059", - "sentAt": "2020-01-17T04:53:52.667Z", - "timestamp": "2020-01-17T10:23:51.206+05:30", - "type": "track", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "branchKey": "", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Branch Metrics", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "BRANCH" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "branch test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "device": { - "adTrackingEnabled": true, - "advertisingId": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "product added", - "integrations": { - "All": true - }, - "messageId": "ea5cfab2-3961-4d8a-8187-3d1858c90a9f", - "originalTimestamp": "2020-01-17T04:53:51.185Z", - "receivedAt": "2020-01-17T10:23:52.688+05:30", - "request_ip": "[::1]:64059", - "sentAt": "2020-01-17T04:53:52.667Z", - "timestamp": "2020-01-17T10:23:51.206+05:30", - "type": "track", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "branchKey": "", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Branch Metrics", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "BRANCH" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "branch test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "device": { - "adTrackingEnabled": true, - "advertisingId": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "ea5cfab2-3961-4d8a-8187-3d1858c90a9f", - "originalTimestamp": "2020-01-17T04:53:51.185Z", - "receivedAt": "2020-01-17T10:23:52.688+05:30", - "request_ip": "[::1]:64059", - "sentAt": "2020-01-17T04:53:52.667Z", - "timestamp": "2020-01-17T10:23:51.206+05:30", - "type": "track", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "branchKey": "", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Branch Metrics", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "BRANCH" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "branch test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "adTrackingEnabled": true, - "advertisingId": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "Android", - "attTrackingStatus": 2, - "brand": "testBrand" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 2, - "height": 1794, - "width": 1080 - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "messageId": "ea5cfab2-3961-4d8a-8187-3d1858c90a9f", - "originalTimestamp": "2020-01-17T04:53:51.185Z", - "receivedAt": "2020-01-17T10:23:52.688+05:30", - "request_ip": "[::1]:64059", - "sentAt": "2020-01-17T04:53:52.667Z", - "timestamp": "2020-01-17T10:23:51.206+05:30", - "type": "identify", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "branchKey": "", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Branch Metrics", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "BRANCH" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "branch test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "adTrackingEnabled": true, - "advertisingId": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 2, - "brand": "testBrand" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2, - "height": 1794, - "width": 1080 - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "messageId": "ea5cfab2-3961-4d8a-8187-3d1858c90a9f", - "originalTimestamp": "2020-01-17T04:53:51.185Z", - "receivedAt": "2020-01-17T10:23:52.688+05:30", - "request_ip": "[::1]:64059", - "sentAt": "2020-01-17T04:53:52.667Z", - "timestamp": "2020-01-17T10:23:51.206+05:30", - "type": "identify", - "userId": "sampath" - } - } -] diff --git a/test/__tests__/data/branch_output.json b/test/__tests__/data/branch_output.json deleted file mode 100644 index 8a57bf99d5b..00000000000 --- a/test/__tests__/data/branch_output.json +++ /dev/null @@ -1,385 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.branch.io/v2/event/standard", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "branch_key": "", - "name": "ADD_TO_CART", - "content_items": [ - { - "$product_name": "sampath" - } - ], - "user_data": { - "os": "iOS", - "os_version": "14.4.1", - "app_version": "1.0.0", - "screen_dpi": 2, - "developer_identity": "sampath", - "idfa": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "idfv": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "limit_ad_tracking": false, - "model": "AOSP on IA Emulator", - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.branch.io/v2/event/custom", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "branch_key": "", - "name": "sampath", - "custom_data": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "content_items": [{}], - "user_data": { - "os": "Android", - "os_version": "9", - "app_version": "1.0.0", - "screen_dpi": 2, - "developer_identity": "sampath", - "android_id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "aaid": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "limit_ad_tracking": true, - "model": "AOSP on IA Emulator", - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - { "statusCode": 400, "error": "Message type is not supported" }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.branch.io/v2/event/standard", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "content_items": [ - { - "$product_name": "sampath" - } - ], - "user_data": { - "os": "watchos", - "app_version": "1.0.0", - "screen_dpi": 2, - "developer_identity": "sampath", - "idfa": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "idfv": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "limit_ad_tracking": false, - "model": "AOSP on IA Emulator", - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "name": "ADD_TO_CART", - - "branch_key": "" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.branch.io/v2/event/standard", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "content_items": [ - { - "$product_name": "sampath" - } - ], - "user_data": { - "os": "ipados", - "app_version": "1.0.0", - "screen_dpi": 2, - "developer_identity": "sampath", - "idfa": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "idfv": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "limit_ad_tracking": false, - "model": "AOSP on IA Emulator", - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "name": "ADD_TO_CART", - "branch_key": "" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.branch.io/v2/event/standard", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "content_items": [ - { - "$product_name": "sampath" - } - ], - "user_data": { - "os": "tvos", - "app_version": "1.0.0", - "screen_dpi": 2, - "developer_identity": "sampath", - "idfa": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "idfv": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "limit_ad_tracking": false, - "model": "AOSP on IA Emulator", - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "name": "ADD_TO_CART", - "branch_key": "" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.branch.io/v2/event/standard", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user_data": { - "os": "iOS", - "os_version": "14.4.1", - "app_version": "1.0.0", - "screen_dpi": 2, - "developer_identity": "sampath", - "idfa": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "idfv": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "limit_ad_tracking": false, - "model": "AOSP on IA Emulator", - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "name": "ADD_TO_CART", - "branch_key": "" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.branch.io/v2/event/standard", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user_data": { - "app_version": "1.0.0", - "screen_dpi": 2, - "developer_identity": "sampath", - "limit_ad_tracking": false, - "model": "AOSP on IA Emulator", - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "name": "ADD_TO_CART", - "branch_key": "" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.branch.io/v2/event/standard", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user_data": { - "os": "iOS", - "os_version": "14.4.1", - "developer_identity": "sampath", - "idfa": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "idfv": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "limit_ad_tracking": false, - "model": "AOSP on IA Emulator", - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "name": "ADD_TO_CART", - "branch_key": "" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - { - "statusCode": 400, - "error": "Event name is required", - "statTags": { - "destination": "branch", - "stage": "transform", - "scope": "exception" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.branch.io/v2/event/custom", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "custom_data": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "content_items": [{}], - "user_data": { - "os": "Android", - "os_version": "9", - "app_version": "1.0.0", - "model": "AOSP on IA Emulator", - "brand": "testBrand", - "screen_dpi": 2, - "screen_height": 1794, - "screen_width": 1080, - "developer_identity": "sampath", - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36", - "android_id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "aaid": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "limit_ad_tracking": true - }, - "name": "sampath", - "branch_key": "" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.branch.io/v2/event/custom", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "custom_data": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "content_items": [{}], - "user_data": { - "os": "iOS", - "os_version": "14.4.1", - "app_version": "1.0.0", - "model": "AOSP on IA Emulator", - "brand": "testBrand", - "screen_dpi": 2, - "screen_height": 1794, - "screen_width": 1080, - "developer_identity": "sampath", - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36", - "idfa": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "idfv": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "limit_ad_tracking": true - }, - "name": "sampath", - "branch_key": "" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - } -] diff --git a/test/__tests__/data/branch_router_input.json b/test/__tests__/data/branch_router_input.json deleted file mode 100644 index 2f78406325d..00000000000 --- a/test/__tests__/data/branch_router_input.json +++ /dev/null @@ -1,128 +0,0 @@ -[ - { - "destination": { - "Config": { - "branchKey": "", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Branch Metrics", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "BRANCH" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "branch test", - "Transformations": [] - }, - "metadata": { - "jobId": 2 - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "product added", - "integrations": { - "All": true - }, - "messageId": "ea5cfab2-3961-4d8a-8187-3d1858c90a9f", - "originalTimestamp": "2020-01-17T04:53:51.185Z", - "properties": { - "name": "sampath" - }, - "receivedAt": "2020-01-17T10:23:52.688+05:30", - "request_ip": "[::1]:64059", - "sentAt": "2020-01-17T04:53:52.667Z", - "timestamp": "2020-01-17T10:23:51.206+05:30", - "type": "track", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "branchKey": "", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Branch Metrics", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "BRANCH" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "branch test", - "Transformations": [] - }, - "metadata": { - "jobId": 2 - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "" - }, - "screen": { - "density": 2 - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "messageId": "ea5cfab2-3961-4d8a-8187-3d1858c90a9f", - "originalTimestamp": "2020-01-17T04:53:51.185Z", - "receivedAt": "2020-01-17T10:23:52.688+05:30", - "request_ip": "[::1]:64059", - "sentAt": "2020-01-17T04:53:52.667Z", - "timestamp": "2020-01-17T10:23:51.206+05:30", - "type": "identify", - "userId": "sampath" - } - } -] diff --git a/test/__tests__/data/branch_router_output.json b/test/__tests__/data/branch_router_output.json deleted file mode 100644 index 15f35bf348e..00000000000 --- a/test/__tests__/data/branch_router_output.json +++ /dev/null @@ -1,120 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.branch.io/v2/event/standard", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "branch_key": "", - "name": "ADD_TO_CART", - "content_items": [ - { - "$product_name": "sampath" - } - ], - "user_data": { - "os": "iOS", - "os_version": "", - "app_version": "1.0.0", - "screen_dpi": 2, - "developer_identity": "sampath", - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "branchKey": "", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Branch Metrics", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "BRANCH" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "branch test", - "Transformations": [] - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api2.branch.io/v2/event/custom", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "branch_key": "", - "name": "sampath", - "custom_data": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "content_items": [{}], - "user_data": { - "os": "iOS", - "os_version": "", - "app_version": "1.0.0", - "screen_dpi": 2, - "developer_identity": "sampath", - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "branchKey": "", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Branch Metrics", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "BRANCH" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "branch test", - "Transformations": [] - } - } -] diff --git a/test/__tests__/data/braze_input.json b/test/__tests__/data/braze_input.json index b4f6e397adb..fb4e41b1890 100644 --- a/test/__tests__/data/braze_input.json +++ b/test/__tests__/data/braze_input.json @@ -2,7 +2,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false, "dataCenter": "us-01" @@ -66,7 +66,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false, "dataCenter": "us-01" @@ -122,7 +122,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false }, @@ -182,7 +182,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false }, @@ -246,7 +246,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false, "dataCenter": "eu-01" @@ -310,7 +310,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false, "dataCenter": "us-01" @@ -372,7 +372,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false, "enableNestedArrayOperations": false @@ -440,7 +440,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false }, @@ -607,7 +607,7 @@ }, "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false }, @@ -672,7 +672,7 @@ }, "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false }, @@ -690,7 +690,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false, "dataCenter": "us-01" @@ -758,7 +758,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false }, @@ -853,7 +853,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false }, @@ -948,7 +948,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false, "enableNestedArrayOperations": true @@ -1061,7 +1061,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false, "enableNestedArrayOperations": true @@ -1168,7 +1168,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false, "dataCenter": "us-01" @@ -1191,7 +1191,7 @@ "city": "Mathura", "country": "India" }, - "email": "anuj.kumar@gmail.com", + "email": "a@gmail.com", "phone": "9988123321", "firstName": "anuj", "lastName": "kumar", @@ -1235,7 +1235,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false, "dataCenter": "us-01" @@ -1258,7 +1258,7 @@ "city": "Mathura", "country": "India" }, - "email": "anuj.kumar@gmail.com", + "email": "a@gmail.com", "phone": "9988123321", "firstName": "anuj", "lastName": "kumar", @@ -1302,7 +1302,7 @@ { "destination": { "Config": { - "restApiKey": "abcd=", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false, "dataCenter": "US-03" @@ -1353,7 +1353,7 @@ { "destination": { "Config": { - "restApiKey": "abcd=", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false, "dataCenter": "US-03" @@ -1403,7 +1403,7 @@ { "destination": { "Config": { - "restApiKey": "abcd=", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false, "dataCenter": "US-03" @@ -1453,7 +1453,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false, "dataCenter": "us-01" @@ -1477,7 +1477,7 @@ "channel": "web", "context": { "traits": { - "email": "ANIL.KUMAR@HOTMAIL.COM", + "email": "A@HOTMAIL.COM", "phone": "9988123321", "firstName": "anil", "lastName": "kumar", @@ -1521,7 +1521,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false, "dataCenter": "us-01" @@ -1663,7 +1663,7 @@ }, "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false, "enableSubscriptionGroupInGroupCall": true @@ -1731,7 +1731,7 @@ }, "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false, "enableSubscriptionGroupInGroupCall": true @@ -1750,7 +1750,7 @@ { "destination": { "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", + "restApiKey": "dummyApiKey", "prefixProperties": true, "useNativeSDK": false }, @@ -1814,5 +1814,146 @@ "type": "track", "userId": "mickeyMouse" } + }, + { + "destination": { + "Config": { + "restApiKey": "dummyApiKey", + "prefixProperties": true, + "useNativeSDK": false, + "sendPurchaseEventWithExtraProperties": true + }, + "DestinationDefinition": { + "DisplayName": "Braze", + "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", + "Name": "BRAZE" + }, + "Enabled": true, + "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", + "Name": "Braze", + "Transformations": [] + }, + "message": { + "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.5" + }, + "ip": "0.0.0.0", + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.5" + }, + "locale": "en-GB", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + }, + "traits": { + "city": "Disney", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + "event": "Order Completed", + "integrations": { + "All": true + }, + "messageId": "aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a", + "originalTimestamp": "2020-01-24T06:29:02.367Z", + "properties": { + "affiliation": "Google Store", + "checkout_id": "fksdjfsdjfisjf9sdfjsd9f", + "coupon": "hasbros", + "currency": "USD", + "discount": 2.5, + "order_id": "50314b8e9bcf000000000000", + "products": [ + { + "category": "Games", + "image_url": "https:///www.example.com/product/path.jpg", + "name": "Monopoly: 3rd Edition", + "price": 0, + "product_id": "507f1f77bcf86cd799439023", + "quantity": 1, + "sku": "45790-32", + "url": "https://www.example.com/product/path" + }, + { + "category": "Games", + "name": "Uno Card Game", + "price": 0, + "product_id": "505bd76785ebb509fc183724", + "quantity": 2, + "sku": "46493-32" + } + ], + "revenue": 25, + "shipping": 3, + "subtotal": 22.5, + "tax": 2, + "total": 27.5 + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "request_ip": "[::1]:53712", + "sentAt": "2020-01-24T06:29:02.368Z", + "timestamp": "2020-01-24T11:59:02.402+05:30", + "type": "track", + "userId": "" + } + }, + { + "destination": { + "Config": { + "restApiKey": "dummyApiKey", + "prefixProperties": true, + "useNativeSDK": false, + "dataCenter": "us-01" + }, + "DestinationDefinition": { + "DisplayName": "Braze", + "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", + "Name": "BRAZE" + }, + "Enabled": true, + "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", + "Name": "Braze", + "Transformations": [] + }, + "message": { + "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context": { + "traits": { + "city": "Disney", + "country": "USA", + "email": 123, + "firstname": "Mickey", + "closed_at": null, + "orderTotal": 0 + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + "integrations": { + "All": true + }, + "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", + "originalTimestamp": "2020-01-24T06:29:02.362Z", + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "request_ip": "[::1]:53709", + "sentAt": "2020-01-24T06:29:02.363Z", + "timestamp": "2020-01-24T11:59:02.402+05:30", + "type": "identify", + "userId": "" + } } ] diff --git a/test/__tests__/data/braze_output.json b/test/__tests__/data/braze_output.json index cf8b188dfd0..ed39930569f 100644 --- a/test/__tests__/data/braze_output.json +++ b/test/__tests__/data/braze_output.json @@ -7,7 +7,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -46,7 +46,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -78,7 +78,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -117,7 +117,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -157,7 +157,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -191,7 +191,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -241,7 +241,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -323,7 +323,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -351,7 +351,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -424,7 +424,7 @@ "files": {}, "headers": { "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256", + "Authorization": "Bearer dummyApiKey", "Content-Type": "application/json" }, "method": "POST", @@ -485,7 +485,7 @@ "files": {}, "headers": { "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256", + "Authorization": "Bearer dummyApiKey", "Content-Type": "application/json" }, "method": "POST", @@ -582,7 +582,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.fra-01.braze.eu/users/track" @@ -667,7 +667,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.fra-01.braze.eu/users/track" @@ -680,7 +680,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -689,7 +689,7 @@ { "country": "India", "dob": "01/01/1971", - "email": "anuj.kumar@gmail.com", + "email": "a@gmail.com", "first_name": "anuj", "gender": "M", "home_city": "Mathura", @@ -719,7 +719,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -728,7 +728,7 @@ { "country": "India", "dob": "01/01/1971", - "email": "anuj.kumar@gmail.com", + "email": "a@gmail.com", "first_name": "anuj", "gender": null, "home_city": "Mathura", @@ -776,7 +776,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer abcd=" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-03.braze.com/users/merge" @@ -797,7 +797,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -805,7 +805,7 @@ "attributes": [ { "dob": "01/01/1971", - "email": "anil.kumar@hotmail.com", + "email": "a@hotmail.com", "first_name": "anil", "gender": null, "image_url": "https://i.kym-cdn.com/entries/icons/mobile/000/034/772/anuj-1.jpg", @@ -834,7 +834,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -895,7 +895,7 @@ "files": {}, "headers": { "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256", + "Authorization": "Bearer dummyApiKey", "Content-Type": "application/json" }, "method": "POST", @@ -923,7 +923,7 @@ "files": {}, "headers": { "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256", + "Authorization": "Bearer dummyApiKey", "Content-Type": "application/json" }, "method": "POST", @@ -939,7 +939,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -963,5 +963,80 @@ }, "files": {}, "userId": "mickeyMouse" + }, + { + "body": { + "FORM": {}, + "JSON": { + "attributes": [ + { + "_update_existing_only": false, + "city": "Disney", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey", + "user_alias": { + "alias_label": "rudder_id", + "alias_name": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" + } + } + ], + "partner": "RudderStack", + "purchases": [ + { + "_update_existing_only": false, + "currency": "USD", + "price": 0, + "product_id": "507f1f77bcf86cd799439023", + "properties": { + "category": "Games", + "image_url": "https:///www.example.com/product/path.jpg", + "name": "Monopoly: 3rd Edition", + "url": "https://www.example.com/product/path" + }, + "quantity": 1, + "time": "2020-01-24T11:59:02.402+05:30", + "user_alias": { + "alias_label": "rudder_id", + "alias_name": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" + } + }, + { + "_update_existing_only": false, + "currency": "USD", + "price": 0, + "product_id": "505bd76785ebb509fc183724", + "properties": { + "category": "Games", + "name": "Uno Card Game" + }, + "quantity": 2, + "time": "2020-01-24T11:59:02.402+05:30", + "user_alias": { + "alias_label": "rudder_id", + "alias_name": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {} + }, + "endpoint": "https://rest.fra-01.braze.eu/users/track", + "files": {}, + "headers": { + "Accept": "application/json", + "Authorization": "Bearer dummyApiKey", + "Content-Type": "application/json" + }, + "method": "POST", + "params": {}, + "type": "REST", + "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "version": "1" + }, + { + "statusCode": 400, + "message": "Invalid email, email must be a valid string" } ] diff --git a/test/__tests__/data/braze_router.json b/test/__tests__/data/braze_router.json new file mode 100644 index 00000000000..33c66bca6d4 --- /dev/null +++ b/test/__tests__/data/braze_router.json @@ -0,0 +1,1034 @@ +{ + "simpleRouterTestData": [ + { + "description": "simple router tests", + "input": [ + { + "destination": { + "Config": { + "restApiKey": "dummyApiKey", + "prefixProperties": true, + "useNativeSDK": false, + "dataCenter": "eu-01" + }, + "DestinationDefinition": { + "DisplayName": "Braze", + "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", + "Name": "BRAZE" + }, + "Enabled": true, + "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", + "Name": "Braze", + "Transformations": [] + }, + "metadata": { + "jobId": 1 + }, + "message": { + "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.5" + }, + "ip": "0.0.0.0", + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.5" + }, + "locale": "en-GB", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + }, + "traits": {}, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + "integrations": { + "All": true + }, + "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", + "originalTimestamp": "2020-01-24T06:29:02.358Z", + "properties": { + "path": "/tests/html/index2.html", + "referrer": "", + "search": "", + "title": "", + "url": "http://localhost/tests/html/index2.html" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "request_ip": "[::1]:53708", + "sentAt": "2020-01-24T06:29:02.359Z", + "timestamp": "2020-01-24T11:59:02.402+05:30", + "type": "page", + "userId": "" + } + }, + { + "destination": { + "Config": { + "restApiKey": "dummyApiKey", + "prefixProperties": true, + "useNativeSDK": false, + "dataCenter": "us-01" + }, + "DestinationDefinition": { + "DisplayName": "Braze", + "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", + "Name": "BRAZE" + }, + "Enabled": true, + "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", + "Name": "Braze", + "Transformations": [] + }, + "metadata": { + "jobId": 2 + }, + "message": { + "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.5" + }, + "ip": "0.0.0.0", + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.5" + }, + "locale": "en-GB", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + }, + "traits": { + "city": "Disney", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + "integrations": { + "All": true + }, + "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", + "originalTimestamp": "2020-01-24T06:29:02.362Z", + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "request_ip": "[::1]:53709", + "sentAt": "2020-01-24T06:29:02.363Z", + "timestamp": "2020-01-24T11:59:02.402+05:30", + "type": "identify", + "userId": "" + } + }, + { + "destination": { + "Config": { + "restApiKey": "dummyApiKey", + "prefixProperties": true, + "useNativeSDK": false, + "dataCenter": "us-01", + "enableSubscriptionGroupInGroupCall": true + }, + "DestinationDefinition": { + "DisplayName": "Braze", + "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", + "Name": "BRAZE" + }, + "Enabled": true, + "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", + "Name": "Braze", + "Transformations": [] + }, + "metadata": { + "jobId": 3 + }, + "message": { + "anonymousId": "56yrtsdfgbgxcb-22b4-401d-aae5-1b994be9a969", + "groupId": "c90f0fd2-2a02-4f2f-bf07-7e7d2c2ed2b1", + "traits": { + "phone": "5055077683", + "subscriptionState": "subscribed" + }, + "userId": "user123", + "type": "group" + } + }, + { + "destination": { + "Config": { + "restApiKey": "dummyApiKey", + "prefixProperties": true, + "useNativeSDK": false, + "dataCenter": "us-01", + "enableSubscriptionGroupInGroupCall": true + }, + "DestinationDefinition": { + "DisplayName": "Braze", + "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", + "Name": "BRAZE" + }, + "Enabled": true, + "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", + "Name": "Braze", + "Transformations": [] + }, + "metadata": { + "jobId": 4 + }, + "message": { + "anonymousId": "dfgdfgdfg-22b4-401d-aae5-1b994be9a969", + "groupId": "58d0a278-b55b-4f10-b7d2-98d1c5dd4c30", + "traits": { + "phone": "5055077683", + "subscriptionState": "subscribed" + }, + "userId": "user877", + "type": "group" + } + }, + { + "destination": { + "Config": { + "restApiKey": "dummyApiKey", + "prefixProperties": true, + "useNativeSDK": false, + "dataCenter": "us-01", + "enableSubscriptionGroupInGroupCall": true + }, + "DestinationDefinition": { + "DisplayName": "Braze", + "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", + "Name": "BRAZE" + }, + "Enabled": true, + "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", + "Name": "Braze", + "Transformations": [] + }, + "metadata": { + "jobId": 5 + }, + "message": { + "type": "alias", + "previousId": "adsfsaf", + "userId": "dsafsdf" + } + }, + { + "destination": { + "Config": { + "restApiKey": "dummyApiKey", + "prefixProperties": true, + "useNativeSDK": false, + "dataCenter": "us-01", + "enableSubscriptionGroupInGroupCall": true + }, + "DestinationDefinition": { + "DisplayName": "Braze", + "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", + "Name": "BRAZE" + }, + "Enabled": true, + "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", + "Name": "Braze", + "Transformations": [] + }, + "metadata": { + "jobId": 6 + }, + "message": { + "type": "alias", + "previousId": "adsfsaf2", + "userId": "dsafsdf2" + } + } + ], + "output": [ + { + "batchedRequest": [ + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://rest.fra-01.braze.eu/users/track", + "headers": { + "Content-Type": "application/json", + "Accept": "application/json", + "Authorization": "Bearer dummyApiKey" + }, + "params": {}, + "body": { + "JSON": { + "partner": "RudderStack", + "events": [ + { + "name": "Page Viewed", + "time": "2020-01-24T11:59:02.402+05:30", + "properties": { + "path": "/tests/html/index2.html", + "referrer": "", + "search": "", + "title": "", + "url": "http://localhost/tests/html/index2.html" + }, + "_update_existing_only": false, + "user_alias": { + "alias_name": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "alias_label": "rudder_id" + } + } + ], + "attributes": [ + { + "email": "mickey@disney.com", + "city": "Disney", + "country": "USA", + "firstname": "Mickey", + "_update_existing_only": false, + "user_alias": { + "alias_name": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "alias_label": "rudder_id" + } + } + ] + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {} + }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://rest.fra-01.braze.eu/v2/subscription/status/set", + "headers": { + "Content-Type": "application/json", + "Accept": "application/json", + "Authorization": "Bearer dummyApiKey" + }, + "params": {}, + "body": { + "JSON": { + "subscription_groups": [ + { + "external_id": ["user123"], + "phones": ["5055077683"], + "subscription_group_id": "c90f0fd2-2a02-4f2f-bf07-7e7d2c2ed2b1", + "subscription_state": "subscribed" + }, + { + "external_id": ["user877"], + "phones": ["5055077683"], + "subscription_group_id": "58d0a278-b55b-4f10-b7d2-98d1c5dd4c30", + "subscription_state": "subscribed" + } + ] + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {} + }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://rest.fra-01.braze.eu/users/merge", + "headers": { + "Content-Type": "application/json", + "Accept": "application/json", + "Authorization": "Bearer dummyApiKey" + }, + "params": {}, + "body": { + "JSON": { + "merge_updates": [ + { + "identifier_to_keep": { + "external_id": "dsafsdf" + }, + "identifier_to_merge": { + "external_id": "adsfsaf" + } + }, + { + "identifier_to_keep": { + "external_id": "dsafsdf2" + }, + "identifier_to_merge": { + "external_id": "adsfsaf2" + } + } + ] + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {} + } + ], + "metadata": [ + { + "jobId": 1 + }, + { + "jobId": 2 + }, + { + "jobId": 3 + }, + { + "jobId": 4 + }, + { + "jobId": 5 + }, + { + "jobId": 6 + } + ], + "batched": true, + "statusCode": 200, + "destination": { + "Config": { + "restApiKey": "dummyApiKey", + "prefixProperties": true, + "useNativeSDK": false, + "dataCenter": "eu-01" + }, + "DestinationDefinition": { + "DisplayName": "Braze", + "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", + "Name": "BRAZE" + }, + "Enabled": true, + "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", + "Name": "Braze", + "Transformations": [] + } + } + ] + } + ], + "dedupEnabledRouterTestData": [ + { + "description": "dedup enabled router tests", + "input": [ + { + "destination": { + "ID": "2N9UakqKF0D35wfzSeofIxPdL8X", + "Name": "Braze-Test", + "Config": { + "appKey": "0e5440c3-226b-45d0-91b5-c64da56cde16", + "blacklistedEvents": [], + "dataCenter": "US-03", + "enableNestedArrayOperations": false, + "enableSubscriptionGroupInGroupCall": false, + "eventFilteringOption": "disable", + "oneTrustCookieCategories": [], + "restApiKey": "dummyApiKey", + "supportDedup": true, + "trackAnonymousUser": true, + "whitelistedEvents": [] + }, + "Enabled": true, + "WorkspaceID": "27O0bhB6p5ehfOWeeZlOSsSDTLg", + "Transformations": [], + "IsProcessorEnabled": true, + "RevisionID": "2N9Uaf2tWq2QRmatBWQm03Rz6qX" + }, + "metadata": { + "jobId": 1 + }, + "message": { + "type": "track", + "event": "Sign In Completed", + "sentAt": "2023-03-10T18:36:04.738Z", + "userId": "braze_test_user", + "channel": "web", + "context": { + "locale": "en-US", + "traits": { + "subscribe_once": true, + "pwa": true, + "email": "jackson24miranda@gmail.com", + "lastName": "Miranda", + "firstName": "Spencer", + "is_registered": true, + "last_identify": "GOOGLE_SIGN_IN", + "account_region": "ON", + "is_pickup_selected": "false", + "has_tradein_attempt": false, + "custom_obj_attr": { + "key1": "value1", + "key2": "value2", + "key4": "value4" + }, + "custom_arr": [1, 2, "str1"] + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "2.9.5" + }, + "campaign": {}, + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" + }, + "rudderId": "4118560d-e4fc-4fd1-a734-9c69eae2c047", + "messageId": "1a342814-a882-4b65-9cc9-347544997268", + "timestamp": "2023-03-10T18:36:05.028Z", + "properties": { + "cause": "/redirector", + "method": "GOOGLE", + "region": "ON", + "orderId": "6179367977099", + "order_id": "6179367977099", + "webhookurl": "https://my.test.com", + "countingMethod": "standard", + "is_first_time_signin": false + }, + "receivedAt": "2023-03-18T01:41:42.257+05:30", + "request_ip": "[::1]", + "anonymousId": "77e278c9-e984-4cdd-950c-cd0b61befd03", + "originalTimestamp": "2023-03-10T18:36:04.733Z" + } + }, + { + "destination": { + "ID": "2N9UakqKF0D35wfzSeofIxPdL8X", + "Name": "Braze-Test", + "Config": { + "appKey": "0e5440c3-226b-45d0-91b5-c64da56cde16", + "blacklistedEvents": [], + "dataCenter": "US-03", + "enableNestedArrayOperations": false, + "enableSubscriptionGroupInGroupCall": false, + "eventFilteringOption": "disable", + "oneTrustCookieCategories": [], + "restApiKey": "dummyApiKey", + "supportDedup": true, + "trackAnonymousUser": true, + "whitelistedEvents": [] + }, + "Enabled": true, + "WorkspaceID": "27O0bhB6p5ehfOWeeZlOSsSDTLg", + "Transformations": [], + "IsProcessorEnabled": true, + "RevisionID": "2N9Uaf2tWq2QRmatBWQm03Rz6qX" + }, + "metadata": { + "jobId": 2 + }, + "message": { + "type": "track", + "event": "Sign In Completed", + "sentAt": "2023-03-10T18:36:04.738Z", + "userId": "braze_test_user", + "channel": "web", + "context": { + "locale": "en-US", + "traits": { + "subscribe_once": true, + "pwa": true, + "email": "jackson24miranda@gmail.com", + "lastName": "Miranda 2", + "firstName": "Spencer", + "is_registered": true, + "last_identify": "GOOGLE_SIGN_IN", + "account_region": "ON", + "is_pickup_selected": "true", + "has_tradein_attempt": false, + "custom_obj_attr": { + "key1": "value1", + "key2": "value2", + "key4": "value4" + }, + "custom_arr": ["1", "2", "str1"] + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "2.9.5" + }, + "campaign": {}, + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" + }, + "rudderId": "4118560d-e4fc-4fd1-a734-9c69eae2c047", + "messageId": "1a342814-a882-4b65-9cc9-347544997268", + "timestamp": "2023-03-10T18:36:05.028Z", + "properties": { + "cause": "/redirector", + "method": "GOOGLE", + "region": "ON", + "orderId": "6179367977099", + "order_id": "6179367977099", + "webhookurl": "https://my.test.com", + "countingMethod": "standard", + "is_first_time_signin": false + }, + "receivedAt": "2023-03-18T01:41:42.257+05:30", + "request_ip": "[::1]", + "anonymousId": "77e278c9-e984-4cdd-950c-cd0b61befd03", + "originalTimestamp": "2023-03-10T18:36:04.733Z" + } + }, + { + "destination": { + "ID": "2N9UakqKF0D35wfzSeofIxPdL8X", + "Name": "Braze-Test", + "Config": { + "appKey": "0e5440c3-226b-45d0-91b5-c64da56cde16", + "blacklistedEvents": [], + "dataCenter": "US-03", + "enableNestedArrayOperations": false, + "enableSubscriptionGroupInGroupCall": false, + "eventFilteringOption": "disable", + "oneTrustCookieCategories": [], + "restApiKey": "dummyApiKey", + "supportDedup": true, + "trackAnonymousUser": true, + "whitelistedEvents": [] + }, + "Enabled": true, + "WorkspaceID": "27O0bhB6p5ehfOWeeZlOSsSDTLg", + "Transformations": [], + "IsProcessorEnabled": true, + "RevisionID": "2N9Uaf2tWq2QRmatBWQm03Rz6qX" + }, + "metadata": { + "jobId": 3 + }, + "message": { + "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.5" + }, + "ip": "0.0.0.0", + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.5" + }, + "locale": "en-GB", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + }, + "traits": { + "city": "Disney", + "country": "USA", + "email": "mickey@disney.com", + "firstName": "Mickey" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + "integrations": { + "All": true + }, + "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", + "type": "identify", + "userId": "user@50" + } + }, + { + "destination": { + "ID": "2N9UakqKF0D35wfzSeofIxPdL8X", + "Name": "Braze-Test", + "Config": { + "appKey": "0e5440c3-226b-45d0-91b5-c64da56cde16", + "blacklistedEvents": [], + "dataCenter": "US-03", + "enableNestedArrayOperations": false, + "enableSubscriptionGroupInGroupCall": false, + "eventFilteringOption": "disable", + "oneTrustCookieCategories": [], + "restApiKey": "dummyApiKey", + "supportDedup": true, + "trackAnonymousUser": true, + "whitelistedEvents": [] + }, + "Enabled": true, + "WorkspaceID": "27O0bhB6p5ehfOWeeZlOSsSDTLg", + "Transformations": [], + "IsProcessorEnabled": true, + "RevisionID": "2N9Uaf2tWq2QRmatBWQm03Rz6qX" + }, + "metadata": { + "jobId": 4 + }, + "message": { + "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.5" + }, + "ip": "0.0.0.0", + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.5" + }, + "locale": "en-GB", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + }, + "traits": { + "city": "Disney", + "country": "USA", + "email": "mickey@disney.com", + "firstName": "Mickey" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + "integrations": { + "All": true + }, + "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", + "type": "identify", + "userId": "user@50" + } + } + ], + "newTransformerOutput": [ + { + "batchedRequest": [ + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://rest.iad-03.braze.com/users/track", + "headers": { + "Content-Type": "application/json", + "Accept": "application/json", + "Authorization": "Bearer dummyApiKey" + }, + "params": {}, + "body": { + "JSON": { + "partner": "RudderStack", + "attributes": [ + { + "first_name": "Spencer", + "subscribe_once": true, + "pwa": true, + "external_id": "braze_test_user", + "custom_obj_attr": { + "key1": "value1", + "key2": "value2", + "key4": "value4" + } + }, + { + "last_name": "Miranda 2", + "is_pickup_selected": "true", + "external_id": "braze_test_user", + "custom_arr": ["1", "2", "str1"] + }, + { + "city": "Disney", + "country": "USA", + "email": "mickey@disney.com", + "external_id": "user@50", + "first_name": "Mickey" + } + ], + "events": [ + { + "name": "Sign In Completed", + "time": "2023-03-10T18:36:05.028Z", + "properties": { + "cause": "/redirector", + "method": "GOOGLE", + "region": "ON", + "orderId": "6179367977099", + "order_id": "6179367977099", + "webhookurl": "https://my.test.com", + "countingMethod": "standard", + "is_first_time_signin": false + }, + "external_id": "braze_test_user" + }, + { + "name": "Sign In Completed", + "time": "2023-03-10T18:36:05.028Z", + "properties": { + "cause": "/redirector", + "method": "GOOGLE", + "region": "ON", + "orderId": "6179367977099", + "order_id": "6179367977099", + "webhookurl": "https://my.test.com", + "countingMethod": "standard", + "is_first_time_signin": false + }, + "external_id": "braze_test_user" + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + ], + "metadata": [ + { + "jobId": 1 + }, + { + "jobId": 2 + }, + { + "jobId": 3 + } + ], + "batched": true, + "statusCode": 200, + "destination": { + "ID": "2N9UakqKF0D35wfzSeofIxPdL8X", + "Name": "Braze-Test", + "Config": { + "appKey": "0e5440c3-226b-45d0-91b5-c64da56cde16", + "blacklistedEvents": [], + "dataCenter": "US-03", + "enableNestedArrayOperations": false, + "enableSubscriptionGroupInGroupCall": false, + "eventFilteringOption": "disable", + "oneTrustCookieCategories": [], + "restApiKey": "dummyApiKey", + "supportDedup": true, + "trackAnonymousUser": true, + "whitelistedEvents": [] + }, + "Enabled": true, + "WorkspaceID": "27O0bhB6p5ehfOWeeZlOSsSDTLg", + "Transformations": [], + "IsProcessorEnabled": true, + "RevisionID": "2N9Uaf2tWq2QRmatBWQm03Rz6qX" + } + }, + { + "error": "[Braze Deduplication]: Duplicate user detected, the user is dropped", + "statTags": {}, + "statusCode": 298, + "batched": false, + "metadata": [ + { + "jobId": 4 + } + ], + "destination": { + "ID": "2N9UakqKF0D35wfzSeofIxPdL8X", + "Name": "Braze-Test", + "Config": { + "appKey": "0e5440c3-226b-45d0-91b5-c64da56cde16", + "blacklistedEvents": [], + "dataCenter": "US-03", + "enableNestedArrayOperations": false, + "enableSubscriptionGroupInGroupCall": false, + "eventFilteringOption": "disable", + "oneTrustCookieCategories": [], + "restApiKey": "dummyApiKey", + "supportDedup": true, + "trackAnonymousUser": true, + "whitelistedEvents": [] + }, + "Enabled": true, + "WorkspaceID": "27O0bhB6p5ehfOWeeZlOSsSDTLg", + "Transformations": [], + "IsProcessorEnabled": true, + "RevisionID": "2N9Uaf2tWq2QRmatBWQm03Rz6qX" + } + } + ], + "oldTransformerOutput": [ + { + "batchedRequest": [ + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://rest.iad-03.braze.com/users/track", + "headers": { + "Content-Type": "application/json", + "Accept": "application/json", + "Authorization": "Bearer dummyApiKey" + }, + "params": {}, + "body": { + "JSON": { + "partner": "RudderStack", + "attributes": [ + { + "first_name": "Spencer", + "subscribe_once": true, + "pwa": true, + "external_id": "braze_test_user", + "custom_obj_attr": { + "key1": "value1", + "key2": "value2", + "key4": "value4" + } + }, + { + "last_name": "Miranda 2", + "is_pickup_selected": "true", + "external_id": "braze_test_user", + "custom_arr": ["1", "2", "str1"] + }, + { + "city": "Disney", + "country": "USA", + "email": "mickey@disney.com", + "external_id": "user@50", + "first_name": "Mickey" + } + ], + "events": [ + { + "name": "Sign In Completed", + "time": "2023-03-10T18:36:05.028Z", + "properties": { + "cause": "/redirector", + "method": "GOOGLE", + "region": "ON", + "orderId": "6179367977099", + "order_id": "6179367977099", + "webhookurl": "https://my.test.com", + "countingMethod": "standard", + "is_first_time_signin": false + }, + "external_id": "braze_test_user" + }, + { + "name": "Sign In Completed", + "time": "2023-03-10T18:36:05.028Z", + "properties": { + "cause": "/redirector", + "method": "GOOGLE", + "region": "ON", + "orderId": "6179367977099", + "order_id": "6179367977099", + "webhookurl": "https://my.test.com", + "countingMethod": "standard", + "is_first_time_signin": false + }, + "external_id": "braze_test_user" + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + ], + "metadata": [ + { + "jobId": 1 + }, + { + "jobId": 2 + }, + { + "jobId": 3 + } + ], + "batched": true, + "statusCode": 200, + "destination": { + "ID": "2N9UakqKF0D35wfzSeofIxPdL8X", + "Name": "Braze-Test", + "Config": { + "appKey": "0e5440c3-226b-45d0-91b5-c64da56cde16", + "blacklistedEvents": [], + "dataCenter": "US-03", + "enableNestedArrayOperations": false, + "enableSubscriptionGroupInGroupCall": false, + "eventFilteringOption": "disable", + "oneTrustCookieCategories": [], + "restApiKey": "dummyApiKey", + "supportDedup": true, + "trackAnonymousUser": true, + "whitelistedEvents": [] + }, + "Enabled": true, + "WorkspaceID": "27O0bhB6p5ehfOWeeZlOSsSDTLg", + "Transformations": [], + "IsProcessorEnabled": true, + "RevisionID": "2N9Uaf2tWq2QRmatBWQm03Rz6qX" + } + }, + { + "error": "[Braze Deduplication]: Duplicate user detected, the user is dropped", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation" + }, + "statusCode": 400, + "batched": false, + "metadata": [ + { + "jobId": 4 + } + ], + "destination": { + "ID": "2N9UakqKF0D35wfzSeofIxPdL8X", + "Name": "Braze-Test", + "Config": { + "appKey": "0e5440c3-226b-45d0-91b5-c64da56cde16", + "blacklistedEvents": [], + "dataCenter": "US-03", + "enableNestedArrayOperations": false, + "enableSubscriptionGroupInGroupCall": false, + "eventFilteringOption": "disable", + "oneTrustCookieCategories": [], + "restApiKey": "dummyApiKey", + "supportDedup": true, + "trackAnonymousUser": true, + "whitelistedEvents": [] + }, + "Enabled": true, + "WorkspaceID": "27O0bhB6p5ehfOWeeZlOSsSDTLg", + "Transformations": [], + "IsProcessorEnabled": true, + "RevisionID": "2N9Uaf2tWq2QRmatBWQm03Rz6qX" + } + } + ] + } + ] +} diff --git a/test/__tests__/data/braze_router_input.json b/test/__tests__/data/braze_router_input.json deleted file mode 100644 index edc167dc672..00000000000 --- a/test/__tests__/data/braze_router_input.json +++ /dev/null @@ -1,416 +0,0 @@ -{ - "simpleRouterRequests": [ - { - "destination": { - "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "dataCenter": "eu-01" - }, - "DestinationDefinition": { - "DisplayName": "Braze", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "BRAZE" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Braze", - "Transformations": [] - }, - "metadata": { - "jobId": 2 - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originalTimestamp": "2020-01-24T06:29:02.358Z", - "properties": { - "path": "/tests/html/index2.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index2.html" - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.359Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "page", - "userId": "" - } - }, - { - "destination": { - "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "dataCenter": "us-01" - }, - "DestinationDefinition": { - "DisplayName": "Braze", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "BRAZE" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Braze", - "Transformations": [] - }, - "metadata": { - "jobId": 2 - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstname": "Mickey" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53709", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - } - }, - { - "destination": { - "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "dataCenter": "us-01", - "enableSubscriptionGroupInGroupCall": true - }, - "DestinationDefinition": { - "DisplayName": "Braze", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "BRAZE" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Braze", - "Transformations": [] - }, - "metadata": { - "jobId": 2 - }, - "message": { - "anonymousId": "56yrtsdfgbgxcb-22b4-401d-aae5-1b994be9a969", - "groupId": "c90f0fd2-2a02-4f2f-bf07-7e7d2c2ed2b1", - "traits": { - "phone": "5055077683", - "subscriptionState": "subscribed" - }, - "userId": "user123", - "type": "group" - } - }, - { - "destination": { - "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "dataCenter": "us-01", - "enableSubscriptionGroupInGroupCall": true - }, - "DestinationDefinition": { - "DisplayName": "Braze", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "BRAZE" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Braze", - "Transformations": [] - }, - "metadata": { - "jobId": 2 - }, - "message": { - "anonymousId": "dfgdfgdfg-22b4-401d-aae5-1b994be9a969", - "groupId": "58d0a278-b55b-4f10-b7d2-98d1c5dd4c30", - "traits": { - "phone": "5055077683", - "subscriptionState": "subscribed" - }, - "userId": "user877", - "type": "group" - } - }, - { - "destination": { - "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "dataCenter": "us-01", - "enableSubscriptionGroupInGroupCall": true - }, - "DestinationDefinition": { - "DisplayName": "Braze", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "BRAZE" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Braze", - "Transformations": [] - }, - "metadata": { - "jobId": 2 - }, - "message": { - "type": "alias", - "previousId": "adsfsaf", - "userId": "dsafsdf" - } - }, - { - "destination": { - "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "dataCenter": "us-01", - "enableSubscriptionGroupInGroupCall": true - }, - "DestinationDefinition": { - "DisplayName": "Braze", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "BRAZE" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Braze", - "Transformations": [] - }, - "metadata": { - "jobId": 2 - }, - "message": { - "type": "alias", - "previousId": "adsfsaf2", - "userId": "dsafsdf2" - } - } - ], - "dedupEnabledRouterRequests": [ - { - "destination": { - "ID": "2N9UakqKF0D35wfzSeofIxPdL8X", - "Name": "Braze-Test", - "Config": { - "appKey": "0e5440c3-226b-45d0-91b5-c64da56cde16", - "blacklistedEvents": [], - "dataCenter": "US-03", - "enableNestedArrayOperations": false, - "enableSubscriptionGroupInGroupCall": false, - "eventFilteringOption": "disable", - "oneTrustCookieCategories": [], - "restApiKey": "0066a73e-d9b3-4d1f-b17d-8cf410505e36", - "supportDedup": true, - "trackAnonymousUser": true, - "whitelistedEvents": [] - }, - "Enabled": true, - "WorkspaceID": "27O0bhB6p5ehfOWeeZlOSsSDTLg", - "Transformations": [], - "IsProcessorEnabled": true, - "RevisionID": "2N9Uaf2tWq2QRmatBWQm03Rz6qX" - }, - "metadata": { - "jobId": 1 - }, - "message": { - "type": "track", - "event": "Sign In Completed", - "sentAt": "2023-03-10T18:36:04.738Z", - "userId": "braze_test_user", - "channel": "web", - "context": { - "locale": "en-US", - "traits": { - "subscribe_once": true, - "pwa": true, - "email": "jackson24miranda@gmail.com", - "lastName": "Miranda", - "firstName": "Spencer", - "is_registered": true, - "last_identify": "GOOGLE_SIGN_IN", - "account_region": "ON", - "is_pickup_selected": "false", - "has_tradein_attempt": false, - "custom_obj_attr": { - "key1": "value1", - "key2": "value2", - "key4": "value4" - }, - "custom_arr": [1, 2, "str1"] - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.9.5" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" - }, - "rudderId": "4118560d-e4fc-4fd1-a734-9c69eae2c047", - "messageId": "1a342814-a882-4b65-9cc9-347544997268", - "timestamp": "2023-03-10T18:36:05.028Z", - "properties": { - "cause": "/redirector", - "method": "GOOGLE", - "region": "ON", - "orderId": "6179367977099", - "order_id": "6179367977099", - "webhookurl": "https://my.test.com", - "countingMethod": "standard", - "is_first_time_signin": false - }, - "receivedAt": "2023-03-18T01:41:42.257+05:30", - "request_ip": "[::1]", - "anonymousId": "77e278c9-e984-4cdd-950c-cd0b61befd03", - "originalTimestamp": "2023-03-10T18:36:04.733Z" - } - }, - { - "destination": { - "ID": "2N9UakqKF0D35wfzSeofIxPdL8X", - "Name": "Braze-Test", - "Config": { - "appKey": "0e5440c3-226b-45d0-91b5-c64da56cde16", - "blacklistedEvents": [], - "dataCenter": "US-03", - "enableNestedArrayOperations": false, - "enableSubscriptionGroupInGroupCall": false, - "eventFilteringOption": "disable", - "oneTrustCookieCategories": [], - "restApiKey": "0066a73e-d9b3-4d1f-b17d-8cf410505e36", - "supportDedup": true, - "trackAnonymousUser": true, - "whitelistedEvents": [] - }, - "Enabled": true, - "WorkspaceID": "27O0bhB6p5ehfOWeeZlOSsSDTLg", - "Transformations": [], - "IsProcessorEnabled": true, - "RevisionID": "2N9Uaf2tWq2QRmatBWQm03Rz6qX" - }, - "metadata": { - "jobId": 2 - }, - "message": { - "type": "track", - "event": "Sign In Completed", - "sentAt": "2023-03-10T18:36:04.738Z", - "userId": "braze_test_user", - "channel": "web", - "context": { - "locale": "en-US", - "traits": { - "subscribe_once": true, - "pwa": true, - "email": "jackson24miranda@gmail.com", - "lastName": "Miranda 2", - "firstName": "Spencer", - "is_registered": true, - "last_identify": "GOOGLE_SIGN_IN", - "account_region": "ON", - "is_pickup_selected": "true", - "has_tradein_attempt": false, - "custom_obj_attr": { - "key1": "value1", - "key2": "value2", - "key4": "value4" - }, - "custom_arr": ["1", "2", "str1"] - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "2.9.5" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" - }, - "rudderId": "4118560d-e4fc-4fd1-a734-9c69eae2c047", - "messageId": "1a342814-a882-4b65-9cc9-347544997268", - "timestamp": "2023-03-10T18:36:05.028Z", - "properties": { - "cause": "/redirector", - "method": "GOOGLE", - "region": "ON", - "orderId": "6179367977099", - "order_id": "6179367977099", - "webhookurl": "https://my.test.com", - "countingMethod": "standard", - "is_first_time_signin": false - }, - "receivedAt": "2023-03-18T01:41:42.257+05:30", - "request_ip": "[::1]", - "anonymousId": "77e278c9-e984-4cdd-950c-cd0b61befd03", - "originalTimestamp": "2023-03-10T18:36:04.733Z" - } - } - ] -} diff --git a/test/__tests__/data/braze_router_output.json b/test/__tests__/data/braze_router_output.json deleted file mode 100644 index f539d9d977a..00000000000 --- a/test/__tests__/data/braze_router_output.json +++ /dev/null @@ -1,281 +0,0 @@ -{ - "simpleRouterResponse": [ - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://rest.fra-01.braze.eu/users/track", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" - }, - "params": {}, - "body": { - "JSON": { - "partner": "RudderStack", - "events": [ - { - "name": "Page Viewed", - "time": "2020-01-24T11:59:02.402+05:30", - "properties": { - "path": "/tests/html/index2.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index2.html" - }, - "_update_existing_only": false, - "user_alias": { - "alias_name": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "alias_label": "rudder_id" - } - } - ], - "attributes": [ - { - "email": "mickey@disney.com", - "city": "Disney", - "country": "USA", - "firstname": "Mickey", - "_update_existing_only": false, - "user_alias": { - "alias_name": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "alias_label": "rudder_id" - } - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://rest.fra-01.braze.eu/v2/subscription/status/set", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" - }, - "params": {}, - "body": { - "JSON": { - "subscription_groups": [ - { - "external_id": ["user123"], - "phones": ["5055077683"], - "subscription_group_id": "c90f0fd2-2a02-4f2f-bf07-7e7d2c2ed2b1", - "subscription_state": "subscribed" - }, - { - "external_id": ["user877"], - "phones": ["5055077683"], - "subscription_group_id": "58d0a278-b55b-4f10-b7d2-98d1c5dd4c30", - "subscription_state": "subscribed" - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://rest.fra-01.braze.eu/users/merge", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json", - "Authorization": "Bearer 9432f11f70f8ce386f5110c8c924b3ec4f825256" - }, - "params": {}, - "body": { - "JSON": { - "merge_updates": [ - { - "identifier_to_keep": { - "external_id": "dsafsdf" - }, - "identifier_to_merge": { - "external_id": "adsfsaf" - } - }, - { - "identifier_to_keep": { - "external_id": "dsafsdf2" - }, - "identifier_to_merge": { - "external_id": "adsfsaf2" - } - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "jobId": 2 - }, - { - "jobId": 2 - }, - { - "jobId": 2 - }, - { - "jobId": 2 - }, - { - "jobId": 2 - }, - { - "jobId": 2 - } - ], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "restApiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "dataCenter": "eu-01" - }, - "DestinationDefinition": { - "DisplayName": "Braze", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "BRAZE" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Braze", - "Transformations": [] - } - } - ], - "dedupEnabledRouterResponse": [ - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://rest.iad-03.braze.com/users/track", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json", - "Authorization": "Bearer 0066a73e-d9b3-4d1f-b17d-8cf410505e36" - }, - "params": {}, - "body": { - "JSON": { - "partner": "RudderStack", - "attributes": [ - { - "first_name": "Spencer", - "subscribe_once": true, - "pwa": true, - "external_id": "braze_test_user", - "custom_obj_attr": { - "key1": "value1", - "key2": "value2", - "key4": "value4" - } - }, - { - "last_name": "Miranda 2", - "is_pickup_selected": "true", - "external_id": "braze_test_user", - "custom_arr": ["1", "2", "str1"] - } - ], - "events": [ - { - "name": "Sign In Completed", - "time": "2023-03-10T18:36:05.028Z", - "properties": { - "cause": "/redirector", - "method": "GOOGLE", - "region": "ON", - "orderId": "6179367977099", - "order_id": "6179367977099", - "webhookurl": "https://my.test.com", - "countingMethod": "standard", - "is_first_time_signin": false - }, - "external_id": "braze_test_user" - }, - { - "name": "Sign In Completed", - "time": "2023-03-10T18:36:05.028Z", - "properties": { - "cause": "/redirector", - "method": "GOOGLE", - "region": "ON", - "orderId": "6179367977099", - "order_id": "6179367977099", - "webhookurl": "https://my.test.com", - "countingMethod": "standard", - "is_first_time_signin": false - }, - "external_id": "braze_test_user" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "jobId": 1 - }, - { - "jobId": 2 - } - ], - "batched": true, - "statusCode": 200, - "destination": { - "ID": "2N9UakqKF0D35wfzSeofIxPdL8X", - "Name": "Braze-Test", - "Config": { - "appKey": "0e5440c3-226b-45d0-91b5-c64da56cde16", - "blacklistedEvents": [], - "dataCenter": "US-03", - "enableNestedArrayOperations": false, - "enableSubscriptionGroupInGroupCall": false, - "eventFilteringOption": "disable", - "oneTrustCookieCategories": [], - "restApiKey": "0066a73e-d9b3-4d1f-b17d-8cf410505e36", - "supportDedup": true, - "trackAnonymousUser": true, - "whitelistedEvents": [] - }, - "Enabled": true, - "WorkspaceID": "27O0bhB6p5ehfOWeeZlOSsSDTLg", - "Transformations": [], - "IsProcessorEnabled": true, - "RevisionID": "2N9Uaf2tWq2QRmatBWQm03Rz6qX" - } - } - ] -} diff --git a/test/__tests__/data/campaign_manager.json b/test/__tests__/data/campaign_manager.json deleted file mode 100644 index 562c889118e..00000000000 --- a/test/__tests__/data/campaign_manager.json +++ /dev/null @@ -1,360 +0,0 @@ -[ - { - "description": "Track - batch insert Call", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Promotion Clicked", - "type": "track", - "originalTimestamp": "2022-11-17T00:22:02.903+05:30", - "properties": { - "profileId": "34245", - "floodlightConfigurationId": "213123123", - "ordinal": "string", - "floodlightActivityId": "456543345245", - "value": "756", - "encryptedUserIdCandidates": ["dfghjbnm"], - "quantity": "455678", - "encryptionSource": "AD_SERVING", - "encryptionEntityId": "3564523", - "encryptionEntityType": "DCM_ACCOUNT", - "requestType": "batchinsert" - }, - "type": "track", - "event": "event test", - "anonymousId": "randomId", - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "profileId": "5343234", - "treatmentForUnderage": false, - "limitAdTracking": false, - "childDirectedTreatment": false, - "nonPersonalizedAd": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/34245/conversions/batchinsert", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "kind": "dfareporting#conversionsBatchInsertRequest", - "encryptionInfo": { - "kind": "dfareporting#encryptionInfo", - "encryptionSource": "AD_SERVING", - "encryptionEntityId": "3564523", - "encryptionEntityType": "DCM_ACCOUNT" - }, - "conversions": [ - { - "floodlightConfigurationId": "213123123", - "ordinal": "string", - "timestampMicros": "1668624722000000", - "floodlightActivityId": "456543345245", - "quantity": "455678", - "value": 756, - "encryptedUserIdCandidates": ["dfghjbnm"], - "limitAdTracking": false, - "childDirectedTreatment": false, - "treatmentForUnderage": false, - "nonPersonalizedAd": false - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track - batch update Call", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Promotion Clicked", - "type": "track", - "originalTimestamp": "2022-11-17T00:22:02.903+05:30", - "properties": { - "profileId": "34245", - "floodlightConfigurationId": "213123123", - "ordinal": "string", - "floodlightActivityId": "456543345245", - "value": "756", - "quantity": "455678", - "gclid": "string", - "encryptionSource": "AD_SERVING", - "encryptionEntityId": "3564523", - "encryptionEntityType": "DCM_ACCOUNT", - "requestType": "batchupdate" - }, - "type": "track", - "event": "event test", - "anonymousId": "randomId", - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "profileId": "5343234", - "treatmentForUnderage": false, - "limitAdTracking": false, - "childDirectedTreatment": false, - "nonPersonalizedAd": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/34245/conversions/batchupdate", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "kind": "dfareporting#conversionsBatchUpdateRequest", - "conversions": [ - { - "floodlightConfigurationId": "213123123", - "ordinal": "string", - "timestampMicros": "1668624722000000", - "floodlightActivityId": "456543345245", - "quantity": "455678", - "value": 756, - "gclid": "string", - "treatmentForUnderage": false, - "nonPersonalizedAd": false - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track - batch insert Call", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Promotion Clicked", - "type": "track", - "originalTimestamp": "2022-11-17T00:22:02.903+05:30", - "properties": { - "profileId": "34245", - "floodlightConfigurationId": "213123123", - "ordinal": "string", - "floodlightActivityId": "456543345245", - "mobileDeviceId": "string", - "value": "756", - "encryptedUserIdCandidates": ["dfghjbnm"], - "quantity": "455678", - "gclid": "string", - "matchId": "string", - "dclid": "string", - "impressionId": "string", - "requestType": "batchinsert" - }, - "type": "track", - "event": "event test", - "anonymousId": "randomId", - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "profileId": "5343234", - "treatmentForUnderage": false, - "limitAdTracking": false, - "childDirectedTreatment": false, - "nonPersonalizedAd": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": { - "statusCode": 400, - "error": "[CAMPAIGN MANAGER (DCM)]: If encryptedUserId or encryptedUserIdCandidates is used, provide proper values for properties.encryptionEntityType , properties.encryptionSource and properties.encryptionEntityId", - "statTags": { - "destination": "blueshift", - "stage": "transform", - "scope": "exception" - } - } - } -] diff --git a/test/__tests__/data/campaign_manager_proxy_input.json b/test/__tests__/data/campaign_manager_proxy_input.json deleted file mode 100644 index 5eb5f162038..00000000000 --- a/test/__tests__/data/campaign_manager_proxy_input.json +++ /dev/null @@ -1,96 +0,0 @@ -[ - { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/437689/conversions/batchupdate", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "kind": "dfareporting#conversionsBatchInsertRequest", - "encryptionInfo": { - "kind": "dfareporting#encryptionInfo", - "encryptionSource": "AD_SERVING", - "encryptionEntityId": "3564523", - "encryptionEntityType": "DCM_ACCOUNT" - }, - "conversions": [ - { - "timestampMicros": "1668624722000000", - "floodlightConfigurationId": "213123123", - "ordinal": "string", - "floodlightActivityId": "456543345245", - "mobileDeviceId": "string", - "value": 7, - "encryptedUserIdCandidates": ["dfghjbnm"], - "gclid": "string", - "matchId": "string", - "dclid": "string", - "impressionId": "string", - "limitAdTracking": true, - "childDirectedTreatment": true - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - } - }, - { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/437689/conversions/batchupdate", - "headers": { - "Authorization": "Bearer fgvbjghv", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "kind": "dfareporting#conversionsBatchUpdateRequest", - "encryptionInfo": { - "kind": "dfareporting#encryptionInfo", - "encryptionSource": "AD_SERVING", - "encryptionEntityId": "3564523", - "encryptionEntityType": "DCM_ACCOUNT" - }, - "conversions": [ - { - "timestampMicros": "1668624722000000", - "floodlightConfigurationId": "213123123", - "ordinal": "string", - "floodlightActivityId": "456543345245", - "mobileDeviceId": "string", - "value": 7, - "encryptedUserIdCandidates": ["dfghjbnm"], - "gclid": "string", - "matchId": "string", - "dclid": "string", - "impressionId": "string", - "limitAdTracking": true, - "childDirectedTreatment": true - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - } - } -] diff --git a/test/__tests__/data/campaign_manager_proxy_output.json b/test/__tests__/data/campaign_manager_proxy_output.json deleted file mode 100644 index c5dcc4559f3..00000000000 --- a/test/__tests__/data/campaign_manager_proxy_output.json +++ /dev/null @@ -1,51 +0,0 @@ -[ - { - "output": { - "destinationResponse": { - "error": { - "code": 403, - "message": "The caller does not have permission", - "errors": [ - { - "message": "Invalid Credentials", - "domain": "global", - "reason": "authError", - "location": "Authorization", - "locationType": "header" - } - ], - "status": "PERMISSION_DENIED" - } - }, - "message": "Campaign Manager: Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project. during CAMPAIGN_MANAGER response transformation", - "statTags": { - "destType": "CAMPAIGN_MANAGER", - "errorAt": "proxy", - "scope": "exception", - "stage": "responseTransform" - }, - "status": 403 - } - }, - { - "output": { - "status": 200, - "message": "[CAMPAIGN_MANAGER Response Handler] - Request Processed Successfully", - "destinationResponse": { - "response": [ - { - "adjustmentType": "ENHANCEMENT", - "conversionAction": "customers/7693729833/conversionActions/874224905", - "adjustmentDateTime": "2021-01-01 12:32:45-08:00", - "gclidDateTimePair": { - "gclid": "1234", - "conversionDateTime": "2021-01-01 12:32:45-08:00" - }, - "orderId": "12345" - } - ], - "status": 200 - } - } - } -] diff --git a/test/__tests__/data/campaign_manager_router_input.json b/test/__tests__/data/campaign_manager_router_input.json deleted file mode 100644 index 1a6bb84c85b..00000000000 --- a/test/__tests__/data/campaign_manager_router_input.json +++ /dev/null @@ -1,277 +0,0 @@ -[ - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "treatmentForUnderage": false, - "limitAdTracking": false, - "childDirectedTreatment": false, - "nonPersonalizedAd": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Promotion Clicked", - "type": "track", - "originalTimestamp": "2022-11-17T00:22:02.903+05:30", - "properties": { - "profileId": 437689, - "floodlightConfigurationId": "213123123", - "ordinal": "string", - "quantity": "455678", - "floodlightActivityId": "456543345245", - "value": 7, - "encryptedUserIdCandidates": ["dfghjbnm"], - "limitAdTracking": true, - "childDirectedTreatment": true, - "encryptionSource": "AD_SERVING", - "encryptionEntityId": "3564523", - "encryptionEntityType": "DCM_ACCOUNT", - "requestType": "batchinsert" - }, - "type": "track", - "event": "event test", - "anonymousId": "randomId", - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2022-11-17T00:22:02.903+05:30" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "treatmentForUnderage": false, - "limitAdTracking": false, - "childDirectedTreatment": false, - "nonPersonalizedAd": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Promotion Clicked", - "type": "track", - "originalTimestamp": "2022-11-17T00:22:02.903+05:30", - "properties": { - "profileId": 437689, - "floodlightConfigurationId": "213123123", - "ordinal": "string", - "floodlightActivityId": "456543345245", - "quantity": "455678", - "value": 7, - "encryptedUserIdCandidates": ["dfghjbnm"], - "limitAdTracking": true, - "childDirectedTreatment": true, - "encryptionSource": "AD_SERVING", - "encryptionEntityId": "3564523", - "encryptionEntityType": "DCM_ACCOUNT", - "requestType": "batchupdate" - }, - "type": "track", - "event": "event test", - "anonymousId": "randomId", - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2022-11-17T00:22:02.903+05:30" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "treatmentForUnderage": false, - "limitAdTracking": false, - "childDirectedTreatment": false, - "nonPersonalizedAd": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Promotion Clicked", - "type": "track", - "originalTimestamp": "2022-11-17T00:22:02.903+05:30", - "properties": { - "profileId": 437689, - "floodlightConfigurationId": "213123123", - "ordinal": "string", - "floodlightActivityId": "456543345245", - "mobileDeviceId": "string", - "value": 7, - "encryptedUserIdCandidates": ["dfghjbnm"], - "gclid": "string", - "matchId": "string", - "dclid": "string", - "quantity": "455678", - "impressionId": "string", - "limitAdTracking": true, - "childDirectedTreatment": true, - "encryptionInfo": { - "kind": "dfareporting#encryptionInfo", - "encryptionSource": "AD_SERVING", - "encryptionEntityId": "3564523", - "encryptionEntityType": "DCM_ACCOUNT" - }, - "requestType": "randomValue" - }, - "type": "track", - "event": "event test", - "anonymousId": "randomId", - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2022-11-17T00:22:02.903+05:30" - } - } -] diff --git a/test/__tests__/data/campaign_manager_router_output.json b/test/__tests__/data/campaign_manager_router_output.json deleted file mode 100644 index 4f101bbdae5..00000000000 --- a/test/__tests__/data/campaign_manager_router_output.json +++ /dev/null @@ -1,153 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/437689/conversions/batchinsert", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "kind": "dfareporting#conversionsBatchInsertRequest", - "encryptionInfo": { - "kind": "dfareporting#encryptionInfo", - "encryptionSource": "AD_SERVING", - "encryptionEntityId": "3564523", - "encryptionEntityType": "DCM_ACCOUNT" - }, - "conversions": [ - { - "nonPersonalizedAd": false, - "treatmentForUnderage": false, - "timestampMicros": "1668624722000000", - "floodlightConfigurationId": "213123123", - "ordinal": "string", - "quantity": "455678", - "floodlightActivityId": "456543345245", - "value": 7, - "encryptedUserIdCandidates": ["dfghjbnm"], - "limitAdTracking": true, - "childDirectedTreatment": true - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "secret": { - "access_token": "abcd1234", - "developer_token": "ijkl91011", - "refresh_token": "efgh5678" - } - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "childDirectedTreatment": false, - "limitAdTracking": false, - "nonPersonalizedAd": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK", - "treatmentForUnderage": false - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/437689/conversions/batchupdate", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "kind": "dfareporting#conversionsBatchUpdateRequest", - "encryptionInfo": { - "kind": "dfareporting#encryptionInfo", - "encryptionSource": "AD_SERVING", - "encryptionEntityId": "3564523", - "encryptionEntityType": "DCM_ACCOUNT" - }, - "conversions": [ - { - "nonPersonalizedAd": false, - "treatmentForUnderage": false, - "timestampMicros": "1668624722000000", - "floodlightConfigurationId": "213123123", - "ordinal": "string", - "quantity": "455678", - "floodlightActivityId": "456543345245", - "value": 7, - "encryptedUserIdCandidates": ["dfghjbnm"] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "secret": { - "access_token": "abcd1234", - "developer_token": "ijkl91011", - "refresh_token": "efgh5678" - } - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "childDirectedTreatment": false, - "limitAdTracking": false, - "nonPersonalizedAd": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK", - "treatmentForUnderage": false - } - } - }, - { - "destination": { - "Config": { - "treatmentForUnderage": false, - "limitAdTracking": false, - "childDirectedTreatment": false, - "nonPersonalizedAd": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - }, - "batched": false, - "error": "[CAMPAIGN MANAGER (DCM)]: properties.requestType must be one of batchinsert or batchupdate.", - "metadata": [ - { - "secret": { - "access_token": "abcd1234", - "developer_token": "ijkl91011", - "refresh_token": "efgh5678" - } - } - ], - "statusCode": 400, - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - } -] diff --git a/test/__tests__/data/candu_input.json b/test/__tests__/data/candu_input.json deleted file mode 100644 index cafe4bbb175..00000000000 --- a/test/__tests__/data/candu_input.json +++ /dev/null @@ -1,938 +0,0 @@ -[ - { - "destination": { - "ID": "23uZJcllEOBx8GbZ31qYzoML8Up", - "Name": "Candu local", - "DestinationDefinition": { - "ID": "23uYPwdkxT7pUNDAiCVNK3aU0sT", - "Name": "CANDU", - "DisplayName": "Candu", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "blackListedEvents", - "whiteListedEvents", - "oneTrustCookieCategories" - ], - "saveDestinationResponse": true, - "secretKeys": ["apiKey"], - "supportedMessageTypes": ["identify", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "reactnative", - "flutter", - "cordova" - ], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "FXLkLUEhGJyvmY4" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "userId": "user123456001", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Pune", - "name": "First User", - "email": "firstUser@testmail.com", - "title": "VP", - "gender": "female" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - { - "destination": { - "ID": "23uZJcllEOBx8GbZ31qYzoML8Up", - "Name": "Candu local", - "DestinationDefinition": { - "ID": "23uYPwdkxT7pUNDAiCVNK3aU0sT", - "Name": "CANDU", - "DisplayName": "Candu", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "blackListedEvents", - "whiteListedEvents", - "oneTrustCookieCategories" - ], - "saveDestinationResponse": true, - "secretKeys": ["apiKey"], - "supportedMessageTypes": ["identify", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "reactnative", - "flutter", - "cordova" - ], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "FXLkLUEhGJyvmY4" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "type": "track", - "event": "testEventWithoutProp", - "sentAt": "2022-01-20T14:32:51.506Z", - "userId": "user123456001", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Pune", - "name": "First User", - "email": "firstUser@testmail.com", - "title": "VP", - "gender": "female" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "e9f3dfb4-562c-48f4-b0cf-85782dfc9b1e", - "properties": {}, - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T14:32:51.506Z" - } - }, - { - "destination": { - "ID": "23uZJcllEOBx8GbZ31qYzoML8Up", - "Name": "Candu local", - "DestinationDefinition": { - "ID": "23uYPwdkxT7pUNDAiCVNK3aU0sT", - "Name": "CANDU", - "DisplayName": "Candu", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "blackListedEvents", - "whiteListedEvents", - "oneTrustCookieCategories" - ], - "saveDestinationResponse": true, - "secretKeys": ["apiKey"], - "supportedMessageTypes": ["identify", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "reactnative", - "flutter", - "cordova" - ], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "FXLkLUEhGJyvmY4" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "type": "track", - "sentAt": "2022-01-20T14:42:59.775Z", - "userId": "", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "127.0.0.1:7307" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "1877191c-3537-46dc-a35a-e2a4d13ed3f7", - "messageId": "fea245ef-6150-42c4-84e0-51fa68e71a88", - "properties": {}, - "anonymousId": "d18df757-34aa-4f71-91a8-7f9ef2940963", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T14:42:25.343Z" - } - }, - { - "destination": { - "ID": "23uZJcllEOBx8GbZ31qYzoML8Up", - "Name": "Candu local", - "DestinationDefinition": { - "ID": "23uYPwdkxT7pUNDAiCVNK3aU0sT", - "Name": "CANDU", - "DisplayName": "Candu", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "blackListedEvents", - "whiteListedEvents", - "oneTrustCookieCategories" - ], - "saveDestinationResponse": true, - "secretKeys": ["apiKey"], - "supportedMessageTypes": ["identify", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "reactnative", - "flutter", - "cordova" - ], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "FXLkLUEhGJyvmY4" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "type": "page", - "sentAt": "2022-01-20T15:30:57.470Z", - "userId": "testUser1234", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "127.0.0.1:7307" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 632 - }, - "traits": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "aa193f3b-6d42-466f-a781-6a666cfe17c3", - "messageId": "bf869c14-5f96-4cbc-94b2-3de9252c216b", - "properties": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "127.0.0.1:7307" - }, - "anonymousId": "d18df757-34aa-4f71-91a8-7f9ef2940963", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T15:30:57.470Z" - } - }, - { - "destination": { - "ID": "23uZJcllEOBx8GbZ31qYzoML8Up", - "Name": "Candu local", - "DestinationDefinition": { - "ID": "23uYPwdkxT7pUNDAiCVNK3aU0sT", - "Name": "CANDU", - "DisplayName": "Candu", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "blackListedEvents", - "whiteListedEvents", - "oneTrustCookieCategories" - ], - "saveDestinationResponse": true, - "secretKeys": ["apiKey"], - "supportedMessageTypes": ["identify", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "reactnative", - "flutter", - "cordova" - ], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": " " - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "type": "track", - "event": "testEventWithoutProp", - "sentAt": "2022-01-20T14:32:51.506Z", - "userId": "user123456001", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Pune", - "name": "First User", - "email": "firstUser@testmail.com", - "title": "VP", - "gender": "female" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "e9f3dfb4-562c-48f4-b0cf-85782dfc9b1e", - "properties": {}, - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T14:32:51.506Z" - } - }, - { - "destination": { - "ID": "23uZJcllEOBx8GbZ31qYzoML8Up", - "Name": "Candu local", - "DestinationDefinition": { - "ID": "23uYPwdkxT7pUNDAiCVNK3aU0sT", - "Name": "CANDU", - "DisplayName": "Candu", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "blackListedEvents", - "whiteListedEvents", - "oneTrustCookieCategories" - ], - "saveDestinationResponse": true, - "secretKeys": ["apiKey"], - "supportedMessageTypes": ["identify", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "reactnative", - "flutter", - "cordova" - ], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "FXLkLUEhGJyvmY4" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "event": "testEventWithoutProp", - "sentAt": "2022-01-20T14:32:51.506Z", - "userId": "user123456001", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Pune", - "name": "First User", - "email": "firstUser@testmail.com", - "title": "VP", - "gender": "female" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "e9f3dfb4-562c-48f4-b0cf-85782dfc9b1e", - "properties": {}, - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T14:32:51.506Z" - } - }, - { - "destination": { - "ID": "23uZJcllEOBx8GbZ31qYzoML8Up", - "Name": "Candu local", - "DestinationDefinition": { - "ID": "23uYPwdkxT7pUNDAiCVNK3aU0sT", - "Name": "CANDU", - "DisplayName": "Candu", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "blackListedEvents", - "whiteListedEvents", - "oneTrustCookieCategories" - ], - "saveDestinationResponse": true, - "secretKeys": ["apiKey"], - "supportedMessageTypes": ["identify", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "reactnative", - "flutter", - "cordova" - ], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "FXLkLUEhGJyvmY4" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Pune", - "name": "First User", - "email": "firstUser@testmail.com", - "title": "VP", - "gender": "female", - "userId": 2399229 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - { - "destination": { - "ID": "23uZJcllEOBx8GbZ31qYzoML8Up", - "Name": "Candu local", - "DestinationDefinition": { - "ID": "23uYPwdkxT7pUNDAiCVNK3aU0sT", - "Name": "CANDU", - "DisplayName": "Candu", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "blackListedEvents", - "whiteListedEvents", - "oneTrustCookieCategories" - ], - "saveDestinationResponse": true, - "secretKeys": ["apiKey"], - "supportedMessageTypes": ["identify", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "reactnative", - "flutter", - "cordova" - ], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "FXLkLUEhGJyvmY4" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "type": "track", - "event": "testEventWithoutProp", - "sentAt": "2022-01-20T14:32:51.506Z", - "userId": "user123456001", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Pune", - "name": "First User", - "email": "firstUser@testmail.com", - "title": "VP", - "gender": "female" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "e9f3dfb4-562c-48f4-b0cf-85782dfc9b1e", - "properties": ["1234", "5678", "91011"], - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T14:32:51.506Z" - } - }, - { - "destination": { - "ID": "23uZJcllEOBx8GbZ31qYzoML8Up", - "Name": "Candu local", - "DestinationDefinition": { - "ID": "23uYPwdkxT7pUNDAiCVNK3aU0sT", - "Name": "CANDU", - "DisplayName": "Candu", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "blackListedEvents", - "whiteListedEvents", - "oneTrustCookieCategories" - ], - "saveDestinationResponse": true, - "secretKeys": ["apiKey"], - "supportedMessageTypes": ["identify", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "reactnative", - "flutter", - "cordova" - ], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "FXLkLUEhGJyvmY4" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "type": "track", - "event": "testEventWithoutProp", - "sentAt": "2022-01-20T14:32:51.506Z", - "userId": "", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "path": "/Testing/App_for_LaunchDarkly/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "city": "Pune", - "name": "First User", - "email": "firstUser@testmail.com", - "title": "VP", - "gender": "female" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "messageId": "e9f3dfb4-562c-48f4-b0cf-85782dfc9b1e", - "properties": [], - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-01-20T14:32:51.506Z" - } - } -] diff --git a/test/__tests__/data/candu_output.json b/test/__tests__/data/candu_output.json deleted file mode 100644 index 5f6ee58825f..00000000000 --- a/test/__tests__/data/candu_output.json +++ /dev/null @@ -1,209 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.candu.ai/api/eventWebhook", - "headers": { - "Authorization": "Basic RlhMa0xVRWhHSnl2bVk0", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "traits": { - "city": "Pune", - "name": "First User", - "email": "firstUser@testmail.com", - "title": "VP", - "gender": "female" - }, - "type": "identify", - "userId": "user123456001", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "context": { - "source": "RudderStack" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.candu.ai/api/eventWebhook", - "headers": { - "Authorization": "Basic RlhMa0xVRWhHSnl2bVk0", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "type": "track", - "event": "testEventWithoutProp", - "traits": { - "city": "Pune", - "name": "First User", - "email": "firstUser@testmail.com", - "title": "VP", - "gender": "female" - }, - "properties": {}, - "userId": "user123456001", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "messageId": "e9f3dfb4-562c-48f4-b0cf-85782dfc9b1e", - "context": { - "source": "RudderStack" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "statusCode": 400, - "error": "Missing required value from \"event\"", - "statTags": { - "destination": "candu", - "stage": "transform", - "scope": "exception" - } - }, - { - "statusCode": 400, - "error": "[CANDU]:: Message type page not supported.", - "statTags": { - "destination": "candu", - "stage": "transform", - "scope": "exception" - } - }, - { - "statusCode": 400, - "error": "[CANDU]:: apiKey cannot be empty.", - "statTags": { - "destination": "candu", - "stage": "transform", - "scope": "exception" - } - }, - { - "statusCode": 400, - "error": "[CANDU]:: Message Type is not present. Aborting message.", - "statTags": { - "destination": "candu", - "stage": "transform", - "scope": "exception" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.candu.ai/api/eventWebhook", - "headers": { - "Authorization": "Basic RlhMa0xVRWhHSnl2bVk0", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "traits": { - "city": "Pune", - "name": "First User", - "email": "firstUser@testmail.com", - "title": "VP", - "gender": "female", - "userId": 2399229 - }, - "userId": "2399229", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "messageId": "831f1fa5-de84-4f22-880a-4c3f23fc3f04", - "type": "identify", - "context": { - "source": "RudderStack" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.candu.ai/api/eventWebhook", - "headers": { - "Authorization": "Basic RlhMa0xVRWhHSnl2bVk0", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event": "testEventWithoutProp", - "traits": { - "city": "Pune", - "name": "First User", - "email": "firstUser@testmail.com", - "title": "VP", - "gender": "female" - }, - "properties": ["1234", "5678", "91011"], - "userId": "user123456001", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "messageId": "e9f3dfb4-562c-48f4-b0cf-85782dfc9b1e", - "type": "track", - "context": { - "source": "RudderStack" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.candu.ai/api/eventWebhook", - "headers": { - "Authorization": "Basic RlhMa0xVRWhHSnl2bVk0", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event": "testEventWithoutProp", - "traits": { - "city": "Pune", - "name": "First User", - "email": "firstUser@testmail.com", - "title": "VP", - "gender": "female" - }, - "properties": [], - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "messageId": "e9f3dfb4-562c-48f4-b0cf-85782dfc9b1e", - "type": "track", - "context": { - "source": "RudderStack" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } -] diff --git a/test/__tests__/data/candu_router_input.json b/test/__tests__/data/candu_router_input.json deleted file mode 100644 index 04eb5163278..00000000000 --- a/test/__tests__/data/candu_router_input.json +++ /dev/null @@ -1,105 +0,0 @@ -[ - { - "destination": { - "ID": "23uZJcllEOBx8GbZ31qYzoML8Up", - "Name": "Candu local", - "DestinationDefinition": { - "ID": "23uYPwdkxT7pUNDAiCVNK3aU0sT", - "Name": "CANDU", - "DisplayName": "Candu", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "blackListedEvents", - "whiteListedEvents", - "oneTrustCookieCategories" - ], - "saveDestinationResponse": true, - "secretKeys": ["apiKey"], - "supportedMessageTypes": ["identify", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "reactnative", - "flutter", - "cordova" - ], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "FXLkLUEhGJyvmY4" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "metadata": { - "jobId": 1 - }, - "message": { - "anonymousId": "a1b2c3d4e5f6g7h8i9j10", - "channel": "mobile", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "adTrackingEnabled": true, - "advertisingId": "", - "id": "", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "attTrackingStatus": 3 - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "watchos" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "sampath@gmail.com", - "name": "Joker", - "Gender": "male", - "foo": { - "foo": "bar" - } - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "product added", - "integrations": { - "All": true - }, - "messageId": "ea5cfab2-3961-4d8a-8187-3d1858c90a9f", - "originalTimestamp": "2020-01-17T04:53:51.185Z", - "receivedAt": "2020-01-17T10:23:52.688+05:30", - "request_ip": "[::1]:64059", - "sentAt": "2020-01-17T04:53:52.667Z", - "timestamp": "2020-01-17T10:23:51.206+05:30", - "type": "identify", - "userId": "sampath" - } - } -] diff --git a/test/__tests__/data/candu_router_output.json b/test/__tests__/data/candu_router_output.json deleted file mode 100644 index ecabcbfa9ae..00000000000 --- a/test/__tests__/data/candu_router_output.json +++ /dev/null @@ -1,82 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.candu.ai/api/eventWebhook", - "headers": { - "Authorization": "Basic RlhMa0xVRWhHSnl2bVk0", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "traits": { - "email": "sampath@gmail.com", - "name": "Joker", - "Gender": "male", - "foo": { "foo": "bar" } - }, - "type": "identify", - "userId": "sampath", - "anonymousId": "a1b2c3d4e5f6g7h8i9j10", - "timestamp": "2020-01-17T10:23:51.206+05:30", - "messageId": "ea5cfab2-3961-4d8a-8187-3d1858c90a9f", - "context": { "source": "RudderStack" } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "23uZJcllEOBx8GbZ31qYzoML8Up", - "Name": "Candu local", - "DestinationDefinition": { - "ID": "23uYPwdkxT7pUNDAiCVNK3aU0sT", - "Name": "CANDU", - "DisplayName": "Candu", - "Config": { - "destConfig": { "defaultConfig": ["apiKey"] }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "blackListedEvents", - "whiteListedEvents", - "oneTrustCookieCategories" - ], - "saveDestinationResponse": true, - "secretKeys": ["apiKey"], - "supportedMessageTypes": ["identify", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "reactnative", - "flutter", - "cordova" - ], - "transformAt": "router", - "transformAtV1": "router" - }, - "ResponseRules": {} - }, - "Config": { "apiKey": "FXLkLUEhGJyvmY4" }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - } -] diff --git a/test/__tests__/data/canny_source_input.json b/test/__tests__/data/canny_source_input.json index da172072daa..55474732099 100644 --- a/test/__tests__/data/canny_source_input.json +++ b/test/__tests__/data/canny_source_input.json @@ -4,11 +4,11 @@ "object": { "author": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "board": { @@ -22,7 +22,13 @@ "category": null, "commentCount": 0, "created": "2022-07-28T10:52:46.172Z", - "customFields": [{ "id": "62e13820d7949d44b92d3876", "name": "abc", "value": "123" }], + "customFields": [ + { + "id": "62e13820d7949d44b92d3876", + "name": "abc", + "value": "123" + } + ], "details": "Array of images", "eta": null, "id": "62e26a7e1d4ea13c124337bd", @@ -45,11 +51,11 @@ "object": { "author": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "board": { @@ -65,11 +71,11 @@ "created": "2022-07-26T08:18:52.459Z", "deletedBy": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "details": "This is the post's details", @@ -91,11 +97,11 @@ "object": { "author": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "by": null, @@ -119,7 +125,7 @@ "key": "TES-2", "status": "To Do", "summary": "Canny Source Testing", - "url": "https://rudderstack-rohith.atlassian.net/browse/TES-2" + "url": "https://rudderstack-user.atlassian.net/browse/TES-2" }, "owner": null, "score": 2, @@ -136,11 +142,11 @@ "object": { "author": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "by": null, @@ -164,7 +170,7 @@ "key": "TES-3", "status": "To Do", "summary": "Images testing", - "url": "https://rudderstack-rohith.atlassian.net/browse/TES-3" + "url": "https://rudderstack-user.atlassian.net/browse/TES-3" }, "owner": null, "score": 1, @@ -182,11 +188,11 @@ "author": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "board": { @@ -206,11 +212,11 @@ "changer": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "commentCount": 1, @@ -238,11 +244,11 @@ "object": { "author": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "board": { @@ -261,11 +267,11 @@ "post": { "author": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "by": null, @@ -293,11 +299,11 @@ "object": { "author": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "board": { @@ -314,11 +320,11 @@ "post": { "author": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "by": null, @@ -358,11 +364,11 @@ "author": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "by": null, @@ -383,11 +389,11 @@ "voter": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null } }, @@ -411,11 +417,11 @@ "author": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "by": null, @@ -443,11 +449,11 @@ "voter": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null } }, @@ -459,11 +465,11 @@ "object": { "author": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": "sampleuserId" }, "board": { @@ -477,7 +483,13 @@ "category": null, "commentCount": 0, "created": "2022-07-28T10:52:46.172Z", - "customFields": [{ "id": "62e13820d7949d44b92d3876", "name": "abc", "value": "123" }], + "customFields": [ + { + "id": "62e13820d7949d44b92d3876", + "name": "abc", + "value": "123" + } + ], "details": "Array of images", "eta": null, "id": "62e26a7e1d4ea13c124337bd", @@ -512,11 +524,11 @@ "author": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "by": null, @@ -537,11 +549,11 @@ "voter": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": "123" } }, @@ -565,11 +577,11 @@ "author": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "by": null, @@ -600,8 +612,8 @@ "email": null, "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null } }, @@ -613,10 +625,10 @@ "object": { "author": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "board": { @@ -632,11 +644,11 @@ "created": "2022-07-26T08:18:52.459Z", "deletedBy": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "details": "This is the post's details", diff --git a/test/__tests__/data/canny_source_output.json b/test/__tests__/data/canny_source_output.json index 1c157df3778..67f919ba9bb 100644 --- a/test/__tests__/data/canny_source_output.json +++ b/test/__tests__/data/canny_source_output.json @@ -1,8 +1,10 @@ [ { - "anonymousId": "d6a9d06e8a464324d448003ff0467d971a55ca2950e11fc51faaec4e2850ecc6", + "anonymousId": "1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd", "event": "post.created", - "integrations": { "Canny": false }, + "integrations": { + "Canny": false + }, "context": { "library": { "name": "unknown", @@ -14,10 +16,10 @@ }, "traits": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1" + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser" }, "externalId": [ { @@ -41,7 +43,13 @@ "category": null, "commentCount": 0, "created": "2022-07-28T10:52:46.172Z", - "customFields": [{ "id": "62e13820d7949d44b92d3876", "name": "abc", "value": "123" }], + "customFields": [ + { + "id": "62e13820d7949d44b92d3876", + "name": "abc", + "value": "123" + } + ], "details": "Array of images", "eta": null, "id": "62e26a7e1d4ea13c124337bd", @@ -59,9 +67,11 @@ } }, { - "anonymousId": "d6a9d06e8a464324d448003ff0467d971a55ca2950e11fc51faaec4e2850ecc6", + "anonymousId": "1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd", "event": "post.deleted", - "integrations": { "Canny": false }, + "integrations": { + "Canny": false + }, "context": { "library": { "name": "unknown", @@ -73,10 +83,10 @@ }, "traits": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1" + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser" }, "externalId": [ { @@ -102,11 +112,11 @@ "created": "2022-07-26T08:18:52.459Z", "deletedBy": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "details": "This is the post's details", @@ -123,9 +133,11 @@ } }, { - "anonymousId": "d6a9d06e8a464324d448003ff0467d971a55ca2950e11fc51faaec4e2850ecc6", + "anonymousId": "1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd", "event": "post.jira_issue_linked", - "integrations": { "Canny": false }, + "integrations": { + "Canny": false + }, "context": { "library": { "name": "unknown", @@ -137,10 +149,10 @@ }, "traits": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1" + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser" }, "externalId": [ { @@ -174,7 +186,7 @@ "key": "TES-2", "status": "To Do", "summary": "Canny Source Testing", - "url": "https://rudderstack-rohith.atlassian.net/browse/TES-2" + "url": "https://rudderstack-user.atlassian.net/browse/TES-2" }, "objectType": "post", "owner": null, @@ -186,9 +198,11 @@ } }, { - "anonymousId": "d6a9d06e8a464324d448003ff0467d971a55ca2950e11fc51faaec4e2850ecc6", + "anonymousId": "1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd", "event": "post.jira_issue_unlinked", - "integrations": { "Canny": false }, + "integrations": { + "Canny": false + }, "context": { "library": { "name": "unknown", @@ -200,10 +214,10 @@ }, "traits": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1" + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser" }, "externalId": [ { @@ -217,7 +231,6 @@ "type": "track", "properties": { "objectType": "post", - "by": null, "board": { "created": "2022-07-25T12:11:19.895Z", @@ -239,7 +252,7 @@ "key": "TES-3", "status": "To Do", "summary": "Images testing", - "url": "https://rudderstack-rohith.atlassian.net/browse/TES-3" + "url": "https://rudderstack-user.atlassian.net/browse/TES-3" }, "owner": null, "score": 1, @@ -250,9 +263,11 @@ } }, { - "anonymousId": "d6a9d06e8a464324d448003ff0467d971a55ca2950e11fc51faaec4e2850ecc6", + "anonymousId": "1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd", "event": "post.status_changed", - "integrations": { "Canny": false }, + "integrations": { + "Canny": false + }, "context": { "library": { "name": "unknown", @@ -265,10 +280,10 @@ "traits": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1" + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser" }, "externalId": [ { @@ -282,7 +297,6 @@ "type": "track", "properties": { "objectType": "post", - "board": { "created": "2022-07-25T12:11:19.895Z", "id": "62de88676bc28b44aaaf25cc", @@ -300,11 +314,11 @@ "changer": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "commentCount": 1, @@ -326,9 +340,11 @@ } }, { - "anonymousId": "d6a9d06e8a464324d448003ff0467d971a55ca2950e11fc51faaec4e2850ecc6", + "anonymousId": "1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd", "event": "comment.created", - "integrations": { "Canny": false }, + "integrations": { + "Canny": false + }, "context": { "library": { "name": "unknown", @@ -340,10 +356,10 @@ }, "traits": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1" + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser" }, "externalId": [ { @@ -357,7 +373,6 @@ "type": "track", "properties": { "objectType": "comment", - "board": { "created": "2022-07-25T12:11:19.895Z", "id": "62de88676bc28b44aaaf25cc", @@ -374,11 +389,11 @@ "post": { "author": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "by": null, @@ -400,9 +415,11 @@ } }, { - "anonymousId": "d6a9d06e8a464324d448003ff0467d971a55ca2950e11fc51faaec4e2850ecc6", + "anonymousId": "1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd", "event": "comment.deleted", - "integrations": { "Canny": false }, + "integrations": { + "Canny": false + }, "context": { "library": { "name": "unknown", @@ -414,10 +431,10 @@ }, "traits": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1" + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser" }, "externalId": [ { @@ -431,7 +448,6 @@ "type": "track", "properties": { "objectType": "comment", - "board": { "created": "2022-07-25T12:11:19.895Z", "id": "62de88676bc28b44aaaf25cc", @@ -446,11 +462,11 @@ "post": { "author": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "by": null, @@ -472,9 +488,11 @@ } }, { - "anonymousId": "d6a9d06e8a464324d448003ff0467d971a55ca2950e11fc51faaec4e2850ecc6", + "anonymousId": "1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd", "event": "vote.created", - "integrations": { "Canny": false }, + "integrations": { + "Canny": false + }, "context": { "library": { "name": "unknown", @@ -487,10 +505,10 @@ "traits": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1" + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser" }, "externalId": [ { @@ -518,11 +536,11 @@ "author": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "by": null, @@ -543,9 +561,11 @@ } }, { - "anonymousId": "d6a9d06e8a464324d448003ff0467d971a55ca2950e11fc51faaec4e2850ecc6", + "anonymousId": "1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd", "event": "vote.deleted", - "integrations": { "Canny": false }, + "integrations": { + "Canny": false + }, "context": { "library": { "name": "unknown", @@ -558,10 +578,10 @@ "traits": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1" + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser" }, "externalId": [ { @@ -589,11 +609,11 @@ "author": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "by": null, @@ -623,7 +643,9 @@ { "userId": "sampleuserId", "event": "post.created", - "integrations": { "Canny": false }, + "integrations": { + "Canny": false + }, "context": { "library": { "name": "unknown", @@ -635,10 +657,10 @@ }, "traits": { "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1" + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser" }, "externalId": [ { @@ -662,7 +684,13 @@ "category": null, "commentCount": 0, "created": "2022-07-28T10:52:46.172Z", - "customFields": [{ "id": "62e13820d7949d44b92d3876", "name": "abc", "value": "123" }], + "customFields": [ + { + "id": "62e13820d7949d44b92d3876", + "name": "abc", + "value": "123" + } + ], "details": "Array of images", "eta": null, "id": "62e26a7e1d4ea13c124337bd", @@ -682,7 +710,9 @@ { "userId": "123", "event": "vote.created", - "integrations": { "Canny": false }, + "integrations": { + "Canny": false + }, "context": { "library": { "name": "unknown", @@ -695,10 +725,10 @@ "traits": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1" + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser" }, "externalId": [ { @@ -726,11 +756,11 @@ "author": { "avatarURL": "https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png", "created": "2022-07-15T11:16:32.648Z", - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "id": "62d14c90fff7c80d0ec08375", "isAdmin": true, - "name": "Rohith Kumar Kaza", - "url": "https://rudder.canny.io/admin/users/rohith-kumar-kaza-1", + "name": "Rudder Test", + "url": "https://rudder.canny.io/admin/users/dummyUser", "userID": null }, "by": null, diff --git a/test/__tests__/data/clevertap_input.json b/test/__tests__/data/clevertap_input.json index e8aaa4b528f..e0bb1241e23 100644 --- a/test/__tests__/data/clevertap_input.json +++ b/test/__tests__/data/clevertap_input.json @@ -2,7 +2,56 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", + "accountId": "476550467", + "trackAnonymous": true, + "enableObjectIdMapping": false + } + }, + "message": { + "channel": "web", + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "originalTimestamp": "2019-10-14T09:03:17.562Z", + "anonymousId": "anon_id", + "type": "identify", + "traits": { + "anonymousId": "anon_id", + "email": "jamesDoe@gmail.com", + "name": "James Doe", + "phone": "92374162212", + "gender": "M", + "employed": true, + "birthday": "1614775793", + "education": "Science", + "graduate": true, + "married": true, + "customerType": "Prime", + "msg_push": true, + "msgSms": true, + "msgemail": true, + "msgwhatsapp": false, + "custom_tags": ["Test_User", "Interested_User", "DIY_Hobby"], + "custom_mappings": { + "Office": "Trastkiv", + "Country": "Russia" + }, + "address": { + "city": "kolkata", + "country": "India", + "postalCode": 789223, + "state": "WB", + "street": "" + } + }, + "integrations": { "All": true }, + "sentAt": "2019-10-14T09:03:22.563Z" + } + }, + { + "destination": { + "Config": { + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -65,7 +114,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -91,7 +140,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -116,7 +165,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -139,7 +188,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -161,7 +210,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -184,7 +233,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -279,7 +328,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": false, "enableObjectIdMapping": false @@ -302,7 +351,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -365,7 +414,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -428,7 +477,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": true @@ -499,7 +548,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": true @@ -566,7 +615,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": true @@ -587,7 +636,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": true @@ -608,7 +657,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -682,7 +731,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": true @@ -750,7 +799,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": true @@ -772,7 +821,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -850,7 +899,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -930,7 +979,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -1015,7 +1064,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": true diff --git a/test/__tests__/data/clevertap_output.json b/test/__tests__/data/clevertap_output.json index fc6a4ee2c35..947cc2da216 100644 --- a/test/__tests__/data/clevertap_output.json +++ b/test/__tests__/data/clevertap_output.json @@ -6,7 +6,52 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "d": [ + { + "type": "profile", + "profileData": { + "Email": "jamesDoe@gmail.com", + "Name": "James Doe", + "Phone": "92374162212", + "Gender": "M", + "Employed": true, + "DOB": "1614775793", + "Education": "Science", + "Married": true, + "Customer Type": "Prime", + "graduate": true, + "msg_push": true, + "msgSms": true, + "msgemail": true, + "msgwhatsapp": false, + "custom_tags": "[\"Test_User\",\"Interested_User\",\"DIY_Hobby\"]", + "custom_mappings": "{\"Office\":\"Trastkiv\",\"Country\":\"Russia\"}", + "address": "{\"city\":\"kolkata\",\"country\":\"India\",\"postalCode\":789223,\"state\":\"WB\",\"street\":\"\"}" + }, + "identity": "anon_id" + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.clevertap.com/1/upload", + "headers": { + "X-CleverTap-Account-Id": "476550467", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -69,7 +114,7 @@ "params": {}, "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "version": "1", @@ -99,7 +144,7 @@ "params": {}, "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "version": "1", @@ -130,7 +175,7 @@ "params": {}, "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "version": "1", @@ -149,7 +194,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -212,7 +257,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -257,7 +302,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -302,7 +347,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -334,7 +379,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -365,7 +410,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -414,7 +459,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "X-CleverTap-Account-Id": "476550467" }, "version": "1", @@ -445,7 +490,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "X-CleverTap-Account-Id": "476550467" }, "version": "1", @@ -458,7 +503,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -505,7 +550,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -537,7 +582,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -585,7 +630,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "X-CleverTap-Account-Id": "476550467" }, "version": "1", @@ -598,7 +643,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -645,7 +690,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, diff --git a/test/__tests__/data/clevertap_router_input.json b/test/__tests__/data/clevertap_router_input.json index 8605531fc4e..af38871af94 100644 --- a/test/__tests__/data/clevertap_router_input.json +++ b/test/__tests__/data/clevertap_router_input.json @@ -2,8 +2,8 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", - "accountId": "476550467", + "passcode": "dummypasscode", + "accountId": "dummyAccountId", "trackAnonymous": true, "enableObjectIdMapping": true } @@ -87,8 +87,8 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", - "accountId": "476550467", + "passcode": "dummypasscode", + "accountId": "dummyAccountId", "trackAnonymous": true, "enableObjectIdMapping": true } @@ -107,5 +107,33 @@ "type": "track", "anonymousId": "cd3a4439-7df0-4475-acb9-6659c7c4dfe3" } + }, + { + "destination": { + "Config": { + "passcode": "dummypasscode", + "accountId": "dummyAccountId", + "trackAnonymous": true + } + }, + "metadata": { + "jobId": 3 + }, + "message": { + "type": "group", + "anonymousId": "anon-id-new", + "name": "Rudder", + "properties": { + "title": "Home", + "path": "/" + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } } ] diff --git a/test/__tests__/data/clevertap_router_output.json b/test/__tests__/data/clevertap_router_output.json index 7c47dddbbda..3f726652e15 100644 --- a/test/__tests__/data/clevertap_router_output.json +++ b/test/__tests__/data/clevertap_router_output.json @@ -7,8 +7,8 @@ "batched": true, "endpoint": "https://api.clevertap.com/1/upload", "headers": { - "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Account-Id": "dummyAccountId", + "X-CleverTap-Passcode": "dummypasscode", "Content-Type": "application/json" }, "params": {}, @@ -76,11 +76,32 @@ "statusCode": 200, "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", - "accountId": "476550467", + "passcode": "dummypasscode", + "accountId": "dummyAccountId", "trackAnonymous": true, "enableObjectIdMapping": true } } + }, + { + "metadata": [ + { + "jobId": 3 + } + ], + "batched": false, + "statusCode": 400, + "error": "Message type not supported", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation" + }, + "destination": { + "Config": { + "passcode": "dummypasscode", + "accountId": "dummyAccountId", + "trackAnonymous": true + } + } } ] diff --git a/test/__tests__/data/confluent_cloud_input.json b/test/__tests__/data/confluent_cloud_input.json deleted file mode 100644 index cc2ae736d65..00000000000 --- a/test/__tests__/data/confluent_cloud_input.json +++ /dev/null @@ -1,396 +0,0 @@ -[ - { - "destination": { - "ID": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "Name": "Azure Event Hub", - "DestinationDefinition": { - "ID": "1cCs4qQ72QY8vovP7BlJ47mkjBh", - "Name": "AZURE_EVENT_HUB", - "DisplayName": "Azure Event Hub", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": null, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "event": "Purchase", - "integrations": { - "All": true - }, - "messageId": "ce46866c-6f19-42f0-86cb-18c51863b817", - "originalTimestamp": "2020-05-21T10:23:15.984Z", - "properties": { - "currency": "USD", - "revenue": 100 - }, - "receivedAt": "2020-05-21T15:53:16.013+05:30", - "request_ip": "[::1]:59371", - "sentAt": "2020-05-21T10:23:15.985Z", - "timestamp": "2020-05-21T15:53:16.012+05:30", - "type": "track", - "userId": "user-12345" - }, - "metadata": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "destinationId": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "destinationType": "AZURE_EVENT_HUB", - "jobId": 46, - "messageId": "ce46866c-6f19-42f0-86cb-18c51863b817", - "sourceId": "1bqCEGibwCvR7F0acuLzbEMQYIC" - } - }, - { - "destination": { - "ID": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "Name": "Azure Event Hub", - "DestinationDefinition": { - "ID": "1cCs4qQ72QY8vovP7BlJ47mkjBh", - "Name": "AZURE_EVENT_HUB", - "DisplayName": "Azure Event Hub", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": null, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "e02dafb0-9df8-4fa2-becd-f4d8617956a4", - "originalTimestamp": "2020-05-21T10:23:15.975Z", - "properties": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "receivedAt": "2020-05-21T15:53:16.014+05:30", - "request_ip": "[::1]:58616", - "sentAt": "2020-05-21T10:23:15.975Z", - "timestamp": "2020-05-21T15:53:16.014+05:30", - "type": "page", - "userId": "user-12345" - }, - "metadata": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "destinationId": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "destinationType": "AZURE_EVENT_HUB", - "jobId": 47, - "messageId": "e02dafb0-9df8-4fa2-becd-f4d8617956a4", - "sourceId": "1bqCEGibwCvR7F0acuLzbEMQYIC" - } - }, - { - "destination": { - "ID": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "Name": "Azure Event Hub", - "DestinationDefinition": { - "ID": "1cCs4qQ72QY8vovP7BlJ47mkjBh", - "Name": "AZURE_EVENT_HUB", - "DisplayName": "Azure Event Hub", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": null, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "41b62b30-db5d-450c-98ed-cec14ead27cc", - "originalTimestamp": "2020-05-21T10:23:15.979Z", - "receivedAt": "2020-05-21T15:53:16.014+05:30", - "request_ip": "[::1]:59372", - "sentAt": "2020-05-21T10:23:15.979Z", - "timestamp": "2020-05-21T15:53:16.014+05:30", - "type": "identify", - "userId": "user-12345" - }, - "metadata": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "destinationId": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "destinationType": "AZURE_EVENT_HUB", - "jobId": 48, - "messageId": "41b62b30-db5d-450c-98ed-cec14ead27cc", - "sourceId": "1bqCEGibwCvR7F0acuLzbEMQYIC" - } - }, - { - "destination": { - "ID": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "Name": "Azure Event Hub", - "DestinationDefinition": { - "ID": "1cCs4qQ72QY8vovP7BlJ47mkjBh", - "Name": "AZURE_EVENT_HUB", - "DisplayName": "Azure Event Hub", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": null, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "event": "test track without property", - "integrations": { - "All": true - }, - "messageId": "c409577d-5dd4-430a-8965-a20aed7b9c9e", - "originalTimestamp": "2020-05-21T10:23:15.981Z", - "properties": {}, - "receivedAt": "2020-05-21T15:53:16.014+05:30", - "request_ip": "[::1]:59374", - "sentAt": "2020-05-21T10:23:15.981Z", - "timestamp": "2020-05-21T15:53:16.014+05:30", - "type": "track", - "userId": "user-12345" - }, - "metadata": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "destinationId": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "destinationType": "AZURE_EVENT_HUB", - "jobId": 49, - "messageId": "c409577d-5dd4-430a-8965-a20aed7b9c9e", - "sourceId": "1bqCEGibwCvR7F0acuLzbEMQYIC" - } - }, - { - "destination": { - "ID": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "Name": "Azure Event Hub", - "DestinationDefinition": { - "ID": "1cCs4qQ72QY8vovP7BlJ47mkjBh", - "Name": "AZURE_EVENT_HUB", - "DisplayName": "Azure Event Hub", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": null, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "event": "test track with property", - "integrations": { - "All": true - }, - "messageId": "f8b6e882-3186-446a-b589-51eba60930d7", - "originalTimestamp": "2020-05-21T10:23:15.982Z", - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "receivedAt": "2020-05-21T15:53:16.014+05:30", - "request_ip": "[::1]:59373", - "sentAt": "2020-05-21T10:23:15.983Z", - "timestamp": "2020-05-21T15:53:16.013+05:30", - "type": "track", - "userId": "user-12345" - }, - "metadata": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "destinationId": "1cCz8hts5rp3YWglzhU1GPmVdjE", - "destinationType": "AZURE_EVENT_HUB", - "jobId": 50, - "messageId": "f8b6e882-3186-446a-b589-51eba60930d7", - "sourceId": "1bqCEGibwCvR7F0acuLzbEMQYIC" - } - } -] diff --git a/test/__tests__/data/confluent_cloud_output.json b/test/__tests__/data/confluent_cloud_output.json deleted file mode 100644 index 7bac8eca74c..00000000000 --- a/test/__tests__/data/confluent_cloud_output.json +++ /dev/null @@ -1,276 +0,0 @@ -[ - { - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "event": "Purchase", - "integrations": { - "All": true - }, - "messageId": "ce46866c-6f19-42f0-86cb-18c51863b817", - "originalTimestamp": "2020-05-21T10:23:15.984Z", - "properties": { - "currency": "USD", - "revenue": 100 - }, - "receivedAt": "2020-05-21T15:53:16.013+05:30", - "request_ip": "[::1]:59371", - "sentAt": "2020-05-21T10:23:15.985Z", - "timestamp": "2020-05-21T15:53:16.012+05:30", - "type": "track", - "userId": "user-12345" - }, - "userId": "user-12345" - }, - { - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "e02dafb0-9df8-4fa2-becd-f4d8617956a4", - "originalTimestamp": "2020-05-21T10:23:15.975Z", - "properties": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "receivedAt": "2020-05-21T15:53:16.014+05:30", - "request_ip": "[::1]:58616", - "sentAt": "2020-05-21T10:23:15.975Z", - "timestamp": "2020-05-21T15:53:16.014+05:30", - "type": "page", - "userId": "user-12345" - }, - "userId": "user-12345" - }, - { - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "41b62b30-db5d-450c-98ed-cec14ead27cc", - "originalTimestamp": "2020-05-21T10:23:15.979Z", - "receivedAt": "2020-05-21T15:53:16.014+05:30", - "request_ip": "[::1]:59372", - "sentAt": "2020-05-21T10:23:15.979Z", - "timestamp": "2020-05-21T15:53:16.014+05:30", - "type": "identify", - "userId": "user-12345" - }, - "userId": "user-12345" - }, - { - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "event": "test track without property", - "integrations": { - "All": true - }, - "messageId": "c409577d-5dd4-430a-8965-a20aed7b9c9e", - "originalTimestamp": "2020-05-21T10:23:15.981Z", - "properties": {}, - "receivedAt": "2020-05-21T15:53:16.014+05:30", - "request_ip": "[::1]:59374", - "sentAt": "2020-05-21T10:23:15.981Z", - "timestamp": "2020-05-21T15:53:16.014+05:30", - "type": "track", - "userId": "user-12345" - }, - "userId": "user-12345" - }, - { - "message": { - "anonymousId": "d36981e7-6413-4862-9bb9-b8595fb3d0d4", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index7.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/index7.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "test@kinesis.com", - "firstname": "Test Kinesis" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" - }, - "event": "test track with property", - "integrations": { - "All": true - }, - "messageId": "f8b6e882-3186-446a-b589-51eba60930d7", - "originalTimestamp": "2020-05-21T10:23:15.982Z", - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "receivedAt": "2020-05-21T15:53:16.014+05:30", - "request_ip": "[::1]:59373", - "sentAt": "2020-05-21T10:23:15.983Z", - "timestamp": "2020-05-21T15:53:16.013+05:30", - "type": "track", - "userId": "user-12345" - }, - "userId": "user-12345" - } -] diff --git a/test/__tests__/data/courier.json b/test/__tests__/data/courier.json deleted file mode 100644 index 980d6c4b68a..00000000000 --- a/test/__tests__/data/courier.json +++ /dev/null @@ -1,218 +0,0 @@ -[ - { - "description": "Invalid Configuration (missing api key)", - "input": { - "message": { - "type": "track", - "channel": "web", - "event": "Product Added", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "destination": { - "Config": {} - } - }, - "output": { - "error": "apiKey is required" - } - }, - { - "description": "Identify call", - "input": { - "message": { - "context": { - "ip": "8.8.8.8" - }, - "traits": { - "name": "Joe Doe", - "email": "joe@example.com", - "plan": "basic", - "age": 27 - }, - "type": "identify", - "userId": "userIdTest", - "originalTimestamp": "2022-10-17T15:53:10.566+05:30", - "messageId": "8d04cc30-fc15-49bd-901f-c5c3f72a7d82" - }, - "destination": { - "Config": { - "apiKey": "test-api-key" - } - } - }, - "output": { - "body": { - "FORM": {}, - "JSON": { - "context": { - "ip": "8.8.8.8" - }, - "traits": { - "name": "Joe Doe", - "email": "joe@example.com", - "plan": "basic", - "age": 27 - }, - "type": "identify", - "userId": "userIdTest", - "originalTimestamp": "2022-10-17T15:53:10.566+05:30", - "messageId": "8d04cc30-fc15-49bd-901f-c5c3f72a7d82" - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "endpoint": "https://api.courier.com/inbound/rudderstack", - "files": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer test-api-key" - }, - "method": "POST", - "params": {}, - "type": "REST", - "version": "1" - } - }, - { - "description": "Identify call with traits inside context but not at root level", - "input": { - "message": { - "context": { - "ip": "8.8.8.8", - "traits": { - "name": "Joe Doe", - "email": "joe@example.com", - "plan": "basic", - "age": 27 - } - }, - "type": "identify", - "userId": "userIdTest", - "originalTimestamp": "2022-10-17T15:53:10.566+05:30", - "messageId": "8d04cc30-fc15-49bd-901f-c5c3f72a7d82" - }, - "destination": { - "Config": { - "apiKey": "test-api-key" - } - } - }, - "output": { - "body": { - "FORM": {}, - "JSON": { - "context": { - "ip": "8.8.8.8", - "traits": { - "name": "Joe Doe", - "email": "joe@example.com", - "plan": "basic", - "age": 27 - } - }, - "traits": { - "name": "Joe Doe", - "email": "joe@example.com", - "plan": "basic", - "age": 27 - }, - "type": "identify", - "userId": "userIdTest", - "originalTimestamp": "2022-10-17T15:53:10.566+05:30", - "messageId": "8d04cc30-fc15-49bd-901f-c5c3f72a7d82" - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "endpoint": "https://api.courier.com/inbound/rudderstack", - "files": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer test-api-key" - }, - "method": "POST", - "params": {}, - "type": "REST", - "version": "1" - } - }, - { - "description": "Identify call without traits", - "input": { - "message": { - "context": { - "ip": "8.8.8.8" - }, - "type": "identify", - "userId": "userIdTest", - "originalTimestamp": "2022-10-17T15:53:10.566+05:30", - "messageId": "8d04cc30-fc15-49bd-901f-c5c3f72a7d82" - }, - "destination": { - "Config": { - "apiKey": "test-api-key" - } - } - }, - "output": { - "error": "traits is a required field for identify call" - } - }, - { - "description": "Track call", - "input": { - "message": { - "context": { - "ip": "8.8.8.8" - }, - "event": "trackTest", - "properties": { - "activity": "checkout" - }, - "userId": "userIdTest", - "type": "track", - "messageId": "3c0abc14-96a2-4aed-9dfc-ee463832cc24", - "originalTimestamp": "2022-10-17T15:32:44.202+05:30" - }, - "destination": { - "Config": { - "apiKey": "test-api-key" - } - } - }, - "output": { - "body": { - "FORM": {}, - "JSON": { - "context": { - "ip": "8.8.8.8" - }, - "event": "trackTest", - "properties": { - "activity": "checkout" - }, - "userId": "userIdTest", - "type": "track", - "messageId": "3c0abc14-96a2-4aed-9dfc-ee463832cc24", - "originalTimestamp": "2022-10-17T15:32:44.202+05:30" - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "endpoint": "https://api.courier.com/inbound/rudderstack", - "files": {}, - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer test-api-key" - }, - "method": "POST", - "params": {}, - "type": "REST", - "version": "1" - } - } -] diff --git a/test/__tests__/data/courier_router.json b/test/__tests__/data/courier_router.json deleted file mode 100644 index 54385c82713..00000000000 --- a/test/__tests__/data/courier_router.json +++ /dev/null @@ -1,120 +0,0 @@ -[ - { - "input": [ - { - "message": { - "type": "track", - "channel": "web", - "event": "Product Added", - "userId": "test123", - "properties": { "price": 999, "quantity": 1 }, - "context": { "traits": { "firstName": "John", "age": 27 } }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "destination": { - "Config": { - "apiKey": "test-api-key" - } - }, - "metadata": { - "jobId": 1 - } - }, - { - "message": { - "type": "track", - "channel": "web", - "event": "Product Added", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "destination": { - "Config": { - "sdkKey": "test-sdk-key", - "trackKnownUsers": false, - "nonInteraction": false, - "listen": false, - "trackCategorizedPages": true, - "trackNamedPages": true - } - }, - "metadata": { - "jobId": 2 - } - } - ], - "output": [ - { - "batched": false, - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.courier.com/inbound/rudderstack", - "headers": { - "Authorization": "Bearer test-api-key", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "type": "track", - "channel": "web", - "event": "Product Added", - "userId": "test123", - "properties": { "price": 999, "quantity": 1 }, - "context": { "traits": { "firstName": "John", "age": 27 } }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "destination": { - "Config": { - "apiKey": "test-api-key" - } - }, - "metadata": [ - { - "jobId": 1 - } - ], - "statusCode": 200 - }, - { - "batched": false, - "error": "apiKey is required", - "metadata": [ - { - "jobId": 2 - } - ], - "statTags": { - "errorCategory": "dataValidation", - "errorType": "configuration" - }, - "statusCode": 400, - "destination": { - "Config": { - "sdkKey": "test-sdk-key", - "trackKnownUsers": false, - "nonInteraction": false, - "listen": false, - "trackCategorizedPages": true, - "trackNamedPages": true - } - } - } - ] - } -] diff --git a/test/__tests__/data/criteo_audience.json b/test/__tests__/data/criteo_audience.json deleted file mode 100644 index bae8a8750bb..00000000000 --- a/test/__tests__/data/criteo_audience.json +++ /dev/null @@ -1,940 +0,0 @@ -[ - { - "description": "Adding email audienceType", - "input": { - "metadata": { - "secret": { - "accessToken": "success_access_token" - } - }, - "message": { - "userId": "user 1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "madid": "sample_madid", - "email": "alex@email.com", - "identityLink": "text.com", - "gum": "sdjfds" - }, - { - "madid": "sample_madid_1", - "email": "amy@email.com", - "identityLink": "yahoo.com", - "gum": "sdjfds" - }, - { - "madid": "sample_madid_2", - "email": "van@email.com", - "identityLink": "abc.com", - "gum": "sdjfds" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceId": "34894", - "audienceType": "email" - }, - "ID": "sample_destinationId" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34894/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "add", - "identifierType": "email", - "identifiers": ["alex@email.com", "amy@email.com", "van@email.com"], - "internalIdentifiers": false - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Adding madid audienceType", - "input": { - "metadata": { - "secret": { - "accessToken": "success_access_token" - } - }, - "message": { - "userId": "user 1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "madid": "sample_madid", - "email": "alex@email.com", - "identityLink": "text.com", - "gum": "sdjfds" - }, - { - "madid": "sample_madid_1", - "email": "amy@email.com", - "identityLink": "yahoo.com", - "gum": "sdjfds" - }, - { - "madid": "sample_madid_2", - "email": "van@email.com", - "identityLink": "abc.com", - "gum": "sdjfds" - } - ] - } - }, - "context": { - "ip": "14.5.67.21" - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceId": "34895", - "audienceType": "madid" - }, - "ID": "sample_destinationId" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34895/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "add", - "identifierType": "madid", - "identifiers": ["sample_madid", "sample_madid_1", "sample_madid_2"], - "internalIdentifiers": false - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Adding and removing madid audienceType", - "input": { - "metadata": { - "secret": { - "accessToken": "success_access_token" - } - }, - "message": { - "userId": "user 1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "madid": "sample_madid", - "email": "alex@email.com", - "identityLink": "text.com", - "gum": "sdjfds" - }, - { - "madid": "sample_madid_1", - "email": "amy@email.com", - "identityLink": "yahoo.com", - "gum": "sdjfds" - }, - { - "madid": "sample_madid_2", - "email": "van@email.com", - "identityLink": "abc.com", - "gum": "sdjfds" - } - ], - "remove": [ - { - "madid": "sample_madid", - "email": "alex@email.com", - "identityLink": "text.com", - "gum": "sdjfds" - } - ] - } - }, - "context": { - "ip": "14.5.67.21" - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceId": "34893", - "audienceType": "madid" - }, - "ID": "sample_destinationId" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34893/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "add", - "identifierType": "madid", - "identifiers": ["sample_madid", "sample_madid_1", "sample_madid_2"], - "internalIdentifiers": false - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34893/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "remove", - "identifierType": "madid", - "identifiers": ["sample_madid"], - "internalIdentifiers": false - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Adding and removing identityLink audienceType", - "input": { - "metadata": { - "secret": { - "accessToken": "success_access_token" - } - }, - "message": { - "userId": "user 1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "madid": "sample_madid", - "email": "alex@email.com", - "identityLink": "text.com", - "gum": "sdjfds" - }, - { - "madid": "sample_madid_1", - "email": "amy@email.com", - "identityLink": "yahoo.com", - "gum": "sdjfds" - }, - { - "madid": "sample_madid_2", - "email": "van@email.com", - "identityLink": "abc.com", - "gum": "sdjfds" - } - ], - "remove": [ - { - "madid": "sample_madid", - "email": "alex@email.com", - "identityLink": "text.com", - "gum": "sdjfds" - } - ] - } - }, - "context": { - "ip": "14.5.67.21" - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceId": "34893", - "audienceType": "identityLink" - }, - "ID": "sample_destinationId" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34893/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "add", - "identifierType": "identityLink", - "identifiers": ["text.com", "yahoo.com", "abc.com"], - "internalIdentifiers": false - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34893/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "remove", - "identifierType": "identityLink", - "identifiers": ["text.com"], - "internalIdentifiers": false - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Adding and removing gum audienceType", - "input": { - "metadata": { - "secret": { - "accessToken": "success_access_token" - } - }, - "message": { - "userId": "user 1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "madid": "sample_madid", - "email": "alex@email.com", - "identityLink": "text.com", - "gum": "sample_gum1" - }, - { - "madid": "sample_madid_1", - "email": "amy@email.com", - "identityLink": "yahoo.com", - "gum": "sample_gum2" - }, - { - "madid": "sample_madid_2", - "email": "van@email.com", - "identityLink": "abc.com", - "gum": "sample_gum3" - } - ], - "remove": [ - { - "madid": "sample_madid", - "email": "alex@email.com", - "identityLink": "text.com", - "gum": "sample_gum3" - } - ] - } - }, - "context": { - "ip": "14.5.67.21" - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceId": "34893", - "audienceType": "gum", - "gumCallerId": "329739" - }, - "ID": "sample_destinationId" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34893/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "add", - "identifierType": "gum", - "identifiers": ["sample_gum1", "sample_gum2", "sample_gum3"], - "internalIdentifiers": false, - "gumCallerId": "329739" - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34893/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "remove", - "identifierType": "gum", - "identifiers": ["sample_gum3"], - "internalIdentifiers": false, - "gumCallerId": "329739" - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Unsupported message type", - "input": { - "metadata": { - "secret": { - "accessToken": "success_access_token" - } - }, - "message": { - "userId": "user 1", - "type": "identify", - "properties": { - "listData": { - "add": [ - { - "madid": "sample_madid", - "email": "alex@email.com", - "identityLink": "text.com", - "gum": "sdjfds" - }, - { - "madid": "sample_madid_1", - "email": "amy@email.com", - "identityLink": "yahoo.com", - "gum": "sdjfds" - }, - { - "madid": "sample_madid_2", - "email": "van@email.com", - "identityLink": "abc.com", - "gum": "sdjfds" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceId": "34893", - "audienceType": "email" - }, - "ID": "sample_destinationId" - } - }, - "output": { - "error": "Event type identify is not supported" - } - }, - { - "description": "Properties is not present in the message", - "input": { - "metadata": { - "secret": { - "accessToken": "success_access_token" - } - }, - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceId": "34893", - "audienceType": "email" - }, - "ID": "sample_destinationId" - }, - "message": { - "type": "audiencelist", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "1.12.3" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "traits": { - "brand": "John Players", - "price": "15000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", - "userId": "ujjwal27" - }, - "locale": "en-US", - "device": { - "token": "token", - "id": "id", - "type": "ios" - }, - "screen": { - "density": 2 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "2021-01-03T17:02:53.193Z" - } - }, - "output": { - "error": "Message properties is not present. Aborting message." - } - }, - { - "description": "Payload without listData", - "input": { - "metadata": { - "secret": { - "accessToken": "success_access_token" - } - }, - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceId": "34893", - "audienceType": "email" - }, - "ID": "sample_destinationId" - }, - "message": { - "event": "add_to_Cart", - "type": "track", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", - "channel": "web", - "properties": { - "brand": "Zara", - "price": "12000" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "locale": "en-US", - "screen": { - "density": 2 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "2021-01-03T17:02:53.193Z" - } - }, - "output": { - "error": "listData is not present inside properties. Aborting message." - } - }, - { - "description": "Response is empty", - "input": { - "metadata": { - "secret": { - "accessToken": "success_access_token" - } - }, - "message": { - "userId": "user 1", - "type": "audiencelist", - "properties": { - "listData": {} - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceId": "34893", - "audienceType": "email" - }, - "ID": "sample_destinationId" - } - }, - "output": { - "error": "Payload could not be populated" - } - }, - { - "description": "Message type not given", - "input": { - "metadata": { - "secret": { - "accessToken": "success_access_token" - } - }, - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceId": "34893", - "audienceType": "email" - }, - "ID": "sample_destinationId" - }, - "message": { - "event": "add_to_Cart", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", - "channel": "web", - "properties": { - "brand": "Zara", - "price": "12000" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "locale": "en-US", - "screen": { - "density": 2 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "2021-01-03T17:02:53.193Z" - } - }, - "output": { - "error": "Message Type is not present. Aborting message." - } - }, - { - "description": "Gum caller ID is not present", - "input": { - "metadata": { - "secret": { - "accessToken": "success_access_token" - } - }, - "destination": { - "Config": { - "audienceId": "34893", - "audienceType": "gum" - }, - "ID": "sample_destinationId" - }, - "message": { - "event": "add_to_Cart", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", - "type": "audiencelist", - "channel": "web", - "properties": { - "listData": { - "add": [ - { - "madid": "sample_madid", - "email": "alex@email.com", - "identityLink": "text.com", - "gum": "sample_gum1" - }, - { - "madid": "sample_madid_1", - "email": "amy@email.com", - "identityLink": "yahoo.com", - "gum": "sample_gum2" - }, - { - "madid": "sample_madid_2", - "email": "van@email.com", - "identityLink": "abc.com", - "gum": "sample_gum3" - } - ] - }, - "brand": "Zara", - "price": "12000" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "locale": "en-US", - "screen": { - "density": 2 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "2021-01-03T17:02:53.193Z" - } - }, - "output": { - "error": "gumCallerId is required for audience type gum" - } - }, - { - "description": "reuqired properties in listData are not present", - "input": { - "metadata": { - "secret": { - "accessToken": "success_access_token" - } - }, - "message": { - "userId": "user 1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "madid": "sample_madid", - "email": "alex@email.com", - "identityLink": "text.com", - "gum": "sdjfds" - }, - { - "madid": "sample_madid_1", - "email": "amy@email.com", - "identityLink": "yahoo.com", - "gum": "sdjfds" - }, - { - "madid": "sample_madid_2", - "identityLink": "abc.com", - "gum": "sdjfds" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceId": "34894", - "audienceType": "email" - }, - "ID": "sample_destinationId" - } - }, - "output": { - "error": "Required property for email type audience is not available in an object" - } - } -] diff --git a/test/__tests__/data/criteo_audience_proxy_input.json b/test/__tests__/data/criteo_audience_proxy_input.json index 84f15fc4707..2aa292939bf 100644 --- a/test/__tests__/data/criteo_audience_proxy_input.json +++ b/test/__tests__/data/criteo_audience_proxy_input.json @@ -16,9 +16,7 @@ "attributes": { "operation": "remove", "identifierType": "gum", - "identifiers": [ - "sample_gum3" - ], + "identifiers": ["sample_gum3"], "internalIdentifiers": false, "gumCallerId": "329739" } @@ -33,6 +31,37 @@ "destination": "criteo_audience" } }, + { + "version": "1", + "type": "REST", + "method": "PATCH", + "endpoint": "https://api.criteo.com/2022-10/audiences/3485/contactlist", + "headers": { + "Authorization": "Bearer success_access_token", + "Content-Type": "application/json", + "Accept": "application/json" + }, + "body": { + "JSON": { + "data": { + "type": "ContactlistAmendment", + "attributes": { + "operation": "add", + "identifierType": "madid", + "identifiers": ["sample_madid", "sample_madid_1", "sample_madid_2"], + "internalIdentifiers": false + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "params": { + "destination": "criteo_audience" + } + }, { "version": "1", "type": "REST", @@ -50,11 +79,7 @@ "attributes": { "operation": "add", "identifierType": "madid", - "identifiers": [ - "sample_madid", - "sample_madid_1", - "sample_madid_2" - ], + "identifiers": ["sample_madid", "sample_madid_1", "sample_madid_2"], "internalIdentifiers": false } } @@ -85,11 +110,7 @@ "attributes": { "operation": "add", "identifierType": "madid", - "identifiers": [ - "sample_madid", - "sample_madid_1", - "sample_madid_2" - ], + "identifiers": ["sample_madid", "sample_madid_1", "sample_madid_2"], "internalIdentifiers": false } } @@ -120,11 +141,7 @@ "attributes": { "operation": "add", "identifierType": "madid", - "identifiers": [ - "sample_madid", - "sample_madid_1", - "sample_madid_2" - ], + "identifiers": ["sample_madid", "sample_madid_1", "sample_madid_2"], "internalIdentifiers": false } } @@ -155,11 +172,7 @@ "attributes": { "operation": "add", "identifierType": "madid", - "identifiers": [ - "sample_madid", - "sample_madid_1", - "sample_madid_2" - ], + "identifiers": ["sample_madid", "sample_madid_1", "sample_madid_2"], "internalIdentifiers": false } } @@ -190,11 +203,7 @@ "attributes": { "operation": "add", "identifierType": "madid", - "identifiers": [ - "sample_madid", - "sample_madid_1", - "sample_madid_2" - ], + "identifiers": ["sample_madid", "sample_madid_1", "sample_madid_2"], "internalIdentifiers": false } } @@ -208,4 +217,4 @@ "destination": "criteo_audience" } } -] \ No newline at end of file +] diff --git a/test/__tests__/data/criteo_audience_proxy_output.json b/test/__tests__/data/criteo_audience_proxy_output.json index 0508ec96328..a2d33fbb9a6 100644 --- a/test/__tests__/data/criteo_audience_proxy_output.json +++ b/test/__tests__/data/criteo_audience_proxy_output.json @@ -9,6 +9,34 @@ } } }, + { + "output": { + "status": 401, + "authErrorCategory": "REFRESH_TOKEN", + "destinationResponse": { + "errors": [ + { + "traceIdentifier": "80a1a0ba3981b04da847d05700752c77", + "type": "authorization", + "code": "authorization-token-expired", + "instance": "/2022-10/audiences/123/contactlist", + "title": "The authorization token has expired" + } + ] + }, + "message": "The authorization token has expired during criteo_audience response transformation", + "statTags": { + "destType": "CRITEO_AUDIENCE", + "errorCategory": "network", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "errorType": "aborted", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination" + } + } + }, { "output": { "status": 401, diff --git a/test/__tests__/data/criteo_audience_router_input.json b/test/__tests__/data/criteo_audience_router_input.json deleted file mode 100644 index 25607ca936c..00000000000 --- a/test/__tests__/data/criteo_audience_router_input.json +++ /dev/null @@ -1,111 +0,0 @@ -[ - { - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceId": "34893", - "audienceType": "email" - }, - "ID": "iwehr83843" - }, - "metadata": { - "secret": { - "accessToken": "success_access_token" - }, - "jobId": 1 - }, - "message": { - "userId": "user 1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "madid": "sample_madid", - "email": "alex@email.com", - "identityLink": "text.com", - "gum": "sdjfds" - }, - { - "madid": "sample_madid_1", - "email": "amy@email.com", - "identityLink": "yahoo.com", - "gum": "sdjfds" - }, - { - "madid": "sample_madid_2", - "email": "van@email.com", - "identityLink": "abc.com", - "gum": "sdjfds" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceId": "34893", - "audienceType": "madid" - }, - "ID": "iwehr83843" - }, - "metadata": { - "secret": { - "accessToken": "success_access_token" - }, - "jobId": 2 - }, - "message": { - "userId": "user 1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "madid": "sample_madid", - "email": "alex@email.com", - "identityLink": "text.com", - "gum": "sdjfds" - }, - { - "madid": "sample_madid_1", - "email": "amy@email.com", - "identityLink": "yahoo.com", - "gum": "sdjfds" - }, - { - "madid": "sample_madid_2", - "email": "van@email.com", - "identityLink": "abc.com", - "gum": "sdjfds" - } - ], - "remove": [ - { - "madid": "sample_madid", - "email": "alex@email.com", - "identityLink": "text.com", - "gum": "sdjfds" - } - ] - } - }, - "context": { - "ip": "14.5.67.21" - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } -] diff --git a/test/__tests__/data/criteo_audience_router_output.json b/test/__tests__/data/criteo_audience_router_output.json deleted file mode 100644 index 6c38b7460b7..00000000000 --- a/test/__tests__/data/criteo_audience_router_output.json +++ /dev/null @@ -1,135 +0,0 @@ -[ - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34893/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "add", - "identifierType": "email", - "identifiers": ["alex@email.com", "amy@email.com", "van@email.com"], - "internalIdentifiers": false - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "jobId": 1, - "secret": { - "accessToken": "success_access_token" - } - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceId": "34893", - "audienceType": "email" - }, - "ID": "iwehr83843" - } - }, - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34893/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "add", - "identifierType": "madid", - "identifiers": ["sample_madid", "sample_madid_1", "sample_madid_2"], - "internalIdentifiers": false - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://api.criteo.com/2022-10/audiences/34893/contactlist", - "headers": { - "Authorization": "Bearer success_access_token", - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "ContactlistAmendment", - "attributes": { - "operation": "remove", - "identifierType": "madid", - "identifiers": ["sample_madid"], - "internalIdentifiers": false - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "jobId": 2, - "secret": { - "accessToken": "success_access_token" - } - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "clientId": "abcdef8-f49-4cd6-b4c5-958b3d66d431", - "clientSecret": "sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg", - "audienceId": "34893", - "audienceType": "madid" - }, - "ID": "iwehr83843" - } - } -] diff --git a/test/__tests__/data/customerio_input.json b/test/__tests__/data/customerio_input.json deleted file mode 100644 index 14d9273f22e..00000000000 --- a/test/__tests__/data/customerio_input.json +++ /dev/null @@ -1,4898 +0,0 @@ -[ - { - "message": { - "channel": "web", - "type": "identify", - "userId": "cio_1234", - "integrations": { - "All": true - }, - "traits": { - "email": "updated_email@example.com", - "id": "updated-id-value" - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "123456", - "email": "sayan@gmail.com", - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - }, - "ip": "0.0.0.0", - "age": 26 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "user_properties": { - "prop1": "val1", - "prop2": "val2" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "userId": "123456", - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "anon-id", - "email": "test@gmail.com", - "dot.name": "Arnab Pal", - "address": { - "city": "NY", - "country": "USA", - "postalCode": 712136, - "state": "CA", - "street": "" - } - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "123456", - "email": "sayan@gmail.com", - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - }, - "ip": "0.0.0.0", - "age": 26 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "user_properties": { - "prop1": "val1", - "prop2": "val2" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "userId": "123456", - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "anon-id", - "email": "test@gmail.com", - "dot.name": "Arnab Pal", - "address": { - "city": "NY", - "country": "USA", - "postalCode": 712136, - "state": "CA", - "street": "" - } - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "123456", - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - }, - "ip": "0.0.0.0", - "age": 26 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "user_properties": { - "prop1": "val1", - "prop2": "val2" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "anon-id", - "dot.name": "Arnab Pal", - "address": { - "city": "NY", - "country": "USA", - "postalCode": 712136, - "state": "CA", - "street": "" - } - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "123456", - "email": "sayan@gmail.com", - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - }, - "ip": "0.0.0.0", - "age": 26 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "user_properties": { - "prop1": "val1", - "prop2": "val2" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "anon-id", - "email": "test@gmail.com", - "dot.name": "Arnab Pal", - "address": { - "city": "NY", - "country": "USA", - "postalCode": 712136, - "state": "CA", - "street": "" - } - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "userId": "12345", - "properties": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "userId": "12345", - "event": "test track event", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "userId": "", - "event": "test track event", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "userId": "", - "event": "test track event", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "anonymousId": "7e32188a4dab669f", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.torpedolabs.wynn.wscci.dev", - "version": "1.0" - }, - "device": { - "id": "7e32188a4dab669f", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android", - "token": "abcxyz" - }, - "library": { - "name": "com.rudderlabs.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "7e32188a4dab669f" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "event": "Application Installed", - "integrations": { - "All": true - }, - "messageId": "1578564113557-af022c68-429e-4af4-b99b-2b9174056383", - "properties": { - "review_id": "some_review_id", - "product_id": "some_product_id_a", - "rating": 2.0, - "review_body": "Some Review Body" - }, - "userId": "12345", - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "type": "track", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "anonymousId": "7e32188a4dab669f", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.torpedolabs.wynn.wscci.dev", - "version": "1.0" - }, - "device": { - "id": "7e32188a4dab669f", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android", - "token": "abcxyz" - }, - "library": { - "name": "com.rudderlabs.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "7e32188a4dab669f" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "event": "Application Uninstalled", - "integrations": { - "All": true - }, - "messageId": "1578564113557-af022c68-429e-4af4-b99b-2b9174056383", - "properties": { - "review_id": "some_review_id", - "product_id": "some_product_id_a", - "rating": 2.0, - "review_body": "Some Review Body" - }, - "userId": "12345", - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "type": "track", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile", - "token": "somel" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "userId": "12345", - "event": "Application Uninstalled", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile", - "token": "somel" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "Application Uninstalled", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile", - "token": "somel" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "Application Uninstalled", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile", - "token": "somel" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "Application Installed", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile", - "token": "somel" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "Application Installed", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile", - "token": "somel" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "Application Installed", - "userId": "12345", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "Application Installed", - "userId": "12345", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "Application Opened", - "userId": "12345", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile", - "token": "sample_device_token" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "Application Opened", - "userId": "12345", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile", - "token": "sample_device_token" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "Application Uninstalled", - "userId": "12345", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "123456", - "email": "sayan@gmail.com", - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - }, - "ip": "0.0.0.0", - "age": 26 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "user_properties": { - "prop1": "val1", - "prop2": "val2" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "userId": "123456", - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "anon-id", - "email": "test@gmail.com", - "address": { - "city": "NY", - "country": "USA", - "postalCode": 712136, - "state": "CA", - "street": "" - } - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "datacenterEU": true, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "userId": "12345", - "properties": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": true, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "userId": "12345", - "event": "test track event", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": true, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "userId": "", - "event": "test track event", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": true, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "userId": "", - "event": "test track event", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": true, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "anonymousId": "7e32188a4dab669f", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.torpedolabs.wynn.wscci.dev", - "version": "1.0" - }, - "device": { - "id": "7e32188a4dab669f", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android", - "token": "abcxyz" - }, - "library": { - "name": "com.rudderlabs.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "7e32188a4dab669f" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "event": "Application Installed", - "integrations": { - "All": true - }, - "messageId": "1578564113557-af022c68-429e-4af4-b99b-2b9174056383", - "properties": { - "review_id": "some_review_id", - "product_id": "some_product_id_a", - "rating": 2.0, - "review_body": "Some Review Body" - }, - "userId": "12345", - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "type": "track", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "datacenterEU": true, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "anonymousId": "7e32188a4dab669f", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.torpedolabs.wynn.wscci.dev", - "version": "1.0" - }, - "device": { - "id": "7e32188a4dab669f", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android", - "token": "abcxyz" - }, - "library": { - "name": "com.rudderlabs.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "7e32188a4dab669f" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "event": "Application Uninstalled", - "integrations": { - "All": true - }, - "messageId": "1578564113557-af022c68-429e-4af4-b99b-2b9174056383", - "properties": { - "review_id": "some_review_id", - "product_id": "some_product_id_a", - "rating": 2.0, - "review_body": "Some Review Body" - }, - "userId": "12345", - "originalTimestamp": "2020-01-09T10:01:53.558Z", - "type": "track", - "sentAt": "2020-01-09T10:02:03.257Z" - }, - "destination": { - "Config": { - "datacenterEU": true, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile", - "token": "somel" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "userId": "12345", - "event": "Application Uninstalled", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": true, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile", - "token": "somel" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "Application Uninstalled", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": true, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile", - "token": "somel" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "Application Installed", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": true, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile", - "token": "somel" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "Application Installed", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": true, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile", - "token": "somel" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "Application Installed", - "userId": "12345", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": true, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "Application Installed", - "userId": "12345", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": true, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "Application Opened", - "userId": "12345", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": true, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile", - "token": "sample_device_token" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "Application Opened", - "userId": "12345", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": true, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "mobile", - "context": { - "device": { - "name": "test android", - "id": "sample_device_id", - "model": "some_model_device", - "type": "mobile", - "token": "sample_device_token" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "Application Uninstalled", - "userId": "12345", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": true, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "https://www.stoodi.com.br/exershgcios/upe/2019/questao/gregorio-de-matos-poeta-baiano-que-viveu-no-seculo-xvi/", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "https://www.stoodi.com.br/exershgcios/upe/2019/questao/gregorio-de-matos-poeta-baiano-que-viveu-no-seculo-xvi/", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "screen", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "https://www.stoodi.com.br/exercicios/upe/2016/questao/gregorio-de-matos-poeta-baiano-que-viveu-no-seculo-xvi/", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "screen", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "event": "https://www.stoodi.com.br/exercicios/upe/2016/questao/gregorio-de-matos-poeta-baiano-que-viveu-no-seculo-xvi/", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "anonymousId": "ruchira-100-anon", - "channel": "mobile", - "context": { - "app": { - "build": "173", - "name": "MyWallSt Debug", - "namespace": "com.rubicoin.Invest", - "version": "6.2" - }, - "device": { - "attTrackingStatus": 0, - "id": "6fdb629d-4f18-4f3e-943a-3f6f482b331e", - "manufacturer": "Apple", - "model": "iPhone", - "name": "Ales' iPhone", - "type": "iOS" - }, - "library": { - "name": "rudder-ios-library", - "version": "1.0.19" - }, - "locale": "en-DE", - "network": { - "bluetooth": false, - "carrier": "unavailable", - "cellular": false, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "14.8" - }, - "screen": { - "density": 3, - "height": 375, - "width": 812 - }, - "timezone": "Europe/Prague", - "traits": { - "anonymousId": "6fdb629d-4f18-4f3e-943a-3f6f482b331e", - "userId": "6a540d50-c4dc-4694-beca-d16de113a1c4-1618384106.8700438" - } - }, - "event": "Home: Viewed", - "integrations": { - "All": true - }, - "messageId": "1632314412-e724167f-13bd-455b-943d-dd765a7810fe", - "originalTimestamp": "2021-09-22T12:40:12.220Z", - "properties": {}, - "rudderId": "782cdb50-e2b9-45fc-9d22-07fe792dcfba", - "sentAt": "2021-09-22T12:40:14.453Z", - "type": "track", - "userId": "ruchira-user-id-100" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "abc", - "apiKey": "xyz" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "123456", - "email": "sayan@gmail.com", - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - }, - "ip": "0.0.0.0", - "age": 26 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "ruchira-100-anon", - "userId": "ruchira-user-id-100", - "integrations": { - "All": true - }, - "traits": { - "email": "test@gmail.com", - "address": { - "city": "NY", - "country": "USA", - "postalCode": 712136, - "state": "CA", - "street": "" - } - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "datacenterEU": true, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "sources", - "context": { - "externalId": [ - { - "id": "xaviercharles@hotmail.com", - "identifierType": "email", - "type": "CUSTOMERIO-customers" - } - ], - "mappedToDestination": "true", - "sources": { - "batch_id": "3d6f7aa8-9b70-4759-970d-212e6714ad22", - "job_id": "1zDgnw7ZmHWR7gtY4niHYysL3zS/Syncher", - "job_run_id": "c5shebbh9jqg10k8d21g", - "task_id": "tt_10_rows", - "task_run_id": "c5shebbh9jqg10k8d220", - "version": "release.v1.6.8" - } - }, - "messageId": "d82a45e1-5a27-4c1d-af89-83bdbc6139d0", - "originalTimestamp": "2021-10-27T09:09:56.673Z", - "receivedAt": "2021-10-27T09:09:56.187Z", - "recordId": "3", - "request_ip": "10.1.85.177", - "rudderId": "5b19a81b-df60-4ccd-abf0-fcfe2b7db054", - "sentAt": "2021-10-27T09:09:56.673Z", - "timestamp": "2021-10-27T09:09:56.186Z", - "traits": { - "last_name": "xavier", - "first_name": "charles" - }, - "type": "identify", - "userId": "xaviercharles@hotmail.com" - }, - "destination": { - "ID": "1zgXcyv272oZA8HWqe7zInhJjPL", - "Name": "ere", - "DestinationDefinition": { - "ID": "1iVQr671C0E8MVpzvCEegsLM2J5", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU"], - "web": ["useNativeSDK"] - }, - "excludeKeys": [], - "includeKeys": ["apiKey", "siteID", "datacenterEU"], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative" - ], - "supportsVisualMapper": true, - "transformAt": "processor" - }, - "ResponseRules": null - }, - "Config": { - "apiKey": "a292d85ac36de15fc219", - "datacenterEU": false, - "siteID": "eead090ab9e2e35004dc" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - { - "message": { - "channel": "sources", - "context": { - "externalId": [ - { - "id": "xaviercharles", - "identifierType": "id", - "type": "CUSTOMERIO-customers" - } - ], - "mappedToDestination": "true", - "sources": { - "batch_id": "3d6f7aa8-9b70-4759-970d-212e6714ad22", - "job_id": "1zDgnw7ZmHWR7gtY4niHYysL3zS/Syncher", - "job_run_id": "c5shebbh9jqg10k8d21g", - "task_id": "tt_10_rows", - "task_run_id": "c5shebbh9jqg10k8d220", - "version": "release.v1.6.8" - } - }, - "messageId": "d82a45e1-5a27-4c1d-af89-83bdbc6139d0", - "originalTimestamp": "2021-10-27T09:09:56.673Z", - "receivedAt": "2021-10-27T09:09:56.187Z", - "recordId": "3", - "request_ip": "10.1.85.177", - "rudderId": "5b19a81b-df60-4ccd-abf0-fcfe2b7db054", - "sentAt": "2021-10-27T09:09:56.673Z", - "traits": { - "last_name": "xavier", - "first_name": "charles" - }, - "type": "identify", - "userId": "xaviercharles" - }, - "destination": { - "ID": "1zgXcyv272oZA8HWqe7zInhJjPL", - "Name": "ere", - "DestinationDefinition": { - "ID": "1iVQr671C0E8MVpzvCEegsLM2J5", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU"], - "web": ["useNativeSDK"] - }, - "excludeKeys": [], - "includeKeys": ["apiKey", "siteID", "datacenterEU"], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative" - ], - "supportsVisualMapper": true, - "transformAt": "processor" - }, - "ResponseRules": null - }, - "Config": { - "apiKey": "a292d85ac36de15fc219", - "datacenterEU": false, - "siteID": "eead090ab9e2e35004dc" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - { - "message": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "zx_userid_missing", - "namespace": "org.reactjs.native.example.zx-userid-missing", - "version": "1.0" - }, - "device": { - "attTrackingStatus": 0, - "id": "5d727a3e-a72b-4d00-8078-669c1494791d", - "manufacturer": "Apple", - "model": "iPhone", - "name": "iPhone 13", - "token": "deviceToken", - "type": "iOS" - }, - "library": { - "name": "rudder-ios-library", - "version": "1.3.1" - }, - "locale": "en-US", - "network": { - "bluetooth": false, - "carrier": "unavailable", - "cellular": false, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "15.2" - }, - "screen": { - "density": 3, - "height": 390, - "width": 844 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "email": "sofia@gmail.com", - "login_status": "Authenticated", - "name": "Sofia", - "phone_verified": 1, - "selected_city": "", - "selected_lat": 0, - "selected_long": 0, - "selected_neighborhood": "", - "selected_number": "", - "selected_postal_code": "", - "selected_state": "", - "selected_street": "", - "signed_up_for_newsletters": 0, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3" - } - }, - "event": "Application Opened", - "integrations": { - "All": true - }, - "messageId": "1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f", - "timestamp": "2022-01-10T10:00:26.513Z", - "properties": { - "from_background": false - }, - "receivedAt": "2022-01-10T20:35:30.556+05:30", - "request_ip": "[::1]", - "rudderId": "423cdf83-0448-4a99-b14d-36fcc63e6ea0", - "sentAt": "2022-01-10T10:00:26.982Z", - "type": "track", - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "DESAU SAI", - "datacenterEU": false, - "deviceTokenEventName": "device_token_registered", - "siteID": "DESU SAI" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "zx_userid_missing", - "namespace": "org.reactjs.native.example.zx-userid-missing", - "version": "1.0" - }, - "device": { - "attTrackingStatus": 0, - "id": "5d727a3e-a72b-4d00-8078-669c1494791d", - "manufacturer": "Apple", - "model": "iPhone", - "name": "iPhone 13", - "type": "iOS" - }, - "library": { - "name": "rudder-ios-library", - "version": "1.3.1" - }, - "locale": "en-US", - "network": { - "bluetooth": false, - "carrier": "unavailable", - "cellular": false, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "15.2" - }, - "screen": { - "density": 3, - "height": 390, - "width": 844 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "email": "sofia@gmail.com", - "login_status": "Authenticated", - "name": "Sofia", - "phone_verified": 1, - "selected_city": "", - "selected_lat": 0, - "selected_long": 0, - "selected_neighborhood": "", - "selected_number": "", - "selected_postal_code": "", - "selected_state": "", - "selected_street": "", - "signed_up_for_newsletters": 0, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3" - } - }, - "event": "Application Opened", - "integrations": { - "All": true - }, - "messageId": "1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f", - "originalTimestamp": "2022-01-10T10:00:26.513Z", - "properties": { - "from_background": false - }, - "receivedAt": "2022-01-10T20:39:04.424+05:30", - "request_ip": "[::1]", - "rudderId": "423cdf83-0448-4a99-b14d-36fcc63e6ea0", - "sentAt": "2022-01-10T10:00:26.982Z", - "timestamp": "2022-01-10T20:39:03.955+05:30", - "type": "track", - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "DESAU SAI", - "datacenterEU": false, - "deviceTokenEventName": "device_token_registered", - "siteID": "DESU SAI" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "zx_userid_missing", - "namespace": "org.reactjs.native.example.zx-userid-missing", - "version": "1.0" - }, - "device": { - "attTrackingStatus": 0, - "id": "5d727a3e-a72b-4d00-8078-669c1494791d", - "manufacturer": "Apple", - "model": "iPhone", - "name": "iPhone 13", - "token": "deviceToken", - "type": "iOS" - }, - "library": { - "name": "rudder-ios-library", - "version": "1.3.1" - }, - "locale": "en-US", - "network": { - "bluetooth": false, - "carrier": "unavailable", - "cellular": false, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "15.2" - }, - "screen": { - "density": 3, - "height": 390, - "width": 844 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "email": "sofia@gmail.com", - "login_status": "Authenticated", - "name": "Sofia", - "phone_verified": 1, - "selected_city": "", - "selected_lat": 0, - "selected_long": 0, - "selected_neighborhood": "", - "selected_number": "", - "selected_postal_code": "", - "selected_state": "", - "selected_street": "", - "signed_up_for_newsletters": 0 - } - }, - "event": "Application Opened", - "integrations": { - "All": true - }, - "messageId": "1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f", - "originalTimestamp": "2022-01-10T10:00:26.513Z", - "properties": { - "from_background": false - }, - "receivedAt": "2022-01-10T20:41:30.970+05:30", - "request_ip": "[::1]", - "rudderId": "423cdf83-0448-4a99-b14d-36fcc63e6ea0", - "sentAt": "2022-01-10T10:00:26.982Z", - "type": "track", - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "DESAU SAI", - "datacenterEU": false, - "deviceTokenEventName": "device_token_registered", - "siteID": "DESU SAI" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "zx_userid_missing", - "namespace": "org.reactjs.native.example.zx-userid-missing", - "version": "1.0" - }, - "device": { - "attTrackingStatus": 0, - "id": "5d727a3e-a72b-4d00-8078-669c1494791d", - "manufacturer": "Apple", - "model": "iPhone", - "name": "iPhone 13", - "token": "deviceToken", - "type": "iOS" - }, - "library": { - "name": "rudder-ios-library", - "version": "1.3.1" - }, - "locale": "en-US", - "network": { - "bluetooth": false, - "carrier": "unavailable", - "cellular": false, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "15.2" - }, - "screen": { - "density": 3, - "height": 390, - "width": 844 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "email": "sofia@gmail.com", - "login_status": "Authenticated", - "name": "Sofia", - "phone_verified": 1, - "selected_city": "", - "selected_lat": 0, - "selected_long": 0, - "selected_neighborhood": "", - "selected_number": "", - "selected_postal_code": "", - "selected_state": "", - "selected_street": "", - "signed_up_for_newsletters": 0, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3" - } - }, - "event": "Application Opened", - "integrations": { - "All": true - }, - "messageId": "1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f", - "originalTimestamp": "2022-01-10T10:00:26.513Z", - "properties": { - "from_background": false - }, - "receivedAt": "2022-01-10T20:44:52.784+05:30", - "request_ip": "[::1]", - "rudderId": "0aef312c-0dc0-4a49-b613-4f33fb4e9b46", - "sentAt": "2022-01-10T10:00:26.982Z", - "type": "track" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "DESAU SAI", - "datacenterEU": false, - "deviceTokenEventName": "device_token_registered", - "siteID": "DESU SAI" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "zx_userid_missing", - "namespace": "org.reactjs.native.example.zx-userid-missing", - "version": "1.0" - }, - "device": { - "attTrackingStatus": 0, - "id": "5d727a3e-a72b-4d00-8078-669c1494791d", - "manufacturer": "Apple", - "model": "iPhone", - "name": "iPhone 13", - "token": "deviceToken", - "type": "iOS" - }, - "library": { - "name": "rudder-ios-library", - "version": "1.3.1" - }, - "locale": "en-US", - "network": { - "bluetooth": false, - "carrier": "unavailable", - "cellular": false, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "15.2" - }, - "screen": { - "density": 3, - "height": 390, - "width": 844 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "email": "sofia@gmail.com", - "login_status": "Authenticated", - "name": "Sofia", - "phone_verified": 1, - "selected_city": "", - "selected_lat": 0, - "selected_long": 0, - "selected_neighborhood": "", - "selected_number": "", - "selected_postal_code": "", - "selected_state": "", - "selected_street": "", - "signed_up_for_newsletters": 0, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3" - } - }, - "event": "Application Opened", - "integrations": { - "All": true - }, - "messageId": "1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f", - "timestamp": "2022-01-10T10:00:26.513Z", - "receivedAt": "2022-01-10T20:47:36.180+05:30", - "request_ip": "[::1]", - "rudderId": "0aef312c-0dc0-4a49-b613-4f33fb4e9b46", - "sentAt": "2022-01-10T10:00:26.982Z", - "type": "track" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "DESAU SAI", - "datacenterEU": false, - "deviceTokenEventName": "device_token_registered", - "siteID": "DESU SAI" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "zx_userid_missing", - "namespace": "org.reactjs.native.example.zx-userid-missing", - "version": "1.0" - }, - "device": { - "attTrackingStatus": 0, - "id": "5d727a3e-a72b-4d00-8078-669c1494791d", - "manufacturer": "Apple", - "model": "iPhone", - "name": "iPhone 13", - "token": "deviceToken", - "type": "iOS" - }, - "library": { - "name": "rudder-ios-library", - "version": "1.3.1" - }, - "locale": "en-US", - "network": { - "bluetooth": false, - "carrier": "unavailable", - "cellular": false, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "15.2" - }, - "screen": { - "density": 3, - "height": 390, - "width": 844 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "email": "sofia@gmail.com", - "login_status": "Authenticated", - "name": "Sofia", - "phone_verified": 1, - "selected_city": "", - "selected_lat": 0, - "selected_long": 0, - "selected_neighborhood": "", - "selected_number": "", - "selected_postal_code": "", - "selected_state": "", - "selected_street": "", - "signed_up_for_newsletters": 0, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3" - } - }, - "event": "device_token_registered", - "integrations": { - "All": true - }, - "messageId": "1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f", - "originalTimestamp": "2022-01-10T10:00:26.513Z", - "properties": { - "from_background": false - }, - "receivedAt": "2022-01-10T20:49:05.795+05:30", - "request_ip": "[::1]", - "rudderId": "423cdf83-0448-4a99-b14d-36fcc63e6ea0", - "sentAt": "2022-01-10T10:00:26.982Z", - "type": "track", - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "DESAU SAI", - "datacenterEU": false, - "deviceTokenEventName": "device_token_registered", - "siteID": "DESU SAI" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "zx_userid_missing", - "namespace": "org.reactjs.native.example.zx-userid-missing", - "version": "1.0" - }, - "device": { - "attTrackingStatus": 0, - "id": "5d727a3e-a72b-4d00-8078-669c1494791d", - "manufacturer": "Apple", - "model": "iPhone", - "name": "iPhone 13", - "type": "iOS" - }, - "library": { - "name": "rudder-ios-library", - "version": "1.3.1" - }, - "locale": "en-US", - "network": { - "bluetooth": false, - "carrier": "unavailable", - "cellular": false, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "15.2" - }, - "screen": { - "density": 3, - "height": 390, - "width": 844 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "email": "sofia@gmail.com", - "login_status": "Authenticated", - "name": "Sofia", - "phone_verified": 1, - "selected_city": "", - "selected_lat": 0, - "selected_long": 0, - "selected_neighborhood": "", - "selected_number": "", - "selected_postal_code": "", - "selected_state": "", - "selected_street": "", - "signed_up_for_newsletters": 0, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3" - } - }, - "event": "device_token_registered", - "integrations": { - "All": true - }, - "messageId": "1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f", - "originalTimestamp": "2022-01-10T10:00:26.513Z", - "properties": { - "from_background": false - }, - "receivedAt": "2022-01-10T20:50:17.090+05:30", - "request_ip": "[::1]", - "rudderId": "423cdf83-0448-4a99-b14d-36fcc63e6ea0", - "sentAt": "2022-01-10T10:00:26.982Z", - "timestamp": "2022-01-10T20:50:16.621+05:30", - "type": "track", - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "DESAU SAI", - "datacenterEU": false, - "deviceTokenEventName": "device_token_registered", - "siteID": "DESU SAI" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "zx_userid_missing", - "namespace": "org.reactjs.native.example.zx-userid-missing", - "version": "1.0" - }, - "device": { - "attTrackingStatus": 0, - "id": "5d727a3e-a72b-4d00-8078-669c1494791d", - "manufacturer": "Apple", - "model": "iPhone", - "name": "iPhone 13", - "token": "deviceToken", - "type": "iOS" - }, - "library": { - "name": "rudder-ios-library", - "version": "1.3.1" - }, - "locale": "en-US", - "network": { - "bluetooth": false, - "carrier": "unavailable", - "cellular": false, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "15.2" - }, - "screen": { - "density": 3, - "height": 390, - "width": 844 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "email": "sofia@gmail.com", - "login_status": "Authenticated", - "name": "Sofia", - "phone_verified": 1, - "selected_city": "", - "selected_lat": 0, - "selected_long": 0, - "selected_neighborhood": "", - "selected_number": "", - "selected_postal_code": "", - "selected_state": "", - "selected_street": "", - "signed_up_for_newsletters": 0 - } - }, - "event": "device_token_registered", - "integrations": { - "All": true - }, - "messageId": "1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f", - "originalTimestamp": "2022-01-10T10:00:26.513Z", - "properties": { - "from_background": false - }, - "receivedAt": "2022-01-10T20:52:19.147+05:30", - "request_ip": "[::1]", - "rudderId": "423cdf83-0448-4a99-b14d-36fcc63e6ea0", - "sentAt": "2022-01-10T10:00:26.982Z", - "timestamp": "2022-01-10T20:52:18.678+05:30", - "type": "track", - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "DESAU SAI", - "datacenterEU": false, - "deviceTokenEventName": "device_token_registered", - "siteID": "DESU SAI" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "zx_userid_missing", - "namespace": "org.reactjs.native.example.zx-userid-missing", - "version": "1.0" - }, - "device": { - "attTrackingStatus": 0, - "id": "5d727a3e-a72b-4d00-8078-669c1494791d", - "manufacturer": "Apple", - "model": "iPhone", - "name": "iPhone 13", - "token": "deviceToken", - "type": "iOS" - }, - "library": { - "name": "rudder-ios-library", - "version": "1.3.1" - }, - "locale": "en-US", - "network": { - "bluetooth": false, - "carrier": "unavailable", - "cellular": false, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "15.2" - }, - "screen": { - "density": 3, - "height": 390, - "width": 844 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "email": "sofia@gmail.com", - "login_status": "Authenticated", - "name": "Sofia", - "phone_verified": 1, - "selected_city": "", - "selected_lat": 0, - "selected_long": 0, - "selected_neighborhood": "", - "selected_number": "", - "selected_postal_code": "", - "selected_state": "", - "selected_street": "", - "signed_up_for_newsletters": 0, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3" - } - }, - "event": "device_token_registered", - "integrations": { - "All": true - }, - "messageId": "1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f", - "originalTimestamp": "2022-01-10T10:00:26.513Z", - "properties": { - "from_background": false - }, - "receivedAt": "2022-01-10T20:53:43.680+05:30", - "request_ip": "[::1]", - "rudderId": "0aef312c-0dc0-4a49-b613-4f33fb4e9b46", - "sentAt": "2022-01-10T10:00:26.982Z", - "type": "track" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "DESAU SAI", - "datacenterEU": false, - "deviceTokenEventName": "device_token_registered", - "siteID": "DESU SAI" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "zx_userid_missing", - "namespace": "org.reactjs.native.example.zx-userid-missing", - "version": "1.0" - }, - "device": { - "attTrackingStatus": 0, - "id": "5d727a3e-a72b-4d00-8078-669c1494791d", - "manufacturer": "Apple", - "model": "iPhone", - "name": "iPhone 13", - "token": "deviceToken", - "type": "iOS" - }, - "library": { - "name": "rudder-ios-library", - "version": "1.3.1" - }, - "locale": "en-US", - "network": { - "bluetooth": false, - "carrier": "unavailable", - "cellular": false, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "15.2" - }, - "screen": { - "density": 3, - "height": 390, - "width": 844 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "email": "sofia@gmail.com", - "login_status": "Authenticated", - "name": "Sofia", - "phone_verified": 1, - "selected_city": "", - "selected_lat": 0, - "selected_long": 0, - "selected_neighborhood": "", - "selected_number": "", - "selected_postal_code": "", - "selected_state": "", - "selected_street": "", - "signed_up_for_newsletters": 0, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3" - } - }, - "event": "device_token_registered", - "integrations": { - "All": true - }, - "messageId": "1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f", - "originalTimestamp": "2022-01-10T10:00:26.513Z", - "receivedAt": "2022-01-10T20:55:03.845+05:30", - "request_ip": "[::1]", - "rudderId": "0aef312c-0dc0-4a49-b613-4f33fb4e9b46", - "sentAt": "2022-01-10T10:00:26.982Z", - "type": "track" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "DESAU SAI", - "datacenterEU": false, - "deviceTokenEventName": "device_token_registered", - "siteID": "DESU SAI" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "description": "check for ipados apple family and default it to ios", - "message": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "zx_userid_missing", - "namespace": "org.reactjs.native.example.zx-userid-missing", - "version": "1.0" - }, - "device": { - "attTrackingStatus": 0, - "id": "5d727a3e-a72b-4d00-8078-669c1494791d", - "manufacturer": "Apple", - "model": "iPhone", - "name": "iPhone 13", - "token": "deviceToken", - "type": "ipados" - }, - "library": { - "name": "rudder-ios-library", - "version": "1.3.1" - }, - "locale": "en-US", - "network": { - "bluetooth": false, - "carrier": "unavailable", - "cellular": false, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "15.2" - }, - "screen": { - "density": 3, - "height": 390, - "width": 844 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5d727a3e-a72b-4d00-8078-669c1494791d", - "email": "sofia@gmail.com", - "login_status": "Authenticated", - "name": "Sofia", - "phone_verified": 1, - "selected_city": "", - "selected_lat": 0, - "selected_long": 0, - "selected_neighborhood": "", - "selected_number": "", - "selected_postal_code": "", - "selected_state": "", - "selected_street": "", - "signed_up_for_newsletters": 0 - } - }, - "event": "Application Opened", - "integrations": { - "All": true - }, - "messageId": "1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f", - "originalTimestamp": "2022-01-10T10:00:26.513Z", - "properties": { - "from_background": false - }, - "receivedAt": "2022-01-10T20:41:30.970+05:30", - "request_ip": "[::1]", - "rudderId": "423cdf83-0448-4a99-b14d-36fcc63e6ea0", - "sentAt": "2022-01-10T10:00:26.982Z", - "type": "track", - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "DESAU SAI", - "datacenterEU": false, - "deviceTokenEventName": "device_token_registered", - "siteID": "DESU SAI" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "description": "successful group call with identify action", - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.0-beta.2" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.0-beta.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" - }, - "groupId": "group@1", - "integrations": { - "All": true - }, - "traits": { - "domainNames": "rudderstack.com", - "email": "help@rudderstack.com", - "name": "rudderstack", - "action": "identify" - }, - "type": "group", - "userId": "user@1" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "ef32c3f60fb98f39ef35", - "datacenterEU": false, - "deviceTokenEventName": "device_token_registered", - "siteID": "c0efdbd20b9fbe24a7e2" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "description": "successful group call with delete action", - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.0-beta.2" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.0-beta.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" - }, - "groupId": "group@1", - "integrations": { - "All": true - }, - "traits": { - "domainNames": "rudderstack.com", - "email": "help@rudderstack.com", - "name": "rudderstack", - "action": "delete" - }, - "type": "group", - "userId": "user@1" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "ef32c3f60fb98f39ef35", - "datacenterEU": false, - "deviceTokenEventName": "device_token_registered", - "siteID": "c0efdbd20b9fbe24a7e2" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "description": "successful group call with add_relationships action", - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.0-beta.2" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.0-beta.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "test@rudderlabs.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" - }, - "groupId": "group@1", - "integrations": { - "All": true - }, - "traits": { - "domainNames": "rudderstack.com", - "email": "help@rudderstack.com", - "name": "rudderstack", - "action": "add_relationships" - }, - "type": "group", - "userId": "user@1" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "ef32c3f60fb98f39ef35", - "datacenterEU": false, - "deviceTokenEventName": "device_token_registered", - "siteID": "c0efdbd20b9fbe24a7e2" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "description": "successful group call with delete_relationships action", - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.0-beta.2" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.0-beta.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "test@rudderlabs.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" - }, - "groupId": "group@1", - "integrations": { - "All": true - }, - "traits": { - "domainNames": "rudderstack.com", - "email": "help@rudderstack.com", - "name": "rudderstack", - "action": "delete_relationships" - }, - "type": "group", - "userId": "user@1" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "ef32c3f60fb98f39ef35", - "datacenterEU": false, - "deviceTokenEventName": "device_token_registered", - "siteID": "c0efdbd20b9fbe24a7e2" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "description": "successful group call with userId and groupId as an integer", - "message": { - "type": "group", - "header": { - "content-type": "application/json; charset=utf-8" - }, - "sentAt": "2023-03-28T09:36:49.882Z", - "traits": { - "city": "Frankfurt", - "name": "rudder test", - "state": "Hessen", - "isFake": true, - "address": "Solmsstraße 83", - "country": "DE", - "website": "http://www.rudderstack.com", - "industry": "Waste and recycling", - "postcode": "60486", - "whiteLabel": "rudderlabs", - "maxNbJobBoards": 2, - "organisationId": 306, - "pricingPackage": "packageExpert", - "dateProTrialEnd": "2022-08-31T00:00:00+00:00", - "isProTrialActive": true, - "datetimeRegistration": "2020-07-01T10:23:41+00:00", - "isPersonnelServiceProvider": false - }, - "userId": 432, - "channel": "server", - "context": { - "library": { - "name": "rudder-analytics-php", - "version": "2.0.1", - "consumer": "LibCurl" - } - }, - "groupId": 306, - "rudderId": "f5b46a12-2dab-4e24-a127-7316eed414fc", - "messageId": "7032394c-e813-4737-bf52-622dbcefe849", - "receivedAt": "2023-03-28T09:36:48.296Z", - "request_ip": "18.195.235.225", - "originalTimestamp": "2023-03-28T09:36:49.882Z" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "ef32c3f60fb98f39ef35", - "datacenterEU": false, - "deviceTokenEventName": "device_token_registered", - "siteID": "c0efdbd20b9fbe24a7e2" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "description": "successful group call with userId in email format ", - "message": { - "type": "group", - "header": { - "content-type": "application/json; charset=utf-8" - }, - "sentAt": "2023-03-28T09:36:49.882Z", - "traits": { - "city": "Frankfurt", - "name": "rudder test", - "state": "Hessen", - "isFake": true, - "address": "Solmsstraße 83", - "country": "DE", - "website": "http://www.rudderstack.com", - "industry": "Waste and recycling", - "postcode": "60486", - "whiteLabel": "rudderlabs", - "maxNbJobBoards": 2, - "organisationId": 306, - "pricingPackage": "packageExpert", - "dateProTrialEnd": "2022-08-31T00:00:00+00:00", - "isProTrialActive": true, - "datetimeRegistration": "2020-07-01T10:23:41+00:00", - "isPersonnelServiceProvider": false - }, - "userId": "abc@xyz.com", - "channel": "server", - "context": { - "library": { - "name": "rudder-analytics-php", - "version": "2.0.1", - "consumer": "LibCurl" - } - }, - "groupId": 306, - "rudderId": "f5b46a12-2dab-4e24-a127-7316eed414fc", - "messageId": "7032394c-e813-4737-bf52-622dbcefe849", - "receivedAt": "2023-03-28T09:36:48.296Z", - "request_ip": "18.195.235.225", - "originalTimestamp": "2023-03-28T09:36:49.882Z" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "ef32c3f60fb98f39ef35", - "datacenterEU": false, - "deviceTokenEventName": "device_token_registered", - "siteID": "c0efdbd20b9fbe24a7e2" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "description": "successful group call with eu as data center", - "message": { - "type": "group", - "header": { - "content-type": "application/json; charset=utf-8" - }, - "sentAt": "2023-03-28T09:36:49.882Z", - "traits": { - "city": "Frankfurt", - "name": "rudder test", - "state": "Hessen", - "isFake": true, - "address": "Solmsstraße 83", - "country": "DE", - "website": "http://www.rudderstack.com", - "industry": "Waste and recycling", - "postcode": "60486", - "whiteLabel": "rudderlabs", - "maxNbJobBoards": 2, - "organisationId": 306, - "pricingPackage": "packageExpert", - "dateProTrialEnd": "2022-08-31T00:00:00+00:00", - "isProTrialActive": true, - "datetimeRegistration": "2020-07-01T10:23:41+00:00", - "isPersonnelServiceProvider": false - }, - "userId": 432, - "channel": "server", - "context": { - "library": { - "name": "rudder-analytics-php", - "version": "2.0.1", - "consumer": "LibCurl" - } - }, - "groupId": 306, - "rudderId": "f5b46a12-2dab-4e24-a127-7316eed414fc", - "messageId": "7032394c-e813-4737-bf52-622dbcefe849", - "receivedAt": "2023-03-28T09:36:48.296Z", - "request_ip": "18.195.235.225", - "originalTimestamp": "2023-03-28T09:36:49.882Z" - }, - "destination": { - "ID": "23Mi76khsFhY7bh9ZyRcvR3pHDt", - "Name": "Customer IO Dev", - "DestinationDefinition": { - "ID": "23MgSlHXsPLsiH7SbW7IzCP32fn", - "Name": "CUSTOMERIO", - "DisplayName": "Customer IO", - "Config": { - "destConfig": { - "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], - "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] - }, - "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU", - "blackListedEvents", - "whiteListedEvents" - ], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": ["identify", "page", "screen", "track"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": {} - }, - "Config": { - "apiKey": "ef32c3f60fb98f39ef35", - "datacenterEU": true, - "deviceTokenEventName": "device_token_registered", - "siteID": "c0efdbd20b9fbe24a7e2" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "userId": "12345", - "properties": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "userId": "12345", - "properties": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "userId": "12345", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - } -] diff --git a/test/__tests__/data/customerio_output.json b/test/__tests__/data/customerio_output.json deleted file mode 100644 index c1c598e9c4b..00000000000 --- a/test/__tests__/data/customerio_output.json +++ /dev/null @@ -1,1776 +0,0 @@ -[ - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "email": "updated_email@example.com", - "id": "updated-id-value" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/cio_1234", - "userId": "cio_1234", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "PUT", - "statusCode": 200 - }, - { - "message": "apiKey not found in Configs" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "_timestamp": 1571043797, - "anonymous_id": "123456", - "city": "NY", - "state": "CA", - "street": "", - "prop1": "val1", - "prop2": "val2", - "country": "USA", - "postalCode": 712136, - "email": "test@gmail.com", - "dot.name": "Arnab Pal" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/123456", - "userId": "123456", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "PUT", - "statusCode": 200 - }, - { - "message": "userId or email is not present", - "statusCode": 400 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "_timestamp": 1571043797, - "anonymous_id": "123456", - "city": "NY", - "country": "USA", - "dot.name": "Arnab Pal", - "email": "test@gmail.com", - "postalCode": 712136, - "prop1": "val1", - "prop2": "val2", - "state": "CA", - "street": "" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/test@gmail.com", - "userId": "123456", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "PUT", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "type": "page", - "data": { - "url": "www.rudderlabs.com", - "path": "/test", - "search": "abc", - "referrer": "Rudder", - "title": "Test Page" - }, - "timestamp": 1571051718, - "name": "ApplicationLoaded" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/12345/events", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "type": "event", - "data": { - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "user_time_spent": 50000 - }, - "timestamp": 1571051718, - "name": "test track event" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/12345/events", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "type": "event", - "data": { - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "user_time_spent": 50000 - }, - "timestamp": 1571051718, - "name": "test track event" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/sayan@gmail.com/events", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "type": "event", - "anonymous_id": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "data": { - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "user_time_spent": 50000 - }, - "timestamp": 1571051718, - "name": "test track event" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/events", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "device": { - "review_body": "Some Review Body", - "rating": 2, - "review_id": "some_review_id", - "last_used": 1578564113, - "platform": "android", - "id": "abcxyz", - "product_id": "some_product_id_a" - } - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/12345/devices", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "PUT", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": {}, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/12345/devices/abcxyz", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "DELETE", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": {}, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/12345/devices/somel", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "DELETE", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": {}, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/sayan@gmail.com/devices/somel", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "DELETE", - "statusCode": 200 - }, - { - "message": "userId/email or device_token not present", - "statusCode": 400 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "device": { - "id": "somel", - "last_used": 1571051718, - "platform": "mobile", - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "user_time_spent": 50000 - } - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/sayan@gmail.com/devices", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "PUT", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "anonymous_id": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "data": { - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "user_time_spent": 50000 - }, - "name": "Application Installed", - "timestamp": 1571051718, - "type": "event" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/events", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "device": { - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "last_used": 1571051718, - "user_time_spent": 50000, - "platform": "mobile", - "id": "somel" - } - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/12345/devices", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "PUT", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "type": "event", - "data": { - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "user_time_spent": 50000 - }, - "timestamp": 1571051718, - "name": "Application Installed" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/12345/events", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "type": "event", - "data": { - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "user_time_spent": 50000 - }, - "timestamp": 1571051718, - "name": "Application Opened" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/12345/events", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "device": { - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "last_used": 1571051718, - "user_time_spent": 50000, - "platform": "mobile", - "id": "sample_device_token" - } - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/12345/devices", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "PUT", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": {}, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/12345/devices/sample_device_token", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "DELETE", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "_timestamp": 1571043797, - "anonymous_id": "123456", - "city": "NY", - "state": "CA", - "street": "", - "prop1": "val1", - "prop2": "val2", - "country": "USA", - "postalCode": 712136, - "email": "test@gmail.com" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track-eu.customer.io/api/v1/customers/123456", - "userId": "123456", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "PUT", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "type": "page", - "data": { - "url": "www.rudderlabs.com", - "path": "/test", - "search": "abc", - "referrer": "Rudder", - "title": "Test Page" - }, - "timestamp": 1571051718, - "name": "ApplicationLoaded" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track-eu.customer.io/api/v1/customers/12345/events", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "type": "event", - "data": { - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "user_time_spent": 50000 - }, - "timestamp": 1571051718, - "name": "test track event" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track-eu.customer.io/api/v1/customers/12345/events", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "type": "event", - "data": { - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "user_time_spent": 50000 - }, - "timestamp": 1571051718, - "name": "test track event" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track-eu.customer.io/api/v1/customers/sayan@gmail.com/events", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "type": "event", - "anonymous_id": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "data": { - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "user_time_spent": 50000 - }, - "timestamp": 1571051718, - "name": "test track event" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track-eu.customer.io/api/v1/events", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "device": { - "review_body": "Some Review Body", - "rating": 2, - "review_id": "some_review_id", - "last_used": 1578564113, - "platform": "android", - "id": "abcxyz", - "product_id": "some_product_id_a" - } - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track-eu.customer.io/api/v1/customers/12345/devices", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "PUT", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": {}, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track-eu.customer.io/api/v1/customers/12345/devices/abcxyz", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "DELETE", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": {}, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track-eu.customer.io/api/v1/customers/12345/devices/somel", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "DELETE", - "statusCode": 200 - }, - { - "message": "userId/email or device_token not present", - "statusCode": 400 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "device": { - "id": "somel", - "last_used": 1571051718, - "platform": "mobile", - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - } - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track-eu.customer.io/api/v1/customers/sayan@gmail.com/devices", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "PUT", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "anonymous_id": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "data": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "name": "Application Installed", - "timestamp": 1571051718, - "type": "event" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track-eu.customer.io/api/v1/events", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "device": { - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "last_used": 1571051718, - "user_time_spent": 50000, - "platform": "mobile", - "id": "somel" - } - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track-eu.customer.io/api/v1/customers/12345/devices", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "PUT", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "type": "event", - "data": { - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "user_time_spent": 50000 - }, - "timestamp": 1571051718, - "name": "Application Installed" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track-eu.customer.io/api/v1/customers/12345/events", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "type": "event", - "data": { - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "user_time_spent": 50000 - }, - "timestamp": 1571051718, - "name": "Application Opened" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track-eu.customer.io/api/v1/customers/12345/events", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "device": { - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "last_used": 1571051718, - "user_time_spent": 50000, - "platform": "mobile", - "id": "sample_device_token" - } - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track-eu.customer.io/api/v1/customers/12345/devices", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "PUT", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": {}, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track-eu.customer.io/api/v1/customers/12345/devices/sample_device_token", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "DELETE", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://track.customer.io/api/v1/events", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50 - }, - "anonymous_id": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "name": "https://www.stoodi.com.br/exershgcios/upe/2019/questao/gregorio-de-matos-poeta-baiano-que-viveu-no-s", - "type": "event", - "timestamp": 1571051718 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://track.customer.io/api/v1/customers/sayan@gmail.com/events", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50 - }, - "name": "https://www.stoodi.com.br/exershgcios/upe/2019/questao/gregorio-de-matos-poeta-baiano-que-viveu-no-seculo-xvi/", - "type": "event", - "timestamp": 1571051718 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://track.customer.io/api/v1/events", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "anonymous_id": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "name": "Viewed https://www.stoodi.com.br/exercicios/upe/2016/questao/gregorio-de-matos-poeta-baiano-q Screen", - "type": "event", - "timestamp": 1571051718 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://track.customer.io/api/v1/customers/sayan@gmail.com/events", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "name": "Viewed https://www.stoodi.com.br/exercicios/upe/2016/questao/gregorio-de-matos-poeta-baiano-que-viveu-no-seculo-xvi/ Screen", - "type": "event", - "timestamp": 1571051718 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://track.customer.io/api/v1/customers/ruchira-user-id-100/events", - "headers": { - "Authorization": "Basic YWJjOnh5eg==" - }, - "params": {}, - "body": { - "JSON": { - "data": {}, - "name": "Home: Viewed", - "type": "event", - "timestamp": 1632314412 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "ruchira-user-id-100", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://track-eu.customer.io/api/v1/customers/ruchira-user-id-100", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "params": {}, - "body": { - "JSON": { - "city": "NY", - "country": "USA", - "postalCode": 712136, - "state": "CA", - "street": "", - "email": "test@gmail.com", - "_timestamp": 1571043797, - "anonymous_id": "ruchira-100-anon" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "ruchira-user-id-100", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://track.customer.io/api/v1/customers/xaviercharles@hotmail.com", - "headers": { - "Authorization": "Basic ZWVhZDA5MGFiOWUyZTM1MDA0ZGM6YTI5MmQ4NWFjMzZkZTE1ZmMyMTk=" - }, - "params": {}, - "body": { - "JSON": { - "last_name": "xavier", - "first_name": "charles", - "email": "xaviercharles@hotmail.com", - "_timestamp": 1635325796 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "xaviercharles@hotmail.com", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://track.customer.io/api/v1/customers/xaviercharles", - "headers": { - "Authorization": "Basic ZWVhZDA5MGFiOWUyZTM1MDA0ZGM6YTI5MmQ4NWFjMzZkZTE1ZmMyMTk=" - }, - "params": {}, - "body": { - "JSON": { - "last_name": "xavier", - "first_name": "charles", - "id": "xaviercharles", - "_timestamp": 1635325796 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "xaviercharles", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices", - "headers": { - "Authorization": "Basic REVTVSBTQUk6REVTQVUgU0FJ" - }, - "params": {}, - "body": { - "JSON": { - "device": { - "from_background": false, - "id": "deviceToken", - "platform": "ios", - "last_used": 1641808826 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/events", - "headers": { - "Authorization": "Basic REVTVSBTQUk6REVTQVUgU0FJ" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "from_background": false - }, - "name": "Application Opened", - "type": "event", - "timestamp": 1641827343 - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices", - "headers": { - "Authorization": "Basic REVTVSBTQUk6REVTQVUgU0FJ" - }, - "params": {}, - "body": { - "JSON": { - "device": { - "from_background": false, - "id": "deviceToken", - "platform": "ios", - "last_used": 1641808826 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices", - "headers": { - "Authorization": "Basic REVTVSBTQUk6REVTQVUgU0FJ" - }, - "params": {}, - "body": { - "JSON": { - "device": { - "from_background": false, - "id": "deviceToken", - "platform": "ios", - "last_used": 1641808826 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices", - "headers": { - "Authorization": "Basic REVTVSBTQUk6REVTQVUgU0FJ" - }, - "params": {}, - "body": { - "JSON": { - "device": { - "id": "deviceToken", - "platform": "ios", - "last_used": 1641808826 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices", - "headers": { - "Authorization": "Basic REVTVSBTQUk6REVTQVUgU0FJ" - }, - "params": {}, - "body": { - "JSON": { - "device": { - "from_background": false, - "id": "deviceToken", - "platform": "ios", - "last_used": 1641808826 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/events", - "headers": { - "Authorization": "Basic REVTVSBTQUk6REVTQVUgU0FJ" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "from_background": false - }, - "name": "device_token_registered", - "type": "event", - "timestamp": 1641828016 - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices", - "headers": { - "Authorization": "Basic REVTVSBTQUk6REVTQVUgU0FJ" - }, - "params": {}, - "body": { - "JSON": { - "device": { - "from_background": false, - "id": "deviceToken", - "platform": "ios", - "last_used": 1641828138 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices", - "headers": { - "Authorization": "Basic REVTVSBTQUk6REVTQVUgU0FJ" - }, - "params": {}, - "body": { - "JSON": { - "device": { - "from_background": false, - "id": "deviceToken", - "platform": "ios", - "last_used": 1641808826 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices", - "headers": { - "Authorization": "Basic REVTVSBTQUk6REVTQVUgU0FJ" - }, - "params": {}, - "body": { - "JSON": { - "device": { - "id": "deviceToken", - "platform": "ios", - "last_used": 1641808826 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices", - "headers": { - "Authorization": "Basic REVTVSBTQUk6REVTQVUgU0FJ" - }, - "params": {}, - "body": { - "JSON": { - "device": { - "from_background": false, - "id": "deviceToken", - "platform": "ios", - "last_used": 1641808826 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e91e0378-63fe-11ec-82ac-0a028ee659c3", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://track.customer.io/api/v2/batch", - "headers": { - "Authorization": "Basic YzBlZmRiZDIwYjlmYmUyNGE3ZTI6ZWYzMmMzZjYwZmI5OGYzOWVmMzU=" - }, - "params": {}, - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "type": "object", - "action": "identify", - "attributes": { - "name": "rudderstack", - "email": "help@rudderstack.com", - "domainNames": "rudderstack.com" - }, - "identifiers": { - "object_id": "group@1", - "object_type_id": "1" - }, - "cio_relationships": [ - { - "identifiers": { - "id": "user@1" - } - } - ] - }, - "JSON_ARRAY": {} - }, - "files": {}, - "userId": "user@1", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://track.customer.io/api/v2/batch", - "headers": { - "Authorization": "Basic YzBlZmRiZDIwYjlmYmUyNGE3ZTI6ZWYzMmMzZjYwZmI5OGYzOWVmMzU=" - }, - "params": {}, - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "type": "object", - "action": "delete", - "attributes": { - "name": "rudderstack", - "email": "help@rudderstack.com", - "domainNames": "rudderstack.com" - }, - "identifiers": { - "object_id": "group@1", - "object_type_id": "1" - }, - "cio_relationships": [ - { - "identifiers": { - "id": "user@1" - } - } - ] - }, - "JSON_ARRAY": {} - }, - "files": {}, - "userId": "user@1", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://track.customer.io/api/v2/batch", - "headers": { - "Authorization": "Basic YzBlZmRiZDIwYjlmYmUyNGE3ZTI6ZWYzMmMzZjYwZmI5OGYzOWVmMzU=" - }, - "params": {}, - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "type": "object", - "action": "add_relationships", - "attributes": { - "name": "rudderstack", - "email": "help@rudderstack.com", - "domainNames": "rudderstack.com" - }, - "identifiers": { - "object_id": "group@1", - "object_type_id": "1" - }, - "cio_relationships": [ - { - "identifiers": { - "id": "user@1" - } - } - ] - }, - "JSON_ARRAY": {} - }, - "files": {}, - "userId": "user@1", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://track.customer.io/api/v2/batch", - "headers": { - "Authorization": "Basic YzBlZmRiZDIwYjlmYmUyNGE3ZTI6ZWYzMmMzZjYwZmI5OGYzOWVmMzU=" - }, - "params": {}, - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "type": "object", - "action": "delete_relationships", - "attributes": { - "name": "rudderstack", - "email": "help@rudderstack.com", - "domainNames": "rudderstack.com" - }, - "identifiers": { - "object_id": "group@1", - "object_type_id": "1" - }, - "cio_relationships": [ - { - "identifiers": { - "id": "user@1" - } - } - ] - }, - "JSON_ARRAY": {} - }, - "files": {}, - "userId": "user@1", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://track.customer.io/api/v2/batch", - "headers": { - "Authorization": "Basic YzBlZmRiZDIwYjlmYmUyNGE3ZTI6ZWYzMmMzZjYwZmI5OGYzOWVmMzU=" - }, - "params": {}, - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "type": "object", - "action": "identify", - "attributes": { - "city": "Frankfurt", - "name": "rudder test", - "state": "Hessen", - "isFake": true, - "address": "Solmsstraße 83", - "country": "DE", - "website": "http://www.rudderstack.com", - "industry": "Waste and recycling", - "postcode": "60486", - "whiteLabel": "rudderlabs", - "maxNbJobBoards": 2, - "organisationId": 306, - "pricingPackage": "packageExpert", - "dateProTrialEnd": "2022-08-31T00:00:00+00:00", - "isProTrialActive": true, - "datetimeRegistration": "2020-07-01T10:23:41+00:00", - "isPersonnelServiceProvider": false - }, - "identifiers": { - "object_id": "306", - "object_type_id": "1" - }, - "cio_relationships": [ - { - "identifiers": { - "id": "432" - } - } - ] - }, - "JSON_ARRAY": {} - }, - "files": {}, - "userId": 432, - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://track.customer.io/api/v2/batch", - "headers": { - "Authorization": "Basic YzBlZmRiZDIwYjlmYmUyNGE3ZTI6ZWYzMmMzZjYwZmI5OGYzOWVmMzU=" - }, - "params": {}, - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "type": "object", - "action": "identify", - "attributes": { - "city": "Frankfurt", - "name": "rudder test", - "state": "Hessen", - "isFake": true, - "address": "Solmsstraße 83", - "country": "DE", - "website": "http://www.rudderstack.com", - "industry": "Waste and recycling", - "postcode": "60486", - "whiteLabel": "rudderlabs", - "maxNbJobBoards": 2, - "organisationId": 306, - "pricingPackage": "packageExpert", - "dateProTrialEnd": "2022-08-31T00:00:00+00:00", - "isProTrialActive": true, - "datetimeRegistration": "2020-07-01T10:23:41+00:00", - "isPersonnelServiceProvider": false - }, - "identifiers": { - "object_id": "306", - "object_type_id": "1" - }, - "cio_relationships": [ - { - "identifiers": { - "email": "abc@xyz.com" - } - } - ] - }, - "JSON_ARRAY": {} - }, - "files": {}, - "userId": "abc@xyz.com", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://track-eu.customer.io/api/v2/batch", - "headers": { - "Authorization": "Basic YzBlZmRiZDIwYjlmYmUyNGE3ZTI6ZWYzMmMzZjYwZmI5OGYzOWVmMzU=" - }, - "params": {}, - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "type": "object", - "action": "identify", - "attributes": { - "city": "Frankfurt", - "name": "rudder test", - "state": "Hessen", - "isFake": true, - "address": "Solmsstraße 83", - "country": "DE", - "website": "http://www.rudderstack.com", - "industry": "Waste and recycling", - "postcode": "60486", - "whiteLabel": "rudderlabs", - "maxNbJobBoards": 2, - "organisationId": 306, - "pricingPackage": "packageExpert", - "dateProTrialEnd": "2022-08-31T00:00:00+00:00", - "isProTrialActive": true, - "datetimeRegistration": "2020-07-01T10:23:41+00:00", - "isPersonnelServiceProvider": false - }, - "identifiers": { - "object_id": "306", - "object_type_id": "1" - }, - "cio_relationships": [ - { - "identifiers": { - "id": "432" - } - } - ] - }, - "JSON_ARRAY": {} - }, - "files": {}, - "userId": 432, - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "type": "page", - "data": { - "url": "www.rudderlabs.com", - "path": "/test", - "search": "abc", - "referrer": "Rudder", - "title": "Test Page" - }, - "timestamp": 1571051718, - "name": "www.rudderlabs.com" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/12345/events", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "type": "page", - "data": { - "path": "/test", - "search": "abc", - "referrer": "Rudder", - "title": "Test Page" - }, - "timestamp": 1571051718 - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/12345/events", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "type": "page", - "timestamp": 1571051718 - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://track.customer.io/api/v1/customers/12345/events", - "userId": "12345", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - } -] \ No newline at end of file diff --git a/test/__tests__/data/customerio_router_input.json b/test/__tests__/data/customerio_router_input.json deleted file mode 100644 index b0d7b0b009e..00000000000 --- a/test/__tests__/data/customerio_router_input.json +++ /dev/null @@ -1,233 +0,0 @@ -[ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "123456", - "email": "sayan@gmail.com", - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - }, - "ip": "0.0.0.0", - "age": 26 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "user_properties": { - "prop1": "val1", - "prop2": "val2" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "userId": "123456", - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "anon-id", - "email": "test@gmail.com", - "dot.name": "Arnab Pal", - "address": { - "city": "NY", - "country": "USA", - "postalCode": 712136, - "state": "CA", - "street": "" - } - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.0-beta.2" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.0-beta.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" - }, - "groupId": "group@1", - "integrations": { - "All": true - }, - "traits": { - "domainNames": "rudderstack.com", - "email": "help@rudderstack.com", - "name": "rudderstack", - "action": "identify" - }, - "type": "group", - "userId": "user@1" - }, - "metadata": { - "jobId": 3 - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.0-beta.2" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.0-beta.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" - }, - "groupId": "group@1", - "integrations": { - "All": true - }, - "traits": { - "domainNames": "rudderstack.com", - "email": "help@rudderstack.com", - "name": "rudderstack", - "action": "delete" - }, - "type": "group", - "userId": "user@1" - }, - "metadata": { - "jobId": 4 - }, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - } -] diff --git a/test/__tests__/data/customerio_router_output.json b/test/__tests__/data/customerio_router_output.json deleted file mode 100644 index 4a050620c79..00000000000 --- a/test/__tests__/data/customerio_router_output.json +++ /dev/null @@ -1,175 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://track.customer.io/api/v1/customers/123456", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "params": {}, - "body": { - "JSON": { - "anonymous_id": "123456", - "city": "NY", - "country": "USA", - "postalCode": 712136, - "state": "CA", - "street": "", - "email": "test@gmail.com", - "dot.name": "Arnab Pal", - "prop1": "val1", - "prop2": "val2", - "_timestamp": 1571043797 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "123456", - "statusCode": 200 - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://track.customer.io/api/v1/customers/12345/events", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com" - }, - "name": "ApplicationLoaded", - "type": "page", - "timestamp": 1571051718 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "12345", - "statusCode": 200 - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://track.customer.io/api/v2/batch", - "headers": { - "Authorization": "Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6MTlmMGY3MzRlM2JiODdhNDQ1OTY=", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "FORM": {}, - "XML": {}, - "JSON": { - "batch": [ - { - "type": "object", - "action": "identify", - "attributes": { - "name": "rudderstack", - "email": "help@rudderstack.com", - "domainNames": "rudderstack.com" - }, - "identifiers": { - "object_id": "group@1", - "object_type_id": "1" - }, - "cio_relationships": [ - { - "identifiers": { - "id": "user@1" - } - } - ] - }, - { - "type": "object", - "action": "delete", - "attributes": { - "name": "rudderstack", - "email": "help@rudderstack.com", - "domainNames": "rudderstack.com" - }, - "identifiers": { - "object_id": "group@1", - "object_type_id": "1" - }, - "cio_relationships": [ - { - "identifiers": { - "id": "user@1" - } - } - ] - } - ] - }, - "JSON_ARRAY": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 3 - }, - { - "jobId": 4 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "datacenterEU": false, - "siteID": "46be54768e7d49ab2628", - "apiKey": "19f0f734e3bb87a44596" - } - } - } -] diff --git a/test/__tests__/data/delighted_input.json b/test/__tests__/data/delighted_input.json index fabfd6ee948..fa8b118387f 100644 --- a/test/__tests__/data/delighted_input.json +++ b/test/__tests__/data/delighted_input.json @@ -2,7 +2,7 @@ { "destination": { "Config": { - "apiKey": "oMAEMNb5qph1DAVPfGqrODqQCL2YMieG", + "apiKey": "dummyApiKey", "channel": "email", "delay": 0, "eventNamesSettings": [{ "event": "" }] @@ -42,7 +42,7 @@ { "destination": { "Config": { - "apiKey": "oMAEMNb5qph1DAVPfGqrODqQCL2YMieG", + "apiKey": "dummyApiKey", "channel": "email", "delay": 0, "eventNamesSettings": [{ "event": "" }] @@ -77,7 +77,7 @@ { "destination": { "Config": { - "apiKey": "oMAEMNb5qph1DAVPfGqrODqQCL2YMieG", + "apiKey": "dummyApiKey", "channel": "email", "delay": 0, "eventNamesSettings": [{ "event": "Product Reviewed" }] @@ -118,7 +118,7 @@ { "destination": { "Config": { - "apiKey": "oMAEMNb5qph1DAVPfGqrODqQCL2YMieG", + "apiKey": "dummyApiKey", "channel": "email", "delay": 0, "eventNamesSettings": [{ "event": "Product Reviewed" }] @@ -159,7 +159,7 @@ { "destination": { "Config": { - "apiKey": "oMAEMNb5qph1DAVPfGqrODqQCL2YMieG", + "apiKey": "dummyApiKey", "channel": "email", "delay": 0, "eventNamesSettings": [{ "event": "" }] @@ -200,7 +200,7 @@ { "destination": { "Config": { - "apiKey": "oMAEMNb5qph1DAVPfGqrODqQCL2YMieG", + "apiKey": "dummyApiKey", "channel": "email", "delay": 0, "eventNamesSettings": [{ "event": "Product Reviewed" }] @@ -241,7 +241,7 @@ { "destination": { "Config": { - "apiKey": "oMAEMNb5qph1DAVPfGqrODqQCL2YMieG", + "apiKey": "dummyApiKey", "channel": "email", "delay": 0, "eventNamesSettings": [{ "event": "" }] @@ -275,7 +275,7 @@ { "destination": { "Config": { - "apiKey": "oMAEMNb5qph1DAVPfGqrODqQCL2YMieG", + "apiKey": "dummyApiKey", "channel": "email", "delay": 0, "eventNamesSettings": [{ "event": "" }] @@ -311,7 +311,7 @@ { "destination": { "Config": { - "apiKey": "oMAEMNb5qph1DAVPfGqrODqQCL2YMieG", + "apiKey": "dummyApiKey", "channel": "email", "delay": 0, "eventNamesSettings": [{ "event": "" }] @@ -352,7 +352,7 @@ { "destination": { "Config": { - "apiKey": "oMAEMNb5qph1DAVPfGqrODqQCL2YMieG", + "apiKey": "dummyApiKey", "channel": "email", "delay": 0, "eventNamesSettings": [{ "event": "" }] diff --git a/test/__tests__/data/delighted_output.json b/test/__tests__/data/delighted_output.json index d5228b32241..fc95d51bace 100644 --- a/test/__tests__/data/delighted_output.json +++ b/test/__tests__/data/delighted_output.json @@ -5,7 +5,7 @@ "method": "POST", "endpoint": "https://api.delighted.com/v1/people.json", "headers": { - "Authorization": "Basic b01BRU1OYjVxcGgxREFWUGZHcXJPRHFRQ0wyWU1pZUc=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "params": {}, @@ -40,7 +40,7 @@ "method": "POST", "params": {}, "headers": { - "Authorization": "Basic b01BRU1OYjVxcGgxREFWUGZHcXJPRHFRQ0wyWU1pZUc=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "version": "1", @@ -69,7 +69,7 @@ "method": "POST", "params": {}, "headers": { - "Authorization": "Basic b01BRU1OYjVxcGgxREFWUGZHcXJPRHFRQ0wyWU1pZUc=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "version": "1", @@ -99,7 +99,7 @@ "method": "POST", "endpoint": "https://api.delighted.com/v1/people.json", "headers": { - "Authorization": "Basic b01BRU1OYjVxcGgxREFWUGZHcXJPRHFRQ0wyWU1pZUc=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "params": {}, diff --git a/test/__tests__/data/delighted_router_input.json b/test/__tests__/data/delighted_router_input.json index 4a342d894c7..4c39370e9ef 100644 --- a/test/__tests__/data/delighted_router_input.json +++ b/test/__tests__/data/delighted_router_input.json @@ -2,14 +2,14 @@ { "destination": { "Config": { - "apiKey": "oMAEMNb5qph1DAVPfGqrODqQCL2YMieG", + "apiKey": "dummyApiKey", "channel": "email", "delay": 0, "eventNamesSettings": [{ "event": "" }] } }, "metadata": { - "jobId": 2 + "jobId": 1 }, "message": { "channel": "web", @@ -45,7 +45,7 @@ { "destination": { "Config": { - "apiKey": "oMAEMNb5qph1DAVPfGqrODqQCL2YMieG", + "apiKey": "dummyApiKey", "channel": "email", "delay": 0, "eventNamesSettings": [{ "event": "" }] diff --git a/test/__tests__/data/delighted_router_output.json b/test/__tests__/data/delighted_router_output.json index 856fdbae56a..40b770a3bdb 100644 --- a/test/__tests__/data/delighted_router_output.json +++ b/test/__tests__/data/delighted_router_output.json @@ -20,7 +20,7 @@ "method": "POST", "params": {}, "headers": { - "Authorization": "Basic b01BRU1OYjVxcGgxREFWUGZHcXJPRHFRQ0wyWU1pZUc=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "version": "1", @@ -28,14 +28,14 @@ }, "metadata": [ { - "jobId": 2 + "jobId": 1 } ], "batched": false, "statusCode": 200, "destination": { "Config": { - "apiKey": "oMAEMNb5qph1DAVPfGqrODqQCL2YMieG", + "apiKey": "dummyApiKey", "channel": "email", "delay": 0, "eventNamesSettings": [{ "event": "" }] @@ -58,7 +58,7 @@ "method": "POST", "params": {}, "headers": { - "Authorization": "Basic b01BRU1OYjVxcGgxREFWUGZHcXJPRHFRQ0wyWU1pZUc=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "version": "1", @@ -73,7 +73,7 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "oMAEMNb5qph1DAVPfGqrODqQCL2YMieG", + "apiKey": "dummyApiKey", "channel": "email", "delay": 0, "eventNamesSettings": [{ "event": "" }] diff --git a/test/__tests__/data/drip_input.json b/test/__tests__/data/drip_input.json index cf9ad0f1061..17ad0ce3766 100644 --- a/test/__tests__/data/drip_input.json +++ b/test/__tests__/data/drip_input.json @@ -2,7 +2,7 @@ { "destination": { "Config": { - "apiKey": "e8592245ee0fcf9e9997dfe538fb8b22", + "apiKey": "dummyApiKey", "accountId": "1809802", "campaignId": "", "enableUserCreation": true @@ -44,7 +44,7 @@ { "destination": { "Config": { - "apiKey": "e8592245ee0fcf9e9997dfe538fb8b22", + "apiKey": "dummyApiKey", "accountId": "1809802", "campaignId": "", "enableUserCreation": true @@ -86,7 +86,7 @@ { "destination": { "Config": { - "apiKey": "e8592245ee0fcf9e9997dfe538fb8b22", + "apiKey": "dummyApiKey", "accountId": "1809802", "campaignId": "", "enableUserCreation": true @@ -126,7 +126,7 @@ { "destination": { "Config": { - "apiKey": "e8592245ee0fcf9e9997dfe538fb8b22", + "apiKey": "dummyApiKey", "accountId": "1809802", "campaignId": "915194776", "enableUserCreation": true @@ -168,7 +168,7 @@ { "destination": { "Config": { - "apiKey": "e8592245ee0fcf9e9997dfe538fb8b22", + "apiKey": "dummyApiKey", "accountId": "1809802", "campaignId": "915194776", "enableUserCreation": true @@ -208,7 +208,7 @@ { "destination": { "Config": { - "apiKey": "e8592245ee0fcf9e9997dfe538fb8b22", + "apiKey": "dummyApiKey", "accountId": "1809802", "campaignId": "915194776", "enableUserCreation": true @@ -248,7 +248,7 @@ { "destination": { "Config": { - "apiKey": "e8592245ee0fcf9e9997dfe538fb8b22", + "apiKey": "dummyApiKey", "accountId": "1809802", "campaignId": "915194776", "enableUserCreation": false @@ -288,7 +288,7 @@ { "destination": { "Config": { - "apiKey": "e8592245ee0fcf9e9997dfe538fb8b22", + "apiKey": "dummyApiKey", "accountId": "1809802", "campaignId": "915194776", "enableUserCreation": false @@ -326,7 +326,7 @@ { "destination": { "Config": { - "apiKey": "e8592245ee0fcf9e9997dfe538fb8b22", + "apiKey": "dummyApiKey", "accountId": "1809802", "campaignId": "915194776", "enableUserCreation": false @@ -364,7 +364,7 @@ { "destination": { "Config": { - "apiKey": "e8592245ee0fcf9e9997dfe538fb8b22", + "apiKey": "dummyApiKey", "accountId": "1809802", "campaignId": "915194776", "enableUserCreation": false @@ -404,7 +404,7 @@ { "destination": { "Config": { - "apiKey": "e8592245ee0fcf9e9997dfe538fb8b22", + "apiKey": "dummyApiKey", "accountId": "1809802", "campaignId": "915194776", "enableUserCreation": false @@ -450,7 +450,7 @@ { "destination": { "Config": { - "apiKey": "e8592245ee0fcf9e9997dfe538fb8b22", + "apiKey": "dummyApiKey", "accountId": "1809802", "campaignId": "915194776", "enableUserCreation": false @@ -491,7 +491,7 @@ { "destination": { "Config": { - "apiKey": "e8592245ee0fcf9e9997dfe538fb8b22", + "apiKey": "dummyApiKey", "accountId": "1809802", "campaignId": "", "enableUserCreation": true diff --git a/test/__tests__/data/drip_output.json b/test/__tests__/data/drip_output.json index 47272c270fe..dbf9cf6a759 100644 --- a/test/__tests__/data/drip_output.json +++ b/test/__tests__/data/drip_output.json @@ -5,7 +5,7 @@ "method": "POST", "endpoint": "https://api.getdrip.com/v2/1809802/subscribers", "headers": { - "Authorization": "Basic ZTg1OTIyNDVlZTBmY2Y5ZTk5OTdkZmU1MzhmYjhiMjI=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "params": {}, @@ -39,7 +39,7 @@ "method": "POST", "endpoint": "https://api.getdrip.com/v2/1809802/subscribers", "headers": { - "Authorization": "Basic ZTg1OTIyNDVlZTBmY2Y5ZTk5OTdkZmU1MzhmYjhiMjI=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "params": {}, @@ -71,7 +71,7 @@ "method": "POST", "endpoint": "https://api.getdrip.com/v2/1809802/campaigns/915194776/subscribers", "headers": { - "Authorization": "Basic ZTg1OTIyNDVlZTBmY2Y5ZTk5OTdkZmU1MzhmYjhiMjI=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "params": {}, @@ -96,7 +96,7 @@ "method": "POST", "endpoint": "https://api.getdrip.com/v2/1809802/events", "headers": { - "Authorization": "Basic ZTg1OTIyNDVlZTBmY2Y5ZTk5OTdkZmU1MzhmYjhiMjI=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "params": {}, @@ -128,7 +128,7 @@ "method": "POST", "endpoint": "https://api.getdrip.com/v2/1809802/events", "headers": { - "Authorization": "Basic ZTg1OTIyNDVlZTBmY2Y5ZTk5OTdkZmU1MzhmYjhiMjI=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "params": {}, @@ -157,7 +157,7 @@ "method": "POST", "endpoint": "https://api.getdrip.com/v2/1809802/events", "headers": { - "Authorization": "Basic ZTg1OTIyNDVlZTBmY2Y5ZTk5OTdkZmU1MzhmYjhiMjI=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "params": {}, @@ -189,7 +189,7 @@ "method": "POST", "endpoint": "https://api.getdrip.com/v3/1809802/shopper_activity/order", "headers": { - "Authorization": "Basic ZTg1OTIyNDVlZTBmY2Y5ZTk5OTdkZmU1MzhmYjhiMjI=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "params": {}, @@ -213,7 +213,7 @@ "method": "POST", "endpoint": "https://api.getdrip.com/v3/1809802/shopper_activity/order", "headers": { - "Authorization": "Basic ZTg1OTIyNDVlZTBmY2Y5ZTk5OTdkZmU1MzhmYjhiMjI=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "params": {}, @@ -243,7 +243,7 @@ "method": "POST", "endpoint": "https://api.getdrip.com/v2/1809802/events", "headers": { - "Authorization": "Basic ZTg1OTIyNDVlZTBmY2Y5ZTk5OTdkZmU1MzhmYjhiMjI=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "params": {}, @@ -272,7 +272,7 @@ "method": "POST", "endpoint": "https://api.getdrip.com/v2/1809802/subscribers", "headers": { - "Authorization": "Basic ZTg1OTIyNDVlZTBmY2Y5ZTk5OTdkZmU1MzhmYjhiMjI=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "params": {}, diff --git a/test/__tests__/data/drip_router_input.json b/test/__tests__/data/drip_router_input.json index 29b364a6bca..1cabfe9498f 100644 --- a/test/__tests__/data/drip_router_input.json +++ b/test/__tests__/data/drip_router_input.json @@ -2,14 +2,14 @@ { "destination": { "Config": { - "apiKey": "e8592245ee0fcf9e9997dfe538fb8b22", + "apiKey": "dummyApiKey", "accountId": "1809802", "campaignId": "", "enableUserCreation": true } }, "metadata": { - "jobId": 2 + "jobId": 1 }, "message": { "channel": "web", @@ -47,7 +47,7 @@ { "destination": { "Config": { - "apiKey": "e8592245ee0fcf9e9997dfe538fb8b22", + "apiKey": "dummyApiKey", "accountId": "1809802", "campaignId": "915194776", "enableUserCreation": true diff --git a/test/__tests__/data/drip_router_output.json b/test/__tests__/data/drip_router_output.json index bf6a8b8d5c6..d1efdf48f7c 100644 --- a/test/__tests__/data/drip_router_output.json +++ b/test/__tests__/data/drip_router_output.json @@ -25,7 +25,7 @@ "method": "POST", "params": {}, "headers": { - "Authorization": "Basic ZTg1OTIyNDVlZTBmY2Y5ZTk5OTdkZmU1MzhmYjhiMjI=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "version": "1", @@ -33,14 +33,14 @@ }, "metadata": [ { - "jobId": 2 + "jobId": 1 } ], "batched": false, "statusCode": 200, "destination": { "Config": { - "apiKey": "e8592245ee0fcf9e9997dfe538fb8b22", + "apiKey": "dummyApiKey", "accountId": "1809802", "campaignId": "", "enableUserCreation": true @@ -71,7 +71,7 @@ "method": "POST", "params": {}, "headers": { - "Authorization": "Basic ZTg1OTIyNDVlZTBmY2Y5ZTk5OTdkZmU1MzhmYjhiMjI=", + "Authorization": "Basic ZHVtbXlBcGlLZXk=", "Content-Type": "application/json" }, "version": "1", @@ -86,7 +86,7 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "e8592245ee0fcf9e9997dfe538fb8b22", + "apiKey": "dummyApiKey", "accountId": "1809802", "campaignId": "915194776", "enableUserCreation": true diff --git a/test/__tests__/data/dynamic_yield.json b/test/__tests__/data/dynamic_yield.json index c76987af5bf..b7d066feca3 100644 --- a/test/__tests__/data/dynamic_yield.json +++ b/test/__tests__/data/dynamic_yield.json @@ -22,7 +22,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", + "apiKey": "dummyApiKey", "hashEmail": true } } @@ -34,7 +34,7 @@ "endpoint": "https://dy-api.com/v2/collect/user/event", "headers": { "Content-Type": "application/json", - "DY-API-Key": "34d8efa09c5b048bbacc6af157f2e687" + "DY-API-Key": "dummyApiKey" }, "params": {}, "body": { @@ -82,7 +82,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", + "apiKey": "dummyApiKey", "hashEmail": false } } @@ -94,7 +94,7 @@ "endpoint": "https://dy-api.com/v2/collect/user/event", "headers": { "Content-Type": "application/json", - "DY-API-Key": "34d8efa09c5b048bbacc6af157f2e687" + "DY-API-Key": "dummyApiKey" }, "params": {}, "body": { @@ -153,7 +153,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", + "apiKey": "dummyApiKey", "hashEmail": false } } @@ -165,7 +165,7 @@ "endpoint": "https://dy-api.com/v2/collect/user/event", "headers": { "Content-Type": "application/json", - "DY-API-Key": "34d8efa09c5b048bbacc6af157f2e687" + "DY-API-Key": "dummyApiKey" }, "params": {}, "body": { @@ -213,7 +213,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", + "apiKey": "dummyApiKey", "hashEmail": false } } @@ -225,7 +225,7 @@ "endpoint": "https://dy-api.com/v2/collect/user/event", "headers": { "Content-Type": "application/json", - "DY-API-Key": "34d8efa09c5b048bbacc6af157f2e687" + "DY-API-Key": "dummyApiKey" }, "params": {}, "body": { @@ -285,7 +285,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", + "apiKey": "dummyApiKey", "hashEmail": false } } @@ -297,7 +297,7 @@ "endpoint": "https://dy-api.com/v2/collect/user/event", "headers": { "Content-Type": "application/json", - "DY-API-Key": "34d8efa09c5b048bbacc6af157f2e687" + "DY-API-Key": "dummyApiKey" }, "params": {}, "body": { @@ -358,7 +358,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", + "apiKey": "dummyApiKey", "hashEmail": false } } @@ -370,7 +370,7 @@ "endpoint": "https://dy-api.com/v2/collect/user/event", "headers": { "Content-Type": "application/json", - "DY-API-Key": "34d8efa09c5b048bbacc6af157f2e687" + "DY-API-Key": "dummyApiKey" }, "params": {}, "body": { @@ -449,7 +449,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", + "apiKey": "dummyApiKey", "hashEmail": false } } @@ -461,7 +461,7 @@ "endpoint": "https://dy-api.com/v2/collect/user/event", "headers": { "Content-Type": "application/json", - "DY-API-Key": "34d8efa09c5b048bbacc6af157f2e687" + "DY-API-Key": "dummyApiKey" }, "params": {}, "body": { @@ -523,7 +523,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687" + "apiKey": "dummyApiKey" } } }, @@ -553,7 +553,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687" + "apiKey": "dummyApiKey" } } }, @@ -623,7 +623,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687" + "apiKey": "dummyApiKey" } } }, @@ -665,7 +665,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687" + "apiKey": "dummyApiKey" } } }, @@ -676,7 +676,7 @@ "endpoint": "https://dy-api.com/v2/collect/user/event", "headers": { "Content-Type": "application/json", - "DY-API-Key": "34d8efa09c5b048bbacc6af157f2e687" + "DY-API-Key": "dummyApiKey" }, "params": {}, "body": { diff --git a/test/__tests__/data/eloqua.json b/test/__tests__/data/eloqua.json new file mode 100644 index 00000000000..ed64f74d093 --- /dev/null +++ b/test/__tests__/data/eloqua.json @@ -0,0 +1,359 @@ +[ + { + "description": "identify payload pass", + "input": { + "message": { + "type": "identify", + "traits": { + "C_FirstName": "Test User", + "C_patient_id1": 1, + "C_MobilePhone": "+008822773355", + "C_City": "Scranton", + "C_date_of_birth_1life1": "22/12/01" + }, + "userId": "testUser1234@keeptesting.com", + "context": { + "sources": { + "job_id": "2RVkqlV1adBiIpj33kWlQzchMP1/Syncher", + "version": "v1.28.0", + "job_run_id": "cja699onfuet3te5obc0", + "task_run_id": "cja699onfuet3te5obcg" + }, + "externalId": [ + { + "id": "testUser1234@keeptesting.com", + "type": "ELOQUA-contacts", + "identifierType": "C_EmailAddress" + } + ], + "mappedToDestination": "true" + }, + "recordId": "1", + "rudderId": "3606d3c7-8741-4245-a254-450e137d3866", + "messageId": "40def17a-1b6a-4d2d-a851-2a8d96f913bd" + }, + "destination": { + "Config": { + "customerAccountId": "89236978", + "customerId": "78678678", + "audienceId": "564567", + "hashEmail": false + } + } + }, + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "", + "headers": {}, + "params": {}, + "body": { + "JSON": { + "identifierFieldName": "C_EmailAddress", + "data": { + "C_FirstName": "Test User", + "C_patient_id1": "1", + "C_MobilePhone": "+008822773355", + "C_City": "Scranton", + "C_date_of_birth_1life1": "22/12/01", + "C_EmailAddress": "testUser1234@keeptesting.com" + }, + "customObjectId": "contacts", + "type": "identify" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + }, + { + "description": "type not correect", + "input": { + "message": { + "type": "audiencelist", + "traits": { + "C_FirstName": "Test User", + "C_patient_id1": 1, + "C_MobilePhone": "+008822773355", + "C_City": "Scranton", + "C_date_of_birth_1life1": "22/12/01" + }, + "userId": "testUser1234@keeptesting.com", + "context": { + "sources": { + "job_id": "2RVkqlV1adBiIpj33kWlQzchMP1/Syncher", + "version": "v1.28.0", + "job_run_id": "cja699onfuet3te5obc0", + "task_run_id": "cja699onfuet3te5obcg" + }, + "externalId": [ + { + "id": "testUser1234@keeptesting.com", + "type": "ELOQUA-contacts", + "identifierType": "C_EmailAddress" + } + ], + "mappedToDestination": "true" + }, + "recordId": "1", + "rudderId": "3606d3c7-8741-4245-a254-450e137d3866", + "messageId": "40def17a-1b6a-4d2d-a851-2a8d96f913bd" + }, + "destination": { + "Config": { + "customerAccountId": "89236978", + "customerId": "78678678", + "audienceId": "564567", + "hashEmail": false + } + } + }, + "output": { + "error": "Event type audiencelist is not supported. Aborting message." + } + }, + { + "description": "traits not present", + "input": { + "message": { + "type": "identify", + "userId": "testUser1234@keeptesting.com", + "context": { + "sources": { + "job_id": "2RVkqlV1adBiIpj33kWlQzchMP1/Syncher", + "version": "v1.28.0", + "job_run_id": "cja699onfuet3te5obc0", + "task_run_id": "cja699onfuet3te5obcg" + }, + "externalId": [ + { + "id": "testUser1234@keeptesting.com", + "type": "ELOQUA-contacts", + "identifierType": "C_EmailAddress" + } + ], + "mappedToDestination": "true" + }, + "recordId": "1", + "rudderId": "3606d3c7-8741-4245-a254-450e137d3866", + "messageId": "40def17a-1b6a-4d2d-a851-2a8d96f913bd" + }, + "destination": { + "Config": { + "customerAccountId": "89236978", + "customerId": "78678678", + "audienceId": "564567", + "hashEmail": false + } + } + }, + "output": { + "error": "Message traits/properties not present. Aborting message." + } + }, + { + "description": "identify payload pass", + "input": { + "message": { + "type": "identify", + "traits": { + "C_FirstName": "Test User", + "C_patient_id1": 1, + "C_MobilePhone": "+008822773355", + "C_City": "Scranton", + "C_date_of_birth_1life1": "22/12/01" + }, + "userId": "testUser1234@keeptesting.com", + "context": { + "sources": { + "job_id": "2RVkqlV1adBiIpj33kWlQzchMP1/Syncher", + "version": "v1.28.0", + "job_run_id": "cja699onfuet3te5obc0", + "task_run_id": "cja699onfuet3te5obcg" + }, + "externalId": [ + { + "id": "testUser1234@keeptesting.com", + "type": "ELOQUA-contacts", + "identifierType": "C_EmailAddress" + } + ], + "mappedToDestination": "true" + }, + "recordId": "1", + "rudderId": "3606d3c7-8741-4245-a254-450e137d3866", + "messageId": "40def17a-1b6a-4d2d-a851-2a8d96f913bd" + }, + "destination": { + "Config": { + "customerAccountId": "89236978", + "customerId": "78678678", + "audienceId": "564567", + "hashEmail": false + } + } + }, + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "", + "headers": {}, + "params": {}, + "body": { + "JSON": { + "identifierFieldName": "C_EmailAddress", + "data": { + "C_FirstName": "Test User", + "C_patient_id1": "1", + "C_MobilePhone": "+008822773355", + "C_City": "Scranton", + "C_date_of_birth_1life1": "22/12/01", + "C_EmailAddress": "testUser1234@keeptesting.com" + }, + "customObjectId": "contacts", + "type": "identify" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + }, + { + "description": "track payload pass", + "input": { + "message": { + "type": "track", + "properties": { + "key11": "Test User", + "key21": 1, + "contactID11": "+008822773355" + }, + "userId": "testUser1234@keeptesting.com", + "channel": "sources", + "context": { + "sources": { + "job_id": "2RVkqlV1adBiIpj33kWlQzchMP1/Syncher", + "version": "v1.28.0", + "job_run_id": "cja699onfuet3te5obc0", + "task_run_id": "cja699onfuet3te5obcg" + }, + "externalId": [ + { + "id": "testUser1234@keeptesting.com", + "type": "ELOQUA-172", + "identifierType": "contactID1" + } + ], + "mappedToDestination": "true" + }, + "recordId": "1", + "rudderId": "3606d3c7-8741-4245-a254-450e137d3866", + "messageId": "40def17a-1b6a-4d2d-a851-2a8d96f913bd" + }, + "destination": { + "Config": { + "customerId": "78678678", + "audienceId": "564567", + "hashEmail": false + } + } + }, + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "", + "headers": {}, + "params": {}, + "body": { + "JSON": { + "identifierFieldName": "contactID1", + "data": { + "key11": "Test User", + "key21": "1", + "contactID11": "+008822773355", + "contactID1": "testUser1234@keeptesting.com" + }, + "customObjectId": "172", + "type": "track" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + }, + { + "description": "track payload pass", + "input": { + "message": { + "type": "track", + "properties": { + "key11": "Test User", + "key21": 1, + "contactID11": "+008822773355" + }, + "userId": "testUser1234@keeptesting.com", + "channel": "sources", + "context": { + "sources": { + "job_id": "2RVkqlV1adBiIpj33kWlQzchMP1/Syncher", + "version": "v1.28.0", + "job_run_id": "cja699onfuet3te5obc0", + "task_run_id": "cja699onfuet3te5obcg" + }, + "externalId": [ + { + "id": "testUser1234@keeptesting.com", + "type": "ELOQUA-1800", + "identifierType": "contactID112" + } + ], + "mappedToDestination": "true" + }, + "recordId": "1", + "rudderId": "3606d3c7-8741-4245-a254-450e137d3866", + "messageId": "40def17a-1b6a-4d2d-a851-2a8d96f913bd" + }, + "destination": { + "Config": { + "customerId": "78678678", + "audienceId": "564567", + "hashEmail": false + } + } + }, + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "", + "headers": {}, + "params": {}, + "body": { + "JSON": { + "identifierFieldName": "contactID112", + "data": { + "key11": "Test User", + "key21": "1", + "contactID11": "+008822773355", + "contactID112": "testUser1234@keeptesting.com" + }, + "customObjectId": "1800", + "type": "track" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + } +] diff --git a/test/__tests__/data/facebook_conversions.json b/test/__tests__/data/facebook_conversions.json new file mode 100644 index 00000000000..cc4d9a1421e --- /dev/null +++ b/test/__tests__/data/facebook_conversions.json @@ -0,0 +1,1157 @@ +[ + { + "description": "Timestamp validation. Events must be sent within seven days of their occurrence or up to one minute in the future", + "input": { + "message": { + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", + "channel": "web", + "context": { + "device": { + "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", + "manufacturer": "Xiaomi", + "model": "Redmi 6", + "name": "xiaomi" + }, + "network": { + "carrier": "Banglalink" + }, + "os": { + "name": "android", + "version": "8.1.0" + }, + "screen": { + "height": "100", + "density": 50 + }, + "traits": { + "email": " aBc@gmail.com ", + "address": { + "zip": 1234 + }, + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" + } + }, + "event": "randomevent", + "integrations": { + "All": true + }, + "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", + "properties": { + "revenue": 400, + "additional_bet_index": 0 + }, + "timestamp": "2023-09-01T15:46:51.693229+05:30", + "type": "track" + }, + "destination": { + "Config": { + "limitedDataUsage": true, + "blacklistPiiProperties": [ + { + "blacklistPiiProperties": "", + "blacklistPiiHash": false + } + ], + "accessToken": "09876", + "datasetId": "dummyID", + "eventsToEvents": [ + { + "from": "", + "to": "" + } + ], + "eventCustomProperties": [ + { + "eventCustomProperties": "" + } + ], + "removeExternalId": true, + "whitelistPiiProperties": [ + { + "whitelistPiiProperties": "" + } + ] + }, + "Enabled": true + } + }, + "output": { + "error": "Events must be sent within seven days of their occurrence or up to one minute in the future." + } + }, + { + "description": "Track event without event property set", + "input": { + "message": { + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", + "channel": "web", + "context": { + "device": { + "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", + "manufacturer": "Xiaomi", + "model": "Redmi 6", + "name": "xiaomi" + }, + "network": { + "carrier": "Banglalink" + }, + "os": { + "name": "android", + "version": "8.1.0" + }, + "screen": { + "height": "100", + "density": 50 + }, + "traits": { + "email": " aBc@gmail.com ", + "address": { + "zip": 1234 + }, + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" + } + }, + "event": "", + "integrations": { + "All": true + }, + "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", + "properties": { + "revenue": 400, + "additional_bet_index": 0 + }, + "timestamp": "2023-11-12T15:46:51.693229+05:30", + "type": "track" + }, + "destination": { + "Config": { + "limitedDataUsage": true, + "blacklistPiiProperties": [ + { + "blacklistPiiProperties": "", + "blacklistPiiHash": false + } + ], + "accessToken": "09876", + "datasetId": "dummyID", + "eventsToEvents": [ + { + "from": "", + "to": "" + } + ], + "eventCustomProperties": [ + { + "eventCustomProperties": "" + } + ], + "removeExternalId": true, + "whitelistPiiProperties": [ + { + "whitelistPiiProperties": "" + } + ], + "actionSource": "website" + }, + "Enabled": true + } + }, + "output": { + "error": "'event' is required and should be a string" + } + }, + { + "description": "Simple track event", + "input": { + "message": { + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", + "channel": "web", + "context": { + "device": { + "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", + "manufacturer": "Xiaomi", + "model": "Redmi 6", + "name": "xiaomi" + }, + "network": { + "carrier": "Banglalink" + }, + "os": { + "name": "android", + "version": "8.1.0" + }, + "screen": { + "height": "100", + "density": 50 + }, + "traits": { + "email": " aBc@gmail.com ", + "address": { + "zip": 1234 + }, + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" + } + }, + "event": "spin_result", + "integrations": { + "All": true + }, + "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", + "properties": { + "revenue": 400, + "additional_bet_index": 0 + }, + "timestamp": "2023-11-12T15:46:51.693229+05:30", + "type": "track" + }, + "destination": { + "Config": { + "limitedDataUsage": true, + "blacklistPiiProperties": [ + { + "blacklistPiiProperties": "", + "blacklistPiiHash": false + } + ], + "accessToken": "09876", + "datasetId": "dummyID", + "eventsToEvents": [ + { + "from": "", + "to": "" + } + ], + "eventCustomProperties": [ + { + "eventCustomProperties": "" + } + ], + "removeExternalId": true, + "whitelistPiiProperties": [ + { + "whitelistPiiProperties": "" + } + ], + "actionSource": "website" + }, + "Enabled": true + } + }, + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://graph.facebook.com/v18.0/dummyID/events?access_token=09876", + "headers": {}, + "params": {}, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": { + "data": [ + "{\"user_data\":{\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"zp\":\"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4\"},\"event_name\":\"spin_result\",\"event_time\":1699784211,\"action_source\":\"website\",\"custom_data\":{\"revenue\":400,\"additional_bet_index\":0,\"value\":400,\"currency\":\"USD\"}}" + ] + } + }, + "files": {} + } + }, + { + "description": "Track event with standard event products searched", + "input": { + "message": { + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", + "channel": "web", + "context": { + "device": { + "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", + "manufacturer": "Xiaomi", + "model": "Redmi 6", + "name": "xiaomi" + }, + "network": { + "carrier": "Banglalink" + }, + "os": { + "name": "android", + "version": "8.1.0" + }, + "screen": { + "height": "100", + "density": 50 + }, + "traits": { + "email": " aBc@gmail.com ", + "address": { + "zip": 1234 + }, + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" + } + }, + "event": "products searched", + "integrations": { + "All": true + }, + "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", + "properties": { + "revenue": 400, + "additional_bet_index": 0 + }, + "timestamp": "2023-11-12T15:46:51.693229+05:30", + "type": "track" + }, + "destination": { + "Config": { + "limitedDataUsage": true, + "blacklistPiiProperties": [ + { + "blacklistPiiProperties": "", + "blacklistPiiHash": false + } + ], + "accessToken": "09876", + "datasetId": "dummyID", + "eventsToEvents": [ + { + "from": "", + "to": "" + } + ], + "eventCustomProperties": [ + { + "eventCustomProperties": "" + } + ], + "removeExternalId": true, + "whitelistPiiProperties": [ + { + "whitelistPiiProperties": "" + } + ], + "actionSource": "website" + }, + "Enabled": true + } + }, + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://graph.facebook.com/v18.0/dummyID/events?access_token=09876", + "headers": {}, + "params": {}, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": { + "data": [ + "{\"user_data\":{\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"zp\":\"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4\"},\"event_name\":\"Search\",\"event_time\":1699784211,\"action_source\":\"website\",\"custom_data\":{\"revenue\":400,\"additional_bet_index\":0,\"content_ids\":[],\"contents\":[],\"content_type\":\"product\",\"currency\":\"USD\",\"value\":400}}" + ] + } + }, + "files": {} + } + }, + { + "description": "Track event with standard event product added", + "input": { + "message": { + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", + "channel": "web", + "context": { + "device": { + "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", + "manufacturer": "Xiaomi", + "model": "Redmi 6", + "name": "xiaomi" + }, + "network": { + "carrier": "Banglalink" + }, + "os": { + "name": "android", + "version": "8.1.0" + }, + "screen": { + "height": "100", + "density": 50 + }, + "traits": { + "email": " aBc@gmail.com ", + "address": { + "zip": 1234 + }, + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" + } + }, + "event": "product added", + "integrations": { + "All": true + }, + "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", + "properties": { + "revenue": 400, + "additional_bet_index": 0 + }, + "timestamp": "2023-11-12T15:46:51.693229+05:30", + "type": "track" + }, + "destination": { + "Config": { + "limitedDataUsage": true, + "blacklistPiiProperties": [ + { + "blacklistPiiProperties": "", + "blacklistPiiHash": false + } + ], + "accessToken": "09876", + "datasetId": "dummyID", + "eventsToEvents": [ + { + "from": "", + "to": "" + } + ], + "eventCustomProperties": [ + { + "eventCustomProperties": "" + } + ], + "removeExternalId": true, + "whitelistPiiProperties": [ + { + "whitelistPiiProperties": "" + } + ], + "actionSource": "website" + }, + "Enabled": true + } + }, + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://graph.facebook.com/v18.0/dummyID/events?access_token=09876", + "headers": {}, + "params": {}, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": { + "data": [ + "{\"user_data\":{\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"zp\":\"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4\"},\"event_name\":\"AddToCart\",\"event_time\":1699784211,\"action_source\":\"website\",\"custom_data\":{\"revenue\":400,\"additional_bet_index\":0,\"content_ids\":[],\"contents\":[],\"content_type\":\"product\",\"currency\":\"USD\",\"value\":400}}" + ] + } + }, + "files": {} + } + }, + { + "description": "Track event with standard event product viewed", + "input": { + "message": { + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", + "channel": "web", + "context": { + "device": { + "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", + "manufacturer": "Xiaomi", + "model": "Redmi 6", + "name": "xiaomi" + }, + "network": { + "carrier": "Banglalink" + }, + "os": { + "name": "android", + "version": "8.1.0" + }, + "screen": { + "height": "100", + "density": 50 + }, + "traits": { + "email": " aBc@gmail.com ", + "address": { + "zip": 1234 + }, + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" + } + }, + "event": "product viewed", + "integrations": { + "All": true + }, + "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", + "properties": { + "revenue": 400, + "additional_bet_index": 0 + }, + "timestamp": "2023-11-12T15:46:51.693229+05:30", + "type": "track" + }, + "destination": { + "Config": { + "limitedDataUsage": true, + "blacklistPiiProperties": [ + { + "blacklistPiiProperties": "", + "blacklistPiiHash": false + } + ], + "accessToken": "09876", + "datasetId": "dummyID", + "eventsToEvents": [ + { + "from": "", + "to": "" + } + ], + "eventCustomProperties": [ + { + "eventCustomProperties": "" + } + ], + "removeExternalId": true, + "whitelistPiiProperties": [ + { + "whitelistPiiProperties": "" + } + ], + "actionSource": "website" + }, + "Enabled": true + } + }, + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://graph.facebook.com/v18.0/dummyID/events?access_token=09876", + "headers": {}, + "params": {}, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": { + "data": [ + "{\"user_data\":{\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"zp\":\"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4\"},\"event_name\":\"ViewContent\",\"event_time\":1699784211,\"action_source\":\"website\",\"custom_data\":{\"revenue\":400,\"additional_bet_index\":0,\"content_ids\":[],\"contents\":[],\"content_type\":\"product\",\"currency\":\"USD\",\"value\":400}}" + ] + } + }, + "files": {} + } + }, + { + "description": "Track event with standard event product list viewed", + "input": { + "message": { + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", + "channel": "web", + "context": { + "device": { + "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", + "manufacturer": "Xiaomi", + "model": "Redmi 6", + "name": "xiaomi" + }, + "network": { + "carrier": "Banglalink" + }, + "os": { + "name": "android", + "version": "8.1.0" + }, + "screen": { + "height": "100", + "density": 50 + }, + "traits": { + "email": " aBc@gmail.com ", + "address": { + "zip": 1234 + }, + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" + } + }, + "event": "product list viewed", + "integrations": { + "All": true + }, + "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", + "properties": { + "revenue": 400, + "additional_bet_index": 0, + "products": [ + { + "product_id": 1234, + "quantity": 5, + "price": 55 + } + ] + }, + "timestamp": "2023-11-12T15:46:51.693229+05:30", + "type": "track" + }, + "destination": { + "Config": { + "limitedDataUsage": true, + "blacklistPiiProperties": [ + { + "blacklistPiiProperties": "", + "blacklistPiiHash": false + } + ], + "accessToken": "09876", + "datasetId": "dummyID", + "eventsToEvents": [ + { + "from": "", + "to": "" + } + ], + "eventCustomProperties": [ + { + "eventCustomProperties": "" + } + ], + "removeExternalId": true, + "whitelistPiiProperties": [ + { + "whitelistPiiProperties": "" + } + ], + "actionSource": "website" + }, + "Enabled": true + } + }, + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://graph.facebook.com/v18.0/dummyID/events?access_token=09876", + "headers": {}, + "params": {}, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": { + "data": [ + "{\"user_data\":{\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"zp\":\"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4\"},\"event_name\":\"ViewContent\",\"event_time\":1699784211,\"action_source\":\"website\",\"custom_data\":{\"revenue\":400,\"additional_bet_index\":0,\"products\":[{\"product_id\":1234,\"quantity\":5,\"price\":55}],\"content_ids\":[1234],\"contents\":[{\"id\":1234,\"quantity\":5,\"item_price\":55}],\"content_type\":\"product\",\"currency\":\"USD\",\"value\":400}}" + ] + } + }, + "files": {} + } + }, + { + "description": "Track event with standard event product list viewed without products array", + "input": { + "message": { + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", + "channel": "web", + "context": { + "device": { + "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", + "manufacturer": "Xiaomi", + "model": "Redmi 6", + "name": "xiaomi" + }, + "network": { + "carrier": "Banglalink" + }, + "os": { + "name": "android", + "version": "8.1.0" + }, + "screen": { + "height": "100", + "density": 50 + }, + "traits": { + "email": " aBc@gmail.com ", + "address": { + "zip": 1234 + }, + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" + } + }, + "event": "product list viewed", + "integrations": { + "All": true + }, + "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", + "properties": { + "revenue": 400, + "additional_bet_index": 0, + "category": "randomCategory" + }, + "timestamp": "2023-11-12T15:46:51.693229+05:30", + "type": "track" + }, + "destination": { + "Config": { + "limitedDataUsage": true, + "blacklistPiiProperties": [ + { + "blacklistPiiProperties": "", + "blacklistPiiHash": false + } + ], + "accessToken": "09876", + "datasetId": "dummyID", + "eventsToEvents": [ + { + "from": "", + "to": "" + } + ], + "eventCustomProperties": [ + { + "eventCustomProperties": "" + } + ], + "removeExternalId": true, + "whitelistPiiProperties": [ + { + "whitelistPiiProperties": "" + } + ], + "actionSource": "website" + }, + "Enabled": true + } + }, + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://graph.facebook.com/v18.0/dummyID/events?access_token=09876", + "headers": {}, + "params": {}, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": { + "data": [ + "{\"user_data\":{\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"zp\":\"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4\"},\"event_name\":\"ViewContent\",\"event_time\":1699784211,\"action_source\":\"website\",\"custom_data\":{\"revenue\":400,\"additional_bet_index\":0,\"category\":\"randomCategory\",\"content_ids\":[\"randomCategory\"],\"contents\":[{\"id\":\"randomCategory\",\"quantity\":1}],\"content_type\":\"product_group\",\"content_category\":\"randomCategory\",\"currency\":\"USD\",\"value\":400}}" + ] + } + }, + "files": {} + } + }, + { + "description": "Track event with standard event product added to wishlist", + "input": { + "message": { + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", + "channel": "web", + "context": { + "device": { + "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", + "manufacturer": "Xiaomi", + "model": "Redmi 6", + "name": "xiaomi" + }, + "network": { + "carrier": "Banglalink" + }, + "os": { + "name": "android", + "version": "8.1.0" + }, + "screen": { + "height": "100", + "density": 50 + }, + "traits": { + "email": " aBc@gmail.com ", + "address": { + "zip": 1234 + }, + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" + } + }, + "event": "product added to wishlist", + "integrations": { + "All": true + }, + "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", + "properties": { + "revenue": 400, + "additional_bet_index": 0 + }, + "timestamp": "2023-11-12T15:46:51.693229+05:30", + "type": "track" + }, + "destination": { + "Config": { + "limitedDataUsage": true, + "blacklistPiiProperties": [ + { + "blacklistPiiProperties": "", + "blacklistPiiHash": false + } + ], + "accessToken": "09876", + "datasetId": "dummyID", + "eventsToEvents": [ + { + "from": "", + "to": "" + } + ], + "eventCustomProperties": [ + { + "eventCustomProperties": "" + } + ], + "removeExternalId": true, + "whitelistPiiProperties": [ + { + "whitelistPiiProperties": "" + } + ], + "actionSource": "website" + }, + "Enabled": true + } + }, + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://graph.facebook.com/v18.0/dummyID/events?access_token=09876", + "headers": {}, + "params": {}, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": { + "data": [ + "{\"user_data\":{\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"zp\":\"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4\"},\"event_name\":\"AddToWishlist\",\"event_time\":1699784211,\"action_source\":\"website\",\"custom_data\":{\"revenue\":400,\"additional_bet_index\":0,\"content_ids\":[],\"contents\":[],\"currency\":\"USD\",\"value\":400}}" + ] + } + }, + "files": {} + } + }, + { + "description": "Track event with standard event payment info entered", + "input": { + "message": { + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", + "channel": "web", + "context": { + "device": { + "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", + "manufacturer": "Xiaomi", + "model": "Redmi 6", + "name": "xiaomi" + }, + "network": { + "carrier": "Banglalink" + }, + "os": { + "name": "android", + "version": "8.1.0" + }, + "screen": { + "height": "100", + "density": 50 + }, + "traits": { + "email": " aBc@gmail.com ", + "address": { + "zip": 1234 + }, + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" + } + }, + "event": "payment info entered", + "integrations": { + "All": true + }, + "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", + "properties": { + "revenue": 400, + "additional_bet_index": 0 + }, + "timestamp": "2023-11-12T15:46:51.693229+05:30", + "type": "track" + }, + "destination": { + "Config": { + "limitedDataUsage": true, + "blacklistPiiProperties": [ + { + "blacklistPiiProperties": "", + "blacklistPiiHash": false + } + ], + "accessToken": "09876", + "datasetId": "dummyID", + "eventsToEvents": [ + { + "from": "", + "to": "" + } + ], + "eventCustomProperties": [ + { + "eventCustomProperties": "" + } + ], + "removeExternalId": true, + "whitelistPiiProperties": [ + { + "whitelistPiiProperties": "" + } + ], + "actionSource": "website" + }, + "Enabled": true + } + }, + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://graph.facebook.com/v18.0/dummyID/events?access_token=09876", + "headers": {}, + "params": {}, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": { + "data": [ + "{\"user_data\":{\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"zp\":\"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4\"},\"event_name\":\"AddPaymentInfo\",\"event_time\":1699784211,\"action_source\":\"website\",\"custom_data\":{\"revenue\":400,\"additional_bet_index\":0,\"content_ids\":[],\"contents\":[],\"currency\":\"USD\",\"value\":400}}" + ] + } + }, + "files": {} + } + }, + { + "description": "Track event with standard event order completed with delivery_category in products array", + "input": { + "message": { + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", + "channel": "web", + "context": { + "device": { + "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", + "manufacturer": "Xiaomi", + "model": "Redmi 6", + "name": "xiaomi" + }, + "network": { + "carrier": "Banglalink" + }, + "os": { + "name": "android", + "version": "8.1.0" + }, + "screen": { + "height": "100", + "density": 50 + }, + "traits": { + "email": " aBc@gmail.com ", + "address": { + "zip": 1234 + }, + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" + } + }, + "event": "order completed", + "integrations": { + "All": true + }, + "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", + "properties": { + "revenue": 400, + "additional_bet_index": 0, + "products": [ + { + "product_id": 1234, + "quantity": 5, + "price": 55, + "delivery_category": "home_delivery" + } + ] + }, + "timestamp": "2023-11-12T15:46:51.693229+05:30", + "type": "track" + }, + "destination": { + "Config": { + "limitedDataUsage": true, + "blacklistPiiProperties": [ + { + "blacklistPiiProperties": "", + "blacklistPiiHash": false + } + ], + "accessToken": "09876", + "datasetId": "dummyID", + "eventsToEvents": [ + { + "from": "", + "to": "" + } + ], + "eventCustomProperties": [ + { + "eventCustomProperties": "" + } + ], + "removeExternalId": true, + "whitelistPiiProperties": [ + { + "whitelistPiiProperties": "" + } + ], + "actionSource": "website" + }, + "Enabled": true + } + }, + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://graph.facebook.com/v18.0/dummyID/events?access_token=09876", + "headers": {}, + "params": {}, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": { + "data": [ + "{\"user_data\":{\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"zp\":\"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4\"},\"event_name\":\"Purchase\",\"event_time\":1699784211,\"action_source\":\"website\",\"custom_data\":{\"revenue\":400,\"additional_bet_index\":0,\"products\":[{\"product_id\":1234,\"quantity\":5,\"price\":55,\"delivery_category\":\"home_delivery\"}],\"content_ids\":[1234],\"contents\":[{\"id\":1234,\"quantity\":5,\"item_price\":55,\"delivery_category\":\"home_delivery\"}],\"content_type\":\"product\",\"currency\":\"USD\",\"value\":400,\"num_items\":1}}" + ] + } + }, + "files": {} + } + }, + { + "description": "Track event with standard event order completed with delivery_category in properties", + "input": { + "message": { + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", + "channel": "web", + "context": { + "device": { + "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", + "manufacturer": "Xiaomi", + "model": "Redmi 6", + "name": "xiaomi" + }, + "network": { + "carrier": "Banglalink" + }, + "os": { + "name": "android", + "version": "8.1.0" + }, + "screen": { + "height": "100", + "density": 50 + }, + "traits": { + "email": " aBc@gmail.com ", + "address": { + "zip": 1234 + }, + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" + } + }, + "event": "order completed", + "integrations": { + "All": true + }, + "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", + "properties": { + "revenue": 400, + "additional_bet_index": 0, + "delivery_category": "home_delivery", + "products": [ + { + "product_id": 1234, + "quantity": 5, + "price": 55 + } + ] + }, + "timestamp": "2023-11-12T15:46:51.693229+05:30", + "type": "track" + }, + "destination": { + "Config": { + "limitedDataUsage": true, + "blacklistPiiProperties": [ + { + "blacklistPiiProperties": "", + "blacklistPiiHash": false + } + ], + "accessToken": "09876", + "datasetId": "dummyID", + "eventsToEvents": [ + { + "from": "", + "to": "" + } + ], + "eventCustomProperties": [ + { + "eventCustomProperties": "" + } + ], + "removeExternalId": true, + "whitelistPiiProperties": [ + { + "whitelistPiiProperties": "" + } + ], + "actionSource": "website" + }, + "Enabled": true + } + }, + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://graph.facebook.com/v18.0/dummyID/events?access_token=09876", + "headers": {}, + "params": {}, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": { + "data": [ + "{\"user_data\":{\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"zp\":\"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4\"},\"event_name\":\"Purchase\",\"event_time\":1699784211,\"action_source\":\"website\",\"custom_data\":{\"revenue\":400,\"additional_bet_index\":0,\"delivery_category\":\"home_delivery\",\"products\":[{\"product_id\":1234,\"quantity\":5,\"price\":55}],\"content_ids\":[1234],\"contents\":[{\"id\":1234,\"quantity\":5,\"item_price\":55,\"delivery_category\":\"home_delivery\"}],\"content_type\":\"product\",\"currency\":\"USD\",\"value\":400,\"num_items\":1}}" + ] + } + }, + "files": {} + } + } +] diff --git a/test/__tests__/data/facebook_pixel_router_input.json b/test/__tests__/data/facebook_conversions_router_input.json similarity index 62% rename from test/__tests__/data/facebook_pixel_router_input.json rename to test/__tests__/data/facebook_conversions_router_input.json index 5e9adfcb93d..b8865d124ea 100644 --- a/test/__tests__/data/facebook_pixel_router_input.json +++ b/test/__tests__/data/facebook_conversions_router_input.json @@ -1,12 +1,11 @@ [ { + "metadata": { + "jobId": 1 + }, "message": { "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, + "channel": "web", "context": { "device": { "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", @@ -26,7 +25,10 @@ "density": 50 }, "traits": { - "email": "abc@gmail.com", + "email": " aBc@gmail.com ", + "address": { + "zip": 1234 + }, "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" } }, @@ -39,12 +41,9 @@ "revenue": 400, "additional_bet_index": 0 }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", + "timestamp": "2023-11-12T15:46:51.693229+05:30", "type": "track" }, - "metadata": { - "jobId": 2 - }, "destination": { "Config": { "limitedDataUsage": true, @@ -54,9 +53,8 @@ "blacklistPiiHash": false } ], - "removeExternalId": true, "accessToken": "09876", - "pixelId": "dfgdfgdgd", + "datasetId": "dummyID", "eventsToEvents": [ { "from": "", @@ -68,69 +66,65 @@ "eventCustomProperties": "" } ], - "valueFieldIdentifier": "", - "advancedMapping": false, + "removeExternalId": true, "whitelistPiiProperties": [ { "whitelistPiiProperties": "" } - ] + ], + "actionSource": "website" }, "Enabled": true } }, { + "metadata": { + "jobId": 2 + }, "message": { + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", "channel": "web", "context": { - "traits": { - "name": "Ruchira Moitra", - "email": "abc@gmail.com", - "firstname": "Ruchira", - "lastname": "Moitra", - "phone": 9000000000, - "gender": "female" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" + "device": { + "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", + "manufacturer": "Xiaomi", + "model": "Redmi 6", + "name": "xiaomi" }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" + "network": { + "carrier": "Banglalink" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", "os": { - "name": "", - "version": "" + "name": "android", + "version": "8.1.0" }, "screen": { - "density": 2 + "height": "100", + "density": 50 + }, + "traits": { + "email": " aBc@gmail.com ", + "address": { + "zip": 1234 + }, + "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" } }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "123456", + "event": "products searched", "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "metadata": { - "jobId": 2 + "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", + "properties": { + "revenue": 400, + "additional_bet_index": 0 + }, + "timestamp": "2023-11-12T15:46:51.693229+05:30", + "type": "track" }, "destination": { "Config": { + "limitedDataUsage": true, "blacklistPiiProperties": [ { "blacklistPiiProperties": "", @@ -138,7 +132,7 @@ } ], "accessToken": "09876", - "pixelId": "dfgdfgdgd", + "datasetId": "dummyID", "eventsToEvents": [ { "from": "", @@ -150,13 +144,13 @@ "eventCustomProperties": "" } ], - "valueFieldIdentifier": "", - "advancedMapping": true, + "removeExternalId": true, "whitelistPiiProperties": [ { "whitelistPiiProperties": "" } - ] + ], + "actionSource": "website" }, "Enabled": true } diff --git a/test/__tests__/data/facebook_pixel_router_output.json b/test/__tests__/data/facebook_conversions_router_output.json similarity index 59% rename from test/__tests__/data/facebook_pixel_router_output.json rename to test/__tests__/data/facebook_conversions_router_output.json index c3581c74479..542c1730908 100644 --- a/test/__tests__/data/facebook_pixel_router_output.json +++ b/test/__tests__/data/facebook_conversions_router_output.json @@ -4,7 +4,7 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", + "endpoint": "https://graph.facebook.com/v18.0/dummyID/events?access_token=09876", "headers": {}, "params": {}, "body": { @@ -13,7 +13,7 @@ "JSON_ARRAY": {}, "FORM": { "data": [ - "{\"user_data\":{\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\"},\"event_name\":\"spin_result\",\"event_time\":1567333011,\"action_source\":\"other\",\"custom_data\":{\"additional_bet_index\":0,\"value\":400}}" + "{\"user_data\":{\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"zp\":\"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4\"},\"event_name\":\"spin_result\",\"event_time\":1699784211,\"action_source\":\"website\",\"custom_data\":{\"revenue\":400,\"additional_bet_index\":0,\"value\":400,\"currency\":\"USD\"}}" ] } }, @@ -21,7 +21,7 @@ }, "metadata": [ { - "jobId": 2 + "jobId": 1 } ], "batched": false, @@ -35,9 +35,8 @@ "blacklistPiiHash": false } ], - "removeExternalId": true, "accessToken": "09876", - "pixelId": "dfgdfgdgd", + "datasetId": "dummyID", "eventsToEvents": [ { "from": "", @@ -49,13 +48,13 @@ "eventCustomProperties": "" } ], - "valueFieldIdentifier": "", - "advancedMapping": false, + "removeExternalId": true, "whitelistPiiProperties": [ { "whitelistPiiProperties": "" } - ] + ], + "actionSource": "website" }, "Enabled": true } @@ -65,7 +64,7 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", + "endpoint": "https://graph.facebook.com/v18.0/dummyID/events?access_token=09876", "headers": {}, "params": {}, "body": { @@ -74,7 +73,7 @@ "JSON_ARRAY": {}, "FORM": { "data": [ - "{\"user_data\":{\"external_id\":\"8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92\",\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"ph\":\"593a6d58f34eb5c3de4f47e38d1faaa7d389fafe332a85400b1e54498391c579\",\"ge\":\"252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111\",\"ln\":\"6c535a187517963217c07cbdb552cb8991987d6c33cbaecbe2fc7bc4199e156e\",\"fn\":\"d5c853a578ee28b6152606785eb8e2eb10a369b2903e8f8ee1ce761eaf9acd0c\",\"client_ip_address\":\"0.0.0.0\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"identify\",\"event_time\":1567333011,\"event_id\":\"84e26acc-56a5-4835-8233-591137fca468\",\"action_source\":\"website\"}" + "{\"user_data\":{\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"zp\":\"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4\"},\"event_name\":\"Search\",\"event_time\":1699784211,\"action_source\":\"website\",\"custom_data\":{\"revenue\":400,\"additional_bet_index\":0,\"content_ids\":[],\"contents\":[],\"content_type\":\"product\",\"currency\":\"USD\",\"value\":400}}" ] } }, @@ -89,6 +88,7 @@ "statusCode": 200, "destination": { "Config": { + "limitedDataUsage": true, "blacklistPiiProperties": [ { "blacklistPiiProperties": "", @@ -96,7 +96,7 @@ } ], "accessToken": "09876", - "pixelId": "dfgdfgdgd", + "datasetId": "dummyID", "eventsToEvents": [ { "from": "", @@ -108,13 +108,13 @@ "eventCustomProperties": "" } ], - "valueFieldIdentifier": "", - "advancedMapping": true, + "removeExternalId": true, "whitelistPiiProperties": [ { "whitelistPiiProperties": "" } - ] + ], + "actionSource": "website" }, "Enabled": true } diff --git a/test/__tests__/data/facebook_offline_conversions.json b/test/__tests__/data/facebook_offline_conversions.json deleted file mode 100644 index e235f056ff8..00000000000 --- a/test/__tests__/data/facebook_offline_conversions.json +++ /dev/null @@ -1,1034 +0,0 @@ -[ - { - "description": "No Message type", - "input": { - "message": { - "channel": "web", - "context": { - "traits": { - "age": 23, - "email": "adc@test.com", - "firstname": "Test", - "birthday": "2022-05-13T12:51:01.470Z" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "event": "Product Searched", - "originalTimestamp": "2020-09-22T14:42:44.724Z", - "timestamp": "2022-09-22T20:12:44.757+05:30", - "userId": "user@1" - }, - "destination": { - "Config": { - "accessToken": "ABC..." - } - }, - "metadata": { - "secret": { - "access_token": "ABC" - } - } - }, - "output": { - "error": "Message Type is not present. Aborting message." - } - }, - { - "description": "Unsupported Event type", - "input": { - "message": { - "channel": "web", - "context": { - "traits": { - "age": 23, - "email": "adc@test.com", - "firstname": "Test", - "birthday": "2022-05-13T12:51:01.470Z" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "event": "Product Searched", - "type": "identify", - "originalTimestamp": "2020-09-22T14:42:44.724Z", - "timestamp": "2022-09-22T20:12:44.757+05:30", - "userId": "user@1" - }, - "destination": { - "Config": { - "accessToken": "ABC..." - } - } - }, - "output": { - "error": "Message type identify not supported." - } - }, - { - "description": "Event is not mapped with standard event", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.2" - }, - "traits": { - "abc": "1234" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.2" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/tests/html/ecomm_test.html", - "referrer": "http://0.0.0.0:1112/tests/html/", - "search": "", - "title": "Fb Offline Conversion Ecommerce Test", - "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" - } - }, - "type": "track", - "messageId": "9116b734-7e6b-4497-ab51-c16744d4487e", - "originalTimestamp": "2022-09-21T12:05:19.394Z", - "userId": "user@1", - "event": "product searched", - "properties": { - "order_id": "5241735", - "value": 31.98, - "revenue": 31.98, - "shipping": 4, - "coupon": "APPARELSALE", - "currency": "GBP", - "products": [ - { - "id": "product-bacon-jam", - "category": "Merch", - "brand": "" - }, - { - "id": "product-t-shirt", - "category": "Merch", - "brand": "Levis" - }, - { - "id": "offer-t-shirt", - "category": "Merch", - "brand": "Levis" - } - ] - } - }, - "destination": { - "Config": { - "accessToken": "ABC...", - "valueFieldIdentifier": "properties.price", - "eventsToStandard": [ - { "from": "Product Searched", "to": "Search" }, - { "to": "ViewContent", "from": "Product Viewed" }, - { "to": "AddToCart", "from": "Cart Checkout" }, - { "to": "AddPaymentInfo", "from": "Card Details Added" }, - { "to": "Lead", "from": "Order Completed" }, - { "to": "CompleteRegistration", "from": "Signup" }, - { "to": "AddToWishlist", "from": "Button Clicked" } - ], - "eventsToIds": [ - { "from": "Search", "to": "582603376981640" }, - { "from": "Search", "to": "506289934669334" }, - { "from": "ViewContent", "to": "1166826033904512" }, - { "from": "AddToCart", "to": "1148872185708962" }, - { "from": "CompleteRegistration", "to": "597443908839411" }, - { "from": "Lead", "to": "1024592094903800" }, - { "from": "AddToWishlist", "to": "506289934669334" } - ] - } - } - }, - "output": { - "error": "Please Map Your Standard Events With Event Set Ids" - } - }, - { - "description": "Standard event is not mapped with event set id", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.2" - }, - "traits": { - "abc": "1234" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.2" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/tests/html/ecomm_test.html", - "referrer": "http://0.0.0.0:1112/tests/html/", - "search": "", - "title": "Fb Offline Conversion Ecommerce Test", - "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" - } - }, - "type": "track", - "messageId": "9116b734-7e6b-4497-ab51-c16744d4487e", - "originalTimestamp": "2022-09-21T12:05:19.394Z", - "userId": "user@1", - "event": "Button Clicked", - "properties": { - "order_id": "5241735", - "value": 31.98, - "revenue": 31.98, - "shipping": 4, - "coupon": "APPARELSALE", - "currency": "GBP", - "products": [ - { - "id": "product-bacon-jam", - "category": "Merch", - "brand": "" - }, - { - "id": "product-t-shirt", - "category": "Merch", - "brand": "Levis" - }, - { - "id": "offer-t-shirt", - "category": "Merch", - "brand": "Levis" - } - ] - } - }, - "destination": { - "Config": { - "accessToken": "ABC...", - "valueFieldIdentifier": "properties.price", - "eventsToStandard": [ - { "from": "Product Searched", "to": "Search" }, - { "to": "ViewContent", "from": "Product Viewed" }, - { "to": "AddToCart", "from": "Cart Checkout" }, - { "to": "AddPaymentInfo", "from": "Card Details Added" }, - { "to": "Lead", "from": "Order Completed" }, - { "to": "CompleteRegistration", "from": "Signup" }, - { "to": "AddToWishlist", "from": "Button Clicked" } - ], - "eventsToIds": [ - { "from": "Search", "to": "582603376981640" }, - { "from": "Search", "to": "506289934669334" }, - { "from": "ViewContent", "to": "1166826033904512" }, - { "from": "AddToCart", "to": "1148872185708962" }, - { "from": "CompleteRegistration", "to": "597443908839411" }, - { "from": "Lead", "to": "1024592094903800" } - ] - } - } - }, - "output": { - "error": "Please Map Your Standard Events With Event Set Ids" - } - }, - { - "description": "Track Call With 1:1 Mapping", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.2" - }, - "traits": { - "email": "test@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.2" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/tests/html/ecomm_test.html", - "referrer": "http://0.0.0.0:1112/tests/html/", - "search": "", - "title": "Fb Offline Conversion Ecommerce Test", - "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" - } - }, - "type": "track", - "messageId": "9116b734-7e6b-4497-ab51-c16744d4487e", - "originalTimestamp": "2022-09-21T12:05:19.394Z", - "userId": "user@1", - "event": "Product Viewed", - "properties": { - "order_id": "5241735", - "value": 31.98, - "revenue": 31.98, - "shipping": 4, - "coupon": "APPARELSALE", - "currency": "GBP", - "products": [ - { - "id": "product-bacon-jam", - "category": "Merch", - "brand": "" - }, - { - "id": "product-t-shirt", - "category": "Merch", - "brand": "Levis" - }, - { - "id": "offer-t-shirt", - "category": "Merch", - "brand": "Levis" - } - ] - } - }, - "destination": { - "Config": { - "accessToken": "ABC...", - "valueFieldIdentifier": "properties.price", - "eventsToStandard": [ - { "from": "Product Searched", "to": "Search" }, - { "to": "ViewContent", "from": "Product Viewed" }, - { "to": "AddToCart", "from": "Cart Checkout" }, - { "to": "AddPaymentInfo", "from": "Card Details Added" }, - { "to": "Lead", "from": "Order Completed" }, - { "to": "CompleteRegistration", "from": "Signup" }, - { "to": "AddToWishlist", "from": "Button Clicked" } - ], - "eventsToIds": [ - { "from": "Search", "to": "582603376981640" }, - { "from": "Search", "to": "506289934669334" }, - { "from": "ViewContent", "to": "1166826033904512" }, - { "from": "AddToCart", "to": "1148872185708962" }, - { "from": "CompleteRegistration", "to": "597443908839411" }, - { "from": "Lead", "to": "1024592094903800" } - ], - "isHashRequired": true - } - } - }, - "output": [ - { - "access_token": "ABC...", - "data": "[{\"match_keys\":{\"extern_id\":\"user@1\",\"email\":[\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\"],\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\"},\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"order_id\":\"5241735\",\"contents\":[{\"id\":\"product-bacon-jam\",\"quantity\":1,\"brand\":\"\",\"category\":\"Merch\"},{\"id\":\"product-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"},{\"id\":\"offer-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"}],\"custom_data\":{\"extern_id\":\"user@1\",\"event_name\":\"Product Viewed\",\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"email\":\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\",\"contents\":[{\"id\":\"product-bacon-jam\",\"category\":\"Merch\",\"brand\":\"\"},{\"id\":\"product-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"},{\"id\":\"offer-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"}],\"order_id\":\"5241735\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\",\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"shipping\":4,\"coupon\":\"APPARELSALE\"},\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"event_name\":\"ViewContent\",\"content_type\":\"product\"}]", - "upload_tag": "rudderstack" - } - ] - }, - { - "description": "Track Call With 1:M Mapping", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.2" - }, - "traits": { - "email": "test@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.2" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/tests/html/ecomm_test.html", - "referrer": "http://0.0.0.0:1112/tests/html/", - "search": "", - "title": "Fb Offline Conversion Ecommerce Test", - "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" - } - }, - "type": "track", - "messageId": "9116b734-7e6b-4497-ab51-c16744d4487e", - "originalTimestamp": "2022-09-21T12:05:19.394Z", - "userId": "user@1", - "event": "Product Searched", - "properties": { - "order_id": "5241735", - "value": 31.98, - "revenue": 31.98, - "shipping": 4, - "coupon": "APPARELSALE", - "currency": "GBP", - "products": [ - { - "id": "product-bacon-jam", - "category": "Merch", - "brand": "" - }, - { - "id": "product-t-shirt", - "category": "Merch", - "brand": "Levis" - }, - { - "id": "offer-t-shirt", - "category": "Merch", - "brand": "Levis" - } - ] - } - }, - "destination": { - "Config": { - "accessToken": "ABC...", - "valueFieldIdentifier": "properties.price", - "eventsToStandard": [ - { "from": "Product Searched", "to": "Search" }, - { "to": "ViewContent", "from": "Product Viewed" }, - { "to": "AddToCart", "from": "Cart Checkout" }, - { "to": "AddPaymentInfo", "from": "Card Details Added" }, - { "to": "Lead", "from": "Order Completed" }, - { "to": "CompleteRegistration", "from": "Signup" }, - { "to": "AddToWishlist", "from": "Button Clicked" } - ], - "eventsToIds": [ - { "from": "Search", "to": "582603376981640" }, - { "from": "Search", "to": "506289934669334" }, - { "from": "ViewContent", "to": "1166826033904512" }, - { "from": "AddToCart", "to": "1148872185708962" }, - { "from": "CompleteRegistration", "to": "597443908839411" }, - { "from": "Lead", "to": "1024592094903800" } - ], - "isHashRequired": true - } - } - }, - "output": [ - { - "access_token": "ABC...", - "data": "[{\"match_keys\":{\"extern_id\":\"user@1\",\"email\":[\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\"],\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\"},\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"order_id\":\"5241735\",\"contents\":[{\"id\":\"product-bacon-jam\",\"quantity\":1,\"brand\":\"\",\"category\":\"Merch\"},{\"id\":\"product-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"},{\"id\":\"offer-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"}],\"custom_data\":{\"extern_id\":\"user@1\",\"event_name\":\"Product Searched\",\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"email\":\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\",\"contents\":[{\"id\":\"product-bacon-jam\",\"category\":\"Merch\",\"brand\":\"\"},{\"id\":\"product-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"},{\"id\":\"offer-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"}],\"order_id\":\"5241735\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\",\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"shipping\":4,\"coupon\":\"APPARELSALE\"},\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"event_name\":\"Search\",\"content_type\":\"product\"}]", - "upload_tag": "rudderstack" - }, - { - "access_token": "ABC...", - "data": "[{\"match_keys\":{\"extern_id\":\"user@1\",\"email\":[\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\"],\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\"},\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"order_id\":\"5241735\",\"contents\":[{\"id\":\"product-bacon-jam\",\"quantity\":1,\"brand\":\"\",\"category\":\"Merch\"},{\"id\":\"product-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"},{\"id\":\"offer-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"}],\"custom_data\":{\"extern_id\":\"user@1\",\"event_name\":\"Product Searched\",\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"email\":\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\",\"contents\":[{\"id\":\"product-bacon-jam\",\"category\":\"Merch\",\"brand\":\"\"},{\"id\":\"product-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"},{\"id\":\"offer-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"}],\"order_id\":\"5241735\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\",\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"shipping\":4,\"coupon\":\"APPARELSALE\"},\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"event_name\":\"Search\",\"content_type\":\"product\"}]", - "upload_tag": "rudderstack" - } - ] - }, - { - "description": "Track Call With Multiplexing", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.2" - }, - "traits": { - "email": "test@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.2" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/tests/html/ecomm_test.html", - "referrer": "http://0.0.0.0:1112/tests/html/", - "search": "", - "title": "Fb Offline Conversion Ecommerce Test", - "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" - } - }, - "type": "track", - "messageId": "9116b734-7e6b-4497-ab51-c16744d4487e", - "originalTimestamp": "2022-09-21T12:05:19.394Z", - "userId": "user@1", - "event": "Product Searched", - "properties": { - "order_id": "5241735", - "value": 31.98, - "revenue": 31.98, - "shipping": 4, - "coupon": "APPARELSALE", - "currency": "GBP", - "products": [ - { - "id": "product-bacon-jam", - "category": "Merch", - "brand": "" - }, - { - "id": "product-t-shirt", - "category": "Merch", - "brand": "Levis" - }, - { - "id": "offer-t-shirt", - "category": "Merch", - "brand": "Levis" - } - ] - } - }, - "destination": { - "Config": { - "accessToken": "ABC...", - "valueFieldIdentifier": "properties.price", - "eventsToStandard": [ - { "from": "Product Searched", "to": "Search" }, - { "to": "ViewContent", "from": "Product Searched" }, - { "to": "AddToCart", "from": "Cart Checkout" }, - { "to": "AddPaymentInfo", "from": "Card Details Added" }, - { "to": "Lead", "from": "Order Completed" }, - { "to": "CompleteRegistration", "from": "Signup" }, - { "to": "AddToWishlist", "from": "Button Clicked" } - ], - "eventsToIds": [ - { "from": "Search", "to": "582603376981640" }, - { "from": "Search", "to": "506289934669334" }, - { "from": "ViewContent", "to": "1166826033904512" }, - { "from": "AddToCart", "to": "1148872185708962" }, - { "from": "CompleteRegistration", "to": "597443908839411" }, - { "from": "Lead", "to": "1024592094903800" } - ], - "isHashRequired": true - } - } - }, - "output": [ - { - "access_token": "ABC...", - "data": "[{\"match_keys\":{\"extern_id\":\"user@1\",\"email\":[\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\"],\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\"},\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"order_id\":\"5241735\",\"contents\":[{\"id\":\"product-bacon-jam\",\"quantity\":1,\"brand\":\"\",\"category\":\"Merch\"},{\"id\":\"product-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"},{\"id\":\"offer-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"}],\"custom_data\":{\"extern_id\":\"user@1\",\"event_name\":\"Product Searched\",\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"email\":\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\",\"contents\":[{\"id\":\"product-bacon-jam\",\"category\":\"Merch\",\"brand\":\"\"},{\"id\":\"product-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"},{\"id\":\"offer-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"}],\"order_id\":\"5241735\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\",\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"shipping\":4,\"coupon\":\"APPARELSALE\"},\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"event_name\":\"ViewContent\",\"content_type\":\"product\"}]", - "upload_tag": "rudderstack" - }, - { - "access_token": "ABC...", - "data": "[{\"match_keys\":{\"extern_id\":\"user@1\",\"email\":[\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\"],\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\"},\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"order_id\":\"5241735\",\"contents\":[{\"id\":\"product-bacon-jam\",\"quantity\":1,\"brand\":\"\",\"category\":\"Merch\"},{\"id\":\"product-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"},{\"id\":\"offer-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"}],\"custom_data\":{\"extern_id\":\"user@1\",\"event_name\":\"Product Searched\",\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"email\":\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\",\"contents\":[{\"id\":\"product-bacon-jam\",\"category\":\"Merch\",\"brand\":\"\"},{\"id\":\"product-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"},{\"id\":\"offer-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"}],\"order_id\":\"5241735\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\",\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"shipping\":4,\"coupon\":\"APPARELSALE\"},\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"event_name\":\"ViewContent\",\"content_type\":\"product\"}]", - "upload_tag": "rudderstack" - }, - { - "access_token": "ABC...", - "data": "[{\"match_keys\":{\"extern_id\":\"user@1\",\"email\":[\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\"],\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\"},\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"order_id\":\"5241735\",\"contents\":[{\"id\":\"product-bacon-jam\",\"quantity\":1,\"brand\":\"\",\"category\":\"Merch\"},{\"id\":\"product-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"},{\"id\":\"offer-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"}],\"custom_data\":{\"extern_id\":\"user@1\",\"event_name\":\"Product Searched\",\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"email\":\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\",\"contents\":[{\"id\":\"product-bacon-jam\",\"category\":\"Merch\",\"brand\":\"\"},{\"id\":\"product-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"},{\"id\":\"offer-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"}],\"order_id\":\"5241735\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\",\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"shipping\":4,\"coupon\":\"APPARELSALE\"},\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"event_name\":\"ViewContent\",\"content_type\":\"product\"}]", - "upload_tag": "rudderstack" - } - ] - }, - { - "description": "Track Call With Different Upload Tag And Multiplexing", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.2" - }, - "traits": { - "email": "test@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.2" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/tests/html/ecomm_test.html", - "referrer": "http://0.0.0.0:1112/tests/html/", - "search": "", - "title": "Fb Offline Conversion Ecommerce Test", - "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" - } - }, - "type": "track", - "messageId": "9116b734-7e6b-4497-ab51-c16744d4487e", - "originalTimestamp": "2022-09-21T12:05:19.394Z", - "userId": "user@1", - "event": "Product Searched", - "properties": { - "upload_tag": "test campaign", - "order_id": "5241735", - "value": 31.98, - "revenue": 31.98, - "shipping": 4, - "coupon": "APPARELSALE", - "currency": "GBP", - "products": [ - { - "id": "product-bacon-jam", - "category": "Merch", - "brand": "" - }, - { - "id": "product-t-shirt", - "category": "Merch", - "brand": "Levis" - }, - { - "id": "offer-t-shirt", - "category": "Merch", - "brand": "Levis" - } - ] - } - }, - "destination": { - "Config": { - "accessToken": "ABC...", - "valueFieldIdentifier": "properties.price", - "eventsToStandard": [ - { "from": "Product Searched", "to": "Search" }, - { "to": "ViewContent", "from": "Product Searched" }, - { "to": "AddToCart", "from": "Cart Checkout" }, - { "to": "AddPaymentInfo", "from": "Card Details Added" }, - { "to": "Lead", "from": "Order Completed" }, - { "to": "CompleteRegistration", "from": "Signup" }, - { "to": "AddToWishlist", "from": "Button Clicked" } - ], - "eventsToIds": [ - { "from": "Search", "to": "582603376981640" }, - { "from": "Search", "to": "506289934669334" }, - { "from": "ViewContent", "to": "1166826033904512" }, - { "from": "AddToCart", "to": "1148872185708962" }, - { "from": "CompleteRegistration", "to": "597443908839411" }, - { "from": "Lead", "to": "1024592094903800" } - ], - "isHashRequired": true - } - } - }, - "output": [ - { - "access_token": "ABC...", - "data": "[{\"match_keys\":{\"extern_id\":\"user@1\",\"email\":[\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\"],\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\"},\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"order_id\":\"5241735\",\"contents\":[{\"id\":\"product-bacon-jam\",\"quantity\":1,\"brand\":\"\",\"category\":\"Merch\"},{\"id\":\"product-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"},{\"id\":\"offer-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"}],\"custom_data\":{\"extern_id\":\"user@1\",\"event_name\":\"Product Searched\",\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"email\":\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\",\"contents\":[{\"id\":\"product-bacon-jam\",\"category\":\"Merch\",\"brand\":\"\"},{\"id\":\"product-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"},{\"id\":\"offer-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"}],\"order_id\":\"5241735\",\"upload_tag\":\"test campaign\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\",\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"shipping\":4,\"coupon\":\"APPARELSALE\"},\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"event_name\":\"ViewContent\",\"content_type\":\"product\"}]", - "upload_tag": "test campaign" - }, - { - "access_token": "ABC...", - "data": "[{\"match_keys\":{\"extern_id\":\"user@1\",\"email\":[\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\"],\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\"},\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"order_id\":\"5241735\",\"contents\":[{\"id\":\"product-bacon-jam\",\"quantity\":1,\"brand\":\"\",\"category\":\"Merch\"},{\"id\":\"product-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"},{\"id\":\"offer-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"}],\"custom_data\":{\"extern_id\":\"user@1\",\"event_name\":\"Product Searched\",\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"email\":\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\",\"contents\":[{\"id\":\"product-bacon-jam\",\"category\":\"Merch\",\"brand\":\"\"},{\"id\":\"product-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"},{\"id\":\"offer-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"}],\"order_id\":\"5241735\",\"upload_tag\":\"test campaign\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\",\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"shipping\":4,\"coupon\":\"APPARELSALE\"},\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"event_name\":\"ViewContent\",\"content_type\":\"product\"}]", - "upload_tag": "test campaign" - }, - { - "access_token": "ABC...", - "data": "[{\"match_keys\":{\"extern_id\":\"user@1\",\"email\":[\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\"],\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\"},\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"order_id\":\"5241735\",\"contents\":[{\"id\":\"product-bacon-jam\",\"quantity\":1,\"brand\":\"\",\"category\":\"Merch\"},{\"id\":\"product-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"},{\"id\":\"offer-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"}],\"custom_data\":{\"extern_id\":\"user@1\",\"event_name\":\"Product Searched\",\"event_time\":1663761919,\"currency\":\"GBP\",\"value\":31.98,\"email\":\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\",\"contents\":[{\"id\":\"product-bacon-jam\",\"category\":\"Merch\",\"brand\":\"\"},{\"id\":\"product-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"},{\"id\":\"offer-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"}],\"order_id\":\"5241735\",\"upload_tag\":\"test campaign\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\",\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"shipping\":4,\"coupon\":\"APPARELSALE\"},\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"event_name\":\"ViewContent\",\"content_type\":\"product\"}]", - "upload_tag": "test campaign" - } - ] - }, - { - "description": "Track Call With All Possible Traits", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.2" - }, - "traits": { - "email": "test@rudderlabs.com", - "birthday": "2005-01-01T23:28:56.782Z", - "firstName": "test", - "name": "test rudderlabs", - "address": { - "city": "kalkata", - "state": "west bangal", - "country": "india", - "zip": "123456" - }, - "phone": "9886775586", - "gender": "male" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.2" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/tests/html/ecomm_test.html", - "referrer": "http://0.0.0.0:1112/tests/html/", - "search": "", - "title": "Fb Offline Conversion Ecommerce Test", - "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" - }, - "device": { - "advertisingId": "apple@123" - } - }, - "type": "track", - "messageId": "9116b734-7e6b-4497-ab51-c16744d4487e", - "originalTimestamp": "2022-09-21T12:05:19.394Z", - "userId": "user@1", - "event": "Cart Checkout", - "properties": { - "upload_tag": "test campaign", - "order_id": "485893487985894998", - "value": 100, - "revenue": 31.98, - "shipping": 4, - "coupon": "APPARELSALE", - "currency": "IND", - "products": [ - { - "id": "product-bacon-jam", - "category": "Merch", - "brand": "" - }, - { - "id": "product-t-shirt", - "category": "Merch", - "brand": "Levis" - }, - { - "id": "offer-t-shirt", - "category": "Merch", - "brand": "Levis" - } - ] - } - }, - "destination": { - "Config": { - "accessToken": "ABC...", - "valueFieldIdentifier": "properties.price", - "eventsToStandard": [ - { "from": "Product Searched", "to": "Search" }, - { "to": "ViewContent", "from": "Product Searched" }, - { "to": "AddToCart", "from": "Cart Checkout" }, - { "to": "AddPaymentInfo", "from": "Card Details Added" }, - { "to": "Lead", "from": "Order Completed" }, - { "to": "CompleteRegistration", "from": "Signup" }, - { "to": "AddToWishlist", "from": "Button Clicked" } - ], - "eventsToIds": [ - { "from": "Search", "to": "582603376981640" }, - { "from": "Search", "to": "506289934669334" }, - { "from": "ViewContent", "to": "1166826033904512" }, - { "from": "AddToCart", "to": "1148872185708962" }, - { "from": "CompleteRegistration", "to": "597443908839411" }, - { "from": "Lead", "to": "1024592094903800" } - ], - "isHashRequired": true - } - } - }, - "output": [ - { - "access_token": "ABC...", - "data": "[{\"match_keys\":{\"doby\":\"f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6\",\"dobm\":\"f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6\",\"dobd\":\"f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6\",\"extern_id\":\"user@1\",\"email\":[\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\"],\"phone\":[\"74a39482392f83119041d571d5dace439d315faea8214fe8e815c00261b80615\"],\"gen\":\"0d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf\",\"fn\":\"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08\",\"ct\":\"375aba919c30870659093b7ddcf6045ff7a8624dd4dba49ced8981bd4d0666e0\",\"zip\":[\"8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92\"],\"madid\":\"c20fa16907343eef642d10f0bdb81bf629e6aaf6c906f26eabda079ca9e5ab67\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\",\"ln\":\"dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251\"},\"event_time\":1663761919,\"currency\":\"IND\",\"value\":100,\"order_id\":\"485893487985894998\",\"contents\":[{\"id\":\"product-bacon-jam\",\"quantity\":1,\"brand\":\"\",\"category\":\"Merch\"},{\"id\":\"product-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"},{\"id\":\"offer-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"}],\"custom_data\":{\"extern_id\":\"user@1\",\"event_name\":\"Cart Checkout\",\"event_time\":1663761919,\"currency\":\"IND\",\"value\":100,\"email\":\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\",\"phone\":\"74a39482392f83119041d571d5dace439d315faea8214fe8e815c00261b80615\",\"gen\":\"0d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf\",\"fn\":\"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08\",\"ct\":\"375aba919c30870659093b7ddcf6045ff7a8624dd4dba49ced8981bd4d0666e0\",\"zip\":\"8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92\",\"madid\":\"c20fa16907343eef642d10f0bdb81bf629e6aaf6c906f26eabda079ca9e5ab67\",\"contents\":[{\"id\":\"product-bacon-jam\",\"category\":\"Merch\",\"brand\":\"\"},{\"id\":\"product-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"},{\"id\":\"offer-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"}],\"order_id\":\"485893487985894998\",\"upload_tag\":\"test campaign\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\",\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"ln\":\"dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251\",\"shipping\":4,\"coupon\":\"APPARELSALE\"},\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"event_name\":\"AddToCart\",\"content_type\":\"product\"}]", - "upload_tag": "test campaign" - } - ] - }, - { - "description": "Track Call with hashing is disabled", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.2" - }, - "traits": { - "email": "test@rudderlabs.com", - "birthday": "2005-01-01T23:28:56.782Z", - "firstName": "test", - "name": "test rudderlabs", - "address": { - "city": "kalkata", - "state": "west bangal", - "country": "india", - "zip": "123456" - }, - "phone": "9886775586", - "gender": "male" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.2" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/tests/html/ecomm_test.html", - "referrer": "http://0.0.0.0:1112/tests/html/", - "search": "", - "title": "Fb Offline Conversion Ecommerce Test", - "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" - }, - "device": { - "advertisingId": "apple@123" - } - }, - "type": "track", - "messageId": "9116b734-7e6b-4497-ab51-c16744d4487e", - "originalTimestamp": "2022-09-21T12:05:19.394Z", - "userId": "user@1", - "event": "Cart Checkout", - "properties": { - "upload_tag": "test campaign", - "order_id": "485893487985894998", - "value": 100, - "revenue": 31.98, - "shipping": 4, - "coupon": "APPARELSALE", - "currency": "IND", - "products": [ - { - "id": "product-bacon-jam", - "category": "Merch", - "brand": "" - }, - { - "id": "product-t-shirt", - "category": "Merch", - "brand": "Levis" - }, - { - "id": "offer-t-shirt", - "category": "Merch", - "brand": "Levis" - } - ] - } - }, - "destination": { - "Config": { - "accessToken": "ABC...", - "valueFieldIdentifier": "properties.price", - "eventsToStandard": [ - { "from": "Product Searched", "to": "Search" }, - { "to": "ViewContent", "from": "Product Searched" }, - { "to": "AddToCart", "from": "Cart Checkout" }, - { "to": "AddPaymentInfo", "from": "Card Details Added" }, - { "to": "Lead", "from": "Order Completed" }, - { "to": "CompleteRegistration", "from": "Signup" }, - { "to": "AddToWishlist", "from": "Button Clicked" } - ], - "eventsToIds": [ - { "from": "Search", "to": "582603376981640" }, - { "from": "Search", "to": "506289934669334" }, - { "from": "ViewContent", "to": "1166826033904512" }, - { "from": "AddToCart", "to": "1148872185708962" }, - { "from": "CompleteRegistration", "to": "597443908839411" }, - { "from": "Lead", "to": "1024592094903800" } - ], - "isHashRequired": false - } - } - }, - "output": [ - { - "access_token": "ABC...", - "data": "[{\"match_keys\":{\"doby\":\"f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6\",\"dobm\":\"f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6\",\"dobd\":\"f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6\",\"extern_id\":\"user@1\",\"email\":[\"test@rudderlabs.com\"],\"phone\":[\"9886775586\"],\"gen\":\"male\",\"fn\":\"test\",\"ct\":\"kalkata\",\"zip\":[\"123456\"],\"madid\":\"apple@123\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\",\"ln\":\"rudderlabs\"},\"event_time\":1663761919,\"currency\":\"IND\",\"value\":100,\"order_id\":\"485893487985894998\",\"contents\":[{\"id\":\"product-bacon-jam\",\"quantity\":1,\"brand\":\"\",\"category\":\"Merch\"},{\"id\":\"product-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"},{\"id\":\"offer-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"}],\"custom_data\":{\"extern_id\":\"user@1\",\"event_name\":\"Cart Checkout\",\"event_time\":1663761919,\"currency\":\"IND\",\"value\":100,\"email\":\"test@rudderlabs.com\",\"phone\":\"9886775586\",\"gen\":\"male\",\"fn\":\"test\",\"ct\":\"kalkata\",\"zip\":\"123456\",\"madid\":\"apple@123\",\"contents\":[{\"id\":\"product-bacon-jam\",\"category\":\"Merch\",\"brand\":\"\"},{\"id\":\"product-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"},{\"id\":\"offer-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"}],\"order_id\":\"485893487985894998\",\"upload_tag\":\"test campaign\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\",\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"ln\":\"rudderlabs\",\"shipping\":4,\"coupon\":\"APPARELSALE\"},\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"event_name\":\"AddToCart\",\"content_type\":\"product\"}]", - "upload_tag": "test campaign" - } - ] - }, - { - "description": "Track Call with custom content type", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.2" - }, - "traits": { - "email": "test@rudderlabs.com", - "birthday": "2005-01-01T23:28:56.782Z", - "firstName": "test", - "name": "test rudderlabs", - "address": { - "city": "kalkata", - "state": "west bangal", - "country": "india", - "zip": "123456" - }, - "phone": "9886775586", - "gender": "male" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.2" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/tests/html/ecomm_test.html", - "referrer": "http://0.0.0.0:1112/tests/html/", - "search": "", - "title": "Fb Offline Conversion Ecommerce Test", - "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" - }, - "device": { - "advertisingId": "apple@123" - } - }, - "integrations": { - "FacebookOfflineConversions": { - "contentType": "e-commerce" - } - }, - "type": "track", - "messageId": "9116b734-7e6b-4497-ab51-c16744d4487e", - "originalTimestamp": "2022-09-21T12:05:19.394Z", - "userId": "user@1", - "event": "Cart Checkout", - "properties": { - "upload_tag": "test campaign", - "order_id": "485893487985894998", - "value": 100, - "revenue": 31.98, - "shipping": 4, - "coupon": "APPARELSALE", - "currency": "IND", - "products": [ - { - "id": "product-bacon-jam", - "category": "Merch", - "brand": "" - }, - { - "id": "product-t-shirt", - "category": "Merch", - "brand": "Levis" - }, - { - "id": "offer-t-shirt", - "category": "Merch", - "brand": "Levis" - } - ] - } - }, - "destination": { - "Config": { - "accessToken": "ABC...", - "valueFieldIdentifier": "properties.price", - "eventsToStandard": [ - { "from": "Product Searched", "to": "Search" }, - { "to": "ViewContent", "from": "Product Searched" }, - { "to": "AddToCart", "from": "Cart Checkout" }, - { "to": "AddPaymentInfo", "from": "Card Details Added" }, - { "to": "Lead", "from": "Order Completed" }, - { "to": "CompleteRegistration", "from": "Signup" }, - { "to": "AddToWishlist", "from": "Button Clicked" } - ], - "eventsToIds": [ - { "from": "Search", "to": "582603376981640" }, - { "from": "Search", "to": "506289934669334" }, - { "from": "ViewContent", "to": "1166826033904512" }, - { "from": "AddToCart", "to": "1148872185708962" }, - { "from": "CompleteRegistration", "to": "597443908839411" }, - { "from": "Lead", "to": "1024592094903800" } - ], - "categoryToContent": [{ "from": "", "to": "" }], - "isHashRequired": true - } - } - }, - "output": [ - { - "access_token": "ABC...", - "data": "[{\"match_keys\":{\"doby\":\"f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6\",\"dobm\":\"f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6\",\"dobd\":\"f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6\",\"extern_id\":\"user@1\",\"email\":[\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\"],\"phone\":[\"74a39482392f83119041d571d5dace439d315faea8214fe8e815c00261b80615\"],\"gen\":\"0d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf\",\"fn\":\"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08\",\"ct\":\"375aba919c30870659093b7ddcf6045ff7a8624dd4dba49ced8981bd4d0666e0\",\"zip\":[\"8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92\"],\"madid\":\"c20fa16907343eef642d10f0bdb81bf629e6aaf6c906f26eabda079ca9e5ab67\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\",\"ln\":\"dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251\"},\"event_time\":1663761919,\"currency\":\"IND\",\"value\":100,\"order_id\":\"485893487985894998\",\"contents\":[{\"id\":\"product-bacon-jam\",\"quantity\":1,\"brand\":\"\",\"category\":\"Merch\"},{\"id\":\"product-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"},{\"id\":\"offer-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"}],\"custom_data\":{\"extern_id\":\"user@1\",\"event_name\":\"Cart Checkout\",\"event_time\":1663761919,\"currency\":\"IND\",\"value\":100,\"email\":\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\",\"phone\":\"74a39482392f83119041d571d5dace439d315faea8214fe8e815c00261b80615\",\"gen\":\"0d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf\",\"fn\":\"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08\",\"ct\":\"375aba919c30870659093b7ddcf6045ff7a8624dd4dba49ced8981bd4d0666e0\",\"zip\":\"8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92\",\"madid\":\"c20fa16907343eef642d10f0bdb81bf629e6aaf6c906f26eabda079ca9e5ab67\",\"contents\":[{\"id\":\"product-bacon-jam\",\"category\":\"Merch\",\"brand\":\"\"},{\"id\":\"product-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"},{\"id\":\"offer-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"}],\"order_id\":\"485893487985894998\",\"upload_tag\":\"test campaign\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\",\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"ln\":\"dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251\",\"shipping\":4,\"coupon\":\"APPARELSALE\"},\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"event_name\":\"AddToCart\",\"content_type\":\"e-commerce\"}]", - "upload_tag": "test campaign" - } - ] - } -] diff --git a/test/__tests__/data/facebook_offline_conversions_router.json b/test/__tests__/data/facebook_offline_conversions_router.json deleted file mode 100644 index 41246a0beb9..00000000000 --- a/test/__tests__/data/facebook_offline_conversions_router.json +++ /dev/null @@ -1,460 +0,0 @@ -[ - { - "description": "Router Test Case 1", - "input": [ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.2" - }, - "traits": { - "abc": "1234" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.2" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/tests/html/ecomm_test.html", - "referrer": "http://0.0.0.0:1112/tests/html/", - "search": "", - "title": "Fb Offline Conversion Ecommerce Test", - "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" - } - }, - "type": "track", - "messageId": "9116b734-7e6b-4497-ab51-c16744d4487e", - "originalTimestamp": "2022-09-21T12:05:19.394Z", - "userId": "user@1", - "event": "product searched", - "properties": { - "order_id": "5241735", - "value": 31.98, - "revenue": 31.98, - "shipping": 4, - "coupon": "APPARELSALE", - "currency": "GBP", - "products": [ - { - "id": "product-bacon-jam", - "category": "Merch", - "brand": "" - }, - { - "id": "product-t-shirt", - "category": "Merch", - "brand": "Levis" - }, - { - "id": "offer-t-shirt", - "category": "Merch", - "brand": "Levis" - } - ] - } - }, - "metadata": { - "jobId": 1 - }, - "destination": { - "Config": { - "accessToken": "ABC...", - "valueFieldIdentifier": "properties.price", - "eventsToStandard": [ - { "from": "Product Searched", "to": "Search" }, - { "to": "ViewContent", "from": "Product Viewed" }, - { "to": "AddToCart", "from": "Cart Checkout" }, - { "to": "AddPaymentInfo", "from": "Card Details Added" }, - { "to": "Lead", "from": "Order Completed" }, - { "to": "CompleteRegistration", "from": "Signup" }, - { "to": "AddToWishlist", "from": "Button Clicked" } - ], - "eventsToIds": [ - { "from": "Search", "to": "582603376981640" }, - { "from": "Search", "to": "506289934669334" }, - { "from": "ViewContent", "to": "1166826033904512" }, - { "from": "AddToCart", "to": "1148872185708962" }, - { "from": "CompleteRegistration", "to": "597443908839411" }, - { "from": "Lead", "to": "1024592094903800" }, - { "from": "AddToWishlist", "to": "506289934669334" } - ], - "isHashRequired": true - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.2" - }, - "traits": { - "abc": "1234" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.2" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/tests/html/ecomm_test.html", - "referrer": "http://0.0.0.0:1112/tests/html/", - "search": "", - "title": "Fb Offline Conversion Ecommerce Test", - "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" - } - }, - "type": "track", - "messageId": "9116b734-7e6b-4497-ab51-c16744d4487e", - "originalTimestamp": "2022-09-21T12:05:19.394Z", - "userId": "user@1", - "event": "Button Clicked", - "properties": { - "order_id": "5241735", - "value": 31.98, - "revenue": 31.98, - "shipping": 4, - "coupon": "APPARELSALE", - "currency": "GBP", - "products": [ - { - "id": "product-bacon-jam", - "category": "Merch", - "brand": "" - }, - { - "id": "product-t-shirt", - "category": "Merch", - "brand": "Levis" - }, - { - "id": "offer-t-shirt", - "category": "Merch", - "brand": "Levis" - } - ] - } - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "accessToken": "ABC...", - "valueFieldIdentifier": "properties.price", - "eventsToStandard": [ - { "from": "Product Searched", "to": "Search" }, - { "to": "ViewContent", "from": "Product Viewed" }, - { "to": "AddToCart", "from": "Cart Checkout" }, - { "to": "AddPaymentInfo", "from": "Card Details Added" }, - { "to": "Lead", "from": "Order Completed" }, - { "to": "CompleteRegistration", "from": "Signup" }, - { "to": "AddToWishlist", "from": "Button Clicked" } - ], - "eventsToIds": [ - { "from": "Search", "to": "582603376981640" }, - { "from": "Search", "to": "506289934669334" }, - { "from": "ViewContent", "to": "1166826033904512" }, - { "from": "AddToCart", "to": "1148872185708962" }, - { "from": "CompleteRegistration", "to": "597443908839411" }, - { "from": "Lead", "to": "1024592094903800" } - ], - "isHashRequired": true - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.2" - }, - "traits": { - "email": "test@rudderlabs.com", - "birthday": "2005-01-01T23:28:56.782Z", - "firstName": "test", - "lastName": "rudderstack", - "initial": { - "firstName": "rudderlabs" - }, - "address": { - "city": "kalkata", - "state": "west bangal", - "country": "india", - "zip": "123456" - }, - "phone": "9886775586", - "gender": "male" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.2" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/tests/html/ecomm_test.html", - "referrer": "http://0.0.0.0:1112/tests/html/", - "search": "", - "title": "Fb Offline Conversion Ecommerce Test", - "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" - }, - "device": { - "advertisingId": "apple@123" - } - }, - "type": "track", - "messageId": "9116b734-7e6b-4497-ab51-c16744d4487e", - "originalTimestamp": "2022-09-21T12:05:19.394Z", - "userId": "user@1", - "event": "Cart Checkout", - "properties": { - "upload_tag": "test campaign", - "order_id": "485893487985894998", - "value": 100, - "revenue": 31.98, - "shipping": 4, - "coupon": "APPARELSALE", - "currency": "IND", - "products": [ - { - "id": "product-bacon-jam", - "category": "Merch", - "brand": "" - }, - { - "id": "product-t-shirt", - "category": "Merch", - "brand": "Levis" - }, - { - "id": "offer-t-shirt", - "category": "Merch", - "brand": "Levis" - } - ] - } - }, - "metadata": { - "jobId": 3 - }, - "destination": { - "Config": { - "accessToken": "ABC...", - "valueFieldIdentifier": "properties.price", - "eventsToStandard": [ - { "from": "Product Searched", "to": "Search" }, - { - "to": "ViewContent", - "from": "Product Searched" - }, - { "to": "AddToCart", "from": "Cart Checkout" }, - { - "to": "AddPaymentInfo", - "from": "Card Details Added" - }, - { "to": "Lead", "from": "Order Completed" }, - { - "to": "CompleteRegistration", - "from": "Signup" - }, - { - "to": "AddToWishlist", - "from": "Button Clicked" - } - ], - "eventsToIds": [ - { "from": "Search", "to": "582603376981640" }, - { "from": "Search", "to": "506289934669334" }, - { - "from": "ViewContent", - "to": "1166826033904512" - }, - { "from": "AddToCart", "to": "1148872185708962" }, - { - "from": "CompleteRegistration", - "to": "597443908839411" - }, - { "from": "Lead", "to": "1024592094903800" } - ], - "isHashRequired": true - } - } - } - ], - "output": [ - { - "error": "Please Map Your Standard Events With Event Set Ids", - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statTags": { - "errorCategory": "dataValidation", - "errorType": "configuration" - }, - "statusCode": 400, - "destination": { - "Config": { - "accessToken": "ABC...", - "valueFieldIdentifier": "properties.price", - "eventsToStandard": [ - { "from": "Product Searched", "to": "Search" }, - { "to": "ViewContent", "from": "Product Viewed" }, - { "to": "AddToCart", "from": "Cart Checkout" }, - { "to": "AddPaymentInfo", "from": "Card Details Added" }, - { "to": "Lead", "from": "Order Completed" }, - { "to": "CompleteRegistration", "from": "Signup" }, - { "to": "AddToWishlist", "from": "Button Clicked" } - ], - "eventsToIds": [ - { "from": "Search", "to": "582603376981640" }, - { "from": "Search", "to": "506289934669334" }, - { "from": "ViewContent", "to": "1166826033904512" }, - { "from": "AddToCart", "to": "1148872185708962" }, - { "from": "CompleteRegistration", "to": "597443908839411" }, - { "from": "Lead", "to": "1024592094903800" }, - { "from": "AddToWishlist", "to": "506289934669334" } - ], - "isHashRequired": true - } - } - }, - { - "error": "Please Map Your Standard Events With Event Set Ids", - "metadata": [ - { - "jobId": 2 - } - ], - "statTags": { - "errorCategory": "dataValidation", - "errorType": "configuration" - }, - "batched": false, - "statusCode": 400, - "destination": { - "Config": { - "accessToken": "ABC...", - "valueFieldIdentifier": "properties.price", - "eventsToStandard": [ - { "from": "Product Searched", "to": "Search" }, - { "to": "ViewContent", "from": "Product Viewed" }, - { "to": "AddToCart", "from": "Cart Checkout" }, - { "to": "AddPaymentInfo", "from": "Card Details Added" }, - { "to": "Lead", "from": "Order Completed" }, - { "to": "CompleteRegistration", "from": "Signup" }, - { "to": "AddToWishlist", "from": "Button Clicked" } - ], - "eventsToIds": [ - { "from": "Search", "to": "582603376981640" }, - { "from": "Search", "to": "506289934669334" }, - { "from": "ViewContent", "to": "1166826033904512" }, - { "from": "AddToCart", "to": "1148872185708962" }, - { "from": "CompleteRegistration", "to": "597443908839411" }, - { "from": "Lead", "to": "1024592094903800" } - ], - "isHashRequired": true - } - } - }, - { - "metadata": [ - { - "jobId": 3 - } - ], - "data": [ - { - "access_token": "ABC...", - "data": "[{\"match_keys\":{\"doby\":\"f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6\",\"dobm\":\"f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6\",\"dobd\":\"f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6\",\"extern_id\":\"user@1\",\"email\":[\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\"],\"phone\":[\"74a39482392f83119041d571d5dace439d315faea8214fe8e815c00261b80615\"],\"gen\":\"0d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf\",\"ln\":\"7fb35d4777487797615cfa7c57724a47ba99152485600ccdb98e3871a6d05b21\",\"fn\":\"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08\",\"ct\":\"375aba919c30870659093b7ddcf6045ff7a8624dd4dba49ced8981bd4d0666e0\",\"zip\":[\"8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92\"],\"madid\":\"c20fa16907343eef642d10f0bdb81bf629e6aaf6c906f26eabda079ca9e5ab67\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\"},\"event_time\":1663761919,\"currency\":\"IND\",\"value\":100,\"order_id\":\"485893487985894998\",\"contents\":[{\"id\":\"product-bacon-jam\",\"quantity\":1,\"brand\":\"\",\"category\":\"Merch\"},{\"id\":\"product-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"},{\"id\":\"offer-t-shirt\",\"quantity\":1,\"brand\":\"Levis\",\"category\":\"Merch\"}],\"custom_data\":{\"extern_id\":\"user@1\",\"event_name\":\"Cart Checkout\",\"event_time\":1663761919,\"currency\":\"IND\",\"value\":100,\"email\":\"f188486df6078f7450a12507395d47d06ece9487125bd776fbf676446855571f\",\"phone\":\"74a39482392f83119041d571d5dace439d315faea8214fe8e815c00261b80615\",\"gen\":\"0d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf\",\"ln\":\"7fb35d4777487797615cfa7c57724a47ba99152485600ccdb98e3871a6d05b21\",\"fn\":\"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08\",\"ct\":\"375aba919c30870659093b7ddcf6045ff7a8624dd4dba49ced8981bd4d0666e0\",\"zip\":\"8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92\",\"madid\":\"c20fa16907343eef642d10f0bdb81bf629e6aaf6c906f26eabda079ca9e5ab67\",\"contents\":[{\"id\":\"product-bacon-jam\",\"category\":\"Merch\",\"brand\":\"\"},{\"id\":\"product-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"},{\"id\":\"offer-t-shirt\",\"category\":\"Merch\",\"brand\":\"Levis\"}],\"order_id\":\"485893487985894998\",\"upload_tag\":\"test campaign\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36\",\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"shipping\":4,\"coupon\":\"APPARELSALE\"},\"event_source_url\":\"http://0.0.0.0:1112/tests/html/ecomm_test.html\",\"event_name\":\"AddToCart\",\"content_type\":\"product\"}]", - "upload_tag": "test campaign" - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "accessToken": "ABC...", - "valueFieldIdentifier": "properties.price", - "eventsToStandard": [ - { "from": "Product Searched", "to": "Search" }, - { - "to": "ViewContent", - "from": "Product Searched" - }, - { "to": "AddToCart", "from": "Cart Checkout" }, - { - "to": "AddPaymentInfo", - "from": "Card Details Added" - }, - { "to": "Lead", "from": "Order Completed" }, - { - "to": "CompleteRegistration", - "from": "Signup" - }, - { - "to": "AddToWishlist", - "from": "Button Clicked" - } - ], - "eventsToIds": [ - { "from": "Search", "to": "582603376981640" }, - { "from": "Search", "to": "506289934669334" }, - { - "from": "ViewContent", - "to": "1166826033904512" - }, - { "from": "AddToCart", "to": "1148872185708962" }, - { - "from": "CompleteRegistration", - "to": "597443908839411" - }, - { "from": "Lead", "to": "1024592094903800" } - ], - "isHashRequired": true - } - } - } - ] - } -] diff --git a/test/__tests__/data/facebook_pixel_input.json b/test/__tests__/data/facebook_pixel_input.json deleted file mode 100644 index 2231e0dc2f0..00000000000 --- a/test/__tests__/data/facebook_pixel_input.json +++ /dev/null @@ -1,4092 +0,0 @@ -[ - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "channel": "mobile", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": " aBc@gmail.com ", - "address": { - "zip": 1234 - }, - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "additional_bet_index": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track" - }, - "destination": { - "Config": { - "limitedDataUsage": true, - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": false - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "removeExternalId": true, - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": " aBc@gmail.com ", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "additional_bet_index": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "group" - }, - "destination": { - "Config": { - "limitedDataUsage": true, - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": false - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Ruchira" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": false - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Ruchira Moitra", - "email": "abc@gmail.com", - "firstname": "Ruchira ", - "lastname": " Moitra", - "phone": 9000000000, - "gender": "female" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": false - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": true, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Ruchira Moitra", - "email": "abc@gmail.com", - "phone": 9000000000, - "address": { - "postalCode": 1234 - }, - "gender": "female" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": false - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": true, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "additional_bet_index": 0, - "email": "abc@gmail.com" - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": false - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "additional_bet_index": 0, - "email": "abc@gmail.com" - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": false - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "email" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "additional_bet_index": 0, - "email": "abc@gmail.com", - "phone": 9000000000 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "phone", - "blacklistPiiHash": false - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "email" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "additional_bet_index": 0, - "email": "abc@gmail.com", - "phone": 9000000000 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "phone", - "blacklistPiiHash": true - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "email" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "xyz", - "search": "def", - "title": "ghi", - "url": "jkl" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "phone", - "blacklistPiiHash": true - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "email" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "xyz", - "search": "def", - "title": "ghi", - "url": "jkl" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "phone", - "blacklistPiiHash": true - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "email" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product list viewed", - "properties": { - "phone": 9000000000, - "email": "abc@gmail.com", - "category": "cat 1", - "list_id": "1234", - "filters": [ - { - "type": "department", - "value": "beauty" - }, - { - "type": "price", - "value": "under" - } - ], - "sorts": [ - { - "type": "price", - "value": "desc" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "phone", - "blacklistPiiHash": true - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "email" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product list viewed", - "properties": { - "phone": 9000000000, - "email": "abc@gmail.com", - "category": "cat 1", - "list_id": "1234", - "filters": [ - { - "type": "department", - "value": "beauty" - }, - { - "type": "price", - "value": "under" - } - ], - "sorts": [ - { - "type": "price", - "value": "desc" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product list viewed", - "properties": { - "email": "abc@gmail.com", - "quantity": 2, - "category": "cat 1", - "list_id": "1234", - "contentName": "nutrition", - "value": 18.9, - "filters": [ - { - "type": "department", - "value": "beauty" - }, - { - "type": "price", - "value": "under" - } - ], - "sorts": [ - { - "type": "price", - "value": "desc" - } - ], - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "productDimension": "My Product Dimension", - "productMetric": "My Product Metric", - "position": 10 - }, - { - "product_id": "507f1f77bcf86cdef799439011", - "productDimension": "My Product Dimension1", - "productMetric": "My Product Metric1", - "position": -10 - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "my product list", - "properties": { - "email": "abc@gmail.com", - "quantity": 2, - "category": "cat 1", - "list_id": "1234", - "filters": [ - { - "type": "department", - "value": "beauty" - }, - { - "type": "price", - "value": "under" - } - ], - "sorts": [ - { - "type": "price", - "value": "desc" - } - ], - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "productDimension": "My Product Dimension", - "productMetric": "My Product Metric", - "position": 10 - }, - { - "product_id": "507f1f77bcf86cdef799439011", - "productDimension": "My Product Dimension1", - "productMetric": "My Product Metric1", - "position": -10 - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "removeExternalId": false, - "eventsToEvents": [ - { - "from": "My product list", - "to": "ViewContent" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "list_id" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product viewed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "clothing", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "removeExternalId": true, - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.price", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product added", - "properties": { - "currency": "CAD", - "quantity": 1, - "value": 24.75, - "category": "cat 1", - "id": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "removeExternalId": false, - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.value", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order completed", - "properties": { - "order_id": "ruchiraorder1", - "total": 99.99, - "revenue": 12.24, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "contentName": "all about nutrition", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.price", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "checkout started", - "properties": { - "currency": "CAD", - "category": "clothing", - "contentName": "abc", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 1, - "price": 24.75, - "name": "my product 2", - "sku": "p-299" - } - ], - "step": 1, - "paymentMethod": "Visa", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "contentName" - } - ], - "valueFieldIdentifier": "properties.price", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "dataProcessingOptions": [["LDU"], 1, 1000], - "fbc": "fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890", - "fbp": "fb.1.1554763741205.234567890", - "fb_login_id": "fb_id", - "lead_id": "lead_id", - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "additional_bet_index": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track" - }, - "destination": { - "Config": { - "limitedDataUSage": true, - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": false - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "dataProcessingOptions": [["LDU"], 1, 1000], - "fbc": "fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890", - "fbp": "fb.1.1554763741205.234567890", - "fb_login_id": "fb_id", - "lead_id": "lead_id", - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "additional_bet_index": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track" - }, - "destination": { - "Config": { - "limitedDataUSage": false, - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": false - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "products searched", - "properties": { - "product_id": "p-298", - "quantity": 2, - "price": 18.9, - "category": "health", - "value": 18.9, - "query": "HDMI cable" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.price", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "products searched", - "properties": { - "query": "HDMI cable" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "testDestination": true, - "testEventCode": "TEST1001", - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.price", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "xyz", - "search": "def", - "title": "ghi", - "url": "jkl" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "standardPageCall": true, - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "phone", - "blacklistPiiHash": true - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "url" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "email" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "track page", - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "additional_bet_index": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track" - }, - "destination": { - "Config": { - "limitedDataUsage": true, - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": false - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "track page", - "to": "PageView" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "additional_bet_index" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "my product list", - "properties": { - "email": "abc@gmail.com", - "quantity": 2, - "category": "cat 1", - "list_id": "1234", - "filters": [ - { - "type": "department", - "value": "beauty" - }, - { - "type": "price", - "value": "under" - } - ], - "sorts": [ - { - "type": "price", - "value": "desc" - } - ], - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "productDimension": "My Product Dimension", - "productMetric": "My Product Metric", - "position": 10 - }, - { - "product_id": "507f1f77bcf86cdef799439011", - "productDimension": "My Product Dimension1", - "productMetric": "My Product Metric1", - "position": -10 - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "My product list", - "to": "Schedule" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "list_id" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "additional_bet_index": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track" - }, - "destination": { - "Config": { - "limitedDataUsage": true, - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": false - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product added", - "properties": { - "currency": "CAD", - "quantity": 1, - "value": "35.753", - "category": "cat 1", - "id": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.value", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product added", - "properties": { - "currency": "CAD", - "quantity": 1, - "value": "35.7A3", - "category": "cat 1", - "id": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.value", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product added", - "properties": { - "currency": "CAD", - "quantity": 1, - "value": "ABC", - "category": "cat 1", - "id": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.value", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order completed", - "properties": { - "category": ["clothing", "fishing"], - "order_id": "ruchiraorder1", - "total": 99.99, - "revenue": 12.24, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.price", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order completed", - "properties": { - "category": 100, - "order_id": "ruchiraorder1", - "total": 99.99, - "revenue": 12.24, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.price", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order completed", - "properties": { - "category": { - "category1": "1" - }, - "order_id": "ruchiraorder1", - "total": 99.99, - "revenue": 12.24, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.price", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "additional_bet_index": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track" - }, - "destination": { - "Config": { - "limitedDataUsage": true, - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": false - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "spin_result", - "to": "Schedule" - }, - { - "to": "Schedule" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "additional_bet_index": 0 - }, - "timestamp": "2019-08-24T15:46:51.693229+05:30", - "type": "track" - }, - "destination": { - "Config": { - "limitedDataUsage": true, - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": false - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "spin_result", - "to": "Schedule" - }, - { - "to": "Schedule" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "additional_bet_index": 0 - }, - "originalTimestamp": "2019-04-16T15:50:51.693229+05:30", - "type": "track" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": false - } - ], - "accessToken": "validToken", - "pixelId": "658311142062817", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": true, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "products searched", - "properties": { - "query": { - "key1": "HDMI cable" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.price", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "products searched", - "properties": { - "query": 50 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.price", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "url": "https://theminimstory.com/collections/summer-of-pearls?utm_source=facebook&utm_medium=paidsocial&utm_campaign=carousel&utm_content=ad1-jul&fbclid=IwAR2SsDcjzd_TLZN-e93kxOeGBYO4pQ3AiyeXSheHW5emDeLw8uTvo6lTMPI" - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "checkout started", - "properties": { - "currency": "CAD", - "category": "clothing", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 1, - "price": 24.75, - "name": "my product 2", - "sku": "p-299" - } - ], - "step": 1, - "paymentMethod": "Visa", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.price", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "url": "https://theminimstory.com/collections/summer-of-pearls?utm_source=facebook&utm_medium=paidsocial&utm_campaign=carousel&utm_content=ad1-jul&fbclid=IwAR2SsDcjzd_TLZN-e93kxOeGBYO4pQ3AiyeXSheHW5emDeLw8uTvo6lTMPI" - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": { - "name": "checkout started" - }, - "properties": { - "currency": "CAD", - "category": "clothing", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 1, - "price": 24.75, - "name": "my product 2", - "sku": "p-299" - } - ], - "step": 1, - "paymentMethod": "Visa", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.price", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "url": "url in wrong format" - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "checkout started", - "properties": { - "currency": "CAD", - "category": "clothing", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 1, - "price": 24.75, - "name": "my product 2", - "sku": "p-299" - } - ], - "step": 1, - "paymentMethod": "Visa", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.price", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product viewed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "clothing", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true, - "Facebook_Pixel": { - "contentType": "sending dedicated content type for this particular payload" - } - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "removeExternalId": true, - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.price", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product viewed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "value": 18.9, - "name": "my product 1", - "category": "clothing", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "removeExternalId": true, - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.value", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order completed", - "properties": { - "order_id": "ruchiraorder1", - "total": 99.99, - "revenue": 12.24, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "contentName": "all about nutrition", - "products": { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "categoryToContent": [ - { - "from": "clothing", - "to": "product" - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "properties.price", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product list viewed", - "properties": { - "email": "abc@gmail.com", - "quantity": 2, - "category": "cat 1", - "list_id": "1234", - "contentName": "nutrition", - "value": 18.9, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "productDimension": "My Product Dimension", - "productMetric": "My Product Metric", - "position": 10 - }, - [ - { - "product_id": "507f1f77bcf86cdef799439011", - "productDimension": "My Product Dimension1", - "productMetric": "My Product Metric1", - "position": -10 - } - ] - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "accessToken": "09876", - "pixelId": "dfgdfgdgd", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "eventCustomProperties": [ - { - "eventCustomProperties": "" - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "custom", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "pixelId": "dfgdfgdgd", - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "custom", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": true - } - ], - "valueFieldIdentifier": "", - "advancedMapping": false, - "whitelistPiiProperties": [ - { - "whitelistPiiProperties": "" - } - ] - }, - "Enabled": true - } - }, - { - "metadata": { - "jobId": 12 - }, - "destination": { - "secretConfig": {}, - "Config": { - "blacklistPiiProperties": [ - { - "blacklistPiiProperties": "", - "blacklistPiiHash": false - } - ], - "pixelId": "12345555566", - "eventsToEvents": [ - { - "from": "", - "to": "" - } - ], - "valueFieldIdentifier": "properties.price", - "advancedMapping": false, - "whitelistPiiProperties": [], - "limitedDataUSage": false, - "accessToken": "Asdkjhbriufkjrvknkjfkjhkjf", - "testDestination": false, - "testEventCode": "", - "standardPageCall": false, - "blacklistedEvents": [], - "whitelistedEvents": [], - "eventFilteringOption": "disable", - "removeExternalId": false, - "useUpdatedMapping": false, - "oneTrustCookieCategories": [], - "useNativeSDK": false, - "eventDelivery": false, - "eventDeliveryTS": 1686748039135 - }, - "liveEventsConfig": { - "eventDelivery": false, - "eventDeliveryTS": 1686748039135 - }, - "id": "destId1", - "workspaceId": "wsp2", - "transformations": [], - "isConnectionEnabled": true, - "isProcessorEnabled": true, - "name": "san-fb_pixel", - "enabled": true, - "deleted": false, - "createdAt": "2023-06-06T13:36:08.579Z", - "updatedAt": "2023-06-14T13:07:19.136Z", - "revisionId": "revId2", - "secretVersion": 3 - }, - "message": { - "type": "page", - "sentAt": "2019-09-01T15:46:51.000Z", - "userId": "user@19", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "version": "dev-snapshot", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:8888/", - "path": "/", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:8888/", - "referrer": "http://127.0.0.1:8888/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:8888", - "initial_referring_domain": "" - }, - "locale": "en-GB", - "screen": { - "width": 1728, - "height": 1117, - "density": 2, - "innerWidth": 547, - "innerHeight": 915 - }, - "traits": { - "name": false, - "source": "rudderstack" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "dev-snapshot" - }, - "campaign": {}, - "sessionId": 1687769234506, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" - }, - "rudderId": "6bbfd003-c074-4ee9-8674-c132ded9ff04", - "timestamp": "2019-09-01T15:46:51.000Z", - "properties": { - "url": "http://127.0.0.1:8888/", - "path": "/", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:8888/", - "referrer": "http://127.0.0.1:8888/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:8888", - "initial_referring_domain": "" - }, - "receivedAt": "2019-09-01T15:46:51.000Z", - "request_ip": "49.206.54.243", - "anonymousId": "700ab220-faad-4cdf-8484-63e4c6bce6fe", - "integrations": { - "All": true - }, - "originalTimestamp": "2019-09-01T15:46:51.000Z" - } - } -] diff --git a/test/__tests__/data/facebook_pixel_output.json b/test/__tests__/data/facebook_pixel_output.json deleted file mode 100644 index 91fdb7dbdd4..00000000000 --- a/test/__tests__/data/facebook_pixel_output.json +++ /dev/null @@ -1,772 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"zp\":\"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4\"},\"event_name\":\"spin_result\",\"event_time\":1567333011,\"action_source\":\"app\",\"custom_data\":{\"additional_bet_index\":0,\"value\":400}}" - ] - } - }, - "files": {} - }, - { - "error": "Message type group not supported", - "statusCode": 400, - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "error": "For identify events, \"Advanced Mapping\" configuration must be enabled on the RudderStack dashboard", - "statusCode": 400, - "statTags": { - "errorCategory": "dataValidation", - "errorType": "configuration" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92\",\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"ph\":\"593a6d58f34eb5c3de4f47e38d1faaa7d389fafe332a85400b1e54498391c579\",\"ge\":\"252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111\",\"ln\":\"6c535a187517963217c07cbdb552cb8991987d6c33cbaecbe2fc7bc4199e156e\",\"fn\":\"d5c853a578ee28b6152606785eb8e2eb10a369b2903e8f8ee1ce761eaf9acd0c\",\"client_ip_address\":\"0.0.0.0\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"identify\",\"event_time\":1567333011,\"event_id\":\"84e26acc-56a5-4835-8233-591137fca468\",\"action_source\":\"website\"}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92\",\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"ph\":\"593a6d58f34eb5c3de4f47e38d1faaa7d389fafe332a85400b1e54498391c579\",\"ge\":\"252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111\",\"zp\":\"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4\",\"client_ip_address\":\"0.0.0.0\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\",\"fn\":\"d5c853a578ee28b6152606785eb8e2eb10a369b2903e8f8ee1ce761eaf9acd0c\",\"ln\":\"6c535a187517963217c07cbdb552cb8991987d6c33cbaecbe2fc7bc4199e156e\"},\"event_name\":\"identify\",\"event_time\":1567333011,\"event_id\":\"84e26acc-56a5-4835-8233-591137fca468\",\"action_source\":\"website\"}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"6dc8118ec743f5f3b758939714193f547f4a674c68757fa80d7c9564dc093b0a\",\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\"},\"event_name\":\"spin_result\",\"event_time\":1567333011,\"action_source\":\"other\",\"custom_data\":{\"additional_bet_index\":0,\"value\":400}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"6dc8118ec743f5f3b758939714193f547f4a674c68757fa80d7c9564dc093b0a\",\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\"},\"event_name\":\"spin_result\",\"event_time\":1567333011,\"action_source\":\"other\",\"custom_data\":{\"additional_bet_index\":0,\"email\":\"abc@gmail.com\",\"value\":400}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"6dc8118ec743f5f3b758939714193f547f4a674c68757fa80d7c9564dc093b0a\",\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\"},\"event_name\":\"spin_result\",\"event_time\":1567333011,\"action_source\":\"other\",\"custom_data\":{\"additional_bet_index\":0,\"email\":\"abc@gmail.com\",\"value\":400}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"6dc8118ec743f5f3b758939714193f547f4a674c68757fa80d7c9564dc093b0a\",\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\"},\"event_name\":\"spin_result\",\"event_time\":1567333011,\"action_source\":\"other\",\"custom_data\":{\"additional_bet_index\":0,\"email\":\"abc@gmail.com\",\"phone\":\"593a6d58f34eb5c3de4f47e38d1faaa7d389fafe332a85400b1e54498391c579\",\"value\":400}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"client_ip_address\":\"0.0.0.0\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"Viewed page ApplicationLoaded\",\"event_time\":1567333011,\"event_source_url\":\"jkl\",\"event_id\":\"5e10d13a-bf9a-44bf-b884-43a9e591ea71\",\"action_source\":\"website\",\"custom_data\":{\"path\":\"/abc\",\"referrer\":\"xyz\",\"search\":\"def\",\"title\":\"ghi\",\"url\":\"jkl\"}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"client_ip_address\":\"0.0.0.0\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"Viewed a page\",\"event_time\":1567333011,\"event_source_url\":\"jkl\",\"event_id\":\"5e10d13a-bf9a-44bf-b884-43a9e591ea71\",\"action_source\":\"website\",\"custom_data\":{\"path\":\"/abc\",\"referrer\":\"xyz\",\"search\":\"def\",\"title\":\"ghi\",\"url\":\"jkl\"}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"ViewContent\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"phone\":\"593a6d58f34eb5c3de4f47e38d1faaa7d389fafe332a85400b1e54498391c579\",\"email\":\"abc@gmail.com\",\"category\":\"cat 1\",\"list_id\":\"1234\",\"filters[0].type\":\"department\",\"filters[0].value\":\"beauty\",\"filters[1].type\":\"price\",\"filters[1].value\":\"under\",\"sorts[0].type\":\"price\",\"sorts[0].value\":\"desc\",\"testDimension\":true,\"testMetric\":true,\"content_ids\":[\"cat 1\"],\"content_type\":\"product_group\",\"contents\":[{\"id\":\"cat 1\",\"quantity\":1}],\"content_category\":\"cat 1\",\"value\":0,\"currency\":\"USD\"}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"ViewContent\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"category\":\"cat 1\",\"list_id\":\"1234\",\"filters[0].type\":\"department\",\"filters[0].value\":\"beauty\",\"filters[1].type\":\"price\",\"filters[1].value\":\"under\",\"sorts[0].type\":\"price\",\"sorts[0].value\":\"desc\",\"testDimension\":true,\"testMetric\":true,\"content_ids\":[\"cat 1\"],\"content_type\":\"product_group\",\"contents\":[{\"id\":\"cat 1\",\"quantity\":1}],\"content_category\":\"cat 1\",\"value\":0,\"currency\":\"USD\"}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"ViewContent\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"quantity\":2,\"category\":\"cat 1\",\"list_id\":\"1234\",\"contentName\":\"nutrition\",\"value\":18.9,\"filters[0].type\":\"department\",\"filters[0].value\":\"beauty\",\"filters[1].type\":\"price\",\"filters[1].value\":\"under\",\"sorts[0].type\":\"price\",\"sorts[0].value\":\"desc\",\"products[0].product_id\":\"507f1f77bcf86cd799439011\",\"products[0].productDimension\":\"My Product Dimension\",\"products[0].productMetric\":\"My Product Metric\",\"products[0].position\":10,\"products[1].product_id\":\"507f1f77bcf86cdef799439011\",\"products[1].productDimension\":\"My Product Dimension1\",\"products[1].productMetric\":\"My Product Metric1\",\"products[1].position\":-10,\"testDimension\":true,\"testMetric\":true,\"content_ids\":[\"507f1f77bcf86cd799439011\",\"507f1f77bcf86cdef799439011\"],\"content_type\":\"product\",\"contents\":[{\"id\":\"507f1f77bcf86cd799439011\",\"quantity\":2},{\"id\":\"507f1f77bcf86cdef799439011\",\"quantity\":2}],\"content_category\":\"cat 1\",\"content_name\":\"nutrition\",\"currency\":\"USD\"}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"ViewContent\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"quantity\":2,\"category\":\"cat 1\",\"list_id\":\"1234\",\"filters[0].type\":\"department\",\"filters[0].value\":\"beauty\",\"filters[1].type\":\"price\",\"filters[1].value\":\"under\",\"sorts[0].type\":\"price\",\"sorts[0].value\":\"desc\",\"products[0].product_id\":\"507f1f77bcf86cd799439011\",\"products[0].productDimension\":\"My Product Dimension\",\"products[0].productMetric\":\"My Product Metric\",\"products[0].position\":10,\"products[1].product_id\":\"507f1f77bcf86cdef799439011\",\"products[1].productDimension\":\"My Product Dimension1\",\"products[1].productMetric\":\"My Product Metric1\",\"products[1].position\":-10,\"testDimension\":true,\"testMetric\":true,\"content_ids\":[\"507f1f77bcf86cd799439011\",\"507f1f77bcf86cdef799439011\"],\"content_type\":\"product\",\"contents\":[{\"id\":\"507f1f77bcf86cd799439011\",\"quantity\":2},{\"id\":\"507f1f77bcf86cdef799439011\",\"quantity\":2}],\"content_category\":\"cat 1\",\"value\":0,\"currency\":\"USD\"}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"ViewContent\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"currency\":\"CAD\",\"quantity\":1,\"price\":24.75,\"name\":\"my product 1\",\"category\":\"clothing\",\"sku\":\"p-298\",\"testDimension\":true,\"testMetric\":true,\"position\":4.5,\"content_ids\":[\"p-298\"],\"content_type\":\"product\",\"content_name\":\"my product 1\",\"content_category\":\"clothing\",\"value\":24.75,\"contents\":[{\"id\":\"p-298\",\"quantity\":1,\"item_price\":24.75}]}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"AddToCart\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"currency\":\"CAD\",\"quantity\":1,\"value\":24.75,\"category\":\"cat 1\",\"id\":\"p-298\",\"testDimension\":true,\"testMetric\":true,\"position\":4.5,\"content_ids\":[\"p-298\"],\"content_type\":\"product\",\"content_name\":\"\",\"content_category\":\"cat 1\",\"contents\":[{\"id\":\"p-298\",\"quantity\":1}]}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"em\":\"4e59b5130b3a248457336e2fe5e40a3e8604f28d1804be14e6b227e2d88d7ce2\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"Purchase\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"order_id\":\"ruchiraorder1\",\"total\":99.99,\"revenue\":12.24,\"shipping\":13.99,\"tax\":20.99,\"currency\":\"INR\",\"contentName\":\"all about nutrition\",\"products[0].quantity\":1,\"products[0].price\":24.75,\"products[0].name\":\"my product\",\"products[0].sku\":\"p-298\",\"products[1].quantity\":3,\"products[1].price\":24.75,\"products[1].name\":\"other product\",\"products[1].sku\":\"p-299\",\"content_ids\":[\"p-298\",\"p-299\"],\"content_type\":\"product\",\"value\":12.24,\"contents\":[{\"id\":\"p-298\",\"quantity\":1,\"item_price\":24.75},{\"id\":\"p-299\",\"quantity\":3,\"item_price\":24.75}],\"num_items\":2,\"content_name\":\"all about nutrition\"}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"em\":\"4e59b5130b3a248457336e2fe5e40a3e8604f28d1804be14e6b227e2d88d7ce2\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"InitiateCheckout\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"currency\":\"CAD\",\"category\":\"clothing\",\"contentName\":\"abc\",\"products[0].quantity\":1,\"products[0].price\":24.75,\"products[0].name\":\"my product\",\"products[0].sku\":\"p-298\",\"products[1].quantity\":1,\"products[1].price\":24.75,\"products[1].name\":\"my product 2\",\"products[1].sku\":\"p-299\",\"step\":1,\"paymentMethod\":\"Visa\",\"testDimension\":true,\"testMetric\":true,\"content_category\":\"clothing\",\"content_ids\":[\"p-298\",\"p-299\"],\"content_type\":\"product\",\"value\":0,\"contents\":[{\"id\":\"p-298\",\"quantity\":1,\"item_price\":24.75},{\"id\":\"p-299\",\"quantity\":1,\"item_price\":24.75}],\"num_items\":2}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"6dc8118ec743f5f3b758939714193f547f4a674c68757fa80d7c9564dc093b0a\",\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"fbc\":\"fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890\",\"fbp\":\"fb.1.1554763741205.234567890\",\"lead_id\":\"lead_id\",\"fb_login_id\":\"fb_id\"},\"event_name\":\"spin_result\",\"event_time\":1567333011,\"action_source\":\"other\",\"data_processing_options\":[\"LDU\"],\"data_processing_options_country\":1,\"data_processing_options_state\":1000,\"custom_data\":{\"additional_bet_index\":0,\"value\":400}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"6dc8118ec743f5f3b758939714193f547f4a674c68757fa80d7c9564dc093b0a\",\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\",\"fbc\":\"fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890\",\"fbp\":\"fb.1.1554763741205.234567890\",\"lead_id\":\"lead_id\",\"fb_login_id\":\"fb_id\"},\"event_name\":\"spin_result\",\"event_time\":1567333011,\"action_source\":\"other\",\"custom_data\":{\"additional_bet_index\":0,\"value\":400}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"em\":\"4e59b5130b3a248457336e2fe5e40a3e8604f28d1804be14e6b227e2d88d7ce2\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"Search\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"product_id\":\"p-298\",\"quantity\":2,\"price\":18.9,\"category\":\"health\",\"value\":18.9,\"query\":\"HDMI cable\",\"content_ids\":[\"p-298\"],\"content_category\":\"health\",\"contents\":[{\"id\":\"p-298\",\"quantity\":2,\"item_price\":18.9}],\"search_string\":\"HDMI cable\",\"currency\":\"USD\"}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"em\":\"4e59b5130b3a248457336e2fe5e40a3e8604f28d1804be14e6b227e2d88d7ce2\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"Search\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"query\":\"HDMI cable\",\"content_ids\":[],\"content_category\":\"\",\"value\":0,\"contents\":[],\"search_string\":\"HDMI cable\",\"currency\":\"USD\"}}" - ], - "test_event_code": "TEST1001" - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"client_ip_address\":\"0.0.0.0\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"PageView\",\"event_time\":1567333011,\"event_source_url\":\"jkl\",\"event_id\":\"5e10d13a-bf9a-44bf-b884-43a9e591ea71\",\"action_source\":\"website\",\"custom_data\":{\"path\":\"/abc\",\"referrer\":\"xyz\",\"search\":\"def\",\"title\":\"ghi\",\"url\":\"jkl\"}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"6dc8118ec743f5f3b758939714193f547f4a674c68757fa80d7c9564dc093b0a\",\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\"},\"event_name\":\"PageView\",\"event_time\":1567333011,\"action_source\":\"other\",\"custom_data\":{\"revenue\":400,\"additional_bet_index\":0}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"Schedule\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"quantity\":2,\"category\":\"cat 1\",\"list_id\":\"1234\",\"filters[0].type\":\"department\",\"filters[0].value\":\"beauty\",\"filters[1].type\":\"price\",\"filters[1].value\":\"under\",\"sorts[0].type\":\"price\",\"sorts[0].value\":\"desc\",\"products[0].product_id\":\"507f1f77bcf86cd799439011\",\"products[0].productDimension\":\"My Product Dimension\",\"products[0].productMetric\":\"My Product Metric\",\"products[0].position\":10,\"products[1].product_id\":\"507f1f77bcf86cdef799439011\",\"products[1].productDimension\":\"My Product Dimension1\",\"products[1].productMetric\":\"My Product Metric1\",\"products[1].position\":-10,\"testDimension\":true,\"testMetric\":true}}" - ] - } - }, - "files": {} - }, - { - "statusCode": 400, - "error": "'event' is required", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"AddToCart\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"currency\":\"CAD\",\"quantity\":1,\"value\":35.75,\"category\":\"cat 1\",\"id\":\"p-298\",\"testDimension\":true,\"testMetric\":true,\"position\":4.5,\"content_ids\":[\"p-298\"],\"content_type\":\"product\",\"content_name\":\"\",\"content_category\":\"cat 1\",\"contents\":[{\"id\":\"p-298\",\"quantity\":1}]}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"AddToCart\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"currency\":\"CAD\",\"quantity\":1,\"value\":35.7,\"category\":\"cat 1\",\"id\":\"p-298\",\"testDimension\":true,\"testMetric\":true,\"position\":4.5,\"content_ids\":[\"p-298\"],\"content_type\":\"product\",\"content_name\":\"\",\"content_category\":\"cat 1\",\"contents\":[{\"id\":\"p-298\",\"quantity\":1}]}}" - ] - } - }, - "files": {} - }, - { - "statusCode": 400, - "error": "Revenue could not be converted to number", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"em\":\"4e59b5130b3a248457336e2fe5e40a3e8604f28d1804be14e6b227e2d88d7ce2\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"Purchase\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"category[0]\":\"clothing\",\"category[1]\":\"fishing\",\"order_id\":\"ruchiraorder1\",\"total\":99.99,\"revenue\":12.24,\"shipping\":13.99,\"tax\":20.99,\"currency\":\"INR\",\"products[0].quantity\":1,\"products[0].price\":24.75,\"products[0].name\":\"my product\",\"products[0].sku\":\"p-298\",\"products[1].quantity\":3,\"products[1].price\":24.75,\"products[1].name\":\"other product\",\"products[1].sku\":\"p-299\",\"content_category\":\"clothing,fishing\",\"content_ids\":[\"p-298\",\"p-299\"],\"content_type\":\"product\",\"value\":12.24,\"contents\":[{\"id\":\"p-298\",\"quantity\":1,\"item_price\":24.75},{\"id\":\"p-299\",\"quantity\":3,\"item_price\":24.75}],\"num_items\":2}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"em\":\"4e59b5130b3a248457336e2fe5e40a3e8604f28d1804be14e6b227e2d88d7ce2\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"Purchase\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"category\":100,\"order_id\":\"ruchiraorder1\",\"total\":99.99,\"revenue\":12.24,\"shipping\":13.99,\"tax\":20.99,\"currency\":\"INR\",\"products[0].quantity\":1,\"products[0].price\":24.75,\"products[0].name\":\"my product\",\"products[0].sku\":\"p-298\",\"products[1].quantity\":3,\"products[1].price\":24.75,\"products[1].name\":\"other product\",\"products[1].sku\":\"p-299\",\"content_category\":\"100\",\"content_ids\":[\"p-298\",\"p-299\"],\"content_type\":\"product\",\"value\":12.24,\"contents\":[{\"id\":\"p-298\",\"quantity\":1,\"item_price\":24.75},{\"id\":\"p-299\",\"quantity\":3,\"item_price\":24.75}],\"num_items\":2}}" - ] - } - }, - "files": {} - }, - { - "statusCode": 400, - "error": "'properties.category' must be either be a string or an array", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"6dc8118ec743f5f3b758939714193f547f4a674c68757fa80d7c9564dc093b0a\",\"em\":\"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08\"},\"event_name\":\"Schedule\",\"event_time\":1567333011,\"action_source\":\"other\",\"custom_data\":{\"revenue\":400,\"additional_bet_index\":0}}" - ] - } - }, - "files": {} - }, - { - "statusCode": 400, - "error": "Events must be sent within seven days of their occurrence or up to one minute in the future.", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "statusCode": 400, - "error": "Events must be sent within seven days of their occurrence or up to one minute in the future.", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "statusCode": 400, - "error": "'query' should be in string format only", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"em\":\"4e59b5130b3a248457336e2fe5e40a3e8604f28d1804be14e6b227e2d88d7ce2\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"Search\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"query\":50,\"content_ids\":[],\"content_category\":\"\",\"value\":0,\"contents\":[],\"search_string\":50,\"currency\":\"USD\"}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"em\":\"4e59b5130b3a248457336e2fe5e40a3e8604f28d1804be14e6b227e2d88d7ce2\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\",\"fbc\":\"fb.1.1567333011693.IwAR2SsDcjzd_TLZN-e93kxOeGBYO4pQ3AiyeXSheHW5emDeLw8uTvo6lTMPI\"},\"event_name\":\"InitiateCheckout\",\"event_time\":1567333011,\"event_source_url\":\"https://theminimstory.com/collections/summer-of-pearls?utm_source=facebook&utm_medium=paidsocial&utm_campaign=carousel&utm_content=ad1-jul&fbclid=IwAR2SsDcjzd_TLZN-e93kxOeGBYO4pQ3AiyeXSheHW5emDeLw8uTvo6lTMPI\",\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"currency\":\"CAD\",\"category\":\"clothing\",\"products[0].quantity\":1,\"products[0].price\":24.75,\"products[0].name\":\"my product\",\"products[0].sku\":\"p-298\",\"products[1].quantity\":1,\"products[1].price\":24.75,\"products[1].name\":\"my product 2\",\"products[1].sku\":\"p-299\",\"step\":1,\"paymentMethod\":\"Visa\",\"testDimension\":true,\"testMetric\":true,\"content_category\":\"clothing\",\"content_ids\":[\"p-298\",\"p-299\"],\"content_type\":\"product\",\"value\":0,\"contents\":[{\"id\":\"p-298\",\"quantity\":1,\"item_price\":24.75},{\"id\":\"p-299\",\"quantity\":1,\"item_price\":24.75}],\"num_items\":2}}" - ] - } - }, - "files": {} - }, - { - "statusCode": 400, - "error": "event name should be string", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5\",\"em\":\"4e59b5130b3a248457336e2fe5e40a3e8604f28d1804be14e6b227e2d88d7ce2\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"InitiateCheckout\",\"event_time\":1567333011,\"event_source_url\":\"url in wrong format\",\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"currency\":\"CAD\",\"category\":\"clothing\",\"products[0].quantity\":1,\"products[0].price\":24.75,\"products[0].name\":\"my product\",\"products[0].sku\":\"p-298\",\"products[1].quantity\":1,\"products[1].price\":24.75,\"products[1].name\":\"my product 2\",\"products[1].sku\":\"p-299\",\"step\":1,\"paymentMethod\":\"Visa\",\"testDimension\":true,\"testMetric\":true,\"content_category\":\"clothing\",\"content_ids\":[\"p-298\",\"p-299\"],\"content_type\":\"product\",\"value\":0,\"contents\":[{\"id\":\"p-298\",\"quantity\":1,\"item_price\":24.75},{\"id\":\"p-299\",\"quantity\":1,\"item_price\":24.75}],\"num_items\":2}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"ViewContent\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"currency\":\"CAD\",\"quantity\":1,\"price\":24.75,\"name\":\"my product 1\",\"category\":\"clothing\",\"sku\":\"p-298\",\"testDimension\":true,\"testMetric\":true,\"position\":4.5,\"content_ids\":[\"p-298\"],\"content_type\":\"sending dedicated content type for this particular payload\",\"content_name\":\"my product 1\",\"content_category\":\"clothing\",\"value\":24.75,\"contents\":[{\"id\":\"p-298\",\"quantity\":1,\"item_price\":24.75}]}}" - ] - } - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/dfgdfgdgd/events?access_token=09876", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "data": [ - "{\"user_data\":{\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"},\"event_name\":\"ViewContent\",\"event_time\":1567333011,\"event_id\":\"ec5481b6-a926-4d2e-b293-0b3a77c4d3be\",\"action_source\":\"website\",\"custom_data\":{\"currency\":\"CAD\",\"quantity\":1,\"price\":24.75,\"value\":18.9,\"name\":\"my product 1\",\"category\":\"clothing\",\"sku\":\"p-298\",\"testDimension\":true,\"testMetric\":true,\"position\":4.5,\"content_ids\":[\"p-298\"],\"content_type\":\"product\",\"content_name\":\"my product 1\",\"content_category\":\"clothing\",\"contents\":[{\"id\":\"p-298\",\"quantity\":1,\"item_price\":24.75}]}}" - ] - } - }, - "files": {} - }, - { - "error": "'properties.products' is not sent as an Array", - "statusCode": 400, - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "error": "'properties.products[1]' is not an object", - "statusCode": 400, - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "error": "Access token not found. Aborting", - "statusCode": 400, - "statTags": { - "errorCategory": "dataValidation", - "errorType": "configuration" - } - }, - { - "error": "Pixel Id not found. Aborting", - "statusCode": 400, - "statTags": { - "errorCategory": "dataValidation", - "errorType": "configuration" - } - }, - { - "body": { - "FORM": { - "data": [ - "{\"user_data\":{\"external_id\":\"72fd46c9ecb386f6747664a3e1d524294a3d7a2c8ae4aeb22b1e578b75093635\",\"client_ip_address\":\"49.206.54.243\",\"client_user_agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36\"},\"event_name\":\"PageView\",\"event_time\":1567352811,\"event_source_url\":\"http://127.0.0.1:8888/\",\"action_source\":\"website\",\"custom_data\":{\"url\":\"http://127.0.0.1:8888/\",\"path\":\"/\",\"title\":\"Document\",\"search\":\"\",\"tab_url\":\"http://127.0.0.1:8888/\",\"referrer\":\"http://127.0.0.1:8888/\",\"initial_referrer\":\"$direct\",\"referring_domain\":\"127.0.0.1:8888\",\"initial_referring_domain\":\"\"}}" - ] - }, - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {} - }, - "endpoint": "https://graph.facebook.com/v17.0/12345555566/events?access_token=Asdkjhbriufkjrvknkjfkjhkjf", - "files": {}, - "headers": {}, - "method": "POST", - "params": {}, - "type": "REST", - "version": "1" - } -] diff --git a/test/__tests__/data/facebook_pixel_proxy_output.json b/test/__tests__/data/facebook_pixel_proxy_output.json index 607ac7804e0..e0afb028d33 100644 --- a/test/__tests__/data/facebook_pixel_proxy_output.json +++ b/test/__tests__/data/facebook_pixel_proxy_output.json @@ -91,7 +91,7 @@ { "output": { "status": 400, - "message": "Object with ID 'PIXEL_ID' does not exist, cannot be loaded due to missing permissions, or does not support this operation", + "message": "Object with ID 'PIXEL_ID' / 'DATASET_ID' / 'AUDIENCE_ID' does not exist, cannot be loaded due to missing permissions, or does not support this operation", "destinationResponse": { "error": { "message": "Unsupported post request. Object with ID '1234567891234569' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api", diff --git a/test/__tests__/data/fb_custom_audience.json b/test/__tests__/data/fb_custom_audience.json deleted file mode 100644 index b8e25929531..00000000000 --- a/test/__tests__/data/fb_custom_audience.json +++ /dev/null @@ -1,54067 +0,0 @@ -[ - { - "description": "No Message type", - "input": { - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ], - "remove": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": false, - "disableFormat": false, - "audienceId": "aud1", - "isRaw": true, - "type": "UNKNOWN", - "subType": "ANYTHING", - "maxUserCount": "50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - "output": { - "error": "Message Type is not present. Aborting message." - } - }, - { - "description": "Unsupported Event type ", - "input": { - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "type": "Track", - "event": "event1", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ], - "remove": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": false, - "disableFormat": false, - "audienceId": "aud1", - "isRaw": true, - "type": "UNKNOWN", - "subType": "ANYTHING", - "maxUserCount": "50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - "output": { - "error": " Track call is not supported " - } - }, - { - "description": "Non-Numerical Batch Size Event", - "input": { - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "type": "audiencelist", - "event": "event1", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ], - "remove": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": false, - "disableFormat": false, - "audienceId": "aud1", - "isRaw": true, - "type": "UNKNOWN", - "subType": "ANYTHING", - "maxUserCount": "abc50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - "output": { - "error": "Batch size must be an Integer." - } - }, - { - "description": "Audience ID Empty Event", - "input": { - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "type": "audiencelist", - "event": "event1", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ], - "remove": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": false, - "disableFormat": false, - "audienceId": "", - "isRaw": true, - "type": "UNKNOWN", - "subType": "ANYTHING", - "maxUserCount": "50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - "output": { - "error": "Audience ID is a mandatory field" - } - }, - { - "description": "Type NA ", - "input": { - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ], - "remove": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": false, - "disableFormat": false, - "audienceId": "aud1", - "isRaw": true, - "type": "NA", - "subType": "ANYTHING", - "maxUserCount": "50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "f", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "f", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "No Hashing and Format Disabled", - "input": { - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ], - "remove": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": false, - "disableFormat": true, - "audienceId": "aud1", - "isRaw": true, - "type": "NA", - "subType": "ANYTHING", - "maxUserCount": "50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "For User Schema having single Schema field Event ", - "input": { - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ], - "remove": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": "DOBM", - "isHashRequired": false, - "disableFormat": false, - "audienceId": "aud1", - "isRaw": true, - "type": "UNKNOWN", - "subType": "ANYTHING", - "maxUserCount": "50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "type": "UNKNOWN", - "sub_type": "ANYTHING" - }, - "schema": ["DOBM"], - "data": [["2"]] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "type": "UNKNOWN", - "sub_type": "ANYTHING" - }, - "schema": ["DOBM"], - "data": [["2"]] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Hashing Disabaled and Type Unknown ", - "input": { - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ], - "remove": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": false, - "disableFormat": false, - "audienceId": "aud1", - "isRaw": true, - "type": "UNKNOWN", - "subType": "ANYTHING", - "maxUserCount": "50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "type": "UNKNOWN", - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "f", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "type": "UNKNOWN", - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "f", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Required Hash", - "input": { - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ], - "remove": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": true, - "disableFormat": false, - "audienceId": "aud1", - "isRaw": true, - "type": "NA", - "subType": "ANYTHING", - "maxUserCount": "50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05", - "a953f09a1b6b6725b81956e9ad0b1eb49e3ad40004c04307ef8af6246a054116", - "3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278", - "7931aa2a1bed855457d1ddf6bc06ab4406a9fba0579045a4d6ff78f9c07c440f", - "0dcd4be87427e008a16adbdc2b2c15a14accf485dd451314dcecfb902c51c686", - "252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111", - "db0683221aebc02cc034b65ebcf7d1bddd1eb199e33fd23a31931947d13a11bc", - "abc", - "4a70fe9aa6436e02c2dea340fbd1e352e4ef2d8ce6ca52ad25d4b95471fc8bf2", - "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", - "582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05", - "a953f09a1b6b6725b81956e9ad0b1eb49e3ad40004c04307ef8af6246a054116", - "3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278", - "7931aa2a1bed855457d1ddf6bc06ab4406a9fba0579045a4d6ff78f9c07c440f", - "0dcd4be87427e008a16adbdc2b2c15a14accf485dd451314dcecfb902c51c686", - "252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111", - "db0683221aebc02cc034b65ebcf7d1bddd1eb199e33fd23a31931947d13a11bc", - "abc", - "4a70fe9aa6436e02c2dea340fbd1e352e4ef2d8ce6ca52ad25d4b95471fc8bf2", - "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", - "582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Format Disabled", - "input": { - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ], - "remove": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": true, - "disableFormat": true, - "audienceId": "aud1", - "isRaw": true, - "type": "NA", - "subType": "ANYTHING", - "maxUserCount": "50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05", - "d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35", - "3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278", - "7931aa2a1bed855457d1ddf6bc06ab4406a9fba0579045a4d6ff78f9c07c440f", - "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22", - "252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111", - "7cfb46258a6f545f77cca49a27ded0bc69a56e16d0dcdf05ec843c0cc322145d", - "ABC", - "69deb728a28faee80ee80d8d5f97a5e2fd65758684f7412e535d19a19095369b", - "1dc362d22242a898483383061a98f0b41d725190f7bc00a962b6013b36dc2b81", - "fed1d872f6d540f4118582ec694270274e987b12f5dfe2057dddf1e12df2761a" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05", - "d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35", - "3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278", - "7931aa2a1bed855457d1ddf6bc06ab4406a9fba0579045a4d6ff78f9c07c440f", - "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22", - "252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111", - "7cfb46258a6f545f77cca49a27ded0bc69a56e16d0dcdf05ec843c0cc322145d", - "ABC", - "69deb728a28faee80ee80d8d5f97a5e2fd65758684f7412e535d19a19095369b", - "1dc362d22242a898483383061a98f0b41d725190f7bc00a962b6013b36dc2b81", - "fed1d872f6d540f4118582ec694270274e987b12f5dfe2057dddf1e12df2761a" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "No Hashing and Format Disabled", - "input": { - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ], - "remove": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": false, - "disableFormat": true, - "audienceId": "aud1", - "isRaw": true, - "type": "NA", - "subType": "ANYTHING", - "maxUserCount": "50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Hash Required and Verify skipped", - "input": { - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": null, - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": true, - "disableFormat": false, - "skipVerify": true, - "audienceId": "aud1", - "isRaw": true, - "type": "UNKNOWN", - "subType": "ANYTHING", - "maxUserCount": "50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "type": "UNKNOWN", - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05", - "a953f09a1b6b6725b81956e9ad0b1eb49e3ad40004c04307ef8af6246a054116", - "3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278", - "7931aa2a1bed855457d1ddf6bc06ab4406a9fba0579045a4d6ff78f9c07c440f", - null, - "252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111", - "db0683221aebc02cc034b65ebcf7d1bddd1eb199e33fd23a31931947d13a11bc", - "abc", - "4a70fe9aa6436e02c2dea340fbd1e352e4ef2d8ce6ca52ad25d4b95471fc8bf2", - "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", - "582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf" - ] - ] - } - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "All the field values are null", - "input": { - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "EMAIL": null, - "DOBM": null, - "DOBD": null, - "DOBY": null, - "PHONE": null, - "GEN": null, - "FI": null, - "MADID": null, - "ZIP": null, - "ST": null, - "COUNTRY": null - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": true, - "disableFormat": false, - "audienceId": "aud1", - "isRaw": true, - "type": "UNKNOWN", - "subType": "ANYTHING", - "maxUserCount": "50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "type": "UNKNOWN", - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [[null, null, null, null, null, null, null, null, null, null, null]] - } - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Schema Phone Field Missing", - "input": { - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": null, - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": true, - "disableFormat": false, - "skipVerify": false, - "audienceId": "aud1", - "isRaw": false, - "type": "UNKNOWN", - "subType": "ANYTHING", - "maxUserCount": "50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "data_source": { - "type": "UNKNOWN", - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05", - "a953f09a1b6b6725b81956e9ad0b1eb49e3ad40004c04307ef8af6246a054116", - "3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278", - "7931aa2a1bed855457d1ddf6bc06ab4406a9fba0579045a4d6ff78f9c07c440f", - null, - "252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111", - "db0683221aebc02cc034b65ebcf7d1bddd1eb199e33fd23a31931947d13a11bc", - "abc", - "4a70fe9aa6436e02c2dea340fbd1e352e4ef2d8ce6ca52ad25d4b95471fc8bf2", - "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", - "582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf" - ] - ] - } - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Batching according payload size", - "input": { - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": false, - "disableFormat": true, - "audienceId": "aud1", - "isRaw": true, - "type": "NA", - "subType": "ANYTHING", - "maxUserCount": "1000" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ] - } -] diff --git a/test/__tests__/data/fb_custom_audience_router.json b/test/__tests__/data/fb_custom_audience_router.json deleted file mode 100644 index 6191804c0d8..00000000000 --- a/test/__tests__/data/fb_custom_audience_router.json +++ /dev/null @@ -1,457 +0,0 @@ -[ - { - "description": "Test Case 9", - "input": [ - { - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ], - "remove": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "metadata": { - "jobId": 1 - }, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": false, - "disableFormat": false, - "audienceId": "aud1", - "isRaw": true, - "type": "UNKNOWN", - "subType": "ANYTHING", - "maxUserCount": "50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ], - "remove": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "f", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ] - } - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": false, - "disableFormat": false, - "audienceId": "aud1", - "isRaw": true, - "type": "NA", - "subType": "ANYTHING", - "maxUserCount": "50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - } - ], - "output": [ - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "type": "UNKNOWN", - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "f", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "type": "UNKNOWN", - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "f", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": false, - "disableFormat": false, - "audienceId": "aud1", - "isRaw": true, - "type": "UNKNOWN", - "subType": "ANYTHING", - "maxUserCount": "50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "f", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "data_source": { - "sub_type": "ANYTHING" - }, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "f", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "accessToken": "ABC", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "isHashRequired": false, - "disableFormat": false, - "audienceId": "aud1", - "isRaw": true, - "type": "NA", - "subType": "ANYTHING", - "maxUserCount": "50" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - } - ] - } -] diff --git a/test/__tests__/data/fb_custom_audience_router_rETL_input.json b/test/__tests__/data/fb_custom_audience_router_rETL_input.json deleted file mode 100644 index c0c95a2bc33..00000000000 --- a/test/__tests__/data/fb_custom_audience_router_rETL_input.json +++ /dev/null @@ -1,26251 +0,0 @@ -[ - { - "message": { - "sentAt": "2023-03-30 06:42:55.991938402 +0000 UTC", - "userId": "2MUWghI7u85n91dd1qzGyswpZan-2MUWqbQqvctyfMGqU9QCNadpKNy", - "channel": "sources", - "messageId": "4d906837-031d-4d34-b97a-62fdf51b4d3a", - "event": "Add_Audience", - "context": { - "destinationFields": "EMAIL, FN", - "externalId": [ - { - "type": "FB_CUSTOM_AUDIENCE-23848494844100489", - "identifierType": "EMAIL" - } - ], - "mappedToDestination": "true", - "sources": { - "job_run_id": "cgiiurt8um7k7n5dq480", - "task_run_id": "cgiiurt8um7k7n5dq48g", - "job_id": "2MUWghI7u85n91dd1qzGyswpZan", - "version": "895/merge" - } - }, - "recordId": "725ad989-6750-4839-b46b-0ddb3b8e5aa2/1/10", - "rudderId": "85c49666-c628-4835-937b-8f1d9ee7a724", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "dede@gmail.com", - "FN": "vishwa" - }, - { - "EMAIL": "fchsjjn@gmail.com", - "FN": "hskks" - }, - { - "EMAIL": "fghjnbjk@gmail.com", - "FN": "ghfry" - }, - { - "EMAIL": "gvhjkk@gmail.com", - "FN": "hbcwqe" - }, - { - "EMAIL": "qsdwert@egf.com", - "FN": "dsfds" - }, - { - "EMAIL": "ascscxsaca@com", - "FN": "scadscdvcda" - }, - { - "EMAIL": "abc@gmail.com", - "FN": "subscribed" - }, - { - "EMAIL": "ddwnkl@gmail.com", - "FN": "subscribed" - }, - { - "EMAIL": "subscribed@eewrfrd.com", - "FN": "pending" - }, - { - "EMAIL": "acsdvdf@ddfvf.com", - "FN": "pending" - } - ] - } - }, - "type": "audienceList", - "anonymousId": "63228b51-394e-4ca2-97a0-427f6187480b" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "disableFormat": false, - "isHashRequired": true, - "isRaw": false, - "maxUserCount": "50", - "oneTrustCookieCategories": [], - "skipVerify": false, - "subType": "NA", - "type": "NA", - "userSchema": ["EMAIL"] - }, - "secretConfig": {}, - "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", - "name": "FB_CUSTOM_AUDIENCE", - "enabled": true, - "workspaceId": "1TSN08muJTZwH8iCDmnnRt1pmLd", - "deleted": false, - "createdAt": "2020-12-30T08:39:32.005Z", - "updatedAt": "2021-02-03T16:22:31.374Z", - "destinationDefinition": { - "id": "1aIXqM806xAVm92nx07YwKbRrO9", - "name": "FB_CUSTOM_AUDIENCE", - "displayName": "FB_CUSTOM_AUDIENCE", - "createdAt": "2020-04-09T09:24:31.794Z", - "updatedAt": "2021-01-11T11:03:28.103Z" - }, - "transformations": [], - "isConnectionEnabled": true, - "isProcessorEnabled": true - }, - "metadata": { - "jobId": 2 - } - }, - { - "message": { - "sentAt": "2023-03-30 06:42:55.991938402 +0000 UTC", - "userId": "2MUWghI7u85n91dd1qzGyswpZan-2MUWqbQqvctyfMGqU9QCNadpKNy", - "channel": "sources", - "messageId": "4d906837-031d-4d34-b97a-62fdf51b4d3a", - "event": "Add_Audience", - "context": { - "externalId": [ - { - "type": "FB_CUSTOM_AUDIENCE-23848494844100489", - "identifierType": "EMAIL" - } - ], - "mappedToDestination": "true", - "sources": { - "job_run_id": "cgiiurt8um7k7n5dq480", - "task_run_id": "cgiiurt8um7k7n5dq48g", - "job_id": "2MUWghI7u85n91dd1qzGyswpZan", - "version": "895/merge" - } - }, - "recordId": "725ad989-6750-4839-b46b-0ddb3b8e5aa2/1/10", - "rudderId": "85c49666-c628-4835-937b-8f1d9ee7a724", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "dede@gmail.com", - "FN": "vishwa" - }, - { - "EMAIL": "fchsjjn@gmail.com", - "FN": "hskks" - }, - { - "EMAIL": "fghjnbjk@gmail.com", - "FN": "ghfry" - }, - { - "EMAIL": "gvhjkk@gmail.com", - "FN": "hbcwqe" - }, - { - "EMAIL": "qsdwert@egf.com", - "FN": "dsfds" - }, - { - "EMAIL": "ascscxsaca@com", - "FN": "scadscdvcda" - }, - { - "EMAIL": "abc@gmail.com", - "FN": "subscribed" - }, - { - "EMAIL": "ddwnkl@gmail.com", - "FN": "subscribed" - }, - { - "EMAIL": "subscribed@eewrfrd.com", - "FN": "pending" - }, - { - "EMAIL": "acsdvdf@ddfvf.com", - "FN": "pending" - } - ] - } - }, - "type": "audienceList", - "anonymousId": "63228b51-394e-4ca2-97a0-427f6187480b" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "disableFormat": false, - "isHashRequired": true, - "isRaw": false, - "maxUserCount": "50", - "oneTrustCookieCategories": [], - "skipVerify": false, - "subType": "NA", - "type": "NA", - "userSchema": ["EMAIL"] - }, - "secretConfig": {}, - "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", - "name": "FB_CUSTOM_AUDIENCE", - "enabled": true, - "workspaceId": "1TSN08muJTZwH8iCDmnnRt1pmLd", - "deleted": false, - "createdAt": "2020-12-30T08:39:32.005Z", - "updatedAt": "2021-02-03T16:22:31.374Z", - "destinationDefinition": { - "id": "1aIXqM806xAVm92nx07YwKbRrO9", - "name": "FB_CUSTOM_AUDIENCE", - "displayName": "FB_CUSTOM_AUDIENCE", - "createdAt": "2020-04-09T09:24:31.794Z", - "updatedAt": "2021-01-11T11:03:28.103Z" - }, - "transformations": [], - "isConnectionEnabled": true, - "isProcessorEnabled": true - }, - "metadata": { - "jobId": 2 - } - }, - { - "message": { - "sentAt": "2023-03-30 06:42:55.991938402 +0000 UTC", - "userId": "2MUWghI7u85n91dd1qzGyswpZan-2MUWqbQqvctyfMGqU9QCNadpKNy", - "channel": "sources", - "messageId": "4d906837-031d-4d34-b97a-62fdf51b4d3a", - "event": "Add_Audience", - "context": { - "destinationFields": "EMAIL, DOBM, DOBD, DOBY, PHONE, GEN, FI, MADID, ZIP, ST, COUNTRY", - "externalId": [ - { - "type": "FB_CUSTOM_AUDIENCE-aud1", - "identifierType": "EMAIL" - } - ], - "mappedToDestination": "true", - "sources": { - "job_run_id": "cgiiurt8um7k7n5dq480", - "task_run_id": "cgiiurt8um7k7n5dq48g", - "job_id": "2MUWghI7u85n91dd1qzGyswpZan", - "version": "895/merge" - } - }, - "recordId": "725ad989-6750-4839-b46b-0ddb3b8e5aa2/1/10", - "rudderId": "85c49666-c628-4835-937b-8f1d9ee7a724", - "properties": { - "listData": { - "add": [ - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - }, - { - "EMAIL": "shrouti@abc.com", - "DOBM": "2", - "DOBD": "13", - "DOBY": "2013", - "PHONE": "@09432457768", - "GEN": "female", - "FI": "Ms.", - "MADID": "ABC", - "ZIP": "ZIP ", - "ST": "123abc ", - "COUNTRY": "IN" - } - ] - } - }, - "type": "audienceList", - "anonymousId": "63228b51-394e-4ca2-97a0-427f6187480b" - }, - "destination": { - "Config": { - "accessToken": "ABC", - "disableFormat": false, - "isHashRequired": false, - "isRaw": true, - "maxUserCount": "1000", - "oneTrustCookieCategories": [], - "skipVerify": false, - "subType": "NA", - "type": "NA", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ] - }, - "secretConfig": {}, - "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", - "name": "FB_CUSTOM_AUDIENCE", - "enabled": true, - "workspaceId": "1TSN08muJTZwH8iCDmnnRt1pmLd", - "deleted": false, - "createdAt": "2020-12-30T08:39:32.005Z", - "updatedAt": "2021-02-03T16:22:31.374Z", - "destinationDefinition": { - "id": "1aIXqM806xAVm92nx07YwKbRrO9", - "name": "FB_CUSTOM_AUDIENCE", - "displayName": "FB_CUSTOM_AUDIENCE", - "createdAt": "2020-04-09T09:24:31.794Z", - "updatedAt": "2021-01-11T11:03:28.103Z" - }, - "transformations": [], - "isConnectionEnabled": true, - "isProcessorEnabled": true - }, - "metadata": { - "jobId": 2 - } - } -] diff --git a/test/__tests__/data/fb_custom_audience_router_rETL_output.json b/test/__tests__/data/fb_custom_audience_router_rETL_output.json deleted file mode 100644 index 375675a5acf..00000000000 --- a/test/__tests__/data/fb_custom_audience_router_rETL_output.json +++ /dev/null @@ -1,26266 +0,0 @@ -[ - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/23848494844100489/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "schema": ["EMAIL", "FN"], - "data": [ - ["7625cab24612c37df6d2f724721bb38a25095d0295e29b807238ee188b8aca43", null], - ["b2b4abadd72190af54305c0d3abf1977fec4935016bb13ff28040d5712318dfd", null], - ["c4b007d1c3c9a5d31bd4082237a913e8e0db1767225c2a5ef33be2716df005fa", null], - ["94639be1bd9f17c05820164e9d71ef78558f117a9e8bfab43cf8015e08aa0b27", null], - ["39b456cfb4bb07f9e6bb18698aa173171ca49c731fccc4790e9ecea808d24ae6", null], - ["769f73387add781a481ca08300008a08fb2f1816aaed196137efc2e05976d711", null], - ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08", null], - ["da2d431121cd10578fd81f8f80344b06db59ea2d05a7b5d27536c8789ddae8f0", null], - ["b100c2ec0718fe6b4805b623aeec6710719d042ceea55f5c8135b010ec1c7b36", null], - ["0c1d1b0ba547a742013366d6fbc8f71dd77f566d94e41ed9f828a74b96928161", null] - ] - } - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "accessToken": "ABC", - "disableFormat": false, - "isHashRequired": true, - "isRaw": false, - "maxUserCount": "50", - "oneTrustCookieCategories": [], - "skipVerify": false, - "subType": "NA", - "type": "NA", - "userSchema": ["EMAIL"] - }, - "secretConfig": {}, - "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", - "name": "FB_CUSTOM_AUDIENCE", - "enabled": true, - "workspaceId": "1TSN08muJTZwH8iCDmnnRt1pmLd", - "deleted": false, - "createdAt": "2020-12-30T08:39:32.005Z", - "updatedAt": "2021-02-03T16:22:31.374Z", - "destinationDefinition": { - "id": "1aIXqM806xAVm92nx07YwKbRrO9", - "name": "FB_CUSTOM_AUDIENCE", - "displayName": "FB_CUSTOM_AUDIENCE", - "createdAt": "2020-04-09T09:24:31.794Z", - "updatedAt": "2021-01-11T11:03:28.103Z" - }, - "transformations": [], - "isConnectionEnabled": true, - "isProcessorEnabled": true - } - }, - { - "destination": { - "Config": { - "accessToken": "ABC", - "disableFormat": false, - "isHashRequired": true, - "isRaw": false, - "maxUserCount": "50", - "oneTrustCookieCategories": [], - "skipVerify": false, - "subType": "NA", - "type": "NA", - "userSchema": ["EMAIL"] - }, - "secretConfig": {}, - "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", - "name": "FB_CUSTOM_AUDIENCE", - "enabled": true, - "workspaceId": "1TSN08muJTZwH8iCDmnnRt1pmLd", - "deleted": false, - "createdAt": "2020-12-30T08:39:32.005Z", - "updatedAt": "2021-02-03T16:22:31.374Z", - "destinationDefinition": { - "id": "1aIXqM806xAVm92nx07YwKbRrO9", - "name": "FB_CUSTOM_AUDIENCE", - "displayName": "FB_CUSTOM_AUDIENCE", - "createdAt": "2020-04-09T09:24:31.794Z", - "updatedAt": "2021-01-11T11:03:28.103Z" - }, - "transformations": [], - "isConnectionEnabled": true, - "isProcessorEnabled": true - }, - "error": "context.destinationFields is required property for events mapped to destination ", - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 400, - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/aud1/users", - "headers": {}, - "params": { - "access_token": "ABC", - "payload": { - "is_raw": true, - "schema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ], - "data": [ - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ], - [ - "shrouti@abc.com", - "2", - "13", - "2013", - "@09432457768", - "female", - "Ms.", - "ABC", - "ZIP ", - "123abc ", - "IN" - ] - ] - } - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "accessToken": "ABC", - "disableFormat": false, - "isHashRequired": false, - "isRaw": true, - "maxUserCount": "1000", - "oneTrustCookieCategories": [], - "skipVerify": false, - "subType": "NA", - "type": "NA", - "userSchema": [ - "EMAIL", - "DOBM", - "DOBD", - "DOBY", - "PHONE", - "GEN", - "FI", - "MADID", - "ZIP", - "ST", - "COUNTRY" - ] - }, - "secretConfig": {}, - "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", - "name": "FB_CUSTOM_AUDIENCE", - "enabled": true, - "workspaceId": "1TSN08muJTZwH8iCDmnnRt1pmLd", - "deleted": false, - "createdAt": "2020-12-30T08:39:32.005Z", - "updatedAt": "2021-02-03T16:22:31.374Z", - "destinationDefinition": { - "id": "1aIXqM806xAVm92nx07YwKbRrO9", - "name": "FB_CUSTOM_AUDIENCE", - "displayName": "FB_CUSTOM_AUDIENCE", - "createdAt": "2020-04-09T09:24:31.794Z", - "updatedAt": "2021-01-11T11:03:28.103Z" - }, - "transformations": [], - "isConnectionEnabled": true, - "isProcessorEnabled": true - } - } -] diff --git a/test/__tests__/data/fb_input.json b/test/__tests__/data/fb_input.json deleted file mode 100644 index 95afdaf1352..00000000000 --- a/test/__tests__/data/fb_input.json +++ /dev/null @@ -1,1455 +0,0 @@ -[ - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi", - "type": "Android" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2, - "win_amount": 0, - "products": [ - { - "product_id": 123 - }, - { - "product_id": 345 - }, - { - "product_id": 567 - } - ] - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "user_properties": { - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "fb_profile": "0", - "game_fps": 30, - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": false, - "level": 6, - "lifetime_gem_balance": 0, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2 - } - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi", - "type": "Android" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "currency": "GBP", - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2, - "win_amount": 0, - "products": [ - { - "product_id": 123 - }, - { - "product_id": 345 - }, - { - "product_id": 567 - } - ] - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "user_properties": { - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "fb_profile": "0", - "game_fps": 30, - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": false, - "level": 6, - "lifetime_gem_balance": 0, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2 - } - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi", - "type": "Android" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": "400", - "currency": "GBP", - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2, - "win_amount": 0, - "products": [ - { - "product_id": "123" - }, - { - "product_id": "345" - }, - { - "product_id": "567" - } - ] - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "user_properties": { - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "fb_profile": "0", - "game_fps": 30, - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": false, - "level": 6, - "lifetime_gem_balance": 0, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2 - } - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi", - "advertisingId": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "type": "Android" - }, - "ip": "1.2.3.4", - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "width": "640", - "height": "480", - "density": 1.23456 - }, - "timezone": "Europe/Berlin", - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "firstName": "test", - "lastName": "last", - "gender": 1234, - "phone": "+91-9831311135" - } - }, - "event": "spin_result", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "currency": "GBP", - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2, - "win_amount": 0, - "products": [ - { - "product_id": "123" - }, - { - "product_id": "345" - }, - { - "product_id": "567" - } - ] - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "user_properties": { - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "fb_profile": "0", - "game_fps": 30, - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": false, - "level": 6, - "lifetime_gem_balance": 0, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2 - } - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi", - "advertisingId": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "type": "Android" - }, - "ip": "1.2.3.4", - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "width": "640", - "height": "480", - "density": 1.23456 - }, - "timezone": "Europe/Berlin", - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "firstName": "test", - "lastName": "last", - "gender": "Male", - "phone": "+91-9831311135" - } - }, - "event": "spin_result", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "currency": "GBP", - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2, - "win_amount": 0, - "products": [ - { - "product_id": "123" - }, - { - "product_id": "345" - }, - { - "product_id": "567" - } - ] - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "user_properties": { - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "fb_profile": "0", - "game_fps": 30, - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": false, - "level": 6, - "lifetime_gem_balance": 0, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2 - } - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi", - "type": "Android" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "name": "Main.1233" - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "screen" - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi", - "type": "Android" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "name": "Main" - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "screen" - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi", - "type": "Android" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "New.Event", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "name": "Main" - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track" - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi", - "type": "iOS" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "iOS", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "name": "Viewed Main Screen1 by expicit call Screen" - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "screen" - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi", - "type": "Android" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "Android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "name": "Viewed Main Screen1 by expicit call Screen" - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "screen" - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi", - "type": "Android" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "Android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "name": "Viewed Main Screen1 by expicit call Screen" - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "screen" - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi", - "advertisingId": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "type": "Android" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "firstName": "test", - "lastName": "last", - "gender": "Male", - "phone": "919831311135" - } - }, - "event": "spin_result", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "currency": "GBP", - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2, - "win_amount": 0, - "products": [ - { - "product_id": "123" - }, - { - "product_id": "345" - }, - { - "product_id": "567" - } - ] - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "user_properties": { - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "fb_profile": "0", - "game_fps": 30, - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": false, - "level": 6, - "lifetime_gem_balance": 0, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2 - } - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi", - "advertisingId": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "type": "Android" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "firstName": "test", - "lastName": "last", - "gender": "Male", - "phone": "+0091-9831311135" - } - }, - "event": "spin_result", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "currency": "GBP", - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2, - "win_amount": 0, - "products": [ - { - "product_id": "123" - }, - { - "product_id": "345" - }, - { - "product_id": "567" - } - ] - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "user_properties": { - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "fb_profile": "0", - "game_fps": 30, - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": false, - "level": 6, - "lifetime_gem_balance": 0, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2 - } - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "type": "watchos" - }, - "network": { - "carrier": "Banglalink" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "name": "Viewed Main Screen1 by expicit call Screen" - }, - "request_ip": "2.3.4.5", - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "screen" - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi", - "advertisingId": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "firstName": "test", - "lastName": "last", - "gender": "Male", - "phone": "919831311135" - } - }, - "event": "spin_result", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "currency": "GBP", - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2, - "win_amount": 0, - "products": [ - { - "product_id": "123" - }, - { - "product_id": "345" - }, - { - "product_id": "567" - } - ] - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "user_properties": { - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "fb_profile": "0", - "game_fps": 30, - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": false, - "level": 6, - "lifetime_gem_balance": 0, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2 - } - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi", - "type": "Android" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 0, - "currency": "INR", - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2, - "win_amount": 0, - "products": [ - { - "product_id": "123" - }, - { - "product_id": "345" - } - ] - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "user_properties": { - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "fb_profile": "0", - "game_fps": 30, - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": false, - "level": 6, - "lifetime_gem_balance": 0, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2 - } - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - } -] \ No newline at end of file diff --git a/test/__tests__/data/fb_output.json b/test/__tests__/data/fb_output.json deleted file mode 100644 index a974fffe7ee..00000000000 --- a/test/__tests__/data/fb_output.json +++ /dev/null @@ -1,310 +0,0 @@ -[ - { - "message": "If properties.revenue is present, properties.currency is required." - }, - { - "message": "{\"product_id\":123} is not of valid type" - }, - { - "message": "properties.revenue is not of valid type" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "event": "CUSTOM_APP_EVENTS", - "advertiser_id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "ud[em]": "48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08", - "ud[fn]": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", - "ud[ln]": "3547cb112ac4489af2310c0626cdba6f3097a2ad5a3b42ddd3b59c76c7a079a3", - "ud[ph]": "588211a01b10feacbf7988d97a06e86c18af5259a7f457fd8759b7f7409a7d1f", - "extinfo": "[\"a2\",\"\",\"\",\"\",\"8.1.0\",\"Redmi 6\",\"\",\"\",\"Banglalink\",640,480,\"1.23\",0,0,0,\"Europe/Berlin\"]", - "app_user_id": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "custom_events": "[{\"_logTime\":1567333011693,\"_eventName\":\"spin_result\",\"_valueToSum\":400,\"fb_currency\":\"GBP\",\"additional_bet_index\":0,\"battle_id\":\"N/A\",\"bet_amount\":9,\"bet_level\":1,\"bet_multiplier\":1,\"coin_balance\":9466052,\"current_module_name\":\"CasinoGameModule\",\"days_in_game\":0,\"extra_param\":\"N/A\",\"fb_profile\":\"0\",\"featureGameType\":\"N/A\",\"game_fps\":30,\"game_id\":\"fireEagleBase\",\"game_name\":\"FireEagleSlots\",\"gem_balance\":0,\"graphicsQuality\":\"HD\",\"idfa\":\"2bf99787-33d2-4ae2-a76a-c49672f97252\",\"internetReachability\":\"ReachableViaLocalAreaNetwork\",\"isLowEndDevice\":\"False\",\"is_auto_spin\":\"False\",\"is_turbo\":\"False\",\"isf\":\"False\",\"ishighroller\":\"False\",\"jackpot_win_amount\":90,\"jackpot_win_type\":\"Silver\",\"level\":6,\"lifetime_gem_balance\":0,\"no_of_spin\":1,\"player_total_battles\":0,\"player_total_shields\":0,\"start_date\":\"2019-08-01\",\"total_payments\":0,\"tournament_id\":\"T1561970819\",\"userId\":\"c82cbdff-e5be-4009-ac78-cdeea09ab4b1\",\"versionSessionCount\":2,\"win_amount\":0,\"fb_content_id\":[\"123\",\"345\",\"567\"]}]", - "advertiser_tracking_enabled": "0", - "application_tracking_enabled": "0" - }, - "JSON": {} - }, - "endpoint": "https://graph.facebook.com/v17.0/RudderFbApp/activities", - "files": {}, - "headers": { - "x-forwarded-for": "1.2.3.4" - }, - "method": "POST", - "params": {}, - "statusCode": 200, - "type": "REST", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "version": "1" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "event": "CUSTOM_APP_EVENTS", - "advertiser_id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "ud[em]": "48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08", - "ud[fn]": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", - "ud[ge]": "62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a", - "ud[ln]": "3547cb112ac4489af2310c0626cdba6f3097a2ad5a3b42ddd3b59c76c7a079a3", - "ud[ph]": "588211a01b10feacbf7988d97a06e86c18af5259a7f457fd8759b7f7409a7d1f", - "extinfo": "[\"a2\",\"\",\"\",\"\",\"8.1.0\",\"Redmi 6\",\"\",\"\",\"Banglalink\",640,480,\"1.23\",0,0,0,\"Europe/Berlin\"]", - "app_user_id": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "custom_events": "[{\"_logTime\":1567333011693,\"_eventName\":\"spin_result\",\"_valueToSum\":400,\"fb_currency\":\"GBP\",\"additional_bet_index\":0,\"battle_id\":\"N/A\",\"bet_amount\":9,\"bet_level\":1,\"bet_multiplier\":1,\"coin_balance\":9466052,\"current_module_name\":\"CasinoGameModule\",\"days_in_game\":0,\"extra_param\":\"N/A\",\"fb_profile\":\"0\",\"featureGameType\":\"N/A\",\"game_fps\":30,\"game_id\":\"fireEagleBase\",\"game_name\":\"FireEagleSlots\",\"gem_balance\":0,\"graphicsQuality\":\"HD\",\"idfa\":\"2bf99787-33d2-4ae2-a76a-c49672f97252\",\"internetReachability\":\"ReachableViaLocalAreaNetwork\",\"isLowEndDevice\":\"False\",\"is_auto_spin\":\"False\",\"is_turbo\":\"False\",\"isf\":\"False\",\"ishighroller\":\"False\",\"jackpot_win_amount\":90,\"jackpot_win_type\":\"Silver\",\"level\":6,\"lifetime_gem_balance\":0,\"no_of_spin\":1,\"player_total_battles\":0,\"player_total_shields\":0,\"start_date\":\"2019-08-01\",\"total_payments\":0,\"tournament_id\":\"T1561970819\",\"userId\":\"c82cbdff-e5be-4009-ac78-cdeea09ab4b1\",\"versionSessionCount\":2,\"win_amount\":0,\"fb_content_id\":[\"123\",\"345\",\"567\"]}]", - "advertiser_tracking_enabled": "0", - "application_tracking_enabled": "0" - }, - "JSON": {} - }, - "endpoint": "https://graph.facebook.com/v17.0/RudderFbApp/activities", - "files": {}, - "headers": { - "x-forwarded-for": "1.2.3.4" - }, - "method": "POST", - "params": {}, - "statusCode": 200, - "type": "REST", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "version": "1" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/RudderFbApp/activities", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "extinfo": "[\"a2\",\"\",\"\",\"\",\"8.1.0\",\"Redmi 6\",\"\",\"\",\"Banglalink\",0,100,\"50.00\",0,0,0,\"\"]", - "custom_events": "[{\"_logTime\":1567333011693,\"_eventName\":\"Viewed Screen\",\"fb_description\":\"Main.1233\"}]", - "ud[em]": "48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08", - "advertiser_tracking_enabled": "0", - "application_tracking_enabled": "0", - "event": "CUSTOM_APP_EVENTS" - } - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/RudderFbApp/activities", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "extinfo": "[\"a2\",\"\",\"\",\"\",\"8.1.0\",\"Redmi 6\",\"\",\"\",\"Banglalink\",0,100,\"50.00\",0,0,0,\"\"]", - "custom_events": "[{\"_logTime\":1567333011693,\"_eventName\":\"Viewed Main Screen\",\"fb_description\":\"Main\"}]", - "ud[em]": "48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08", - "advertiser_tracking_enabled": "0", - "application_tracking_enabled": "0", - "event": "CUSTOM_APP_EVENTS" - } - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "statusCode": 200 - }, - { - "message": "Event name New.Event is not a valid FB APP event name.It must match the regex ^[0-9a-zA-Z_][0-9a-zA-Z _-]{0,39}$." - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/RudderFbApp/activities", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "extinfo": "[\"i2\",\"\",\"\",\"\",\"8.1.0\",\"Redmi 6\",\"\",\"\",\"Banglalink\",0,100,\"50.00\",0,0,0,\"\"]", - "custom_events": "[{\"_logTime\":1567333011693,\"_eventName\":\"Viewed Screen\",\"fb_description\":\"Viewed Main Screen1 by expicit call Screen\"}]", - "ud[em]": "48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08", - "advertiser_tracking_enabled": "0", - "application_tracking_enabled": "0", - "event": "CUSTOM_APP_EVENTS" - } - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/RudderFbApp/activities", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "extinfo": "[\"a2\",\"\",\"\",\"\",\"8.1.0\",\"Redmi 6\",\"\",\"\",\"Banglalink\",0,100,\"50.00\",0,0,0,\"\"]", - "custom_events": "[{\"_logTime\":1567333011693,\"_eventName\":\"Viewed Screen\",\"fb_description\":\"Viewed Main Screen1 by expicit call Screen\"}]", - "ud[em]": "48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08", - "advertiser_tracking_enabled": "0", - "application_tracking_enabled": "0", - "event": "CUSTOM_APP_EVENTS" - } - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/RudderFbApp/activities", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "extinfo": "[\"a2\",\"\",\"\",\"\",\"8.1.0\",\"Redmi 6\",\"\",\"\",\"Banglalink\",0,100,\"50.00\",0,0,0,\"\"]", - "custom_events": "[{\"_logTime\":1567333011693,\"_eventName\":\"Viewed Screen\",\"fb_description\":\"Viewed Main Screen1 by expicit call Screen\"}]", - "ud[em]": "48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08", - "advertiser_tracking_enabled": "0", - "application_tracking_enabled": "0", - "event": "CUSTOM_APP_EVENTS" - } - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/RudderFbApp/activities", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "extinfo": "[\"a2\",\"\",\"\",\"\",\"8.1.0\",\"Redmi 6\",\"\",\"\",\"Banglalink\",0,100,\"50.00\",0,0,0,\"\"]", - "custom_events": "[{\"_logTime\":1567333011693,\"_eventName\":\"spin_result\",\"_valueToSum\":400,\"fb_currency\":\"GBP\",\"additional_bet_index\":0,\"battle_id\":\"N/A\",\"bet_amount\":9,\"bet_level\":1,\"bet_multiplier\":1,\"coin_balance\":9466052,\"current_module_name\":\"CasinoGameModule\",\"days_in_game\":0,\"extra_param\":\"N/A\",\"fb_profile\":\"0\",\"featureGameType\":\"N/A\",\"game_fps\":30,\"game_id\":\"fireEagleBase\",\"game_name\":\"FireEagleSlots\",\"gem_balance\":0,\"graphicsQuality\":\"HD\",\"idfa\":\"2bf99787-33d2-4ae2-a76a-c49672f97252\",\"internetReachability\":\"ReachableViaLocalAreaNetwork\",\"isLowEndDevice\":\"False\",\"is_auto_spin\":\"False\",\"is_turbo\":\"False\",\"isf\":\"False\",\"ishighroller\":\"False\",\"jackpot_win_amount\":90,\"jackpot_win_type\":\"Silver\",\"level\":6,\"lifetime_gem_balance\":0,\"no_of_spin\":1,\"player_total_battles\":0,\"player_total_shields\":0,\"start_date\":\"2019-08-01\",\"total_payments\":0,\"tournament_id\":\"T1561970819\",\"userId\":\"c82cbdff-e5be-4009-ac78-cdeea09ab4b1\",\"versionSessionCount\":2,\"win_amount\":0,\"fb_content_id\":[\"123\",\"345\",\"567\"]}]", - "app_user_id": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "advertiser_id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "ud[em]": "48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08", - "ud[fn]": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", - "ud[ln]": "3547cb112ac4489af2310c0626cdba6f3097a2ad5a3b42ddd3b59c76c7a079a3", - "ud[ph]": "588211a01b10feacbf7988d97a06e86c18af5259a7f457fd8759b7f7409a7d1f", - "ud[ge]": "62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a", - "advertiser_tracking_enabled": "0", - "application_tracking_enabled": "0", - "event": "CUSTOM_APP_EVENTS" - } - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/RudderFbApp/activities", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "extinfo": "[\"a2\",\"\",\"\",\"\",\"8.1.0\",\"Redmi 6\",\"\",\"\",\"Banglalink\",0,100,\"50.00\",0,0,0,\"\"]", - "custom_events": "[{\"_logTime\":1567333011693,\"_eventName\":\"spin_result\",\"_valueToSum\":400,\"fb_currency\":\"GBP\",\"additional_bet_index\":0,\"battle_id\":\"N/A\",\"bet_amount\":9,\"bet_level\":1,\"bet_multiplier\":1,\"coin_balance\":9466052,\"current_module_name\":\"CasinoGameModule\",\"days_in_game\":0,\"extra_param\":\"N/A\",\"fb_profile\":\"0\",\"featureGameType\":\"N/A\",\"game_fps\":30,\"game_id\":\"fireEagleBase\",\"game_name\":\"FireEagleSlots\",\"gem_balance\":0,\"graphicsQuality\":\"HD\",\"idfa\":\"2bf99787-33d2-4ae2-a76a-c49672f97252\",\"internetReachability\":\"ReachableViaLocalAreaNetwork\",\"isLowEndDevice\":\"False\",\"is_auto_spin\":\"False\",\"is_turbo\":\"False\",\"isf\":\"False\",\"ishighroller\":\"False\",\"jackpot_win_amount\":90,\"jackpot_win_type\":\"Silver\",\"level\":6,\"lifetime_gem_balance\":0,\"no_of_spin\":1,\"player_total_battles\":0,\"player_total_shields\":0,\"start_date\":\"2019-08-01\",\"total_payments\":0,\"tournament_id\":\"T1561970819\",\"userId\":\"c82cbdff-e5be-4009-ac78-cdeea09ab4b1\",\"versionSessionCount\":2,\"win_amount\":0,\"fb_content_id\":[\"123\",\"345\",\"567\"]}]", - "app_user_id": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "advertiser_id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "ud[em]": "48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08", - "ud[fn]": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", - "ud[ln]": "3547cb112ac4489af2310c0626cdba6f3097a2ad5a3b42ddd3b59c76c7a079a3", - "ud[ph]": "588211a01b10feacbf7988d97a06e86c18af5259a7f457fd8759b7f7409a7d1f", - "ud[ge]": "62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a", - "advertiser_tracking_enabled": "0", - "application_tracking_enabled": "0", - "event": "CUSTOM_APP_EVENTS" - } - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/RudderFbApp/activities", - "headers": { - "x-forwarded-for": "2.3.4.5" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "extinfo": "[\"i2\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"Banglalink\",0,100,\"50.00\",0,0,0,\"\"]", - "custom_events": "[{\"_logTime\":1567333011693,\"_eventName\":\"Viewed Screen\",\"fb_description\":\"Viewed Main Screen1 by expicit call Screen\"}]", - "ud[em]": "48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08", - "advertiser_tracking_enabled": "0", - "application_tracking_enabled": "0", - "event": "CUSTOM_APP_EVENTS" - } - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "statusCode": 200 - }, - { - "message": "Extended device information i.e, \"context.device.type\" is required" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://graph.facebook.com/v17.0/RudderFbApp/activities", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "extinfo": "[\"a2\",\"\",\"\",\"\",\"8.1.0\",\"Redmi 6\",\"\",\"\",\"Banglalink\",0,100,\"50.00\",0,0,0,\"\"]", - "custom_events": "[{\"_logTime\":1567333011693,\"_eventName\":\"spin_result\",\"_valueToSum\":0,\"fb_currency\":\"INR\",\"additional_bet_index\":0,\"battle_id\":\"N/A\",\"bet_amount\":9,\"bet_level\":1,\"bet_multiplier\":1,\"coin_balance\":9466052,\"current_module_name\":\"CasinoGameModule\",\"days_in_game\":0,\"extra_param\":\"N/A\",\"fb_profile\":\"0\",\"featureGameType\":\"N/A\",\"game_fps\":30,\"game_id\":\"fireEagleBase\",\"game_name\":\"FireEagleSlots\",\"gem_balance\":0,\"graphicsQuality\":\"HD\",\"idfa\":\"2bf99787-33d2-4ae2-a76a-c49672f97252\",\"internetReachability\":\"ReachableViaLocalAreaNetwork\",\"isLowEndDevice\":\"False\",\"is_auto_spin\":\"False\",\"is_turbo\":\"False\",\"isf\":\"False\",\"ishighroller\":\"False\",\"jackpot_win_amount\":90,\"jackpot_win_type\":\"Silver\",\"level\":6,\"lifetime_gem_balance\":0,\"no_of_spin\":1,\"player_total_battles\":0,\"player_total_shields\":0,\"start_date\":\"2019-08-01\",\"total_payments\":0,\"tournament_id\":\"T1561970819\",\"userId\":\"c82cbdff-e5be-4009-ac78-cdeea09ab4b1\",\"versionSessionCount\":2,\"win_amount\":0,\"fb_content_id\":[\"123\",\"345\"]}]", - "ud[em]": "48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08", - "advertiser_tracking_enabled": "0", - "application_tracking_enabled": "0", - "event": "CUSTOM_APP_EVENTS" - } - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "statusCode": 200 - } -] \ No newline at end of file diff --git a/test/__tests__/data/fb_proxy_output.json b/test/__tests__/data/fb_proxy_output.json index e9dbf0d128e..12e06cff2ce 100644 --- a/test/__tests__/data/fb_proxy_output.json +++ b/test/__tests__/data/fb_proxy_output.json @@ -91,7 +91,7 @@ { "output": { "status": 400, - "message": "Object with ID 'PIXEL_ID' does not exist, cannot be loaded due to missing permissions, or does not support this operation", + "message": "Object with ID 'PIXEL_ID' / 'DATASET_ID' / 'AUDIENCE_ID' does not exist, cannot be loaded due to missing permissions, or does not support this operation", "destinationResponse": { "error": { "message": "Unsupported post request. Object with ID '1234567891234569' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api", diff --git a/test/__tests__/data/fb_router_input.json b/test/__tests__/data/fb_router_input.json deleted file mode 100644 index 8119e1c2228..00000000000 --- a/test/__tests__/data/fb_router_input.json +++ /dev/null @@ -1,245 +0,0 @@ -[ - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi", - "type": "Android" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2, - "win_amount": 0, - "products": [ - { - "product_id": 123 - }, - { - "product_id": 345 - }, - { - "product_id": 567 - } - ] - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "user_properties": { - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "fb_profile": "0", - "game_fps": 30, - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": false, - "level": 6, - "lifetime_gem_balance": 0, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2 - } - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "destination_props": { - "Fb": { - "app_id": "RudderFbApp" - } - }, - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi", - "type": "Android" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "screen": { - "height": "100", - "density": 50 - }, - "traits": { - "email": "abc@gmail.com", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "AM": true, - "All": false, - "GA": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "revenue": 400, - "currency": "GBP", - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2, - "win_amount": 0, - "products": [ - { - "product_id": 123 - }, - { - "product_id": 345 - }, - { - "product_id": 567 - } - ] - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "user_properties": { - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "fb_profile": "0", - "game_fps": 30, - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": false, - "level": 6, - "lifetime_gem_balance": 0, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2 - } - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - } - } -] diff --git a/test/__tests__/data/fb_router_output.json b/test/__tests__/data/fb_router_output.json deleted file mode 100644 index a0ee8a8edca..00000000000 --- a/test/__tests__/data/fb_router_output.json +++ /dev/null @@ -1,40 +0,0 @@ -[ - { - "metadata": [ - { - "jobId": 2 - } - ], - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - }, - "destination": { - "Config": { - "appID": "RudderFbApp" - } - }, - "batched": false, - "statusCode": 400, - "error": "If properties.revenue is present, properties.currency is required." - }, - { - "metadata": [ - { - "jobId": 2 - } - ], - "destination": { - "Config": { - "appID": "RudderFbApp" - } - }, - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - }, - "batched": false, - "statusCode": 400, - "error": "{\"product_id\":123} is not of valid type" - } -] diff --git a/test/__tests__/data/firehose_input.json b/test/__tests__/data/firehose_input.json deleted file mode 100644 index 49691d85d7c..00000000000 --- a/test/__tests__/data/firehose_input.json +++ /dev/null @@ -1,431 +0,0 @@ -[ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "region": "us-east-1", - "accessKeyID": "abc", - "accessKey": "xyz", - "mapEvents": [ - { - "from": "track", - "to": "ruchira-test-firehose" - } - ] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "region": "us-east-1", - "accessKeyID": "abc", - "accessKey": "xyz", - "mapEvents": [ - { - "from": "product added", - "to": "ruchira-test-firehose" - } - ] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "region": "us-east-1", - "accessKeyID": "abc", - "accessKey": "xyz", - "mapEvents": [ - { - "from": "*", - "to": "ruchira-test-firehose" - } - ] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "region": "us-east-1", - "accessKeyID": "abc", - "accessKey": "xyz", - "mapEvents": [ - { - "from": "test event", - "to": "ruchira-test-firehose" - } - ] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "region": "us-east-1", - "accessKeyID": "abc", - "accessKey": "xyz", - "mapEvents": [ - { - "from": "*", - "to": "ruchira-test-firehose" - }, - { - "from": "track", - "to": "ruchira-test-firehose-1" - }, - { - "from": "product added", - "to": "ruchira-test-firehose-2" - } - ] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "region": "us-east-1", - "accessKeyID": "abc", - "accessKey": "xyz", - "mapEvents": [ - { - "from": "*", - "to": "ruchira-test-firehose" - }, - { - "from": "track", - "to": "ruchira-test-firehose-1" - } - ] - } - } - }, - { - "destination": { - "Config": { - "region": "us-east-1", - "accessKeyID": "abc", - "accessKey": "xyz", - "mapEvents": [ - { - "from": "*", - "to": "ruchira-test-firehose" - }, - { - "from": "product added", - "to": "ruchira-test-firehose-1" - } - ] - }, - "DestinationDefinition": { - "DisplayName": "firehose", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "FIREHOSE" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Braze", - "Transformations": [] - }, - "metadata": { - "sourceType": "metadata.sourceType", - "destinationType": "metadata.destinationType", - "k8_namespace": "metadata.namespace" - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "event": "", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } -] diff --git a/test/__tests__/data/firehose_output.json b/test/__tests__/data/firehose_output.json deleted file mode 100644 index 04537780cb5..00000000000 --- a/test/__tests__/data/firehose_output.json +++ /dev/null @@ -1,261 +0,0 @@ -[ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { "email": "ruchira@rudderlabs.com" }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { "density": 2 } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "userId": "00000000000000000000000000", - "deliveryStreamMapTo": "ruchira-test-firehose" - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { "email": "ruchira@rudderlabs.com" }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { "density": 2 } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "userId": "00000000000000000000000000", - "deliveryStreamMapTo": "ruchira-test-firehose" - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { "email": "ruchira@rudderlabs.com" }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { "density": 2 } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "userId": "00000000000000000000000000", - "deliveryStreamMapTo": "ruchira-test-firehose" - }, - { "statusCode": 400, "error": "No delivery stream set for this event" }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "userId": "00000000000000000000000000", - "deliveryStreamMapTo": "ruchira-test-firehose-2" - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "userId": "00000000000000000000000000", - "deliveryStreamMapTo": "ruchira-test-firehose-1" - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "event": "", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "userId": "00000000000000000000000000", - "deliveryStreamMapTo": "ruchira-test-firehose" - } -] diff --git a/test/__tests__/data/freshmarketer.json b/test/__tests__/data/freshmarketer.json index 32054e9b52a..390c0fb44e3 100644 --- a/test/__tests__/data/freshmarketer.json +++ b/test/__tests__/data/freshmarketer.json @@ -4,8 +4,8 @@ "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa66ttyyewQ", - "domain": "rudderstack-476952domain3105" + "apiKey": "dummyApiKey", + "domain": "rudderstack-476952domain3105.myfreshworks.com" } }, "message": { @@ -82,7 +82,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOa66ttyyewQ" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert" @@ -93,8 +93,8 @@ "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa66ttyyewQ", - "domain": "rudderstack-476952domain3105" + "apiKey": "dummyApiKey", + "domain": "rudderstack-476952domain3105.myfreshworks.com" } }, "message": { @@ -171,7 +171,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOa66ttyyewQ" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert" @@ -182,8 +182,8 @@ "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa66ttyyewQ", - "domain": "rudderstack-476952domain3105" + "apiKey": "dummyApiKey", + "domain": "rudderstack-476952domain3105.myfreshworks.com" } }, "message": { @@ -247,8 +247,8 @@ "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa66ttyyewQ", - "domain": "rudderstack-476952domain3105" + "apiKey": "dummyApiKey", + "domain": "rudderstack-476952domain3105.myfreshworks.com" } }, "message": { @@ -311,8 +311,8 @@ "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOarudder", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } }, "message": { @@ -410,7 +410,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOarudder" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert" @@ -421,8 +421,8 @@ "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOarudder", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } }, "message": { @@ -490,8 +490,8 @@ "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocwQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } }, "message": { @@ -557,8 +557,8 @@ "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocwQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } }, "message": { @@ -626,8 +626,8 @@ "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } }, "message": { @@ -706,7 +706,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOa0W6ocJQQ" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_accounts/upsert" @@ -759,8 +759,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -790,7 +790,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -842,8 +842,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -873,7 +873,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -915,7 +915,7 @@ "originalTimestamp": "2020-10-20T08:14:28.778Z", "anonymousId": "my-anonymous-id-new", "userId": "newUserIdAlias", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "properties": { "product_name": "Shirt", "brand": "Wrogn" @@ -926,8 +926,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -957,7 +957,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -1002,7 +1002,7 @@ "originalTimestamp": "2020-10-20T08:14:28.778Z", "anonymousId": "my-anonymous-id-new", "userId": "newUserIdAlias", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "properties": { "product_name": "Shirt", "brand": "Wrogn", @@ -1018,8 +1018,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1049,7 +1049,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOa0W6ocJQewQ" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities" @@ -1126,8 +1126,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1137,7 +1137,7 @@ "method": "POST", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert", "headers": { - "Authorization": "Token token=ugHZRFZjdLOa0W6ocJQewQ", + "Authorization": "Token token=dummyApiKey", "Content-Type": "application/json" }, "params": {}, @@ -1227,8 +1227,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1258,7 +1258,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -1314,8 +1314,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1345,7 +1345,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -1390,7 +1390,7 @@ "originalTimestamp": "2020-10-20T08:14:28.778Z", "anonymousId": "my-anonymous-id-new", "userId": "newUserIdAlias", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "properties": { "product_name": "Shirt", "brand": "Wrogn", @@ -1405,8 +1405,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1495,8 +1495,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1526,7 +1526,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -1585,8 +1585,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1615,7 +1615,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOa0W6ocJQewQ" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities" @@ -1636,7 +1636,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -1695,8 +1695,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1725,7 +1725,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOa0W6ocJQewQ" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities" @@ -1756,8 +1756,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1787,8 +1787,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1824,8 +1824,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1891,8 +1891,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1911,7 +1911,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOa0W6ocJQewQ" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/lists/70000059716/add_contacts" @@ -1936,8 +1936,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1975,8 +1975,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -2042,8 +2042,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -2062,7 +2062,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOa0W6ocJQewQ" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/lists/70000058627/add_contacts" @@ -2083,7 +2083,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -2128,7 +2128,7 @@ "originalTimestamp": "2020-10-20T08:14:28.778Z", "anonymousId": "my-anonymous-id-new", "userId": "newUserIdAlias", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "properties": { "product_name": "Shirt", "brand": "Wrogn", @@ -2144,8 +2144,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -2231,8 +2231,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -2256,7 +2256,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOa0W6ocJQewQ" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert" @@ -2333,8 +2333,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -2364,7 +2364,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -2409,7 +2409,7 @@ "originalTimestamp": "2020-10-20T08:14:28.778Z", "anonymousId": "my-anonymous-id-new", "userId": "newUserIdAlias", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "properties": { "product_name": "Shirt", "brand": "Wrogn", @@ -2426,8 +2426,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder", + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com", "rudderEventsToFreshmarketerEvents": [ { "from": "test_activity", @@ -2472,7 +2472,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOa0W6ocJQewQ" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities" @@ -2484,7 +2484,7 @@ "lifecycle_stage_id": "71012139273" }, "unique_identifier": { - "emails": "chandra+r@rudderlabs.com" + "emails": "test@rudderstack.com" } }, "JSON_ARRAY": {}, @@ -2494,10 +2494,9 @@ "type": "REST", "files": {}, "method": "POST", - "params": {}, "headers": { - "Authorization": "Token token=ugHZRFZjdLOa0W6ocJQewQ", + "Authorization": "Token token=dummyApiKey", "Content-Type": "application/json" }, "version": "1", diff --git a/test/__tests__/data/freshmarketer_router_input.json b/test/__tests__/data/freshmarketer_router_input.json index e23ab5a8d4e..2cc5ce58de9 100644 --- a/test/__tests__/data/freshmarketer_router_input.json +++ b/test/__tests__/data/freshmarketer_router_input.json @@ -2,8 +2,8 @@ { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa66ttyyewQ", - "domain": "rudderstack-476952domain3105" + "apiKey": "dummyApiKey", + "domain": "rudderstack-476952domain3105.myfreshworks.com" } }, "metadata": { @@ -58,8 +58,8 @@ { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa66ttyyewQ", - "domain": "rudderstack-476952domain3105" + "apiKey": "dummyApiKey", + "domain": "rudderstack-476952domain3105.myfreshworks.com" } }, "metadata": { @@ -114,8 +114,8 @@ { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOarudder", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } }, "metadata": { diff --git a/test/__tests__/data/freshmarketer_router_output.json b/test/__tests__/data/freshmarketer_router_output.json index 2ac0ad16c10..3525e4bb163 100644 --- a/test/__tests__/data/freshmarketer_router_output.json +++ b/test/__tests__/data/freshmarketer_router_output.json @@ -6,7 +6,7 @@ "method": "POST", "endpoint": "https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert", "headers": { - "Authorization": "Token token=ugHZRFZjdLOa66ttyyewQ", + "Authorization": "Token token=dummyApiKey", "Content-Type": "application/json" }, "params": {}, @@ -42,8 +42,8 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa66ttyyewQ", - "domain": "rudderstack-476952domain3105" + "apiKey": "dummyApiKey", + "domain": "rudderstack-476952domain3105.myfreshworks.com" } } }, @@ -54,7 +54,7 @@ "method": "POST", "endpoint": "https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert", "headers": { - "Authorization": "Token token=ugHZRFZjdLOa66ttyyewQ", + "Authorization": "Token token=dummyApiKey", "Content-Type": "application/json" }, "params": {}, @@ -90,8 +90,8 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa66ttyyewQ", - "domain": "rudderstack-476952domain3105" + "apiKey": "dummyApiKey", + "domain": "rudderstack-476952domain3105.myfreshworks.com" } } }, @@ -141,7 +141,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOarudder" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert" @@ -155,8 +155,8 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOarudder", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } } diff --git a/test/__tests__/data/freshsales.json b/test/__tests__/data/freshsales.json index 51bb039f61e..55193532f4b 100644 --- a/test/__tests__/data/freshsales.json +++ b/test/__tests__/data/freshsales.json @@ -1,11 +1,96 @@ [ + { + "description": "Track call, event is not supported.", + "input": { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.5" + }, + "traits": { + "name": "Shehan Study", + "category": "SampleIdentify", + "email": "test@rudderstack.com", + "plan": "Open source", + "logins": 5, + "createdAt": 1599264000 + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.5" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 0.8999999761581421 + }, + "campaign": { + "source": "google", + "medium": "medium", + "term": "keyword", + "content": "some content", + "name": "some campaign", + "test": "other value" + }, + "page": { + "path": "/destinations/amplitude", + "referrer": "", + "search": "", + "title": "", + "url": "https://docs.rudderstack.com/destinations/amplitude", + "category": "destination", + "initial_referrer": "https://docs.rudderstack.com", + "initial_referring_domain": "docs.rudderstack.com" + } + }, + "type": "track", + "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", + "originalTimestamp": "2020-10-20T08:14:28.778Z", + "anonymousId": "my-anonymous-id-new", + "userId": "newUserIdAlias", + "properties": { + "product_name": "Shirt", + "brand": "Wrogn" + }, + "event": { + "name": "Add to Cart" + }, + "previousId": "sampleusrRudder3", + "sentAt": "2020-10-20T08:14:28.778Z" + }, + "destination": { + "Config": { + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" + } + } + }, + "output": { + "statusCode": 400, + "error": "Event is a required field and should be a string", + "statTags": { + "errorAt": "proc", + "destType": "FRESHMARKETER", + "stage": "transform", + "scope": "exception" + } + } + }, { "description": "Identify call for creating new user", "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa66ttyyewQ", - "domain": "rudderstack-476952domain3105" + "apiKey": "dummyApiKey", + "domain": "rudderstack-476952domain3105.myfreshworks.com" } }, "message": { @@ -82,7 +167,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOa66ttyyewQ" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert" @@ -93,8 +178,8 @@ "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa66ttyyewQ", - "domain": "rudderstack-476952domain3105" + "apiKey": "dummyApiKey", + "domain": "rudderstack-476952domain3105.myfreshworks.com" } }, "message": { @@ -171,7 +256,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOa66ttyyewQ" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert" @@ -182,8 +267,8 @@ "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa66ttyyewQ", - "domain": "rudderstack-476952domain3105" + "apiKey": "dummyApiKey", + "domain": "rudderstack-476952domain3105.myfreshworks.com" } }, "message": { @@ -238,7 +323,7 @@ "method": "POST", "endpoint": "https://rudderstack-476952domain3105.myfreshworks.com/crm/sales/api/contacts/upsert", "headers": { - "Authorization": "Token token=ugHZRFZjdLOa66ttyyewQ", + "Authorization": "Token token=dummyApiKey", "Content-Type": "application/json" }, "params": {}, @@ -270,8 +355,8 @@ "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa66ttyyewQ", - "domain": "rudderstack-476952domain3105" + "apiKey": "dummyApiKey", + "domain": "rudderstack-476952domain3105.myfreshworks.com" } }, "message": { @@ -335,8 +420,8 @@ "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOarudder", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } }, "message": { @@ -434,7 +519,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOarudder" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert" @@ -445,8 +530,8 @@ "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOarudder", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } }, "message": { @@ -514,8 +599,8 @@ "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocwQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } }, "message": { @@ -581,8 +666,8 @@ "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocwQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } }, "message": { @@ -650,8 +735,8 @@ "input": { "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } }, "message": { @@ -708,7 +793,7 @@ "method": "POST", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_accounts/upsert", "headers": { - "Authorization": "Token token=ugHZRFZjdLOa0W6ocJQQ", + "Authorization": "Token token=dummyApiKey", "Content-Type": "application/json" }, "params": {}, @@ -783,8 +868,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -814,7 +899,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -866,8 +951,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -897,7 +982,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -939,7 +1024,7 @@ "originalTimestamp": "2020-10-20T08:14:28.778Z", "anonymousId": "my-anonymous-id-new", "userId": "newUserIdAlias", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "properties": { "product_name": "Shirt", "brand": "Wrogn" @@ -950,8 +1035,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -981,7 +1066,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -1026,7 +1111,7 @@ "originalTimestamp": "2020-10-20T08:14:28.778Z", "anonymousId": "my-anonymous-id-new", "userId": "newUserIdAlias", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "properties": { "product_name": "Shirt", "brand": "Wrogn", @@ -1042,8 +1127,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder", + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com", "rudderEventsToFreshsalesEvents": [ { "from": "test", @@ -1080,7 +1165,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOa0W6ocJQewQ" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities" @@ -1158,8 +1243,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1169,7 +1254,7 @@ "method": "POST", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert", "headers": { - "Authorization": "Token token=ugHZRFZjdLOa0W6ocJQewQ", + "Authorization": "Token token=dummyApiKey", "Content-Type": "application/json" }, "params": {}, @@ -1259,8 +1344,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1290,7 +1375,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -1346,8 +1431,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1377,7 +1462,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -1422,7 +1507,7 @@ "originalTimestamp": "2020-10-20T08:14:28.778Z", "anonymousId": "my-anonymous-id-new", "userId": "newUserIdAlias", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "properties": { "product_name": "Shirt", "brand": "Wrogn", @@ -1437,8 +1522,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1527,8 +1612,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1558,7 +1643,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -1617,8 +1702,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1647,7 +1732,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOa0W6ocJQewQ" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities" @@ -1668,7 +1753,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -1727,8 +1812,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1757,7 +1842,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOa0W6ocJQewQ" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/sales_activities" @@ -1788,8 +1873,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1819,7 +1904,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -1864,7 +1949,7 @@ "originalTimestamp": "2020-10-20T08:14:28.778Z", "anonymousId": "my-anonymous-id-new", "userId": "newUserIdAlias", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "properties": { "product_name": "Shirt", "brand": "Wrogn", @@ -1880,8 +1965,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1967,8 +2052,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, @@ -1992,7 +2077,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Token token=ugHZRFZjdLOa0W6ocJQewQ" + "Authorization": "Token token=dummyApiKey" }, "version": "1", "endpoint": "https://domain-rudder.myfreshworks.com/crm/sales/api/contacts/upsert" @@ -2069,8 +2154,8 @@ }, "destination": { "Config": { - "apiKey": "ugHZRFZjdLOa0W6ocJQewQ", - "domain": "domain-rudder" + "apiKey": "dummyApiKey", + "domain": "domain-rudder.myfreshworks.com" } } }, diff --git a/test/__tests__/data/freshsales_router_input.json b/test/__tests__/data/freshsales_router_input.json index 0cbe035fa08..ea4b9887ddb 100644 --- a/test/__tests__/data/freshsales_router_input.json +++ b/test/__tests__/data/freshsales_router_input.json @@ -4,7 +4,7 @@ "context": { "device": { "name": "Mi", - "token": "qwertyuioprtyuiop" + "token": "dummyDeviceToken" }, "os": { "name": "android" @@ -66,7 +66,7 @@ }, "Config": { "apiKey": "hrkjfergeferf", - "domain": "rudderstack-479541159204968909" + "domain": "rudderstack-479541159204968909.myfreshworks.com" }, "Enabled": true, "Transformations": [], diff --git a/test/__tests__/data/freshsales_router_output.json b/test/__tests__/data/freshsales_router_output.json index 449d6eb45a6..69d259ff00d 100644 --- a/test/__tests__/data/freshsales_router_output.json +++ b/test/__tests__/data/freshsales_router_output.json @@ -72,7 +72,7 @@ }, "Config": { "apiKey": "hrkjfergeferf", - "domain": "rudderstack-479541159204968909" + "domain": "rudderstack-479541159204968909.myfreshworks.com" }, "Enabled": true, "Transformations": [], diff --git a/test/__tests__/data/fullstory.json b/test/__tests__/data/fullstory.json new file mode 100644 index 00000000000..b6e462005b0 --- /dev/null +++ b/test/__tests__/data/fullstory.json @@ -0,0 +1,354 @@ +[ + { + "description": "Complete track event", + "input": { + "message": { + "anonymousId": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", + "channel": "web", + "context": { + "app": { + "name": "RSPM", + "version": "1.9.0" + }, + "campaign": { + "name": "sales campaign", + "source": "google", + "medium": "medium", + "term": "event data", + "content": "Make sense of the modern data stack" + }, + "ip": "192.0.2.0", + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "2.9.1" + }, + "locale": "en-US", + "device": { + "manufacturer": "Nokia", + "model": "N2023" + }, + "page": { + "path": "/best-seller/1", + "initial_referrer": "https://www.google.com/search", + "initial_referring_domain": "google.com", + "referrer": "https://www.google.com/search?q=estore+bestseller", + "referring_domain": "google.com", + "search": "estore bestseller", + "title": "The best sellers offered by EStore", + "url": "https://www.estore.com/best-seller/1" + }, + "screen": { + "density": 420, + "height": 1794, + "width": 1080, + "innerHeight": 200, + "innerWidth": 100 + }, + "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" + }, + "event": "Product Reviewed", + "integrations": { + "All": true + }, + "messageId": "1578564113557-af022c68-429e-4af4-b99b-2b9174056383", + "properties": { + "userId": "u001", + "sessionId": "s001", + "review_id": "review_id_1", + "product_id": "product_id_1", + "rating": 5.0, + "review_body": "Sample Review Body", + "latitude": 44.56, + "longitude": 54.46, + "region": "Atlas", + "city": "NY", + "country": "USA" + }, + "originalTimestamp": "2020-01-09T10:01:53.558Z", + "type": "track", + "sentAt": "2020-01-09T10:02:03.257Z" + }, + "destination": { + "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", + "Name": "Fullstory", + "DestinationDefinition": { + "Config": { + "cdkV2Enabled": true + } + }, + "Config": { + "apiKey": "dummyfullstoryAPIKey" + }, + "Enabled": true, + "Transformations": [] + }, + "metadata": { + "sourceType": "fddf", + "destinationType": "fdf", + "k8_namespace": "fdfd" + } + }, + "output": { + "body": { + "JSON": { + "name": "Product Reviewed", + "properties": { + "userId": "u001", + "sessionId": "s001", + "review_id": "review_id_1", + "product_id": "product_id_1", + "rating": 5, + "review_body": "Sample Review Body", + "latitude": 44.56, + "longitude": 54.46, + "region": "Atlas", + "city": "NY", + "country": "USA" + }, + "timestamp": "2020-01-09T10:01:53.558Z", + "context": { + "browser": { + "url": "https://www.estore.com/best-seller/1", + "user_agent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)", + "initial_referrer": "https://www.google.com/search" + }, + "mobile": { + "app_name": "RSPM", + "app_version": "1.9.0" + }, + "device": { + "manufacturer": "Nokia", + "model": "N2023" + }, + "location": { + "ip_address": "192.0.2.0", + "latitude": 44.56, + "longitude": 54.46, + "city": "NY", + "region": "Atlas", + "country": "USA" + } + }, + "session": { + "id": "s001" + }, + "user": { + "id": "u001" + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "method": "POST", + "params": {}, + "version": "1", + "type": "REST", + "endpoint": "https://api.fullstory.com/v2/events", + "headers": { + "authorization": "Basic dummyfullstoryAPIKey", + "content-type": "application/json" + }, + "files": {} + } + }, + { + "description": "Missing event name", + "input": { + "message": { + "channel": "web", + "context": { + "device": { + "manufacturer": "Nokia", + "model": "N2023" + }, + "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" + }, + "integrations": { + "All": true + }, + "properties": { + "userId": "u001", + "latitude": 44.56, + "longitude": 54.46, + "region": "Atlas", + "city": "NY", + "country": "USA" + }, + "originalTimestamp": "2020-01-09T10:01:53.558Z", + "type": "track", + "sentAt": "2020-01-09T10:02:03.257Z" + }, + "destination": { + "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", + "Name": "Fullstory", + "DestinationDefinition": { + "Config": { + "cdkV2Enabled": true + } + }, + "Config": { + "apiKey": "dummyfullstoryAPIKey" + }, + "Enabled": true, + "Transformations": [] + }, + "metadata": { + "sourceType": "fddf", + "destinationType": "fdf", + "k8_namespace": "fdfd" + } + }, + "output": { + "error": "event is required for track call: Workflow: procWorkflow, Step: validateEventName, ChildStep: undefined, OriginalError: event is required for track call" + } + }, + { + "description": "Complete identify event", + "input": { + "message": { + "userId": "dummy-user001", + "channel": "web", + "context": { + "traits": { + "company": "Initech", + "address": { + "country": "USA", + "state": "CA", + "street": "101 dummy street" + }, + "email": "dummyuser@domain.com", + "name": "dummy user", + "phone": "099-999-9999" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" + }, + "integrations": { + "All": true + }, + "originalTimestamp": "2020-01-27T12:20:55.301Z", + "receivedAt": "2020-01-27T17:50:58.657+05:30", + "request_ip": "14.98.244.60", + "sentAt": "2020-01-27T12:20:56.849Z", + "timestamp": "2020-01-27T17:50:57.109+05:30", + "type": "identify" + }, + "destination": { + "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", + "Name": "Fullstory", + "DestinationDefinition": { + "Config": { + "cdkV2Enabled": true + } + }, + "Config": { + "apiKey": "fullstoryAPIKey" + }, + "Enabled": true, + "Transformations": [] + }, + "metadata": { + "sourceType": "fddf", + "destinationType": "fdf", + "k8_namespace": "fdfd" + } + }, + "output": { + "body": { + "JSON": { + "properties": { + "company": "Initech", + "address": { + "country": "USA", + "state": "CA", + "street": "101 dummy street" + }, + "email": "dummyuser@domain.com", + "name": "dummy user", + "phone": "099-999-9999" + }, + "uid": "dummy-user001", + "email": "dummyuser@domain.com", + "display_name": "dummy user" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.fullstory.com/v2/users", + "headers": { + "authorization": "Basic fullstoryAPIKey", + "content-type": "application/json" + }, + "params": {}, + "files": {} + } + }, + { + "description": "Identify event with needed traits", + "input": { + "message": { + "userId": "dummy-user001", + "channel": "web", + "context": { + "traits": { + "email": "dummyuser@domain.com", + "name": "dummy user", + "phone": "099-999-9999" + } + }, + "timestamp": "2020-01-27T17:50:57.109+05:30", + "type": "identify" + }, + "destination": { + "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", + "Name": "Fullstory", + "DestinationDefinition": { + "Config": { + "cdkV2Enabled": true + } + }, + "Config": { + "apiKey": "fullstoryAPIKey" + }, + "Enabled": true, + "Transformations": [] + }, + "metadata": { + "sourceType": "fddf", + "destinationType": "fdf", + "k8_namespace": "fdfd" + } + }, + "output": { + "body": { + "JSON": { + "properties": { + "email": "dummyuser@domain.com", + "name": "dummy user", + "phone": "099-999-9999" + }, + "uid": "dummy-user001", + "email": "dummyuser@domain.com", + "display_name": "dummy user" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.fullstory.com/v2/users", + "headers": { + "authorization": "Basic fullstoryAPIKey", + "content-type": "application/json" + }, + "params": {}, + "files": {} + } + } +] diff --git a/test/__tests__/data/ga360_input.json b/test/__tests__/data/ga360_input.json deleted file mode 100644 index 298356715ae..00000000000 --- a/test/__tests__/data/ga360_input.json +++ /dev/null @@ -1,6170 +0,0 @@ -[ - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Ruchira Moitra" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "name", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "q", - "search": "", - "title": "a", - "url": "https://www.example.com/abc" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "test track event GA3", - "properties": { - "category": "test-category", - "user_actual_role": "system_admin, system_user", - "user_actual_id": 12345 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order completed", - "properties": { - "order_id": "ruchiraorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product added", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product removed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product viewed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product removed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product viewed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product list filtered", - "properties": { - "category": "cat 1", - "list_id": "1234", - "filters": [ - { - "type": "department", - "value": "beauty" - }, - { - "type": "price", - "value": "under" - } - ], - "sorts": [ - { - "type": "price", - "value": "desc" - } - ], - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "productDimension": "My Product Dimension", - "productMetric": "My Product Metric" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product list viewed", - "properties": { - "category": "cat 1", - "list_id": "1234", - "filters": [ - { - "type": "department", - "value": "beauty" - }, - { - "type": "price", - "value": "under" - } - ], - "sorts": [ - { - "type": "price", - "value": "desc" - } - ], - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "productDimension": "My Product Dimension", - "productMetric": "My Product Metric", - "position": 10 - }, - { - "product_id": "507f1f77bcf86cdef799439011", - "productDimension": "My Product Dimension1", - "productMetric": "My Product Metric1", - "position": -10 - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product clicked", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product", - "category": "cat 1", - "sku": "p-298", - "list": "search results", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "promotion viewed", - "properties": { - "currency": "CAD", - "promotion_id": "PROMO_1234", - "name": "my product", - "creative": "summer_banner2", - "position": "banner_slot1", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "promotion clicked", - "properties": { - "currency": "CAD", - "promotion_id": "PROMO_1234", - "name": "my product", - "creative": "summer_banner2", - "position": "banner_slot1", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "checkout started", - "properties": { - "currency": "CAD", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 1, - "price": 24.75, - "name": "my product 2", - "sku": "p-299" - } - ], - "step": 1, - "paymentMethod": "Visa", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order updated", - "properties": { - "currency": "CAD", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 1, - "price": 24.75, - "name": "my product 2", - "sku": "p-299" - } - ], - "step": 1, - "paymentMethod": "Visa", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "checkout step viewed", - "properties": { - "currency": "CAD", - "step": 1 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "checkout step completed", - "properties": { - "currency": "CAD", - "step": 1, - "paymentMethod": "Visa" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order refunded", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "linkid test", - "properties": { - "linkid": "abc123", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "campaign": { - "name": "sampleName", - "source": "sampleSource", - "medium": "sampleMedium", - "content": "sampleContent", - "term": "sampleTerm" - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "campaign test", - "properties": { - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "campaign": { - "name": "sampleName", - "source": "sampleSource", - "medium": "sampleMedium", - "content": "sampleContent", - "term": "sampleTerm" - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "event": "campaign test", - "properties": { - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "campaign": { - "name": "sampleName", - "source": "sampleSource", - "medium": "sampleMedium", - "content": "sampleContent", - "term": "sampleTerm" - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "event": "campaign test", - "properties": { - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.2" - }, - "traits": { - "abc": "1234" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.2" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/tests/html/ecomm_test.html", - "referrer": "http://0.0.0.0:1112/tests/html/", - "search": "", - "title": "GA Ecommerce Test", - "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" - } - }, - "type": "identify", - "messageId": "bc8a6af8-37fd-46a9-9592-ea29a256435f", - "originalTimestamp": "2020-06-22T11:30:32.493Z", - "anonymousId": "38e169a1-3234-46f7-9ceb-c1a6a69005fe", - "userId": "123", - "integrations": { - "All": true - }, - "sentAt": "2020-06-22T11:30:32.494Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "", - "search": "?xyz=1", - "title": "", - "url": "https://www.example.com/abc" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "integrations": { - "All": true - }, - "event": "sample event", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Refunded", - "properties": { - "order_id": "ruchiraorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Refunded", - "properties": { - "order_id": "ruchiraorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Refunded", - "properties": { - "order_id": "ruchiraorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Refunded", - "properties": { - "order_id": "ruchiraorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Cart Shared", - "properties": { - "order_id": "ruchiraorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Product Shared", - "properties": { - "product_id": "ruchiraorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "url": "https://www.example.com/abc" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Product List Clicked", - "properties": { - "list_id": "Sample Product List", - "category": "Sample Product List", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Product List Clicked", - "properties": { - "list_id": "Sample Product List", - "category": "Sample Product List", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Product List Clicked", - "properties": { - "list_id": "Sample Product List", - "category": "Sample Product List", - "products": [] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Cancelled", - "properties": { - "order_id": "ruchiraorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Cancelled", - "properties": { - "order_id": "ruchiraorder1", - "value": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Cancelled", - "properties": { - "order_id": "ruchiraorder1", - "revenue": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Cancelled", - "properties": { - "order_id": "ruchiraorder1", - "revenue": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Cart Viewed", - "properties": { - "order_id": "ruchiraorder1", - "revenue": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "traits": { - "name1": "Ruchira" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "traits": { - "name1": "Ruchira" - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "screen", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "name": "homescreen" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "newtype", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "name": "homescreen" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Ruchira" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "userId": "12345", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Ruchira" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "userId": "12345", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "disableMd5": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Ruchira" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "userId": "12345", - "integrations": { - "All": true, - "GA": { "clientId": "clientId" }, - "Google Analytics": { "clientId": "clientId" } - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "id": "externalClientId", - "type": "gaExternalId" - } - ], - "traits": { - "name": "Ruchira" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "userId": "12345", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } -] diff --git a/test/__tests__/data/ga360_output.json b/test/__tests__/data/ga360_output.json deleted file mode 100644 index 840afb9d16b..00000000000 --- a/test/__tests__/data/ga360_output.json +++ /dev/null @@ -1,1963 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Ruchira Moitra", - "cd1": "Ruchira Moitra", - "cg2": "Ruchira Moitra", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "uid": "123456", - "cid": "00000000000000000000000000", - "ni": 1, - "uip": "0.0.0.0", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "uip": "0.0.0.0", - "ul": "en-US", - "dh": "www.example.com", - "dl": "https://www.example.com/abc", - "dp": "/abc", - "dr": "q", - "dt": "a" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ec": "test-category", - "ni": 1, - "v": "1", - "el": "event", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "test track event GA3", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "purchase", - "tr": 99.99, - "ev": 100, - "pr1id": "p-298", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "p-299", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "ea": "order completed", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ti": "ruchiraorder1", - "ts": 13.99, - "tt": 20.99, - "cu": "INR", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ni": 1, - "pr1qt": 1, - "pr2qt": 3, - "ul": "en-US" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product added", - "ec": "cat 1", - "pa": "add", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ni": 1, - "ul": "en-US" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product removed", - "ec": "cat 1", - "pa": "remove", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product viewed", - "ec": "cat 1", - "pa": "detail", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product removed", - "ec": "cat 1", - "pa": "remove", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product viewed", - "ec": "cat 1", - "pa": "detail", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product list filtered", - "ec": "cat 1", - "pa": "detail", - "il1pi1id": "507f1f77bcf86cd799439011", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "il1nm": "1234", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "il1pi1qt": 1, - "il1pi1va": "department:beauty,price:under::price:desc", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product list viewed", - "ec": "cat 1", - "pa": "detail", - "il1pi1id": "507f1f77bcf86cd799439011", - "il1pi1ps": 10, - "il1pi2id": "507f1f77bcf86cdef799439011", - "il1pi2ps": -10, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "il1nm": "1234", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "il1pi1qt": 1, - "il1pi1va": "department:beauty,price:under::price:desc", - "il1pi2qt": 1, - "il1pi2va": "department:beauty,price:under::price:desc", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product clicked", - "ec": "cat 1", - "pa": "click", - "pr1cd1": "my product", - "pr1id": "p-298", - "cd1": "my product", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "pal": "search results", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "promotion viewed", - "ec": "EnhancedEcommerce", - "cu": "CAD", - "promoa": "view", - "pa": "view", - "cd1": "my product", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "promo1id": "PROMO_1234", - "promo1cr": "summer_banner2", - "promo1ps": "banner_slot1", - "promo1nm": "my product", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "promotion clicked", - "ec": "EnhancedEcommerce", - "cu": "CAD", - "promoa": "promo_click", - "pa": "promo_click", - "cd1": "my product", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "promo1id": "PROMO_1234", - "promo1cr": "summer_banner2", - "promo1ps": "banner_slot1", - "promo1nm": "my product", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "checkout", - "pr1id": "p-298", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "p-299", - "pr2cd1": "my product 2", - "pr2nm": "my product 2", - "pr2pr": 24.75, - "ea": "checkout started", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cu": "CAD", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "cos": 1, - "pr1qt": 1, - "pr2qt": 1, - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "checkout", - "pr1id": "p-298", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "p-299", - "pr2cd1": "my product 2", - "pr2nm": "my product 2", - "pr2pr": 24.75, - "ea": "order updated", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cu": "CAD", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "cos": 1, - "pr1qt": 1, - "pr2qt": 1, - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "checkout", - "ea": "checkout step viewed", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cos": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "checkout_option", - "ea": "checkout step completed", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cos": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order refunded", - "ec": "EnhancedEcommerce", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "pa": "refund", - "pr1id": "p-298", - "pr1qt": 1, - "pr2id": "p-299", - "ul": "en-US", - "pr2qt": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "linkid": "abc123", - "cid": "00000000000000000000000000", - "ea": "linkid test", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "cn": "sampleName", - "cs": "sampleSource", - "cm": "sampleMedium", - "cc": "sampleContent", - "ck": "sampleTerm", - "cid": "00000000000000000000000000", - "ea": "campaign test", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "cn": "sampleName", - "cs": "sampleSource", - "cm": "sampleMedium", - "cc": "sampleContent", - "ck": "sampleTerm", - "cid": "00000000000000000000000000", - "ea": "campaign test", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "cn": "sampleName", - "cs": "sampleSource", - "cm": "sampleMedium", - "cc": "sampleContent", - "ck": "sampleTerm", - "cid": "00000000000000000000000000", - "ea": "campaign test", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "User Enriched", - "dr": "http://0.0.0.0:1112/tests/html/", - "dt": "GA Ecommerce Test", - "ec": "All", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.1.2", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "uid": "123", - "cid": "38e169a1-3234-46f7-9ceb-c1a6a69005fe", - "ni": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "ul": "en-GB" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "38e169a1-3234-46f7-9ceb-c1a6a69005fe" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "uip": "0.0.0.0" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "uip": "0.0.0.0", - "dh": "www.example.com", - "dl": "https://www.example.com/abc", - "dp": "/abc?xyz=1" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "sample event", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "uip": "0.0.0.0" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "refund", - "ev": 100, - "pr1id": "p-298", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr1qt": 1, - "pr2id": "p-299", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "pr2qt": 3, - "ea": "Order Refunded", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "ti": "ruchiraorder1", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "pa": "refund", - "ti": "ruchiraorder1", - "ea": "Order Refunded", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "pa": "refund", - "ti": "ruchiraorder1", - "ea": "Order Refunded", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "pa": "refund", - "pr1id": "1", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr1qt": 1, - "pr2id": "2", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "pr2qt": 3, - "ea": "Order Refunded", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "ti": "ruchiraorder1", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "ea": "Cart Shared", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "st": " 1 2", - "ul": "en-US" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "ea": "Product Shared", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "st": "https://www.example.com/abc", - "dh": "www.example.com", - "dl": "https://www.example.com/abc", - "dp": "/abc", - "ul": "en-US" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "Product List Clicked", - "ec": "Sample Product List", - "pa": "click", - "il1pi1id": "1", - "pr1cd1": "my product", - "il1pi1nm": "my product", - "il1pi1pr": 24.75, - "il1pi2id": "2", - "pr2cd1": "other product", - "il1pi2nm": "other product", - "il1pi2pr": 24.75, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "il1nm": "Sample Product List", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ni": 1, - "il1pi2qt": 3, - "il1pi1qt": 1, - "ul": "en-US" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "Product List Clicked", - "ec": "Sample Product List", - "pa": "click", - "il1pi1id": "p-298", - "pr1cd1": "my product", - "il1pi1nm": "my product", - "il1pi1pr": 24.75, - "il1pi2id": "p-299", - "pr2cd1": "other product", - "il1pi2nm": "other product", - "il1pi2pr": 24.75, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "il1nm": "Sample Product List", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ul": "en-US", - "il1pi2qt": 3, - "il1pi1qt": 1, - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "statusCode": 400, - "message": "Empty Product List provided for Product List Viewed Event" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "refund", - "ev": 100, - "tr": 99.99, - "pr1id": "1", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "2", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "ea": "Order Cancelled", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ti": "ruchiraorder1", - "ts": 13.99, - "tt": 20.99, - "cu": "INR", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "pr1qt": 1, - "pr2qt": 3, - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "refund", - "tr": 99.99, - "pr1id": "1", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "2", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "ea": "Order Cancelled", - "ev": 100, - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ti": "ruchiraorder1", - "ts": 13.99, - "tt": 20.99, - "cu": "INR", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "pr1qt": 1, - "pr2qt": 3, - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "refund", - "tr": 99.99, - "pr1id": "1", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "2", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "ea": "Order Cancelled", - "ev": 100, - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ti": "ruchiraorder1", - "ts": 13.99, - "tt": 20.99, - "cu": "INR", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "pr1qt": 1, - "pr2qt": 3, - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "statusCode": 400, - "message": "No product information supplied for transaction event" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "Cart Viewed", - "ev": 100, - "ec": "EnhancedEcommerce", - "pa": "detail", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "pr1cd1": "my product", - "pr1id": "1", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr1qt": 1, - "pr2cd1": "other product", - "pr2id": "2", - "pr2nm": "other product", - "pr2pr": 24.75, - "pr2qt": 3 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "statusCode": 400, - "message": "server side identify is not on" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "cd1": "homescreen", - "v": "1", - "t": "screenview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cd": "homescreen", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "uip": "0.0.0.0" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "statusCode": 400, - "message": "message type newtype not supported" - }, - { - "version": "1", - "type": "REST", - "userId": "12345", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Ruchira", - "ni": 1, - "cd1": "Ruchira", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "uid": "12345", - "cid": "827ccb0eea8a706c4c34a16891f84e7b", - "uip": "0.0.0.0" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "userId": "12345", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Ruchira", - "ni": 1, - "cd1": "Ruchira", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "uid": "12345", - "cid": "12345", - "uip": "0.0.0.0" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "userId": "12345", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Ruchira", - "ni": 1, - "cd1": "Ruchira", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "uid": "12345", - "cid": "clientId", - "uip": "0.0.0.0" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "userId": "12345", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Ruchira", - "ni": 1, - "cd1": "Ruchira", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "uid": "12345", - "cid": "externalClientId", - "uip": "0.0.0.0" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } -] diff --git a/test/__tests__/data/ga360_router_input.json b/test/__tests__/data/ga360_router_input.json deleted file mode 100644 index 90abfd29529..00000000000 --- a/test/__tests__/data/ga360_router_input.json +++ /dev/null @@ -1,230 +0,0 @@ -[ - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Ruchira Moitra" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "name", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "q", - "search": "", - "title": "a", - "url": "https://www.example.com/abc" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } -] diff --git a/test/__tests__/data/ga360_router_output.json b/test/__tests__/data/ga360_router_output.json deleted file mode 100644 index b8d5ad82978..00000000000 --- a/test/__tests__/data/ga360_router_output.json +++ /dev/null @@ -1,224 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Ruchira Moitra", - "cd1": "Ruchira Moitra", - "cg2": "Ruchira Moitra", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "uid": "123456", - "cid": "00000000000000000000000000", - "ni": 1, - "uip": "0.0.0.0", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "name", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "uip": "0.0.0.0", - "ul": "en-US", - "dh": "www.example.com", - "dl": "https://www.example.com/abc", - "dp": "/abc", - "dr": "q", - "dt": "a" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } -] diff --git a/test/__tests__/data/ga4.json b/test/__tests__/data/ga4.json index c2a6cafad0b..5645c514574 100644 --- a/test/__tests__/data/ga4.json +++ b/test/__tests__/data/ga4.json @@ -56,7 +56,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -87,7 +87,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -192,7 +192,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -223,7 +223,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -365,7 +365,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -400,7 +400,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -549,7 +549,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -584,7 +584,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -706,7 +706,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -741,7 +741,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -856,7 +856,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -891,7 +891,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -1023,7 +1023,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -1058,7 +1058,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -1200,7 +1200,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "typesOfClient": "gtag", "firebaseAppId": "1:17864591371:android:7a9520d3c78962e21f9fee", @@ -1232,7 +1232,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -1381,7 +1381,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "typesOfClient": "firebase", "firebaseAppId": "1:17864591371:android:7a9520d3c78962e21f9fee", @@ -1413,7 +1413,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "firebase_app_id": "1:17864591371:android:7a9520d3c78962e21f9fee" }, "body": { @@ -1555,7 +1555,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -1590,7 +1590,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -1727,7 +1727,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -1762,7 +1762,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -1898,7 +1898,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -1933,7 +1933,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -2069,7 +2069,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -2104,7 +2104,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -2242,7 +2242,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -2277,7 +2277,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -2416,7 +2416,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -2451,7 +2451,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -2593,7 +2593,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -2628,7 +2628,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -2773,7 +2773,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -2808,7 +2808,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -2930,7 +2930,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -2965,7 +2965,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -3082,7 +3082,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -3117,7 +3117,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -3230,7 +3230,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -3265,7 +3265,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -3351,7 +3351,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -3386,7 +3386,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -3474,7 +3474,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -3509,7 +3509,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -3596,7 +3596,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -3631,7 +3631,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -3719,7 +3719,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -3754,7 +3754,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -3839,7 +3839,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -3874,7 +3874,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -3961,7 +3961,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -3996,7 +3996,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -4081,7 +4081,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -4116,7 +4116,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -4203,7 +4203,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -4238,7 +4238,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -4327,7 +4327,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -4362,7 +4362,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -4447,7 +4447,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -4482,7 +4482,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -4568,7 +4568,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -4603,7 +4603,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -4687,7 +4687,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -4722,7 +4722,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -4810,7 +4810,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -4845,7 +4845,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -4934,7 +4934,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -4969,7 +4969,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -5057,7 +5057,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -5092,7 +5092,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -5177,7 +5177,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -5212,7 +5212,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -5298,7 +5298,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -5333,7 +5333,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -5417,7 +5417,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -5452,7 +5452,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -5540,7 +5540,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -5575,7 +5575,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -5665,7 +5665,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -5700,7 +5700,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -5785,7 +5785,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -5820,7 +5820,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -5903,7 +5903,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -5938,7 +5938,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -6024,7 +6024,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -6059,7 +6059,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -6169,7 +6169,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -6204,7 +6204,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -6336,7 +6336,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -6371,7 +6371,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -6485,7 +6485,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -6520,7 +6520,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -6612,7 +6612,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -6647,7 +6647,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -6739,7 +6739,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -6839,7 +6839,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -6874,7 +6874,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -6970,7 +6970,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -7005,7 +7005,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -7106,7 +7106,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -7206,7 +7206,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -7328,7 +7328,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -7363,7 +7363,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -7471,7 +7471,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -7506,7 +7506,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -7613,7 +7613,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -7691,7 +7691,7 @@ }, "method": "POST", "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "type": "REST", @@ -7801,7 +7801,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -7879,7 +7879,7 @@ }, "method": "POST", "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "type": "REST", @@ -7970,7 +7970,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -8068,7 +8068,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -8255,7 +8255,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "", "firebaseAppId": "", "blockPageViewEvent": false, @@ -8349,7 +8349,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -8384,7 +8384,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -8466,7 +8466,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -8559,7 +8559,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -8648,7 +8648,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -8683,7 +8683,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -8756,7 +8756,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "", "firebaseAppId": "1:17864591371:android:7a9520d3c78962e21f9fee", "blockPageViewEvent": false, @@ -8850,7 +8850,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "", "firebaseAppId": "1:17864591371:android:7a9520d3c78962e21f9fee", "blockPageViewEvent": false, @@ -8943,7 +8943,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -8978,7 +8978,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -9086,7 +9086,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -9121,7 +9121,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -9262,7 +9262,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "", "typesOfClient": "firebase", "firebaseAppId": "", @@ -9347,7 +9347,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "typesOfClient": "gtag", @@ -9379,7 +9379,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -9460,7 +9460,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "typesOfClient": "gtag", @@ -9492,7 +9492,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -9576,7 +9576,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "typesOfClient": "gtag", @@ -9670,7 +9670,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "typesOfClient": "gtag", @@ -9793,7 +9793,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -9828,7 +9828,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -9947,7 +9947,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -9982,7 +9982,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -10081,7 +10081,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -10116,7 +10116,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -10231,7 +10231,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -10266,7 +10266,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -10382,7 +10382,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -10417,7 +10417,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -10541,7 +10541,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -10655,7 +10655,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWKGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6BET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -10776,7 +10776,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWKGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6BET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -10855,7 +10855,7 @@ "files": {}, "method": "POST", "params": { - "api_secret": "QyWKGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6BET4" }, "headers": { @@ -10943,11 +10943,7 @@ "city": "kolkata", "district": "24pgs" }, - "categoryLevels": [ - "Furniture", - "Bedroom Furniture", - "Dressers & Chests" - ], + "categoryLevels": ["Furniture", "Bedroom Furniture", "Dressers & Chests"], "products": [ { "product_id": "1234", @@ -10955,11 +10951,7 @@ "colour": "red", "shape": "rectangle" }, - "productLevels": [ - "test1", - "test2", - "test3" - ] + "productLevels": ["test1", "test2", "test3"] } ] }, @@ -10970,7 +10962,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -11005,7 +10997,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -11151,7 +11143,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWKGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6BET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -11231,7 +11223,7 @@ "files": {}, "method": "POST", "params": { - "api_secret": "QyWKGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6BET4" }, "headers": { @@ -11330,7 +11322,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWKGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6BET4", "firebaseAppId": "", "blockPageViewEvent": false, @@ -11411,7 +11403,7 @@ "files": {}, "method": "POST", "params": { - "api_secret": "QyWKGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6BET4" }, "headers": { @@ -11475,7 +11467,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWKGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6BET4", "firebaseAppId": "", "typesOfClient": "gtag", @@ -11523,7 +11515,7 @@ "files": {}, "method": "POST", "params": { - "api_secret": "QyWKGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6BET4" }, "headers": { @@ -11587,7 +11579,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWKGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6BET4", "firebaseAppId": "", "typesOfClient": "gtag", @@ -11635,7 +11627,7 @@ "files": {}, "method": "POST", "params": { - "api_secret": "QyWKGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6BET4" }, "headers": { @@ -11700,7 +11692,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWKGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6BET4", "firebaseAppId": "", "typesOfClient": "gtag", @@ -11750,7 +11742,7 @@ "files": {}, "method": "POST", "params": { - "api_secret": "QyWKGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6BET4" }, "headers": { @@ -11820,7 +11812,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWKGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6BET4", "firebaseAppId": "", "typesOfClient": "gtag", @@ -11868,7 +11860,7 @@ "files": {}, "method": "POST", "params": { - "api_secret": "QyWKGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6BET4" }, "headers": { @@ -11929,7 +11921,7 @@ }, "integrations": { "All": true, - "Google Analytics 4": { + "Google Analytics 4 (GA4)": { "clientId": "554581488.1683172875", "sessionId": "1683172875" } @@ -11937,7 +11929,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWKGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6BET4", "firebaseAppId": "", "typesOfClient": "gtag", @@ -11989,7 +11981,7 @@ "files": {}, "method": "POST", "params": { - "api_secret": "QyWKGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6BET4" }, "headers": { @@ -12055,7 +12047,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWKGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6BET4", "firebaseAppId": "", "typesOfClient": "gtag", @@ -12107,7 +12099,7 @@ "files": {}, "method": "POST", "params": { - "api_secret": "QyWKGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6BET4" }, "headers": { @@ -12179,7 +12171,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "typesOfClient": "gtag", @@ -12209,7 +12201,7 @@ "Content-Type": "application/json" }, "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "body": { @@ -12275,11 +12267,7 @@ "campaign": "advertizing", "name": "rudder", "age": 45, - "hobby": [ - "dancing", - "singing", - "reading" - ], + "hobby": ["dancing", "singing", "reading"], "enableEURegion": false, "isEnterpriseUser": { "value": false @@ -12298,7 +12286,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWKGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6BET4", "firebaseAppId": "", "typesOfClient": "gtag", @@ -12355,7 +12343,7 @@ "files": {}, "method": "POST", "params": { - "api_secret": "QyWKGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6BET4" }, "headers": { @@ -12426,7 +12414,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "typesOfClient": "gtag", @@ -12557,7 +12545,7 @@ }, "destination": { "Config": { - "apiSecret": "QyWIGHj8QhG2L4ePAPiXCA", + "apiSecret": "dummyApiSecret", "measurementId": "G-T40PE6KET4", "firebaseAppId": "", "typesOfClient": "gtag", @@ -12618,7 +12606,7 @@ "files": {}, "method": "POST", "params": { - "api_secret": "QyWIGHj8QhG2L4ePAPiXCA", + "api_secret": "dummyApiSecret", "measurement_id": "G-T40PE6KET4" }, "headers": { @@ -12628,5 +12616,119 @@ "version": "1", "endpoint": "https://www.google-analytics.com/mp/collect" } + }, + { + "description": "(gtag) campaign_details custom event", + "input": { + "message": { + "userId": "user@1", + "channel": "web", + "anonymousId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "device": { + "adTrackingEnabled": "false", + "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", + "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", + "manufacturer": "Google", + "model": "AOSP on IA Emulator", + "name": "generic_x86_arm", + "type": "ios", + "attTrackingStatus": 3 + }, + "ip": "0.0.0.0", + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "locale": "en-US", + "os": { + "name": "iOS", + "version": "14.4.1" + }, + "screen": { + "density": 2 + }, + "campaign": { + "id": "google_1234", + "name": "Summer_fun", + "source": "google", + "medium": "cpc", + "term": "summer+travel", + "content": "logo link" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" + }, + "type": "track", + "event": "Campaign Details", + "properties": {}, + "integrations": { + "All": true + } + }, + "destination": { + "Config": { + "apiSecret": "QyWKGHj8QhG2L4ePAPiXCA", + "measurementId": "G-T40PE6BET4", + "typesOfClient": "gtag", + "eventFilteringOption": "disable", + "blacklistedEvents": [ + { + "eventName": "" + } + ], + "whitelistedEvents": [ + { + "eventName": "" + } + ] + }, + "Enabled": true + } + }, + "output": { + "body": { + "XML": {}, + "FORM": {}, + "JSON": { + "events": [ + { + "name": "campaign_details", + "params": { + "campaign_id": "google_1234", + "campaign": "Summer_fun", + "source": "google", + "medium": "cpc", + "term": "summer+travel", + "content": "logo link", + "engagement_time_msec": 1 + } + } + ], + "user_id": "user@1", + "client_id": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "non_personalized_ads": true + }, + "JSON_ARRAY": {} + }, + "type": "REST", + "files": {}, + "method": "POST", + "params": { + "api_secret": "QyWKGHj8QhG2L4ePAPiXCA", + "measurement_id": "G-T40PE6BET4" + }, + "headers": { + "HOST": "www.google-analytics.com", + "Content-Type": "application/json" + }, + "version": "1", + "endpoint": "https://www.google-analytics.com/mp/collect" + } } -] \ No newline at end of file +] diff --git a/test/__tests__/data/ga_input.json b/test/__tests__/data/ga_input.json deleted file mode 100644 index 096e97ecc87..00000000000 --- a/test/__tests__/data/ga_input.json +++ /dev/null @@ -1,6514 +0,0 @@ -[ - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "id": "lynnanderson@smith.net", - "identifierType": "device_id", - "type": "AM-users" - } - ], - "mappedToDestination": "true", - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "123456", - "email": "sayan@gmail.com", - "address": { - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "", - "os_version": "test os" - }, - "ip": "0.0.0.0", - "age": 26 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "traits": { - "anonymousId": "123456", - "email": "sayan@gmail.com", - "city": "kolkata", - "address": { - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - }, - "os_version": "test os", - "ip": "0.0.0.0", - "age": 26, - "an": "Test App name", - "ul": "Test ul" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "name", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Ruchira Moitra" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "name", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "q", - "search": "", - "title": "a", - "url": "https://www.example.com/abc" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "test track event GA3", - "properties": { - "category": "test-category", - "user_actual_role": "system_admin, system_user", - "user_actual_id": 12345 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order completed", - "properties": { - "order_id": "ruchiraorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product added", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product removed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product viewed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product removed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product viewed", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product 1", - "category": "cat 1", - "sku": "p-298", - "testDimension": true, - "testMetric": true, - "position": 4.5 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product list filtered", - "properties": { - "category": "cat 1", - "list_id": "1234", - "filters": [ - { - "type": "department", - "value": "beauty" - }, - { - "type": "price", - "value": "under" - } - ], - "sorts": [ - { - "type": "price", - "value": "desc" - } - ], - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "productDimension": "My Product Dimension", - "productMetric": "My Product Metric" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product list viewed", - "properties": { - "category": "cat 1", - "list_id": "1234", - "filters": [ - { - "type": "department", - "value": "beauty" - }, - { - "type": "price", - "value": "under" - } - ], - "sorts": [ - { - "type": "price", - "value": "desc" - } - ], - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "productDimension": "My Product Dimension", - "productMetric": "My Product Metric", - "position": 10 - }, - { - "product_id": "507f1f77bcf86cdef799439011", - "productDimension": "My Product Dimension1", - "productMetric": "My Product Metric1", - "position": -10 - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product clicked", - "properties": { - "currency": "CAD", - "quantity": 1, - "price": 24.75, - "name": "my product", - "category": "cat 1", - "sku": "p-298", - "list": "search results", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "promotion viewed", - "properties": { - "currency": "CAD", - "promotion_id": "PROMO_1234", - "name": "my product", - "creative": "summer_banner2", - "position": "banner_slot1", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "promotion clicked", - "properties": { - "currency": "CAD", - "promotion_id": "PROMO_1234", - "name": "my product", - "creative": "summer_banner2", - "position": "banner_slot1", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "checkout started", - "properties": { - "currency": "CAD", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 1, - "price": 24.75, - "name": "my product 2", - "sku": "p-299" - } - ], - "step": 1, - "paymentMethod": "Visa", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order updated", - "properties": { - "currency": "CAD", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 1, - "price": 24.75, - "name": "my product 2", - "sku": "p-299" - } - ], - "step": 1, - "paymentMethod": "Visa", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "checkout step viewed", - "properties": { - "currency": "CAD", - "step": 1 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "checkout step completed", - "properties": { - "currency": "CAD", - "step": 1, - "paymentMethod": "Visa" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order refunded", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "order starterefundedd", - "properties": { - "products": [ - { - "quantity": 1, - "sku": "p-298" - }, - { - "quantity": 1, - "sku": "p-299" - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "linkid test", - "properties": { - "linkid": "abc123", - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "campaign": { - "name": "sampleName", - "source": "sampleSource", - "medium": "sampleMedium", - "content": "sampleContent", - "term": "sampleTerm" - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "campaign test", - "properties": { - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "campaign": { - "name": "sampleName", - "source": "sampleSource", - "medium": "sampleMedium", - "content": "sampleContent", - "term": "sampleTerm" - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "event": "campaign test", - "properties": { - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "campaign": { - "name": "sampleName", - "source": "sampleSource", - "medium": "sampleMedium", - "content": "sampleContent", - "term": "sampleTerm" - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "event": "campaign test", - "properties": { - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.2" - }, - "traits": { - "abc": "1234" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.2" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/tests/html/ecomm_test.html", - "referrer": "http://0.0.0.0:1112/tests/html/", - "search": "", - "title": "GA Ecommerce Test", - "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" - } - }, - "type": "identify", - "messageId": "bc8a6af8-37fd-46a9-9592-ea29a256435f", - "originalTimestamp": "2020-06-22T11:30:32.493Z", - "anonymousId": "38e169a1-3234-46f7-9ceb-c1a6a69005fe", - "userId": "123", - "integrations": { - "All": true - }, - "sentAt": "2020-06-22T11:30:32.494Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "", - "search": "?xyz=1", - "title": "", - "url": "https://www.example.com/abc" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "integrations": { - "All": true - }, - "event": "sample event", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Refunded", - "properties": { - "order_id": "ruchiraorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Refunded", - "properties": { - "order_id": "ruchiraorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Refunded", - "properties": { - "order_id": "ruchiraorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Refunded", - "properties": { - "order_id": "ruchiraorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Cart Shared", - "properties": { - "order_id": "ruchiraorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Product Shared", - "properties": { - "product_id": "ruchiraorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "url": "https://www.example.com/abc" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Product List Clicked", - "properties": { - "list_id": "Sample Product List", - "category": "Sample Product List", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Product List Clicked", - "properties": { - "list_id": "Sample Product List", - "category": "Sample Product List", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Product List Clicked", - "properties": { - "list_id": "Sample Product List", - "category": "Sample Product List", - "products": [] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Cancelled", - "properties": { - "order_id": "ruchiraorder1", - "total": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Cancelled", - "properties": { - "order_id": "ruchiraorder1", - "value": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Cancelled", - "properties": { - "order_id": "ruchiraorder1", - "revenue": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Order Cancelled", - "properties": { - "order_id": "ruchiraorder1", - "revenue": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "Cart Viewed", - "properties": { - "order_id": "ruchiraorder1", - "revenue": 99.99, - "shipping": 13.99, - "tax": 20.99, - "currency": "INR", - "products": [ - { - "quantity": 1, - "price": 24.75, - "name": "my product", - "sku": "p-298", - "product_id": "1" - }, - { - "quantity": 3, - "price": 24.75, - "name": "other product", - "sku": "p-299", - "product_id": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "traits": { - "name1": "Ruchira" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "traits": { - "name1": "Ruchira" - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "screen", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "name": "homescreen" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "newtype", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "name": "homescreen" - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Ruchira" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "userId": "12345", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Ruchira" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "userId": "12345", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "disableMd5": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Ruchira" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "userId": "12345", - "integrations": { - "All": true, - "GA": { - "clientId": "clientId" - }, - "Google Analytics": { - "clientId": "clientId" - } - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "externalId": [ - { - "id": "externalClientId", - "type": "gaExternalId" - } - ], - "traits": { - "name": "Ruchira" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "userId": "12345", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "product list viewed", - "properties": { - "nonInteraction": 0, - "category": "cat 1", - "list_id": "1234", - "filters": { - "a": "department", - "b": "beauty" - }, - "sorts": [ - { - "type": "price", - "value": "desc" - } - ], - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "productDimension": "My Product Dimension", - "productMetric": "My Product Metric", - "position": 10 - }, - { - "product_id": "507f1f77bcf86cdef799439011", - "productDimension": "My Product Dimension1", - "productMetric": "My Product Metric1", - "position": -10 - } - ], - "testDimension": true, - "testMetric": true - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "content1" - }, - { - "from": "prop2", - "to": "content2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "referrer": "https://google.com/answer/7554821?zippy=%2Cfields-in-event-snippets-for-counter-tags%2Cstep-add-the-global-snippet-to-every-page-of-your-site%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-tg%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learns-more-about-the-global-site-tag%2Cwhy-is-the-globalthe-head-when-iframe-and-image-tags-were-placed-in-the-body-placed-of-my-site%2Cwhere-can-i-learn-g2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-and-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-n-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag", - "search": "", - "title": "a", - "url": "https://support.google.com/campaignmanager/answer/7554821?zippy=%2Cfields-in-event-snippets-for-counter-tags%2Cstep-add-the-global-snippet-to-every-page-of-your-site%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjis-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjis-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjakljshdlfkjahsldkfjahlskdfjhaklsjdfhalksjdhflakjshdflakjsdhfklasjhdflaksjhdflaksjdfhlakjshdflakjsdhfklasjhdflaksjhdflaksjdfhlakjshdflakjsdhfklasjhdflaksjhdflaksjdfhljkkwoipqpweoirpoqiwerpoqi1111111111111" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "anonymizeIp": false, - "eventDeliveryTS": 1657516676962, - "eventFilteringOption": "disable", - "trackingID": "UA-165994240-1" - } - } - } -] diff --git a/test/__tests__/data/ga_output.json b/test/__tests__/data/ga_output.json deleted file mode 100644 index c4635712c2d..00000000000 --- a/test/__tests__/data/ga_output.json +++ /dev/null @@ -1,2107 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "All", - "ni": 1, - "ul": "Test ul", - "an": "Test App name", - "cm1": "sayan@gmail.com", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "uid": "123456", - "cid": "123456", - "uip": "0.0.0.0", - "qt": 75009944712 - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "123456" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Ruchira Moitra", - "cd1": "Ruchira Moitra", - "cg2": "Ruchira Moitra", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "uid": "123456", - "cid": "00000000000000000000000000", - "ni": 1, - "uip": "0.0.0.0", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "uip": "0.0.0.0", - "ul": "en-US", - "dh": "www.example.com", - "dl": "https://www.example.com/abc", - "dp": "%2Fabc", - "dr": "q", - "dt": "a" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ec": "test-category", - "ni": 1, - "v": "1", - "el": "event", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "test track event GA3", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "purchase", - "tr": 99.99, - "ev": 100, - "pr1id": "p-298", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "p-299", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "ea": "order completed", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ti": "ruchiraorder1", - "ts": 13.99, - "tt": 20.99, - "cu": "INR", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ni": 1, - "pr1qt": 1, - "pr2qt": 3, - "ul": "en-US" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product added", - "ec": "cat 1", - "pa": "add", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ni": 1, - "ul": "en-US" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product removed", - "ec": "cat 1", - "pa": "remove", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product viewed", - "ec": "cat 1", - "pa": "detail", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product removed", - "ec": "cat 1", - "pa": "remove", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product viewed", - "ec": "cat 1", - "pa": "detail", - "pr1cd1": "my product 1", - "pr1id": "p-298", - "cd1": "my product 1", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product 1", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1ps": 4.5, - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product list filtered", - "ec": "cat 1", - "pa": "detail", - "il1pi1id": "507f1f77bcf86cd799439011", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "il1nm": "1234", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "il1pi1qt": 1, - "il1pi1va": "department:beauty,price:under::price:desc", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product list viewed", - "ec": "cat 1", - "pa": "detail", - "il1pi1id": "507f1f77bcf86cd799439011", - "il1pi1ps": 10, - "il1pi2id": "507f1f77bcf86cdef799439011", - "il1pi2ps": -10, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "il1nm": "1234", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "il1pi1qt": 1, - "il1pi1va": "department:beauty,price:under::price:desc", - "il1pi2qt": 1, - "il1pi2va": "department:beauty,price:under::price:desc", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "product clicked", - "ec": "cat 1", - "pa": "click", - "pr1cd1": "my product", - "pr1id": "p-298", - "cd1": "my product", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "pr1nm": "my product", - "pr1ca": "cat 1", - "cu": "CAD", - "pr1pr": 24.75, - "pr1qt": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "pal": "search results", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "promotion viewed", - "ec": "EnhancedEcommerce", - "cu": "CAD", - "promoa": "view", - "pa": "view", - "cd1": "my product", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "promo1id": "PROMO_1234", - "promo1cr": "summer_banner2", - "promo1ps": "banner_slot1", - "promo1nm": "my product", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "promotion clicked", - "ec": "EnhancedEcommerce", - "cu": "CAD", - "promoa": "promo_click", - "pa": "promo_click", - "cd1": "my product", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "promo1id": "PROMO_1234", - "promo1cr": "summer_banner2", - "promo1ps": "banner_slot1", - "promo1nm": "my product", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "checkout", - "pr1id": "p-298", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "p-299", - "pr2cd1": "my product 2", - "pr2nm": "my product 2", - "pr2pr": 24.75, - "ea": "checkout started", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cu": "CAD", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "cos": 1, - "pr1qt": 1, - "pr2qt": 1, - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "checkout", - "pr1id": "p-298", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "p-299", - "pr2cd1": "my product 2", - "pr2nm": "my product 2", - "pr2pr": 24.75, - "ea": "order updated", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cu": "CAD", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "cos": 1, - "pr1qt": 1, - "pr2qt": 1, - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "checkout", - "ea": "checkout step viewed", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cos": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "checkout_option", - "ea": "checkout step completed", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cos": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order refunded", - "ec": "EnhancedEcommerce", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "pa": "refund", - "pr1id": "p-298", - "pr1qt": 1, - "pr2id": "p-299", - "ul": "en-US", - "pr2qt": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "order starterefundedd", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "linkid": "abc123", - "cid": "00000000000000000000000000", - "ea": "linkid test", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "cn": "sampleName", - "cs": "sampleSource", - "cm": "sampleMedium", - "cc": "sampleContent", - "ck": "sampleTerm", - "cid": "00000000000000000000000000", - "ea": "campaign test", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "cn": "sampleName", - "cs": "sampleSource", - "cm": "sampleMedium", - "cc": "sampleContent", - "ck": "sampleTerm", - "cid": "00000000000000000000000000", - "ea": "campaign test", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ul": "en-US", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "cn": "sampleName", - "cs": "sampleSource", - "cm": "sampleMedium", - "cc": "sampleContent", - "ck": "sampleTerm", - "cid": "00000000000000000000000000", - "ea": "campaign test", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "User Enriched", - "dt": "GA Ecommerce Test", - "ec": "All", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.1.2", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "uid": "123", - "cid": "38e169a1-3234-46f7-9ceb-c1a6a69005fe", - "ni": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", - "ul": "en-GB" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "38e169a1-3234-46f7-9ceb-c1a6a69005fe" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "uip": "0.0.0.0" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "uip": "0.0.0.0", - "dh": "www.example.com", - "dl": "https://www.example.com/abc", - "dp": "%2Fabc%3Fxyz%3D1" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ea": "sample event", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "uip": "0.0.0.0" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "refund", - "ev": 100, - "pr1id": "p-298", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr1qt": 1, - "pr2id": "p-299", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "pr2qt": 3, - "ea": "Order Refunded", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "ti": "ruchiraorder1", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "pa": "refund", - "ti": "ruchiraorder1", - "ea": "Order Refunded", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "pa": "refund", - "ti": "ruchiraorder1", - "ea": "Order Refunded", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "pa": "refund", - "pr1id": "1", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr1qt": 1, - "pr2id": "2", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "pr2qt": 3, - "ea": "Order Refunded", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "ti": "ruchiraorder1", - "uid": "12345", - "ul": "en-US", - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "ea": "Cart Shared", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "st": " 1 2", - "ul": "en-US" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ev": 100, - "ea": "Product Shared", - "ec": "All", - "ni": 1, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "st": "https://www.example.com/abc", - "dh": "www.example.com", - "dl": "https://www.example.com/abc", - "dp": "%2Fabc", - "ul": "en-US" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "Product List Clicked", - "ec": "Sample Product List", - "pa": "click", - "il1pi1id": "1", - "pr1cd1": "my product", - "il1pi1nm": "my product", - "il1pi1pr": 24.75, - "il1pi2id": "2", - "pr2cd1": "other product", - "il1pi2nm": "other product", - "il1pi2pr": 24.75, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "il1nm": "Sample Product List", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ni": 1, - "il1pi2qt": 3, - "il1pi1qt": 1, - "ul": "en-US" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "Product List Clicked", - "ec": "Sample Product List", - "pa": "click", - "il1pi1id": "p-298", - "pr1cd1": "my product", - "il1pi1nm": "my product", - "il1pi1pr": 24.75, - "il1pi2id": "p-299", - "pr2cd1": "other product", - "il1pi2nm": "other product", - "il1pi2pr": 24.75, - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "il1nm": "Sample Product List", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ul": "en-US", - "il1pi2qt": 3, - "il1pi1qt": 1, - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ni": 1, - "ea": "Product List Clicked", - "ec": "Sample Product List", - "pa": "click", - "el": "event", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "il1nm": "Sample Product List", - "uid": "12345", - "cid": "00000000000000000000000000" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "refund", - "ev": 100, - "tr": 99.99, - "pr1id": "1", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "2", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "ea": "Order Cancelled", - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ti": "ruchiraorder1", - "ts": 13.99, - "tt": 20.99, - "cu": "INR", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "pr1qt": 1, - "pr2qt": 3, - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "refund", - "tr": 99.99, - "pr1id": "1", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "2", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "ea": "Order Cancelled", - "ev": 100, - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ti": "ruchiraorder1", - "ts": 13.99, - "tt": 20.99, - "cu": "INR", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "pr1qt": 1, - "pr2qt": 3, - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "pa": "refund", - "tr": 99.99, - "pr1id": "1", - "pr1cd1": "my product", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr2id": "2", - "pr2cd1": "other product", - "pr2nm": "other product", - "pr2pr": 24.75, - "ea": "Order Cancelled", - "ev": 100, - "ec": "EnhancedEcommerce", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ti": "ruchiraorder1", - "ts": 13.99, - "tt": 20.99, - "cu": "INR", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "pr1qt": 1, - "pr2qt": 3, - "ni": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "statusCode": 400, - "message": "No product information supplied for transaction event" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "Cart Viewed", - "ev": 100, - "ec": "EnhancedEcommerce", - "pa": "detail", - "v": "1", - "t": "event", - "el": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "cid": "00000000000000000000000000", - "uid": "12345", - "ul": "en-US", - "ni": 1, - "pr1cd1": "my product", - "pr1id": "1", - "pr1nm": "my product", - "pr1pr": 24.75, - "pr1qt": 1, - "pr2cd1": "other product", - "pr2id": "2", - "pr2nm": "other product", - "pr2pr": 24.75, - "pr2qt": 3 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "statusCode": 400, - "message": "server side identify is not on" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "cd1": "homescreen", - "v": "1", - "t": "screenview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "cd": "homescreen", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "ul": "en-US", - "uip": "0.0.0.0" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "statusCode": 400, - "message": "Message type newtype not supported" - }, - { - "version": "1", - "type": "REST", - "userId": "12345", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Ruchira", - "ni": 1, - "cd1": "Ruchira", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "uid": "12345", - "cid": "827ccb0eea8a706c4c34a16891f84e7b", - "uip": "0.0.0.0" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "userId": "12345", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Ruchira", - "ni": 1, - "cd1": "Ruchira", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "uid": "12345", - "uip": "0.0.0.0" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "userId": "12345", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Ruchira", - "ni": 1, - "cd1": "Ruchira", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "uid": "12345", - "cid": "clientId", - "uip": "0.0.0.0" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "userId": "12345", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Ruchira", - "ni": 1, - "cd1": "Ruchira", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "uid": "12345", - "cid": "externalClientId", - "uip": "0.0.0.0" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ni": 0, - "ea": "product list viewed", - "ec": "cat 1", - "pa": "detail", - "il1pi1id": "507f1f77bcf86cd799439011", - "il1pi1va": "::price:desc", - "il1pi1ps": 10, - "il1pi1qt": 1, - "il1pi2id": "507f1f77bcf86cdef799439011", - "il1pi2va": "::price:desc", - "il1pi2ps": -10, - "il1pi2qt": 1, - "el": "event", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "npa": 1, - "aip": 1, - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "il1nm": "1234", - "uid": "12345", - "cid": "00000000000000000000000000" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "dp": "%2Fcampaignmanager%2Fanswer%2F7554821", - "dl": "https://support.google.com/campaignmanager/answer/7554821?zippy=%2Cfields-in-event-snippets-for-counter-tags%2Cstep-add-the-global-snippet-to-every-page-of-your-site%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjis-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjis-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjakljshdlfkjahsldkfjahlskdfjhaklsjdfhalksjdhflakjshdflakjsdhfklasjhdflaksjhdflaksjdfhlakjshdflakjsdhfklasjhdflaksjhdflaksjdfhlakjshdflakjsdhfklasjhdflaksjhdflaksjdfhljkkwoipqpweoirpoqiwerpoqi1111111111111", - "dh": "support.google.com", - "dt": "a", - "dr": "https://google.com/answer/7554821?zippy=%2Cfields-in-event-snippets-for-counter-tags%2Cstep-add-the-global-snippet-to-every-page-of-your-site%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-tg%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learns-more-about-the-global-site-tag%2Cwhy-is-the-globalthe-head-when-iframe-and-image-tags-were-placed-in-the-body-placed-of-my-site%2Cwhere-can-i-learn-g2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-and-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-n-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag", - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "cid": "00000000000000000000000000", - "uip": "0.0.0.0", - "qt": "8.6465591569e+10" - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - } -] diff --git a/test/__tests__/data/ga_router_input.json b/test/__tests__/data/ga_router_input.json deleted file mode 100644 index 8fe7e5732bc..00000000000 --- a/test/__tests__/data/ga_router_input.json +++ /dev/null @@ -1,230 +0,0 @@ -[ - { - "message": { - "channel": "web", - "context": { - "traits": { - "name": "Ruchira Moitra" - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "properties": { - "plan": "ruchira plan", - "name": "ruchira moitra" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "name", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "q", - "search": "", - "title": "a", - "url": "https://www.example.com/abc" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } -] diff --git a/test/__tests__/data/ga_router_output.json b/test/__tests__/data/ga_router_output.json deleted file mode 100644 index ee21c47cc12..00000000000 --- a/test/__tests__/data/ga_router_output.json +++ /dev/null @@ -1,226 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "ea": "action1", - "ec": "Ruchira Moitra", - "cd1": "Ruchira Moitra", - "cg2": "Ruchira Moitra", - "v": "1", - "t": "event", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "uid": "123456", - "cid": "00000000000000000000000000", - "ni": 1, - "uip": "0.0.0.0", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "ul": "en-US", - "qt": 80157710701 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "name", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "name", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://www.google-analytics.com/collect", - "headers": {}, - "params": { - "v": "1", - "t": "pageview", - "tid": "UA-165994240-1", - "ds": "web", - "an": "RudderLabs JavaScript SDK", - "av": "1.0.0", - "aiid": "com.rudderlabs.javascript", - "npa": 1, - "aip": 1, - "cid": "00000000000000000000000000", - "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "uid": "12345", - "uip": "0.0.0.0", - "ul": "en-US", - "dh": "www.example.com", - "dl": "https://www.example.com/abc", - "dp": "%2Fabc", - "dr": "q", - "dt": "a", - "qt": 80157710701 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "trackingID": "UA-165994240-1", - "doubleClick": true, - "enhancedLinkAttribution": true, - "classic": true, - "ignoredReferrers": "", - "serverClassic": false, - "includeSearch": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "sampleRate": "100", - "siteSpeedSampleRate": "1", - "setAllMappedProps": true, - "enableServerSideIdentify": true, - "serverSideIdentifyEventCategory": "cat1", - "serverSideIdentifyEventAction": "action1", - "anonymizeIp": true, - "domain": "domain", - "enhancedEcommerce": true, - "nonInteraction": true, - "optimize": "abc123", - "sendUserId": true, - "useGoogleAmpClientId": true, - "web-useNativeSDK": true, - "dimensions": [ - { - "from": "name", - "to": "dimension1" - }, - { - "from": "custom2", - "to": "dimension2" - } - ], - "metrics": [ - { - "from": "email", - "to": "metric1" - }, - { - "from": "trait2", - "to": "metric2" - } - ], - "resetCustomDimensionsOnPage": [ - { - "resetCustomDimensionsOnPage": "abc" - }, - { - "resetCustomDimensionsOnPage": "xyz" - } - ], - "contentGroupings": [ - { - "from": "plan", - "to": "contentGroup1" - }, - { - "from": "prop2", - "to": "contentGroup2" - } - ] - }, - "Enabled": true - } - } -] diff --git a/test/__tests__/data/gainsight_px_router_input.json b/test/__tests__/data/gainsight_px_router_input.json index a23514ab6b2..52b94048241 100644 --- a/test/__tests__/data/gainsight_px_router_input.json +++ b/test/__tests__/data/gainsight_px_router_input.json @@ -72,100 +72,7 @@ "receivedAt": "2021-06-25T14:29:52.911+05:30", "createdAt": "2021-06-25T08:59:56.329Z", "firstAttemptedAt": "", - "transformAt": "router", - "jobsT": { - "UUID": "2c14a5ac-b0fc-4e1c-87fd-dc0dec521dfa", - "JobID": 1, - "UserID": "9a7820d0-0ff2-4451-b655-682cec15cbd2", - "CreatedAt": "2021-06-25T08:59:56.329123Z", - "ExpireAt": "2021-06-25T08:59:56.329123Z", - "CustomVal": "GAINSIGHT_PX", - "EventPayload": { - "type": "identify", - "sentAt": "2021-06-25T08:59:52.891Z", - "userId": "stanley-kubrick", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.18", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "title": "Test", - "search": "", - "path": "index.html", - "url": "http://127.0.0.1:3003/index.html", - "tab_url": "http://127.0.0.1:3003/index.html", - "referrer": "$direct", - "initial_referrer": "$direct", - "referring_domain": "", - "initial_referring_domain": "" - }, - "locale": "en-GB", - "screen": { - "width": 1920, - "height": 1080, - "density": 1, - "innerWidth": 1920, - "innerHeight": 436 - }, - "traits": { - "name": "Stanley Kubrick", - "email": "stanley@kubrick.com", - "score": 100, - "title": "Director/Film Maker", - "gender": "Male", - "countryCode": "US", - "countryName": "USA", - "hobbyCustomField": "Making films. Being a genius" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.18" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36" - }, - "rudderId": "9a7820d0-0ff2-4451-b655-682cec15cbd2", - "messageId": "ff90d62e-a6e3-4e23-af20-03b4a249ef48", - "timestamp": "2021-06-25T14:29:52.911+05:30", - "receivedAt": "2021-06-25T14:29:52.911+05:30", - "request_ip": "[::1]", - "anonymousId": "1585ea2f-dddc-4d23-935f-c1196405d61e", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-06-25T08:59:52.891Z" - }, - "LastJobStatus": { - "JobID": 0, - "JobState": "", - "AttemptNum": 0, - "ExecTime": "0001-01-01T00:00:00Z", - "RetryTime": "0001-01-01T00:00:00Z", - "ErrorCode": "", - "ErrorResponse": null - }, - "Parameters": { - "source_id": "1s9eG8UCer6YSKsD8ZlQCyLa3pj", - "message_id": "ff90d62e-a6e3-4e23-af20-03b4a249ef48", - "received_at": "2021-06-25T14:29:52.911+05:30", - "transform_at": "router", - "source_job_id": "", - "destination_id": "1uLy1tqsoo9RhL1zLiqLQTKBIKL", - "gateway_job_id": 1, - "source_task_id": "", - "source_batch_id": "", - "source_job_run_id": "", - "source_task_run_id": "" - } - } + "transformAt": "router" }, "destination": { "ID": "1uLy1tqsoo9RhL1zLiqLQTKBIKL", @@ -314,123 +221,14 @@ }, "metadata": { "userId": "a27a8a8a-9e81-4898-beeb-e6041fc1552d", - "jobId": 1, + "jobId": 2, "sourceId": "1s9eG8UCer6YSKsD8ZlQCyLa3pj", "destinationId": "1uLy1tqsoo9RhL1zLiqLQTKBIKL", "attemptNum": 0, "receivedAt": "2021-06-26T16:11:22.335+05:30", "createdAt": "2021-06-26T10:41:24.126Z", "firstAttemptedAt": "", - "transformAt": "router", - "jobsT": { - "UUID": "6e111329-f45a-4c9d-9661-4b26970f4851", - "JobID": 1, - "UserID": "a27a8a8a-9e81-4898-beeb-e6041fc1552d", - "CreatedAt": "2021-06-26T10:41:24.126545Z", - "ExpireAt": "2021-06-26T10:41:24.126545Z", - "CustomVal": "GAINSIGHT_PX", - "EventPayload": { - "type": "track", - "event": "nested test2", - "sentAt": "2021-06-26T10:41:22.316Z", - "userId": "adifhas9734", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.18", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "file:///Users/anurajguha/workspace/simple-html-test/index.html", - "path": "/Users/anurajguha/workspace/simple-html-test/index.html", - "title": "Test", - "search": "", - "tab_url": "file:///Users/anurajguha/workspace/simple-html-test/index.html", - "referrer": "$direct", - "initial_referrer": "$direct", - "referring_domain": "", - "initial_referring_domain": "" - }, - "locale": "en-GB", - "screen": { - "width": 1920, - "height": 1080, - "density": 1, - "innerWidth": 1920, - "innerHeight": 585 - }, - "traits": { - "name": "Update test unique", - "phone": "9900990899", - "lastname": "user6", - "firstname": "test", - "previousCompany": "testprevCompany2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.18" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36" - }, - "rudderId": "a27a8a8a-9e81-4898-beeb-e6041fc1552d", - "messageId": "595dae36-5e4f-4feb-a2e4-8a7849615d38", - "timestamp": "2021-06-26T16:11:22.335+05:30", - "properties": { - "array": [1, 2, 3], - "nested": { - "json": "test" - }, - "status": "testing", - "description": "Example track call", - "fullyNested": [ - { - "a": 1, - "b": 2 - }, - { - "a": 1, - "b": [1, 2, 3] - } - ] - }, - "receivedAt": "2021-06-26T16:11:22.335+05:30", - "request_ip": "[::1]", - "anonymousId": "1585ea2f-dddc-4d23-935f-c1196405d61e", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-06-26T10:41:22.316Z" - }, - "LastJobStatus": { - "JobID": 0, - "JobState": "", - "AttemptNum": 0, - "ExecTime": "0001-01-01T00:00:00Z", - "RetryTime": "0001-01-01T00:00:00Z", - "ErrorCode": "", - "ErrorResponse": null - }, - "Parameters": { - "source_id": "1s9eG8UCer6YSKsD8ZlQCyLa3pj", - "message_id": "595dae36-5e4f-4feb-a2e4-8a7849615d38", - "received_at": "2021-06-26T16:11:22.335+05:30", - "transform_at": "router", - "source_job_id": "", - "destination_id": "1uLy1tqsoo9RhL1zLiqLQTKBIKL", - "gateway_job_id": 1, - "source_task_id": "", - "source_batch_id": "", - "source_job_run_id": "", - "source_task_run_id": "" - } - } + "transformAt": "router" }, "destination": { "ID": "1uLy1tqsoo9RhL1zLiqLQTKBIKL", diff --git a/test/__tests__/data/gainsight_px_router_output.json b/test/__tests__/data/gainsight_px_router_output.json index 16171dc9fbe..d76b5d34f1c 100644 --- a/test/__tests__/data/gainsight_px_router_output.json +++ b/test/__tests__/data/gainsight_px_router_output.json @@ -46,100 +46,7 @@ "receivedAt": "2021-06-25T14:29:52.911+05:30", "createdAt": "2021-06-25T08:59:56.329Z", "firstAttemptedAt": "", - "transformAt": "router", - "jobsT": { - "UUID": "2c14a5ac-b0fc-4e1c-87fd-dc0dec521dfa", - "JobID": 1, - "UserID": "9a7820d0-0ff2-4451-b655-682cec15cbd2", - "CreatedAt": "2021-06-25T08:59:56.329123Z", - "ExpireAt": "2021-06-25T08:59:56.329123Z", - "CustomVal": "GAINSIGHT_PX", - "EventPayload": { - "type": "identify", - "sentAt": "2021-06-25T08:59:52.891Z", - "userId": "stanley-kubrick", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.18", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "title": "Test", - "search": "", - "path": "index.html", - "url": "http://127.0.0.1:3003/index.html", - "tab_url": "http://127.0.0.1:3003/index.html", - "referrer": "$direct", - "initial_referrer": "$direct", - "referring_domain": "", - "initial_referring_domain": "" - }, - "locale": "en-GB", - "screen": { - "width": 1920, - "height": 1080, - "density": 1, - "innerWidth": 1920, - "innerHeight": 436 - }, - "traits": { - "name": "Stanley Kubrick", - "email": "stanley@kubrick.com", - "score": 100, - "title": "Director/Film Maker", - "gender": "Male", - "countryCode": "US", - "countryName": "USA", - "hobbyCustomField": "Making films. Being a genius" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.18" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36" - }, - "rudderId": "9a7820d0-0ff2-4451-b655-682cec15cbd2", - "messageId": "ff90d62e-a6e3-4e23-af20-03b4a249ef48", - "timestamp": "2021-06-25T14:29:52.911+05:30", - "receivedAt": "2021-06-25T14:29:52.911+05:30", - "request_ip": "[::1]", - "anonymousId": "1585ea2f-dddc-4d23-935f-c1196405d61e", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-06-25T08:59:52.891Z" - }, - "LastJobStatus": { - "JobID": 0, - "JobState": "", - "AttemptNum": 0, - "ExecTime": "0001-01-01T00:00:00Z", - "RetryTime": "0001-01-01T00:00:00Z", - "ErrorCode": "", - "ErrorResponse": null - }, - "Parameters": { - "source_id": "1s9eG8UCer6YSKsD8ZlQCyLa3pj", - "message_id": "ff90d62e-a6e3-4e23-af20-03b4a249ef48", - "received_at": "2021-06-25T14:29:52.911+05:30", - "transform_at": "router", - "source_job_id": "", - "destination_id": "1uLy1tqsoo9RhL1zLiqLQTKBIKL", - "gateway_job_id": 1, - "source_task_id": "", - "source_batch_id": "", - "source_job_run_id": "", - "source_task_run_id": "" - } - } + "transformAt": "router" } ], "batched": false, @@ -249,123 +156,14 @@ "metadata": [ { "userId": "a27a8a8a-9e81-4898-beeb-e6041fc1552d", - "jobId": 1, + "jobId": 2, "sourceId": "1s9eG8UCer6YSKsD8ZlQCyLa3pj", "destinationId": "1uLy1tqsoo9RhL1zLiqLQTKBIKL", "attemptNum": 0, "receivedAt": "2021-06-26T16:11:22.335+05:30", "createdAt": "2021-06-26T10:41:24.126Z", "firstAttemptedAt": "", - "transformAt": "router", - "jobsT": { - "UUID": "6e111329-f45a-4c9d-9661-4b26970f4851", - "JobID": 1, - "UserID": "a27a8a8a-9e81-4898-beeb-e6041fc1552d", - "CreatedAt": "2021-06-26T10:41:24.126545Z", - "ExpireAt": "2021-06-26T10:41:24.126545Z", - "CustomVal": "GAINSIGHT_PX", - "EventPayload": { - "type": "track", - "event": "nested test2", - "sentAt": "2021-06-26T10:41:22.316Z", - "userId": "adifhas9734", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.18", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "file:///Users/anurajguha/workspace/simple-html-test/index.html", - "path": "/Users/anurajguha/workspace/simple-html-test/index.html", - "title": "Test", - "search": "", - "tab_url": "file:///Users/anurajguha/workspace/simple-html-test/index.html", - "referrer": "$direct", - "initial_referrer": "$direct", - "referring_domain": "", - "initial_referring_domain": "" - }, - "locale": "en-GB", - "screen": { - "width": 1920, - "height": 1080, - "density": 1, - "innerWidth": 1920, - "innerHeight": 585 - }, - "traits": { - "name": "Update test unique", - "phone": "9900990899", - "lastname": "user6", - "firstname": "test", - "previousCompany": "testprevCompany2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.18" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36" - }, - "rudderId": "a27a8a8a-9e81-4898-beeb-e6041fc1552d", - "messageId": "595dae36-5e4f-4feb-a2e4-8a7849615d38", - "timestamp": "2021-06-26T16:11:22.335+05:30", - "properties": { - "array": [1, 2, 3], - "nested": { - "json": "test" - }, - "status": "testing", - "description": "Example track call", - "fullyNested": [ - { - "a": 1, - "b": 2 - }, - { - "a": 1, - "b": [1, 2, 3] - } - ] - }, - "receivedAt": "2021-06-26T16:11:22.335+05:30", - "request_ip": "[::1]", - "anonymousId": "1585ea2f-dddc-4d23-935f-c1196405d61e", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-06-26T10:41:22.316Z" - }, - "LastJobStatus": { - "JobID": 0, - "JobState": "", - "AttemptNum": 0, - "ExecTime": "0001-01-01T00:00:00Z", - "RetryTime": "0001-01-01T00:00:00Z", - "ErrorCode": "", - "ErrorResponse": null - }, - "Parameters": { - "source_id": "1s9eG8UCer6YSKsD8ZlQCyLa3pj", - "message_id": "595dae36-5e4f-4feb-a2e4-8a7849615d38", - "received_at": "2021-06-26T16:11:22.335+05:30", - "transform_at": "router", - "source_job_id": "", - "destination_id": "1uLy1tqsoo9RhL1zLiqLQTKBIKL", - "gateway_job_id": 1, - "source_task_id": "", - "source_batch_id": "", - "source_job_run_id": "", - "source_task_run_id": "" - } - } + "transformAt": "router" } ], "batched": false, diff --git a/test/__tests__/data/gainsight_router_input.json b/test/__tests__/data/gainsight_router_input.json index f46609d1248..9432b7c5efd 100644 --- a/test/__tests__/data/gainsight_router_input.json +++ b/test/__tests__/data/gainsight_router_input.json @@ -66,90 +66,7 @@ "receivedAt": "2021-05-28T16:52:01.859+05:30", "createdAt": "2021-05-28T11:22:02.463Z", "firstAttemptedAt": "", - "transformAt": "router", - "jobsT": { - "UUID": "62ae61f3-83d2-471e-a19f-10dfec0e759f", - "JobID": 1, - "UserID": "94d40f2f-5787-4798-8a03-34f3b02f5ede", - "CreatedAt": "2021-05-28T11:22:02.463082Z", - "ExpireAt": "2021-05-28T11:22:02.463082Z", - "CustomVal": "GAINSIGHT", - "EventPayload": { - "type": "identify", - "sentAt": "2021-05-28T11:22:01.842Z", - "userId": "live-test", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.18", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "file:///Users/anurajguha/workspace/simple-html-test/index.html", - "path": "/Users/anurajguha/workspace/simple-html-test/index.html", - "title": "Test", - "search": "", - "tab_url": "file:///Users/anurajguha/workspace/simple-html-test/index.html", - "referrer": "$direct", - "initial_referrer": "$direct", - "referring_domain": "", - "initial_referring_domain": "" - }, - "locale": "en-GB", - "screen": { - "density": 2 - }, - "traits": { - "name": "Cosmo Krammer", - "email": "cosmo@krammer.com", - "location": "New York", - "emailOptOut": true, - "linkedinUrl": "https://linkedin.com/cosmo-krammer", - "masterAvatarTypeCode": 10 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.18" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" - }, - "rudderId": "94d40f2f-5787-4798-8a03-34f3b02f5ede", - "messageId": "8274e525-d99c-4f55-b67a-bbc890d1444c", - "timestamp": "2021-05-28T16:52:01.859+05:30", - "receivedAt": "2021-05-28T16:52:01.859+05:30", - "request_ip": "[::1]", - "anonymousId": "1585ea2f-dddc-4d23-935f-c1196405d61e", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-05-28T11:22:01.842Z" - }, - "LastJobStatus": { - "JobID": 0, - "JobState": "", - "AttemptNum": 0, - "ExecTime": "0001-01-01T00:00:00Z", - "RetryTime": "0001-01-01T00:00:00Z", - "ErrorCode": "", - "ErrorResponse": null - }, - "Parameters": { - "source_id": "1syvMwC0K62eIb4yAV9kFJtbDEA", - "job_run_id": "", - "message_id": "8274e525-d99c-4f55-b67a-bbc890d1444c", - "received_at": "2021-05-28T16:52:01.859+05:30", - "transform_at": "router", - "destination_id": "1syvZAuiGo4l1SIsil0TxDEx34G", - "gateway_job_id": 1 - } - } + "transformAt": "router" }, "destination": { "ID": "1syvZAuiGo4l1SIsil0TxDEx34G", @@ -254,95 +171,14 @@ }, "metadata": { "userId": "1a30a93f-916b-4c39-ad20-1ce7bbbd7754", - "jobId": 1, + "jobId": 2, "sourceId": "1syvMwC0K62eIb4yAV9kFJtbDEA", "destinationId": "1syvZAuiGo4l1SIsil0TxDEx34G", "attemptNum": 0, "receivedAt": "2021-05-28T17:22:12.905+05:30", "createdAt": "2021-05-28T11:52:15.283Z", "firstAttemptedAt": "", - "transformAt": "router", - "jobsT": { - "UUID": "5474de9c-7653-4c36-99a6-59c345fa7a2c", - "JobID": 1, - "UserID": "1a30a93f-916b-4c39-ad20-1ce7bbbd7754", - "CreatedAt": "2021-05-28T11:52:15.283244Z", - "ExpireAt": "2021-05-28T11:52:15.283244Z", - "CustomVal": "GAINSIGHT", - "EventPayload": { - "type": "track", - "event": "Demo Request", - "sentAt": "2021-05-28T11:52:12.893Z", - "userId": "", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.18", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "file:///Users/anurajguha/workspace/simple-html-test/index.html", - "path": "/Users/anurajguha/workspace/simple-html-test/index.html", - "title": "Test", - "search": "", - "tab_url": "file:///Users/anurajguha/workspace/simple-html-test/index.html", - "referrer": "$direct", - "initial_referrer": "$direct", - "referring_domain": "", - "initial_referring_domain": "" - }, - "locale": "en-GB", - "screen": { - "density": 2 - }, - "traits": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.18" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" - }, - "rudderId": "1a30a93f-916b-4c39-ad20-1ce7bbbd7754", - "messageId": "f5619b1a-8704-42a8-bab9-92bbeaa44896", - "timestamp": "2021-05-28T17:22:12.905+05:30", - "properties": { - "email": "sample@user.com", - "status": "active" - }, - "receivedAt": "2021-05-28T17:22:12.905+05:30", - "request_ip": "[::1]", - "anonymousId": "1585ea2f-dddc-4d23-935f-c1196405d61e", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-05-28T11:52:12.893Z" - }, - "LastJobStatus": { - "JobID": 0, - "JobState": "", - "AttemptNum": 0, - "ExecTime": "0001-01-01T00:00:00Z", - "RetryTime": "0001-01-01T00:00:00Z", - "ErrorCode": "", - "ErrorResponse": null - }, - "Parameters": { - "source_id": "1syvMwC0K62eIb4yAV9kFJtbDEA", - "job_run_id": "", - "message_id": "f5619b1a-8704-42a8-bab9-92bbeaa44896", - "received_at": "2021-05-28T17:22:12.905+05:30", - "transform_at": "router", - "destination_id": "1syvZAuiGo4l1SIsil0TxDEx34G", - "gateway_job_id": 1 - } - } + "transformAt": "router" }, "destination": { "ID": "1syvZAuiGo4l1SIsil0TxDEx34G", diff --git a/test/__tests__/data/gainsight_router_output.json b/test/__tests__/data/gainsight_router_output.json index 6549bdb93d6..a432c3c4c7b 100644 --- a/test/__tests__/data/gainsight_router_output.json +++ b/test/__tests__/data/gainsight_router_output.json @@ -35,90 +35,7 @@ "receivedAt": "2021-05-28T16:52:01.859+05:30", "createdAt": "2021-05-28T11:22:02.463Z", "firstAttemptedAt": "", - "transformAt": "router", - "jobsT": { - "UUID": "62ae61f3-83d2-471e-a19f-10dfec0e759f", - "JobID": 1, - "UserID": "94d40f2f-5787-4798-8a03-34f3b02f5ede", - "CreatedAt": "2021-05-28T11:22:02.463082Z", - "ExpireAt": "2021-05-28T11:22:02.463082Z", - "CustomVal": "GAINSIGHT", - "EventPayload": { - "type": "identify", - "sentAt": "2021-05-28T11:22:01.842Z", - "userId": "live-test", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.18", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "file:///Users/anurajguha/workspace/simple-html-test/index.html", - "path": "/Users/anurajguha/workspace/simple-html-test/index.html", - "title": "Test", - "search": "", - "tab_url": "file:///Users/anurajguha/workspace/simple-html-test/index.html", - "referrer": "$direct", - "initial_referrer": "$direct", - "referring_domain": "", - "initial_referring_domain": "" - }, - "locale": "en-GB", - "screen": { - "density": 2 - }, - "traits": { - "name": "Cosmo Krammer", - "email": "cosmo@krammer.com", - "location": "New York", - "emailOptOut": true, - "linkedinUrl": "https://linkedin.com/cosmo-krammer", - "masterAvatarTypeCode": 10 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.18" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" - }, - "rudderId": "94d40f2f-5787-4798-8a03-34f3b02f5ede", - "messageId": "8274e525-d99c-4f55-b67a-bbc890d1444c", - "timestamp": "2021-05-28T16:52:01.859+05:30", - "receivedAt": "2021-05-28T16:52:01.859+05:30", - "request_ip": "[::1]", - "anonymousId": "1585ea2f-dddc-4d23-935f-c1196405d61e", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-05-28T11:22:01.842Z" - }, - "LastJobStatus": { - "JobID": 0, - "JobState": "", - "AttemptNum": 0, - "ExecTime": "0001-01-01T00:00:00Z", - "RetryTime": "0001-01-01T00:00:00Z", - "ErrorCode": "", - "ErrorResponse": null - }, - "Parameters": { - "source_id": "1syvMwC0K62eIb4yAV9kFJtbDEA", - "job_run_id": "", - "message_id": "8274e525-d99c-4f55-b67a-bbc890d1444c", - "received_at": "2021-05-28T16:52:01.859+05:30", - "transform_at": "router", - "destination_id": "1syvZAuiGo4l1SIsil0TxDEx34G", - "gateway_job_id": 1 - } - } + "transformAt": "router" } ], "batched": false, @@ -199,95 +116,14 @@ "metadata": [ { "userId": "1a30a93f-916b-4c39-ad20-1ce7bbbd7754", - "jobId": 1, + "jobId": 2, "sourceId": "1syvMwC0K62eIb4yAV9kFJtbDEA", "destinationId": "1syvZAuiGo4l1SIsil0TxDEx34G", "attemptNum": 0, "receivedAt": "2021-05-28T17:22:12.905+05:30", "createdAt": "2021-05-28T11:52:15.283Z", "firstAttemptedAt": "", - "transformAt": "router", - "jobsT": { - "UUID": "5474de9c-7653-4c36-99a6-59c345fa7a2c", - "JobID": 1, - "UserID": "1a30a93f-916b-4c39-ad20-1ce7bbbd7754", - "CreatedAt": "2021-05-28T11:52:15.283244Z", - "ExpireAt": "2021-05-28T11:52:15.283244Z", - "CustomVal": "GAINSIGHT", - "EventPayload": { - "type": "track", - "event": "Demo Request", - "sentAt": "2021-05-28T11:52:12.893Z", - "userId": "", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.18", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "file:///Users/anurajguha/workspace/simple-html-test/index.html", - "path": "/Users/anurajguha/workspace/simple-html-test/index.html", - "title": "Test", - "search": "", - "tab_url": "file:///Users/anurajguha/workspace/simple-html-test/index.html", - "referrer": "$direct", - "initial_referrer": "$direct", - "referring_domain": "", - "initial_referring_domain": "" - }, - "locale": "en-GB", - "screen": { - "density": 2 - }, - "traits": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.18" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" - }, - "rudderId": "1a30a93f-916b-4c39-ad20-1ce7bbbd7754", - "messageId": "f5619b1a-8704-42a8-bab9-92bbeaa44896", - "timestamp": "2021-05-28T17:22:12.905+05:30", - "properties": { - "email": "sample@user.com", - "status": "active" - }, - "receivedAt": "2021-05-28T17:22:12.905+05:30", - "request_ip": "[::1]", - "anonymousId": "1585ea2f-dddc-4d23-935f-c1196405d61e", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-05-28T11:52:12.893Z" - }, - "LastJobStatus": { - "JobID": 0, - "JobState": "", - "AttemptNum": 0, - "ExecTime": "0001-01-01T00:00:00Z", - "RetryTime": "0001-01-01T00:00:00Z", - "ErrorCode": "", - "ErrorResponse": null - }, - "Parameters": { - "source_id": "1syvMwC0K62eIb4yAV9kFJtbDEA", - "job_run_id": "", - "message_id": "f5619b1a-8704-42a8-bab9-92bbeaa44896", - "received_at": "2021-05-28T17:22:12.905+05:30", - "transform_at": "router", - "destination_id": "1syvZAuiGo4l1SIsil0TxDEx34G", - "gateway_job_id": 1 - } - } + "transformAt": "router" } ], "batched": false, diff --git a/test/__tests__/data/gainsightpx_source.json b/test/__tests__/data/gainsightpx_source.json index c4c76428711..438d1d0cf69 100644 --- a/test/__tests__/data/gainsightpx_source.json +++ b/test/__tests__/data/gainsightpx_source.json @@ -8,8 +8,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "lastSeenDate": 1665582808669, "signUpDate": 1665582791753, "firstVisitDate": 1665582791753, @@ -117,8 +117,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "title": "Mr.", "score": 0, "globalUnsubscribe": false, @@ -148,8 +148,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "lastSeenDate": 1665582808669, "signUpDate": 1665582791753, "firstVisitDate": 1665582791753, @@ -256,8 +256,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "title": "Mr.", "globalUnsubscribe": false, "accountId": "IBM", @@ -310,8 +310,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "lastSeenDate": 1665582808669, "signUpDate": 1665582791753, "firstVisitDate": 1665582791753, @@ -414,8 +414,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "title": "Mr.", "globalUnsubscribe": false, "accountId": "IBM", @@ -469,8 +469,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "lastSeenDate": 1665582808669, "signUpDate": 1665582791753, "firstVisitDate": 1665582791753, @@ -570,8 +570,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "title": "Mr.", "globalUnsubscribe": false, "accountId": "IBM", @@ -620,8 +620,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "lastSeenDate": 1665582808669, "signUpDate": 1665582791753, "firstVisitDate": 1665582791753, @@ -722,8 +722,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "title": "Mr.", "globalUnsubscribe": false, "accountId": "IBM", @@ -793,8 +793,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "lastSeenDate": 1665582808669, "signUpDate": 1665582791753, "firstVisitDate": 1665582791753, @@ -912,8 +912,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "title": "Mr.", "globalUnsubscribe": false, "accountId": "IBM", @@ -981,8 +981,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "lastSeenDate": 1665582808669, "signUpDate": 1665582791753, "firstVisitDate": 1665582791753, @@ -1095,8 +1095,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "title": "Mr.", "globalUnsubscribe": false, "accountId": "IBM", @@ -1157,8 +1157,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "lastSeenDate": 1665582808669, "signUpDate": 1665582791753, "firstVisitDate": 1665582791753, @@ -1265,8 +1265,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "title": "Mr.", "globalUnsubscribe": false, "accountId": "IBM", @@ -1323,8 +1323,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "lastSeenDate": 1665582808669, "signUpDate": 1665582791753, "firstVisitDate": 1665582791753, @@ -1450,8 +1450,8 @@ "type": "USER", "gender": "EMPTY_GENDER", "email": "userEmail@address.com", - "firstName": "Anant", - "lastName": "Jain", + "firstName": "test", + "lastName": "rudderlabs", "title": "Mr.", "globalUnsubscribe": false, "accountId": "IBM", diff --git a/test/__tests__/data/google_adwords_enhanced_conversions_input.json b/test/__tests__/data/google_adwords_enhanced_conversions_input.json deleted file mode 100644 index 9e87de482dd..00000000000 --- a/test/__tests__/data/google_adwords_enhanced_conversions_input.json +++ /dev/null @@ -1,1081 +0,0 @@ -[ - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", - "customerId": "123-456-7890", - "subAccount": true, - "loginCustomerId": "123-456-7890", - "listOfConversions": [ - { - "conversions": "Page View" - }, - { - "conversions": "Product Added" - } - ], - "authStatus": "active" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "phone": "912382193", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "UK", - "countryCode": "us", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Page View", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "adjustedValue": "10", - "currency": "INR", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "partialFailure": true, - "campaignId": "1", - "templateId": "0", - "order_id": 10000, - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg", - "quantity": "2" - }, - { - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": 22, - "position": "12", - "category": "Cars2", - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - } - ] - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", - "customerId": "1234567890", - "subAccount": true, - "loginCustomerId": "11", - "listOfConversions": [ - { - "conversions": "Page View" - }, - { - "conversions": "Product Added" - } - ], - "authStatus": "active" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "phone": "912382193", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "UK", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Checkout Started", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "adjustedValue": "10", - "currency": "INR", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "partialFailure": true, - "campaignId": "1", - "templateId": "0", - "order_id": 10000, - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg", - "quantity": "2" - }, - { - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": 22, - "position": "12", - "category": "Cars2", - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - } - ] - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", - "customerId": "1234567890", - "subAccount": true, - "loginCustomerId": "11", - "listOfConversions": [ - { - "conversions": "Page View" - }, - { - "conversions": "Product Added" - } - ], - "authStatus": "active" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Product Added", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "adjustedValue": "10", - "currency": "INR", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "partialFailure": true, - "campaignId": "1", - "templateId": "0", - "order_id": 10000, - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg", - "quantity": "2" - }, - { - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": 22, - "position": "12", - "category": "Cars2", - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - } - ] - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", - "customerId": "1234567890", - "subAccount": true, - "loginCustomerId": "11", - "listOfConversions": [ - { - "conversions": "Page View" - }, - { - "conversions": "Product Added" - } - ], - "authStatus": "active" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "firstName": "John", - "lastName": "Gomes", - "address": { - "city": "London", - "state": "UK", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK", - "country": "us" - } - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Product Added", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "adjustedValue": "10", - "currencyCode": "INR", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "partialFailure": "true", - "campaignId": "1", - "templateId": "0", - "order_id": 10000, - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg", - "quantity": "2" - }, - { - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": 22, - "position": "12", - "category": "Cars2", - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - } - ] - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", - "customerId": "1234567890", - "subAccount": true, - "loginCustomerId": "", - "listOfConversions": [ - { - "conversions": "Page View" - }, - { - "conversions": "Product Added" - } - ], - "authStatus": "active" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "UK", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Product Added", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "adjustedValue": "10", - "currencyCode": "INR", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "partialFailure": true, - "campaignId": "1", - "templateId": "0", - "orderId": 10000, - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg", - "quantity": "2" - }, - { - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": 22, - "position": "12", - "category": "Cars2", - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - } - ] - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", - "customerId": "1234567890", - "subAccount": true, - "loginCustomerId": "", - "listOfConversions": [ - { - "conversions": "Page View" - }, - { - "conversions": "Product Added" - } - ], - "authStatus": "active" - } - }, - "message": { - "type": "identify", - "traits": { - "status": "elizabeth" - }, - "userId": "emrichardson820+22822@gmail.com", - "channel": "sources", - "context": { - "sources": { - "job_id": "24c5HJxHomh6YCngEOCgjS5r1KX/Syncher", - "task_id": "vw_rs_mailchimp_mocked_hg_data", - "version": "v1.8.1", - "batch_id": "f252c69d-c40d-450e-bcd2-2cf26cb62762", - "job_run_id": "c8el40l6e87v0c4hkbl0", - "task_run_id": "c8el40l6e87v0c4hkblg" - }, - "externalId": [ - { - "id": "emrichardson820+22822@gmail.com", - "type": "MAILCHIMP-92e1f1ad2c", - "identifierType": "email_address" - } - ], - "mappedToDestination": "true" - }, - "recordId": "1", - "rudderId": "4d5d0ed0-9db8-41cc-9bb0-a032f6bfa97a", - "messageId": "b3bee036-fc26-4f6d-9867-c17f85708a82" - } - }, - { - "metadata": { - "secret": null - }, - "destination": { - "Config": { - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", - "customerId": "1234567890", - "subAccount": true, - "loginCustomerId": "11", - "listOfConversions": [ - { - "conversions": "Page View" - }, - { - "conversions": "Product Added" - } - ], - "authStatus": "active" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "phone": "912382193", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "UK", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Page View", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "adjustedValue": "10", - "currency": "INR", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "partialFailure": true, - "campaignId": "1", - "templateId": "0", - "order_id": 10000, - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg", - "quantity": "2" - }, - { - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": 22, - "position": "12", - "category": "Cars2", - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - } - ] - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", - "customerId": "123-456-7890", - "subAccount": true, - "loginCustomerId": "123-456-7890", - "listOfConversions": [ - { - "conversions": "Page View" - }, - { - "conversions": "Product Added" - } - ], - "authStatus": "active" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "phone": "912382193", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "UK", - "countryCode": "us", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Product Viewed", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "adjustedValue": "10", - "currency": "INR", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "partialFailure": true, - "campaignId": "1", - "templateId": "0", - "orde_id": 10000, - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg", - "quantity": "2" - }, - { - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": 22, - "position": "12", - "category": "Cars2", - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - } - ] - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "requireHash": true, - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", - "customerId": "123-456-7890", - "subAccount": true, - "loginCustomerId": "123-456-7890", - "listOfConversions": [ - { - "conversions": "Page View" - }, - { - "conversions": "Product Added" - } - ], - "authStatus": "active" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "phone": "912382193", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "UK", - "countryCode": "us", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Page View", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "adjustedValue": "10", - "currency": "INR", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "partialFailure": true, - "campaignId": "1", - "templateId": "0", - "order_id": 10000, - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": 22, - "position": "12", - "category": "Cars2", - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - } - ] - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "requireHash": false, - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", - "customerId": "123-456-7890", - "subAccount": true, - "loginCustomerId": "123-456-7890", - "listOfConversions": [ - { - "conversions": "Page View" - }, - { - "conversions": "Product Added" - } - ], - "authStatus": "active" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "phone": "912382193", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "UK", - "countryCode": "us", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Page View", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "adjustedValue": "10", - "currency": "INR", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "partialFailure": true, - "campaignId": "1", - "templateId": "0", - "order_id": 10000, - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": 22, - "position": "12", - "category": "Cars2", - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - } - ] - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "requireHash": false, - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", - "customerId": "123-456-7890", - "subAccount": true, - "loginCustomerId": "123-456-7890", - "listOfConversions": [ - { - "conversions": "Page View" - }, - { - "conversions": "Product Added" - } - ], - "authStatus": "active" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "phone": "912382193", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "UK", - "countryCode": "us", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Page View", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "adjustedValue": "10", - "currency": "INR", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "partialFailure": true, - "campaignId": "1", - "templateId": "0", - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": 22, - "position": "12", - "category": "Cars2", - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - } - ] - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - } - } -] diff --git a/test/__tests__/data/google_adwords_enhanced_conversions_output.json b/test/__tests__/data/google_adwords_enhanced_conversions_output.json deleted file mode 100644 index f90bcd5901e..00000000000 --- a/test/__tests__/data/google_adwords_enhanced_conversions_output.json +++ /dev/null @@ -1,331 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1234567890:uploadConversionAdjustments", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "1234567890" - }, - "params": { - "event": "Page View", - "customerId": "1234567890" - }, - "body": { - "JSON": { - "partialFailure": true, - "conversionAdjustments": [ - { - "gclidDateTimePair": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00" - }, - "restatementValue": { - "adjustedValue": 10, - "currencyCode": "INR" - }, - "orderId": "10000", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "userIdentifiers": [ - { - "hashedPhoneNumber": "04387707e6cbed8c4538c81cc570ed9252d579469f36c273839b26d784e4bdbe" - }, - { - "addressInfo": { - "hashedFirstName": "a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da", - "hashedLastName": "1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4", - "state": "UK", - "city": "London", - "countryCode": "us", - "hashedStreetAddress": "9a4d2e50828448f137f119a3ebdbbbab8d6731234a67595fdbfeb2a2315dd550" - } - } - ], - "adjustmentType": "ENHANCEMENT" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "statusCode": 400, - "error": "Conversion named \"Checkout Started\" was not specified in the RudderStack destination configuration", - "statTags": { - "destination": "google_adwords_enhanced_conversions", - "stage": "transform", - "scope": "exception" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "statusCode": 400, - "error": "Any of email, phone, firstName, lastName, city, street, countryCode, postalCode or streetAddress is required in traits.", - "statTags": { - "destination": "google_adwords_enhanced_conversions", - "stage": "transform", - "scope": "exception" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1234567890:uploadConversionAdjustments", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "11" - }, - "params": { - "event": "Product Added", - "customerId": "1234567890" - }, - "body": { - "JSON": { - "conversionAdjustments": [ - { - "gclidDateTimePair": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00" - }, - "restatementValue": { - "adjustedValue": 10, - "currencyCode": "INR" - }, - "orderId": "10000", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da", - "hashedLastName": "1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4", - "state": "UK", - "city": "London", - "countryCode": "us", - "hashedStreetAddress": "b28c94b2195c8ed259f0b415aaee3f39b0b2920a4537611499fa044956917a21" - } - } - ], - "adjustmentType": "ENHANCEMENT" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "statusCode": 400, - "error": "LoginCustomerId is required as subAccount is true.", - "statTags": { - "destination": "google_adwords_enhanced_conversions", - "stage": "transform", - "scope": "exception" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "statusCode": 400, - "error": "Message Type identify is not supported. Aborting message.", - "statTags": { - "destination": "google_adwords_enhanced_conversions", - "stage": "transform", - "scope": "exception" - } - }, - { - "metadata": { - "secret": null - }, - "statusCode": 400, - "error": "Empty/Invalid access token", - "statTags": { - "destination": "google_adwords_enhanced_conversions", - "stage": "transform", - "scope": "exception" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "statusCode": 400, - "error": "Conversion named \"Product Viewed\" was not specified in the RudderStack destination configuration", - "statTags": { - "destination": "google_adwords_enhanced_conversions", - "stage": "transform", - "scope": "exception" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1234567890:uploadConversionAdjustments", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "1234567890" - }, - "params": { - "event": "Page View", - "customerId": "1234567890" - }, - "body": { - "JSON": { - "conversionAdjustments": [ - { - "gclidDateTimePair": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00" - }, - "restatementValue": { - "adjustedValue": 10, - "currencyCode": "INR" - }, - "orderId": "10000", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "userIdentifiers": [ - { - "hashedPhoneNumber": "04387707e6cbed8c4538c81cc570ed9252d579469f36c273839b26d784e4bdbe" - }, - { - "addressInfo": { - "hashedFirstName": "a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da", - "hashedLastName": "1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4", - "state": "UK", - "city": "London", - "countryCode": "us", - "hashedStreetAddress": "9a4d2e50828448f137f119a3ebdbbbab8d6731234a67595fdbfeb2a2315dd550" - } - } - ], - "adjustmentType": "ENHANCEMENT" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1234567890:uploadConversionAdjustments", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "1234567890" - }, - "params": { - "event": "Page View", - "customerId": "1234567890" - }, - "body": { - "JSON": { - "conversionAdjustments": [ - { - "gclidDateTimePair": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00" - }, - "restatementValue": { - "adjustedValue": 10, - "currencyCode": "INR" - }, - "orderId": "10000", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "userIdentifiers": [ - { - "hashedPhoneNumber": "912382193" - }, - { - "addressInfo": { - "hashedFirstName": "John", - "hashedLastName": "Gomes", - "state": "UK", - "city": "London", - "countryCode": "us", - "hashedStreetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - } - } - ], - "adjustmentType": "ENHANCEMENT" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "statusCode": 400, - "error": "Missing required value from [\"properties.orderId\",\"properties.order_id\"]", - "statTags": { - "destination": "google_adwords_enhanced_conversions", - "stage": "transform", - "scope": "exception" - } - } -] diff --git a/test/__tests__/data/google_adwords_enhanced_conversions_proxy_input.json b/test/__tests__/data/google_adwords_enhanced_conversions_proxy_input.json deleted file mode 100644 index d9d0575355b..00000000000 --- a/test/__tests__/data/google_adwords_enhanced_conversions_proxy_input.json +++ /dev/null @@ -1,161 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1234567890:uploadConversionAdjustments", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "0987654321" - }, - "params": { - "event": "Product Added", - "customerId": "1234567890", - "destination": "google_adwords_enhanced_conversions" - }, - "body": { - "JSON": { - "partialFailure": true, - "conversionAdjustments": [ - { - "gclidDateTimePair": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00" - }, - "restatementValue": { - "adjustedValue": 10, - "currency": "INR" - }, - "order_id": "10000", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da", - "hashedLastName": "1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4", - "state": "UK", - "city": "London", - "hashedStreetAddress": "9a4d2e50828448f137f119a3ebdbbbab8d6731234a67595fdbfeb2a2315dd550" - } - } - ], - "adjustmentType": "ENHANCEMENT" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1234567899:uploadConversionAdjustments", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "0987654321" - }, - "params": { - "event": "Product Added", - "customerId": "1234567899", - "destination": "google_adwords_enhanced_conversions" - }, - "body": { - "JSON": { - "partialFailure": true, - "conversionAdjustments": [ - { - "gclidDateTimePair": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00" - }, - "restatementValue": { - "adjustedValue": 10, - "currency": "INR" - }, - "order_id": "10000", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da", - "hashedLastName": "1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4", - "state": "UK", - "city": "London", - "hashedStreetAddress": "9a4d2e50828448f137f119a3ebdbbbab8d6731234a67595fdbfeb2a2315dd550" - } - } - ], - "adjustmentType": "ENHANCEMENT" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1234567891:uploadConversionAdjustments", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "0987654321" - }, - "params": { - "event": "Product Added", - "customerId": "1234567891", - "destination": "google_adwords_enhanced_conversions" - }, - "body": { - "JSON": { - "partialFailure": true, - "conversionAdjustments": [ - { - "gclidDateTimePair": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00" - }, - "restatementValue": { - "adjustedValue": 10, - "currency": "INR" - }, - "order_id": "10000", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da", - "hashedLastName": "1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4", - "state": "UK", - "city": "London", - "hashedStreetAddress": "9a4d2e50828448f137f119a3ebdbbbab8d6731234a67595fdbfeb2a2315dd550" - } - } - ], - "adjustmentType": "ENHANCEMENT" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } -] \ No newline at end of file diff --git a/test/__tests__/data/google_adwords_enhanced_conversions_proxy_output.json b/test/__tests__/data/google_adwords_enhanced_conversions_proxy_output.json deleted file mode 100644 index dd233d4b0ee..00000000000 --- a/test/__tests__/data/google_adwords_enhanced_conversions_proxy_output.json +++ /dev/null @@ -1,66 +0,0 @@ -[ - { - "output": { - "message": "\"\"Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.\" during Google_adwords_enhanced_conversions response transformation\"", - "authErrorCategory": "REFRESH_TOKEN", - "destinationResponse": [ - { - "error": { - "code": 401, - "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", - "status": "UNAUTHENTICATED" - } - } - ], - "statTags": { - "destType": "GOOGLE_ADWORDS_ENHANCED_CONVERSIONS", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - }, - "status": 401 - } - }, - { - "output": { - "message": "\"\"[ECONNREFUSED] :: Connection refused\" during Google_adwords_enhanced_conversions response transformation\"", - "destinationResponse": "[ECONNREFUSED] :: Connection refused", - "statTags": { - "destType": "GOOGLE_ADWORDS_ENHANCED_CONVERSIONS", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "retryable", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - }, - "status": 500 - } - }, - { - "output": { - "status": 200, - "message": "Request Processed Successfully", - "destinationResponse": { - "response": [ - { - "adjustmentType": "ENHANCEMENT", - "conversionAction": "customers/7693729833/conversionActions/874224905", - "adjustmentDateTime": "2021-01-01 12:32:45-08:00", - "gclidDateTimePair": { - "gclid": "1234", - "conversionDateTime": "2021-01-01 12:32:45-08:00" - }, - "orderId": "12345" - } - ], - "status": 200 - } - } - } -] diff --git a/test/__tests__/data/google_adwords_enhanced_conversions_router_input.json b/test/__tests__/data/google_adwords_enhanced_conversions_router_input.json deleted file mode 100644 index a3bf808f46a..00000000000 --- a/test/__tests__/data/google_adwords_enhanced_conversions_router_input.json +++ /dev/null @@ -1,265 +0,0 @@ -[ - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", - "customerId": "1234567890", - "subAccount": true, - "loginCustomerId": "11", - "listOfConversions": [ - { - "conversions": "Page View" - }, - { - "conversions": "Product Added" - } - ], - "authStatus": "active" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "phone": "912382193", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "UK", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Page View", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "adjustedValue": "10", - "currency": "INR", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "partialFailure": true, - "campaignId": "1", - "templateId": "0", - "order_id": 10000, - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg", - "quantity": "2" - }, - { - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": 22, - "position": "12", - "category": "Cars2", - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - } - ] - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", - "customerId": "1234567890", - "subAccount": true, - "loginCustomerId": "", - "listOfConversions": [ - { - "conversions": "Page View" - }, - { - "conversions": "Product Added" - } - ], - "authStatus": "active" - } - }, - "message": { - "type": "identify", - "traits": { - "status": "elizabeth" - }, - "userId": "emrichardson820+22822@gmail.com", - "channel": "sources", - "context": { - "sources": { - "job_id": "24c5HJxHomh6YCngEOCgjS5r1KX/Syncher", - "task_id": "vw_rs_mailchimp_mocked_hg_data", - "version": "v1.8.1", - "batch_id": "f252c69d-c40d-450e-bcd2-2cf26cb62762", - "job_run_id": "c8el40l6e87v0c4hkbl0", - "task_run_id": "c8el40l6e87v0c4hkblg" - }, - "externalId": [ - { - "id": "emrichardson820+22822@gmail.com", - "type": "MAILCHIMP-92e1f1ad2c", - "identifierType": "email_address" - } - ], - "mappedToDestination": "true" - }, - "recordId": "1", - "rudderId": "4d5d0ed0-9db8-41cc-9bb0-a032f6bfa97a", - "messageId": "b3bee036-fc26-4f6d-9867-c17f85708a82" - } - }, - { - "metadata": { - "secret": {} - }, - "destination": { - "Config": { - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", - "customerId": "1234567890", - "subAccount": true, - "loginCustomerId": "11", - "listOfConversions": [ - { - "conversions": "Page View" - }, - { - "conversions": "Product Added" - } - ], - "authStatus": "active" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "phone": "912382193", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "UK", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Page View", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "adjustedValue": "10", - "currency": "INR", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "partialFailure": true, - "campaignId": "1", - "templateId": "0", - "order_id": 10000, - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg", - "quantity": "2" - }, - { - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": 22, - "position": "12", - "category": "Cars2", - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - } - ] - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - } - } -] diff --git a/test/__tests__/data/google_adwords_enhanced_conversions_router_output.json b/test/__tests__/data/google_adwords_enhanced_conversions_router_output.json deleted file mode 100644 index ea89ab95d28..00000000000 --- a/test/__tests__/data/google_adwords_enhanced_conversions_router_output.json +++ /dev/null @@ -1,143 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1234567890:uploadConversionAdjustments", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "11" - }, - "params": { "event": "Page View", "customerId": "1234567890" }, - "body": { - "JSON": { - "partialFailure": true, - "conversionAdjustments": [ - { - "gclidDateTimePair": { - "gclid": "gclid1234", - "conversionDateTime": "2022-01-01 12:32:45-08:00" - }, - "restatementValue": { - "adjustedValue": 10, - "currencyCode": "INR" - }, - "orderId": "10000", - "adjustmentDateTime": "2022-01-01 12:32:45-08:00", - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "userIdentifiers": [ - { - "hashedPhoneNumber": "04387707e6cbed8c4538c81cc570ed9252d579469f36c273839b26d784e4bdbe" - }, - { - "addressInfo": { - "hashedFirstName": "a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da", - "hashedLastName": "1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4", - "state": "UK", - "city": "London", - "hashedStreetAddress": "9a4d2e50828448f137f119a3ebdbbbab8d6731234a67595fdbfeb2a2315dd550" - } - } - ], - "adjustmentType": "ENHANCEMENT" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", - "customerId": "1234567890", - "subAccount": true, - "loginCustomerId": "11", - "listOfConversions": [{ "conversions": "Page View" }, { "conversions": "Product Added" }], - "authStatus": "active" - } - } - }, - { - "metadata": [ - { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - } - ], - "destination": { - "Config": { - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", - "customerId": "1234567890", - "subAccount": true, - "loginCustomerId": "", - "listOfConversions": [ - { - "conversions": "Page View" - }, - { - "conversions": "Product Added" - } - ], - "authStatus": "active" - } - }, - "batched": false, - "statusCode": 400, - "error": "Message Type identify is not supported. Aborting message.", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - }, - { - "metadata": [ - { - "secret": {} - } - ], - "destination": { - "Config": { - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", - "customerId": "1234567890", - "subAccount": true, - "loginCustomerId": "11", - "listOfConversions": [ - { - "conversions": "Page View" - }, - { - "conversions": "Product Added" - } - ], - "authStatus": "active" - } - }, - "batched": false, - "statusCode": 500, - "error": "Empty/Invalid access token", - "statTags": { - "errorCategory": "platform", - "errorType": "oAuthSecret" - } - } -] diff --git a/test/__tests__/data/google_adwords_offline_conversions.json b/test/__tests__/data/google_adwords_offline_conversions.json deleted file mode 100644 index 53c0f9bf3e5..00000000000 --- a/test/__tests__/data/google_adwords_offline_conversions.json +++ /dev/null @@ -1,4603 +0,0 @@ -[ - { - "description": "click - testing all the parameters mapping for click conversions and only defaultUserIdentifer is set", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "phone": "alex@example.com", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Promotion Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "merchantId": "9876merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionValue": "1", - "currency": "GBP", - "orderId": "PL-123QR" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": false, - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Promotion Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Promotion Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/9625812972:uploadClickConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "Sign-up - click", - "customerId": "9625812972", - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "merchantId": "9876merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionValue": "1", - "currency": "GBP", - "orderId": "PL-123QR" - } - }, - "body": { - "JSON": { - "conversions": [ - { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionData": { - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel" - }, - "cartData": { - "merchantId": 9876, - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "items": [ - { - "productId": "507f1f77bcf86cd799439011", - "quantity": 2, - "unitPrice": 50 - } - ] - }, - "userIdentifiers": [ - { - "userIdentifierSource": "FIRST_PARTY", - "hashedPhoneNumber": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110" - } - ], - "conversionEnvironment": "WEB", - "conversionDateTime": "2019-10-14 11:15:18+00:00", - "gclid": "gclid", - "conversionValue": 1, - "currencyCode": "GBP", - "orderId": "PL-123QR" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "click - testing all the parameters mapping for click conversions and only defaultUserIdentifer is set", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Promotion Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "timestamp": 1675692865495, - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "merchantId": "9876merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionValue": "1", - "currency": "GBP", - "orderId": "PL-123QR" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": false, - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Promotion Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Promotion Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/9625812972:uploadClickConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "Sign-up - click", - "customerId": "9625812972", - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "merchantId": "9876merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionValue": "1", - "currency": "GBP", - "orderId": "PL-123QR" - } - }, - "body": { - "JSON": { - "conversions": [ - { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionData": { - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel" - }, - "cartData": { - "merchantId": 9876, - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "items": [ - { - "productId": "507f1f77bcf86cd799439011", - "quantity": 2, - "unitPrice": 50 - } - ] - }, - "userIdentifiers": [ - { - "userIdentifierSource": "FIRST_PARTY", - "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110" - } - ], - "conversionEnvironment": "WEB", - "conversionDateTime": "2023-02-06 14:14:25+00:00", - "gclid": "gclid", - "conversionValue": 1, - "currencyCode": "GBP", - "orderId": "PL-123QR" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "click - testing all the parameters mapping for click conversions with few edge cases - originalTimestamp and enums are none in config", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "sign up completed", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "type": "track", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "value": "10", - "orderId": "PL-123QR", - "merchantId": "123123Mpowi", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "gclid": "gclid", - "conversionAction": "customer", - "conversionValue": "1", - "currency": "GBP", - "total": 555 - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": false, - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Promotion Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Promotion Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/9625812972:uploadClickConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "Sign-up - click", - "customerId": "9625812972", - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "value": "10", - "orderId": "PL-123QR", - "merchantId": "123123Mpowi", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "gclid": "gclid", - "conversionAction": "customer", - "conversionValue": "1", - "currency": "GBP", - "total": 555 - } - }, - "body": { - "JSON": { - "conversions": [ - { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionData": { - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel" - }, - "cartData": { - "merchantId": 123123, - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "items": [ - { - "productId": "507f1f77bcf86cd799439011", - "quantity": 2, - "unitPrice": 50 - } - ] - }, - "userIdentifiers": [ - { - "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110", - "userIdentifierSource": "THIRD_PARTY" - } - ], - "gclid": "gclid", - "conversionDateTime": "2019-10-14 11:15:18+00:00", - "conversionEnvironment": "WEB", - "conversionValue": 1, - "currencyCode": "GBP", - "orderId": "PL-123QR" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "call - testing all the parameter mapping for call conversions", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Product Searched", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "merchantId": "merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "callerId": "callerId", - "callStartDateTime": "2022-08-28 15:01:30+05:30", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": false, - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Promotion Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Promotion Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/9625812972:uploadCallConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "search", - "customerId": "9625812972", - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "properties": { - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "merchantId": "merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "callerId": "callerId", - "callStartDateTime": "2022-08-28 15:01:30+05:30", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP" - } - }, - "body": { - "JSON": { - "conversions": [ - { - "callerId": "callerId", - "callStartDateTime": "2022-08-28 15:01:30+05:30", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": 1, - "currencyCode": "GBP" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "OAuth - access token not found", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Promotion Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "merchantId": "merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": null - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": false, - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Promotion Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Promotion Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": { - "metadata": { - "secret": null - }, - "statusCode": 500, - "error": "OAuth - access token not found", - "statTags": { - "destination": "google_adwords_offline_conversions", - "stage": "transform", - "scope": "exception" - } - } - }, - { - "description": "message type not present", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Promotion Clicked", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": false, - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Promotion Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Promotion Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "statusCode": 400, - "error": "Message type is not present. Aborting message.", - "statTags": { - "destination": "google_adwords_offline_conversions", - "stage": "transform", - "scope": "exception" - } - } - }, - { - "description": "event name is not present", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": false, - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Promotion Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Promotion Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "statusCode": 400, - "error": "Event name is not present", - "statTags": { - "destination": "google_adwords_offline_conversions", - "stage": "transform", - "scope": "exception" - } - } - }, - { - "description": "invalid event name i.e event name not provided in config", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "purchase", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": false, - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Promotion Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Promotion Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "statusCode": 400, - "error": "Event name 'purchase' is not valid", - "statTags": { - "destination": "google_adwords_offline_conversions", - "stage": "transform", - "scope": "exception" - } - } - }, - { - "description": "click and call - passing all parameters for click and call conversions", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "phone": "+1-202-555-0146", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "download", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "merchantId": "merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP", - "callerId": "callerId", - "callStartDateTime": "2022-08-28 15:01:30+05:30" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": false, - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Promotion Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Promotion Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "phone", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/9625812972:uploadClickConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "Page view", - "customerId": "9625812972", - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "merchantId": "merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP", - "callerId": "callerId", - "callStartDateTime": "2022-08-28 15:01:30+05:30" - } - }, - "body": { - "JSON": { - "conversions": [ - { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionData": { - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel" - }, - "cartData": { - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "items": [ - { - "productId": "507f1f77bcf86cd799439011", - "quantity": 2, - "unitPrice": 50 - } - ] - }, - "userIdentifiers": [ - { - "userIdentifierSource": "FIRST_PARTY", - "hashedPhoneNumber": "04e1dabb7c1348b72bfa87da179c9697c69af74827649266a5da8cdbb367abcd" - } - ], - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": 1, - "currencyCode": "GBP" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/9625812972:uploadCallConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "Page view", - "customerId": "9625812972", - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "merchantId": "merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP", - "callerId": "callerId", - "callStartDateTime": "2022-08-28 15:01:30+05:30" - } - }, - "body": { - "JSON": { - "conversions": [ - { - "callerId": "callerId", - "callStartDateTime": "2022-08-28 15:01:30+05:30", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": 1, - "currencyCode": "GBP" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "click - passing just the minimum required parameters and check sub-account i.e (login-customer-id) request", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": {}, - "traits": { - "email": "alex@example.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Promotion Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": true, - "loginCustomerId": "861-785-9087", - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Promotion Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Promotion Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "phone", - "": "phone", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/9625812972:uploadClickConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "8617859087" - }, - "params": { - "event": "Sign-up - click", - "customerId": "9625812972", - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "properties": { - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00" - } - }, - "body": { - "JSON": { - "conversions": [ - { - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionEnvironment": "WEB", - "userIdentifiers": [ - { - "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110", - "userIdentifierSource": "THIRD_PARTY" - } - ] - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "call - passing just the minimum required parameter", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": {}, - "traits": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Product Searched", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "callerId": "callerId", - "callStartDateTime": "2022-08-28 15:01:30+05:30", - "conversionDateTime": "2022-01-01 12:32:45-08:00" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": false, - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Promotion Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Promotion Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/9625812972:uploadCallConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "search", - "customerId": "9625812972", - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "properties": { - "callerId": "callerId", - "callStartDateTime": "2022-08-28 15:01:30+05:30", - "conversionDateTime": "2022-01-01 12:32:45-08:00" - } - }, - "body": { - "JSON": { - "conversions": [ - { - "callerId": "callerId", - "callStartDateTime": "2022-08-28 15:01:30+05:30", - "conversionDateTime": "2022-01-01 12:32:45-08:00" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "call - take conversionDateTime from originalTimestamp and as email", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Product Searched", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2022-09-20T03:20:04.000Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "merchantId": "merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "callerId": "callerId", - "callStartDateTime": "2022-08-28 15:01:30+05:30", - "conversionValue": "1", - "currency": "GBP" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": false, - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Promotion Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Promotion Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/9625812972:uploadCallConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "search", - "customerId": "9625812972", - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "properties": { - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "merchantId": "merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "callerId": "callerId", - "callStartDateTime": "2022-08-28 15:01:30+05:30", - "conversionValue": "1", - "currency": "GBP" - } - }, - "body": { - "JSON": { - "conversions": [ - { - "callerId": "callerId", - "callStartDateTime": "2022-08-28 15:01:30+05:30", - "conversionDateTime": "2022-09-20 03:20:04+00:00", - "conversionValue": 1, - "currencyCode": "GBP" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "click - do not hash user identifier (set to false)", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": {}, - "traits": { - "email": "alex@example.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Promotion Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": false, - "loginCustomerId": "", - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Promotion Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Promotion Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": false, - "defaultUserIdentifier": "phone", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/9625812972:uploadClickConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "Sign-up - click", - "customerId": "9625812972", - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "properties": { - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00" - } - }, - "body": { - "JSON": { - "conversions": [ - { - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionEnvironment": "WEB", - "userIdentifiers": [ - { - "userIdentifierSource": "THIRD_PARTY", - "hashedEmail": "alex@example.com" - } - ] - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "message type not present", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": {}, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Promotion Clicked", - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": false, - "loginCustomerId": "", - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Promotion Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Promotion Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": false, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": { - "metadata": { - "secret": null - }, - "statusCode": 400, - "error": "Message type page not supported", - "statTags": { - "destination": "google_adwords_offline_conversions", - "stage": "transform", - "scope": "exception" - } - } - }, - { - "description": "check for subaccount required field i.e loginCustomerId", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": {}, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Promotion Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": true, - "loginCustomerId": "", - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Promotion Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Promotion Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": false, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": { - "metadata": { - "secret": null - }, - "statusCode": 400, - "error": "loginCustomerId is required as subAccount is enabled", - "statTags": { - "destination": "google_adwords_offline_conversions", - "stage": "transform", - "scope": "exception" - } - } - }, - { - "description": "click - products parameters from the properties", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": {}, - "traits": { - "email": "alex@example.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Product Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "product_id": "123445", - "quantity": 123 - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": true, - "loginCustomerId": "861-785-9087", - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Product Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Product Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "phone", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/9625812972:uploadClickConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "8617859087" - }, - "params": { - "event": "Sign-up - click", - "customerId": "9625812972", - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "properties": { - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "product_id": "123445", - "quantity": 123 - } - }, - "body": { - "JSON": { - "conversions": [ - { - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionEnvironment": "WEB", - "userIdentifiers": [ - { - "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110", - "userIdentifierSource": "THIRD_PARTY" - } - ], - "cartData": { - "items": [ - { - "productId": "123445", - "quantity": 123 - } - ] - } - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "click - check for email or phone for user identifier", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": {}, - "traits": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Product Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "product_id": "123445", - "quantity": 123 - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": true, - "loginCustomerId": "861-785-9087", - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Product Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Product Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": { - "metadata": { - "secret": null - }, - "statusCode": 400, - "error": "Either of email or phone is required for user identifier", - "statTags": { - "destination": "google_adwords_offline_conversions", - "stage": "transform", - "scope": "exception" - } - } - }, - { - "description": "click - email or phone is not required if user identifier is not present", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": {}, - "traits": {}, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Product Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "product_id": "123445", - "quantity": 123 - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "subAccount": true, - "loginCustomerId": "861-785-9087", - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Product Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Product Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "none", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/9625812972:uploadClickConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "8617859087" - }, - "params": { - "event": "Sign-up - click", - "customerId": "9625812972", - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "properties": { - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "product_id": "123445", - "quantity": 123 - } - }, - "body": { - "JSON": { - "conversions": [ - { - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionEnvironment": "WEB", - "cartData": { - "items": [ - { - "productId": "123445", - "quantity": 123 - } - ] - } - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Store - using email as userIdentifier and validateOnly as false with originalTimestamp", - "input": { - "message": { - "channel": "web", - "context": { - "traits": { - "firstName": "John" - } - }, - "event": "Product Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "loyaltyFraction": 1, - "order_id": "order id", - "currency": "INR", - "revenue": "100", - "store_code": "store code", - "email": "alex@example.com", - "gclid": "gclid", - "product_id": "123445", - "custom_key": "CUSTOM_KEY", - "CUSTOM_KEY": "CUSTOM_VALUE", - "quantity": 123 - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "111-222-3333", - "subAccount": true, - "loginCustomerId": "login-customer-id", - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Product Clicked", - "to": "store" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Product Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "phone", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1112223333/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "logincustomerid" - }, - "params": { - "customerId": "1112223333", - "event": "Sign-up - click" - }, - "body": { - "JSON": { - "addConversionPayload": { - "enable_partial_failure": false, - "enable_warnings": false, - "operations": { - "create": { - "transaction_attribute": { - "CUSTOM_KEY": "CUSTOM_VALUE", - "currency_code": "INR", - "order_id": "order id", - "store_attribute": { - "store_code": "store code" - }, - "transaction_amount_micros": "100000000", - "transaction_date_time": "2019-10-14 11:15:18+00:00" - }, - "userIdentifiers": [ - { - "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110" - } - ] - } - }, - "validate_only": false - }, - "createJobPayload": { - "job": { - "storeSalesMetadata": { - "custom_key": "CUSTOM_KEY", - "loyaltyFraction": 1, - "transaction_upload_fraction": "1" - }, - "type": "STORE_SALES_UPLOAD_FIRST_PARTY" - } - }, - "event": "1112223333", - "executeJobPayload": { - "validate_only": false - }, - "isStoreConversion": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Store - No transaction amount field is present", - "input": { - "message": { - "channel": "web", - "context": { - "traits": { - "firstName": "John" - } - }, - "event": "Product Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "loyaltyFraction": 1, - "order_id": "order id", - "currency": "INR", - "store_code": "store code", - "userIdentifierSource": "FIRST_PARTY", - "email": "alex@example.com", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "product_id": "123445", - "quantity": 123 - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "111-222-3333", - "subAccount": true, - "loginCustomerId": "login-customer-id", - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Product Clicked", - "to": "store" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Product Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "statusCode": 400, - "error": "Missing required value from [\"properties.conversionValue\",\"properties.total\",\"properties.value\",\"properties.revenue\"]", - "statTags": { - "destination": "google_adwords_offline_conversions", - "stage": "transform", - "scope": "exception" - } - } - }, - { - "description": "Store - using address as userIdentifier when deafultUserIdentifier is not present ", - "input": { - "message": { - "channel": "web", - "context": { - "traits": { - "firstName": "John" - } - }, - "event": "Product Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "loyaltyFraction": 1, - "item_id": "item id", - "merchant_id": "merchant id", - "currency": "INR", - "revenue": "100", - "store_code": "store code", - "gclid": "gclid", - "product_id": "123445", - "quantity": 123 - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "isCustomerAllowed": true, - "customerId": "111-222-3333", - "subAccount": true, - "loginCustomerId": "login-customer-id", - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Product Clicked", - "to": "store" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Product Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1112223333/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "logincustomerid" - }, - "params": { - "customerId": "1112223333", - "event": "Sign-up - click" - }, - "body": { - "JSON": { - "addConversionPayload": { - "enable_partial_failure": false, - "enable_warnings": false, - "operations": { - "create": { - "transaction_attribute": { - "currency_code": "INR", - "store_attribute": { - "store_code": "store code" - }, - "transaction_amount_micros": "100000000", - "transaction_date_time": "2019-10-14 11:15:18+00:00" - }, - "userIdentifiers": [ - { - "address_info": { - "hashed_first_name": "96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a" - } - } - ] - } - }, - "validate_only": false - }, - "createJobPayload": { - "job": { - "storeSalesMetadata": { - "loyaltyFraction": 1, - "transaction_upload_fraction": "1" - }, - "type": "STORE_SALES_UPLOAD_FIRST_PARTY" - } - }, - "event": "1112223333", - "executeJobPayload": { - "validate_only": false - }, - "isStoreConversion": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Store - using email as userIdentifier but mapping address due to unavailability and loyaltyFraction not given and hashIdentifier as false", - "input": { - "message": { - "channel": "web", - "context": { - "traits": { - "firstName": "first_name", - "streetAddress": "street_address", - "state": "England" - } - }, - "event": "Product Clicked", - "type": "track", - "timestamp": 1675692865495, - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "item_id": "item id", - "merchant_id": "merchant id", - "currency": "INR", - "revenue": "100", - "store_code": "store code", - "gclid": "gclid", - "product_id": "123445", - "quantity": 123 - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "isCustomerAllowed": false, - "customerId": "111-222-3333", - "subAccount": true, - "loginCustomerId": "login-customer-id", - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Product Clicked", - "to": "store" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Product Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "conversionEnvironment": "WEB", - "hashUserIdentifier": false, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1112223333/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "logincustomerid" - }, - "params": { - "customerId": "1112223333", - "event": "Sign-up - click" - }, - "body": { - "JSON": { - "addConversionPayload": { - "enable_partial_failure": false, - "enable_warnings": false, - "operations": { - "create": { - "transaction_attribute": { - "currency_code": "INR", - "store_attribute": { - "store_code": "store code" - }, - "transaction_amount_micros": "100000000", - "transaction_date_time": "2023-02-06 14:14:25+00:00" - }, - "userIdentifiers": [ - { - "address_info": { - "hashed_first_name": "first_name", - "hashed_street_address": "street_address", - "state": "England" - } - } - ] - } - }, - "validate_only": false - }, - "createJobPayload": { - "job": { - "storeSalesMetadata": { - "loyaltyFraction": "1", - "transaction_upload_fraction": "1" - }, - "type": "STORE_SALES_UPLOAD_FIRST_PARTY" - } - }, - "event": "1112223333", - "executeJobPayload": { - "validate_only": false - }, - "isStoreConversion": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Store - using Phone as userIdentifier and loyaltyFraction not given with timestamp in String format", - "input": { - "message": { - "channel": "web", - "context": { - "traits": { - "firstName": "John", - "lastName": "Gomes", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK", - "state": "England" - } - }, - "event": "Product Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "timestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "item_id": "item id", - "merchant_id": "merchant id", - "currency": "INR", - "revenue": "100", - "store_code": "store code", - "phone": "+1-202-555-0146", - "gclid": "gclid", - "product_id": "123445", - "quantity": 123 - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "isCustomerAllowed": false, - "customerId": "111-222-3333", - "subAccount": true, - "loginCustomerId": "login-customer-id", - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Product Clicked", - "to": "store" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Product Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "phone", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1112223333/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "logincustomerid" - }, - "params": { - "customerId": "1112223333", - "event": "Sign-up - click" - }, - "body": { - "JSON": { - "addConversionPayload": { - "enable_partial_failure": false, - "enable_warnings": false, - "operations": { - "create": { - "transaction_attribute": { - "currency_code": "INR", - "store_attribute": { - "store_code": "store code" - }, - "transaction_amount_micros": "100000000", - "transaction_date_time": "2019-10-14 11:15:18+00:00" - }, - "userIdentifiers": [ - { - "hashedPhoneNumber": "04e1dabb7c1348b72bfa87da179c9697c69af74827649266a5da8cdbb367abcd" - } - ] - } - }, - "validate_only": false - }, - "createJobPayload": { - "job": { - "storeSalesMetadata": { - "loyaltyFraction": "1", - "transaction_upload_fraction": "1" - }, - "type": "STORE_SALES_UPLOAD_FIRST_PARTY" - } - }, - "event": "1112223333", - "executeJobPayload": { - "validate_only": false - }, - "isStoreConversion": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Store - using Phone as userIdentifier", - "input": { - "message": { - "channel": "web", - "context": { - "traits": { - "firstName": "John", - "lastName": "Gomes", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK", - "state": "England" - } - }, - "event": "Product Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "item_id": "item id", - "merchant_id": "merchant id", - "currency": "INR", - "revenue": "100", - "store_code": "store code", - "phone": "+1-202-555-0146", - "gclid": "gclid", - "product_id": "123445", - "quantity": 123 - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "isCustomerAllowed": false, - "customerId": "111-222-3333", - "subAccount": true, - "loginCustomerId": "login-customer-id", - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Product Clicked", - "to": "store" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Product Clicked", - "to": "Sign-up - click" - } - ], - "hashUserIdentifier": true, - "defaultUserIdentifier": "phone", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNkgr4t3u4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1112223333/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "logincustomerid" - }, - "params": { - "customerId": "1112223333", - "event": "Sign-up - click" - }, - "body": { - "JSON": { - "addConversionPayload": { - "enable_partial_failure": false, - "enable_warnings": false, - "operations": { - "create": { - "transaction_attribute": { - "currency_code": "INR", - "store_attribute": { - "store_code": "store code" - }, - "transaction_amount_micros": "100000000", - "transaction_date_time": "2019-10-14 11:15:18+00:00" - }, - "userIdentifiers": [ - { - "hashedPhoneNumber": "04e1dabb7c1348b72bfa87da179c9697c69af74827649266a5da8cdbb367abcd" - } - ] - } - }, - "validate_only": false - }, - "createJobPayload": { - "job": { - "storeSalesMetadata": { - "loyaltyFraction": "1", - "transaction_upload_fraction": "1" - }, - "type": "STORE_SALES_UPLOAD_FIRST_PARTY" - } - }, - "event": "1112223333", - "executeJobPayload": { - "validate_only": false - }, - "isStoreConversion": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Store - using email as userIdentifier when phone is defaultUserIdentifer with transaction_date_time", - "input": { - "message": { - "channel": "web", - "context": { - "traits": { - "email": "alex@example.com" - } - }, - "event": "Product Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "item_id": "item id", - "merchant_id": "merchant id", - "currency": "INR", - "revenue": "100", - "store_code": "store code", - "gclid": "gclid", - "transaction_date_time": "2022-01-01 12:32:45-08:00Z", - "product_id": "123445", - "quantity": 123 - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "isCustomerAllowed": false, - "customerId": "111-222-3333", - "subAccount": true, - "loginCustomerId": "login-customer-id", - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Product Clicked", - "to": "store" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Product Clicked", - "to": "Sign-up - click" - } - ], - "hashUserIdentifier": true, - "defaultUserIdentifier": "phone", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNkgr4t3u4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1112223333/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "logincustomerid" - }, - "params": { - "customerId": "1112223333", - "event": "Sign-up - click" - }, - "body": { - "JSON": { - "addConversionPayload": { - "enable_partial_failure": false, - "enable_warnings": false, - "operations": { - "create": { - "transaction_attribute": { - "currency_code": "INR", - "store_attribute": { - "store_code": "store code" - }, - "transaction_amount_micros": "100000000", - "transaction_date_time": "2022-01-01 12:32:45+00:00" - }, - "userIdentifiers": [ - { - "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110" - } - ] - } - }, - "validate_only": false - }, - "createJobPayload": { - "job": { - "storeSalesMetadata": { - "loyaltyFraction": "1", - "transaction_upload_fraction": "1" - }, - "type": "STORE_SALES_UPLOAD_FIRST_PARTY" - } - }, - "event": "1112223333", - "executeJobPayload": { - "validate_only": false - }, - "isStoreConversion": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Store - No userIdentifier is given in payload and phone is defaultUserIdentifer with conversionDateTime", - "input": { - "message": { - "channel": "web", - "context": { - "traits": {} - }, - "event": "Product Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "item_id": "item id", - "merchant_id": "merchant id", - "currency": "INR", - "revenue": "100", - "store_code": "store code", - "gclid": "gclid", - "conversionDateTime": "2019-10-14T11:15:18.299Z", - "product_id": "123445", - "quantity": 123 - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "isCustomerAllowed": false, - "customerId": "111-222-3333", - "subAccount": true, - "loginCustomerId": "login-customer-id", - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Product Clicked", - "to": "store" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Product Clicked", - "to": "Sign-up - click" - } - ], - "hashUserIdentifier": true, - "defaultUserIdentifier": "phone", - "validateOnly": false, - "rudderAccountId": "2EOknn1JNH7WK1MfNkgr4t3u4fGYKkRK" - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1112223333/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "logincustomerid" - }, - "params": { - "customerId": "1112223333", - "event": "Sign-up - click" - }, - "body": { - "JSON": { - "addConversionPayload": { - "enable_partial_failure": false, - "enable_warnings": false, - "operations": { - "create": { - "transaction_attribute": { - "currency_code": "INR", - "store_attribute": { - "store_code": "store code" - }, - "transaction_amount_micros": "100000000", - "transaction_date_time": "2019-10-14 11:15:18+00:00" - }, - "userIdentifiers": [{}] - } - }, - "validate_only": false - }, - "createJobPayload": { - "job": { - "storeSalesMetadata": { - "loyaltyFraction": "1", - "transaction_upload_fraction": "1" - }, - "type": "STORE_SALES_UPLOAD_FIRST_PARTY" - } - }, - "event": "1112223333", - "executeJobPayload": { - "validate_only": false - }, - "isStoreConversion": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - } -] \ No newline at end of file diff --git a/test/__tests__/data/google_adwords_offline_conversions_proxy_input.json b/test/__tests__/data/google_adwords_offline_conversions_proxy_input.json deleted file mode 100644 index a812fdbcc43..00000000000 --- a/test/__tests__/data/google_adwords_offline_conversions_proxy_input.json +++ /dev/null @@ -1,518 +0,0 @@ -[ - { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/11122233331/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "logincustomerid" - }, - "params": { - "customerId": "1112223333", - "event": "Sign-up - click" - }, - "body": { - "JSON": { - "addConversionPayload": { - "enable_partial_failure": false, - "enable_warnings": false, - "operations": [ - { - "create": { - "transaction_attribute": { - "CUSTOM_KEY": "CUSTOM_VALUE", - "currency_code": "INR", - "order_id": "order id", - "store_attribute": { - "store_code": "store code" - }, - "transaction_amount_micros": "100000000", - "transaction_date_time": "2019-10-14 11:15:18+00:00" - }, - "userIdentifiers": [ - { - "hashedEmail": "6db61e6dcbcf2390e4a46af26f26a133a3bee45021422fc7ae86e9136f14110", - "userIdentifierSource": "UNSPECIFIED" - } - ] - } - } - ], - "validate_only": false - }, - "createJobPayload": { - "job": { - "storeSalesMetadata": { - "custom_key": "CUSTOM_KEY", - "loyaltyFraction": 1, - "transaction_upload_fraction": "1" - }, - "type": "STORE_SALES_UPLOAD_FIRST_PARTY" - } - }, - "event": "1112223333", - "executeJobPayload": { - "validate_only": false - }, - "isStoreConversion": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - } - }, - { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1112223333/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "logincustomerid" - }, - "params": { - "customerId": "1112223333", - "event": "Sign-up - click" - }, - "body": { - "JSON": { - "addConversionPayload": { - "enable_partial_failure": false, - "enable_warnings": false, - "operations": [ - { - "create": { - "transaction_attribute": { - "CUSTOM_KEY": "CUSTOM_VALUE", - "currency_code": "INR", - "order_id": "order id", - "store_attribute": { - "store_code": "store code" - }, - "transaction_amount_micros": "100000000", - "transaction_date_time": "2019-10-14 11:15:18+00:00" - }, - "userIdentifiers": [ - { - "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110", - "userIdentifierSource": "UNSPECIFIED" - } - ] - } - } - ], - "validate_only": false - }, - "createJobPayload": { - "job": { - "storeSalesMetadata": { - "custom_key": "CUSTOM_KEY", - "loyaltyFraction": 1, - "transaction_upload_fraction": "1" - }, - "type": "STORE_SALES_UPLOAD_FIRST_PARTY" - } - }, - "event": "1112223333", - "executeJobPayload": { - "validate_only": false - }, - "isStoreConversion": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - } - }, - { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/customerid/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011", - "login-customer-id": "logincustomerid" - }, - "params": { - "customerId": "1112223333", - "event": "Sign-up - click" - }, - "body": { - "JSON": { - "addConversionPayload": { - "enable_partial_failure": false, - "enable_warnings": false, - "operations": [ - { - "create": { - "transaction_attribute": { - "CUSTOM_KEY": "CUSTOM_VALUE", - "currency_code": "INR", - "order_id": "order id", - "store_attribute": { - "store_code": "store code" - }, - "transaction_amount_micros": "100000000", - "transaction_date_time": "2019-10-14 11:15:18+00:00" - }, - "userIdentifiers": [ - { - "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110", - "userIdentifierSource": "UNSPECIFIED" - } - ] - } - } - ], - "validate_only": false - }, - "createJobPayload": { - "job": { - "storeSalesMetadata": { - "custom_key": "CUSTOM_KEY", - "loyaltyFraction": 1, - "transaction_upload_fraction": "1" - }, - "type": "STORE_SALES_UPLOAD_FIRST_PARTY" - } - }, - "event": "1112223333", - "executeJobPayload": { - "validate_only": false - }, - "isStoreConversion": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - } - }, - { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1234567890:uploadClickConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "Sign-up - click", - "customerId": "1234567890", - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "merchantId": "9876merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP", - "orderId": "PL-123QR" - } - }, - "body": { - "JSON": { - "conversions": [ - { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionData": { - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel" - }, - "cartData": { - "merchantId": 9876, - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "items": [ - { - "productId": "507f1f77bcf86cd799439011", - "quantity": 2, - "unitPrice": 50 - } - ] - }, - "userIdentifiers": [ - { - "userIdentifierSource": "FIRST_PARTY", - "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110" - } - ], - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": 1, - "currencyCode": "GBP", - "orderId": "PL-123QR" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - } - }, - { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1234567891:uploadClickConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "Sign-up - click", - "customerId": "1234567891", - "customVariables": [ - { - "from": "Value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "Value": "value", - "merchantId": "9876merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP", - "orderId": "PL-123QR" - } - }, - "body": { - "JSON": { - "conversions": [ - { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionData": { - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel" - }, - "cartData": { - "merchantId": 9876, - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "items": [ - { - "productId": "507f1f77bcf86cd799439011", - "quantity": 2, - "unitPrice": 50 - } - ] - }, - "userIdentifiers": [ - { - "userIdentifierSource": "FIRST_PARTY", - "hashedPhoneNumber": "04e1dabb7c1348b72bfa87da179c9697c69af74827649266a5da8cdbb367abcd" - } - ], - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": 1, - "currencyCode": "GBP", - "orderId": "PL-123QR" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - } - }, - { - "request": { - "body": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/1234567891:uploadClickConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "Sign-up - click", - "customerId": "1234567891", - "customVariables": [], - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "merchantId": "9876merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP", - "orderId": "PL-123QR" - } - }, - "body": { - "JSON": { - "conversions": [ - { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionData": { - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel" - }, - "cartData": { - "merchantId": 9876, - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "items": [ - { - "productId": "507f1f77bcf86cd799439011", - "quantity": 2, - "unitPrice": 50 - } - ] - }, - "userIdentifiers": [ - { - "userIdentifierSource": "FIRST_PARTY", - "hashedPhoneNumber": "04e1dabb7c1348b72bfa87da179c9697c69af74827649266a5da8cdbb367abcd" - } - ], - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": 1, - "currencyCode": "GBP", - "orderId": "PL-123QR" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - } - } -] diff --git a/test/__tests__/data/google_adwords_offline_conversions_proxy_output.json b/test/__tests__/data/google_adwords_offline_conversions_proxy_output.json deleted file mode 100644 index 2bdcaeea491..00000000000 --- a/test/__tests__/data/google_adwords_offline_conversions_proxy_output.json +++ /dev/null @@ -1,155 +0,0 @@ -[ - { - "output": { - "status": 400, - "message": "[Google Ads Offline Conversions]:: Request contains an invalid argument. during google_ads_offline_store_conversions Add Conversion", - "destinationResponse": { - "error": { - "code": 400, - "details": [ - { - "@type": "type.googleapis.com/google.ads.googleads.v13.errors.GoogleAdsFailure", - "errors": [ - { - "errorCode": { - "offlineUserDataJobError": "INVALID_SHA256_FORMAT" - }, - "message": "The SHA256 encoded value is malformed.", - "location": { - "fieldPathElements": [ - { - "fieldName": "operations", - "index": 0 - }, - { - "fieldName": "create" - }, - { - "fieldName": "user_identifiers", - "index": 0 - }, - { - "fieldName": "hashed_email" - } - ] - } - } - ], - "requestId": "68697987" - } - ], - "message": "Request contains an invalid argument.", - "status": "INVALID_ARGUMENT" - } - }, - "statTags": { - "destType": "GOOGLE_ADWORDS_OFFLINE_CONVERSIONS", - "errorCategory": "network", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - }, - { - "output": { - "status": 200, - "message": "[Google Ads Offline Conversions Response Handler] - Request processed successfully", - "destinationResponse": { - "response": { - "name": "customers/111-222-3333/operations/abcd=" - }, - "status": 200 - } - } - }, - { - "output": { - "status": 401, - "message": "[Google Ads Offline Conversions]:: Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project. during google_ads_offline_store_conversions Job Creation", - "authErrorCategory": "REFRESH_TOKEN", - "destinationResponse": { - "error": { - "code": 401, - "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", - "status": "UNAUTHENTICATED" - } - }, - "statTags": { - "destType": "GOOGLE_ADWORDS_OFFLINE_CONVERSIONS", - "errorCategory": "network", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - }, - { - "output": { - "status": 401, - "message": "[Google Ads Offline Conversions]:: [{\"error\":{\"code\":401,\"message\":\"Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.\",\"status\":\"UNAUTHENTICATED\"}}] during google_ads_offline_conversions response transformation", - "authErrorCategory": "REFRESH_TOKEN", - "destinationResponse": [ - { - "error": { - "code": 401, - "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", - "status": "UNAUTHENTICATED" - } - } - ], - "statTags": { - "destType": "GOOGLE_ADWORDS_OFFLINE_CONVERSIONS", - "errorCategory": "network", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - }, - { - "output": { - "status": 200, - "message": "[Google Ads Offline Conversions Response Handler] - Request processed successfully", - "destinationResponse": { - "response": [ - { - "adjustmentType": "ENHANCEMENT", - "conversionAction": "customers/1234567891/conversionActions/874224905", - "adjustmentDateTime": "2021-01-01 12:32:45-08:00", - "gclidDateTimePair": { - "gclid": "1234", - "conversionDateTime": "2021-01-01 12:32:45-08:00" - }, - "orderId": "12345" - } - ], - "status": 200 - } - } - }, - { - "output": { - "destinationResponse": { - "response": [ - { - "adjustmentDateTime": "2021-01-01 12:32:45-08:00", - "adjustmentType": "ENHANCEMENT", - "conversionAction": "customers/1234567891/conversionActions/874224905", - "gclidDateTimePair": { - "conversionDateTime": "2021-01-01 12:32:45-08:00", - "gclid": "1234" - }, - "orderId": "12345" - } - ], - "status": 200 - }, - "message": "[Google Ads Offline Conversions Response Handler] - Request processed successfully", - "status": 200 - } - } -] diff --git a/test/__tests__/data/google_adwords_offline_conversions_router_input.json b/test/__tests__/data/google_adwords_offline_conversions_router_input.json deleted file mode 100644 index df5dd5c06b3..00000000000 --- a/test/__tests__/data/google_adwords_offline_conversions_router_input.json +++ /dev/null @@ -1,542 +0,0 @@ -[ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Promotion Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "merchantId": "9876merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Promotion Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Promotion Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "id": "0572f78fa49c648e", - "name": "generic_x86_arm", - "type": "Android", - "model": "AOSP on IA Emulator", - "manufacturer": "Google", - "adTrackingEnabled": true, - "advertisingId": "44c97318-9040-4361-8bc7-4eb30f665ca8" - }, - "traits": { - "email": "alex@example.com", - "phone": "+1-202-555-0146", - "firstName": "John", - "lastName": "Gomes", - "city": "London", - "state": "England", - "countryCode": "GB", - "postalCode": "EC3M", - "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "Product Searched", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "merchantId": "merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - - "callerId": "callerId", - "callStartDateTime": "2022-08-28 15:01:30+05:30", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - }, - "destination": { - "Config": { - "customerId": "962-581-2972", - "eventsToOfflineConversionsTypeMapping": [ - { - "from": "Sign up completed", - "to": "click" - }, - { - "from": "Download", - "to": "call" - }, - { - "from": "Promotion Clicked", - "to": "click" - }, - { - "from": "Product Searched", - "to": "call" - } - ], - "eventsToConversionsNamesMapping": [ - { - "from": "Sign up completed", - "to": "Sign-up - click" - }, - { - "from": "Download", - "to": "Page view" - }, - { - "from": "Promotion Clicked", - "to": "Sign-up - click" - }, - { - "from": "Product Searched", - "to": "search" - } - ], - "customVariables": [ - { - "from": "value", - "to": "revenue" - }, - { - "from": "total", - "to": "cost" - } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "phone", - "validateOnly": false, - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "traits": { - "firstName": "John" - } - }, - "event": "Product Clicked", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "loyaltyFraction": 1, - "order_id": "order id", - "currency": "INR", - "revenue": "100", - "store_code": "store code", - "email": "alex@example.com", - "gclid": "gclid", - "product_id": "123445", - "quantity": 123, - "callerId": "1234", - "callStartDateTime": "2019-10-14T11:15:18.299Z" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - }, - "jobId": 1 - }, - "destination": { - "Config": { - "rudderAccountId": "2Hsy2iFyoG5VLDd9wQcggHLMYFA", - "customerId": "769-372-9833", - "subAccount": false, - "UserIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "none", - "defaultUserIdentifier": "email", - "hashUserIdentifier": true, - "validateOnly": true, - "eventsToOfflineConversionsTypeMapping": [ - { "from": "Data Reading Guide", "to": "click" }, - { "from": "Order Completed", "to": "store" }, - { "from": "Sign-up - click", "to": "click" }, - { "from": "Outbound click (rudderstack.com)", "to": "click" }, - { "from": "Page view", "to": "click" }, - { "from": "download", "to": "click" }, - { "from": "Product Clicked", "to": "store" }, - { "from": "Order Completed", "to": "call" } - ], - "loginCustomerId": "4219454086", - "eventsToConversionsNamesMapping": [ - { "from": "Data Reading Guide", "to": "Data Reading Guide" }, - { "from": "Order Completed", "to": "Order Completed" }, - { "from": "Sign-up - click", "to": "Sign-up - click" }, - { "from": "Outbound click (rudderstack.com)", "to": "Outbound click (rudderstack.com)" }, - { "from": "Page view", "to": "Page view" }, - { "from": "Sign up completed", "to": "Sign-up - click" }, - { "from": "download", "to": "Page view" }, - { "from": "Product Clicked", "to": "Store sales" } - ], - "authStatus": "active", - "oneTrustCookieCategories": [], - "customVariables": [{ "from": "", "to": "" }] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "traits": { - "firstName": "John" - } - }, - "event": "Order Completed", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "loyaltyFraction": 1, - "order_id": "order id", - "currency": "INR", - "revenue": "100", - "store_code": "store code2", - "email": "alex@example.com", - "gclid": "gclid", - "product_id": "123445", - "quantity": 123, - "callerId": "1234", - "callStartDateTime": "2019-10-14T11:15:18.299Z" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - }, - "jobId": 2 - }, - "destination": { - "Config": { - "rudderAccountId": "2Hsy2iFyoG5VLDd9wQcggHLMYFA", - "customerId": "769-372-9833", - "subAccount": false, - "UserIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "none", - "defaultUserIdentifier": "email", - "hashUserIdentifier": true, - "validateOnly": true, - "eventsToOfflineConversionsTypeMapping": [ - { "from": "Data Reading Guide", "to": "click" }, - { "from": "Order Completed", "to": "store" }, - { "from": "Sign-up - click", "to": "click" }, - { "from": "Outbound click (rudderstack.com)", "to": "click" }, - { "from": "Page view", "to": "click" }, - { "from": "download", "to": "click" }, - { "from": "Product Clicked", "to": "store" }, - { "from": "Order Completed", "to": "call" } - ], - "loginCustomerId": "4219454086", - "eventsToConversionsNamesMapping": [ - { "from": "Data Reading Guide", "to": "Data Reading Guide" }, - { "from": "Order Completed", "to": "Order Completed" }, - { "from": "Sign-up - click", "to": "Sign-up - click" }, - { "from": "Outbound click (rudderstack.com)", "to": "Outbound click (rudderstack.com)" }, - { "from": "Page view", "to": "Page view" }, - { "from": "Sign up completed", "to": "Sign-up - click" }, - { "from": "download", "to": "Page view" }, - { "from": "Product Clicked", "to": "Store sales" } - ], - "authStatus": "active", - "oneTrustCookieCategories": [], - "customVariables": [{ "from": "", "to": "" }] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "traits": { - "firstName": "John" - } - }, - "event": "Order Completed", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "loyaltyFraction": 1, - "order_id": "order id", - "currency": "INR", - "revenue": "100", - "store_code": "store code2", - "email": "alex@example.com", - "gclid": "gclid", - "product_id": "123445", - "quantity": 123, - "callerId": "1234", - "callStartDateTime": "2019-10-14T11:15:18.299Z" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - }, - "jobId": 3 - }, - "destination": { - "Config": { - "rudderAccountId": "2Hsy2iFyoG5VLDd9wQcggHLMYFA", - "customerId": "769-372-9833", - "subAccount": false, - "UserIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "none", - "defaultUserIdentifier": "email", - "hashUserIdentifier": true, - "validateOnly": true, - "eventsToOfflineConversionsTypeMapping": [ - { "from": "Data Reading Guide", "to": "click" }, - { "from": "Sign-up - click", "to": "click" }, - { "from": "Outbound click (rudderstack.com)", "to": "click" }, - { "from": "Page view", "to": "click" }, - { "from": "download", "to": "click" }, - { "from": "Product Clicked", "to": "store" }, - { "from": "Order Completed", "to": "call" } - ], - "loginCustomerId": "4219454086", - "eventsToConversionsNamesMapping": [ - { "from": "Data Reading Guide", "to": "Data Reading Guide" }, - { "from": "Sign-up - click", "to": "Sign-up - click" }, - { "from": "Outbound click (rudderstack.com)", "to": "Outbound click (rudderstack.com)" }, - { "from": "Page view", "to": "Page view" }, - { "from": "Sign up completed", "to": "Sign-up - click" }, - { "from": "download", "to": "Page view" }, - { "from": "Product Clicked", "to": "Store sales" } - ], - "authStatus": "active", - "oneTrustCookieCategories": [], - "customVariables": [{ "from": "", "to": "" }] - } - } - } -] diff --git a/test/__tests__/data/google_adwords_offline_conversions_router_output.json b/test/__tests__/data/google_adwords_offline_conversions_router_output.json deleted file mode 100644 index 87c4b671f70..00000000000 --- a/test/__tests__/data/google_adwords_offline_conversions_router_output.json +++ /dev/null @@ -1,512 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { "event": "Store sales", "customerId": "7693729833" }, - "body": { - "JSON": { - "event": "7693729833", - "isStoreConversion": true, - "createJobPayload": { - "job": { - "storeSalesMetadata": { "loyaltyFraction": 1, "transaction_upload_fraction": "1" }, - "type": "STORE_SALES_UPLOAD_FIRST_PARTY" - } - }, - "addConversionPayload": { - "operations": [ - { - "create": { - "transaction_attribute": { - "store_attribute": { "store_code": "store code" }, - "transaction_amount_micros": "100000000", - "order_id": "order id", - "currency_code": "INR", - "transaction_date_time": "2019-10-14 11:15:18+00:00" - }, - "userIdentifiers": [ - { - "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110" - } - ] - } - }, - { - "create": { - "transaction_attribute": { - "store_attribute": { "store_code": "store code2" }, - "transaction_amount_micros": "100000000", - "order_id": "order id", - "currency_code": "INR", - "transaction_date_time": "2019-10-14 11:15:18+00:00" - }, - "userIdentifiers": [ - { - "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110" - } - ] - } - } - ], - "enable_partial_failure": false, - "enable_warnings": false, - "validate_only": true - }, - "executeJobPayload": { "validate_only": true } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - }, - "jobId": 1 - }, - { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - }, - "jobId": 2 - } - ], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "rudderAccountId": "2Hsy2iFyoG5VLDd9wQcggHLMYFA", - "customerId": "769-372-9833", - "subAccount": false, - "UserIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "none", - "defaultUserIdentifier": "email", - "hashUserIdentifier": true, - "validateOnly": true, - "eventsToOfflineConversionsTypeMapping": [ - { "from": "Data Reading Guide", "to": "click" }, - { "from": "Order Completed", "to": "store" }, - { "from": "Sign-up - click", "to": "click" }, - { "from": "Outbound click (rudderstack.com)", "to": "click" }, - { "from": "Page view", "to": "click" }, - { "from": "download", "to": "click" }, - { "from": "Product Clicked", "to": "store" }, - { "from": "Order Completed", "to": "call" } - ], - "loginCustomerId": "4219454086", - "eventsToConversionsNamesMapping": [ - { "from": "Data Reading Guide", "to": "Data Reading Guide" }, - { "from": "Order Completed", "to": "Order Completed" }, - { "from": "Sign-up - click", "to": "Sign-up - click" }, - { "from": "Outbound click (rudderstack.com)", "to": "Outbound click (rudderstack.com)" }, - { "from": "Page view", "to": "Page view" }, - { "from": "Sign up completed", "to": "Sign-up - click" }, - { "from": "download", "to": "Page view" }, - { "from": "Product Clicked", "to": "Store sales" } - ], - "authStatus": "active", - "oneTrustCookieCategories": [], - "customVariables": [{ "from": "", "to": "" }] - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/9625812972:uploadClickConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "Sign-up - click", - "customerId": "9625812972", - "customVariables": [ - { "from": "value", "to": "revenue" }, - { "from": "total", "to": "cost" } - ], - "properties": { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "merchantId": "9876merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP" - } - }, - "body": { - "JSON": { - "conversions": [ - { - "gbraid": "gbraid", - "wbraid": "wbraid", - "externalAttributionData": { - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel" - }, - "cartData": { - "merchantId": 9876, - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "items": [ - { "productId": "507f1f77bcf86cd799439011", "quantity": 2, "unitPrice": 50 } - ] - }, - "userIdentifiers": [ - { - "userIdentifierSource": "FIRST_PARTY", - "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110" - } - ], - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": 1, - "currencyCode": "GBP" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "customerId": "962-581-2972", - "eventsToOfflineConversionsTypeMapping": [ - { "from": "Sign up completed", "to": "click" }, - { "from": "Download", "to": "call" }, - { "from": "Promotion Clicked", "to": "click" }, - { "from": "Product Searched", "to": "call" } - ], - "eventsToConversionsNamesMapping": [ - { "from": "Sign up completed", "to": "Sign-up - click" }, - { "from": "Download", "to": "Page view" }, - { "from": "Promotion Clicked", "to": "Sign-up - click" }, - { "from": "Product Searched", "to": "search" } - ], - "customVariables": [ - { "from": "value", "to": "revenue" }, - { "from": "total", "to": "cost" } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "email", - "validateOnly": false, - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC" - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/9625812972:uploadCallConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "search", - "customerId": "9625812972", - "customVariables": [ - { "from": "value", "to": "revenue" }, - { "from": "total", "to": "cost" } - ], - "properties": { - "externalAttributionCredit": 10, - "externalAttributionModel": "externalAttributionModel", - "merchantId": "merchantId", - "feedCountryCode": "feedCountryCode", - "feedLanguageCode": "feedLanguageCode", - "localTransactionCost": 20, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "quantity": "2", - "price": "50", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "position": "1", - "category": "cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg" - } - ], - "userIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "WEB", - "gclid": "gclid", - "conversionCustomVariable": "conversionCustomVariable", - "value": "value", - "callerId": "callerId", - "callStartDateTime": "2022-08-28 15:01:30+05:30", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": "1", - "currency": "GBP" - } - }, - "body": { - "JSON": { - "conversions": [ - { - "callerId": "callerId", - "callStartDateTime": "2022-08-28 15:01:30+05:30", - "conversionDateTime": "2022-01-01 12:32:45-08:00", - "conversionValue": 1, - "currencyCode": "GBP" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - } - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "customerId": "962-581-2972", - "eventsToOfflineConversionsTypeMapping": [ - { "from": "Sign up completed", "to": "click" }, - { "from": "Download", "to": "call" }, - { "from": "Promotion Clicked", "to": "click" }, - { "from": "Product Searched", "to": "call" } - ], - "eventsToConversionsNamesMapping": [ - { "from": "Sign up completed", "to": "Sign-up - click" }, - { "from": "Download", "to": "Page view" }, - { "from": "Promotion Clicked", "to": "Sign-up - click" }, - { "from": "Product Searched", "to": "search" } - ], - "customVariables": [ - { "from": "value", "to": "revenue" }, - { "from": "total", "to": "cost" } - ], - "UserIdentifierSource": "THIRD_PARTY", - "conversionEnvironment": "WEB", - "hashUserIdentifier": true, - "defaultUserIdentifier": "phone", - "validateOnly": false, - "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC" - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833:uploadCallConversions", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl91011" - }, - "params": { - "event": "Order Completed", - "customerId": "7693729833", - "customVariables": [{ "from": "", "to": "" }], - "properties": { - "loyaltyFraction": 1, - "order_id": "order id", - "currency": "INR", - "revenue": "100", - "store_code": "store code2", - "email": "alex@example.com", - "gclid": "gclid", - "product_id": "123445", - "quantity": 123, - "callerId": "1234", - "callStartDateTime": "2019-10-14T11:15:18.299Z" - } - }, - "body": { - "JSON": { - "conversions": [ - { - "callerId": "1234", - "callStartDateTime": "2019-10-14T11:15:18.299Z", - "conversionDateTime": "2019-10-14 11:15:18+00:00", - "conversionValue": 100, - "currencyCode": "INR" - } - ], - "partialFailure": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - }, - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "rudderAccountId": "2Hsy2iFyoG5VLDd9wQcggHLMYFA", - "customerId": "769-372-9833", - "subAccount": false, - "UserIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "none", - "defaultUserIdentifier": "email", - "hashUserIdentifier": true, - "validateOnly": true, - "eventsToOfflineConversionsTypeMapping": [ - { "from": "Data Reading Guide", "to": "click" }, - { "from": "Order Completed", "to": "store" }, - { "from": "Sign-up - click", "to": "click" }, - { "from": "Outbound click (rudderstack.com)", "to": "click" }, - { "from": "Page view", "to": "click" }, - { "from": "download", "to": "click" }, - { "from": "Product Clicked", "to": "store" }, - { "from": "Order Completed", "to": "call" } - ], - "loginCustomerId": "4219454086", - "eventsToConversionsNamesMapping": [ - { "from": "Data Reading Guide", "to": "Data Reading Guide" }, - { "from": "Order Completed", "to": "Order Completed" }, - { "from": "Sign-up - click", "to": "Sign-up - click" }, - { "from": "Outbound click (rudderstack.com)", "to": "Outbound click (rudderstack.com)" }, - { "from": "Page view", "to": "Page view" }, - { "from": "Sign up completed", "to": "Sign-up - click" }, - { "from": "download", "to": "Page view" }, - { "from": "Product Clicked", "to": "Store sales" } - ], - "authStatus": "active", - "oneTrustCookieCategories": [], - "customVariables": [{ "from": "", "to": "" }] - } - } - }, - { - "metadata": [ - { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl91011" - }, - "jobId": 3 - } - ], - "batched": false, - "statusCode": 400, - "error": "Event name 'order completed' is not valid", - "statTags": { "errorCategory": "dataValidation", "errorType": "configuration" }, - "destination": { - "Config": { - "rudderAccountId": "2Hsy2iFyoG5VLDd9wQcggHLMYFA", - "customerId": "769-372-9833", - "subAccount": false, - "UserIdentifierSource": "FIRST_PARTY", - "conversionEnvironment": "none", - "defaultUserIdentifier": "email", - "hashUserIdentifier": true, - "validateOnly": true, - "eventsToOfflineConversionsTypeMapping": [ - { "from": "Data Reading Guide", "to": "click" }, - { "from": "Sign-up - click", "to": "click" }, - { "from": "Outbound click (rudderstack.com)", "to": "click" }, - { "from": "Page view", "to": "click" }, - { "from": "download", "to": "click" }, - { "from": "Product Clicked", "to": "store" }, - { "from": "Order Completed", "to": "call" } - ], - "loginCustomerId": "4219454086", - "eventsToConversionsNamesMapping": [ - { "from": "Data Reading Guide", "to": "Data Reading Guide" }, - { "from": "Sign-up - click", "to": "Sign-up - click" }, - { "from": "Outbound click (rudderstack.com)", "to": "Outbound click (rudderstack.com)" }, - { "from": "Page view", "to": "Page view" }, - { "from": "Sign up completed", "to": "Sign-up - click" }, - { "from": "download", "to": "Page view" }, - { "from": "Product Clicked", "to": "Store sales" } - ], - "authStatus": "active", - "oneTrustCookieCategories": [], - "customVariables": [{ "from": "", "to": "" }] - } - } - } -] diff --git a/test/__tests__/data/google_adwords_remarketing_lists_input.json b/test/__tests__/data/google_adwords_remarketing_lists_input.json deleted file mode 100644 index d084cb3c5f6..00000000000 --- a/test/__tests__/data/google_adwords_remarketing_lists_input.json +++ /dev/null @@ -1,3648 +0,0 @@ -[ - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "dummy-refresh", - "developer_token": "dummy-dev-token" - } - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "General" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "sudip@abc.com", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "dummy-refresh", - "developer_token": "dummy-dev-token" - } - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "769-372-9833", - "loginCustomerId": "870-483-0944", - "subAccount": true, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "userID" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "sudip@abc.com", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245", - "thirdPartyUserId": "useri1234" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "dummy-refresh", - "developer_token": "dummy-dev-token" - } - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "mobileDeviceID" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "sudip@abc.com", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245", - "thirdPartyUserId": "useri1234", - "mobileId": "abcd-1234-567h" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "dummy-refresh", - "developer_token": "dummy-dev-token" - } - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "mobileDeviceID" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "abc@abc.com", - "phone": "@09432457768", - "firstName": "abc", - "lastName": "efg", - "country": "US", - "postalCode": "1245", - "thirdPartyUserId": "useri1234" - }, - { - "email": "def@abc.com", - "phone": "@09432457768", - "firstName": "def", - "lastName": "ghi", - "country": "US", - "postalCode": "1245", - "thirdPartyUserId": "useri1234" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245", - "thirdPartyUserId": "useri1234" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "dummy-refresh", - "developer_token": "dummy-dev-token" - } - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "mobileDeviceID" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "remove": [ - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245", - "thirdPartyUserId": "useri1234" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "dummy-refresh", - "developer_token": "dummy-dev-token" - } - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "mobileDeviceID" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "properties": { - "listData": { - "remove": [ - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245", - "thirdPartyUserId": "useri1234" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "dummy-refresh", - "developer_token": "dummy-dev-token" - } - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "mobileDeviceID" - } - }, - "message": { - "type": "audiencelist", - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "properties": { - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "dummy-refresh", - "developer_token": "dummy-dev-token" - } - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": true, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "mobileDeviceID" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelisT", - "properties": { - "listData": { - "add": [ - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "mobileId": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "dummy-refresh", - "developer_token": "dummy-dev-token" - } - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "General" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelisT", - "properties": { - "listData": { - "add": [ - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "mobileId": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "dummy-refresh", - "developer_token": "dummy-dev-token" - } - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "General" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelisT", - "properties": { - "listData": { - "add": [ - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "mobileId": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - } - ], - "remove": [ - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "mobileId": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "dummy-refresh", - "developer_token": "dummy-dev-token" - } - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "General" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelisT", - "properties": { - "listData": { - "add": [ - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "mobileId": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - } - ], - "remove": [ - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "mobileId": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "dummy-refresh", - "developer_token": "dummy-dev-token" - } - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "General" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelisT", - "properties": { - "listData": { - "remove": [ - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "mobileId": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "dummy-refresh", - "developer_token": "dummy-dev-token" - } - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "General" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelisT", - "properties": { - "listData": { - "delete": [ - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "mobileId": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "dummy-refresh", - "developer_token": "dummy-dev-token" - } - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "General" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelisT", - "properties": { - "listData": { - "remove": [ - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "mobileId": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - } - ], - "add": [ - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "mobileId": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "dummy-refresh", - "developer_token": "dummy-dev-token" - } - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "General" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelisT", - "properties": { - "listData": { - "remove": [ - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "mobileId": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - } - ], - "add": [ - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "mobileId": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "dummy-refresh", - "developer_token": "dummy-dev-token" - } - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "General" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelisT", - "properties": { - "listData": { - "remove": [ - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": null, - "lastName": "jkl", - "country": "US", - "mobileId": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - } - ], - "add": [ - { - "email": "ghi@abc.com", - "phone": null, - "firstName": "ghi", - "lastName": "jkl", - "country": null, - "mobileId": "1245" - }, - { - "email": "ghi@abc.com", - "phone": "@09432457768", - "firstName": "ghi", - "lastName": "jkl", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "dummy-refresh", - "developer_token": "dummy-dev-token" - } - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "General" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "sudip@abc.com", - "phone": false, - "firstName": "sudip", - "lastName": null, - "country": "US", - "postalCode": 0 - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": null - }, - "destination": { - "Config": { - "rudderAccountId": "rudder-acc-id", - "listId": "list111", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "General" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "sudip@abc.com", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } -] diff --git a/test/__tests__/data/google_adwords_remarketing_lists_output.json b/test/__tests__/data/google_adwords_remarketing_lists_output.json deleted file mode 100644 index 73d404ca32e..00000000000 --- a/test/__tests__/data/google_adwords_remarketing_lists_output.json +++ /dev/null @@ -1,5789 +0,0 @@ -[ - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "listId": "list111", - "customerId": "7693729833" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "a512ebb75e941411945c9a18bca4ecc315830e0b5cff8a525472c86c1f540844", - "hashedLastName": "0357513deb903a056e74a7e475247fc1ffe31d8be4c1d4a31f58dd47ae484100", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token", - "login-customer-id": "8704830944" - }, - "params": { - "listId": "list111", - "customerId": "7693729833" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "create": { - "userIdentifiers": [ - { - "thirdPartyUserId": "useri1234" - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "listId": "list111", - "customerId": "7693729833" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "create": { - "userIdentifiers": [ - { - "mobileId": "abcd-1234-567h" - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - { - "metadata": { - "secret": { - "access_token": "dummy-access" - } - }, - "statusCode": 400, - "error": "Neither 'add' nor 'remove' property is present inside 'listData' or there are no attributes inside 'add' or 'remove' properties matching with the schema fields. Aborting message.", - "statTags": { - "destination": "google_adwords_remarketing_lists", - "stage": "transform", - "scope": "exception" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access" - } - }, - "statusCode": 400, - "error": "Neither 'add' nor 'remove' property is present inside 'listData' or there are no attributes inside 'add' or 'remove' properties matching with the schema fields. Aborting message.", - "statTags": { - "destination": "google_adwords_remarketing_lists", - "stage": "transform", - "scope": "exception" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access" - } - }, - "statusCode": 400, - "error": "Message Type is not present. Aborting message.", - "statTags": { - "destination": "google_adwords_remarketing_lists", - "stage": "transform", - "scope": "exception" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access" - } - }, - "statusCode": 400, - "error": "listData is not present inside properties. Aborting message.", - "statTags": { - "destination": "google_adwords_remarketing_lists", - "stage": "transform", - "scope": "exception" - } - }, - { - "metadata": { - "secret": { - "access_token": "dummy-access" - } - }, - "statusCode": 400, - "error": "loginCustomerId is required as subAccount is true.", - "statTags": { - "destination": "google_adwords_remarketing_lists", - "stage": "transform", - "scope": "exception" - } - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "listId": "list111", - "customerId": "7693729833" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "listId": "list111", - "customerId": "7693729833" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "listId": "list111", - "customerId": "7693729833" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "remove": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "listId": "list111", - "customerId": "7693729833" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "listId": "list111", - "customerId": "7693729833" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "remove": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "listId": "list111", - "customerId": "7693729833" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "remove": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - { - "metadata": { - "secret": { - "access_token": "dummy-access", - "refresh_token": "efgh5678", - "developer_token": "dummy-dev-token" - } - }, - "statusCode": 400, - "error": "Neither 'add' nor 'remove' property is present inside 'listData' or there are no attributes inside 'add' or 'remove' properties matching with the schema fields. Aborting message.", - "statTags": { - "destination": "google_adwords_remarketing_lists", - "stage": "transform", - "scope": "exception" - } - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "listId": "list111", - "customerId": "7693729833" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "remove": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - }, - { - "remove": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "listId": "list111", - "customerId": "7693729833" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - }, - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "listId": "list111", - "customerId": "7693729833" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "remove": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "listId": "list111", - "customerId": "7693729833" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "listId": "list111", - "customerId": "7693729833" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "remove": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "listId": "list111", - "customerId": "7693729833" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1" - } - }, - { - "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", - "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "listId": "list111", - "customerId": "7693729833" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c" - }, - { - "addressInfo": { - "hashedFirstName": "a512ebb75e941411945c9a18bca4ecc315830e0b5cff8a525472c86c1f540844", - "countryCode": "US", - "postalCode": 0 - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - { - "metadata": { - "secret": null - }, - "statusCode": 500, - "error": "Empty/Invalid access token", - "statTags": { - "destination": "google_adwords_remarketing_lists", - "stage": "transform", - "scope": "exception" - } - } -] diff --git a/test/__tests__/data/google_adwords_remarketing_lists_proxy_input.json b/test/__tests__/data/google_adwords_remarketing_lists_proxy_input.json deleted file mode 100644 index 2c240a77431..00000000000 --- a/test/__tests__/data/google_adwords_remarketing_lists_proxy_input.json +++ /dev/null @@ -1,138 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "destination": "google_adwords_remarketing_lists", - "listId": "709078448", - "customerId": "7693729833" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "hashedEmail": "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "e56d336922eaab3be8c1244dbaa713e134a8eba50ddbd4f50fd2fe18d72595cd" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729834/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "listId": "709078448", - "customerId": "7693729833", - "destination": "google_adwords_remarketing_lists" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "abcd@testmail.com" - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer dummy-access", - "Content-Type": "application/json", - "developer-token": "dummy-dev-token" - }, - "params": { - "listId": "709078448", - "customerId": "7693729833", - "destination": "google_adwords_remarketing_lists" - }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "remove": { - "userIdentifiers": [ - { - "hashedEmail": "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "hashedEmail": "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "e56d336922eaab3be8c1244dbaa713e134a8eba50ddbd4f50fd2fe18d72595cd" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } -] \ No newline at end of file diff --git a/test/__tests__/data/google_adwords_remarketing_lists_proxy_output.json b/test/__tests__/data/google_adwords_remarketing_lists_proxy_output.json deleted file mode 100644 index 503393423b8..00000000000 --- a/test/__tests__/data/google_adwords_remarketing_lists_proxy_output.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - { - "output": { - "status": 200, - "message": "Request Processed Successfully", - "destinationResponse": { "response": "", "status": 200 } - } - }, - { - "output": { - "status": 400, - "message": "Request contains an invalid argument. during ga_audience response transformation", - "destinationResponse": { - "error": { - "code": 400, - "details": [ - { - "@type": "type.googleapis.com/google.ads.googleads.v9.errors.GoogleAdsFailure", - "errors": [ - { - "errorCode": { - "offlineUserDataJobError": "INVALID_SHA256_FORMAT" - }, - "message": "The SHA256 encoded value is malformed.", - "location": { - "fieldPathElements": [ - { "fieldName": "operations", "index": 0 }, - { "fieldName": "remove" }, - { "fieldName": "user_identifiers", "index": 0 }, - { "fieldName": "hashed_email" } - ] - } - } - ] - } - ], - "message": "Request contains an invalid argument.", - "status": "INVALID_ARGUMENT" - } - }, - "statTags": { - "destType": "GOOGLE_ADWORDS_REMARKETING_LISTS", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - }, - { - "output": { - "status": 200, - "message": "Request Processed Successfully", - "destinationResponse": { "response": "", "status": 200 } - } - } -] diff --git a/test/__tests__/data/google_adwords_remarketing_lists_router_input.json b/test/__tests__/data/google_adwords_remarketing_lists_router_input.json deleted file mode 100644 index 156e1874e8d..00000000000 --- a/test/__tests__/data/google_adwords_remarketing_lists_router_input.json +++ /dev/null @@ -1,209 +0,0 @@ -[ - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "rudderAccountId": "258Yea7usSKNpbkIaesL9oJ9iYw", - "listId": "7090784486", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "General" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "sudip@abc.com", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "rudderAccountId": "258Yea7usSKNpbkIaesL9oJ9iYw", - "listId": "7090784486", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "userID" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "sudip@abc.com", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245", - "thirdPartyUserId": "useri1234" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "rudderAccountId": "258Yea7usSKNpbkIaesL9oJ9iYw", - "listId": "7090784486", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "General" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "remove": [ - { - "email": "sudip@abc.com", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "rudderAccountId": "258Yea7usSKNpbkIaesL9oJ9iYw", - "listId": "7090784486", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "General" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "remove": [ - { - "email": "sudip@abc.com", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - } - ], - "add": [ - { - "email": "sudip@abc.com", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } -] diff --git a/test/__tests__/data/google_adwords_remarketing_lists_router_output.json b/test/__tests__/data/google_adwords_remarketing_lists_router_output.json deleted file mode 100644 index d37726c7c88..00000000000 --- a/test/__tests__/data/google_adwords_remarketing_lists_router_output.json +++ /dev/null @@ -1,314 +0,0 @@ -[ - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl9101" - }, - "params": { "listId": "7090784486", "customerId": "7693729833" }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "a512ebb75e941411945c9a18bca4ecc315830e0b5cff8a525472c86c1f540844", - "hashedLastName": "0357513deb903a056e74a7e475247fc1ffe31d8be4c1d4a31f58dd47ae484100", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "rudderAccountId": "258Yea7usSKNpbkIaesL9oJ9iYw", - "listId": "7090784486", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "General" - } - } - }, - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl9101" - }, - "params": { "listId": "7090784486", "customerId": "7693729833" }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "create": { - "userIdentifiers": [ - { - "thirdPartyUserId": "useri1234" - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "rudderAccountId": "258Yea7usSKNpbkIaesL9oJ9iYw", - "listId": "7090784486", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "userID" - } - } - }, - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl9101" - }, - "params": { "listId": "7090784486", "customerId": "7693729833" }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "remove": { - "userIdentifiers": [ - { - "hashedEmail": "938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "a512ebb75e941411945c9a18bca4ecc315830e0b5cff8a525472c86c1f540844", - "hashedLastName": "0357513deb903a056e74a7e475247fc1ffe31d8be4c1d4a31f58dd47ae484100", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "rudderAccountId": "258Yea7usSKNpbkIaesL9oJ9iYw", - "listId": "7090784486", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "General" - } - } - }, - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl9101" - }, - "params": { "listId": "7090784486", "customerId": "7693729833" }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "remove": { - "userIdentifiers": [ - { - "hashedEmail": "938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "a512ebb75e941411945c9a18bca4ecc315830e0b5cff8a525472c86c1f540844", - "hashedLastName": "0357513deb903a056e74a7e475247fc1ffe31d8be4c1d4a31f58dd47ae484100", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://googleads.googleapis.com/v13/customers/7693729833/offlineUserDataJobs", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json", - "developer-token": "ijkl9101" - }, - "params": { "listId": "7090784486", "customerId": "7693729833" }, - "body": { - "JSON": { - "enablePartialFailure": true, - "operations": [ - { - "create": { - "userIdentifiers": [ - { - "hashedEmail": "938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c" - }, - { - "hashedPhoneNumber": "3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22" - }, - { - "addressInfo": { - "hashedFirstName": "a512ebb75e941411945c9a18bca4ecc315830e0b5cff8a525472c86c1f540844", - "hashedLastName": "0357513deb903a056e74a7e475247fc1ffe31d8be4c1d4a31f58dd47ae484100", - "countryCode": "US", - "postalCode": "1245" - } - } - ] - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "rudderAccountId": "258Yea7usSKNpbkIaesL9oJ9iYw", - "listId": "7090784486", - "customerId": "7693729833", - "loginCustomerId": "", - "subAccount": false, - "userSchema": ["email", "phone", "addressInfo"], - "isHashRequired": true, - "typeOfList": "General" - } - } - } -] diff --git a/test/__tests__/data/google_cloud_function_router_input.json b/test/__tests__/data/google_cloud_function_router_input.json deleted file mode 100644 index 98e411aae15..00000000000 --- a/test/__tests__/data/google_cloud_function_router_input.json +++ /dev/null @@ -1,170 +0,0 @@ -[ - { - "destination": { - "Config": { - "triggerType": "Http", - "apiKeyId": "randomAPI", - "enableBatchInput": true, - "googleCloudFunctionUrl": "https://us-central1-big-query-integration-poc.cloudfunctions.net/rohitv1", - "maxBatchSize": "2" - } - }, - "metadata": { - "jobId": "1" - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "identify", - "traits": { - "email": "cosmo@krammer.com", - "name": "Cosmo Krammer", - "linkedinUrl": "https://linkedin.com/cosmo-krammer", - "location": "New York", - "emailOptOut": true, - "masterAvatarTypeCode": 10 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - }, - { - "destination": { - "Config": { - "triggerType": "Http", - "apiKeyId": "randomAPI", - "enableBatchInput": true, - "googleCloudFunctionUrl": "", - "maxBatchSize": "2" - } - }, - "metadata": { - "jobId": "2" - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "identify", - "traits": { - "email": "cosmo@krammer.com", - "name": "Cosmo Krammer", - "linkedinUrl": "https://linkedin.com/cosmo-krammer", - "location": "New York", - "emailOptOut": true, - "masterAvatarTypeCode": 10 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - }, - { - "destination": { - "Config": { - "triggerType": "Http", - "apiKeyId": "randomAPI", - "enableBatchInput": true, - "googleCloudFunctionUrl": "https://us-central1-big-query-integration-poc.cloudfunctions.net/rohitv1", - "maxBatchSize": "2" - } - }, - "metadata": { - "jobId": "3" - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "identify", - "traits": { - "email": "cosmo@krammer.com", - "name": "Cosmo Krammer", - "linkedinUrl": "https://linkedin.com/cosmo-krammer", - "location": "New York", - "emailOptOut": true, - "masterAvatarTypeCode": 10 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } -] diff --git a/test/__tests__/data/google_cloud_function_router_output.json b/test/__tests__/data/google_cloud_function_router_output.json deleted file mode 100644 index 99c6e27bf4a..00000000000 --- a/test/__tests__/data/google_cloud_function_router_output.json +++ /dev/null @@ -1,55 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://us-central1-big-query-integration-poc.cloudfunctions.net/rohitv1", - "headers": { - "content-type": "application/json", - "ApiKey": "Basic YXBpS2V5OnJhbmRvbUFQSQ==" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"channel\":\"web\",\"context\":{\"app\":{\"build\":\"1.0.0\",\"name\":\"RudderLabs JavaScript SDK\",\"namespace\":\"com.rudderlabs.javascript\",\"version\":\"1.0.0\"},\"library\":{\"name\":\"RudderLabs JavaScript SDK\",\"version\":\"1.0.0\"},\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\",\"locale\":\"en-US\",\"ip\":\"0.0.0.0\",\"os\":{\"name\":\"\",\"version\":\"\"},\"screen\":{\"density\":2}},\"messageId\":\"84e26acc-56a5-4835-8233-591137fca468\",\"session_id\":\"3049dc4c-5a95-4ccd-a3e7-d74a7e411f22\",\"originalTimestamp\":\"2019-10-14T09:03:17.562Z\",\"anonymousId\":\"anon_id\",\"type\":\"identify\",\"traits\":{\"email\":\"cosmo@krammer.com\",\"name\":\"Cosmo Krammer\",\"linkedinUrl\":\"https://linkedin.com/cosmo-krammer\",\"location\":\"New York\",\"emailOptOut\":true,\"masterAvatarTypeCode\":10},\"integrations\":{\"All\":true},\"sentAt\":\"2019-10-14T09:03:22.563Z\"},{\"channel\":\"web\",\"context\":{\"app\":{\"build\":\"1.0.0\",\"name\":\"RudderLabs JavaScript SDK\",\"namespace\":\"com.rudderlabs.javascript\",\"version\":\"1.0.0\"},\"library\":{\"name\":\"RudderLabs JavaScript SDK\",\"version\":\"1.0.0\"},\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\",\"locale\":\"en-US\",\"ip\":\"0.0.0.0\",\"os\":{\"name\":\"\",\"version\":\"\"},\"screen\":{\"density\":2}},\"messageId\":\"84e26acc-56a5-4835-8233-591137fca468\",\"session_id\":\"3049dc4c-5a95-4ccd-a3e7-d74a7e411f22\",\"originalTimestamp\":\"2019-10-14T09:03:17.562Z\",\"anonymousId\":\"anon_id\",\"type\":\"identify\",\"traits\":{\"email\":\"cosmo@krammer.com\",\"name\":\"Cosmo Krammer\",\"linkedinUrl\":\"https://linkedin.com/cosmo-krammer\",\"location\":\"New York\",\"emailOptOut\":true,\"masterAvatarTypeCode\":10},\"integrations\":{\"All\":true},\"sentAt\":\"2019-10-14T09:03:22.563Z\"}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [{ "jobId": "1" }, { "jobId": "3" }], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "triggerType": "Http", - "apiKeyId": "randomAPI", - "enableBatchInput": true, - "googleCloudFunctionUrl": "https://us-central1-big-query-integration-poc.cloudfunctions.net/rohitv1", - "maxBatchSize": "2" - } - } - }, - { - "destination": { - "Config": { - "triggerType": "Http", - "apiKeyId": "randomAPI", - "enableBatchInput": true, - "googleCloudFunctionUrl": "", - "maxBatchSize": "2" - } - }, - "metadata": [{ "jobId": "2" }], - "batched": false, - "statusCode": 400, - "error": "[GCF]:: Url not found. Aborting", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "configuration" - } - } -] diff --git a/test/__tests__/data/googlepubsub_input.json b/test/__tests__/data/googlepubsub_input.json deleted file mode 100644 index bf694698300..00000000000 --- a/test/__tests__/data/googlepubsub_input.json +++ /dev/null @@ -1,610 +0,0 @@ -[ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "credentials": "abc", - "eventToTopicMap": [ - { - "from": "track", - "to": "test" - } - ] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "credentials": "abc", - "eventToTopicMap": [ - { - "from": "product added", - "to": "test" - } - ] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "credentials": "abc", - "eventToTopicMap": [ - { - "from": "*", - "to": "test" - } - ] - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "credentials": "abc", - "eventToTopicMap": [ - { - "from": "test event", - "to": "test" - } - ] - } - } - }, - { - "message": { - "sentAt": "2020-08-28T15:11:56.167Z", - "category": "Food", - "messageId": "node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba", - "anonymousId": "abcdeeeeeeeexxxx111", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "originalTimestamp": "2020-08-28T15:11:56.162Z", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "type": "track", - "name": "Pizza", - "_metadata": { - "nodeVersion": "10.22.0" - } - }, - "destination": { - "Config": { - "credentials": "abc", - "eventToTopicMap": [ - { - "from": "track", - "to": "" - } - ] - } - } - }, - { - "message": { - "sentAt": "2020-08-28T15:11:56.167Z", - "category": "Food", - "messageId": "node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba", - "anonymousId": "abcdeeeeeeeexxxx111", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "originalTimestamp": "2020-08-28T15:11:56.162Z", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "type": "track", - "name": "Pizza", - "_metadata": { - "nodeVersion": "10.22.0" - } - }, - "destination": { - "Config": { - "credentials": "abc", - "eventToTopicMap": [ - { - "from": "track", - "to": "" - } - ] - } - } - }, - { - "message": { - "sentAt": "2020-08-28T15:11:56.167Z", - "category": "Food", - "messageId": "node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba", - "anonymousId": "abcdeeeeeeeexxxx111", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "originalTimestamp": "2020-08-28T15:11:56.162Z", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "type": "track", - "name": "Pizza", - "_metadata": { - "nodeVersion": "10.22.0" - } - }, - "destination": { - "Config": { - "credentials": "abc", - "eventToTopicMap": [ - { - "from": "track", - "to": "test" - }, - { - "from": "*", - "to": "test a" - } - ] - } - } - }, - { - "message": { - "sentAt": "2020-08-28T15:11:56.167Z", - "category": "Food", - "messageId": "node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba", - "anonymousId": "abcdeeeeeeeexxxx111", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "originalTimestamp": "2020-08-28T15:11:56.162Z", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "type": "track", - "event": "product added", - "name": "Pizza", - "_metadata": { - "nodeVersion": "10.22.0" - } - }, - "destination": { - "Config": { - "credentials": "abc", - "eventToTopicMap": [ - { - "from": "track", - "to": "test" - }, - { - "from": "*", - "to": "test a" - }, - { - "from": "product added", - "to": "test b" - } - ] - } - } - }, - { - "message": { - "sentAt": "2020-08-28T15:11:56.167Z", - "category": "Food", - "messageId": "node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba", - "anonymousId": "abcdeeeeeeeexxxx111", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "originalTimestamp": "2020-08-28T15:11:56.162Z", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "type": "track", - "event": "product added", - "name": "Pizza", - "_metadata": { - "nodeVersion": "10.22.0" - } - }, - "destination": { - "Config": { - "credentials": "abc", - "eventToTopicMap": [ - { - "from": "track", - "to": "Test-Topic" - } - ], - "eventToAttributesMap": [ - { - "from": "track", - "to": "name" - } - ] - } - } - }, - { - "message": { - "sentAt": "2020-08-28T15:11:56.167Z", - "category": "Food", - "messageId": "node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba", - "anonymousId": "abcdeeeeeeeexxxx111", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "originalTimestamp": "2020-08-28T15:11:56.162Z", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "type": "track", - "event": "product added", - "name": "Pizza", - "_metadata": { - "nodeVersion": "10.22.0" - } - }, - "destination": { - "Config": { - "credentials": "abc", - "eventToTopicMap": [ - { - "from": "track", - "to": "Test-Topic" - } - ], - "eventToAttributesMap": [ - { - "from": "track", - "to": "url" - }, - { - "from": "track", - "to": "title" - } - ] - } - } - }, - { - "message": { - "sentAt": "2020-08-28T15:11:56.167Z", - "category": "Food", - "messageId": "node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba", - "anonymousId": "abcdeeeeeeeexxxx111", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "originalTimestamp": "2020-08-28T15:11:56.162Z", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "type": "track", - "event": "product added", - "name": "Pizza", - "_metadata": { - "nodeVersion": "10.22.0" - } - }, - "destination": { - "Config": { - "credentials": "abc", - "eventToTopicMap": [ - { - "from": "track", - "to": "Test-Topic" - } - ], - "eventToAttributesMap": [ - { - "from": "track", - "to": "url" - }, - { - "from": "track", - "to": "title" - }, - { - "from": "product added", - "to": "referrer" - } - ] - } - } - }, - { - "message": { - "sentAt": "2020-08-28T15:11:56.167Z", - "category": "Food", - "messageId": "node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba", - "anonymousId": "abcdeeeeeeeexxxx111", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "originalTimestamp": "2020-08-28T15:11:56.162Z", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com", - "nestedObject": { - "this": "will be picked" - } - }, - "type": "track", - "name": "Pizza", - "_metadata": { - "nodeVersion": "10.22.0" - } - }, - "destination": { - "Config": { - "credentials": "abc", - "eventToTopicMap": [ - { - "from": "track", - "to": "Test-Topic" - } - ], - "eventToAttributesMap": [ - { - "from": "track", - "to": "nestedObject.this" - } - ] - } - } - }, - { - "message": { - "sentAt": "2020-08-28T15:11:56.167Z", - "category": "Food", - "messageId": "node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba", - "anonymousId": "abcdeeeeeeeexxxx111", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "originalTimestamp": "2020-08-28T15:11:56.162Z", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com", - "nestedObject": { - "this": "will be picked" - } - }, - "type": "track", - "name": "Pizza", - "_metadata": { - "nodeVersion": "10.22.0" - } - }, - "destination": { - "Config": { - "credentials": "abc", - "eventToTopicMap": [ - { - "from": "track", - "to": "Test-Topic" - } - ], - "eventToAttributesMap": [ - { - "from": "track", - "to": "properties.nestedObject.this" - } - ] - } - } - } -] diff --git a/test/__tests__/data/googlepubsub_output.json b/test/__tests__/data/googlepubsub_output.json deleted file mode 100644 index ca0abe33a3e..00000000000 --- a/test/__tests__/data/googlepubsub_output.json +++ /dev/null @@ -1,372 +0,0 @@ -[ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "userId": "123456", - "topicId": "test", - "attributes": {} - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "userId": "123456", - "topicId": "test", - "attributes": {} - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "event": "product added", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "userId": "123456", - "topicId": "test", - "attributes": {} - }, - { - "statusCode": 400, - "error": "No topic set for this event" - }, - { - "statusCode": 400, - "error": "No topic set for this event" - }, - { - "statusCode": 400, - "error": "No topic set for this event" - }, - { - "message": { - "sentAt": "2020-08-28T15:11:56.167Z", - "category": "Food", - "messageId": "node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba", - "anonymousId": "abcdeeeeeeeexxxx111", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "originalTimestamp": "2020-08-28T15:11:56.162Z", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "type": "track", - "name": "Pizza", - "_metadata": { - "nodeVersion": "10.22.0" - } - }, - "userId": "abcdeeeeeeeexxxx111", - "topicId": "test", - "attributes": {} - }, - { - "message": { - "sentAt": "2020-08-28T15:11:56.167Z", - "category": "Food", - "messageId": "node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba", - "anonymousId": "abcdeeeeeeeexxxx111", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "originalTimestamp": "2020-08-28T15:11:56.162Z", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "type": "track", - "event": "product added", - "name": "Pizza", - "_metadata": { - "nodeVersion": "10.22.0" - } - }, - "userId": "abcdeeeeeeeexxxx111", - "topicId": "test b", - "attributes": {} - }, - { - "message": { - "sentAt": "2020-08-28T15:11:56.167Z", - "category": "Food", - "messageId": "node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba", - "anonymousId": "abcdeeeeeeeexxxx111", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "originalTimestamp": "2020-08-28T15:11:56.162Z", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "type": "track", - "event": "product added", - "name": "Pizza", - "_metadata": { - "nodeVersion": "10.22.0" - } - }, - "userId": "abcdeeeeeeeexxxx111", - "topicId": "Test-Topic", - "attributes": { - "name": "Pizza" - } - }, - { - "message": { - "sentAt": "2020-08-28T15:11:56.167Z", - "category": "Food", - "messageId": "node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba", - "anonymousId": "abcdeeeeeeeexxxx111", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "originalTimestamp": "2020-08-28T15:11:56.162Z", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "type": "track", - "event": "product added", - "name": "Pizza", - "_metadata": { - "nodeVersion": "10.22.0" - } - }, - "userId": "abcdeeeeeeeexxxx111", - "topicId": "Test-Topic", - "attributes": { - "url": "https://dominos.com", - "title": "Pizza" - } - }, - { - "message": { - "sentAt": "2020-08-28T15:11:56.167Z", - "category": "Food", - "messageId": "node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba", - "anonymousId": "abcdeeeeeeeexxxx111", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "originalTimestamp": "2020-08-28T15:11:56.162Z", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "type": "track", - "event": "product added", - "name": "Pizza", - "_metadata": { - "nodeVersion": "10.22.0" - } - }, - "userId": "abcdeeeeeeeexxxx111", - "topicId": "Test-Topic", - "attributes": { - "referrer": "https://google.com" - } - }, - { - "message": { - "sentAt": "2020-08-28T15:11:56.167Z", - "category": "Food", - "messageId": "node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba", - "anonymousId": "abcdeeeeeeeexxxx111", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "originalTimestamp": "2020-08-28T15:11:56.162Z", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com", - "nestedObject": { - "this": "will be picked" - } - }, - "type": "track", - "name": "Pizza", - "_metadata": { - "nodeVersion": "10.22.0" - } - }, - "userId": "abcdeeeeeeeexxxx111", - "topicId": "Test-Topic", - "attributes": { - "this": "will be picked" - } - }, - { - "message": { - "sentAt": "2020-08-28T15:11:56.167Z", - "category": "Food", - "messageId": "node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba", - "anonymousId": "abcdeeeeeeeexxxx111", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "originalTimestamp": "2020-08-28T15:11:56.162Z", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com", - "nestedObject": { - "this": "will be picked" - } - }, - "type": "track", - "name": "Pizza", - "_metadata": { - "nodeVersion": "10.22.0" - } - }, - "userId": "abcdeeeeeeeexxxx111", - "topicId": "Test-Topic", - "attributes": { - "this": "will be picked" - } - } -] diff --git a/test/__tests__/data/googlesheets_input.json b/test/__tests__/data/googlesheets_input.json deleted file mode 100644 index 492d57d431c..00000000000 --- a/test/__tests__/data/googlesheets_input.json +++ /dev/null @@ -1,564 +0,0 @@ -[ - { - "destination": { - "Config": { - "credentials": "{ sheets credentials }", - "eventKeyMap": [ - { - "from": "firstName", - "to": "First Name" - }, - { - "from": "lastName", - "to": "Last Name" - }, - { - "from": "birthday", - "to": "Birthday" - }, - { - "from": "address.city", - "to": "City" - }, - { - "from": "address.country", - "to": "Country" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "offer", - "to": "Offer" - }, - { - "from": "title", - "to": "Title Page" - }, - { - "from": "Cart Value", - "to": "Cart Value" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "context.app.build", - "to": "App Build" - }, - { - "from": "context.app.name", - "to": "App Name" - }, - { - "from": "context.library.name", - "to": "Library Name" - }, - { - "from": "context.ip", - "to": "IP" - } - ], - "sheetId": "rudder_sheet_id", - "sheetName": "rudder_sheet" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { "name": "OS-X", "version": "19.02.3" }, - "screen": { "density": 2 }, - "traits": { - "userId": "sheetuser001", - "firstName": "James", - "lastName": "Doe", - "address": { - "city": "Kolkata", - "country": "India", - "postalCode": "789003", - "state": "WB" - } - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "identify", - "traits": { - "anonymousId": "anon_id", - "email": "jamesDoe@gmail.com", - "name": "James Doe", - "phone": "92374162212", - "gender": "M", - "employed": true, - "birthday": "1614775793", - "education": "Science", - "graduate": true, - "married": true, - "customerType": "Prime", - "custom_tags": ["Test_User", "Interested_User", "DIY_Hobby"], - "custom_mappings": { - "Office": "Trastkiv", - "Country": "Russia" - }, - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 789223, - "state": "WB", - "street": "" - } - }, - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - }, - { - "destination": { - "Config": { - "credentials": "{ sheets credentials }", - "eventKeyMap": [ - { - "from": "firstName", - "to": "First Name" - }, - { - "from": "lastName", - "to": "Last Name" - }, - { - "from": "birthday", - "to": "Birthday" - }, - { - "from": "address.city", - "to": "City" - }, - { - "from": "address.country", - "to": "Country" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "offer", - "to": "Offer" - }, - { - "from": "title", - "to": "Title Page" - }, - { - "from": "Cart Value", - "to": "Cart Value" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "context.app.build", - "to": "App Build" - }, - { - "from": "context.app.name", - "to": "App Name" - }, - { - "from": "context.library.name", - "to": "Library Name" - }, - { - "from": "context.ip", - "to": "IP" - } - ], - "sheetId": "rudder_sheet_id", - "sheetName": "rudder_sheet" - } - }, - "message": { - "type": "track", - "userId": "userTest004", - "event": "Added to Cart", - "properties": { - "name": "HomePage", - "revenue": 5.99, - "value": 5.5, - "offer": "Discount", - "Sale": false - }, - "context": { - "ip": "14.5.67.21", - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.rudderstack.demo.android", - "version": "1.0" - }, - "device": { - "id": "7e32188a4dab669f", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { "name": "Android", "version": "9" }, - "screen": { "density": 420, "height": 1794, "width": 1080 }, - "timezone": "Asia/Kolkata" - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "destination": { - "Config": { - "credentials": "{ sheets credentials }", - "eventKeyMap": [ - { - "from": "firstName", - "to": "First Name" - }, - { - "from": "lastName", - "to": "Last Name" - }, - { - "from": "birthday", - "to": "Birthday" - }, - { - "from": "address.city", - "to": "City" - }, - { - "from": "address.country", - "to": "Country" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "offer", - "to": "Offer" - }, - { - "from": "title", - "to": "Title Page" - }, - { - "from": "Cart Value", - "to": "Cart Value" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "context.app.build", - "to": "App Build" - }, - { - "from": "context.app.name", - "to": "App Name" - }, - { - "from": "context.library.name", - "to": "Library Name" - }, - { - "from": "context.ip", - "to": "IP" - } - ], - "sheetId": "rudder_sheet_id", - "sheetName": "rudder_sheet" - } - }, - "message": { - "type": "page", - "userId": "userTest004", - "anonymousId": "anon-id-new", - "name": "1mg Cart", - "properties": { - "title": "Cart", - "path": "/", - "Cart Value": 7800, - "revenue": 7500 - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "destination": { - "Config": { - "credentials": "{ sheets credentials }", - "eventKeyMap": [ - { - "from": "firstName", - "to": "First Name" - }, - { - "from": "lastName", - "to": "Last Name" - }, - { - "from": "birthday", - "to": "Birthday" - }, - { - "from": "address.city", - "to": "City" - }, - { - "from": "address.country", - "to": "Country" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "offer", - "to": "Offer" - }, - { - "from": "title", - "to": "Title Page" - }, - { - "from": "Cart Value", - "to": "Cart Value" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "context.app.build", - "to": "App Build" - }, - { - "from": "context.app.name", - "to": "App Name" - }, - { - "from": "context.library.name", - "to": "Library Name" - }, - { - "from": "context.ip", - "to": "IP" - } - ], - "sheetId": "rudder_sheet_id", - "sheetName": "rudder_sheet" - } - }, - "message": { - "type": "page", - "userId": "userTest005", - "anonymousId": "anon-id-test", - "name": "Viewed Home Screen", - "properties": { - "title": "Home", - "path": "/home" - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "destination": { - "Config": { - "credentials": "{ sheets credentials }", - "eventKeyMap": [ - { - "from": "firstName", - "to": "First Name" - }, - { - "from": "lastName", - "to": "Last Name" - }, - { - "from": "birthday", - "to": "Birthday" - }, - { - "from": "address.city", - "to": "City" - }, - { - "from": "address.country", - "to": "Country" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "offer", - "to": "Offer" - }, - { - "from": "title", - "to": "Title Page" - }, - { - "from": "Cart Value", - "to": "Cart Value" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "context.app.build", - "to": "App Build" - }, - { - "from": "context.app.name", - "to": "App Name" - }, - { - "from": "context.library.name", - "to": "Library Name" - }, - { - "from": "context.ip", - "to": "IP" - } - ], - "sheetId": "rudder_sheet_id", - "sheetName": "rudder_sheet" - } - }, - "message": { - "type": "screen", - "name": "Trello home Screen", - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - { - "destination": { - "Config": { - "credentials": "{ sheets credentials }", - "eventKeyMap": [ - { - "from": "firstName", - "to": "First Name" - }, - { - "from": "lastName", - "to": "Last Name" - }, - { - "from": "birthday", - "to": "Birthday" - }, - { - "from": "address.city", - "to": "City" - }, - { - "from": "address.country", - "to": "Country" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "offer", - "to": "Offer" - }, - { - "from": "title", - "to": "Title Page" - }, - { - "from": "Cart Value", - "to": "Cart Value" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "context.app.build", - "to": "App Build" - }, - { - "from": "context.app.name", - "to": "App Name" - }, - { - "from": "context.library.name", - "to": "Library Name" - }, - { - "from": "context.ip", - "to": "IP" - } - ], - "sheetId": "rudder_sheet_id" - } - }, - "message": { - "type": "screen", - "name": "Trello home Screen", - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } -] diff --git a/test/__tests__/data/googlesheets_output.json b/test/__tests__/data/googlesheets_output.json deleted file mode 100644 index 23b2f2f01bd..00000000000 --- a/test/__tests__/data/googlesheets_output.json +++ /dev/null @@ -1,345 +0,0 @@ -[ - { - "batch": { - "message": { - "0": { - "attributeKey": "messageId", - "attributeValue": "84e26acc-56a5-4835-8233-591137fca468" - }, - "1": { - "attributeKey": "First Name", - "attributeValue": "James" - }, - "2": { - "attributeKey": "Last Name", - "attributeValue": "Doe" - }, - "3": { - "attributeKey": "Birthday", - "attributeValue": "1614775793" - }, - "4": { - "attributeKey": "City", - "attributeValue": "kolkata" - }, - "5": { - "attributeKey": "Country", - "attributeValue": "India" - }, - "6": { - "attributeKey": "Revenue", - "attributeValue": "" - }, - "7": { - "attributeKey": "Offer", - "attributeValue": "" - }, - "8": { - "attributeKey": "Title Page", - "attributeValue": "" - }, - "9": { - "attributeKey": "Cart Value", - "attributeValue": "" - }, - "10": { - "attributeKey": "Revenue", - "attributeValue": "" - }, - "11": { - "attributeKey": "App Build", - "attributeValue": "1.0.0" - }, - "12": { - "attributeKey": "App Name", - "attributeValue": "RudderLabs JavaScript SDK" - }, - "13": { - "attributeKey": "Library Name", - "attributeValue": "RudderLabs JavaScript SDK" - }, - "14": { - "attributeKey": "IP", - "attributeValue": "0.0.0.0" - } - } - }, - "spreadSheet": "rudder_sheet", - "spreadSheetId": "rudder_sheet_id" - }, - { - "batch": { - "message": { - "0": { - "attributeKey": "messageId", - "attributeValue": "" - }, - "1": { - "attributeKey": "First Name", - "attributeValue": "" - }, - "2": { - "attributeKey": "Last Name", - "attributeValue": "" - }, - "3": { - "attributeKey": "Birthday", - "attributeValue": "" - }, - "4": { - "attributeKey": "City", - "attributeValue": "" - }, - "5": { - "attributeKey": "Country", - "attributeValue": "" - }, - "6": { - "attributeKey": "Revenue", - "attributeValue": 5.99 - }, - "7": { - "attributeKey": "Offer", - "attributeValue": "Discount" - }, - "8": { - "attributeKey": "Title Page", - "attributeValue": "" - }, - "9": { - "attributeKey": "Cart Value", - "attributeValue": "" - }, - "10": { - "attributeKey": "Revenue", - "attributeValue": 5.99 - }, - "11": { - "attributeKey": "App Build", - "attributeValue": "1" - }, - "12": { - "attributeKey": "App Name", - "attributeValue": "RudderAndroidClient" - }, - "13": { - "attributeKey": "Library Name", - "attributeValue": "com.rudderstack.android.sdk.core" - }, - "14": { - "attributeKey": "IP", - "attributeValue": "14.5.67.21" - } - } - }, - "spreadSheet": "rudder_sheet", - "spreadSheetId": "rudder_sheet_id" - }, - { - "batch": { - "message": { - "0": { - "attributeKey": "messageId", - "attributeValue": "" - }, - "1": { - "attributeKey": "First Name", - "attributeValue": "" - }, - "2": { - "attributeKey": "Last Name", - "attributeValue": "" - }, - "3": { - "attributeKey": "Birthday", - "attributeValue": "" - }, - "4": { - "attributeKey": "City", - "attributeValue": "" - }, - "5": { - "attributeKey": "Country", - "attributeValue": "" - }, - "6": { - "attributeKey": "Revenue", - "attributeValue": 7500 - }, - "7": { - "attributeKey": "Offer", - "attributeValue": "" - }, - "8": { - "attributeKey": "Title Page", - "attributeValue": "Cart" - }, - "9": { - "attributeKey": "Cart Value", - "attributeValue": 7800 - }, - "10": { - "attributeKey": "Revenue", - "attributeValue": 7500 - }, - "11": { - "attributeKey": "App Build", - "attributeValue": "" - }, - "12": { - "attributeKey": "App Name", - "attributeValue": "" - }, - "13": { - "attributeKey": "Library Name", - "attributeValue": "http" - }, - "14": { - "attributeKey": "IP", - "attributeValue": "14.5.67.21" - } - } - }, - "spreadSheet": "rudder_sheet", - "spreadSheetId": "rudder_sheet_id" - }, - { - "batch": { - "message": { - "0": { - "attributeKey": "messageId", - "attributeValue": "" - }, - "1": { - "attributeKey": "First Name", - "attributeValue": "" - }, - "2": { - "attributeKey": "Last Name", - "attributeValue": "" - }, - "3": { - "attributeKey": "Birthday", - "attributeValue": "" - }, - "4": { - "attributeKey": "City", - "attributeValue": "" - }, - "5": { - "attributeKey": "Country", - "attributeValue": "" - }, - "6": { - "attributeKey": "Revenue", - "attributeValue": "" - }, - "7": { - "attributeKey": "Offer", - "attributeValue": "" - }, - "8": { - "attributeKey": "Title Page", - "attributeValue": "Home" - }, - "9": { - "attributeKey": "Cart Value", - "attributeValue": "" - }, - "10": { - "attributeKey": "Revenue", - "attributeValue": "" - }, - "11": { - "attributeKey": "App Build", - "attributeValue": "" - }, - "12": { - "attributeKey": "App Name", - "attributeValue": "" - }, - "13": { - "attributeKey": "Library Name", - "attributeValue": "http" - }, - "14": { - "attributeKey": "IP", - "attributeValue": "14.5.67.21" - } - } - }, - "spreadSheet": "rudder_sheet", - "spreadSheetId": "rudder_sheet_id" - }, - { - "batch": { - "message": { - "0": { - "attributeKey": "messageId", - "attributeValue": "" - }, - "1": { - "attributeKey": "First Name", - "attributeValue": "" - }, - "2": { - "attributeKey": "Last Name", - "attributeValue": "" - }, - "3": { - "attributeKey": "Birthday", - "attributeValue": "" - }, - "4": { - "attributeKey": "City", - "attributeValue": "" - }, - "5": { - "attributeKey": "Country", - "attributeValue": "" - }, - "6": { - "attributeKey": "Revenue", - "attributeValue": "" - }, - "7": { - "attributeKey": "Offer", - "attributeValue": "" - }, - "8": { - "attributeKey": "Title Page", - "attributeValue": "" - }, - "9": { - "attributeKey": "Cart Value", - "attributeValue": "" - }, - "10": { - "attributeKey": "Revenue", - "attributeValue": "" - }, - "11": { - "attributeKey": "App Build", - "attributeValue": "" - }, - "12": { - "attributeKey": "App Name", - "attributeValue": "" - }, - "13": { - "attributeKey": "Library Name", - "attributeValue": "http" - }, - "14": { - "attributeKey": "IP", - "attributeValue": "14.5.67.21" - } - } - }, - "spreadSheet": "rudder_sheet", - "spreadSheetId": "rudder_sheet_id" - }, - { - "error": "No Spread Sheet set for this event" - } -] diff --git a/test/__tests__/data/googlesheets_router_input.json b/test/__tests__/data/googlesheets_router_input.json deleted file mode 100644 index e675d25bd92..00000000000 --- a/test/__tests__/data/googlesheets_router_input.json +++ /dev/null @@ -1,245 +0,0 @@ -[ - { - "destination": { - "Config": { - "credentials": "{ sheets credentials }", - "eventKeyMap": [ - { - "from": "firstName", - "to": "First Name" - }, - { - "from": "lastName", - "to": "Last Name" - }, - { - "from": "birthday", - "to": "Birthday" - }, - { - "from": "address.city", - "to": "City" - }, - { - "from": "address.country", - "to": "Country" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "offer", - "to": "Offer" - }, - { - "from": "title", - "to": "Title Page" - }, - { - "from": "Cart Value", - "to": "Cart Value" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "context.app.build", - "to": "App Build" - }, - { - "from": "context.app.name", - "to": "App Name" - }, - { - "from": "context.library.name", - "to": "Library Name" - }, - { - "from": "context.ip", - "to": "IP" - } - ], - "sheetId": "rudder_sheet_id", - "sheetName": "rudder_sheet" - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { "name": "OS-X", "version": "19.02.3" }, - "screen": { "density": 2 }, - "traits": { - "userId": "sheetuser001", - "firstName": "James", - "lastName": "Doe", - "address": { - "city": "Kolkata", - "country": "India", - "postalCode": "789003", - "state": "WB" - } - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "type": "identify", - "traits": { - "anonymousId": "anon_id", - "email": "jamesDoe@gmail.com", - "name": "James Doe", - "phone": "92374162212", - "gender": "M", - "employed": true, - "birthday": "1614775793", - "education": "Science", - "graduate": true, - "married": true, - "customerType": "Prime", - "custom_tags": ["Test_User", "Interested_User", "DIY_Hobby"], - "custom_mappings": { - "Office": "Trastkiv", - "Country": "Russia" - }, - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 789223, - "state": "WB", - "street": "" - } - }, - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "metadata": { - "jobId": 1 - } - }, - { - "destination": { - "Config": { - "credentials": "{ sheets credentials }", - "eventKeyMap": [ - { - "from": "firstName", - "to": "First Name" - }, - { - "from": "lastName", - "to": "Last Name" - }, - { - "from": "birthday", - "to": "Birthday" - }, - { - "from": "address.city", - "to": "City" - }, - { - "from": "address.country", - "to": "Country" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "offer", - "to": "Offer" - }, - { - "from": "title", - "to": "Title Page" - }, - { - "from": "Cart Value", - "to": "Cart Value" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "context.app.build", - "to": "App Build" - }, - { - "from": "context.app.name", - "to": "App Name" - }, - { - "from": "context.library.name", - "to": "Library Name" - }, - { - "from": "context.ip", - "to": "IP" - } - ], - "sheetId": "rudder_sheet_id", - "sheetName": "rudder_sheet" - } - }, - "message": { - "type": "track", - "userId": "userTest004", - "event": "Added to Cart", - "properties": { - "name": "HomePage", - "revenue": 5.99, - "value": 5.5, - "offer": "Discount", - "Sale": false - }, - "context": { - "ip": "14.5.67.21", - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.rudderstack.demo.android", - "version": "1.0" - }, - "device": { - "id": "7e32188a4dab669f", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { "name": "Android", "version": "9" }, - "screen": { "density": 420, "height": 1794, "width": 1080 }, - "timezone": "Asia/Kolkata" - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "metadata": { - "jobId": 2 - } - } -] diff --git a/test/__tests__/data/googlesheets_router_output.json b/test/__tests__/data/googlesheets_router_output.json deleted file mode 100644 index 6370a9fa3f4..00000000000 --- a/test/__tests__/data/googlesheets_router_output.json +++ /dev/null @@ -1,213 +0,0 @@ -[ - { - "batchedRequest": { - "batch": [ - { - "message": { - "0": { - "attributeKey": "messageId", - "attributeValue": "84e26acc-56a5-4835-8233-591137fca468" - }, - "1": { - "attributeKey": "First Name", - "attributeValue": "James" - }, - "2": { - "attributeKey": "Last Name", - "attributeValue": "Doe" - }, - "3": { - "attributeKey": "Birthday", - "attributeValue": "1614775793" - }, - "4": { - "attributeKey": "City", - "attributeValue": "kolkata" - }, - "5": { - "attributeKey": "Country", - "attributeValue": "India" - }, - "6": { - "attributeKey": "Revenue", - "attributeValue": "" - }, - "7": { - "attributeKey": "Offer", - "attributeValue": "" - }, - "8": { - "attributeKey": "Title Page", - "attributeValue": "" - }, - "9": { - "attributeKey": "Cart Value", - "attributeValue": "" - }, - "10": { - "attributeKey": "Revenue", - "attributeValue": "" - }, - "11": { - "attributeKey": "App Build", - "attributeValue": "1.0.0" - }, - "12": { - "attributeKey": "App Name", - "attributeValue": "RudderLabs JavaScript SDK" - }, - "13": { - "attributeKey": "Library Name", - "attributeValue": "RudderLabs JavaScript SDK" - }, - "14": { - "attributeKey": "IP", - "attributeValue": "0.0.0.0" - } - } - }, - { - "message": { - "0": { - "attributeKey": "messageId", - "attributeValue": "" - }, - "1": { - "attributeKey": "First Name", - "attributeValue": "" - }, - "2": { - "attributeKey": "Last Name", - "attributeValue": "" - }, - "3": { - "attributeKey": "Birthday", - "attributeValue": "" - }, - "4": { - "attributeKey": "City", - "attributeValue": "" - }, - "5": { - "attributeKey": "Country", - "attributeValue": "" - }, - "6": { - "attributeKey": "Revenue", - "attributeValue": 5.99 - }, - "7": { - "attributeKey": "Offer", - "attributeValue": "Discount" - }, - "8": { - "attributeKey": "Title Page", - "attributeValue": "" - }, - "9": { - "attributeKey": "Cart Value", - "attributeValue": "" - }, - "10": { - "attributeKey": "Revenue", - "attributeValue": 5.99 - }, - "11": { - "attributeKey": "App Build", - "attributeValue": "1" - }, - "12": { - "attributeKey": "App Name", - "attributeValue": "RudderAndroidClient" - }, - "13": { - "attributeKey": "Library Name", - "attributeValue": "com.rudderstack.android.sdk.core" - }, - "14": { - "attributeKey": "IP", - "attributeValue": "14.5.67.21" - } - } - } - ], - "spreadSheetId": "rudder_sheet_id", - "spreadSheet": "rudder_sheet" - }, - "metadata": [ - { - "jobId": 1 - }, - { - "jobId": 2 - } - ], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "credentials": "{ sheets credentials }", - "eventKeyMap": [ - { - "from": "firstName", - "to": "First Name" - }, - { - "from": "lastName", - "to": "Last Name" - }, - { - "from": "birthday", - "to": "Birthday" - }, - { - "from": "address.city", - "to": "City" - }, - { - "from": "address.country", - "to": "Country" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "offer", - "to": "Offer" - }, - { - "from": "title", - "to": "Title Page" - }, - { - "from": "Cart Value", - "to": "Cart Value" - }, - { - "from": "revenue", - "to": "Revenue" - }, - { - "from": "context.app.build", - "to": "App Build" - }, - { - "from": "context.app.name", - "to": "App Name" - }, - { - "from": "context.library.name", - "to": "Library Name" - }, - { - "from": "context.ip", - "to": "IP" - } - ], - "sheetId": "rudder_sheet_id", - "sheetName": "rudder_sheet" - } - } - } -] diff --git a/test/__tests__/data/heap_input.json b/test/__tests__/data/heap_input.json deleted file mode 100644 index 944f6616158..00000000000 --- a/test/__tests__/data/heap_input.json +++ /dev/null @@ -1,516 +0,0 @@ -[ - { - "destination": { - "Config": { - "appId": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Heap.io", - "ID": "1WTbl0l5GjOQKOvfmcGwk0T49kV", - "Name": "HEAP" - }, - "Enabled": true, - "ID": "1WTcDSEOE437e4ePH10BJNELXmE", - "Name": "heap test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "messageId": "fca2e71a-5d30-48e1-ba45-761c16e3820f", - "originalTimestamp": "2020-01-16T13:21:59.076Z", - "receivedAt": "2020-01-16T18:52:03.871+05:30", - "request_ip": "[::1]:62312", - "sentAt": "2020-01-16T13:22:03.85Z", - "timestamp": "2020-01-16T18:51:59.097+05:30", - "type": "identify", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "appId": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Heap.io", - "ID": "1WTbl0l5GjOQKOvfmcGwk0T49kV", - "Name": "HEAP" - }, - "Enabled": true, - "ID": "1WTcDSEOE437e4ePH10BJNELXmE", - "Name": "heap test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "Send Transactional Email", - "integrations": { - "All": true - }, - "messageId": "c0c5b892-0d54-449f-b85f-ebb39ff04e67", - "originalTimestamp": "2020-01-16T13:23:20.844Z", - "properties": { - "subject": "Welcome to My App!", - "variation": "A" - }, - "receivedAt": "2020-01-16T18:53:23.804+05:30", - "request_ip": "[::1]:62312", - "sentAt": "2020-01-16T13:23:23.782Z", - "timestamp": "2020-01-16T18:53:20.866+05:30", - "type": "track", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "appId": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Heap.io", - "ID": "1WTbl0l5GjOQKOvfmcGwk0T49kV", - "Name": "HEAP" - }, - "Enabled": true, - "ID": "1WTcDSEOE437e4ePH10BJNELXmE", - "Name": "heap test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "messageId": "fca2e71a-5d30-48e1-ba45-761c16e3820f", - "originalTimestamp": "2020-01-16T13:21:59.076Z", - "receivedAt": "2020-01-16T18:52:03.871+05:30", - "request_ip": "[::1]:62312", - "sentAt": "2020-01-16T13:22:03.85Z", - "timestamp": "2020-01-16T18:51:59.097+05:30", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "appId": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Heap.io", - "ID": "1WTbl0l5GjOQKOvfmcGwk0T49kV", - "Name": "HEAP" - }, - "Enabled": true, - "ID": "1WTcDSEOE437e4ePH10BJNELXmE", - "Name": "heap test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "Send Transactional Email", - "integrations": { - "All": true - }, - "messageId": "c0c5b892-0d54-449f-b85f-ebb39ff04e67", - "originalTimestamp": "2020-01-16T13:23:20.844Z", - "properties": { - "subject": "Welcome to My App!", - "variation": "A" - }, - "receivedAt": "2020-01-16T18:53:23.804+05:30", - "request_ip": "[::1]:62312", - "sentAt": "2020-01-16T13:23:23.782Z", - "timestamp": "2020-01-16T18:53:20.866+05:30", - "type": "page", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "appId": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Heap.io", - "ID": "1WTbl0l5GjOQKOvfmcGwk0T49kV", - "Name": "HEAP" - }, - "Enabled": true, - "ID": "1WTcDSEOE437e4ePH10BJNELXmE", - "Name": "heap test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "Send Transactional Email", - "integrations": { - "All": true - }, - "messageId": "c0c5b892-0d54-449f-b85f-ebb39ff04e67", - "properties": { - "subject": "Welcome to My App!", - "variation": "A", - "idempotencyKey": "1234" - }, - "receivedAt": "2020-01-16T18:53:23.804+05:30", - "request_ip": "[::1]:62312", - "sentAt": "2020-01-16T13:23:23.782Z", - "timestamp": "2021-02-16T18:53:20.866+05:30", - "originalTimestamp": "2021-02-16T18:53:20.866+05:30", - "type": "track", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "appId": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Heap.io", - "ID": "1WTbl0l5GjOQKOvfmcGwk0T49kV", - "Name": "HEAP" - }, - "Enabled": true, - "ID": "1WTcDSEOE437e4ePH10BJNELXmE", - "Name": "heap test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "Send Transactional Email", - "integrations": { - "All": true - }, - "messageId": "c0c5b892-0d54-449f-b85f-ebb39ff04e67", - "originalTimestamp": "2020-01-17T13:23:20.844Z", - "properties": { - "subject": "Welcome to My App!", - "variation": "A", - "idempotencyKey": "1234" - }, - "receivedAt": "2020-01-16T18:53:23.804+05:30", - "request_ip": "[::1]:62312", - "sentAt": "2020-01-16T13:23:23.782Z", - "timestamp": "2020-01-16T18:53:20.866+05:30", - "type": "track", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "appId": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Heap.io", - "ID": "1WTbl0l5GjOQKOvfmcGwk0T49kV", - "Name": "HEAP" - }, - "Enabled": true, - "ID": "1WTcDSEOE437e4ePH10BJNELXmE", - "Name": "heap test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "Send Transactional Email", - "integrations": { - "All": true - }, - "messageId": "c0c5b892-0d54-449f-b85f-ebb39ff04e67", - "originalTimestamp": "2020-01-17T13:23:20.844Z", - "properties": { - "Location": { - "City": "Los Angeles", - "State": "CA" - }, - "hobbies": ["Music", "Running"] - }, - "receivedAt": "2020-01-16T18:53:23.804+05:30", - "request_ip": "[::1]:62312", - "sentAt": "2020-01-16T13:23:23.782Z", - "timestamp": "2020-01-16T18:53:20.866+05:30", - "type": "track", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "appId": "" - }, - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - }, - "DisplayName": "Heap.io", - "ID": "1WTbl0l5GjOQKOvfmcGwk0T49kV", - "Name": "HEAP" - }, - "Enabled": true, - "ID": "1WTcDSEOE437e4ePH10BJNELXmE", - "Name": "heap test", - "Transformations": [] - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "Send Transactional Email", - "integrations": { - "All": true - }, - "messageId": "c0c5b892-0d54-449f-b85f-ebb39ff04e67", - "originalTimestamp": "2020-01-17T13:23:20.844Z", - "properties": { - "subject": "Welcome to My App!", - "variation": "A" - }, - "receivedAt": "2020-01-16T18:53:23.804+05:30", - "request_ip": "[::1]:62312", - "sentAt": "2020-01-16T13:23:23.782Z", - "timestamp": "2020-01-16T18:53:20.866+05:30", - "type": "track", - "userId": "sampath" - } - } -] diff --git a/test/__tests__/data/heap_output.json b/test/__tests__/data/heap_output.json deleted file mode 100644 index ac836489356..00000000000 --- a/test/__tests__/data/heap_output.json +++ /dev/null @@ -1,180 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://heapanalytics.com/api/add_user_properties", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "identity": "sampath", - "properties": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "app_id": "" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://heapanalytics.com/api/track", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "identity": "sampath", - "event": "Send Transactional Email", - "properties": { - "subject": "Welcome to My App!", - "variation": "A" - }, - "app_id": "", - "timestamp": "2020-01-16T18:53:20.866+05:30" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - { - "statusCode": 400, - "error": "\"type\" is a required field and it must be a string" - }, - { - "statusCode": 400, - "error": "message type \"page\" not supported for \"heap\"" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://heapanalytics.com/api/track", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "identity": "sampath", - "event": "Send Transactional Email", - "properties": { - "subject": "Welcome to My App!", - "variation": "A" - }, - "timestamp": "2021-02-16T18:53:20.866+05:30", - "idempotency_key": "1234", - "app_id": "" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://heapanalytics.com/api/track", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "identity": "sampath", - "event": "Send Transactional Email", - "properties": { - "subject": "Welcome to My App!", - "variation": "A" - }, - "timestamp": "2020-01-16T18:53:20.866+05:30", - "idempotency_key": "1234", - "app_id": "" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://heapanalytics.com/api/track", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "identity": "sampath", - "event": "Send Transactional Email", - "properties": { - "Location.City": "Los Angeles", - "Location.State": "CA", - "hobbies[0]": "Music", - "hobbies[1]": "Running" - }, - "timestamp": "2020-01-16T18:53:20.866+05:30", - "app_id": "" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://heapanalytics.com/api/track", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "identity": "sampath", - "event": "Send Transactional Email", - "properties": { - "subject": "Welcome to My App!", - "variation": "A" - }, - "timestamp": "2020-01-16T18:53:20.866+05:30", - "app_id": "" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - } -] diff --git a/test/__tests__/data/heap_router_input.json b/test/__tests__/data/heap_router_input.json deleted file mode 100644 index 295bae4544b..00000000000 --- a/test/__tests__/data/heap_router_input.json +++ /dev/null @@ -1,193 +0,0 @@ -[ - { - "destination": { - "Config": { - "appId": "" - }, - "DestinationDefinition": { - "DisplayName": "Heap.io", - "ID": "1WTbl0l5GjOQKOvfmcGwk0T49kV", - "Name": "HEAP" - }, - "Enabled": true, - "ID": "1WTcDSEOE437e4ePH10BJNELXmE", - "Name": "heap test", - "Transformations": [] - }, - "metadata": { - "jobId": 2 - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "messageId": "fca2e71a-5d30-48e1-ba45-761c16e3820f", - "originalTimestamp": "2020-01-16T13:21:59.076Z", - "receivedAt": "2020-01-16T18:52:03.871+05:30", - "request_ip": "[::1]:62312", - "sentAt": "2020-01-16T13:22:03.85Z", - "timestamp": "2020-01-16T18:51:59.097+05:30", - "type": "identify", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "appId": "" - }, - "DestinationDefinition": { - "DisplayName": "Heap.io", - "ID": "1WTbl0l5GjOQKOvfmcGwk0T49kV", - "Name": "HEAP" - }, - "Enabled": true, - "ID": "1WTcDSEOE437e4ePH10BJNELXmE", - "Name": "heap test", - "Transformations": [] - }, - "metadata": { - "jobId": 2 - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "Send Transactional Email", - "integrations": { - "All": true - }, - "messageId": "c0c5b892-0d54-449f-b85f-ebb39ff04e67", - "originalTimestamp": "2020-01-16T13:23:20.844Z", - "properties": { - "subject": "Welcome to My App!", - "variation": "A" - }, - "receivedAt": "2020-01-16T18:53:23.804+05:30", - "request_ip": "[::1]:62312", - "sentAt": "2020-01-16T13:23:23.782Z", - "timestamp": "2020-01-16T18:53:20.866+05:30", - "type": "track", - "userId": "sampath" - } - }, - { - "destination": { - "Config": { - "appId": "" - }, - "DestinationDefinition": { - "DisplayName": "Heap.io", - "ID": "1WTbl0l5GjOQKOvfmcGwk0T49kV", - "Name": "HEAP" - }, - "Enabled": true, - "ID": "1WTcDSEOE437e4ePH10BJNELXmE", - "Name": "heap test", - "Transformations": [] - }, - "metadata": { - "jobId": 2 - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "Send Transactional Email", - "integrations": { - "All": true - }, - "messageId": "c0c5b892-0d54-449f-b85f-ebb39ff04e67", - "originalTimestamp": "2020-01-16T13:23:20.844Z", - "properties": { - "subject": "Welcome to My App!", - "variation": "A", - "idempotencyKey": "1234" - }, - "receivedAt": "2020-01-16T18:53:23.804+05:30", - "request_ip": "[::1]:62312", - "sentAt": "2020-01-16T13:23:23.782Z", - "timestamp": "2020-01-16T18:53:20.866+05:30", - "type": "track", - "userId": "sampath" - } - } -] diff --git a/test/__tests__/data/heap_router_output.json b/test/__tests__/data/heap_router_output.json deleted file mode 100644 index 06ecf988317..00000000000 --- a/test/__tests__/data/heap_router_output.json +++ /dev/null @@ -1,154 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://heapanalytics.com/api/add_user_properties", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "identity": "sampath", - "properties": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "app_id": "" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "appId": "" - }, - "DestinationDefinition": { - "DisplayName": "Heap.io", - "ID": "1WTbl0l5GjOQKOvfmcGwk0T49kV", - "Name": "HEAP" - }, - "Enabled": true, - "ID": "1WTcDSEOE437e4ePH10BJNELXmE", - "Name": "heap test", - "Transformations": [] - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://heapanalytics.com/api/track", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "identity": "sampath", - "event": "Send Transactional Email", - "properties": { - "subject": "Welcome to My App!", - "variation": "A" - }, - "app_id": "", - "timestamp": "2020-01-16T18:53:20.866+05:30" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "appId": "" - }, - "DestinationDefinition": { - "DisplayName": "Heap.io", - "ID": "1WTbl0l5GjOQKOvfmcGwk0T49kV", - "Name": "HEAP" - }, - "Enabled": true, - "ID": "1WTcDSEOE437e4ePH10BJNELXmE", - "Name": "heap test", - "Transformations": [] - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://heapanalytics.com/api/track", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "identity": "sampath", - "event": "Send Transactional Email", - "properties": { - "subject": "Welcome to My App!", - "variation": "A" - }, - "app_id": "", - "timestamp": "2020-01-16T18:53:20.866+05:30", - "idempotency_key": "1234" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "sampath" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "appId": "" - }, - "DestinationDefinition": { - "DisplayName": "Heap.io", - "ID": "1WTbl0l5GjOQKOvfmcGwk0T49kV", - "Name": "HEAP" - }, - "Enabled": true, - "ID": "1WTcDSEOE437e4ePH10BJNELXmE", - "Name": "heap test", - "Transformations": [] - } - } -] diff --git a/test/__tests__/data/hs_input.json b/test/__tests__/data/hs_input.json index 9889503dee4..0dab49824f4 100644 --- a/test/__tests__/data/hs_input.json +++ b/test/__tests__/data/hs_input.json @@ -3139,5 +3139,47 @@ }, "Enabled": true } + }, + { + "description": "[HS] (New API v3) - (newPrivateAppApi) sample track call when hubspotEvents is undefined", + "message": { + "type": "track", + "traits": {}, + "context": { + "externalId": [ + { + "id": "osvaldocostaferreira98@gmail.com", + "type": "HS-contacts", + "identifierType": "email" + } + ] + }, + "event": "Purchase", + "properties": { + "Revenue": "name1" + } + }, + "destination": { + "Config": { + "authorizationType": "newPrivateAppApi", + "hubID": "", + "apiKey": "", + "accessToken": "dummy-access-token", + "apiVersion": "newApi", + "lookupField": "lookupField", + "eventFilteringOption": "disable", + "blacklistedEvents": [ + { + "eventName": "" + } + ], + "whitelistedEvents": [ + { + "eventName": "" + } + ] + }, + "Enabled": true + } } ] diff --git a/test/__tests__/data/hs_output.json b/test/__tests__/data/hs_output.json index f26bfe8432c..72fe50ba0d3 100644 --- a/test/__tests__/data/hs_output.json +++ b/test/__tests__/data/hs_output.json @@ -716,7 +716,7 @@ }, { "statusCode": 400, - "error": "'temp event' event name not found" + "error": "Event name 'temp event' mappings are not configured in the destination" }, { "statusCode": 400, @@ -826,5 +826,18 @@ "type": "REST", "version": "1" } - ] + ], + + { + "statusCode": 400, + "error": "Event and property mappings are required for track call", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "HS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } ] diff --git a/test/__tests__/data/hs_router_rETL_input.json b/test/__tests__/data/hs_router_rETL_input.json index facb28ae82d..3e855855b48 100644 --- a/test/__tests__/data/hs_router_rETL_input.json +++ b/test/__tests__/data/hs_router_rETL_input.json @@ -216,5 +216,117 @@ "metadata": { "jobId": 3 } + }, + { + "message": { + "channel": "web", + "context": { + "mappedToDestination": true, + "externalId": [ + { + "identifierType": "email", + "id": "testhubspotdatetime@email.com", + "type": "HS-lead" + } + ], + "sources": { + "job_id": "24c5HJxHomh6YCngEOCgjS5r1KX/Syncher", + "task_id": "vw_rs_mailchimp_mocked_hg_data", + "version": "v1.8.1", + "batch_id": "f252c69d-c40d-450e-bcd2-2cf26cb62762", + "job_run_id": "c8el40l6e87v0c4hkbl0", + "task_run_id": "c8el40l6e87v0c4hkblg" + } + }, + "type": "identify", + "traits": { + "firstname": "Test Hubspot", + "anonymousId": "123451", + "country": "India", + "date_submitted": "2023-09-25T17:31:04.128251Z", + "date_created": "2023-03-30T01:02:03.05Z", + "date_closed": "2023-10-18T04:38:59.229347Z" + }, + "messageId": "50360b9c-ea8d-409c-b672-c9230f91cce5", + "originalTimestamp": "2019-10-15T09:35:31.288Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T09:03:22.563Z" + }, + "destination": { + "Config": { + "authorizationType": "newPrivateAppApi", + "accessToken": "dummy-access-token", + "hubID": "dummy-hubId", + "apiKey": "dummy-apikey", + "apiVersion": "newApi", + "lookupField": "lookupField", + "hubspotEvents": [ + { + "rsEventName": "Purchase", + "hubspotEventName": "pedummy-hubId_rs_hub_test", + "eventProperties": [ + { + "from": "Revenue", + "to": "value" + }, + { + "from": "Price", + "to": "cost" + } + ] + }, + { + "rsEventName": "Order Complete", + "hubspotEventName": "pedummy-hubId_rs_hub_chair", + "eventProperties": [ + { + "from": "firstName", + "to": "first_name" + }, + { + "from": "lastName", + "to": "last_name" + } + ] + } + ], + "eventFilteringOption": "disable", + "blacklistedEvents": [ + { + "eventName": "" + } + ], + "whitelistedEvents": [ + { + "eventName": "" + } + ] + }, + "secretConfig": {}, + "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", + "name": "Hubspot", + "enabled": true, + "workspaceId": "1TSN08muJTZwH8iCDmnnRt1pmLd", + "deleted": false, + "createdAt": "2020-12-30T08:39:32.005Z", + "updatedAt": "2021-02-03T16:22:31.374Z", + "destinationDefinition": { + "id": "1aIXqM806xAVm92nx07YwKbRrO9", + "name": "HS", + "displayName": "Hubspot", + "createdAt": "2020-04-09T09:24:31.794Z", + "updatedAt": "2021-01-11T11:03:28.103Z" + }, + "transformations": [], + "isConnectionEnabled": true, + "isProcessorEnabled": true + }, + "metadata": { + "jobId": 4 + } } ] diff --git a/test/__tests__/data/hs_router_rETL_output.json b/test/__tests__/data/hs_router_rETL_output.json index 5293a47cf9d..c20694cdf4f 100644 --- a/test/__tests__/data/hs_router_rETL_output.json +++ b/test/__tests__/data/hs_router_rETL_output.json @@ -20,6 +20,17 @@ "country": "India 1", "email": "testhubspot@email.com" } + }, + { + "properties": { + "firstname": "Test Hubspot", + "anonymousId": "123451", + "country": "India", + "email": "testhubspotdatetime@email.com", + "date_closed": 1697587200000, + "date_created": 1680134400000, + "date_submitted": 1695600000000 + } } ] }, @@ -32,6 +43,9 @@ "metadata": [ { "jobId": 3 + }, + { + "jobId": 4 } ], "batched": true, diff --git a/test/__tests__/data/impact.json b/test/__tests__/data/impact.json deleted file mode 100644 index 729d1a36cf4..00000000000 --- a/test/__tests__/data/impact.json +++ /dev/null @@ -1,1814 +0,0 @@ -[ - { - "description": "Identify Call", - "input": { - "message": { - "type": "identify", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "user123", - "channel": "web", - "context": { - "os": { - "name": "android", - "version": "1.12.3" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "traits": { - "email": "user123@email.com", - "phone": "+917836362334", - "userId": "user123" - }, - "locale": "en-US", - "device": { - "token": "token", - "id": "id", - "type": "ios" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "sku", - "to": "ItemSku" - } - ], - "enableIdentifyEvents": true, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - }, - "output": { - "body": { - "XML": {}, - "FORM": { - "AppVer": "1.1.11", - "AppName": "RudderLabs JavaScript SDK", - "DeviceOs": "ios", - "AndroidId": "id", - "EventDate": "NOW", - "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", - "AppPackage": "1.0.0", - "CampaignId": "23224", - "CustomerId": "user123", - "PropertyId": "2323", - "DeviceOsVer": "1.12.3", - "ImpactAppId": "2323", - "DeviceLocale": "en-US", - "CustomerEmail": "0c57fe03e81357df3acc1340bc9e353688e8f69e", - "CustomProfileId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "JSON": {}, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn" - }, - "version": "1", - "endpoint": "https://trkapi.impact.com/PageLoad" - } - }, - { - "description": "Identify Call when enableIdentifyEvents is disabled from config", - "input": { - "message": { - "type": "identify", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "user123", - "channel": "web", - "context": { - "os": { - "name": "android", - "version": "1.12.3" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "traits": { - "email": "user123@email.com", - "phone": "+917836362334", - "userId": "user123" - }, - "locale": "en-US", - "device": { - "token": "token", - "id": "id", - "type": "ios" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "sku", - "to": "ItemSku" - } - ], - "enableIdentifyEvents": false, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - }, - "output": { "error": "identify events are disabled from Config" } - }, - { - "description": "Account SID is empty", - "input": { - "message": { - "type": "identify", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "user123", - "channel": "web", - "context": { - "os": { - "name": "android", - "version": "1.12.3" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "traits": { - "email": "user123@email.com", - "phone": "+917836362334", - "userId": "user123" - }, - "locale": "en-US", - "device": { - "token": "token", - "id": "id", - "type": "ios" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "destination": { - "Config": { - "accountSID": "", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "sku", - "to": "ItemSku" - } - ], - "enableIdentifyEvents": true, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - }, - "output": { - "error": "accountSID : are required fields" - } - }, - { - "description": "API Key is empty", - "input": { - "message": { - "type": "identify", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "user123", - "channel": "web", - "context": { - "os": { - "name": "android", - "version": "1.12.3" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "traits": { - "email": "user123@email.com", - "phone": "+917836362334", - "userId": "user123" - }, - "locale": "en-US", - "device": { - "token": "token", - "id": "id", - "type": "ios" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "destination": { - "Config": { - "accountSID": "jskafsdhgfbjcdsxzjhfnerscd", - "apiKey": "", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "sku", - "to": "ItemSku" - } - ], - "enableIdentifyEvents": true, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - }, - "output": { - "error": "apiKey : are required fields" - } - }, - { - "description": "campaignId is empty", - "input": { - "message": { - "type": "identify", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "user123", - "channel": "web", - "context": { - "os": { - "name": "android", - "version": "1.12.3" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "traits": { - "email": "user123@email.com", - "phone": "+917836362334", - "userId": "user123" - }, - "locale": "en-US", - "device": { - "token": "token", - "id": "id", - "type": "ios" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "destination": { - "Config": { - "accountSID": "jskafsdhgfbjcdsxzjhfnerscd", - "apiKey": "hjsfbnrrcldkbnfsjknfdkfjne", - "campaignId": "", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "sku", - "to": "ItemSku" - } - ], - "enableIdentifyEvents": true, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - }, - "output": { - "error": "campaignId : are required fields" - } - }, - { - "description": "Track Call with products array to test conversion endpoint", - "input": { - "message": { - "event": "Order Completed", - "type": "track", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "Ujjwalab", - "channel": "web", - "properties": { - "orderId": "9217374917471", - "coupon": "10OFF-ROCKET", - "clickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "products": [ - { - "brand": "zara", - "category": "wearables", - "name": "Monopoly", - "price": 332, - "quantity": 1, - "sku": "G-32" - } - ] - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "locale": "en-US", - "screen": { - "density": 2 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "variant", - "to": "ItemCategory" - } - ], - "enableIdentifyEvents": false, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - }, - "output": [ - { - "body": { - "XML": {}, - "FORM": { - "AppVer": "1.1.11", - "AppName": "RudderLabs JavaScript SDK", - "ClickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "OrderId": "9217374917471", - "ItemSku1": "G-32", - "EventDate": "NOW", - "ItemName1": "Monopoly", - "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", - "AppPackage": "1.0.0", - "CampaignId": "23224", - "CustomerId": "Ujjwalab", - "ItemBrand1": "zara", - "ItemPrice1": 332, - "EventTypeId": "56446", - "ImpactAppId": "2323", - "DeviceLocale": "en-US", - "EventTypeCode": "Order Completed", - "ItemQuantity1": 1, - "OrderPromoCode": "10OFF-ROCKET", - "CustomProfileId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "JSON": {}, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn" - }, - "version": "1", - "endpoint": "https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions" - } - ] - }, - { - "description": "Track Call with products array without any custom products mapping", - "input": { - "message": { - "event": "Product Purchased", - "type": "track", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "Ujjwalab", - "channel": "web", - "properties": { - "orderId": "9217374917471", - "coupon": "10OFF-ROCKET", - "clickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "products": [ - { - "brand": "zara", - "category": "wearables", - "name": "Monopoly", - "price": 332, - "quantity": 1, - "sku": "G-32" - } - ] - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "locale": "en-US", - "screen": { - "density": 2 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": "", - "enableIdentifyEvents": false, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - }, - "output": [ - { - "body": { - "XML": {}, - "FORM": { - "AppVer": "1.1.11", - "AppName": "RudderLabs JavaScript SDK", - "ClickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "OrderId": "9217374917471", - "ItemSku1": "G-32", - "EventDate": "NOW", - "ItemName1": "Monopoly", - "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", - "AppPackage": "1.0.0", - "CampaignId": "23224", - "CustomerId": "Ujjwalab", - "ItemBrand1": "zara", - "ItemPrice1": 332, - "EventTypeId": "56446", - "ImpactAppId": "2323", - "DeviceLocale": "en-US", - "EventTypeCode": "Product Purchased", - "ItemQuantity1": 1, - "ItemCategory1": "wearables", - - "OrderPromoCode": "10OFF-ROCKET", - "CustomProfileId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "JSON": {}, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn" - }, - "version": "1", - "endpoint": "https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions" - } - ] - }, - { - "description": "Track Call with products array to test conversion endpoint with a custom products mapping", - "input": { - "message": { - "event": "Order Completed", - "type": "track", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "Ujjwalab", - "channel": "web", - "properties": { - "orderId": "9217374917471", - "coupon": "10OFF-ROCKET", - "clickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "products": [ - { - "brand": "zara", - "variant": "wearables", - "name": "Monopoly", - "price": 332, - "quantity": 1, - "sku": "G-32" - } - ] - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "locale": "en-US", - "screen": { - "density": 2 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "variant", - "to": "ItemCategory" - } - ], - "enableIdentifyEvents": false, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - }, - "output": [ - { - "body": { - "XML": {}, - "FORM": { - "AppVer": "1.1.11", - "AppName": "RudderLabs JavaScript SDK", - "ClickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "OrderId": "9217374917471", - "ItemSku1": "G-32", - "EventDate": "NOW", - "ItemName1": "Monopoly", - "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", - "AppPackage": "1.0.0", - "CampaignId": "23224", - "CustomerId": "Ujjwalab", - "ItemBrand1": "zara", - "ItemCategory1": "wearables", - "ItemPrice1": 332, - "EventTypeId": "56446", - "ImpactAppId": "2323", - "DeviceLocale": "en-US", - "EventTypeCode": "Order Completed", - "ItemQuantity1": 1, - "OrderPromoCode": "10OFF-ROCKET", - "CustomProfileId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "JSON": {}, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn" - }, - "version": "1", - "endpoint": "https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions" - } - ] - }, - { - "description": "Track Call with products array to test conversion endpoint with a custom products mapping and custom property mapping", - "input": { - "message": { - "event": "Order Completed", - "type": "track", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "Ujjwalab", - "channel": "web", - "properties": { - "orderId": "9217374917471", - "coupon": "10OFF-ROCKET", - "clickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "profit": 434, - "products": [ - { - "brand": "zara", - "variant": "wearables", - "name": "Monopoly", - "price": 332, - "quantity": 1, - "sku": "G-32" - } - ] - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "locale": "en-US", - "screen": { - "density": 2 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "variant", - "to": "ItemCategory" - } - ], - "enableIdentifyEvents": false, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - }, - "output": [ - { - "body": { - "XML": {}, - "FORM": { - "AppVer": "1.1.11", - "AppName": "RudderLabs JavaScript SDK", - "ClickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "Money1": 434, - "OrderId": "9217374917471", - "ItemSku1": "G-32", - "EventDate": "NOW", - "ItemName1": "Monopoly", - "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", - "AppPackage": "1.0.0", - "CampaignId": "23224", - "CustomerId": "Ujjwalab", - "ItemBrand1": "zara", - "ItemCategory1": "wearables", - "ItemPrice1": 332, - "EventTypeId": "56446", - "ImpactAppId": "2323", - "DeviceLocale": "en-US", - "EventTypeCode": "Order Completed", - "ItemQuantity1": 1, - "OrderPromoCode": "10OFF-ROCKET", - "CustomProfileId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "JSON": {}, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn" - }, - "version": "1", - "endpoint": "https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions" - } - ] - }, - { - "description": "Track Call with products array to test conversion endpoint with OS as android", - "input": { - "message": { - "event": "Order Completed", - "type": "track", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "Ujjwalab", - "channel": "web", - "properties": { - "orderId": "9217374917471", - "coupon": "10OFF-ROCKET", - "clickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "profit": 434, - "products": [ - { - "brand": "zara", - "variant": "wearables", - "name": "Monopoly", - "price": 332, - "quantity": 1, - "sku": "G-32" - } - ] - }, - "context": { - "os": { - "name": "Android", - "version": "9" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "device": { - "id": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "advertisingId": "435o4GRlm" - }, - "locale": "en-US", - "screen": { - "density": 2 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "variant", - "to": "ItemCategory" - } - ], - "enableIdentifyEvents": false, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - }, - "output": [ - { - "body": { - "XML": {}, - "FORM": { - "AppVer": "1.1.11", - "Money1": 434, - "AppName": "RudderLabs JavaScript SDK", - "ClickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "GoogAId": "435o4GRlm", - "OrderId": "9217374917471", - "DeviceOs": "Android", - "ItemSku1": "G-32", - "AndroidId": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "EventDate": "NOW", - "ItemName1": "Monopoly", - "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", - "AppPackage": "1.0.0", - "CampaignId": "23224", - "CustomerId": "Ujjwalab", - "ItemBrand1": "zara", - "ItemPrice1": 332, - "DeviceOsVer": "9", - "EventTypeId": "56446", - "ImpactAppId": "2323", - "DeviceLocale": "en-US", - "EventTypeCode": "Order Completed", - "ItemCategory1": "wearables", - "ItemQuantity1": 1, - "OrderPromoCode": "10OFF-ROCKET", - "CustomProfileId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "JSON": {}, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn" - }, - "version": "1", - "endpoint": "https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions" - } - ] - }, - { - "description": "Track Call with products array to test conversion endpoint with OS as ios", - "input": { - "message": { - "event": "Order Completed", - "type": "track", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "Ujjwalab", - "channel": "web", - "properties": { - "orderId": "9217374917471", - "coupon": "10OFF-ROCKET", - "clickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "profit": 434, - "products": [ - { - "brand": "zara", - "variant": "wearables", - "name": "Monopoly", - "price": 332, - "quantity": 1, - "sku": "G-32" - } - ] - }, - "context": { - "os": { - "name": "iOS", - "version": "15.2" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "device": { - "id": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "advertisingId": "435o4GRlm" - }, - "locale": "en-US", - "screen": { - "density": 2 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "variant", - "to": "ItemCategory" - } - ], - "enableIdentifyEvents": false, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - }, - "output": [ - { - "body": { - "XML": {}, - "FORM": { - "AppVer": "1.1.11", - "AppleIfa": "435o4GRlm", - "AppleIfv": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "Money1": 434, - "AppName": "RudderLabs JavaScript SDK", - "ClickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "OrderId": "9217374917471", - "DeviceOs": "iOS", - "ItemSku1": "G-32", - "EventDate": "NOW", - "ItemName1": "Monopoly", - "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", - "AppPackage": "1.0.0", - "CampaignId": "23224", - "CustomerId": "Ujjwalab", - "ItemBrand1": "zara", - "ItemPrice1": 332, - "DeviceOsVer": "15.2", - "EventTypeId": "56446", - "ImpactAppId": "2323", - "DeviceLocale": "en-US", - "EventTypeCode": "Order Completed", - "ItemCategory1": "wearables", - "ItemQuantity1": 1, - "OrderPromoCode": "10OFF-ROCKET", - "CustomProfileId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "JSON": {}, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn" - }, - "version": "1", - "endpoint": "https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions" - } - ] - }, - { - "description": "Page Call", - "input": { - "message": { - "type": "page", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "user123", - "channel": "web", - "context": { - "os": { - "name": "android", - "version": "1.12.3" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "traits": { - "email": "user123@email.com", - "phone": "+917836362334", - "userId": "user123" - }, - "locale": "en-US", - "device": { - "token": "token", - "id": "id", - "type": "ios" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "sku", - "to": "ItemSku" - } - ], - "enableIdentifyEvents": false, - "enablePageEvents": true, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - }, - "output": { - "body": { - "XML": {}, - "FORM": { - "AppVer": "1.1.11", - "AppName": "RudderLabs JavaScript SDK", - "DeviceOs": "ios", - "AndroidId": "id", - "EventDate": "NOW", - "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", - "AppPackage": "1.0.0", - "CampaignId": "23224", - "CustomerId": "user123", - "PropertyId": "2323", - "DeviceOsVer": "1.12.3", - "ImpactAppId": "2323", - "DeviceLocale": "en-US", - "CustomerEmail": "0c57fe03e81357df3acc1340bc9e353688e8f69e", - "CustomProfileId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "JSON": {}, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn" - }, - "version": "1", - "endpoint": "https://trkapi.impact.com/PageLoad" - } - }, - { - "description": "Screen Call", - "input": { - "message": { - "type": "screen", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "user123", - "channel": "web", - "context": { - "os": { - "name": "android", - "version": "1.12.3" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "traits": { - "email": "user123@email.com", - "phone": "+917836362334", - "userId": "user123" - }, - "locale": "en-US", - "device": { - "token": "token", - "id": "id", - "type": "ios" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "sku", - "to": "ItemSku" - } - ], - "enableIdentifyEvents": false, - "enablePageEvents": false, - "enableScreenEvents": true, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - }, - "output": { - "body": { - "XML": {}, - "FORM": { - "AppVer": "1.1.11", - "AppName": "RudderLabs JavaScript SDK", - "DeviceOs": "ios", - "AndroidId": "id", - "EventDate": "NOW", - "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", - "AppPackage": "1.0.0", - "CampaignId": "23224", - "CustomerId": "user123", - "PropertyId": "2323", - "DeviceOsVer": "1.12.3", - "ImpactAppId": "2323", - "DeviceLocale": "en-US", - "CustomerEmail": "0c57fe03e81357df3acc1340bc9e353688e8f69e", - "CustomProfileId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "JSON": {}, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn" - }, - "version": "1", - "endpoint": "https://trkapi.impact.com/PageLoad" - } - }, - { - "description": "Unsupported message type", - "input": { - "message": { - "event": "Order Completed", - "type": "group", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "Ujjwalab", - "channel": "web", - "properties": { - "orderId": "9217374917471", - "coupon": "10OFF-ROCKET", - "clickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "products": [ - { - "brand": "zara", - "category": "wearables", - "name": "Monopoly", - "price": 332, - "quantity": 1, - "sku": "G-32" - } - ] - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "locale": "en-US", - "screen": { - "density": 2 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "variant", - "to": "ItemCategory" - } - ], - "enableIdentifyEvents": false, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - }, - "output": { - "error": "Event type group is not supported" - } - }, - { - "description": "Event type is empty", - "input": { - "message": { - "event": "Order Completed", - "type": "", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "Ujjwalab", - "channel": "web", - "properties": { - "orderId": "9217374917471", - "coupon": "10OFF-ROCKET", - "clickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "products": [ - { - "brand": "zara", - "category": "wearables", - "name": "Monopoly", - "price": 332, - "quantity": 1, - "sku": "G-32" - } - ] - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "locale": "en-US", - "screen": { - "density": 2 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "variant", - "to": "ItemCategory" - } - ], - "enableIdentifyEvents": false, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - }, - "output": { - "error": "Event type is required" - } - }, - { - "description": "Track Call with products array to test conversion endpoint", - "input": { - "message": { - "event": "Order Completed", - "type": "track", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "Ujjwalab", - "channel": "web", - "properties": { - "orderId": "9217374917471", - "coupon": "10OFF-ROCKET", - "clickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "brand": "zara", - "category": "wearables", - "name": "Monopoly", - "price": 332, - "quantity": 1, - "sku": "G-32" - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "locale": "en-US", - "screen": { - "density": 2 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "variant", - "to": "ItemCategory" - } - ], - "enableIdentifyEvents": false, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - }, - "output": [ - { - "body": { - "XML": {}, - "FORM": { - "AppVer": "1.1.11", - "AppName": "RudderLabs JavaScript SDK", - "ClickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "OrderId": "9217374917471", - "ItemSku1": "G-32", - "EventDate": "NOW", - "ItemName1": "Monopoly", - "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", - "AppPackage": "1.0.0", - "CampaignId": "23224", - "CustomerId": "Ujjwalab", - "ItemBrand1": "zara", - "ItemPrice1": 332, - "EventTypeId": "56446", - "ImpactAppId": "2323", - "DeviceLocale": "en-US", - "EventTypeCode": "Order Completed", - "ItemCategory1": "wearables", - "ItemQuantity1": 1, - "ItemPromoCode1": "10OFF-ROCKET", - "OrderPromoCode": "10OFF-ROCKET", - "CustomProfileId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "JSON": {}, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn" - }, - "version": "1", - "endpoint": "https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions" - } - ] - }, - { - "description": "Track Call with products array to test conversion endpoint with event mapping", - "input": { - "message": { - "event": "Product Ordered", - "type": "track", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "Ujjwalab", - "channel": "web", - "properties": { - "orderId": "9217374917471", - "coupon": "10OFF-ROCKET", - "clickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "profit": 434, - "products": [ - { - "brand": "zara", - "variant": "wearables", - "name": "Monopoly", - "price": 332, - "quantity": 1, - "sku": "G-32" - } - ] - }, - "context": { - "os": { - "name": "iOS", - "version": "15.2" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "device": { - "id": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "advertisingId": "435o4GRlm" - }, - "locale": "en-US", - "screen": { - "density": 2 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "variant", - "to": "ItemCategory" - } - ], - "enableIdentifyEvents": false, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Ordered" }], - "installEventNames": [{ "eventName": "Product Ordered" }] - } - } - }, - "output": [ - { - "body": { - "XML": {}, - "FORM": { - "AppVer": "1.1.11", - "AppleIfa": "435o4GRlm", - "AppleIfv": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "Money1": 434, - "AppName": "RudderLabs JavaScript SDK", - "OrderId": "9217374917471", - "DeviceOs": "iOS", - "ItemSku1": "G-32", - "EventDate": "NOW", - "ItemName1": "Monopoly", - "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", - "AppPackage": "1.0.0", - "CampaignId": "23224", - "CustomerId": "Ujjwalab", - "ItemBrand1": "zara", - "ItemPrice1": 332, - "DeviceOsVer": "15.2", - "EventTypeId": "56446", - "ImpactAppId": "2323", - "DeviceLocale": "en-US", - "EventTypeCode": "Product Ordered", - "ItemCategory1": "wearables", - "ItemQuantity1": 1, - "OrderPromoCode": "10OFF-ROCKET", - "CustomProfileId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "JSON": {}, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn" - }, - "version": "1", - "endpoint": "https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions" - }, - { - "body": { - "XML": {}, - "FORM": { - "AppVer": "1.1.11", - "AppleIfa": "435o4GRlm", - "AppleIfv": "78c53c15-32a1-4b65-adac-bec2d7bb8fab", - "Money1": 434, - "AppName": "RudderLabs JavaScript SDK", - "ClickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "OrderId": "9217374917471", - "DeviceOs": "iOS", - "ItemSku1": "G-32", - "EventDate": "NOW", - "ItemName1": "Monopoly", - "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", - "AppPackage": "1.0.0", - "CampaignId": "23224", - "CustomerId": "Ujjwalab", - "ItemBrand1": "zara", - "ItemPrice1": 332, - "DeviceOsVer": "15.2", - "EventTypeId": "56446", - "ImpactAppId": "2323", - "DeviceLocale": "en-US", - "EventTypeCode": "Product Ordered", - "ItemCategory1": "wearables", - "ItemQuantity1": 1, - "OrderPromoCode": "10OFF-ROCKET", - "CustomProfileId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "JSON": {}, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn" - }, - "version": "1", - "endpoint": "https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions" - } - ] - } -] diff --git a/test/__tests__/data/impact_router.json b/test/__tests__/data/impact_router.json deleted file mode 100644 index 439d54d1fd5..00000000000 --- a/test/__tests__/data/impact_router.json +++ /dev/null @@ -1,305 +0,0 @@ -[ - { - "input": [ - { - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "sku", - "to": "ItemSku" - } - ], - "enableIdentifyEvents": true, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - }, - "metadata": { - "jobId": 1 - }, - "message": { - "type": "identify", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "user123", - "channel": "web", - "context": { - "os": { - "name": "android", - "version": "1.12.3" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "traits": { - "email": "user123@email.com", - "phone": "+917836362334", - "userId": "user123" - }, - "locale": "en-US", - "device": { - "token": "token", - "id": "id", - "type": "ios" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - } - }, - { - "message": { - "event": "Order Completed", - "type": "track", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "Ujjwalab", - "channel": "web", - "properties": { - "orderId": "9217374917471", - "coupon": "10OFF-ROCKET", - "clickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "products": [ - { - "brand": "zara", - "category": "wearables", - "name": "Monopoly", - "price": 332, - "quantity": 1, - "sku": "G-32" - } - ] - }, - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "locale": "en-US", - "screen": { - "density": 2 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "originalTimestamp": "NOW" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "variant", - "to": "ItemCategory" - } - ], - "enableIdentifyEvents": false, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - } - ], - "output": [ - { - "batchedRequest": { - "body": { - "XML": {}, - "FORM": { - "AppVer": "1.1.11", - "AppName": "RudderLabs JavaScript SDK", - "DeviceOs": "ios", - "AndroidId": "id", - "EventDate": "NOW", - "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", - "AppPackage": "1.0.0", - "CampaignId": "23224", - "CustomerId": "user123", - "PropertyId": "2323", - "DeviceOsVer": "1.12.3", - "ImpactAppId": "2323", - "DeviceLocale": "en-US", - "CustomerEmail": "0c57fe03e81357df3acc1340bc9e353688e8f69e", - "CustomProfileId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "JSON": {}, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn" - }, - "version": "1", - "endpoint": "https://trkapi.impact.com/PageLoad" - }, - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "sku", - "to": "ItemSku" - } - ], - "enableIdentifyEvents": true, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - }, - { - "batchedRequest": [ - { - "body": { - "XML": {}, - "FORM": { - "AppVer": "1.1.11", - "AppName": "RudderLabs JavaScript SDK", - "ClickId": "wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80", - "OrderId": "9217374917471", - "ItemSku1": "G-32", - "EventDate": "NOW", - "ItemName1": "Monopoly", - "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", - "AppPackage": "1.0.0", - "CampaignId": "23224", - "CustomerId": "Ujjwalab", - "ItemBrand1": "zara", - "ItemPrice1": 332, - "EventTypeId": "56446", - "ImpactAppId": "2323", - "DeviceLocale": "en-US", - "EventTypeCode": "Order Completed", - "ItemQuantity1": 1, - "OrderPromoCode": "10OFF-ROCKET", - "CustomProfileId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "JSON": {}, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/x-www-form-urlencoded", - "Authorization": "Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn" - }, - "version": "1", - "endpoint": "https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions" - } - ], - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "accountSID": "dfsgertrtff3erfc34rfwf", - "apiKey": "fghsdfgegvcergfvfdfsag", - "campaignId": "23224", - "impactAppId": "2323", - "eventTypeId": "56446", - "enableEmailHashing": true, - "rudderToImpactProperty": [ - { - "from": "properties.profit", - "to": "Money1" - } - ], - "productsMapping": [ - { - "from": "variant", - "to": "ItemCategory" - } - ], - "enableIdentifyEvents": false, - "enablePageEvents": false, - "enableScreenEvents": false, - "actionEventNames": [{ "eventName": "Product Purchased" }], - "installEventNames": [{ "eventName": "App Installed" }] - } - } - } - ] - } -] diff --git a/test/__tests__/data/indicative_input.json b/test/__tests__/data/indicative_input.json deleted file mode 100644 index c502205350f..00000000000 --- a/test/__tests__/data/indicative_input.json +++ /dev/null @@ -1,1592 +0,0 @@ -[ - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "traits": { - "address": { - "city": "Dhaka", - "country": "Bangladesh" - }, - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "AM": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "versionSessionCount": 2, - "win_amount": 0 - }, - "userId": "test_user_id", - "timestamp": "2019-09-01T15:46:51.693Z", - "type": "track" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "userId": "123456", - "type": "identify", - "traits": { - "anonymousId": "anon_id", - "email": "sayan@gmail.com", - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - } - }, - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "anonymousId": "123456", - "email": "sayan@gmail.com", - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - }, - "ip": "0.0.0.0", - "age": 26 - }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "userId": "123456", - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { "email": "sayan@gmail.com", "anonymousId": "12345" }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } - }, - "request_ip": "1.1.1.1", - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com" - }, - "integrations": { "All": true }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { "email": "sayan@gmail.com", "anonymousId": "12345" }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } - }, - "request_ip": "1.1.1.1", - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "name": "ApplicationLoaded", - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com" - }, - "integrations": { "All": true }, - "sentAt": "2019-10-14T11:15:53.296Z" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { "email": "sayan@gmail.com", "anonymousId": "12345" }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } - }, - "request_ip": "1.1.1.1", - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com" - }, - "integrations": { "All": true }, - "sentAt": "2019-10-14T11:15:53.296Z" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { "email": "sayan@gmail.com", "anonymousId": "12345" }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } - }, - "request_ip": "1.1.1.1", - "type": "screen", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com" - }, - "integrations": { "All": true }, - "name": "Home", - "sentAt": "2019-10-14T11:15:53.296Z" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "traits": { - "address": { - "city": "Dhaka", - "country": "Bangladesh" - }, - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "AM": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "versionSessionCount": 2, - "win_amount": 0 - }, - "userId": "test_user_id", - "timestamp": "2019-09-01T15:46:51.693Z", - "originalTimestamp": "2019-09-01T15:46:51.693Z", - "type": "track" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstname": "Mickey" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "79313729-7fe5-4204-963a-dc46f4205e4e", - "originalTimestamp": "2020-01-24T06:29:02.366Z", - "previousId": "test_previous_id", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53711", - "sentAt": "2020-01-24T06:29:02.366Z", - "timestamp": "2020-01-24T11:59:02.403+05:30", - "type": "alias", - "userId": "test_new_user_id" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstname": "Mickey" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "79313729-7fe5-4204-963a-dc46f4205e4e", - "originalTimestamp": "2020-01-24T06:29:02.366Z", - "previousId": "test_previous_id", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53711", - "sentAt": "2020-01-24T06:29:02.366Z", - "timestamp": "2020-01-24T11:59:02.403+05:30", - "userId": "test_new_user_id" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "userId": "123456", - "type": "group", - "traits": { - "anonymousId": "123456", - "email": "sayan@gmail.com", - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - } - }, - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "test_anon_id", - "type": "identify", - "traits": { - "anonymousId": "test_anon_id", - "email": "sayan@gmail.com", - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - } - }, - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "traits": { - "address": { - "city": "Dhaka", - "country": "Bangladesh" - }, - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "AM": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "searchResponse": { - "hits": [ - { - "Vrm": "026067", - "Make": "AUDI", - "Year": 2010, - "DName": "PISCA PROFESSIONAL INDUSTRIAL SOLUTION Consulting & Acquisition GmbH", - "Model": "A5", - "Price": 13990, - "Mileage": 163000, - "DealerId": "1f338e5b-740f-6a38-bee1-ecff97acda69", - "Derivative": "A5 Cabrio 1.8 TFSI Cabrio" - }, - { - "Vrm": "4527", - "Make": "AUDI", - "Year": 2009, - "DName": "Stephan Walters - Autohaus Walters", - "Model": "A5", - "Price": 14450, - "Mileage": 99990, - "DealerId": "68c7b5ae-8cf0-6595-9fd2-8644b9682838", - "Derivative": "A5 Cabrio 40 TFSI S tronic S line Cabrio" - }, - { - "Vrm": "10007", - "Make": "AUDI", - "Year": 2017, - "DName": "ps kfz-vertrieb GmbH", - "Model": "A5", - "Price": 14580, - "Mileage": 151500, - "DealerId": "a107e9a8-ac3c-6790-bb84-052dd5eed5e8", - "Derivative": "A5 Sportback 2.0 TDI ultra S tronic Coupe" - }, - { - "Vrm": "031983", - "Make": "AUDI", - "Year": 2012, - "DName": "Hüseyin Zan Fahrzeughandel \"Autopark Grendelmatt\"", - "Model": "A5", - "Price": 10980, - "Mileage": 197335, - "DealerId": "8a574713-2fbe-6f0c-b1a8-39ba7ee683fc", - "Derivative": "A5 2.0 TDI Sportback DPF multitronic Coupe" - }, - { - "Vrm": "042012", - "Make": "AUDI", - "Year": 2015, - "DName": "Hüseyin Zan Fahrzeughandel \"Autopark Grendelmatt\"", - "Model": "A5", - "Price": 15980, - "Mileage": 144205, - "DealerId": "8a574713-2fbe-6f0c-b1a8-39ba7ee683fc", - "Derivative": "A5 Coupe 35 TDI S tronic S line Coupe" - }, - { - "Vrm": "002743", - "Make": "AUDI", - "Year": 2010, - "DName": "Auto Mayer e.K.Inh. Skelcim Imeri", - "Model": "A5", - "Price": 13980, - "Mileage": 121015, - "DealerId": "972258cb-132f-62a9-bd31-e02f9f70fa7b", - "Derivative": "A5 Cabrio 2.0 TDI DPF Cabrio" - }, - { - "Vrm": "205536_3895", - "Make": "AUDI", - "Year": 2011, - "DName": "Autohaus Löbau GmbH", - "Model": "A5", - "Price": 12790, - "Mileage": 89236, - "DealerId": "9e697219-293e-63a0-884a-2d03f77bbbef", - "Derivative": "A5 2.0 TDI Sportback DPF Coupe" - }, - { - "Vrm": "116265", - "Make": "AUDI", - "Year": 2016, - "DName": "Elspass Autoland GmbH & Co. KG", - "Model": "A1", - "Price": 14690, - "Mileage": 42800, - "DealerId": "00c1bf3f-b19d-6198-a509-c7f2ff73c29a", - "Derivative": "A1 1.0 TFSI ultra Limousine" - }, - { - "Vrm": "010159", - "Make": "AUDI", - "Year": 2013, - "DName": "Hermann Meyer GmbH & Co. KG", - "Model": "A1", - "Price": 9950, - "Mileage": 93996, - "DealerId": "35d4fe7e-81a0-6e99-a575-6f62bffb8900", - "Derivative": "A1 1.4 TFSI Ambition Limousine" - }, - { - "Vrm": "010178", - "Make": "AUDI", - "Year": 2016, - "DName": "Hermann Meyer GmbH & Co. KG", - "Model": "A1", - "Price": 12950, - "Mileage": 69454, - "DealerId": "35d4fe7e-81a0-6e99-a575-6f62bffb8900", - "Derivative": "A1 1.4 TFSI Sportback S tronic Attraction Limousine" - } - ], - "page": 0, - "merge": { - "nbHitsMax": 1000, - "nbHitslimit": 1000, - "nbSearchers": 2, - "nbHitsProcessed": 10, - "personalization": { - "impact": 100, - "enabled": true, - "profile": { - "time": 0, - "facets": {}, - "taskID": 0 - }, - "percentile": 0, - "nbPersoScanned": 0, - "nbPersoSkipped": 0, - "nbPersoReranked": 0, - "nbPersoReturned": 0, - "nbPersoSelected": 0, - "nbRelevanceBuckets": 8 - }, - "lastHitToDisplay": 10, - "nbHitsNumberingEnd": 10 - }, - "nbHits": 13, - "nbPages": 2, - "queryID": "c5a176f8493236fcbfe69c3298d41659", - "indexUsed": "Germany_prod_stock_Finance_0", - "serverUsed": "d85-de-1.algolia.net", - "hitsPerPage": 10, - "parsedQuery": "audi a5", - "timeoutHits": false, - "appliedRules": [ - { - "objectID": "1539345377254" - }, - { - "objectID": "1548767806494" - } - ], - "facets_stats": { - "Doors": { - "avg": 3, - "max": 5, - "min": 2, - "sum": 48 - }, - "Price": { - "avg": 13210, - "max": 15980, - "min": 9950, - "sum": 171730 - }, - "VrmYear": { - "avg": 2013, - "max": 2017, - "min": 2009, - "sum": 26171 - } - }, - "timeoutCounts": false - } - }, - "userId": "test_user_id", - "timestamp": "2019-09-01T15:46:51.693Z", - "type": "track" - } - }, - { - "destination": { - "ID": "1afmecIpsJm7D72aRTksxyODrwR", - "Name": "Segment", - "DestinationDefinition": { - "ID": "1afjjahf0X5lSyNze7Xh7aqJs11", - "Name": "SEGMENT", - "DisplayName": "Segment", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "writeKey": "abcdefghijklmnopqrstuvwxyz" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "testmp@email.com", - "firstname": "Test Transformer" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "event": "JuhuSearchResults", - "integrations": { - "All": true - }, - "messageId": "584fde02-901a-4964-a4a0-4078b999d5b2", - "originalTimestamp": "2020-04-17T14:55:31.372Z", - "traits": { - "searchResponse": { - "hits": [ - { - "Vrm": "026067", - "Make": "AUDI", - "Year": 2010, - "DName": "PISCA PROFESSIONAL INDUSTRIAL SOLUTION Consulting & Acquisition GmbH", - "Model": "A5", - "Price": 13990, - "Mileage": 163000, - "DealerId": "1f338e5b-740f-6a38-bee1-ecff97acda69", - "Derivative": "A5 Cabrio 1.8 TFSI Cabrio" - }, - { - "Vrm": "4527", - "Make": "AUDI", - "Year": 2009, - "DName": "Stephan Walters - Autohaus Walters", - "Model": "A5", - "Price": 14450, - "Mileage": 99990, - "DealerId": "68c7b5ae-8cf0-6595-9fd2-8644b9682838", - "Derivative": "A5 Cabrio 40 TFSI S tronic S line Cabrio" - }, - { - "Vrm": "10007", - "Make": "AUDI", - "Year": 2017, - "DName": "ps kfz-vertrieb GmbH", - "Model": "A5", - "Price": 14580, - "Mileage": 151500, - "DealerId": "a107e9a8-ac3c-6790-bb84-052dd5eed5e8", - "Derivative": "A5 Sportback 2.0 TDI ultra S tronic Coupe" - }, - { - "Vrm": "031983", - "Make": "AUDI", - "Year": 2012, - "DName": "Hüseyin Zan Fahrzeughandel \"Autopark Grendelmatt\"", - "Model": "A5", - "Price": 10980, - "Mileage": 197335, - "DealerId": "8a574713-2fbe-6f0c-b1a8-39ba7ee683fc", - "Derivative": "A5 2.0 TDI Sportback DPF multitronic Coupe" - }, - { - "Vrm": "042012", - "Make": "AUDI", - "Year": 2015, - "DName": "Hüseyin Zan Fahrzeughandel \"Autopark Grendelmatt\"", - "Model": "A5", - "Price": 15980, - "Mileage": 144205, - "DealerId": "8a574713-2fbe-6f0c-b1a8-39ba7ee683fc", - "Derivative": "A5 Coupe 35 TDI S tronic S line Coupe" - }, - { - "Vrm": "002743", - "Make": "AUDI", - "Year": 2010, - "DName": "Auto Mayer e.K.Inh. Skelcim Imeri", - "Model": "A5", - "Price": 13980, - "Mileage": 121015, - "DealerId": "972258cb-132f-62a9-bd31-e02f9f70fa7b", - "Derivative": "A5 Cabrio 2.0 TDI DPF Cabrio" - }, - { - "Vrm": "205536_3895", - "Make": "AUDI", - "Year": 2011, - "DName": "Autohaus Löbau GmbH", - "Model": "A5", - "Price": 12790, - "Mileage": 89236, - "DealerId": "9e697219-293e-63a0-884a-2d03f77bbbef", - "Derivative": "A5 2.0 TDI Sportback DPF Coupe" - }, - { - "Vrm": "116265", - "Make": "AUDI", - "Year": 2016, - "DName": "Elspass Autoland GmbH & Co. KG", - "Model": "A1", - "Price": 14690, - "Mileage": 42800, - "DealerId": "00c1bf3f-b19d-6198-a509-c7f2ff73c29a", - "Derivative": "A1 1.0 TFSI ultra Limousine" - }, - { - "Vrm": "010159", - "Make": "AUDI", - "Year": 2013, - "DName": "Hermann Meyer GmbH & Co. KG", - "Model": "A1", - "Price": 9950, - "Mileage": 93996, - "DealerId": "35d4fe7e-81a0-6e99-a575-6f62bffb8900", - "Derivative": "A1 1.4 TFSI Ambition Limousine" - }, - { - "Vrm": "010178", - "Make": "AUDI", - "Year": 2016, - "DName": "Hermann Meyer GmbH & Co. KG", - "Model": "A1", - "Price": 12950, - "Mileage": 69454, - "DealerId": "35d4fe7e-81a0-6e99-a575-6f62bffb8900", - "Derivative": "A1 1.4 TFSI Sportback S tronic Attraction Limousine" - } - ], - "page": 0, - "merge": { - "nbHitsMax": 1000, - "nbHitslimit": 1000, - "nbSearchers": 2, - "nbHitsProcessed": 10, - "personalization": { - "impact": 100, - "enabled": true, - "profile": { - "time": 0, - "facets": {}, - "taskID": 0 - }, - "percentile": 0, - "nbPersoScanned": 0, - "nbPersoSkipped": 0, - "nbPersoReranked": 0, - "nbPersoReturned": 0, - "nbPersoSelected": 0, - "nbRelevanceBuckets": 8 - }, - "lastHitToDisplay": 10, - "nbHitsNumberingEnd": 10 - }, - "nbHits": 13, - "nbPages": 2, - "queryID": "c5a176f8493236fcbfe69c3298d41659", - "indexUsed": "Germany_prod_stock_Finance_0", - "serverUsed": "d85-de-1.algolia.net", - "hitsPerPage": 10, - "parsedQuery": "audi a5", - "timeoutHits": false, - "appliedRules": [ - { - "objectID": "1539345377254" - }, - { - "objectID": "1548767806494" - } - ], - "facets_stats": { - "Doors": { - "avg": 3, - "max": 5, - "min": 2, - "sum": 48 - }, - "Price": { - "avg": 13210, - "max": 15980, - "min": 9950, - "sum": 171730 - }, - "VrmYear": { - "avg": 2013, - "max": 2017, - "min": 2009, - "sum": 26171 - } - }, - "timeoutCounts": false - } - }, - "receivedAt": "2020-04-17T20:25:31.401+05:30", - "request_ip": "[::1]:57365", - "sentAt": "2020-04-17T14:55:31.372Z", - "timestamp": "2020-04-17T20:25:31.401+05:30", - "name": "test page", - "type": "identify", - "userId": "user12345" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { "email": "sayan@gmail.com", "anonymousId": "12345" }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "abc", - "title": "Test Page", - "url": "http://localhost/tests/html/index4.html" - } - }, - "request_ip": "1.1.1.1", - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com" - }, - "integrations": { "All": true }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { "email": "sayan@gmail.com", "anonymousId": "12345" }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "abc", - "title": "Test Page", - "url": "http://localhost/tests/html/index4.html" - } - }, - "request_ip": "1.1.1.1", - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "integrations": { "All": true }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "traits": { - "address": { - "city": "Dhaka", - "country": "Bangladesh" - }, - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "abc", - "title": "Test Page", - "url": "http://localhost/tests/html/index4.html" - } - }, - "event": "spin_result", - "integrations": { - "AM": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "versionSessionCount": 2, - "win_amount": 0 - }, - "userId": "test_user_id", - "timestamp": "2019-09-01T15:46:51.693Z", - "type": "track" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "traits": { - "address": { - "city": "Dhaka", - "country": "Bangladesh" - }, - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "abc", - "title": "Test Page", - "url": "http://localhost/tests/html/index4.html" - } - }, - "event": "spin_result", - "integrations": { - "AM": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "searchResponse": { - "hits": [ - { - "Vrm": "026067", - "Make": "AUDI", - "Year": 2010, - "DName": "PISCA PROFESSIONAL INDUSTRIAL SOLUTION Consulting & Acquisition GmbH", - "Model": "A5", - "Price": 13990, - "Mileage": 163000, - "DealerId": "1f338e5b-740f-6a38-bee1-ecff97acda69", - "Derivative": "A5 Cabrio 1.8 TFSI Cabrio" - }, - { - "Vrm": "4527", - "Make": "AUDI", - "Year": 2009, - "DName": "Stephan Walters - Autohaus Walters", - "Model": "A5", - "Price": 14450, - "Mileage": 99990, - "DealerId": "68c7b5ae-8cf0-6595-9fd2-8644b9682838", - "Derivative": "A5 Cabrio 40 TFSI S tronic S line Cabrio" - }, - { - "Vrm": "10007", - "Make": "AUDI", - "Year": 2017, - "DName": "ps kfz-vertrieb GmbH", - "Model": "A5", - "Price": 14580, - "Mileage": 151500, - "DealerId": "a107e9a8-ac3c-6790-bb84-052dd5eed5e8", - "Derivative": "A5 Sportback 2.0 TDI ultra S tronic Coupe" - }, - { - "Vrm": "031983", - "Make": "AUDI", - "Year": 2012, - "DName": "Hüseyin Zan Fahrzeughandel \"Autopark Grendelmatt\"", - "Model": "A5", - "Price": 10980, - "Mileage": 197335, - "DealerId": "8a574713-2fbe-6f0c-b1a8-39ba7ee683fc", - "Derivative": "A5 2.0 TDI Sportback DPF multitronic Coupe" - }, - { - "Vrm": "042012", - "Make": "AUDI", - "Year": 2015, - "DName": "Hüseyin Zan Fahrzeughandel \"Autopark Grendelmatt\"", - "Model": "A5", - "Price": 15980, - "Mileage": 144205, - "DealerId": "8a574713-2fbe-6f0c-b1a8-39ba7ee683fc", - "Derivative": "A5 Coupe 35 TDI S tronic S line Coupe" - }, - { - "Vrm": "002743", - "Make": "AUDI", - "Year": 2010, - "DName": "Auto Mayer e.K.Inh. Skelcim Imeri", - "Model": "A5", - "Price": 13980, - "Mileage": 121015, - "DealerId": "972258cb-132f-62a9-bd31-e02f9f70fa7b", - "Derivative": "A5 Cabrio 2.0 TDI DPF Cabrio" - }, - { - "Vrm": "205536_3895", - "Make": "AUDI", - "Year": 2011, - "DName": "Autohaus Löbau GmbH", - "Model": "A5", - "Price": 12790, - "Mileage": 89236, - "DealerId": "9e697219-293e-63a0-884a-2d03f77bbbef", - "Derivative": "A5 2.0 TDI Sportback DPF Coupe" - }, - { - "Vrm": "116265", - "Make": "AUDI", - "Year": 2016, - "DName": "Elspass Autoland GmbH & Co. KG", - "Model": "A1", - "Price": 14690, - "Mileage": 42800, - "DealerId": "00c1bf3f-b19d-6198-a509-c7f2ff73c29a", - "Derivative": "A1 1.0 TFSI ultra Limousine" - }, - { - "Vrm": "010159", - "Make": "AUDI", - "Year": 2013, - "DName": "Hermann Meyer GmbH & Co. KG", - "Model": "A1", - "Price": 9950, - "Mileage": 93996, - "DealerId": "35d4fe7e-81a0-6e99-a575-6f62bffb8900", - "Derivative": "A1 1.4 TFSI Ambition Limousine" - }, - { - "Vrm": "010178", - "Make": "AUDI", - "Year": 2016, - "DName": "Hermann Meyer GmbH & Co. KG", - "Model": "A1", - "Price": 12950, - "Mileage": 69454, - "DealerId": "35d4fe7e-81a0-6e99-a575-6f62bffb8900", - "Derivative": "A1 1.4 TFSI Sportback S tronic Attraction Limousine" - } - ], - "page": 0, - "merge": { - "nbHitsMax": 1000, - "nbHitslimit": 1000, - "nbSearchers": 2, - "nbHitsProcessed": 10, - "personalization": { - "impact": 100, - "enabled": true, - "profile": { - "time": 0, - "facets": {}, - "taskID": 0 - }, - "percentile": 0, - "nbPersoScanned": 0, - "nbPersoSkipped": 0, - "nbPersoReranked": 0, - "nbPersoReturned": 0, - "nbPersoSelected": 0, - "nbRelevanceBuckets": 8 - }, - "lastHitToDisplay": 10, - "nbHitsNumberingEnd": 10 - }, - "nbHits": 13, - "nbPages": 2, - "queryID": "c5a176f8493236fcbfe69c3298d41659", - "indexUsed": "Germany_prod_stock_Finance_0", - "serverUsed": "d85-de-1.algolia.net", - "hitsPerPage": 10, - "parsedQuery": "audi a5", - "timeoutHits": false, - "appliedRules": [ - { - "objectID": "1539345377254" - }, - { - "objectID": "1548767806494" - } - ], - "facets_stats": { - "Doors": { - "avg": 3, - "max": 5, - "min": 2, - "sum": 48 - }, - "Price": { - "avg": 13210, - "max": 15980, - "min": 9950, - "sum": 171730 - }, - "VrmYear": { - "avg": 2013, - "max": 2017, - "min": 2009, - "sum": 26171 - } - }, - "timeoutCounts": false - } - }, - "userId": "test_user_id", - "timestamp": "2019-09-01T15:46:51.693Z", - "type": "track" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "traits": { - "address": { - "city": "Dhaka", - "country": "Bangladesh" - }, - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "abc", - "title": "Test Page", - "url": "http://localhost/tests/html/index4.html" - } - }, - "event": "spin_result", - "integrations": { - "AM": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "searchResponse": { - "primitiveArr1": ["abc", "def"], - "primitiveArr2": [1, 2, 3], - "arrOfArr": [ - ["abc", "def"], - [1, 2, 3] - ], - "emptyArr": [], - "complexArr1": [ - { - "crr1K1": { - "discardK1": "discardV1" - } - } - ] - } - }, - "userId": "test_user_id", - "timestamp": "2019-09-01T15:46:51.693Z", - "type": "track" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "traits": { - "address": { - "city": "Dhaka", - "country": "Bangladesh" - }, - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - }, - "campaign": {} - }, - "event": "spin_result", - "integrations": { - "AM": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "versionSessionCount": 2, - "win_amount": 0 - }, - "userId": "test_user_id", - "timestamp": "2019-09-01T15:46:51.693Z", - "type": "track" - } - }, - { - "destination": { "Config": { "apiKey": "abcde" } }, - "message": { - "anonymousId": "8d872292709c6fbe", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AMTestProject", - "namespace": "com.rudderstack.android.rudderstack.sampleAndroidApp", - "version": "1.0" - }, - "device": { - "id": "8d872292709c6fbe", - "manufacturer": "Google", - "model": "AOSPonIAEmulator", - "name": "generic_x86_arm", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.2" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "address": { - "city": "kolkata", - "country": "India" - } - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)" - }, - "event": "Product Clicked", - "integrations": { - "All": true - }, - "messageId": "1590431830915-73bed370-5889-436d-9a9e-0c0e0c809d06", - "properties": { - "revenue": "30", - "currency": "USD", - "quantity": "5", - "test_key_2": { - "test_child_key_1": "test_child_value_1" - }, - "price": "58.0" - }, - "originalTimestamp": "2020-05-25T18:37:10.917Z", - "type": "track", - "userId": "sample_user_id" - } - } -] diff --git a/test/__tests__/data/indicative_output.json b/test/__tests__/data/indicative_output.json deleted file mode 100644 index 0bdaeaf8062..00000000000 --- a/test/__tests__/data/indicative_output.json +++ /dev/null @@ -1,1000 +0,0 @@ -[ - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/event", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "eventUniqueId": "test_user_id", - "eventName": "spin_result", - "properties": { - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "versionSessionCount": 2, - "win_amount": 0 - }, - "eventTime": 1567352811693, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "test_user_id" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/identify", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "uniqueId": "123456", - "properties": { - "email": "sayan@gmail.com", - "address.city": "kolkata", - "address.country": "India", - "address.postalCode": 712136, - "address.state": "WB", - "address.street": "", - "browser": "Chrome", - "browser_version": "77.0.3865.90", - "device": "Macintosh", - "os": "Mac OS" - }, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "123456" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/alias", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "previousId": "anon_id", - "newId": "123456", - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "123456" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/identify", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "uniqueId": "123456", - "properties": { - "email": "sayan@gmail.com", - "address.city": "kolkata", - "address.country": "India", - "address.postalCode": 712136, - "address.state": "WB", - "address.street": "", - "ip": "0.0.0.0", - "age": 26, - "browser": "Chrome", - "browser_version": "77.0.3865.90", - "device": "Macintosh", - "os": "Mac OS" - }, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "123456" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/alias", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "previousId": "123456", - "newId": "123456", - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "123456" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/event", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "eventUniqueId": "12345", - "eventName": "Page View ApplicationLoaded", - "properties": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com", - "browser": "Chrome", - "browser_version": "77.0.3865.90", - "device": "Macintosh", - "os": "Mac OS" - }, - "eventTime": 1571051718299, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "12345" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/event", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "eventUniqueId": "12345", - "eventName": "Page View ApplicationLoaded", - "properties": { - "name": "ApplicationLoaded", - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com", - "browser": "Chrome", - "browser_version": "77.0.3865.90", - "device": "Macintosh", - "os": "Mac OS" - }, - "eventTime": 1571051718299, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "12345" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/event", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "eventUniqueId": "12345", - "eventName": "Page View", - "properties": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com", - "browser": "Chrome", - "browser_version": "77.0.3865.90", - "device": "Macintosh", - "os": "Mac OS" - }, - "eventTime": 1571051718299, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "12345" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/event", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "eventUniqueId": "12345", - "eventName": "Screen View Home", - "properties": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com", - "browser": "Chrome", - "browser_version": "77.0.3865.90", - "device": "Macintosh", - "os": "Mac OS" - }, - "eventTime": 1571051718299, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "12345" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/event", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "eventUniqueId": "test_user_id", - "eventName": "spin_result", - "properties": { - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "versionSessionCount": 2, - "win_amount": 0 - }, - "eventTime": 1567352811693, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "test_user_id" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/alias", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "previousId": "test_previous_id", - "newId": "test_new_user_id", - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "test_new_user_id" - } - ], - { - "statusCode": 400, - "error": "Message Type is not present. Aborting message." - }, - { - "statusCode": 400, - "error": "Message type group not supported" - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/identify", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "uniqueId": "test_anon_id", - "properties": { - "email": "sayan@gmail.com", - "address.city": "kolkata", - "address.country": "India", - "address.postalCode": 712136, - "address.state": "WB", - "address.street": "", - "browser": "Chrome", - "browser_version": "77.0.3865.90", - "device": "Macintosh", - "os": "Mac OS" - }, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "test_anon_id" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/event", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "eventUniqueId": "test_user_id", - "eventName": "spin_result", - "properties": { - "searchResponse.hits.Vrm": "026067,4527,10007,031983,042012,002743,205536_3895,116265,010159,010178", - "searchResponse.hits.Make": "AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI", - "searchResponse.hits.Year": "2010,2009,2017,2012,2015,2010,2011,2016,2013,2016", - "searchResponse.hits.DName": "PISCA PROFESSIONAL INDUSTRIAL SOLUTION Consulting & Acquisition GmbH,Stephan Walters - Autohaus Walters,ps kfz-vertrieb GmbH,Hüseyin Zan Fahrzeughandel \"Autopark Grendelmatt\",Hüseyin Zan Fahrzeughandel \"Autopark Grendelmatt\",Auto Mayer e.K.Inh. Skelcim Imeri,Autohaus Löbau GmbH,Elspass Autoland GmbH & Co. KG,Hermann Meyer GmbH & Co. KG,Hermann Meyer GmbH & Co. KG", - "searchResponse.hits.Model": "A5,A5,A5,A5,A5,A5,A5,A1,A1,A1", - "searchResponse.hits.Price": "13990,14450,14580,10980,15980,13980,12790,14690,9950,12950", - "searchResponse.hits.Mileage": "163000,99990,151500,197335,144205,121015,89236,42800,93996,69454", - "searchResponse.hits.DealerId": "1f338e5b-740f-6a38-bee1-ecff97acda69,68c7b5ae-8cf0-6595-9fd2-8644b9682838,a107e9a8-ac3c-6790-bb84-052dd5eed5e8,8a574713-2fbe-6f0c-b1a8-39ba7ee683fc,8a574713-2fbe-6f0c-b1a8-39ba7ee683fc,972258cb-132f-62a9-bd31-e02f9f70fa7b,9e697219-293e-63a0-884a-2d03f77bbbef,00c1bf3f-b19d-6198-a509-c7f2ff73c29a,35d4fe7e-81a0-6e99-a575-6f62bffb8900,35d4fe7e-81a0-6e99-a575-6f62bffb8900", - "searchResponse.hits.Derivative": "A5 Cabrio 1.8 TFSI Cabrio,A5 Cabrio 40 TFSI S tronic S line Cabrio,A5 Sportback 2.0 TDI ultra S tronic Coupe,A5 2.0 TDI Sportback DPF multitronic Coupe,A5 Coupe 35 TDI S tronic S line Coupe,A5 Cabrio 2.0 TDI DPF Cabrio,A5 2.0 TDI Sportback DPF Coupe,A1 1.0 TFSI ultra Limousine,A1 1.4 TFSI Ambition Limousine,A1 1.4 TFSI Sportback S tronic Attraction Limousine", - "searchResponse.page": 0, - "searchResponse.merge.nbHitsMax": 1000, - "searchResponse.merge.nbHitslimit": 1000, - "searchResponse.merge.nbSearchers": 2, - "searchResponse.merge.nbHitsProcessed": 10, - "searchResponse.merge.personalization.impact": 100, - "searchResponse.merge.personalization.enabled": true, - "searchResponse.merge.personalization.profile.time": 0, - "searchResponse.merge.personalization.profile.taskID": 0, - "searchResponse.merge.personalization.percentile": 0, - "searchResponse.merge.personalization.nbPersoScanned": 0, - "searchResponse.merge.personalization.nbPersoSkipped": 0, - "searchResponse.merge.personalization.nbPersoReranked": 0, - "searchResponse.merge.personalization.nbPersoReturned": 0, - "searchResponse.merge.personalization.nbPersoSelected": 0, - "searchResponse.merge.personalization.nbRelevanceBuckets": 8, - "searchResponse.merge.lastHitToDisplay": 10, - "searchResponse.merge.nbHitsNumberingEnd": 10, - "searchResponse.nbHits": 13, - "searchResponse.nbPages": 2, - "searchResponse.queryID": "c5a176f8493236fcbfe69c3298d41659", - "searchResponse.indexUsed": "Germany_prod_stock_Finance_0", - "searchResponse.serverUsed": "d85-de-1.algolia.net", - "searchResponse.hitsPerPage": 10, - "searchResponse.parsedQuery": "audi a5", - "searchResponse.timeoutHits": false, - "searchResponse.appliedRules.objectID": "1539345377254,1548767806494", - "searchResponse.facets_stats.Doors.avg": 3, - "searchResponse.facets_stats.Doors.max": 5, - "searchResponse.facets_stats.Doors.min": 2, - "searchResponse.facets_stats.Doors.sum": 48, - "searchResponse.facets_stats.Price.avg": 13210, - "searchResponse.facets_stats.Price.max": 15980, - "searchResponse.facets_stats.Price.min": 9950, - "searchResponse.facets_stats.Price.sum": 171730, - "searchResponse.facets_stats.VrmYear.avg": 2013, - "searchResponse.facets_stats.VrmYear.max": 2017, - "searchResponse.facets_stats.VrmYear.min": 2009, - "searchResponse.facets_stats.VrmYear.sum": 26171, - "searchResponse.timeoutCounts": false - }, - "eventTime": 1567352811693, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "test_user_id" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/identify", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "uniqueId": "user12345", - "properties": { - "searchResponse.hits.Vrm": "026067,4527,10007,031983,042012,002743,205536_3895,116265,010159,010178", - "searchResponse.hits.Make": "AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI", - "searchResponse.hits.Year": "2010,2009,2017,2012,2015,2010,2011,2016,2013,2016", - "searchResponse.hits.DName": "PISCA PROFESSIONAL INDUSTRIAL SOLUTION Consulting & Acquisition GmbH,Stephan Walters - Autohaus Walters,ps kfz-vertrieb GmbH,Hüseyin Zan Fahrzeughandel \"Autopark Grendelmatt\",Hüseyin Zan Fahrzeughandel \"Autopark Grendelmatt\",Auto Mayer e.K.Inh. Skelcim Imeri,Autohaus Löbau GmbH,Elspass Autoland GmbH & Co. KG,Hermann Meyer GmbH & Co. KG,Hermann Meyer GmbH & Co. KG", - "searchResponse.hits.Model": "A5,A5,A5,A5,A5,A5,A5,A1,A1,A1", - "searchResponse.hits.Price": "13990,14450,14580,10980,15980,13980,12790,14690,9950,12950", - "searchResponse.hits.Mileage": "163000,99990,151500,197335,144205,121015,89236,42800,93996,69454", - "searchResponse.hits.DealerId": "1f338e5b-740f-6a38-bee1-ecff97acda69,68c7b5ae-8cf0-6595-9fd2-8644b9682838,a107e9a8-ac3c-6790-bb84-052dd5eed5e8,8a574713-2fbe-6f0c-b1a8-39ba7ee683fc,8a574713-2fbe-6f0c-b1a8-39ba7ee683fc,972258cb-132f-62a9-bd31-e02f9f70fa7b,9e697219-293e-63a0-884a-2d03f77bbbef,00c1bf3f-b19d-6198-a509-c7f2ff73c29a,35d4fe7e-81a0-6e99-a575-6f62bffb8900,35d4fe7e-81a0-6e99-a575-6f62bffb8900", - "searchResponse.hits.Derivative": "A5 Cabrio 1.8 TFSI Cabrio,A5 Cabrio 40 TFSI S tronic S line Cabrio,A5 Sportback 2.0 TDI ultra S tronic Coupe,A5 2.0 TDI Sportback DPF multitronic Coupe,A5 Coupe 35 TDI S tronic S line Coupe,A5 Cabrio 2.0 TDI DPF Cabrio,A5 2.0 TDI Sportback DPF Coupe,A1 1.0 TFSI ultra Limousine,A1 1.4 TFSI Ambition Limousine,A1 1.4 TFSI Sportback S tronic Attraction Limousine", - "searchResponse.page": 0, - "searchResponse.merge.nbHitsMax": 1000, - "searchResponse.merge.nbHitslimit": 1000, - "searchResponse.merge.nbSearchers": 2, - "searchResponse.merge.nbHitsProcessed": 10, - "searchResponse.merge.personalization.impact": 100, - "searchResponse.merge.personalization.enabled": true, - "searchResponse.merge.personalization.profile.time": 0, - "searchResponse.merge.personalization.profile.taskID": 0, - "searchResponse.merge.personalization.percentile": 0, - "searchResponse.merge.personalization.nbPersoScanned": 0, - "searchResponse.merge.personalization.nbPersoSkipped": 0, - "searchResponse.merge.personalization.nbPersoReranked": 0, - "searchResponse.merge.personalization.nbPersoReturned": 0, - "searchResponse.merge.personalization.nbPersoSelected": 0, - "searchResponse.merge.personalization.nbRelevanceBuckets": 8, - "searchResponse.merge.lastHitToDisplay": 10, - "searchResponse.merge.nbHitsNumberingEnd": 10, - "searchResponse.nbHits": 13, - "searchResponse.nbPages": 2, - "searchResponse.queryID": "c5a176f8493236fcbfe69c3298d41659", - "searchResponse.indexUsed": "Germany_prod_stock_Finance_0", - "searchResponse.serverUsed": "d85-de-1.algolia.net", - "searchResponse.hitsPerPage": 10, - "searchResponse.parsedQuery": "audi a5", - "searchResponse.timeoutHits": false, - "searchResponse.appliedRules.objectID": "1539345377254,1548767806494", - "searchResponse.facets_stats.Doors.avg": 3, - "searchResponse.facets_stats.Doors.max": 5, - "searchResponse.facets_stats.Doors.min": 2, - "searchResponse.facets_stats.Doors.sum": 48, - "searchResponse.facets_stats.Price.avg": 13210, - "searchResponse.facets_stats.Price.max": 15980, - "searchResponse.facets_stats.Price.min": 9950, - "searchResponse.facets_stats.Price.sum": 171730, - "searchResponse.facets_stats.VrmYear.avg": 2013, - "searchResponse.facets_stats.VrmYear.max": 2017, - "searchResponse.facets_stats.VrmYear.min": 2009, - "searchResponse.facets_stats.VrmYear.sum": 26171, - "searchResponse.timeoutCounts": false, - "browser": "Chrome", - "browser_version": "80.0.3987.163", - "device": "Macintosh", - "os": "Mac OS" - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "user12345" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/alias", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "previousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "newId": "user12345" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "user12345" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/event", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "eventUniqueId": "12345", - "eventName": "Page View ApplicationLoaded", - "properties": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com", - "browser": "Chrome", - "browser_version": "77.0.3865.90", - "device": "Macintosh", - "os": "Mac OS" - }, - "eventTime": 1571051718299, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "12345" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/event", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "eventUniqueId": "12345", - "eventName": "Page View ApplicationLoaded", - "properties": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "abc", - "title": "Test Page", - "url": "http://localhost/tests/html/index4.html", - "browser": "Chrome", - "browser_version": "77.0.3865.90", - "device": "Macintosh", - "os": "Mac OS" - }, - "eventTime": 1571051718299, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "12345" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/event", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "eventUniqueId": "test_user_id", - "eventName": "spin_result", - "properties": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "abc", - "title": "Test Page", - "url": "http://localhost/tests/html/index4.html", - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "versionSessionCount": 2, - "win_amount": 0 - }, - "eventTime": 1567352811693, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "test_user_id" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/event", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "eventUniqueId": "test_user_id", - "eventName": "spin_result", - "properties": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "abc", - "title": "Test Page", - "url": "http://localhost/tests/html/index4.html", - "searchResponse.hits.Vrm": "026067,4527,10007,031983,042012,002743,205536_3895,116265,010159,010178", - "searchResponse.hits.Make": "AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI", - "searchResponse.hits.Year": "2010,2009,2017,2012,2015,2010,2011,2016,2013,2016", - "searchResponse.hits.DName": "PISCA PROFESSIONAL INDUSTRIAL SOLUTION Consulting & Acquisition GmbH,Stephan Walters - Autohaus Walters,ps kfz-vertrieb GmbH,Hüseyin Zan Fahrzeughandel \"Autopark Grendelmatt\",Hüseyin Zan Fahrzeughandel \"Autopark Grendelmatt\",Auto Mayer e.K.Inh. Skelcim Imeri,Autohaus Löbau GmbH,Elspass Autoland GmbH & Co. KG,Hermann Meyer GmbH & Co. KG,Hermann Meyer GmbH & Co. KG", - "searchResponse.hits.Model": "A5,A5,A5,A5,A5,A5,A5,A1,A1,A1", - "searchResponse.hits.Price": "13990,14450,14580,10980,15980,13980,12790,14690,9950,12950", - "searchResponse.hits.Mileage": "163000,99990,151500,197335,144205,121015,89236,42800,93996,69454", - "searchResponse.hits.DealerId": "1f338e5b-740f-6a38-bee1-ecff97acda69,68c7b5ae-8cf0-6595-9fd2-8644b9682838,a107e9a8-ac3c-6790-bb84-052dd5eed5e8,8a574713-2fbe-6f0c-b1a8-39ba7ee683fc,8a574713-2fbe-6f0c-b1a8-39ba7ee683fc,972258cb-132f-62a9-bd31-e02f9f70fa7b,9e697219-293e-63a0-884a-2d03f77bbbef,00c1bf3f-b19d-6198-a509-c7f2ff73c29a,35d4fe7e-81a0-6e99-a575-6f62bffb8900,35d4fe7e-81a0-6e99-a575-6f62bffb8900", - "searchResponse.hits.Derivative": "A5 Cabrio 1.8 TFSI Cabrio,A5 Cabrio 40 TFSI S tronic S line Cabrio,A5 Sportback 2.0 TDI ultra S tronic Coupe,A5 2.0 TDI Sportback DPF multitronic Coupe,A5 Coupe 35 TDI S tronic S line Coupe,A5 Cabrio 2.0 TDI DPF Cabrio,A5 2.0 TDI Sportback DPF Coupe,A1 1.0 TFSI ultra Limousine,A1 1.4 TFSI Ambition Limousine,A1 1.4 TFSI Sportback S tronic Attraction Limousine", - "searchResponse.page": 0, - "searchResponse.merge.nbHitsMax": 1000, - "searchResponse.merge.nbHitslimit": 1000, - "searchResponse.merge.nbSearchers": 2, - "searchResponse.merge.nbHitsProcessed": 10, - "searchResponse.merge.personalization.impact": 100, - "searchResponse.merge.personalization.enabled": true, - "searchResponse.merge.personalization.profile.time": 0, - "searchResponse.merge.personalization.profile.taskID": 0, - "searchResponse.merge.personalization.percentile": 0, - "searchResponse.merge.personalization.nbPersoScanned": 0, - "searchResponse.merge.personalization.nbPersoSkipped": 0, - "searchResponse.merge.personalization.nbPersoReranked": 0, - "searchResponse.merge.personalization.nbPersoReturned": 0, - "searchResponse.merge.personalization.nbPersoSelected": 0, - "searchResponse.merge.personalization.nbRelevanceBuckets": 8, - "searchResponse.merge.lastHitToDisplay": 10, - "searchResponse.merge.nbHitsNumberingEnd": 10, - "searchResponse.nbHits": 13, - "searchResponse.nbPages": 2, - "searchResponse.queryID": "c5a176f8493236fcbfe69c3298d41659", - "searchResponse.indexUsed": "Germany_prod_stock_Finance_0", - "searchResponse.serverUsed": "d85-de-1.algolia.net", - "searchResponse.hitsPerPage": 10, - "searchResponse.parsedQuery": "audi a5", - "searchResponse.timeoutHits": false, - "searchResponse.appliedRules.objectID": "1539345377254,1548767806494", - "searchResponse.facets_stats.Doors.avg": 3, - "searchResponse.facets_stats.Doors.max": 5, - "searchResponse.facets_stats.Doors.min": 2, - "searchResponse.facets_stats.Doors.sum": 48, - "searchResponse.facets_stats.Price.avg": 13210, - "searchResponse.facets_stats.Price.max": 15980, - "searchResponse.facets_stats.Price.min": 9950, - "searchResponse.facets_stats.Price.sum": 171730, - "searchResponse.facets_stats.VrmYear.avg": 2013, - "searchResponse.facets_stats.VrmYear.max": 2017, - "searchResponse.facets_stats.VrmYear.min": 2009, - "searchResponse.facets_stats.VrmYear.sum": 26171, - "searchResponse.timeoutCounts": false - }, - "eventTime": 1567352811693, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "test_user_id" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/event", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "eventUniqueId": "test_user_id", - "eventName": "spin_result", - "properties": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "abc", - "title": "Test Page", - "url": "http://localhost/tests/html/index4.html", - "searchResponse.primitiveArr1": "abc,def", - "searchResponse.primitiveArr2": "1,2,3" - }, - "eventTime": 1567352811693, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "test_user_id" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/event", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "eventUniqueId": "test_user_id", - "eventName": "spin_result", - "properties": { - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "versionSessionCount": 2, - "win_amount": 0 - }, - "eventTime": 1567352811693, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "test_user_id" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/event", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "eventUniqueId": "sample_user_id", - "eventName": "Product Clicked", - "properties": { - "revenue": "30", - "currency": "USD", - "quantity": "5", - "test_key_2.test_child_key_1": "test_child_value_1", - "price": "58.0", - "device": "Android 9", - "os": "Android" - }, - "eventTime": 1590431830917, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "sample_user_id" - } - ] -] diff --git a/test/__tests__/data/indicative_router_input.json b/test/__tests__/data/indicative_router_input.json deleted file mode 100644 index 446affe33a0..00000000000 --- a/test/__tests__/data/indicative_router_input.json +++ /dev/null @@ -1,138 +0,0 @@ -[ - { - "destination": { - "Config": { - "apiKey": "abcde" - } - }, - "metadata": { - "jobId": 2 - }, - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "traits": { - "address": { - "city": "Dhaka", - "country": "Bangladesh" - }, - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "AM": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "versionSessionCount": 2, - "win_amount": 0 - }, - "userId": "test_user_id", - "timestamp": "2019-09-01T15:46:51.693Z", - "type": "track" - } - }, - { - "destination": { - "Config": { - "apiKey": "abcde" - } - }, - "metadata": { - "jobId": 2 - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "anon_id", - "userId": "123456", - "type": "identify", - "traits": { - "anonymousId": "anon_id", - "email": "sayan@gmail.com", - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - } - } -] diff --git a/test/__tests__/data/indicative_router_output.json b/test/__tests__/data/indicative_router_output.json deleted file mode 100644 index e7c7eb381c7..00000000000 --- a/test/__tests__/data/indicative_router_output.json +++ /dev/null @@ -1,152 +0,0 @@ -[ - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/event", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "eventUniqueId": "test_user_id", - "eventName": "spin_result", - "properties": { - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "versionSessionCount": 2, - "win_amount": 0 - }, - "eventTime": 1567352811693, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "test_user_id" - } - ], - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "abcde" - } - } - }, - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/identify", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "uniqueId": "123456", - "properties": { - "email": "sayan@gmail.com", - "address.city": "kolkata", - "address.country": "India", - "address.postalCode": 712136, - "address.state": "WB", - "address.street": "", - "browser": "Chrome", - "browser_version": "77.0.3865.90", - "device": "Macintosh", - "os": "Mac OS" - }, - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "123456" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.indicative.com/service/alias", - "headers": { - "Indicative-Client": "RudderStack", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "previousId": "anon_id", - "newId": "123456", - "apiKey": "abcde" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "123456" - } - ], - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "abcde" - } - } - } -] diff --git a/test/__tests__/data/intercom_output.json b/test/__tests__/data/intercom_output.json index 9a5d73b074d..64ad4133bf8 100644 --- a/test/__tests__/data/intercom_output.json +++ b/test/__tests__/data/intercom_output.json @@ -139,7 +139,7 @@ }, { "statusCode": 400, - "error": "Email or userId is mandatory" + "error": "Either of `email` or `userId` is required for Identify call" }, { "version": "1", @@ -341,7 +341,7 @@ }, { "statusCode": 400, - "error": "Email or userId is mandatory" + "error": "Either of `email` or `userId` is required for Track call" }, { "version": "1", @@ -408,7 +408,7 @@ }, { "statusCode": 400, - "error": "Email or userId is mandatory" + "error": "Either of `email` or `userId` is required for Identify call" }, [ { diff --git a/test/__tests__/data/intercom_proxy_input.json b/test/__tests__/data/intercom_proxy_input.json new file mode 100644 index 00000000000..0074202cebe --- /dev/null +++ b/test/__tests__/data/intercom_proxy_input.json @@ -0,0 +1,44 @@ +[ + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.intercom.io/users/test1", + "headers": { + "Content-Type": "application/json", + "Authorization": "Bearer intercomApiKey", + "Accept": "application/json", + "Intercom-Version": "1.4" + }, + "params": {}, + "body": { + "JSON": { + "email": "test_1@test.com", + "phone": "9876543210", + "name": "Test Name", + "signed_up_at": 1601493060, + "last_seen_user_agent": "unknown", + "update_last_request_at": true, + "user_id": "test_user_id_1", + "custom_attributes": { + "anonymousId": "58b21c2d-f8d5-4410-a2d0-b268a26b7e33", + "key1": "value1", + "address.city": "Kolkata", + "address.state": "West Bengal", + "originalArray[0].nested_field": "nested value", + "originalArray[0].tags[0]": "tag_1", + "originalArray[0].tags[1]": "tag_2", + "originalArray[0].tags[2]": "tag_3", + "originalArray[1].nested_field": "nested value", + "originalArray[1].tags[0]": "tag_1", + "originalArray[2].nested_field": "nested value" + } + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "58b21c2d-f8d5-4410-a2d0-b268a26b7e33" + } +] diff --git a/test/__tests__/data/intercom_proxy_output.json b/test/__tests__/data/intercom_proxy_output.json new file mode 100644 index 00000000000..5b6f9ef9157 --- /dev/null +++ b/test/__tests__/data/intercom_proxy_output.json @@ -0,0 +1,31 @@ +[ + { + "output": { + "status": 500, + "message": "[Intercom Response Handler] Request failed for destination intercom with status: 408", + "destinationResponse": { + "response": { + "type": "error.list", + "request_id": "000on04msi4jpk7d3u60", + "errors": [ + { + "code": "Request Timeout", + "message": "The server would not wait any longer for the client" + } + ] + }, + "status": 408 + }, + "statTags": { + "destType": "INTERCOM", + "errorCategory": "network", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "errorType": "retryable", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination" + } + } + } +] diff --git a/test/__tests__/data/intercom_router_input.json b/test/__tests__/data/intercom_router_input.json index 224f8763bd4..a3eb28fc105 100644 --- a/test/__tests__/data/intercom_router_input.json +++ b/test/__tests__/data/intercom_router_input.json @@ -64,7 +64,7 @@ "type": "identify" }, "metadata": { - "jobId": 2 + "jobId": 1 }, "destination": { "Config": { diff --git a/test/__tests__/data/intercom_router_output.json b/test/__tests__/data/intercom_router_output.json index a6f927ce5f2..494d15e97aa 100644 --- a/test/__tests__/data/intercom_router_output.json +++ b/test/__tests__/data/intercom_router_output.json @@ -35,7 +35,7 @@ }, "metadata": [ { - "jobId": 2 + "jobId": 1 } ], "batched": false, diff --git a/test/__tests__/data/iterable.json b/test/__tests__/data/iterable.json deleted file mode 100644 index 7dc0ce18dd6..00000000000 --- a/test/__tests__/data/iterable.json +++ /dev/null @@ -1,3232 +0,0 @@ -[ - { - "description": "Invalid page call", - "input": { - "message": { - "type": "page", - "sentAt": "2020-08-28T16:26:16.473Z", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-6f62b91e789a636929ca38aed01c5f6e-103c720d-81bd-4742-98d6-d45a65aed23e", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.468Z" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": false, - "trackCategorisedPages": true, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "statusCode": 400, - "message": "Invalid page call" - } - }, - { - "description": "Invalid screen call", - "input": { - "message": { - "type": "screen", - "sentAt": "2020-08-28T16:26:16.473Z", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-6f62b91e789a636929ca38aed01c5f6e-103c720d-81bd-4742-98d6-d45a65aed23e", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.468Z" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": false, - "trackCategorisedPages": true, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "statusCode": 400, - "message": "Invalid screen call" - } - }, - { - "description": "Update user event", - "input": { - "message": { - "type": "identify", - "sentAt": "2020-08-28T16:26:06.466Z", - "traits": { - "city": "Bangalore", - "name": "manashi", - "email": "manashi@website.com", - "country": "India" - }, - "context": { - "traits": { - "city": "Bangalore", - "name": "manashi", - "email": "manashi@website.com", - "country": "India" - }, - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-cc3ef811f686139ee527b806ee0129ef-163a3a88-266f-447e-8cce-34a8f42f8dcd", - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.462Z" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "email": "manashi@website.com", - "userId": "abcdeeeeeeeexxxx102", - "dataFields": { - "city": "Bangalore", - "name": "manashi", - "email": "manashi@website.com", - "country": "India" - }, - "preferUserId": true, - "mergeNestedObjects": true - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "api_key": "62d12498c37c4fd8a1a546c2d35c2f60", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.iterable.com/api/users/update" - } - }, - { - "description": "Email opened event", - "input": { - "message": { - "type": "track", - "event": "Email Opened", - "sentAt": "2020-08-28T16:26:16.473Z", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453", - "properties": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - }, - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.468Z" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "userId": "abcdeeeeeeeexxxx102", - "createdAt": 1598631966468, - "eventName": "Email Opened", - "dataFields": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - } - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "api_key": "62d12498c37c4fd8a1a546c2d35c2f60", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.iterable.com/api/events/track" - } - }, - { - "description": "Page call with trackCategorisedPages set to true and mapToSingleEvent is false", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "", - "search": "", - "title": "", - "url": "", - "category": "test-category" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": false, - "trackCategorisedPages": true, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/events/track", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "email": "sayan@gmail.com", - "dataFields": { - "path": "/abc", - "referrer": "", - "search": "", - "title": "", - "url": "", - "category": "test-category" - }, - "userId": "12345", - "eventName": "ApplicationLoaded page", - "createdAt": 1571051718299 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Page call with trackAllPages set to true and mapToSingleEvent is true", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "", - "search": "", - "title": "", - "url": "", - "category": "test-category", - "campaignId": "123456", - "templateId": "1213458" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": true, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/events/track", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "email": "sayan@gmail.com", - "dataFields": { - "path": "/abc", - "referrer": "", - "search": "", - "title": "", - "url": "", - "category": "test-category", - "campaignId": "123456", - "templateId": "1213458" - }, - "userId": "12345", - "eventName": "Loaded a Page", - "createdAt": 1571051718299, - "campaignId": 123456, - "templateId": 1213458 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Page call with trackNamedPages set to true and mapToSingleEvent is false", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "", - "search": "", - "title": "", - "url": "", - "name": "test-name" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": false, - "trackCategorisedPages": false, - "trackNamedPages": true - }, - "Enabled": true - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/events/track", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "email": "sayan@gmail.com", - "dataFields": { - "path": "/abc", - "referrer": "", - "search": "", - "title": "", - "url": "", - "name": "test-name" - }, - "userId": "12345", - "eventName": "ApplicationLoaded page", - "createdAt": 1571051718299 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Page call with trackAllPages set to true and mapToSingleEvent is false", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "", - "search": "", - "title": "", - "url": "" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/events/track", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "email": "sayan@gmail.com", - "dataFields": { - "path": "/abc", - "referrer": "", - "search": "", - "title": "", - "url": "" - }, - "userId": "12345", - "eventName": "ApplicationLoaded page", - "createdAt": 1571051718299 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Screen call with trackCategorisedPages set to true and mapToSingleEvent is false", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "screen", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "", - "search": "", - "title": "", - "url": "", - "category": "test-category" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": false, - "trackCategorisedPages": true, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/events/track", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "email": "sayan@gmail.com", - "dataFields": { - "path": "/abc", - "referrer": "", - "search": "", - "title": "", - "url": "", - "category": "test-category" - }, - "userId": "12345", - "eventName": "ApplicationLoaded screen", - "createdAt": 1571051718299 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Screen call with trackAllPages and mapToSingleEvent set to true", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "screen", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "", - "search": "", - "title": "", - "url": "", - "category": "test-category", - "campaignId": "123456", - "templateId": "1213458" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": true, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/events/track", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "email": "sayan@gmail.com", - "dataFields": { - "path": "/abc", - "referrer": "", - "search": "", - "title": "", - "url": "", - "category": "test-category", - "campaignId": "123456", - "templateId": "1213458" - }, - "userId": "12345", - "eventName": "Loaded a Screen", - "createdAt": 1571051718299, - "campaignId": 123456, - "templateId": 1213458 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Screen call with trackNamedPages set to true and mapToSingleEvent is false", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "screen", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "", - "search": "", - "title": "", - "url": "", - "name": "test-name" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": false, - "trackCategorisedPages": false, - "trackNamedPages": true - }, - "Enabled": true - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/events/track", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "email": "sayan@gmail.com", - "dataFields": { - "path": "/abc", - "referrer": "", - "search": "", - "title": "", - "url": "", - "name": "test-name" - }, - "userId": "12345", - "eventName": "ApplicationLoaded screen", - "createdAt": 1571051718299 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Screen call with trackAllPages set to true and mapToSingleEvent is false", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "screen", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/abc", - "referrer": "", - "search": "", - "title": "", - "url": "" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/events/track", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "email": "sayan@gmail.com", - "dataFields": { - "path": "/abc", - "referrer": "", - "search": "", - "title": "", - "url": "" - }, - "userId": "12345", - "eventName": "ApplicationLoaded screen", - "createdAt": 1571051718299 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Group call", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "group", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "statusCode": 400, - "message": "Message type group not supported" - } - }, - { - "description": "Update user call with register device token", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false, - "registerDeviceOrBrowserApiKey": "5678910" - }, - "Enabled": true - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/users/update", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "email": "ruchira@rudderlabs.com", - "dataFields": { - "email": "ruchira@rudderlabs.com" - }, - "userId": "123456", - "preferUserId": true, - "mergeNestedObjects": true - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/users/registerBrowserToken", - "headers": { - "Content-Type": "application/json", - "api_key": "5678910" - }, - "params": {}, - "body": { - "JSON": { - "browserToken": "some_device_token", - "email": "ruchira@rudderlabs.com", - "userId": "123456" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Update user call with register device token", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "token": "sample_push_token", - "name": "sample_device_name", - "model": "sample_device_model", - "manufacturer": "sample_device_manufacturer", - "type": "ios" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false, - "registerDeviceOrBrowserApiKey": "5678910" - }, - "Enabled": true - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/users/update", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "email": "ruchira@rudderlabs.com", - "dataFields": { - "email": "ruchira@rudderlabs.com" - }, - "userId": "123456", - "preferUserId": true, - "mergeNestedObjects": true - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/users/registerDeviceToken", - "headers": { - "Content-Type": "application/json", - "api_key": "5678910" - }, - "params": {}, - "body": { - "JSON": { - "email": "ruchira@rudderlabs.com", - "userId": "123456", - "device": { - "token": "sample_push_token", - "applicationName": "sample_device_name", - "platform": "APNS" - }, - "preferUserId": true - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Update user call with register device token", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "token": "sample_push_token", - "name": "sample_device_name", - "model": "sample_device_model", - "manufacturer": "sample_device_manufacturer", - "type": "android" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mergeNestedObjects": false, - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false, - "registerDeviceOrBrowserApiKey": "5678910" - }, - "Enabled": true - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/users/update", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "email": "ruchira@rudderlabs.com", - "dataFields": { - "email": "ruchira@rudderlabs.com" - }, - "userId": "123456", - "preferUserId": true, - "mergeNestedObjects": false - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/users/registerDeviceToken", - "headers": { - "Content-Type": "application/json", - "api_key": "5678910" - }, - "params": {}, - "body": { - "JSON": { - "email": "ruchira@rudderlabs.com", - "userId": "123456", - "device": { - "token": "sample_push_token", - "applicationName": "sample_device_name", - "platform": "GCM" - }, - "preferUserId": true - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Update cart event", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "product added", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "campaignId": "1", - "templateId": "0", - "orderId": 10000, - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": "cars,auto", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg", - "quantity": "2" - }, - { - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": 22, - "position": "12", - "category": "Cars2", - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - } - ] - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/commerce/updateCart", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "user": { - "email": "sayan@gmail.com", - "dataFields": { - "email": "sayan@gmail.com" - }, - "userId": "12345", - "preferUserId": true, - "mergeNestedObjects": true - }, - "items": [ - { - "id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "categories": [ - "cars", - "auto" - ], - "price": 19, - "quantity": 2, - "imageUrl": "https://www.example.com/product/path.jpg", - "url": "https://www.example.com/product/path" - }, - { - "id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "categories": [ - "Cars2" - ], - "price": 192, - "quantity": 22, - "imageUrl": "https://www.example.com/product/path.jpg2", - "url": "https://www.example.com/product/path2" - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "TrackPurchase event", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "order completed", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "orderId": 10000, - "total": "1000", - "campaignId": "123456", - "templateId": "1213458", - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": "Cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg", - "quantity": 2 - }, - { - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": "22", - "position": "12", - "category": "Cars2", - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - } - ] - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/commerce/trackPurchase", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "dataFields": { - "orderId": 10000, - "total": "1000", - "campaignId": "123456", - "templateId": "1213458", - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": "Cars", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg", - "quantity": 2 - }, - { - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": "22", - "position": "12", - "category": "Cars2", - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - } - ] - }, - "id": "10000", - "createdAt": 1571051718299, - "campaignId": 123456, - "templateId": 1213458, - "total": 1000, - "user": { - "email": "sayan@gmail.com", - "dataFields": { - "email": "sayan@gmail.com" - }, - "userId": "12345", - "preferUserId": true, - "mergeNestedObjects": true - }, - "items": [ - { - "id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "categories": [ - "Cars" - ], - "price": 19, - "quantity": 2, - "imageUrl": "https://www.example.com/product/path.jpg", - "url": "https://www.example.com/product/path" - }, - { - "id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "categories": [ - "Cars2" - ], - "price": 192, - "quantity": 22, - "imageUrl": "https://www.example.com/product/path.jpg2", - "url": "https://www.example.com/product/path2" - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Custom track event", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "test track event GA3", - "properties": { - "email": "ruchira@rudderlabs.com", - "campaignId": "1", - "templateId": "0", - "category": "test-category", - "user_actual_role": "system_admin, system_user", - "user_actual_id": 12345 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/events/track", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "email": "ruchira@rudderlabs.com", - "dataFields": { - "campaignId": "1", - "templateId": "0", - "category": "test-category", - "user_actual_role": "system_admin, system_user", - "user_actual_id": 12345, - "email": "ruchira@rudderlabs.com" - }, - "userId": "12345", - "eventName": "test track event GA3", - "createdAt": 1571051718300, - "campaignId": 1, - "templateId": 0 - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Update user call with register browser token", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false, - "registerDeviceOrBrowserApiKey": "5678910" - }, - "Enabled": true - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/users/update", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "email": "ruchira@rudderlabs.com", - "dataFields": { - "email": "ruchira@rudderlabs.com" - }, - "userId": "123456", - "preferUserId": true, - "mergeNestedObjects": true - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/users/registerBrowserToken", - "headers": { - "Content-Type": "application/json", - "api_key": "5678910" - }, - "params": {}, - "body": { - "JSON": { - "browserToken": "some_device_token", - "email": "ruchira@rudderlabs.com", - "userId": "123456" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "userId and email is not provided in identify call", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "id": "72e528f869711c3d", - "manufacturer": "Google", - "model": "sdk_gphone_x86", - "name": "generic_x86_arm", - "token": "some_device_token", - "type": "android" - }, - "screen": { - "density": 2 - } - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "statusCode": 400, - "message": "userId or email is mandatory for this request" - } - }, - { - "description": "Invalid page call", - "input": { - "message": { - "type": "page", - "sentAt": "2020-08-28T16:26:16.473Z", - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-6f62b91e789a636929ca38aed01c5f6e-103c720d-81bd-4742-98d6-d45a65aed23e", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.468Z" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": false, - "trackCategorisedPages": true, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "statusCode": 400, - "message": "Invalid page call" - } - }, - { - "description": "UpdateCart event", - "input": { - "message": { - "type": "track", - "event": "Product Added", - "sentAt": "2021-07-09T05:27:17.908Z", - "userId": "8751", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.0.16", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "https://joybird.com/cabinets/vira-console-cabinet/", - "path": "/cabinets/vira-console-cabinet/", - "title": "Vira Console Cabinet | Joybird", - "search": "", - "referrer": "$direct", - "referring_domain": "" - }, - "locale": "en-us", - "screen": { - "density": 2 - }, - "traits": { - "email": "jessica@jlpdesign.net" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.16" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Safari/605.1.15" - }, - "rudderId": "1c42e104-97ec-4f54-a328-2379623583fe", - "messageId": "e58f6624-a1c3-48f4-a6af-610389602304", - "timestamp": "2021-07-09T05:27:18.131Z", - "properties": { - "sku": "JB24691400-W05", - "name": "Vira Console Cabinet", - "price": 797, - "cart_id": "bd9b8dbf4ef8ee01d4206b04fe2ee6ae", - "variant": "Oak", - "quantity": 1, - "quickship": true, - "full_price": 1328, - "product_id": 10606, - "non_interaction": 1 - }, - "receivedAt": "2021-07-09T05:27:18.131Z", - "request_ip": "162.224.233.114", - "anonymousId": "8a7ff986-62d8-45ca-9a16-8895b3f9d341", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-07-09T05:27:17.908Z" - }, - "destination": { - "Config": { - "credentials": "abc", - "eventToTopicMap": [ - { - "from": "track", - "to": "projects/big-query-integration-poc/topics/test" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/commerce/updateCart", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "user": { - "email": "jessica@jlpdesign.net", - "dataFields": { - "email": "jessica@jlpdesign.net" - }, - "userId": "8751", - "preferUserId": true, - "mergeNestedObjects": true - }, - "items": [ - { - "id": 10606, - "sku": "JB24691400-W05", - "name": "Vira Console Cabinet", - "price": 797, - "quantity": 1 - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Update user call", - "input": { - "message": { - "channel": "sources", - "context": { - "externalId": [ - { - "id": "lynnanderson@smith.net", - "identifierType": "email", - "type": "ITERABLE-users" - } - ], - "mappedToDestination": "true", - "sources": { - "batch_id": "f5f240d0-0acb-46e0-b043-57fb0aabbadd", - "job_id": "1zAj94bEy8komdqnYtSoDp0VmGs/Syncher", - "job_run_id": "c5tar6cqgmgmcjvupdhg", - "task_id": "tt_10_rows_check", - "task_run_id": "c5tar6cqgmgmcjvupdi0", - "version": "release.v1.6.8" - } - }, - "messageId": "2f052f7c-f694-4849-a7ed-a432f7ffa0a4", - "originalTimestamp": "2021-10-28T14:03:50.503Z", - "receivedAt": "2021-10-28T14:03:46.567Z", - "recordId": "8", - "request_ip": "10.1.94.92", - "rudderId": "c0f6843e-e3d6-4946-9752-fa339fbadef2", - "sentAt": "2021-10-28T14:03:50.503Z", - "timestamp": "2021-10-28T14:03:46.566Z", - "traits": { - "administrative_unit": "Minnesota", - "am_pm": "AM", - "boolean": true, - "firstname": "Jacqueline", - "pPower": "AM", - "userId": "Jacqueline" - }, - "type": "identify", - "userId": "lynnanderson@smith.net" - }, - "destination": { - "ID": "1zia9wKshXt80YksLmUdJnr7IHI", - "Name": "test_iterable", - "DestinationDefinition": { - "ID": "1iVQvTRMsPPyJzwol0ifH93QTQ6", - "Name": "ITERABLE", - "DisplayName": "Iterable", - "Config": { - "destConfig": { - "defaultConfig": [ - "apiKey", - "mapToSingleEvent", - "trackAllPages", - "trackCategorisedPages", - "trackNamedPages" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": null - }, - "Config": { - "apiKey": "12345", - "mapToSingleEvent": true, - "trackAllPages": false, - "trackCategorisedPages": true, - "trackNamedPages": true - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/users/update", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "email": "lynnanderson@smith.net", - "dataFields": { - "administrative_unit": "Minnesota", - "am_pm": "AM", - "boolean": true, - "firstname": "Jacqueline", - "pPower": "AM", - "userId": "Jacqueline", - "email": "lynnanderson@smith.net" - }, - "userId": "lynnanderson@smith.net", - "preferUserId": true, - "mergeNestedObjects": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Update user call", - "input": { - "message": { - "channel": "sources", - "context": { - "externalId": [ - { - "id": "Matthew", - "identifierType": "userId", - "type": "ITERABLE-users" - } - ], - "mappedToDestination": "true", - "sources": { - "batch_id": "230d7c79-a2c2-4b2a-90bb-06ba988d3bb4", - "job_id": "1zjj9aF5UkmavBi4HtM3kWOGvy0/Syncher", - "job_run_id": "c5tb4gsqgmgmcjvuplhg", - "task_id": "tt_10_rows", - "task_run_id": "c5tb4gsqgmgmcjvupli0", - "version": "release.v1.6.8" - } - }, - "messageId": "c4c97310-463b-4300-9215-5cfddcb2a769", - "originalTimestamp": "2021-10-28T14:23:43.254Z", - "receivedAt": "2021-10-28T14:23:38.300Z", - "recordId": "3", - "request_ip": "10.1.94.92", - "rudderId": "7300f5e3-bdb5-489e-ac7e-47876e487de9", - "sentAt": "2021-10-28T14:23:43.254Z", - "timestamp": "2021-10-28T14:23:38.299Z", - "traits": { - "price": "GB" - }, - "type": "identify", - "userId": "Matthew" - }, - "destination": { - "ID": "1zjjHN4RQ6t4DPj3HVpp0b6XW4A", - "Name": "test_userId_uniq", - "DestinationDefinition": { - "ID": "1iVQvTRMsPPyJzwol0ifH93QTQ6", - "Name": "ITERABLE", - "DisplayName": "Iterable", - "Config": { - "destConfig": { - "defaultConfig": [ - "apiKey", - "mapToSingleEvent", - "trackAllPages", - "trackCategorisedPages", - "trackNamedPages" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter", - "cordova" - ], - "supportsVisualMapper": true, - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": null - }, - "Config": { - "apiKey": "12345", - "mapToSingleEvent": true, - "trackAllPages": false, - "trackCategorisedPages": true, - "trackNamedPages": true - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "libraries": [], - "request": { - "query": {} - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/users/update", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "dataFields": { - "price": "GB", - "userId": "Matthew" - }, - "userId": "Matthew", - "preferUserId": true, - "mergeNestedObjects": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Update user call with register device token", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "token": "sample_push_token", - "name": "sample_device_name", - "model": "sample_device_model", - "manufacturer": "sample_device_manufacturer", - "type": "watchos" - }, - "traits": { - "email": "ruchira@rudderlabs.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "screen": { - "density": 2 - } - }, - "type": "identify", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false, - "registerDeviceOrBrowserApiKey": "5678910" - }, - "Enabled": true - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/users/update", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "email": "ruchira@rudderlabs.com", - "dataFields": { - "email": "ruchira@rudderlabs.com" - }, - "userId": "123456", - "preferUserId": true, - "mergeNestedObjects": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/users/registerDeviceToken", - "headers": { - "Content-Type": "application/json", - "api_key": "5678910" - }, - "params": {}, - "body": { - "JSON": { - "email": "ruchira@rudderlabs.com", - "userId": "123456", - "device": { - "token": "sample_push_token", - "applicationName": "sample_device_name", - "platform": "APNS" - }, - "preferUserId": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Update email call", - "input": { - "message": { - "type": "alias", - "sentAt": "2020-08-28T16:26:16.473Z", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-6f62b91e789a636929ca38aed01c5f6e-103c720d-81bd-4742-98d6-d45a65aed23e", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "userId": "new@email.com", - "previousId": "old@email.com", - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.468Z" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": false, - "trackCategorisedPages": true, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "currentEmail": "old@email.com", - "newEmail": "new@email.com" - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "api_key": "62d12498c37c4fd8a1a546c2d35c2f60", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.iterable.com/api/users/updateEmail" - } - }, - { - "description": "Update email call with missing previousId", - "input": { - "message": { - "type": "alias", - "sentAt": "2020-08-28T16:26:16.473Z", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-6f62b91e789a636929ca38aed01c5f6e-103c720d-81bd-4742-98d6-d45a65aed23e", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "userId": "new@email.com", - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.468Z" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": false, - "trackCategorisedPages": true, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "message": "Missing required value from \"previousId\"" - } - }, - { - "description": "Update email call without userId", - "input": { - "message": { - "type": "alias", - "sentAt": "2020-08-28T16:26:16.473Z", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-6f62b91e789a636929ca38aed01c5f6e-103c720d-81bd-4742-98d6-d45a65aed23e", - "properties": { - "url": "https://dominos.com", - "title": "Pizza", - "referrer": "https://google.com" - }, - "previousId": "old@email.com", - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.468Z" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": false, - "trackCategorisedPages": true, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "message": "Missing required value from \"userId\"" - } - }, - { - "description": "Update cart event", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "john@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "product added", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "campaignId": "1", - "templateId": "0", - "orderId": 10000, - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": [ - "bikes", - "cars", - "motors" - ], - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg", - "quantity": "2" - }, - { - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": 22, - "position": "12", - "category": [ - "Bikes2", - "cars2", - "motors2" - ], - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - } - ] - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/commerce/updateCart", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "user": { - "email": "john@gmail.com", - "dataFields": { - "email": "john@gmail.com" - }, - "userId": "12345", - "preferUserId": true, - "mergeNestedObjects": true - }, - "items": [ - { - "id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "categories": [ - "bikes", - "cars", - "motors" - ], - "price": 19, - "quantity": 2, - "imageUrl": "https://www.example.com/product/path.jpg", - "url": "https://www.example.com/product/path" - }, - { - "id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "categories": [ - "Bikes2", - "cars2", - "motors2" - ], - "price": 192, - "quantity": 22, - "imageUrl": "https://www.example.com/product/path.jpg2", - "url": "https://www.example.com/product/path2" - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Update cart event", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "product added", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "campaignId": "1", - "templateId": "0", - "orderId": 10000, - "total": 1000, - "products": [ - { - "product_id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "price": "19", - "position": "1", - "category": "shirts,pants,trousers", - "url": "https://www.example.com/product/path", - "image_url": "https://www.example.com/product/path.jpg", - "quantity": "2" - }, - { - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": 22, - "position": "12", - "category": "Cars2", - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - } - ] - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/commerce/updateCart", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "user": { - "email": "sayan@gmail.com", - "dataFields": { - "email": "sayan@gmail.com" - }, - "userId": "12345", - "preferUserId": true, - "mergeNestedObjects": true - }, - "items": [ - { - "id": "507f1f77bcf86cd799439011", - "sku": "45790-32", - "name": "Monopoly: 3rd Edition", - "categories": [ - "shirts", - "pants", - "trousers" - ], - "price": 19, - "quantity": 2, - "imageUrl": "https://www.example.com/product/path.jpg", - "url": "https://www.example.com/product/path" - }, - { - "id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "categories": [ - "Cars2" - ], - "price": 192, - "quantity": 22, - "imageUrl": "https://www.example.com/product/path.jpg2", - "url": "https://www.example.com/product/path2" - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Update cart event", - "input": { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "product added", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "campaignId": "1", - "templateId": "0", - "orderId": 10000, - "total": 1000, - "product_id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "price": "192", - "quantity": 22, - "position": "12", - "category": "Cars2", - "url": "https://www.example.com/product/path2", - "image_url": "https://www.example.com/product/path.jpg2" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "apiKey": "12345", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/commerce/updateCart", - "headers": { - "Content-Type": "application/json", - "api_key": "12345" - }, - "params": {}, - "body": { - "JSON": { - "user": { - "email": "sayan@gmail.com", - "dataFields": { - "email": "sayan@gmail.com" - }, - "userId": "12345", - "preferUserId": true, - "mergeNestedObjects": true - }, - "items": [ - { - "id": "507f1f77bcf86cd7994390112", - "sku": "45790-322", - "name": "Monopoly: 3rd Edition2", - "categories": [ - "Cars2" - ], - "price": 192, - "quantity": 22, - "imageUrl": "https://www.example.com/product/path.jpg2", - "url": "https://www.example.com/product/path2" - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track purchase event", - "input": { - "destination": { - "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", - "accountId": "476550467", - "trackAnonymous": true, - "enableObjectIdMapping": false - } - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "event": "order completed", - "type": "track", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "product_id": 1234, - "name": "Shoes", - "price": 45, - "quantity": 1, - "orderId": 10000, - "total": "1000", - "campaignId": "123456", - "templateId": "1213458" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/commerce/trackPurchase", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "dataFields": { - "product_id": 1234, - "name": "Shoes", - "price": 45, - "quantity": 1, - "orderId": 10000, - "total": "1000", - "campaignId": "123456", - "templateId": "1213458" - }, - "id": "10000", - "createdAt": 1571051718299, - "campaignId": 123456, - "templateId": 1213458, - "total": 1000, - "user": { - "email": "sayan@gmail.com", - "dataFields": { - "email": "sayan@gmail.com" - }, - "userId": "12345", - "preferUserId": true, - "mergeNestedObjects": true - }, - "items": [ - { - "id": 1234, - "name": "Shoes", - "price": 45, - "quantity": 1 - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track event without an event name", - "input": { - "message": { - "type": "track", - "sentAt": "2020-08-28T16:26:16.473Z", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453", - "properties": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - }, - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.468Z" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "userId": "abcdeeeeeeeexxxx102", - "createdAt": 1598631966468, - "dataFields": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - } - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "api_key": "62d12498c37c4fd8a1a546c2d35c2f60", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.iterable.com/api/events/track" - } - }, - { - "description": "Track event with empty event name", - "input": { - "message": { - "type": "track", - "event": "", - "sentAt": "2020-08-28T16:26:16.473Z", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453", - "properties": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - }, - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.468Z" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - "output": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {}, - "JSON": { - "userId": "abcdeeeeeeeexxxx102", - "createdAt": 1598631966468, - "dataFields": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - } - } - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "api_key": "62d12498c37c4fd8a1a546c2d35c2f60", - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://api.iterable.com/api/events/track" - } - } -] \ No newline at end of file diff --git a/test/__tests__/data/iterable_router.json b/test/__tests__/data/iterable_router.json deleted file mode 100644 index ad7cf653024..00000000000 --- a/test/__tests__/data/iterable_router.json +++ /dev/null @@ -1,1141 +0,0 @@ -[ - { - "description": "Iterable router rETL tests", - "input": [ - { - "message": { - "receivedAt": "2022-09-27T11:12:59.080Z", - "sentAt": "2022-09-27T11:13:03.777Z", - "messageId": "9ad41366-8060-4c9f-b181-f6bea67d5469", - "originalTimestamp": "2022-09-27T11:13:03.777Z", - "traits": { - "ruchira": "donaldbaker@ellis.com", - "new_field2": "GB" - }, - "channel": "sources", - "context": { - "sources": { - "version": "feat.SupportForTrack", - "job_run_id": "ccpdlajh6cfi19mr1vs0", - "task_run_id": "ccpdlajh6cfi19mr1vsg", - "batch_id": "4917ad78-280b-40d2-a30d-119434152a0f", - "job_id": "2FLKJDcTdjPHQpq7pUjB34dQ5w6/Syncher", - "task_id": "rows_100" - }, - "mappedToDestination": "true", - "externalId": [ - { - "id": "Tiffany", - "type": "ITERABLE-test-ruchira", - "identifierType": "itemId" - } - ] - }, - "timestamp": "2022-09-27T11:12:59.079Z", - "type": "identify", - "userId": "Tiffany", - "recordId": "10", - "request_ip": "10.1.86.248" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "apiKey": "583af2f8-15ba-49c0-8511-76383e7de07e", - "hubID": "22066036" - }, - "Enabled": true - } - }, - { - "message": { - "receivedAt": "2022-09-27T11:12:59.080Z", - "sentAt": "2022-09-27T11:13:03.777Z", - "messageId": "9ad41366-8060-4c9f-b181-f6bea67d5469", - "originalTimestamp": "2022-09-27T11:13:03.777Z", - "traits": { - "ruchira": "abc@ellis.com", - "new_field2": "GB1" - }, - "channel": "sources", - "context": { - "sources": { - "version": "feat.SupportForTrack", - "job_run_id": "ccpdlajh6cfi19mr1vs0", - "task_run_id": "ccpdlajh6cfi19mr1vsg", - "batch_id": "4917ad78-280b-40d2-a30d-119434152a0f", - "job_id": "2FLKJDcTdjPHQpq7pUjB34dQ5w6/Syncher", - "task_id": "rows_100" - }, - "mappedToDestination": "true", - "externalId": [ - { - "id": "ABC", - "type": "ITERABLE-test-ruchira", - "identifierType": "itemId" - } - ] - }, - "timestamp": "2022-09-27T11:12:59.079Z", - "type": "identify", - "userId": "Tiffany", - "recordId": "10", - "request_ip": "10.1.86.248" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "apiKey": "583af2f8-15ba-49c0-8511-76383e7de07e", - "hubID": "22066036" - }, - "Enabled": true - } - } - ], - "output": [ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/catalogs/test-ruchira/items", - "headers": { - "Content-Type": "application/json", - "api_key": "583af2f8-15ba-49c0-8511-76383e7de07e" - }, - "params": {}, - "body": { - "JSON": { - "documents": { - "Tiffany": { - "ruchira": "donaldbaker@ellis.com", - "new_field2": "GB" - }, - "ABC": { - "ruchira": "abc@ellis.com", - "new_field2": "GB1" - } - }, - "replaceUploadedFieldsOnly": true - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 2 - }, - { - "jobId": 2 - } - ], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "583af2f8-15ba-49c0-8511-76383e7de07e", - "hubID": "22066036" - }, - "Enabled": true - } - } - ] - }, - { - "description": "Iterable router batch tests", - "input": [ - { - "message": { - "type": "identify", - "event": "Details", - "sentAt": "2020-08-28T16:26:06.466Z", - "traits": { - "city": "Bangalore", - "name": "manashi", - "email": "manashi@website.com", - "country": "India" - }, - "context": { - "traits": { - "city": "Bangalore", - "name": "manashi", - "email": "manashi@website.com", - "country": "India" - }, - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-cc3ef811f686139ee527b806ee0129ef-163a3a88-266f-447e-8cce-34a8f42f8dcd", - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.462Z" - }, - "metadata": { - "jobId": 1, - "userId": "1" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - { - "message": { - "type": "track", - "event": "Email Opened", - "sentAt": "2020-08-28T16:26:16.473Z", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453", - "properties": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - }, - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.468Z" - }, - "metadata": { - "jobId": 2, - "userId": "1" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - { - "message": { - "type": "identify", - "event": "Details", - "sentAt": "2020-08-28T16:26:06.466Z", - "traits": { - "city": "Bangalore", - "name": "rudder", - "email": "test@website.com", - "country": "India" - }, - "context": { - "traits": { - "city": "Bangalore", - "name": "rudder", - "email": "test@website.com", - "country": "India" - }, - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-cc3ef811f686139ee527b806ee0129ef-163a3a88-266f-447e-8cce-34a8f42f8dcd", - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.462Z" - }, - "metadata": { - "jobId": 3, - "userId": "2" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - { - "message": { - "type": "track", - "event": "Link Clicked", - "sentAt": "2020-08-28T16:26:16.473Z", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453", - "properties": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - }, - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.468Z" - }, - "metadata": { - "jobId": 4, - "userId": "2" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - { - "message": { - "type": "track", - "event": "Email Deleted", - "sentAt": "2020-08-28T16:26:16.473Z", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453", - "properties": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - }, - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.468Z" - }, - "metadata": { - "jobId": 5, - "userId": "2" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - { - "message": { - "type": "track", - "event": "Email Opened", - "sentAt": "2020-08-28T16:26:16.473Z", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453", - "properties": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - }, - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.468Z" - }, - "metadata": { - "jobId": 6, - "userId": "3" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - { - "message": { - "type": "identify", - "event": "Details", - "sentAt": "2020-08-28T16:26:06.466Z", - "traits": { - "city": "Bangalore", - "name": "rudder", - "email": "test+1@website.com", - "country": "India" - }, - "context": { - "traits": { - "city": "Bangalore", - "name": "rudder", - "email": "test+1@website.com", - "country": "India" - }, - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-cc3ef811f686139ee527b806ee0129ef-163a3a88-266f-447e-8cce-34a8f42f8dcd", - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.462Z" - }, - "metadata": { - "jobId": 7, - "userId": "3" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - { - "message": { - "type": "track", - "event": "Email Sent", - "sentAt": "2020-08-28T16:26:16.473Z", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453", - "properties": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - }, - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.468Z" - }, - "metadata": { - "jobId": 8, - "userId": "4" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - { - "message": { - "type": "identify", - "event": "Details", - "sentAt": "2020-08-28T16:26:06.466Z", - "traits": { - "city": "Bangalore", - "name": "rudder", - "email": "test+2@website.com", - "country": "India" - }, - "context": { - "traits": { - "city": "Bangalore", - "name": "rudder", - "email": "test+2@website.com", - "country": "India" - }, - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-cc3ef811f686139ee527b806ee0129ef-163a3a88-266f-447e-8cce-34a8f42f8dcd", - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.462Z" - }, - "metadata": { - "jobId": 9, - "userId": "4" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - { - "message": { - "type": "identify", - "event": "Details", - "sentAt": "2020-08-28T16:26:06.466Z", - "traits": { - "city": "Bangalore", - "name": "rudder", - "email": "test+3@website.com", - "country": "India" - }, - "context": { - "traits": { - "city": "Bangalore", - "name": "rudder", - "email": "test+3@website.com", - "country": "India" - }, - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-cc3ef811f686139ee527b806ee0129ef-163a3a88-266f-447e-8cce-34a8f42f8dcd", - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.462Z" - }, - "metadata": { - "jobId": 10, - "userId": "5" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - { - "message": { - "type": "track", - "event": "Email Received", - "sentAt": "2020-08-28T16:26:16.473Z", - "context": { - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453", - "properties": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - }, - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.468Z" - }, - "metadata": { - "jobId": 11, - "userId": "5" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - { - "message": { - "type": "identify", - "event": "Details", - "sentAt": "2020-08-28T16:26:06.466Z", - "traits": { - "city": "Bangalore", - "name": "rudder", - "email": "test+7@website.com", - "country": "India" - }, - "context": { - "traits": { - "city": "Bangalore", - "name": "rudder", - "email": "test+7@website.com", - "country": "India" - }, - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-cc3ef811f686139ee527b806ee0129ef-163a3a88-266f-447e-8cce-34a8f42f8dcd", - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.462Z" - }, - "metadata": { - "jobId": 12, - "userId": "5" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - { - "message": { - "type": "identify", - "event": "Details", - "sentAt": "2020-08-28T16:26:06.466Z", - "traits": { - "city": "Bangalore", - "name": "rudder", - "email": "test+4@website.com", - "country": "India" - }, - "context": { - "traits": { - "city": "Bangalore", - "name": "rudder", - "email": "test+4@website.com", - "country": "India" - }, - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-cc3ef811f686139ee527b806ee0129ef-163a3a88-266f-447e-8cce-34a8f42f8dcd", - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.462Z" - }, - "metadata": { - "jobId": 13, - "userId": "6" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - { - "message": { - "type": "identify", - "event": "Details", - "sentAt": "2020-08-28T16:26:06.466Z", - "traits": { - "city": "Bangalore", - "name": "rudder", - "email": "test+5@website.com", - "country": "India" - }, - "context": { - "traits": { - "city": "Bangalore", - "name": "rudder", - "email": "test+5@website.com", - "country": "India" - }, - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-cc3ef811f686139ee527b806ee0129ef-163a3a88-266f-447e-8cce-34a8f42f8dcd", - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.462Z" - }, - "metadata": { - "jobId": 14, - "userId": "6" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - { - "message": { - "type": "identify", - "event": "Details", - "sentAt": "2020-08-28T16:26:06.466Z", - "traits": { - "city": "Bangalore", - "name": "rudder", - "email": "test+6@website.com", - "country": "India" - }, - "context": { - "traits": { - "city": "Bangalore", - "name": "rudder", - "email": "test+6@website.com", - "country": "India" - }, - "library": { - "name": "analytics-node", - "version": "0.0.3" - } - }, - "_metadata": { - "nodeVersion": "10.22.0" - }, - "messageId": "node-cc3ef811f686139ee527b806ee0129ef-163a3a88-266f-447e-8cce-34a8f42f8dcd", - "anonymousId": "abcdeeeeeeeexxxx102", - "originalTimestamp": "2020-08-28T16:26:06.462Z" - }, - "metadata": { - "jobId": 15, - "userId": "6" - }, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - } - ], - "output": [ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/users/bulkUpdate", - "headers": { - "Content-Type": "application/json", - "api_key": "62d12498c37c4fd8a1a546c2d35c2f60" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "email": "manashi@website.com", - "dataFields": { - "city": "Bangalore", - "name": "manashi", - "email": "manashi@website.com", - "country": "India" - }, - "userId": "abcdeeeeeeeexxxx102", - "preferUserId": true, - "mergeNestedObjects": true - }, - { - "email": "test@website.com", - "dataFields": { - "city": "Bangalore", - "name": "rudder", - "email": "test@website.com", - "country": "India" - }, - "userId": "abcdeeeeeeeexxxx102", - "preferUserId": true, - "mergeNestedObjects": true - }, - { - "email": "test+3@website.com", - "dataFields": { - "city": "Bangalore", - "name": "rudder", - "email": "test+3@website.com", - "country": "India" - }, - "userId": "abcdeeeeeeeexxxx102", - "preferUserId": true, - "mergeNestedObjects": true - }, - { - "email": "test+4@website.com", - "dataFields": { - "city": "Bangalore", - "name": "rudder", - "email": "test+4@website.com", - "country": "India" - }, - "userId": "abcdeeeeeeeexxxx102", - "preferUserId": true, - "mergeNestedObjects": true - }, - { - "email": "test+5@website.com", - "dataFields": { - "city": "Bangalore", - "name": "rudder", - "email": "test+5@website.com", - "country": "India" - }, - "userId": "abcdeeeeeeeexxxx102", - "preferUserId": true, - "mergeNestedObjects": true - }, - { - "email": "test+6@website.com", - "dataFields": { - "city": "Bangalore", - "name": "rudder", - "email": "test+6@website.com", - "country": "India" - }, - "userId": "abcdeeeeeeeexxxx102", - "preferUserId": true, - "mergeNestedObjects": true - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 1, - "userId": "1" - }, - { - "jobId": 3, - "userId": "2" - }, - { - "jobId": 10, - "userId": "5" - }, - { - "jobId": 13, - "userId": "6" - }, - { - "jobId": 14, - "userId": "6" - }, - { - "jobId": 15, - "userId": "6" - } - ], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/events/trackBulk", - "headers": { - "Content-Type": "application/json", - "api_key": "62d12498c37c4fd8a1a546c2d35c2f60" - }, - "params": {}, - "body": { - "JSON": { - "events": [ - { - "dataFields": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - }, - "userId": "abcdeeeeeeeexxxx102", - "eventName": "Email Opened", - "createdAt": 1598631966468 - }, - { - "dataFields": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - }, - "userId": "abcdeeeeeeeexxxx102", - "eventName": "Link Clicked", - "createdAt": 1598631966468 - }, - { - "dataFields": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - }, - "userId": "abcdeeeeeeeexxxx102", - "eventName": "Email Deleted", - "createdAt": 1598631966468 - }, - { - "dataFields": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - }, - "userId": "abcdeeeeeeeexxxx102", - "eventName": "Email Opened", - "createdAt": 1598631966468 - }, - { - "dataFields": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - }, - "userId": "abcdeeeeeeeexxxx102", - "eventName": "Email Sent", - "createdAt": 1598631966468 - }, - { - "dataFields": { - "subject": "resume validate", - "sendtime": "2020-01-01", - "sendlocation": "akashdeep@gmail.com" - }, - "userId": "abcdeeeeeeeexxxx102", - "eventName": "Email Received", - "createdAt": 1598631966468 - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 2, - "userId": "1" - }, - { - "jobId": 4, - "userId": "2" - }, - { - "jobId": 5, - "userId": "2" - }, - { - "jobId": 6, - "userId": "3" - }, - { - "jobId": 8, - "userId": "4" - }, - { - "jobId": 11, - "userId": "5" - } - ], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.iterable.com/api/users/bulkUpdate", - "headers": { - "Content-Type": "application/json", - "api_key": "62d12498c37c4fd8a1a546c2d35c2f60" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "email": "test+1@website.com", - "dataFields": { - "city": "Bangalore", - "name": "rudder", - "email": "test+1@website.com", - "country": "India" - }, - "userId": "abcdeeeeeeeexxxx102", - "preferUserId": true, - "mergeNestedObjects": true - }, - { - "email": "test+2@website.com", - "dataFields": { - "city": "Bangalore", - "name": "rudder", - "email": "test+2@website.com", - "country": "India" - }, - "userId": "abcdeeeeeeeexxxx102", - "preferUserId": true, - "mergeNestedObjects": true - }, - { - "email": "test+7@website.com", - "dataFields": { - "city": "Bangalore", - "name": "rudder", - "email": "test+7@website.com", - "country": "India" - }, - "userId": "abcdeeeeeeeexxxx102", - "preferUserId": true, - "mergeNestedObjects": true - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 7, - "userId": "3" - }, - { - "jobId": 9, - "userId": "4" - }, - { - "jobId": 12, - "userId": "5" - } - ], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", - "mapToSingleEvent": false, - "trackAllPages": true, - "trackCategorisedPages": false, - "trackNamedPages": false - }, - "Enabled": true - } - } - ] - }, - { - "description": "Iterable no event test", - "input": [], - "output": [ - { - "batched": false, - "error": "Invalid event array", - "metadata": null, - "statusCode": 400 - } - ] - } -] \ No newline at end of file diff --git a/test/__tests__/data/iterable_source_input.json b/test/__tests__/data/iterable_source_input.json index eac59970946..798b0818c17 100644 --- a/test/__tests__/data/iterable_source_input.json +++ b/test/__tests__/data/iterable_source_input.json @@ -1,12 +1,12 @@ [ { - "email": "rohith@abcd.com", + "email": "test@rudderstack.com", "eventName": "emailSubscribe", "dataFields": { "profileUpdatedAt": "2022-04-19 03:33:50 +00:00", "publicIdString": "ad474bf7-e785-480f-b9d0-861b85ab5bf5", "signupSource": "WebForm", - "email": "rohith@abcd.com", + "email": "test@rudderstack.com", "createdAt": "2022-04-19 03:33:50 +00:00", "messageTypeIds": [], "emailListIds": [1589748], @@ -27,7 +27,7 @@ } }, { - "email": "rohith@rudd.com", + "email": "test@ruddstack.com", "eventTitle": "smsReceived", "dataFields": { "fromPhoneNumber": "+16503926753", @@ -38,15 +38,15 @@ } }, { - "email": "rohith@xyz.com", + "email": "test@rudderstack.com", "eventName": "inAppSendSkip" }, { - "email": "rohith@iter.com", + "email": "test@rudderstack.com", "eventName": "emailSend", "dataFields": { "contentId": 331201, - "email": "rohith@iter.com", + "email": "test@rudderstack.com", "createdAt": "2016-12-02 20:21:04 +00:00", "campaignId": 59667, "templateId": 93849, @@ -169,7 +169,7 @@ } }, { - "email": "rohith@abcd.com", + "email": "test@rudderstack.com", "eventName": "emailSubscribe", "dataFields": { "profileUpdatedAt": "2022-04-19 03:33:50 +00:00", diff --git a/test/__tests__/data/iterable_source_output.json b/test/__tests__/data/iterable_source_output.json index 9cd82e76ed9..b1ff8172412 100644 --- a/test/__tests__/data/iterable_source_output.json +++ b/test/__tests__/data/iterable_source_output.json @@ -1,6 +1,6 @@ [ { - "userId": "49431605de12d411bd21df8d909667b9", + "userId": "5b6a3426dba2cb24e4f0aeec43bee9d7", "context": { "integration": { "name": "Iterable", @@ -11,7 +11,7 @@ "version": "unknown" }, "traits": { - "email": "rohith@abcd.com" + "email": "test@rudderstack.com" } }, "event": "emailSubscribe", @@ -48,7 +48,7 @@ "version": "unknown" }, "traits": { - "email": "rohith@xyz.com" + "email": "test@rudderstack.com" } }, "event": "inAppSendSkip", @@ -56,10 +56,10 @@ "Iterable": false }, "type": "track", - "userId": "7fed00989ed61c7e22a0855a7b38cd34" + "userId": "5b6a3426dba2cb24e4f0aeec43bee9d7" }, { - "userId": "1b546c04424c5c9effc17739c849fb6b", + "userId": "5b6a3426dba2cb24e4f0aeec43bee9d7", "context": { "integration": { "name": "Iterable", @@ -70,7 +70,7 @@ "version": "unknown" }, "traits": { - "email": "rohith@iter.com" + "email": "test@rudderstack.com" } }, "event": "emailSend", @@ -294,7 +294,7 @@ "type": "track" }, { - "userId": "49431605de12d411bd21df8d909667b9", + "userId": "5b6a3426dba2cb24e4f0aeec43bee9d7", "context": { "integration": { "name": "Iterable", @@ -305,7 +305,7 @@ "version": "unknown" }, "traits": { - "email": "rohith@abcd.com" + "email": "test@rudderstack.com" } }, "event": "emailSubscribe", diff --git a/test/__tests__/data/june.json b/test/__tests__/data/june.json deleted file mode 100644 index f81577c6b92..00000000000 --- a/test/__tests__/data/june.json +++ /dev/null @@ -1,574 +0,0 @@ -[ - { - "description": "No Message type", - "input": { - "message": { - "userId": "test@123", - "context": { - "traits": { - "email": "test@rudderstack.com", - "username": "Samle_putUserName", - "firstName": "uday" - } - }, - "integrations": { - "All": true, - "user.com": { - "lookup": "email" - } - } - }, - "destination": { - "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2" - } - } - }, - "output": { - "error": "Event type is required" - } - }, - { - "description": "Unsupported Type", - "input": { - "message": { - "userId": "test@123", - "type": "trackUser", - "context": { - "traits": { - "email": "test@rudderstack.com", - "firstName": "test", - "lastName": "rudderstack", - "age": 15, - "gender": "male", - "status": "user", - "city": "Kalkata", - "country": "india", - "tags": [ - "productuser" - ], - "phone": "9225467887" - } - } - }, - "destination": { - "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2" - } - } - }, - "output": { - "error": "Event type \"trackuser\" is not supported" - } - }, - { - "description": "Identify call without userId", - "input": { - "destination": { - "Config": { - "apiKey": "93EMyDLvfpbRxxYn" - }, - "ID": "june123" - }, - "message": { - "type": "identify", - "context": { - "traits": { - "name": "John Doe", - "email": "johndoe@gmail.com", - "age": 25 - } - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - "output": { - "error": "Missing required value from \"userIdOnly\"" - } - }, - { - "description": "Identify call with userId, traits", - "input": { - "destination": { - "Config": { - "apiKey": "93EMyDLvfpbRxxYn" - }, - "ID": "june123" - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "channel": "web", - "userId": "5136633649", - "context": { - "traits": { - "name": "John Doe", - "email": "johndoe@gmail.com", - "age": 25 - } - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.june.so/api/identify", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic 93EMyDLvfpbRxxYn" - }, - "params": {}, - "body": { - "JSON": { - "userId": "5136633649", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "traits": { - "name": "John Doe", - "email": "johndoe@gmail.com", - "age": 25 - }, - "timestamp": "2022-01-20T13:39:21.032Z" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track call without userId", - "input": { - "destination": { - "Config": { - "apiKey": "93EMyDLvfpbRxxYn" - }, - "ID": "june123" - }, - "message": { - "type": "track", - "event": "Product Reviewed", - "properties": { - "review_id": "12345", - "product_id": "123", - "rating": 3.0, - "review_body": "Average product, expected much more.", - "groupId": "91Yb32830" - }, - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - "output": { - "error": "Missing required value from \"userIdOnly\"" - } - }, - { - "description": "Track call without groupId", - "input": { - "destination": { - "Config": { - "apiKey": "93EMyDLvfpbRxxYn" - }, - "ID": "june123" - }, - "message": { - "type": "track", - "event": "Product Reviewed", - "userId": "5136633649", - "properties": { - "review_id": "12345", - "product_id": "123", - "rating": 3.0, - "review_body": "Average product, expected much more." - }, - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.june.so/api/track", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic 93EMyDLvfpbRxxYn" - }, - "params": {}, - "body": { - "JSON": { - "userId": "5136633649", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "event": "Product Reviewed", - "properties": { - "review_id": "12345", - "product_id": "123", - "rating": 3, - "review_body": "Average product, expected much more." - }, - "timestamp": "2022-01-20T13:39:21.032Z" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track call without properties", - "input": { - "destination": { - "Config": { - "apiKey": "93EMyDLvfpbRxxYn" - }, - "ID": "june123" - }, - "message": { - "type": "track", - "event": "Product Reviewed", - "userId": "5136633649", - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.june.so/api/track", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic 93EMyDLvfpbRxxYn" - }, - "params": {}, - "body": { - "JSON": { - "userId": "5136633649", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "event": "Product Reviewed", - "timestamp": "2022-01-20T13:39:21.032Z" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track call with userId, groupId and properties", - "input": { - "destination": { - "Config": { - "apiKey": "93EMyDLvfpbRxxYn" - }, - "ID": "june123" - }, - "message": { - "type": "track", - "event": "Product Reviewed", - "userId": "5136633649", - "properties": { - "review_id": "12345", - "product_id": "123", - "rating": 3.0, - "review_body": "Average product, expected much more.", - "groupId": "91Yb32830" - }, - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.june.so/api/track", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic 93EMyDLvfpbRxxYn" - }, - "params": {}, - "body": { - "JSON": { - "userId": "5136633649", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "event": "Product Reviewed", - "properties": { - "review_id": "12345", - "product_id": "123", - "rating": 3, - "review_body": "Average product, expected much more." - }, - "timestamp": "2022-01-20T13:39:21.032Z", - "context": { - "groupId": "91Yb32830" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track call with userId, groupId (from externalId) and properties", - "input": { - "destination": { - "Config": { - "apiKey": "93EMyDLvfpbRxxYn" - }, - "ID": "june123" - }, - "message": { - "type": "track", - "event": "Product Reviewed", - "userId": "5136633649", - "properties": { - "review_id": "12345", - "product_id": "123", - "rating": 3.0, - "review_body": "Average product, expected much more.", - "groupId": "test-12345" - }, - "context": { - "externalId": [ - { - "type": "juneGroupId", - "id": "91Yb32830" - } - ] - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.june.so/api/track", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic 93EMyDLvfpbRxxYn" - }, - "params": {}, - "body": { - "JSON": { - "userId": "5136633649", - "event": "Product Reviewed", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "properties": { - "review_id": "12345", - "product_id": "123", - "rating": 3, - "review_body": "Average product, expected much more." - }, - "timestamp": "2022-01-20T13:39:21.032Z", - "context": { - "groupId": "91Yb32830" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Group call with userId, groupId and traits", - "input": { - "destination": { - "Config": { - "apiKey": "93EMyDLvfpbRxxYn" - }, - "ID": "june123" - }, - "message": { - "type": "group", - "userId": "5136633649", - "traits": { - "name": "Initech", - "employees": 500, - "headquarters": "Redwood City, California, United States", - "ceo": "John Doe", - "revenue": 70000000, - "currency": "USD", - "groupId": "9230AUbd2138h" - }, - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.june.so/api/group", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic 93EMyDLvfpbRxxYn" - }, - "params": {}, - "body": { - "JSON": { - "userId": "5136633649", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "groupId": "9230AUbd2138h", - "traits": { - "name": "Initech", - "employees": 500, - "headquarters": "Redwood City, California, United States", - "ceo": "John Doe", - "revenue": 70000000, - "currency": "USD" - }, - "timestamp": "2022-01-20T13:39:21.032Z" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Page call with properties", - "input": { - "destination": { - "Config": { - "apiKey": "123456" - }, - "ID": "june123" - }, - "message": { - "type": "page", - "userId": "5136633649", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "rudderTest@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "properties": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "originalTimestamp": "2023-08-06T13:39:21.032Z" - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.june.so/api/page", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic 123456" - }, - "params": {}, - "body": { - "JSON": { - "userId": "5136633649", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "properties": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "timestamp": "2023-08-06T13:39:21.032Z" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - } -] \ No newline at end of file diff --git a/test/__tests__/data/june_router.json b/test/__tests__/data/june_router.json deleted file mode 100644 index e2168364bcb..00000000000 --- a/test/__tests__/data/june_router.json +++ /dev/null @@ -1,123 +0,0 @@ -[ - { - "input": [ - { - "destination": { - "Config": { - "apiKey": "93EMyDLvfpbRxxYn" - }, - "ID": "june123" - }, - "metadata": { - "jobId": 1 - }, - "message": { - "type": "identify", - "sentAt": "2022-01-20T13:39:21.033Z", - "channel": "web", - "userId": "5136633649", - "context": { - "traits": { - "name": "John Doe", - "email": "johndoe@gmail.com", - "age": 25 - } - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - }, - { - "destination": { - "Config": { - "apiKey": "93EMyDLvfpbRxxYn" - }, - "ID": "june123" - }, - "metadata": { - "jobId": 2 - }, - "message": { - "type": "track", - "event": "Product Reviewed", - "properties": { - "review_id": "12345", - "product_id": "123", - "rating": 3.0, - "review_body": "Average product, expected much more.", - "groupId": "91Yb32830" - }, - "context": {}, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "originalTimestamp": "2022-01-20T13:39:21.032Z" - } - } - ], - "output": [ - { - "batched": false, - "batchedRequest": { - "body": { - "FORM": {}, - "JSON": { - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "timestamp": "2022-01-20T13:39:21.032Z", - "traits": { - "age": 25, - "email": "johndoe@gmail.com", - "name": "John Doe" - }, - "userId": "5136633649" - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "endpoint": "https://api.june.so/api/identify", - "files": {}, - "headers": { - "Authorization": "Basic 93EMyDLvfpbRxxYn", - "Content-Type": "application/json" - }, - "method": "POST", - "params": {}, - "type": "REST", - "version": "1" - }, - "destination": { - "Config": { - "apiKey": "93EMyDLvfpbRxxYn" - }, - "ID": "june123" - }, - "metadata": [ - { - "jobId": 1 - } - ], - "statusCode": 200 - }, - { - "destination": { - "Config": { - "apiKey": "93EMyDLvfpbRxxYn" - }, - "ID": "june123" - }, - "batched": false, - "error": "Missing required value from \"userIdOnly\"", - "metadata": [ - { - "jobId": 2 - } - ], - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - }, - "statusCode": 400 - } - ] - } -] \ No newline at end of file diff --git a/test/__tests__/data/kafka.json b/test/__tests__/data/kafka.json deleted file mode 100644 index 720ae1fec28..00000000000 --- a/test/__tests__/data/kafka.json +++ /dev/null @@ -1,571 +0,0 @@ -[ - { - "description": "Test case with null destination config", - "input": { - "destination": { - "ID": "kafkadestinationid", - "Name": "Kafka", - "Config": null, - "Enabled": true, - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "anonymousId", - "context": { - "library": { - "name": "analytics-go", - "version": "3.0.0" - } - }, - "event": "event", - "integrations": { - "Kafka": true - }, - "messageId": "messageId", - "originalTimestamp": "2019-07-18T15:00:00Z", - "properties": { - "key": "value" - }, - "receivedAt": "2019-07-18T15:00:00Z", - "sentAt": "2019-07-18T15:00:00Z", - "timestamp": "2019-07-18T15:00:00Z", - "type": "track", - "userId": "userId" - } - }, - "output": { - "message": { - "anonymousId": "anonymousId", - "context": { - "library": { - "name": "analytics-go", - "version": "3.0.0" - } - }, - "event": "event", - "integrations": { - "Kafka": true - }, - "messageId": "messageId", - "originalTimestamp": "2019-07-18T15:00:00Z", - "properties": { - "key": "value" - }, - "receivedAt": "2019-07-18T15:00:00Z", - "sentAt": "2019-07-18T15:00:00Z", - "timestamp": "2019-07-18T15:00:00Z", - "type": "track", - "userId": "userId" - }, - "userId": "userId" - } - }, - { - "description": "Test case without userId", - "input": { - "destination": { - "ID": "kafkadestinationid", - "Name": "Kafka", - "Config": null, - "Enabled": true, - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "anonymousId", - "context": { - "library": { - "name": "analytics-go", - "version": "3.0.0" - } - }, - "event": "event", - "integrations": { - "Kafka": true - }, - "messageId": "messageId", - "originalTimestamp": "2019-07-18T15:00:00Z", - "properties": { - "key": "value" - }, - "receivedAt": "2019-07-18T15:00:00Z", - "sentAt": "2019-07-18T15:00:00Z", - "timestamp": "2019-07-18T15:00:00Z", - "type": "track" - } - }, - "output": { - "message": { - "anonymousId": "anonymousId", - "context": { - "library": { - "name": "analytics-go", - "version": "3.0.0" - } - }, - "event": "event", - "integrations": { - "Kafka": true - }, - "messageId": "messageId", - "originalTimestamp": "2019-07-18T15:00:00Z", - "properties": { - "key": "value" - }, - "receivedAt": "2019-07-18T15:00:00Z", - "sentAt": "2019-07-18T15:00:00Z", - "timestamp": "2019-07-18T15:00:00Z", - "type": "track" - }, - "userId": "anonymousId" - } - }, - { - "description": "Test case with null dest config and avro schema", - "input": { - "destination": { - "ID": "kafkadestinationid", - "Name": "Kafka", - "Config": null, - "Enabled": true, - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "anonymousId", - "context": { - "library": { - "name": "analytics-go", - "version": "3.0.0" - } - }, - "event": "event", - "integrations": { - "Kafka": { - "schemaId": "schema001" - } - }, - "messageId": "messageId", - "originalTimestamp": "2019-07-18T15:00:00Z", - "properties": { - "key": "value" - }, - "receivedAt": "2019-07-18T15:00:00Z", - "sentAt": "2019-07-18T15:00:00Z", - "timestamp": "2019-07-18T15:00:00Z", - "type": "track", - "userId": "userId" - } - }, - "output": { - "message": { - "anonymousId": "anonymousId", - "context": { - "library": { - "name": "analytics-go", - "version": "3.0.0" - } - }, - "event": "event", - "integrations": { - "Kafka": { - "schemaId": "schema001" - } - }, - "messageId": "messageId", - "originalTimestamp": "2019-07-18T15:00:00Z", - "properties": { - "key": "value" - }, - "receivedAt": "2019-07-18T15:00:00Z", - "sentAt": "2019-07-18T15:00:00Z", - "timestamp": "2019-07-18T15:00:00Z", - "type": "track", - "userId": "userId" - }, - "userId": "userId", - "schemaId": "schema001" - } - }, - { - "description": "Test case with null dest config and integrations topic", - "input": { - "destination": { - "ID": "kafkadestinationid", - "Name": "Kafka", - "Config": null, - "Enabled": true, - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "anonymousId", - "context": { - "library": { - "name": "analytics-go", - "version": "3.0.0" - } - }, - "event": "event", - "integrations": { - "Kafka": { - "topic": "specific-topic" - } - }, - "messageId": "messageId", - "originalTimestamp": "2019-07-18T15:00:00Z", - "properties": { - "key": "value" - }, - "receivedAt": "2019-07-18T15:00:00Z", - "sentAt": "2019-07-18T15:00:00Z", - "timestamp": "2019-07-18T15:00:00Z", - "type": "track", - "userId": "userId" - } - }, - "output": { - "message": { - "anonymousId": "anonymousId", - "context": { - "library": { - "name": "analytics-go", - "version": "3.0.0" - } - }, - "event": "event", - "integrations": { - "Kafka": { - "topic": "specific-topic" - } - }, - "messageId": "messageId", - "originalTimestamp": "2019-07-18T15:00:00Z", - "properties": { - "key": "value" - }, - "receivedAt": "2019-07-18T15:00:00Z", - "sentAt": "2019-07-18T15:00:00Z", - "timestamp": "2019-07-18T15:00:00Z", - "type": "track", - "userId": "userId" - }, - "userId": "userId", - "topic": "specific-topic" - } - }, - { - "description": "Test case with dest config with default topic", - "input": { - "destination": { - "ID": "kafkadestinationid", - "Name": "Kafka", - "Config": { - "topic": "default-topic" - }, - "Enabled": true, - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "anonymousId", - "context": { - "library": { - "name": "analytics-go", - "version": "3.0.0" - } - }, - "event": "event", - "messageId": "messageId", - "originalTimestamp": "2019-07-18T15:00:00Z", - "properties": { - "key": "value" - }, - "receivedAt": "2019-07-18T15:00:00Z", - "sentAt": "2019-07-18T15:00:00Z", - "timestamp": "2019-07-18T15:00:00Z", - "type": "track", - "userId": "userId" - } - }, - "output": { - "message": { - "anonymousId": "anonymousId", - "context": { - "library": { - "name": "analytics-go", - "version": "3.0.0" - } - }, - "event": "event", - "messageId": "messageId", - "originalTimestamp": "2019-07-18T15:00:00Z", - "properties": { - "key": "value" - }, - "receivedAt": "2019-07-18T15:00:00Z", - "sentAt": "2019-07-18T15:00:00Z", - "timestamp": "2019-07-18T15:00:00Z", - "type": "track", - "userId": "userId" - }, - "userId": "userId", - "topic": "default-topic" - } - }, - { - "description": "Test case with dest config with event type topic", - "input": { - "destination": { - "ID": "kafkadestinationid", - "Name": "Kafka", - "Config": { - "topic": "default-topic", - "enableMultiTopic": true, - "eventTypeToTopicMap": [ - { - "from": "identify", - "to": "identify-topic" - }, - { - "from": "page", - "to": "page-topic" - }, - { - "from": "screen", - "to": "screen-topic" - }, - { - "from": "group", - "to": "group-topic" - }, - { - "from": "alias", - "to": "alias-topic" - } - ], - "eventToTopicMap": [ - { - "from": "Product Added", - "to": "product-added" - } - ] - }, - "Enabled": true, - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "anonymousId", - "context": { - "library": { - "name": "analytics-go", - "version": "3.0.0" - } - }, - "messageId": "messageId", - "originalTimestamp": "2019-07-18T15:00:00Z", - "properties": { - "key": "value" - }, - "receivedAt": "2019-07-18T15:00:00Z", - "sentAt": "2019-07-18T15:00:00Z", - "timestamp": "2019-07-18T15:00:00Z", - "type": "identify", - "userId": "userId" - } - }, - "output": { - "message": { - "anonymousId": "anonymousId", - "context": { - "library": { - "name": "analytics-go", - "version": "3.0.0" - } - }, - "messageId": "messageId", - "originalTimestamp": "2019-07-18T15:00:00Z", - "properties": { - "key": "value" - }, - "receivedAt": "2019-07-18T15:00:00Z", - "sentAt": "2019-07-18T15:00:00Z", - "timestamp": "2019-07-18T15:00:00Z", - "type": "identify", - "userId": "userId" - }, - "userId": "userId", - "topic": "identify-topic" - } - }, - { - "description": "Test case with dest config with event name topic", - "input": { - "destination": { - "ID": "kafkadestinationid", - "Name": "Kafka", - "Config": { - "topic": "default-topic", - "enableMultiTopic": true, - "eventTypeToTopicMap": [ - { - "from": "identify", - "to": "identify-topic" - }, - { - "from": "page", - "to": "page-topic" - }, - { - "from": "screen", - "to": "screen-topic" - }, - { - "from": "group", - "to": "group-topic" - }, - { - "from": "alias", - "to": "alias-topic" - } - ], - "eventToTopicMap": [ - { - "from": "Product Added", - "to": "product-added" - } - ] - }, - "Enabled": true, - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "anonymousId", - "context": { - "library": { - "name": "analytics-go", - "version": "3.0.0" - } - }, - "event": "Product Added", - "messageId": "messageId", - "originalTimestamp": "2019-07-18T15:00:00Z", - "properties": { - "key": "value" - }, - "receivedAt": "2019-07-18T15:00:00Z", - "sentAt": "2019-07-18T15:00:00Z", - "timestamp": "2019-07-18T15:00:00Z", - "type": "track", - "userId": "userId" - } - }, - "output": { - "message": { - "anonymousId": "anonymousId", - "context": { - "library": { - "name": "analytics-go", - "version": "3.0.0" - } - }, - "event": "Product Added", - "messageId": "messageId", - "originalTimestamp": "2019-07-18T15:00:00Z", - "properties": { - "key": "value" - }, - "receivedAt": "2019-07-18T15:00:00Z", - "sentAt": "2019-07-18T15:00:00Z", - "timestamp": "2019-07-18T15:00:00Z", - "type": "track", - "userId": "userId" - }, - "userId": "userId", - "topic": "product-added" - } - }, - { - "description": "Test case with dest config with event name topic no match", - "input": { - "destination": { - "ID": "kafkadestinationid", - "Name": "Kafka", - "Config": { - "topic": "default-topic", - "enableMultiTopic": true, - "eventTypeToTopicMap": [ - { - "from": "identify", - "to": "identify-topic" - }, - { - "from": "page", - "to": "page-topic" - }, - { - "from": "screen", - "to": "screen-topic" - }, - { - "from": "group", - "to": "group-topic" - }, - { - "from": "alias", - "to": "alias-topic" - } - ], - "eventToTopicMap": [ - { - "from": "Product Added", - "to": "product-added" - } - ] - }, - "Enabled": true, - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "anonymousId", - "context": { - "library": { - "name": "analytics-go", - "version": "3.0.0" - } - }, - "event": "Product Added No match", - "messageId": "messageId", - "originalTimestamp": "2019-07-18T15:00:00Z", - "properties": { - "key": "value" - }, - "receivedAt": "2019-07-18T15:00:00Z", - "sentAt": "2019-07-18T15:00:00Z", - "timestamp": "2019-07-18T15:00:00Z", - "type": "track", - "userId": "userId" - } - }, - "output": { - "message": { - "anonymousId": "anonymousId", - "context": { - "library": { - "name": "analytics-go", - "version": "3.0.0" - } - }, - "event": "Product Added No match", - "messageId": "messageId", - "originalTimestamp": "2019-07-18T15:00:00Z", - "properties": { - "key": "value" - }, - "receivedAt": "2019-07-18T15:00:00Z", - "sentAt": "2019-07-18T15:00:00Z", - "timestamp": "2019-07-18T15:00:00Z", - "type": "track", - "userId": "userId" - }, - "userId": "userId", - "topic": "default-topic" - } - } -] diff --git a/test/__tests__/data/kafka_batch_input.json b/test/__tests__/data/kafka_batch_input.json index f62aa23200e..e69de29bb2d 100644 --- a/test/__tests__/data/kafka_batch_input.json +++ b/test/__tests__/data/kafka_batch_input.json @@ -1,899 +0,0 @@ -[ - { - "message": { - "userId": "user1", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user1", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "messageId": "6f27a4da-cefb-4800-acf1-f467e8aab91c", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "new-topic" - }, - "metadata": { - "rudderId": "user1<<>>new-topic", - "jobId": 1 - }, - "destination": { - "ID": "1uzGR4rn915R6Xts9KRfWAzmgGL", - "Name": "local-kafka-test", - "DestinationDefinition": { - "ID": "1c81NzcId5roSqvQ1R57zhIsC01", - "Name": "KAFKA", - "DisplayName": "Apache Kafka", - "Config": { - "destConfig": { - "defaultConfig": [ - "hostName", - "port", - "topic", - "sslEnabled", - "caCertificate", - "useSASL", - "saslType", - "username", - "password" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["password"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter" - ], - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": null - }, - "Config": { - "caCertificate": "caCertificate", - "hostName": "localhost", - "password": "password", - "port": "29092", - "saslType": "sha256", - "sslEnabled": true, - "topic": "new-topic", - "useSASL": true, - "username": "username" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "userId": "user2", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user2", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "messageId": "fe182d9e-e86e-4db5-ae12-f4b399555fcc", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "new-topic" - }, - "metadata": { - "rudderId": "user2<<>>new-topic", - "jobId": 2 - }, - "destination": { - "ID": "1uzGR4rn915R6Xts9KRfWAzmgGL", - "Name": "local-kafka-test", - "DestinationDefinition": { - "ID": "1c81NzcId5roSqvQ1R57zhIsC01", - "Name": "KAFKA", - "DisplayName": "Apache Kafka", - "Config": { - "destConfig": { - "defaultConfig": [ - "hostName", - "port", - "topic", - "sslEnabled", - "caCertificate", - "useSASL", - "saslType", - "username", - "password" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["password"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter" - ], - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": null - }, - "Config": { - "caCertificate": "caCertificate", - "hostName": "localhost", - "password": "password", - "port": "29092", - "saslType": "sha256", - "sslEnabled": true, - "topic": "new-topic", - "useSASL": true, - "username": "username" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "userId": "user3", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user3", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "messageId": "2803e656-77ff-47ca-9606-90663f9aed38", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "new-topic" - }, - "metadata": { - "rudderId": "user3<<>>new-topic", - "jobId": 3 - }, - "destination": { - "ID": "1uzGR4rn915R6Xts9KRfWAzmgGL", - "Name": "local-kafka-test", - "DestinationDefinition": { - "ID": "1c81NzcId5roSqvQ1R57zhIsC01", - "Name": "KAFKA", - "DisplayName": "Apache Kafka", - "Config": { - "destConfig": { - "defaultConfig": [ - "hostName", - "port", - "topic", - "sslEnabled", - "caCertificate", - "useSASL", - "saslType", - "username", - "password" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["password"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter" - ], - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": null - }, - "Config": { - "caCertificate": "caCertificate", - "hostName": "localhost", - "password": "password", - "port": "29092", - "saslType": "sha256", - "sslEnabled": true, - "topic": "new-topic", - "useSASL": true, - "username": "username" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "userId": "user4", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user4", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "messageId": "87c98fc2-561b-4631-8cd6-1d02cdd1429f", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "new-topic" - }, - "metadata": { - "rudderId": "user4<<>>new-topic", - "jobId": 4 - }, - "destination": { - "ID": "1uzGR4rn915R6Xts9KRfWAzmgGL", - "Name": "local-kafka-test", - "DestinationDefinition": { - "ID": "1c81NzcId5roSqvQ1R57zhIsC01", - "Name": "KAFKA", - "DisplayName": "Apache Kafka", - "Config": { - "destConfig": { - "defaultConfig": [ - "hostName", - "port", - "topic", - "sslEnabled", - "caCertificate", - "useSASL", - "saslType", - "username", - "password" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["password"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter" - ], - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": null - }, - "Config": { - "caCertificate": "caCertificate", - "hostName": "localhost", - "password": "password", - "port": "29092", - "saslType": "sha256", - "sslEnabled": true, - "topic": "new-topic", - "useSASL": true, - "username": "username" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "userId": "user5", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user5", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "integrations": { - "All": true, - "KAFKA": { - "schemaId": "schema001" - } - }, - "messageId": "87c98fc2-561b-4631-8cd6-1d02cdd1429f", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "schemaId": "schema001", - "topic": "new-topic" - }, - "metadata": { - "rudderId": "user5<<>>new-topic", - "jobId": 5 - }, - "destination": { - "ID": "1uzGR4rn915R6Xts9KRfWAzmgGL", - "Name": "local-kafka-test", - "DestinationDefinition": { - "ID": "1c81NzcId5roSqvQ1R57zhIsC01", - "Name": "KAFKA", - "DisplayName": "Apache Kafka", - "Config": { - "destConfig": { - "defaultConfig": [ - "hostName", - "port", - "topic", - "sslEnabled", - "caCertificate", - "useSASL", - "saslType", - "username", - "password" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["password"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter" - ], - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": null - }, - "Config": { - "caCertificate": "caCertificate", - "hostName": "localhost", - "password": "password", - "port": "29092", - "saslType": "sha256", - "sslEnabled": true, - "topic": "new-topic", - "useSASL": true, - "username": "username" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "userId": "user6", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user6", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "integrations": { - "All": true, - "KAFKA": { - "topic": "topic-1" - } - }, - "messageId": "87c98fc2-561b-4631-8cd6-1d02cdd1429f", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "topic-1" - }, - "metadata": { - "rudderId": "user6<<>>topic-1", - "jobId": 6 - }, - "destination": { - "ID": "1uzGR4rn915R6Xts9KRfWAzmgGL", - "Name": "local-kafka-test", - "DestinationDefinition": { - "ID": "1c81NzcId5roSqvQ1R57zhIsC01", - "Name": "KAFKA", - "DisplayName": "Apache Kafka", - "Config": { - "destConfig": { - "defaultConfig": [ - "hostName", - "port", - "topic", - "sslEnabled", - "caCertificate", - "useSASL", - "saslType", - "username", - "password" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["password"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter" - ], - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": null - }, - "Config": { - "caCertificate": "caCertificate", - "hostName": "localhost", - "password": "password", - "port": "29092", - "saslType": "sha256", - "sslEnabled": true, - "topic": "new-topic", - "useSASL": true, - "username": "username" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "userId": "user7", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user7", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "integrations": { - "All": true, - "KAFKA": { - "topic": "topic-1" - } - }, - "messageId": "87c98fc2-561b-4631-8cd6-1d02cdd1429f", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "topic-1" - }, - "metadata": { - "rudderId": "user7<<>>topic-1", - "jobId": 7 - }, - "destination": { - "ID": "1uzGR4rn915R6Xts9KRfWAzmgGL", - "Name": "local-kafka-test", - "DestinationDefinition": { - "ID": "1c81NzcId5roSqvQ1R57zhIsC01", - "Name": "KAFKA", - "DisplayName": "Apache Kafka", - "Config": { - "destConfig": { - "defaultConfig": [ - "hostName", - "port", - "topic", - "sslEnabled", - "caCertificate", - "useSASL", - "saslType", - "username", - "password" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["password"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter" - ], - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": null - }, - "Config": { - "caCertificate": "caCertificate", - "hostName": "localhost", - "password": "password", - "port": "29092", - "saslType": "sha256", - "sslEnabled": true, - "topic": "new-topic", - "useSASL": true, - "username": "username" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "userId": "user8", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user8", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "integrations": { - "All": true, - "KAFKA": { - "topic": "topic-2" - } - }, - "messageId": "87c98fc2-561b-4631-8cd6-1d02cdd1429f", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "topic-2" - }, - "metadata": { - "rudderId": "user8<<>>topic-2", - "jobId": 8 - }, - "destination": { - "ID": "1uzGR4rn915R6Xts9KRfWAzmgGL", - "Name": "local-kafka-test", - "DestinationDefinition": { - "ID": "1c81NzcId5roSqvQ1R57zhIsC01", - "Name": "KAFKA", - "DisplayName": "Apache Kafka", - "Config": { - "destConfig": { - "defaultConfig": [ - "hostName", - "port", - "topic", - "sslEnabled", - "caCertificate", - "useSASL", - "saslType", - "username", - "password" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["password"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter" - ], - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": null - }, - "Config": { - "caCertificate": "caCertificate", - "hostName": "localhost", - "password": "password", - "port": "29092", - "saslType": "sha256", - "sslEnabled": true, - "topic": "new-topic", - "useSASL": true, - "username": "username" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "userId": "user8", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user8", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "integrations": { - "All": true, - "KAFKA": { - "topic": "topic-2" - } - }, - "messageId": "87c98fc2-561b-4631-8cd6-1d02cdd1429f", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "topic-2" - }, - "metadata": { - "rudderId": "user8<<>>topic-2", - "jobId": 9 - }, - "destination": { - "ID": "1uzGR4rn915R6Xts9KRfWAzmgGL", - "Name": "local-kafka-test", - "DestinationDefinition": { - "ID": "1c81NzcId5roSqvQ1R57zhIsC01", - "Name": "KAFKA", - "DisplayName": "Apache Kafka", - "Config": { - "destConfig": { - "defaultConfig": [ - "hostName", - "port", - "topic", - "sslEnabled", - "caCertificate", - "useSASL", - "saslType", - "username", - "password" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["password"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter" - ], - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": null - }, - "Config": { - "caCertificate": "caCertificate", - "hostName": "localhost", - "password": "password", - "port": "29092", - "saslType": "sha256", - "sslEnabled": true, - "topic": "new-topic", - "useSASL": true, - "username": "username" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "message": { - "userId": "user8", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user8", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "integrations": { - "All": true, - "KAFKA": { - "topic": "topic-3" - } - }, - "messageId": "87c98fc2-561b-4631-8cd6-1d02cdd1429f", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "topic-3" - }, - "metadata": { - "rudderId": "user8<<>>topic-3", - "jobId": 10 - }, - "destination": { - "ID": "1uzGR4rn915R6Xts9KRfWAzmgGL", - "Name": "local-kafka-test", - "DestinationDefinition": { - "ID": "1c81NzcId5roSqvQ1R57zhIsC01", - "Name": "KAFKA", - "DisplayName": "Apache Kafka", - "Config": { - "destConfig": { - "defaultConfig": [ - "hostName", - "port", - "topic", - "sslEnabled", - "caCertificate", - "useSASL", - "saslType", - "username", - "password" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["password"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter" - ], - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": null - }, - "Config": { - "caCertificate": "caCertificate", - "hostName": "localhost", - "password": "password", - "port": "29092", - "saslType": "sha256", - "sslEnabled": true, - "topic": "new-topic", - "useSASL": true, - "username": "username" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - } -] diff --git a/test/__tests__/data/kafka_batch_output.json b/test/__tests__/data/kafka_batch_output.json index d4c63523a71..e69de29bb2d 100644 --- a/test/__tests__/data/kafka_batch_output.json +++ b/test/__tests__/data/kafka_batch_output.json @@ -1,564 +0,0 @@ -[ - { - "batchedRequest": [ - { - "userId": "user1", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user1", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "messageId": "6f27a4da-cefb-4800-acf1-f467e8aab91c", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "new-topic" - }, - { - "userId": "user2", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user2", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "messageId": "fe182d9e-e86e-4db5-ae12-f4b399555fcc", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "new-topic" - }, - { - "userId": "user3", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user3", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "messageId": "2803e656-77ff-47ca-9606-90663f9aed38", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "new-topic" - }, - { - "userId": "user4", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user4", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "messageId": "87c98fc2-561b-4631-8cd6-1d02cdd1429f", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "new-topic" - }, - { - "userId": "user5", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user5", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "integrations": { - "All": true, - "KAFKA": { - "schemaId": "schema001" - } - }, - "messageId": "87c98fc2-561b-4631-8cd6-1d02cdd1429f", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "schemaId": "schema001", - "topic": "new-topic" - } - ], - "metadata": [ - { "rudderId": "user1<<>>new-topic", "jobId": 1 }, - { - "rudderId": "user2<<>>new-topic", - "jobId": 2 - }, - { - "rudderId": "user3<<>>new-topic", - "jobId": 3 - }, - { - "rudderId": "user4<<>>new-topic", - "jobId": 4 - }, - { - "rudderId": "user5<<>>new-topic", - "jobId": 5 - } - ], - "destination": { - "ID": "1uzGR4rn915R6Xts9KRfWAzmgGL", - "Name": "local-kafka-test", - "DestinationDefinition": { - "ID": "1c81NzcId5roSqvQ1R57zhIsC01", - "Name": "KAFKA", - "DisplayName": "Apache Kafka", - "Config": { - "destConfig": { - "defaultConfig": [ - "hostName", - "port", - "topic", - "sslEnabled", - "caCertificate", - "useSASL", - "saslType", - "username", - "password" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["password"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter" - ], - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": null - }, - "Config": { - "caCertificate": "caCertificate", - "hostName": "localhost", - "password": "password", - "port": "29092", - "saslType": "sha256", - "sslEnabled": true, - "topic": "new-topic", - "useSASL": true, - "username": "username" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "batchedRequest": [ - { - "userId": "user6", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user6", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "integrations": { - "All": true, - "KAFKA": { - "topic": "topic-1" - } - }, - "messageId": "87c98fc2-561b-4631-8cd6-1d02cdd1429f", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "topic-1" - }, - { - "userId": "user7", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user7", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "integrations": { - "All": true, - "KAFKA": { - "topic": "topic-1" - } - }, - "messageId": "87c98fc2-561b-4631-8cd6-1d02cdd1429f", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "topic-1" - } - ], - "metadata": [ - { - "rudderId": "user6<<>>topic-1", - "jobId": 6 - }, - { - "rudderId": "user7<<>>topic-1", - "jobId": 7 - } - ], - "destination": { - "ID": "1uzGR4rn915R6Xts9KRfWAzmgGL", - "Name": "local-kafka-test", - "DestinationDefinition": { - "ID": "1c81NzcId5roSqvQ1R57zhIsC01", - "Name": "KAFKA", - "DisplayName": "Apache Kafka", - "Config": { - "destConfig": { - "defaultConfig": [ - "hostName", - "port", - "topic", - "sslEnabled", - "caCertificate", - "useSASL", - "saslType", - "username", - "password" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["password"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter" - ], - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": null - }, - "Config": { - "caCertificate": "caCertificate", - "hostName": "localhost", - "password": "password", - "port": "29092", - "saslType": "sha256", - "sslEnabled": true, - "topic": "new-topic", - "useSASL": true, - "username": "username" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "batchedRequest": [ - { - "userId": "user8", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user8", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "integrations": { - "All": true, - "KAFKA": { - "topic": "topic-2" - } - }, - "messageId": "87c98fc2-561b-4631-8cd6-1d02cdd1429f", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "topic-2" - }, - { - "userId": "user8", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user8", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "integrations": { - "All": true, - "KAFKA": { - "topic": "topic-2" - } - }, - "messageId": "87c98fc2-561b-4631-8cd6-1d02cdd1429f", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "topic-2" - } - ], - "metadata": [ - { - "rudderId": "user8<<>>topic-2", - "jobId": 8 - }, - { - "rudderId": "user8<<>>topic-2", - "jobId": 9 - } - ], - "destination": { - "ID": "1uzGR4rn915R6Xts9KRfWAzmgGL", - "Name": "local-kafka-test", - "DestinationDefinition": { - "ID": "1c81NzcId5roSqvQ1R57zhIsC01", - "Name": "KAFKA", - "DisplayName": "Apache Kafka", - "Config": { - "destConfig": { - "defaultConfig": [ - "hostName", - "port", - "topic", - "sslEnabled", - "caCertificate", - "useSASL", - "saslType", - "username", - "password" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["password"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter" - ], - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": null - }, - "Config": { - "caCertificate": "caCertificate", - "hostName": "localhost", - "password": "password", - "port": "29092", - "saslType": "sha256", - "sslEnabled": true, - "topic": "new-topic", - "useSASL": true, - "username": "username" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "batchedRequest": [ - { - "userId": "user8", - "message": { - "type": "identify", - "sentAt": "2021-07-08T02:45:11.329+05:30", - "userId": "user8", - "context": { - "ip": "14.5.67.21", - "traits": { - "trait1": "new-val" - }, - "library": { - "name": "http" - } - }, - "integrations": { - "All": true, - "KAFKA": { - "topic": "topic-3" - } - }, - "messageId": "87c98fc2-561b-4631-8cd6-1d02cdd1429f", - "timestamp": "2020-02-02T00:23:09.544Z", - "receivedAt": "2021-07-08T02:45:06.851+05:30", - "request_ip": "[::1]", - "anonymousId": "anon-id-new", - "originalTimestamp": "2021-07-08T02:45:11.329+05:30" - }, - "topic": "topic-3" - } - ], - "metadata": [ - { - "rudderId": "user8<<>>topic-3", - "jobId": 10 - } - ], - "destination": { - "ID": "1uzGR4rn915R6Xts9KRfWAzmgGL", - "Name": "local-kafka-test", - "DestinationDefinition": { - "ID": "1c81NzcId5roSqvQ1R57zhIsC01", - "Name": "KAFKA", - "DisplayName": "Apache Kafka", - "Config": { - "destConfig": { - "defaultConfig": [ - "hostName", - "port", - "topic", - "sslEnabled", - "caCertificate", - "useSASL", - "saslType", - "username", - "password" - ] - }, - "excludeKeys": [], - "includeKeys": [], - "saveDestinationResponse": true, - "secretKeys": ["password"], - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "warehouse", - "reactnative", - "flutter" - ], - "transformAt": "processor", - "transformAtV1": "processor" - }, - "ResponseRules": null - }, - "Config": { - "caCertificate": "caCertificate", - "hostName": "localhost", - "password": "password", - "port": "29092", - "saslType": "sha256", - "sslEnabled": true, - "topic": "new-topic", - "useSASL": true, - "username": "username" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - } -] diff --git a/test/__tests__/data/kafka_with_metadata.json b/test/__tests__/data/kafka_with_metadata.json deleted file mode 100644 index 04564102b86..00000000000 --- a/test/__tests__/data/kafka_with_metadata.json +++ /dev/null @@ -1,75 +0,0 @@ -[ - { - "input": { - "outputEvent": { - "message": { - "anonymousId": "b255896a-94cd-4bf9-98d5-40389e4b70b8", - "channel": "web", - "event": "Purchase", - "integrations": { - "All": true, - "KAFKA": { - "topic": "specific-topic" - } - }, - "messageId": "522224fe-9c65-4036-8f1f-980e39c6b342", - "originalTimestamp": "2020-05-14T06:54:08.745Z", - "properties": { - "currency": "USD", - "revenue": 100 - }, - "receivedAt": "2020-05-14T12:24:08.781+05:30", - "request_ip": "[::1]:53194", - "sentAt": "2020-05-14T06:54:08.746Z", - "timestamp": "2020-05-14T12:24:08.780+05:30", - "type": "track", - "userId": "user-12345" - }, - "userId": "user-12345", - "topic": "specific-topic" - }, - "inputEvent": { - "message": { - "val": "add boilerplate values if needed" - }, - "destination": { - "ID": "1bqCbmPnO0T7dTE159ho8wiyPlD", - "Name": "Kafka", - "DestinationDefinition": {}, - "Config": { - "caCertificate": "", - "hostName": "localhost", - "password": "password", - "port": "29092", - "saslType": "sha256", - "sslEnabled": true, - "topic": "default-topic", - "useSASL": true, - "username": "username" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - "metadata": { - "anonymousId": "b255896a-94cd-4bf9-98d5-40389e4b70b8", - "destinationId": "1bqCbmPnO0T7dTE159ho8wiyPlD", - "destinationType": "KAFKA", - "jobId": 15, - "messageId": "522224fe-9c65-4036-8f1f-980e39c6b342", - "sourceId": "1bqCEGibwCvR7F0acuLzbEMQYIC", - "rudderId": "b255896a-94cd-4bf9-98d5-40389e4b70b8<<>>user-12345" - } - }, - "output": { - "anonymousId": "b255896a-94cd-4bf9-98d5-40389e4b70b8", - "destinationId": "1bqCbmPnO0T7dTE159ho8wiyPlD", - "destinationType": "KAFKA", - "jobId": 15, - "messageId": "522224fe-9c65-4036-8f1f-980e39c6b342", - "sourceId": "1bqCEGibwCvR7F0acuLzbEMQYIC", - "rudderId": "b255896a-94cd-4bf9-98d5-40389e4b70b8<<>>user-12345<<>>specific-topic" - } - } -] diff --git a/test/__tests__/data/keen_output.json b/test/__tests__/data/keen_output.json deleted file mode 100644 index 4b48b273f07..00000000000 --- a/test/__tests__/data/keen_output.json +++ /dev/null @@ -1,152 +0,0 @@ -[ - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com", - "userId": "12345", - "keen": { - "addons": [] - }, - "anonymousId": "00000000000000000000000000", - "user": { - "traits": { - "anonymousId": "anon-id", - "email": "test@gmail.com" - }, - "userId": "12345" - } - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.keen.io/3.0/projects/abcde/events/Viewed ApplicationLoaded page", - "userId": "12345", - "headers": { - "Content-Type": "application/json", - "Authorization": "xyz" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "message": "Event type identify is not supported", - "statusCode": 400 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "search": "abc", - "request_ip": "0.0.0.0", - "title": "Test Page", - "url": "www.rudderlabs.com", - "referrer": "Rudder", - "userId": "12345", - "keen": { - "addons": [ - { - "input": { - "ip": "request_ip" - }, - "name": "keen:ip_to_geo", - "output": "ip_geo_info" - }, - { - "input": { - "ua_string": "user_agent" - }, - "name": "keen:ua_parser", - "output": "parsed_user_agent" - } - ] - }, - "anonymousId": "00000000000000000000000000", - "user": { - "traits": { - "anonymousId": "anon-id", - "email": "test@gmail.com" - }, - "userId": "12345" - }, - "path": "/test", - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.keen.io/3.0/projects/abcde/events/Viewed ApplicationLoaded page", - "userId": "12345", - "headers": { - "Content-Type": "application/json", - "Authorization": "xyz" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "request_ip": "1.1.1.1", - "user_time_spent": 50000, - "userId": "12345", - "keen": { - "addons": [ - { - "input": { - "ip": "request_ip" - }, - "name": "keen:ip_to_geo", - "output": "ip_geo_info" - }, - { - "input": { - "ua_string": "user_agent" - }, - "name": "keen:ua_parser", - "output": "parsed_user_agent" - } - ] - }, - "anonymousId": "00000000000000000000000000", - "user": { - "traits": { - "anonymousId": "anon-id", - "email": "test@gmail.com" - }, - "userId": "12345" - }, - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.keen.io/3.0/projects/abcde/events/test track event", - "userId": "12345", - "headers": { - "Content-Type": "application/json", - "Authorization": "xyz" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - } -] diff --git a/test/__tests__/data/keen_router_input.json b/test/__tests__/data/keen_router_input.json deleted file mode 100644 index 0aea587aa86..00000000000 --- a/test/__tests__/data/keen_router_input.json +++ /dev/null @@ -1,132 +0,0 @@ -[ - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "track", - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T11:15:18.300Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "event": "test track event", - "request_ip": "1.1.1.1", - "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 - }, - "integrations": { - "All": true - }, - "traits": { - "email": "test@gmail.com", - "anonymousId": "anon-id" - }, - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "projectID": "abcde", - "writeKey": "xyz", - "ipAddon": true, - "uaAddon": true, - "urlAddon": true, - "referrerAddon": true - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "sayan@gmail.com", - "anonymousId": "12345" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "page", - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com" - }, - "traits": { - "email": "test@gmail.com", - "anonymousId": "anon-id" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "projectID": "abcde", - "writeKey": "xyz", - "ipAddon": true, - "uaAddon": true, - "urlAddon": true, - "referrerAddon": true - } - } - } -] diff --git a/test/__tests__/data/keen_router_output.json b/test/__tests__/data/keen_router_output.json deleted file mode 100644 index 6f32f0ff725..00000000000 --- a/test/__tests__/data/keen_router_output.json +++ /dev/null @@ -1,148 +0,0 @@ -[ - { - "batchedRequest": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "user_actual_id": 12345, - "user_actual_role": "system_admin", - "request_ip": "1.1.1.1", - "user_time_spent": 50000, - "userId": "12345", - "keen": { - "addons": [ - { - "input": { - "ip": "request_ip" - }, - "name": "keen:ip_to_geo", - "output": "ip_geo_info" - }, - { - "input": { - "ua_string": "user_agent" - }, - "name": "keen:ua_parser", - "output": "parsed_user_agent" - } - ] - }, - "anonymousId": "00000000000000000000000000", - "user": { - "traits": { - "anonymousId": "anon-id", - "email": "test@gmail.com" - }, - "userId": "12345" - }, - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.keen.io/3.0/projects/abcde/events/test track event", - "userId": "12345", - "headers": { - "Content-Type": "application/json", - "Authorization": "xyz" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "projectID": "abcde", - "writeKey": "xyz", - "ipAddon": true, - "uaAddon": true, - "urlAddon": true, - "referrerAddon": true - } - } - }, - { - "batchedRequest": { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "search": "abc", - "request_ip": "0.0.0.0", - "title": "Test Page", - "url": "www.rudderlabs.com", - "referrer": "Rudder", - "userId": "12345", - "keen": { - "addons": [ - { - "input": { - "ip": "request_ip" - }, - "name": "keen:ip_to_geo", - "output": "ip_geo_info" - }, - { - "input": { - "ua_string": "user_agent" - }, - "name": "keen:ua_parser", - "output": "parsed_user_agent" - } - ] - }, - "anonymousId": "00000000000000000000000000", - "user": { - "traits": { - "anonymousId": "anon-id", - "email": "test@gmail.com" - }, - "userId": "12345" - }, - "path": "/test", - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.keen.io/3.0/projects/abcde/events/Viewed ApplicationLoaded page", - "userId": "12345", - "headers": { - "Content-Type": "application/json", - "Authorization": "xyz" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST", - "statusCode": 200 - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "projectID": "abcde", - "writeKey": "xyz", - "ipAddon": true, - "uaAddon": true, - "urlAddon": true, - "referrerAddon": true - } - } - } -] diff --git a/test/__tests__/data/kissmetrics_input.json b/test/__tests__/data/kissmetrics_input.json deleted file mode 100644 index a10e68c196d..00000000000 --- a/test/__tests__/data/kissmetrics_input.json +++ /dev/null @@ -1,464 +0,0 @@ -[ - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "KISSMETRICS" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originalTimestamp": "2020-01-24T06:29:02.358Z", - "properties": { - "path": "/tests/html/index2.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index2.html" - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.359Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "page", - "userId": "" - }, - "metadata": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "destinationId": "1WhcOCGgj9asZu850HvugU2C3Aq", - "destinationType": "KISSMETRICS", - "jobId": 1, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "sourceId": "1WjrlZIy1d41MCceOrFbDVPnOPY" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "KISSMETRICS" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstname": "Mickey" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "traits": { - "city": "Disney-1", - "country": "India", - "email": "sayan@disney.com", - "firstname": "Sayan" - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53709", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - }, - "metadata": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "destinationId": "1WhcOCGgj9asZu850HvugU2C3Aq", - "destinationType": "KISSMETRICS", - "jobId": 2, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "sourceId": "1WjrlZIy1d41MCceOrFbDVPnOPY" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "KISSMETRICS" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstname": "Mickey" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53709", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - }, - "metadata": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "destinationId": "1WhcOCGgj9asZu850HvugU2C3Aq", - "destinationType": "KISSMETRICS", - "jobId": 2, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "sourceId": "1WjrlZIy1d41MCceOrFbDVPnOPY" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "KISSMETRICS" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstname": "Mickey" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": "test revenue kissmetrics", - "integrations": { - "All": true - }, - "messageId": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", - "originalTimestamp": "2020-01-24T06:29:02.364Z", - "properties": { - "currency": "USD", - "revenue": 50 - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53710", - "sentAt": "2020-01-24T06:29:02.364Z", - "timestamp": "2020-01-24T11:59:02.403+05:30", - "type": "track", - "userId": "" - }, - "metadata": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "destinationId": "1WhcOCGgj9asZu850HvugU2C3Aq", - "destinationType": "KISSMETRICS", - "jobId": 3, - "messageId": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", - "sourceId": "1WjrlZIy1d41MCceOrFbDVPnOPY" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "KISSMETRICS" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstname": "Mickey" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "79313729-7fe5-4204-963a-dc46f4205e4e", - "originalTimestamp": "2020-01-24T06:29:02.366Z", - "previousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53711", - "sentAt": "2020-01-24T06:29:02.366Z", - "timestamp": "2020-01-24T11:59:02.403+05:30", - "type": "alias", - "userId": "1234abc" - }, - "metadata": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "destinationId": "1WhcOCGgj9asZu850HvugU2C3Aq", - "destinationType": "KISSMETRICS", - "jobId": 4, - "messageId": "79313729-7fe5-4204-963a-dc46f4205e4e", - "sourceId": "1WjrlZIy1d41MCceOrFbDVPnOPY" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "KISSMETRICS" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstname": "Mickey" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": "KM Order Completed", - "integrations": { - "All": true - }, - "messageId": "aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a", - "originalTimestamp": "2020-01-24T06:29:02.367Z", - "properties": { - "affiliation": "Google Store", - "checkout_id": "fksdjfsdjfisjf9sdfjsd9f", - "coupon": "hasbros", - "currency": "USD", - "discount": 2.5, - "order_id": "50314b8e9bcf000000000000", - "products": [ - { - "category": "Games", - "image_url": "https:///www.example.com/product/path.jpg", - "name": "Monopoly: 3rd Edition", - "price": 19, - "product_id": "507f1f77bcf86cd799439011", - "quantity": 1, - "sku": "45790-32", - "url": "https://www.example.com/product/path" - }, - { - "category": "Games", - "name": "Uno Card Game", - "price": 3, - "product_id": "505bd76785ebb509fc183733", - "quantity": 2, - "sku": "46493-32" - } - ], - "revenue": 25, - "shipping": 3, - "subtotal": 22.5, - "tax": 2, - "total": 27.5 - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53712", - "sentAt": "2020-01-24T06:29:02.368Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "track", - "userId": "" - }, - "metadata": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "destinationId": "1WhcOCGgj9asZu850HvugU2C3Aq", - "destinationType": "KISSMETRICS", - "jobId": 5, - "messageId": "aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a", - "sourceId": "1WjrlZIy1d41MCceOrFbDVPnOPY" - } - } -] diff --git a/test/__tests__/data/kissmetrics_output.json b/test/__tests__/data/kissmetrics_output.json deleted file mode 100644 index 9365f7ac39d..00000000000 --- a/test/__tests__/data/kissmetrics_output.json +++ /dev/null @@ -1,218 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "GET", - "endpoint": "https://trk.kissmetrics.com/e", - "headers": {}, - "params": { - "Page-path": "/tests/html/index2.html", - "Page-referrer": "", - "Page-search": "", - "Page-title": "", - "Page-url": "http://localhost/tests/html/index2.html", - "_k": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "_p": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "_n": "Loaded a Page", - "_t": "1579847342", - "_d": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "GET", - "endpoint": "https://trk.kissmetrics.com/s", - "headers": {}, - "params": { - "city": "Disney-1", - "country": "India", - "email": "sayan@disney.com", - "firstname": "Sayan", - "_k": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "_p": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "_t": "1579847342", - "_d": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "GET", - "endpoint": "https://trk.kissmetrics.com/s", - "headers": {}, - "params": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstname": "Mickey", - "_k": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "_p": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "_t": "1579847342", - "_d": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "GET", - "endpoint": "https://trk.kissmetrics.com/e", - "headers": {}, - "params": { - "test revenue kissmetrics-currency": "USD", - "test revenue kissmetrics - revenue": 50, - "Billing Amount": 50, - "_k": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "_p": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "_n": "test revenue kissmetrics", - "_t": "1579847342", - "_d": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "GET", - "endpoint": "https://trk.kissmetrics.com/a", - "headers": {}, - "params": { - "_k": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "_p": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "_n": "1234abc" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "1234abc", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "GET", - "endpoint": "https://trk.kissmetrics.com/e", - "headers": {}, - "params": { - "KM Order Completed-affiliation": "Google Store", - "KM Order Completed-checkout_id": "fksdjfsdjfisjf9sdfjsd9f", - "KM Order Completed-coupon": "hasbros", - "KM Order Completed-currency": "USD", - "KM Order Completed-discount": 2.5, - "KM Order Completed-order_id": "50314b8e9bcf000000000000", - "KM Order Completed - revenue": 25, - "Billing Amount": 25, - "KM Order Completed-shipping": 3, - "KM Order Completed-subtotal": 22.5, - "KM Order Completed-tax": 2, - "KM Order Completed-total": 27.5, - "_k": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "_p": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "_n": "KM Order Completed", - "_t": "1579847342", - "_d": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "GET", - "endpoint": "https://trk.kissmetrics.com/s", - "headers": {}, - "params": { - "KM Order Completed-category": "Games", - "KM Order Completed-image_url": "https:///www.example.com/product/path.jpg", - "KM Order Completed-name": "Monopoly: 3rd Edition", - "KM Order Completed-price": 19, - "KM Order Completed-product_id": "507f1f77bcf86cd799439011", - "KM Order Completed-quantity": 1, - "KM Order Completed-sku": "45790-32", - "KM Order Completed-url": "https://www.example.com/product/path", - "_k": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "_p": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "GET", - "endpoint": "https://trk.kissmetrics.com/s", - "headers": {}, - "params": { - "KM Order Completed-category": "Games", - "KM Order Completed-name": "Uno Card Game", - "KM Order Completed-price": 3, - "KM Order Completed-product_id": "505bd76785ebb509fc183733", - "KM Order Completed-quantity": 2, - "KM Order Completed-sku": "46493-32", - "_k": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "_p": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "statusCode": 200 - } -] diff --git a/test/__tests__/data/kissmetrics_router_input.json b/test/__tests__/data/kissmetrics_router_input.json deleted file mode 100644 index 8c58c5408e9..00000000000 --- a/test/__tests__/data/kissmetrics_router_input.json +++ /dev/null @@ -1,148 +0,0 @@ -[ - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "KISSMETRICS" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originalTimestamp": "2020-01-24T06:29:02.358Z", - "properties": { - "path": "/tests/html/index2.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index2.html" - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.359Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "page", - "userId": "" - }, - "metadata": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "destinationId": "1WhcOCGgj9asZu850HvugU2C3Aq", - "destinationType": "KISSMETRICS", - "jobId": 1, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "sourceId": "1WjrlZIy1d41MCceOrFbDVPnOPY" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "KISSMETRICS" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstname": "Mickey" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "traits": { - "city": "Disney-1", - "country": "India", - "email": "sayan@disney.com", - "firstname": "Sayan" - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53709", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - }, - "metadata": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "destinationId": "1WhcOCGgj9asZu850HvugU2C3Aq", - "destinationType": "KISSMETRICS", - "jobId": 2, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "sourceId": "1WjrlZIy1d41MCceOrFbDVPnOPY" - } - } -] diff --git a/test/__tests__/data/kissmetrics_router_output.json b/test/__tests__/data/kissmetrics_router_output.json deleted file mode 100644 index f82358e3611..00000000000 --- a/test/__tests__/data/kissmetrics_router_output.json +++ /dev/null @@ -1,120 +0,0 @@ -[ - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "GET", - "endpoint": "https://trk.kissmetrics.com/e", - "headers": {}, - "params": { - "Page-path": "/tests/html/index2.html", - "Page-referrer": "", - "Page-search": "", - "Page-title": "", - "Page-url": "http://localhost/tests/html/index2.html", - "_k": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "_p": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "_n": "Loaded a Page", - "_t": "1579847342", - "_d": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "statusCode": 200 - } - ], - "metadata": [ - { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "destinationId": "1WhcOCGgj9asZu850HvugU2C3Aq", - "destinationType": "KISSMETRICS", - "jobId": 1, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "sourceId": "1WjrlZIy1d41MCceOrFbDVPnOPY" - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "KISSMETRICS" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - } - }, - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "GET", - "endpoint": "https://trk.kissmetrics.com/s", - "headers": {}, - "params": { - "city": "Disney-1", - "country": "India", - "email": "sayan@disney.com", - "firstname": "Sayan", - "_k": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "_p": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "_t": "1579847342", - "_d": 1 - }, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "statusCode": 200 - } - ], - "metadata": [ - { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "destinationId": "1WhcOCGgj9asZu850HvugU2C3Aq", - "destinationType": "KISSMETRICS", - "jobId": 2, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "sourceId": "1WjrlZIy1d41MCceOrFbDVPnOPY" - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "KISSMETRICS" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - } - } -] diff --git a/test/__tests__/data/klaviyo.json b/test/__tests__/data/klaviyo.json index 031b84dc6a2..623aa78cc43 100644 --- a/test/__tests__/data/klaviyo.json +++ b/test/__tests__/data/klaviyo.json @@ -1,17 +1,17 @@ [ { - "description": "Profile updation call and subcribe user", + "description": "Profile updating call and subscribe user (old transformer)", "input": { "destination": { "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" } }, "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "utsabc", + "userId": "user@1", "channel": "web", "context": { "os": { @@ -25,11 +25,11 @@ "namespace": "com.rudderlabs.javascript" }, "traits": { - "firstName": "Utsab", - "lastName": "Chowdhury", - "email": "utsab@rudderstack.com", + "firstName": "Test", + "lastName": "Rudderlabs", + "email": "test@rudderstack.com", "phone": "+12 345 578 900", - "userId": "utsabc", + "userId": "user@1", "title": "Developer", "organization": "Rudder", "city": "Tokyo", @@ -71,9 +71,9 @@ "method": "PATCH", "endpoint": "https://a.klaviyo.com/api/profiles/01GW3PHVY0MTCDGS0A1612HARX", "headers": { - "Accept": "application/json", - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", "Content-Type": "application/json", + "Accept": "application/json", "revision": "2023-02-22" }, "params": {}, @@ -82,10 +82,10 @@ "data": { "type": "profile", "attributes": { - "external_id": "utsabc", - "email": "utsab@rudderstack.com", - "first_name": "Utsab", - "last_name": "Chowdhury", + "external_id": "user@1", + "email": "test@rudderstack.com", + "first_name": "Test", + "last_name": "Rudderlabs", "phone_number": "+12 345 578 900", "title": "Developer", "organization": "Rudder", @@ -117,7 +117,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", "revision": "2023-02-22" }, "params": {}, @@ -129,7 +129,7 @@ "list_id": "XUepkK", "subscriptions": [ { - "email": "utsab@rudderstack.com", + "email": "test@rudderstack.com", "phone_number": "+12 345 578 900", "channels": { "email": ["MARKETING"], @@ -149,19 +149,19 @@ ] }, { - "description": "Identify call for with flattenProperties enabled", + "description": "Identify call for with flattenProperties enabled (old transformer)", "input": { "destination": { "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d", + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey", "flattenProperties": true } }, "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "utsabc", + "userId": "user@1", "channel": "web", "context": { "os": { @@ -175,11 +175,11 @@ "namespace": "com.rudderlabs.javascript" }, "traits": { - "firstName": "Utsab", - "lastName": "Chowdhury", - "email": "utsab@rudderstack.com", + "firstName": "Test", + "lastName": "Rudderlabs", + "email": "test@rudderstack.com", "phone": "+12 345 578 900", - "userId": "utsabc", + "userId": "user@1", "title": "Developer", "organization": "Rudder", "city": "Tokyo", @@ -228,9 +228,9 @@ "method": "PATCH", "endpoint": "https://a.klaviyo.com/api/profiles/01GW3PHVY0MTCDGS0A1612HARX", "headers": { - "Accept": "application/json", - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", "Content-Type": "application/json", + "Accept": "application/json", "revision": "2023-02-22" }, "params": {}, @@ -239,10 +239,10 @@ "data": { "type": "profile", "attributes": { - "external_id": "utsabc", - "email": "utsab@rudderstack.com", - "first_name": "Utsab", - "last_name": "Chowdhury", + "external_id": "user@1", + "email": "test@rudderstack.com", + "first_name": "Test", + "last_name": "Rudderlabs", "phone_number": "+12 345 578 900", "title": "Developer", "organization": "Rudder", @@ -253,11 +253,11 @@ "zip": "100-0001" }, "properties": { - "Flagged": false, - "Residence": "Shibuya", "friend.age": 25, "friend.names.first": "Alice", - "friend.names.last": "Smith" + "friend.names.last": "Smith", + "Flagged": false, + "Residence": "Shibuya" } }, "id": "01GW3PHVY0MTCDGS0A1612HARX" @@ -277,7 +277,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", "revision": "2023-02-22" }, "params": {}, @@ -289,7 +289,7 @@ "list_id": "XUepkK", "subscriptions": [ { - "email": "utsab@rudderstack.com", + "email": "test@rudderstack.com", "phone_number": "+12 345 578 900", "channels": { "email": ["MARKETING"], @@ -313,14 +313,14 @@ "input": { "destination": { "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" } }, "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "utsabc", + "userId": "user@1", "channel": "web", "context": { "os": { @@ -334,11 +334,11 @@ "namespace": "com.rudderlabs.javascript" }, "traits": { - "firstName": "Utsab", - "lastName": "Chowdhury", - "email": "utsab3@rudderstack.com", + "firstName": "Test", + "lastName": "Rudderlabs", + "email": "test3@rudderstack.com", "phone": "+12 345 578 900", - "userId": "utsabc", + "userId": "user@1", "title": "Developer", "organization": "Rudder", "city": "Tokyo", @@ -382,14 +382,14 @@ "input": { "destination": { "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" } }, "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "utsabc", + "userId": "user@1", "channel": "web", "context": { "os": { @@ -403,11 +403,11 @@ "namespace": "com.rudderlabs.javascript" }, "traits": { - "firstName": "Utsab", - "lastName": "Chowdhury", - "email": "utsab@rudderstack.com", + "firstName": "Test", + "lastName": "Rudderlabs", + "email": "test@rudderstack.com", "phone": "+12 345 578 900", - "userId": "utsabc", + "userId": "user@1", "title": "Developer", "organization": "Rudder", "city": "Tokyo", @@ -447,9 +447,9 @@ "method": "PATCH", "endpoint": "https://a.klaviyo.com/api/profiles/01GW3PHVY0MTCDGS0A1612HARX", "headers": { - "Accept": "application/json", - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", "Content-Type": "application/json", + "Accept": "application/json", "revision": "2023-02-22" }, "params": {}, @@ -458,10 +458,10 @@ "data": { "type": "profile", "attributes": { - "external_id": "utsabc", - "email": "utsab@rudderstack.com", - "first_name": "Utsab", - "last_name": "Chowdhury", + "external_id": "user@1", + "email": "test@rudderstack.com", + "first_name": "Test", + "last_name": "Rudderlabs", "phone_number": "+12 345 578 900", "title": "Developer", "organization": "Rudder", @@ -491,15 +491,15 @@ "input": { "destination": { "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d", + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey", "enforceEmailAsPrimary": true } }, "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "utsabc", + "userId": "user@1", "channel": "web", "context": { "os": { @@ -513,11 +513,11 @@ "namespace": "com.rudderlabs.javascript" }, "traits": { - "firstName": "Utsab", - "lastName": "Chowdhury", - "email": "utsab@rudderstack.com", + "firstName": "Test", + "lastName": "Rudderlabs", + "email": "test@rudderstack.com", "phone": "+12 345 578 900", - "userId": "utsabc", + "userId": "user@1", "title": "Developer", "organization": "Rudder", "city": "Tokyo", @@ -559,9 +559,9 @@ "method": "PATCH", "endpoint": "https://a.klaviyo.com/api/profiles/01GW3PHVY0MTCDGS0A1612HARX", "headers": { - "Accept": "application/json", - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", "Content-Type": "application/json", + "Accept": "application/json", "revision": "2023-02-22" }, "params": {}, @@ -570,9 +570,9 @@ "data": { "type": "profile", "attributes": { - "email": "utsab@rudderstack.com", - "first_name": "Utsab", - "last_name": "Chowdhury", + "email": "test@rudderstack.com", + "first_name": "Test", + "last_name": "Rudderlabs", "phone_number": "+12 345 578 900", "title": "Developer", "organization": "Rudder", @@ -585,7 +585,151 @@ "properties": { "Flagged": false, "Residence": "Shibuya", - "_id": "utsabc" + "_id": "user@1" + } + }, + "id": "01GW3PHVY0MTCDGS0A1612HARX" + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://a.klaviyo.com/api/profile-subscription-bulk-create-jobs", + "headers": { + "Content-Type": "application/json", + "Accept": "application/json", + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", + "revision": "2023-02-22" + }, + "params": {}, + "body": { + "JSON": { + "data": { + "type": "profile-subscription-bulk-create-job", + "attributes": { + "list_id": "XUepkK", + "subscriptions": [ + { + "email": "test@rudderstack.com", + "phone_number": "+12 345 578 900", + "channels": { + "email": ["MARKETING"], + "sms": ["MARKETING"] + } + } + ] + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + ] + }, + { + "description": "Identify call without user custom Properties", + "input": { + "destination": { + "Config": { + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey", + "enforceEmailAsPrimary": false + } + }, + "message": { + "type": "identify", + "sentAt": "2021-01-03T17:02:53.195Z", + "userId": "user@1", + "channel": "web", + "context": { + "os": { + "name": "", + "version": "" + }, + "app": { + "name": "RudderLabs JavaScript SDK", + "build": "1.0.0", + "version": "1.1.11", + "namespace": "com.rudderlabs.javascript" + }, + "traits": { + "firstName": "Test", + "lastName": "Rudderlabs", + "email": "test@rudderstack.com", + "phone": "+12 345 578 900", + "userId": "user@1", + "title": "Developer", + "organization": "Rudder", + "city": "Tokyo", + "region": "Kanto", + "country": "JP", + "zip": "100-0001", + "properties": { + "listId": "XUepkK", + "subscribe": true, + "consent": ["email", "sms"] + } + }, + "locale": "en-US", + "screen": { + "density": 2 + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.11" + }, + "campaign": {}, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" + }, + "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", + "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", + "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", + "integrations": { + "All": true + }, + "originalTimestamp": "2021-01-03T17:02:53.193Z" + } + }, + "output": [ + { + "version": "1", + "type": "REST", + "method": "PATCH", + "endpoint": "https://a.klaviyo.com/api/profiles/01GW3PHVY0MTCDGS0A1612HARX", + "headers": { + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", + "Content-Type": "application/json", + "Accept": "application/json", + "revision": "2023-02-22" + }, + "params": {}, + "body": { + "JSON": { + "data": { + "type": "profile", + "attributes": { + "email": "test@rudderstack.com", + "first_name": "Test", + "last_name": "Rudderlabs", + "phone_number": "+12 345 578 900", + "external_id": "user@1", + "title": "Developer", + "organization": "Rudder", + "location": { + "city": "Tokyo", + "region": "Kanto", + "country": "JP", + "zip": "100-0001" } }, "id": "01GW3PHVY0MTCDGS0A1612HARX" @@ -605,7 +749,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", "revision": "2023-02-22" }, "params": {}, @@ -617,7 +761,7 @@ "list_id": "XUepkK", "subscriptions": [ { - "email": "utsab@rudderstack.com", + "email": "test@rudderstack.com", "phone_number": "+12 345 578 900", "channels": { "email": ["MARKETING"], @@ -641,15 +785,15 @@ "input": { "destination": { "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d", + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey", "enforceEmailAsPrimary": true } }, "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "utsabc", + "userId": "user@1", "channel": "web", "context": { "os": { @@ -663,9 +807,9 @@ "namespace": "com.rudderlabs.javascript" }, "traits": { - "firstName": "Utsab", - "lastName": "Chowdhury", - "userId": "utsabc", + "firstName": "Test", + "lastName": "Rudderlabs", + "userId": "user@1", "title": "Developer", "organization": "Rudder", "city": "Tokyo", @@ -705,12 +849,12 @@ } }, { - "description": "Track event call", + "description": "Screen event call", "input": { "destination": { "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" } }, "message": { @@ -744,9 +888,9 @@ "density": 440 }, "traits": { - "id": "utsabc", + "id": "user@1", "age": "22", - "email": "utsab@rudderstack.com", + "email": "test@rudderstack.com", "phone": "9112340375", "anonymousId": "9c6bd77ea9da3e68" }, @@ -784,7 +928,7 @@ "endpoint": "https://a.klaviyo.com/api/events", "headers": { "Accept": "application/json", - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", "Content-Type": "application/json", "revision": "2023-02-22" }, @@ -800,13 +944,13 @@ "properties": { "PreviouslyVicePresident": true, "YearElected": 1801, - "VicePresidents": ["Aaron Burr", "George Clinton"], - "age": "22" + "VicePresidents": ["Aaron Burr", "George Clinton"] }, "profile": { - "$email": "utsab@rudderstack.com", + "$email": "test@rudderstack.com", "$phone_number": "9112340375", - "$id": "sajal12" + "$id": "sajal12", + "age": "22" } } } @@ -823,8 +967,8 @@ "input": { "destination": { "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d", + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey", "flattenProperties": true } }, @@ -859,11 +1003,15 @@ "density": 440 }, "traits": { - "id": "utsabc", + "id": "user@1", "age": "22", - "email": "utsab@rudderstack.com", + "email": "test@rudderstack.com", "phone": "9112340375", - "anonymousId": "9c6bd77ea9da3e68" + "anonymousId": "9c6bd77ea9da3e68", + "plan_details": { + "plan_type": "gold", + "duration": "3 months" + } }, "library": { "name": "com.rudderstack.android.sdk.core", @@ -901,7 +1049,7 @@ "endpoint": "https://a.klaviyo.com/api/events", "headers": { "Accept": "application/json", - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", "Content-Type": "application/json", "revision": "2023-02-22" }, @@ -917,13 +1065,15 @@ "properties": { "vicePresdentInfo.PreviouslVicePresident": true, "vicePresdentInfo.VicePresidents": ["AaronBurr", "GeorgeClinton"], - "vicePresdentInfo.YearElected": 1801, - "age": "22" + "vicePresdentInfo.YearElected": 1801 }, "profile": { - "$email": "utsab@rudderstack.com", + "$email": "test@rudderstack.com", "$phone_number": "9112340375", - "$id": "sajal12" + "$id": "sajal12", + "age": "22", + "plan_details.plan_type": "gold", + "plan_details.duration": "3 months" } } } @@ -940,8 +1090,8 @@ "input": { "destination": { "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" } }, "message": { @@ -975,10 +1125,10 @@ "density": 440 }, "traits": { - "id": "utsabc", + "id": "user@1", "age": "22", - "name": "Utsab", - "email": "utsab@rudderstack.com", + "name": "Test", + "email": "test@rudderstack.com", "phone": "9112340375", "anonymousId": "9c6bd77ea9da3e68", "description": "Sample description" @@ -1018,7 +1168,7 @@ "endpoint": "https://a.klaviyo.com/api/events", "headers": { "Accept": "application/json", - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", "Content-Type": "application/json", "revision": "2023-02-22" }, @@ -1034,15 +1184,15 @@ "properties": { "PreviouslyVicePresident": true, "YearElected": 1801, - "age": "22", - "VicePresidents": ["Aaron Burr", "George Clinton"], - "description": "Sample description", - "name": "Utsab" + "VicePresidents": ["Aaron Burr", "George Clinton"] }, "profile": { - "$email": "utsab@rudderstack.com", + "$email": "test@rudderstack.com", "$phone_number": "9112340375", - "$id": "sajal12" + "$id": "sajal12", + "age": "22", + "name": "Test", + "description": "Sample description" }, "value": 3000 } @@ -1060,8 +1210,8 @@ "input": { "destination": { "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d", + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey", "enforceEmailAsPrimary": true } }, @@ -1096,9 +1246,9 @@ "density": 440 }, "traits": { - "id": "utsabc", + "id": "user@1", "age": "22", - "email": "utsab@rudderstack.com", + "email": "test@rudderstack.com", "phone": "9112340375", "anonymousId": "9c6bd77ea9da3e68" }, @@ -1136,7 +1286,7 @@ "endpoint": "https://a.klaviyo.com/api/events", "headers": { "Accept": "application/json", - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", "Content-Type": "application/json", "revision": "2023-02-22" }, @@ -1152,12 +1302,12 @@ "properties": { "PreviouslyVicePresident": true, "YearElected": 1801, - "VicePresidents": ["Aaron Burr", "George Clinton"], - "age": "22" + "VicePresidents": ["Aaron Burr", "George Clinton"] }, "profile": { - "$email": "utsab@rudderstack.com", + "$email": "test@rudderstack.com", "$phone_number": "9112340375", + "age": "22", "_id": "sajal12" } } @@ -1175,8 +1325,8 @@ "input": { "destination": { "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d", + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey", "enforceEmailAsPrimary": true } }, @@ -1211,7 +1361,7 @@ "density": 440 }, "traits": { - "id": "utsabc", + "id": "user@1", "age": "22", "anonymousId": "9c6bd77ea9da3e68" }, @@ -1251,8 +1401,8 @@ "input": { "destination": { "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" } }, "message": { @@ -1264,7 +1414,7 @@ }, "context": { "traits": { - "email": "utsab@rudderstack.com", + "email": "test@rudderstack.com", "phone": "+12 345 678 900", "consent": ["email"] }, @@ -1285,7 +1435,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", "revision": "2023-02-22" }, "params": {}, @@ -1297,7 +1447,7 @@ "list_id": "XUepkK", "subscriptions": [ { - "email": "utsab@rudderstack.com", + "email": "test@rudderstack.com", "phone_number": "+12 345 678 900" } ] @@ -1317,8 +1467,8 @@ "input": { "destination": { "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" } }, "message": { @@ -1330,7 +1480,7 @@ }, "context": { "traits": { - "email": "utsab@rudderstack.com", + "email": "test@rudderstack.com", "phone": "+12 345 678 900", "consent": "email" }, @@ -1351,8 +1501,8 @@ "input": { "destination": { "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" } }, "message": { @@ -1364,7 +1514,7 @@ }, "context": { "traits": { - "email": "utsab@rudderstack.com", + "email": "test@rudderstack.com", "phone": "+12 345 678 900", "consent": "email" }, @@ -1385,8 +1535,8 @@ "input": { "destination": { "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" } }, "message": { @@ -1420,10 +1570,10 @@ "density": 440 }, "traits": { - "id": "utsabc", + "id": "user@1", "age": "22", - "name": "Utsab", - "email": "utsab@rudderstack.com", + "name": "Test", + "email": "test@rudderstack.com", "phone": "9112340375", "anonymousId": "9c6bd77ea9da3e68", "description": "Sample description" @@ -1466,7 +1616,7 @@ "method": "POST", "endpoint": "https://a.klaviyo.com/api/events", "headers": { - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", "Content-Type": "application/json", "Accept": "application/json", "revision": "2023-02-22" @@ -1481,9 +1631,12 @@ "name": "Viewed Product" }, "profile": { - "$email": "utsab@rudderstack.com", + "$email": "test@rudderstack.com", "$phone_number": "9112340375", - "$id": "sajal12" + "$id": "sajal12", + "age": "22", + "name": "Test", + "description": "Sample description" }, "properties": { "ProductName": "test product", @@ -1493,10 +1646,7 @@ "URL": "http://www.example.com/path/to/product", "Brand": "Not for Kids", "Price": 9.9, - "Categories": ["Fiction", "Children"], - "age": "22", - "name": "Utsab", - "description": "Sample description" + "Categories": ["Fiction", "Children"] } } } @@ -1513,8 +1663,8 @@ "input": { "destination": { "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d", + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey", "flattenProperties": true } }, @@ -1549,10 +1699,10 @@ "density": 440 }, "traits": { - "id": "utsabc", + "id": "user@1", "age": "22", - "name": "Utsab", - "email": "utsab@rudderstack.com", + "name": "Test", + "email": "test@rudderstack.com", "phone": "9112340375", "anonymousId": "9c6bd77ea9da3e68", "description": "Sample description" @@ -1616,7 +1766,7 @@ "method": "POST", "endpoint": "https://a.klaviyo.com/api/events", "headers": { - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", "Content-Type": "application/json", "Accept": "application/json", "revision": "2023-02-22" @@ -1633,9 +1783,6 @@ "properties": { "$event_id": "1234", "$value": 20, - "age": "22", - "name": "Utsab", - "description": "Sample description", "items[0].ProductID": "123", "items[0].SKU": "G-32", "items[0].ProductName": "Monopoly", @@ -1650,9 +1797,12 @@ "items[1].ItemPrice": 3.45 }, "profile": { - "$email": "utsab@rudderstack.com", + "$email": "test@rudderstack.com", "$phone_number": "9112340375", - "$id": "sajal12" + "$id": "sajal12", + "age": "22", + "name": "Test", + "description": "Sample description" } } } @@ -1669,8 +1819,8 @@ "input": { "destination": { "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" } }, "message": { @@ -1704,10 +1854,10 @@ "density": 440 }, "traits": { - "id": "utsabc", + "id": "user@1", "age": "22", - "name": "Utsab", - "email": "utsab@rudderstack.com", + "name": "Test", + "email": "test@rudderstack.com", "phone": "9112340375", "anonymousId": "9c6bd77ea9da3e68", "description": "Sample description" @@ -1763,7 +1913,7 @@ "method": "POST", "endpoint": "https://a.klaviyo.com/api/events", "headers": { - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", "Content-Type": "application/json", "Accept": "application/json", "revision": "2023-02-22" @@ -1778,18 +1928,18 @@ "name": "Added to Cart" }, "profile": { - "$email": "utsab@rudderstack.com", + "$email": "test@rudderstack.com", "$phone_number": "9112340375", - "$id": "sajal12" + "$id": "sajal12", + "age": "22", + "name": "Test", + "description": "Sample description" }, "properties": { "$value": 12.12, "AddedItemCategories": ["Fiction3", "Children3"], "ItemNames": ["book1", "book2"], "CheckoutURL": "http://www.heythere.com", - "age": "22", - "name": "Utsab", - "description": "Sample description", "items": [ { "ProductID": "b1pid", diff --git a/test/__tests__/data/klaviyo_router.json b/test/__tests__/data/klaviyo_router.json new file mode 100644 index 00000000000..7fae2ad90ec --- /dev/null +++ b/test/__tests__/data/klaviyo_router.json @@ -0,0 +1,599 @@ +[ + { + "description": "Router tests", + "input": [ + { + "destination": { + "Config": { + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" + } + }, + "metadata": { + "jobId": 1 + }, + "message": { + "type": "identify", + "sentAt": "2021-01-03T17:02:53.195Z", + "userId": "test", + "channel": "web", + "context": { + "os": { + "name": "", + "version": "" + }, + "app": { + "name": "RudderLabs JavaScript SDK", + "build": "1.0.0", + "version": "1.1.11", + "namespace": "com.rudderlabs.javascript" + }, + "traits": { + "firstName": "Test", + "lastName": "Rudderlabs", + "email": "test@rudderstack.com", + "phone": "+12 345 578 900", + "userId": "Testc", + "title": "Developer", + "organization": "Rudder", + "city": "Tokyo", + "region": "Kanto", + "country": "JP", + "zip": "100-0001", + "Flagged": false, + "Residence": "Shibuya", + "properties": { + "consent": ["email", "sms"] + } + }, + "locale": "en-US", + "screen": { + "density": 2 + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.11" + }, + "campaign": {}, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" + }, + "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", + "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", + "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", + "integrations": { + "All": true + }, + "originalTimestamp": "2021-01-03T17:02:53.193Z" + } + }, + { + "destination": { + "Config": { + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" + } + }, + "metadata": { + "jobId": 2 + }, + "message": { + "type": "identify", + "sentAt": "2021-01-03T17:02:53.195Z", + "userId": "test", + "channel": "web", + "context": { + "os": { + "name": "", + "version": "" + }, + "app": { + "name": "RudderLabs JavaScript SDK", + "build": "1.0.0", + "version": "1.1.11", + "namespace": "com.rudderlabs.javascript" + }, + "traits": { + "firstName": "Test", + "lastName": "Rudderlabs", + "email": "test@rudderstack.com", + "phone": "+12 345 578 900", + "userId": "test", + "title": "Developer", + "organization": "Rudder", + "city": "Tokyo", + "region": "Kanto", + "country": "JP", + "zip": "100-0001", + "Flagged": false, + "Residence": "Shibuya", + "properties": { + "listId": "XUepkK", + "subscribe": true, + "consent": ["email", "sms"] + } + }, + "locale": "en-US", + "screen": { + "density": 2 + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.11" + }, + "campaign": {}, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" + }, + "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", + "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", + "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", + "integrations": { + "All": true + }, + "originalTimestamp": "2021-01-03T17:02:53.193Z" + } + }, + { + "destination": { + "Config": { + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" + } + }, + "metadata": { + "jobId": 3 + }, + "message": { + "userId": "user123", + "type": "group", + "groupId": "XUepkK", + "traits": { + "subscribe": true + }, + "context": { + "traits": { + "email": "test@rudderstack.com", + "phone": "+12 345 678 900", + "consent": ["email"] + }, + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-01-21T00:21:34.208Z" + } + }, + { + "destination": { + "Config": { + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" + } + }, + "metadata": { + "jobId": 4 + }, + "message": { + "userId": "user123", + "type": "random", + "groupId": "XUepkK", + "traits": { + "subscribe": true + }, + "context": { + "traits": { + "email": "test@rudderstack.com", + "phone": "+12 345 678 900", + "consent": "email" + }, + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-01-21T00:21:34.208Z" + } + }, + { + "destination": { + "Config": { + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" + } + }, + "metadata": { + "jobId": 5 + }, + "message": { + "userId": "user123", + "type": "group", + "groupId": "", + "traits": { + "subscribe": true + }, + "context": { + "traits": { + "email": "test@rudderstack.com", + "phone": "+12 345 678 900", + "consent": "email" + }, + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-01-21T00:21:34.208Z" + } + } + ], + "newTransformerOutput": [ + { + "batchedRequest": [ + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://a.klaviyo.com/api/profile-subscription-bulk-create-jobs", + "headers": { + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", + "Content-Type": "application/json", + "Accept": "application/json", + "revision": "2023-02-22" + }, + "params": {}, + "body": { + "JSON": { + "data": { + "type": "profile-subscription-bulk-create-job", + "attributes": { + "list_id": "XUepkK", + "subscriptions": [ + { + "email": "test@rudderstack.com", + "phone_number": "+12 345 678 900" + }, + { + "email": "test@rudderstack.com", + "phone_number": "+12 345 578 900", + "channels": { + "email": ["MARKETING"], + "sms": ["MARKETING"] + } + } + ] + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + ], + "metadata": [ + { + "jobId": 3 + }, + { + "jobId": 2 + } + ], + "batched": true, + "statusCode": 200, + "destination": { + "Config": { + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" + } + } + }, + { + "batchedRequest": { + "version": "1", + "type": "REST", + "method": "PATCH", + "endpoint": "https://a.klaviyo.com/api/profiles/01GW3PHVY0MTCDGS0A1612HARX", + "headers": { + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", + "Content-Type": "application/json", + "Accept": "application/json", + "revision": "2023-02-22" + }, + "params": {}, + "body": { + "JSON": { + "data": { + "type": "profile", + "attributes": { + "external_id": "test", + "email": "test@rudderstack.com", + "first_name": "Test", + "last_name": "Rudderlabs", + "phone_number": "+12 345 578 900", + "title": "Developer", + "organization": "Rudder", + "location": { + "city": "Tokyo", + "region": "Kanto", + "country": "JP", + "zip": "100-0001" + }, + "properties": { + "Flagged": false, + "Residence": "Shibuya" + } + }, + "id": "01GW3PHVY0MTCDGS0A1612HARX" + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + "error": "{\"id\":\"01GW3PHVY0MTCDGS0A1612HARX\",\"attributes\":{}}", + "metadata": [ + { + "jobId": 1 + } + ], + "batched": false, + "statusCode": 299, + "destination": { + "Config": { + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" + } + } + }, + { + "error": "Event type random is not supported", + "metadata": [ + { + "jobId": 4 + } + ], + "batched": false, + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation" + }, + "statusCode": 400, + "destination": { + "Config": { + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" + } + } + }, + { + "error": "groupId is a required field for group events", + "metadata": [ + { + "jobId": 5 + } + ], + "batched": false, + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation" + }, + "statusCode": 400, + "destination": { + "Config": { + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" + } + } + } + ], + "oldTransformerOutput": [ + { + "batchedRequest": [ + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://a.klaviyo.com/api/profile-subscription-bulk-create-jobs", + "headers": { + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", + "Content-Type": "application/json", + "Accept": "application/json", + "revision": "2023-02-22" + }, + "params": {}, + "body": { + "JSON": { + "data": { + "type": "profile-subscription-bulk-create-job", + "attributes": { + "list_id": "XUepkK", + "subscriptions": [ + { + "email": "test@rudderstack.com", + "phone_number": "+12 345 678 900" + }, + { + "email": "test@rudderstack.com", + "phone_number": "+12 345 578 900", + "channels": { + "email": ["MARKETING"], + "sms": ["MARKETING"] + } + } + ] + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + { + "version": "1", + "type": "REST", + "method": "PATCH", + "endpoint": "https://a.klaviyo.com/api/profiles/01GW3PHVY0MTCDGS0A1612HARX", + "headers": { + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", + "Content-Type": "application/json", + "Accept": "application/json", + "revision": "2023-02-22" + }, + "params": {}, + "body": { + "JSON": { + "data": { + "type": "profile", + "attributes": { + "external_id": "test", + "email": "test@rudderstack.com", + "first_name": "Test", + "last_name": "Rudderlabs", + "phone_number": "+12 345 578 900", + "title": "Developer", + "organization": "Rudder", + "location": { + "city": "Tokyo", + "region": "Kanto", + "country": "JP", + "zip": "100-0001" + }, + "properties": { + "Flagged": false, + "Residence": "Shibuya" + } + }, + "id": "01GW3PHVY0MTCDGS0A1612HARX" + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + ], + "metadata": [ + { + "jobId": 3 + }, + { + "jobId": 2 + } + ], + "batched": true, + "statusCode": 200, + "destination": { + "Config": { + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" + } + } + }, + { + "batchedRequest": { + "version": "1", + "type": "REST", + "method": "PATCH", + "endpoint": "https://a.klaviyo.com/api/profiles/01GW3PHVY0MTCDGS0A1612HARX", + "headers": { + "Authorization": "Klaviyo-API-Key dummyPrivateApiKey", + "Content-Type": "application/json", + "Accept": "application/json", + "revision": "2023-02-22" + }, + "params": {}, + "body": { + "JSON": { + "data": { + "type": "profile", + "attributes": { + "external_id": "test", + "email": "test@rudderstack.com", + "first_name": "Test", + "last_name": "Rudderlabs", + "phone_number": "+12 345 578 900", + "title": "Developer", + "organization": "Rudder", + "location": { + "city": "Tokyo", + "region": "Kanto", + "country": "JP", + "zip": "100-0001" + }, + "properties": { + "Flagged": false, + "Residence": "Shibuya" + } + }, + "id": "01GW3PHVY0MTCDGS0A1612HARX" + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + "metadata": [ + { + "jobId": 1 + } + ], + "batched": false, + "statusCode": 200, + "destination": { + "Config": { + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" + } + } + }, + { + "metadata": [ + { + "jobId": 4 + } + ], + "batched": false, + "statusCode": 400, + "error": "Event type random is not supported", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation" + }, + "destination": { + "Config": { + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" + } + } + }, + { + "metadata": [ + { + "jobId": 5 + } + ], + "batched": false, + "statusCode": 400, + "error": "groupId is a required field for group events", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation" + }, + "destination": { + "Config": { + "publicApiKey": "dummyPublicApiKey", + "privateApiKey": "dummyPrivateApiKey" + } + } + } + ] + } +] diff --git a/test/__tests__/data/klaviyo_router_input.json b/test/__tests__/data/klaviyo_router_input.json deleted file mode 100644 index 6abb4a1f0a2..00000000000 --- a/test/__tests__/data/klaviyo_router_input.json +++ /dev/null @@ -1,227 +0,0 @@ -[ - { - "destination": { - "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" - } - }, - "metadata": { - "jobId": 1 - }, - "message": { - "type": "identify", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "utsabc", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "traits": { - "firstName": "Utsab", - "lastName": "Chowdhury", - "email": "utsab@rudderstack.com", - "phone": "+12 345 578 900", - "userId": "utsabc", - "title": "Developer", - "organization": "Rudder", - "city": "Tokyo", - "region": "Kanto", - "country": "JP", - "zip": "100-0001", - "Flagged": false, - "Residence": "Shibuya", - "properties": { - "listId": "XUepkK", - "subscribe": true, - "consent": ["email", "sms"] - } - }, - "locale": "en-US", - "screen": { - "density": 2 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-01-03T17:02:53.193Z" - } - }, - { - "destination": { - "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" - } - }, - "metadata": { - "jobId": 2 - }, - "message": { - "type": "identify", - "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.11", - "namespace": "com.rudderlabs.javascript" - }, - "traits": { - "firstName": "Utsab", - "lastName": "Chowdhury", - "email": "ujjwal@rudderstack.com", - "phone": "+12 345 578 900", - "userId": "ujjwal", - "title": "Developer", - "organization": "Rudder", - "city": "Tokyo", - "region": "Kanto", - "country": "JP", - "zip": "100-0001", - "Flagged": false, - "Residence": "Shibuya", - "properties": { - "listId": "XUepkK", - "subscribe": true, - "consent": ["email", "sms"] - } - }, - "locale": "en-US", - "screen": { - "density": 2 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.11" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-01-03T17:02:53.193Z" - } - }, - { - "destination": { - "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" - } - }, - "metadata": { - "jobId": 3 - }, - "message": { - "userId": "user123", - "type": "group", - "groupId": "XUepkK", - "traits": { - "subscribe": true - }, - "context": { - "traits": { - "email": "utsab@rudderstack.com", - "phone": "+12 345 678 900", - "consent": ["email"] - }, - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-01-21T00:21:34.208Z" - } - }, - { - "destination": { - "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" - } - }, - "metadata": { - "jobId": 4 - }, - "message": { - "userId": "user123", - "type": "random", - "groupId": "XUepkK", - "traits": { - "subscribe": true - }, - "context": { - "traits": { - "email": "utsab@rudderstack.com", - "phone": "+12 345 678 900", - "consent": "email" - }, - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-01-21T00:21:34.208Z" - } - }, - { - "destination": { - "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" - } - }, - "metadata": { - "jobId": 5 - }, - "message": { - "userId": "user123", - "type": "group", - "groupId": "", - "traits": { - "subscribe": true - }, - "context": { - "traits": { - "email": "utsab@rudderstack.com", - "phone": "+12 345 678 900", - "consent": "email" - }, - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-01-21T00:21:34.208Z" - } - } -] diff --git a/test/__tests__/data/klaviyo_router_output.json b/test/__tests__/data/klaviyo_router_output.json deleted file mode 100644 index ef104a890b9..00000000000 --- a/test/__tests__/data/klaviyo_router_output.json +++ /dev/null @@ -1,202 +0,0 @@ -[ - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://a.klaviyo.com/api/profile-subscription-bulk-create-jobs", - "headers": { - "Content-Type": "application/json", - "Accept": "application/json", - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", - "revision": "2023-02-22" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "profile-subscription-bulk-create-job", - "attributes": { - "list_id": "XUepkK", - "subscriptions": [ - { - "email": "utsab@rudderstack.com", - "phone_number": "+12 345 678 900" - }, - { - "email": "utsab@rudderstack.com", - "phone_number": "+12 345 578 900", - "channels": { - "email": ["MARKETING"], - "sms": ["MARKETING"] - } - }, - { - "email": "ujjwal@rudderstack.com", - "phone_number": "+12 345 578 900", - "channels": { - "email": ["MARKETING"], - "sms": ["MARKETING"] - } - } - ] - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://a.klaviyo.com/api/profiles/01GW3PHVY0MTCDGS0A1612HARX", - "headers": { - "Accept": "application/json", - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", - "Content-Type": "application/json", - "revision": "2023-02-22" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "profile", - "attributes": { - "external_id": "utsabc", - "email": "utsab@rudderstack.com", - "first_name": "Utsab", - "last_name": "Chowdhury", - "phone_number": "+12 345 578 900", - "title": "Developer", - "organization": "Rudder", - "location": { - "city": "Tokyo", - "region": "Kanto", - "country": "JP", - "zip": "100-0001" - }, - "properties": { - "Flagged": false, - "Residence": "Shibuya" - } - }, - "id": "01GW3PHVY0MTCDGS0A1612HARX" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "PATCH", - "endpoint": "https://a.klaviyo.com/api/profiles/01GW3PHVY0MTCDGS0A1612HARX", - "headers": { - "Accept": "application/json", - "Authorization": "Klaviyo-API-Key pk_b68c7b5163d98807fcb57e6f921216629d", - "Content-Type": "application/json", - "revision": "2023-02-22" - }, - "params": {}, - "body": { - "JSON": { - "data": { - "type": "profile", - "attributes": { - "email": "ujjwal@rudderstack.com", - "external_id": "ujjwal", - "first_name": "Utsab", - "last_name": "Chowdhury", - "phone_number": "+12 345 578 900", - "title": "Developer", - "organization": "Rudder", - "location": { - "city": "Tokyo", - "region": "Kanto", - "country": "JP", - "zip": "100-0001" - }, - "properties": { - "Flagged": false, - "Residence": "Shibuya" - } - }, - "id": "01GW3PHVY0MTCDGS0A1612HARX" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "jobId": 3 - }, - { - "jobId": 1 - }, - { - "jobId": 2 - } - ], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" - } - } - }, - { - "error": "Event type random is not supported", - "metadata": [ - { - "jobId": 4 - } - ], - "batched": false, - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - }, - "statusCode": 400, - "destination": { - "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" - } - } - }, - { - "error": "groupId is a required field for group events", - "metadata": [ - { - "jobId": 5 - } - ], - "batched": false, - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - }, - "statusCode": 400, - "destination": { - "Config": { - "publicApiKey": "WJqij9", - "privateApiKey": "pk_b68c7b5163d98807fcb57e6f921216629d" - } - } - } -] diff --git a/test/__tests__/data/kochava_router_input.json b/test/__tests__/data/kochava_router_input.json deleted file mode 100644 index 11dad7721fa..00000000000 --- a/test/__tests__/data/kochava_router_input.json +++ /dev/null @@ -1,120 +0,0 @@ -[ - { - "destination": { - "Config": { - "apiKey": "" - }, - "DestinationDefinition": { - "DisplayName": "Kochava", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "KOCHAVA" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "kochava test", - "Transformations": [] - }, - "metadata": { - "jobId": 2 - }, - "message": { - "anonymousId": "sampath", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "1.1.1.1", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "macOS", - "version": "15.9" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "sampath", - "email": "sampath@gmail.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "event": "product added", - "integrations": { - "All": true - }, - "messageId": "ea5cfab2-3961-4d8a-8187-3d1858c90a9f", - "originalTimestamp": "2020-01-17T04:53:51.185Z", - "properties": { - "name": "sampath" - }, - "receivedAt": "2020-01-17T10:23:52.688+05:30", - "request_ip": "0.0.0.0", - "sentAt": "2020-01-17T04:53:52.667Z", - "timestamp": "2020-01-17T10:23:51.206+05:30", - "type": "track", - "userId": "sampath" - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "1.1.1.1", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - } - }, - "type": "screen", - "name": "Home Screen", - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "00000000000000000000000000", - "userId": "123456", - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "apiKey": "" - }, - "DestinationDefinition": { - "DisplayName": "Kochava", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "KOCHAVA" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "kochava test", - "Transformations": [] - } - } -] diff --git a/test/__tests__/data/kochava_router_output.json b/test/__tests__/data/kochava_router_output.json deleted file mode 100644 index 5517b1bcf26..00000000000 --- a/test/__tests__/data/kochava_router_output.json +++ /dev/null @@ -1,69 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://control.kochava.com/track/json", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "action": "event", - "kochava_app_id": "", - "kochava_device_id": "00000000000000000000000000", - "data": { - "app_tracking_transparency": { - "att": false - }, - "usertime": 1571043797562, - "app_version": "1.0.0", - "device_ver": "", - "device_ids": { - "idfa": "", - "idfv": "", - "adid": "", - "android_id": "" - }, - "device_ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "event_name": "screen view", - "origination_ip": "1.1.1.1", - "currency": "USD", - "event_data": {}, - "app_name": "RudderLabs JavaScript SDK", - "app_short_string": "1.0.0", - "locale": "en-US", - "os_version": "", - "screen_dpi": 2 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "00000000000000000000000000" - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "" - }, - "DestinationDefinition": { - "DisplayName": "Kochava", - "ID": "1WTpBSTiL3iAUHUdW7rHT4sawgU", - "Name": "KOCHAVA" - }, - "Enabled": true, - "ID": "1WTpIHpH7NTBgjeiUPW1kCUgZGI", - "Name": "kochava test", - "Transformations": [] - } - } -] diff --git a/test/__tests__/data/kustomer_input.json b/test/__tests__/data/kustomer_input.json index 1ce9587569f..c711c2499c8 100644 --- a/test/__tests__/data/kustomer_input.json +++ b/test/__tests__/data/kustomer_input.json @@ -2,13 +2,13 @@ { "destination": { "Config": { - "apiKey": "WJqij952gdy251" + "apiKey": "dummyApiKey" } }, "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "utsabc", + "userId": "Testc", "channel": "web", "context": { "os": { "name": "", "version": "" }, @@ -19,18 +19,18 @@ "namespace": "com.rudderlabs.javascript" }, "traits": { - "name": "Utsab Chowdhury", - "email": "utsab@rudderstack.com", + "name": "Test Rudderlabs", + "email": "test@rudderstack.com", "phone": "+12345578900", "birthday": "2005-01-01T23:28:56.782Z", - "userId": "utsabc", + "userId": "Testc", "address": { "street": "24 Dovers Lane", "city": "Miami", "state": "Florida", "postalCode": "1890001" }, - "userName": "utsabc47", + "userName": "Testc47", "company": "Rudderstack", "createdAt": "2015-04-17T12:37:42.146Z", "lastActivityAt": "2016-04-17T12:37:42.146Z", @@ -45,15 +45,15 @@ "verified": true, "userid": "100", "type": "twitter", - "username": "@utsabc", - "url": "http://twitter.com/utsabc" + "username": "@Testc", + "url": "http://twitter.com/Testc" }, { "verified": false, "userid": "200", "type": "facebook", - "username": "utsabc", - "url": "http://facebook.com/utsabc" + "username": "Testc", + "url": "http://facebook.com/Testc" } ] }, @@ -73,14 +73,14 @@ { "destination": { "Config": { - "apiKey": "WJqij952gdy251" + "apiKey": "dummyApiKey" } }, "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", "channel": "web", - "userId": "annodD", + "userId": "58210c3db0f09110006b7953", "context": { "os": { "name": "", "version": "" }, "app": { @@ -90,9 +90,7 @@ "namespace": "com.rudderlabs.javascript" }, "traits": { - "userId": "annodD", "name": "Ano Domeni", - "email": "ano@rudderstack.com", "phone": "+12345578000", "birthday": "2005-01-01T23:28:56.782Z" }, @@ -104,7 +102,6 @@ }, "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", "integrations": { "All": true }, "originalTimestamp": "2021-01-03T17:02:53.193Z" } @@ -112,14 +109,14 @@ { "destination": { "Config": { - "apiKey": "WJqij952gdy251" + "apiKey": "dummyApiKey" } }, "message": { "type": "screen", "event": "Test-Event-Screen", "sentAt": "2021-01-25T16:12:02.048Z", - "userId": "utsabc", + "userId": "Testc", "channel": "mobile", "context": { "os": { @@ -175,7 +172,7 @@ { "destination": { "Config": { - "apiKey": "WJqij952gdy251" + "apiKey": "dummyApiKey" } }, "message": { @@ -231,7 +228,7 @@ { "destination": { "Config": { - "apiKey": "WJqij952gdy251" + "apiKey": "dummyApiKey" } }, "message": { @@ -287,7 +284,7 @@ { "destination": { "Config": { - "apiKey": "WJqij952gdy251" + "apiKey": "dummyApiKey" } }, "message": { @@ -334,7 +331,7 @@ { "destination": { "Config": { - "apiKey": "WJqij952gdy251" + "apiKey": "dummyApiKey" } }, "message": { @@ -380,7 +377,7 @@ { "destination": { "Config": { - "apiKey": "WJqij952gdy251", + "apiKey": "dummyApiKey", "genericPage": true } }, @@ -430,7 +427,7 @@ { "destination": { "Config": { - "apiKey": "WJqij952gdy251", + "apiKey": "dummyApiKey", "genericScreen": true } }, @@ -438,7 +435,7 @@ "type": "screen", "event": "Test-Event-Screen", "sentAt": "2021-01-25T16:12:02.048Z", - "userId": "utsabc", + "userId": "Testc", "channel": "mobile", "context": { "os": { @@ -494,13 +491,13 @@ { "destination": { "Config": { - "apiKey": "WJqij952gdy251" + "apiKey": "dummyApiKey" } }, "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "utsabc", + "userId": "Testc", "channel": "web", "context": { "os": { "name": "", "version": "" }, @@ -511,19 +508,19 @@ "namespace": "com.rudderlabs.javascript" }, "traits": { - "firstName": "Utsab", - "lastName": "Chowdhury", - "email": "utsab@rudderstack.com", + "firstName": "Test", + "lastName": "Rudderlabs", + "email": "test@rudderstack.com", "phone": "+12345578900", "birthday": "2005-01-01T23:28:56.782Z", - "userId": "utsabc", + "userId": "Testc", "address": { "street": "24 Dovers Lane", "city": "Miami", "state": "Florida", "postalCode": "1890001" }, - "userName": "utsabc47", + "userName": "Testc47", "company": "Rudderstack", "createdAt": "2015-04-17T12:37:42.146Z", "lastActivityAt": "2016-04-17T12:37:42.146Z", @@ -538,15 +535,15 @@ "verified": true, "userid": "100", "type": "twitter", - "username": "@utsabc", - "url": "http://twitter.com/utsabc" + "username": "@Testc", + "url": "http://twitter.com/Testc" }, { "verified": false, "userid": "200", "type": "facebook", - "username": "utsabc", - "url": "http://facebook.com/utsabc" + "username": "Testc", + "url": "http://facebook.com/Testc" } ] }, @@ -566,13 +563,13 @@ { "destination": { "Config": { - "apiKey": "WJqij952gdy251" + "apiKey": "dummyApiKey" } }, "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "utsabc", + "userId": "Testc", "channel": "web", "context": { "os": { "name": "", "version": "" }, @@ -583,12 +580,12 @@ "namespace": "com.rudderlabs.javascript" }, "traits": { - "firstName": "Utsab", - "lastName": "Chowdhury", + "firstName": "Test", + "lastName": "Rudderlabs", "emails": [ { "type": "home", - "email": "utsab@rudderstack.com" + "email": "test@rudderstack.com" } ], "phones": [ @@ -598,9 +595,9 @@ } ], "birthday": "2005-01-01T23:28:56.782Z", - "userId": "utsabc", + "userId": "Testc", "address": "test address string", - "userName": "utsabc47", + "userName": "Testc47", "company": "Rudderstack", "createdAt": "2015-04-17T12:37:42.146Z", "lastActivityAt": "2016-04-17T12:37:42.146Z", @@ -615,15 +612,15 @@ "verified": true, "userid": "100", "type": "twitter", - "username": "@utsabc", - "url": "http://twitter.com/utsabc" + "username": "@Testc", + "url": "http://twitter.com/Testc" }, { "verified": false, "userid": "200", "type": "facebook", - "username": "utsabc", - "url": "http://facebook.com/utsabc" + "username": "Testc", + "url": "http://facebook.com/Testc" } ] }, @@ -643,13 +640,13 @@ { "destination": { "Config": { - "apiKey": "WJqij952gdy251" + "apiKey": "dummyApiKey" } }, "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "utsabc", + "userId": "Testc", "channel": "web", "context": { "os": { "name": "", "version": "" }, @@ -660,12 +657,12 @@ "namespace": "com.rudderlabs.javascript" }, "traits": { - "firstName": "Utsab", - "lastName": "Chowdhury", + "firstName": "Test", + "lastName": "Rudderlabs", "emails": [ { "type": "home", - "email": "utsab@rudderstack.com" + "email": "test@rudderstack.com" } ], "phones": [ @@ -675,9 +672,9 @@ } ], "birthday": "2005-01-01T23:28:56.782Z", - "userId": "utsabc", + "userId": "Testc", "address": "test address string", - "userName": "utsabc47", + "userName": "Testc47", "company": "Rudderstack", "createdAt": "2015-04-17T12:37:42.146Z", "lastActivityAt": "2016-04-17T12:37:42.146Z", @@ -692,15 +689,15 @@ "verified": true, "userid": "100", "type": "twitter", - "username": "@utsabc", - "url": "http://twitter.com/utsabc" + "username": "@Testc", + "url": "http://twitter.com/Testc" }, { "verified": false, "userid": "200", "type": "facebook", - "username": "utsabc", - "url": "http://facebook.com/utsabc" + "username": "Testc", + "url": "http://facebook.com/Testc" } ] }, @@ -726,7 +723,7 @@ { "destination": { "Config": { - "apiKey": "WJqij952gdy251", + "apiKey": "dummyApiKey", "genericScreen": true } }, @@ -785,5 +782,70 @@ }, "originalTimestamp": "2023-01-10T15:32:56.409Z" } + }, + { + "destination": { + "Config": { + "apiKey": "dummyAPIkey", + "baseEndpoint": "https://api.prod2.kustomerapp.com", + "apiKey": "dummyApiKey", + "genericScreen": true + } + }, + "message": { + "type": "screen", + "event": "Test-Event-Screen", + "userId": "Testc", + "channel": "mobile", + "context": { + "os": { + "name": "Android", + "version": "10" + }, + "app": { + "name": "KlaviyoTest", + "build": "1", + "version": "1.0", + "namespace": "com.rudderstack.android.rudderstack.sampleAndroidApp" + }, + "device": { + "id": "9c6bd77ea9da3e68", + "name": "raphaelin", + "type": "android", + "model": "Redmi K20 Pro", + "manufacturer": "Xiaomi" + }, + "locale": "en-IN", + "screen": { + "width": 1080, + "height": 2210, + "density": 440 + }, + "library": { + "name": "com.rudderstack.android.sdk.core", + "version": "1.0.2" + }, + "network": { + "wifi": true, + "carrier": "airtel", + "cellular": true, + "bluetooth": false + }, + "timezone": "Asia/Kolkata", + "userAgent": "Dalvik/2.1.0 (Linux; U; Android 10; Redmi K20 Pro MIUI/V12.0.4.0.QFKINXM)", + "sessionId": "hsad522" + }, + "rudderId": "b7b24f86-f7bf-46d8-b2b4-ccafc080239c", + "messageId": "1611588776408-ee5a3212-fbf9-4cbb-bbad-3ed0f7c6a2ce", + "properties": { + "hasAccount": "true", + "YearSelectedNum": 1801 + }, + "anonymousId": "9c6bd77ea9da3e68", + "integrations": { + "All": true + }, + "originalTimestamp": "2023-01-10T15:32:56.409Z" + } } ] diff --git a/test/__tests__/data/kustomer_output.json b/test/__tests__/data/kustomer_output.json index 9e1ad82bae7..0a0876d29af 100644 --- a/test/__tests__/data/kustomer_output.json +++ b/test/__tests__/data/kustomer_output.json @@ -6,14 +6,14 @@ "endpoint": "https://api.kustomerapp.com/v1/customers", "headers": { "Content-Type": "application/json", - "Authorization": "Bearer WJqij952gdy251" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { "JSON": { - "name": "Utsab Chowdhury", - "externalId": "utsabc", - "username": "utsabc47", + "name": "Test Rudderlabs", + "externalId": "Testc", + "username": "Testc47", "company": "Rudderstack", "signedUpAt": "2015-04-17T12:37:42.146Z", "lastActivityAt": "2016-04-17T12:37:42.146Z", @@ -28,22 +28,22 @@ "verified": true, "userid": "100", "type": "twitter", - "username": "@utsabc", - "url": "http://twitter.com/utsabc" + "username": "@Testc", + "url": "http://twitter.com/Testc" }, { "verified": false, "userid": "200", "type": "facebook", - "username": "utsabc", - "url": "http://facebook.com/utsabc" + "username": "Testc", + "url": "http://facebook.com/Testc" } ], "birthdayAt": "2005-01-01T23:28:56.782Z", "emails": [ { "type": "home", - "email": "utsab@rudderstack.com" + "email": "test@rudderstack.com" } ], "phones": [ @@ -77,21 +77,15 @@ "endpoint": "https://api.kustomerapp.com/v1/customers/58210c3db0f09110006b7953?replace=false", "headers": { "Content-Type": "application/json", - "Authorization": "Bearer WJqij952gdy251" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { "JSON": { "name": "Ano Domeni", - "externalId": "annodD", + "externalId": "58210c3db0f09110006b7953", "locale": "en-US", "birthdayAt": "2005-01-01T23:28:56.782Z", - "emails": [ - { - "type": "home", - "email": "ano@rudderstack.com" - } - ], "phones": [ { "type": "home", @@ -112,13 +106,13 @@ "endpoint": "https://api.kustomerapp.com/v1/tracking/identityEvent", "headers": { "Content-Type": "application/json", - "Authorization": "Bearer WJqij952gdy251" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { "JSON": { "identity": { - "externalId": "utsabc" + "externalId": "Testc" }, "event": { "name": "Screen-Viewed-Test-Event-Screen", @@ -142,7 +136,7 @@ "endpoint": "https://api.kustomerapp.com/v1/tracking/identityEvent", "headers": { "Content-Type": "application/json", - "Authorization": "Bearer WJqij952gdy251" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -177,7 +171,7 @@ "endpoint": "https://api.kustomerapp.com/v1/tracking/identityEvent", "headers": { "Content-Type": "application/json", - "Authorization": "Bearer WJqij952gdy251" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -213,7 +207,7 @@ "endpoint": "https://api.kustomerapp.com/v1/tracking/identityEvent", "headers": { "Content-Type": "application/json", - "Authorization": "Bearer WJqij952gdy251" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -244,7 +238,7 @@ "endpoint": "https://api.kustomerapp.com/v1/tracking/identityEvent", "headers": { "Content-Type": "application/json", - "Authorization": "Bearer WJqij952gdy251" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -275,7 +269,7 @@ "endpoint": "https://api.kustomerapp.com/v1/tracking/identityEvent", "headers": { "Content-Type": "application/json", - "Authorization": "Bearer WJqij952gdy251" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -309,13 +303,13 @@ "endpoint": "https://api.kustomerapp.com/v1/tracking/identityEvent", "headers": { "Content-Type": "application/json", - "Authorization": "Bearer WJqij952gdy251" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { "JSON": { "identity": { - "externalId": "utsabc" + "externalId": "Testc" }, "event": { "name": "Screen-Viewed", @@ -339,14 +333,14 @@ "endpoint": "https://api.kustomerapp.com/v1/customers", "headers": { "Content-Type": "application/json", - "Authorization": "Bearer WJqij952gdy251" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { "JSON": { - "name": "Utsab Chowdhury", - "externalId": "utsabc", - "username": "utsabc47", + "name": "Test Rudderlabs", + "externalId": "Testc", + "username": "Testc47", "company": "Rudderstack", "signedUpAt": "2015-04-17T12:37:42.146Z", "lastActivityAt": "2016-04-17T12:37:42.146Z", @@ -361,22 +355,22 @@ "verified": true, "userid": "100", "type": "twitter", - "username": "@utsabc", - "url": "http://twitter.com/utsabc" + "username": "@Testc", + "url": "http://twitter.com/Testc" }, { "verified": false, "userid": "200", "type": "facebook", - "username": "utsabc", - "url": "http://facebook.com/utsabc" + "username": "Testc", + "url": "http://facebook.com/Testc" } ], "birthdayAt": "2005-01-01T23:28:56.782Z", "emails": [ { "type": "home", - "email": "utsab@rudderstack.com" + "email": "test@rudderstack.com" } ], "phones": [ @@ -410,14 +404,14 @@ "endpoint": "https://api.kustomerapp.com/v1/customers", "headers": { "Content-Type": "application/json", - "Authorization": "Bearer WJqij952gdy251" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { "JSON": { - "name": "Utsab Chowdhury", - "externalId": "utsabc", - "username": "utsabc47", + "name": "Test Rudderlabs", + "externalId": "Testc", + "username": "Testc47", "company": "Rudderstack", "signedUpAt": "2015-04-17T12:37:42.146Z", "lastActivityAt": "2016-04-17T12:37:42.146Z", @@ -432,22 +426,22 @@ "verified": true, "userid": "100", "type": "twitter", - "username": "@utsabc", - "url": "http://twitter.com/utsabc" + "username": "@Testc", + "url": "http://twitter.com/Testc" }, { "verified": false, "userid": "200", "type": "facebook", - "username": "utsabc", - "url": "http://facebook.com/utsabc" + "username": "Testc", + "url": "http://facebook.com/Testc" } ], "birthdayAt": "2005-01-01T23:28:56.782Z", "emails": [ { "type": "home", - "email": "utsab@rudderstack.com" + "email": "test@rudderstack.com" } ], "phones": [ @@ -481,14 +475,14 @@ "endpoint": "https://api.kustomerapp.com/v1/customers/abcd1234?replace=false", "headers": { "Content-Type": "application/json", - "Authorization": "Bearer WJqij952gdy251" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { "JSON": { - "name": "Utsab Chowdhury", - "externalId": "utsabc", - "username": "utsabc47", + "name": "Test Rudderlabs", + "externalId": "Testc", + "username": "Testc47", "company": "Rudderstack", "signedUpAt": "2015-04-17T12:37:42.146Z", "lastActivityAt": "2016-04-17T12:37:42.146Z", @@ -503,22 +497,22 @@ "verified": true, "userid": "100", "type": "twitter", - "username": "@utsabc", - "url": "http://twitter.com/utsabc" + "username": "@Testc", + "url": "http://twitter.com/Testc" }, { "verified": false, "userid": "200", "type": "facebook", - "username": "utsabc", - "url": "http://facebook.com/utsabc" + "username": "Testc", + "url": "http://facebook.com/Testc" } ], "birthdayAt": "2005-01-01T23:28:56.782Z", "emails": [ { "type": "home", - "email": "utsab@rudderstack.com" + "email": "test@rudderstack.com" } ], "phones": [ @@ -552,7 +546,7 @@ "endpoint": "https://api.kustomerapp.com/v1/tracking/identityEvent", "headers": { "Content-Type": "application/json", - "Authorization": "Bearer WJqij952gdy251" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -574,5 +568,35 @@ "FORM": {} }, "files": {} + }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.prod2.kustomerapp.com/v1/tracking/identityEvent", + "headers": { + "Content-Type": "application/json", + "Authorization": "Bearer dummyApiKey" + }, + "params": {}, + "body": { + "JSON": { + "identity": { + "externalId": "Testc" + }, + "event": { + "name": "Screen-Viewed", + "sessionId": "hsad522", + "meta": { + "hasAccount": "true", + "YearSelectedNum": 1801 + } + } + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {} } ] diff --git a/test/__tests__/data/kustomer_router_input.json b/test/__tests__/data/kustomer_router_input.json index 806ef5e540e..0e4c88aa20c 100644 --- a/test/__tests__/data/kustomer_router_input.json +++ b/test/__tests__/data/kustomer_router_input.json @@ -3,7 +3,7 @@ "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "utsabc", + "userId": "testc", "channel": "web", "context": { "os": { "name": "", "version": "" }, @@ -14,18 +14,18 @@ "namespace": "com.rudderlabs.javascript" }, "traits": { - "name": "Utsab Chowdhury", - "email": "utsab@rudderstack.com", + "name": "test Rudderlabs", + "email": "test@rudderstack.com", "phone": "+12345578900", "birthday": "2005-01-01T23:28:56.782Z", - "userId": "utsabc", + "userId": "testc", "address": { "street": "24 Dovers Lane", "city": "Miami", "state": "Florida", "postalCode": "1890001" }, - "userName": "utsabc47", + "userName": "testc47", "company": "Rudderstack", "createdAt": "2015-04-17T12:37:42.146Z", "lastActivityAt": "2016-04-17T12:37:42.146Z", @@ -40,15 +40,15 @@ "verified": true, "userid": "100", "type": "twitter", - "username": "@utsabc", - "url": "http://twitter.com/utsabc" + "username": "@testc", + "url": "http://twitter.com/testc" }, { "verified": false, "userid": "200", "type": "facebook", - "username": "utsabc", - "url": "http://facebook.com/utsabc" + "username": "testc", + "url": "http://facebook.com/testc" } ] }, @@ -64,12 +64,64 @@ "integrations": { "All": true }, "originalTimestamp": "2021-01-03T17:02:53.193Z" }, + "metadata": { + "jobId": 1 + }, + "destination": { + "Config": { + "apiKey": "dummyApiKey", + "genericPage": false, + "genericScreen": false + } + } + }, + { + "message": { + "type": "track", + "event": "Tracking-Weekender", + "sentAt": "2021-01-03T17:02:53.197Z", + "userId": "user@doe", + "channel": "web", + "context": { + "os": { "name": "", "version": "" }, + "app": { + "name": "RudderLabs JavaScript SDK", + "build": "1.0.0", + "version": "1.1.11", + "namespace": "com.rudderlabs.javascript" + }, + "page": { + "url": "http://morkey.in", + "path": "/cart", + "title": "miphone", + "search": "MI", + "referrer": "morkey" + }, + "locale": "en-US", + "screen": { "density": 2 }, + "library": { "name": "RudderLabs JavaScript SDK", "version": "1.1.11" }, + "campaign": {}, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" + }, + "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", + "messageId": "15129730-eb00-4db7-8db2-799566ccb2ef", + "properties": { + "YearServicedNum": 211, + "region": "strapis", + "kustomerTrackingId": "sahetwiac", + "kustomerSessionId": "63nsa22" + }, + "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", + "locale": "en-US", + "integrations": { "All": true }, + "originalTimestamp": "2021-01-03T17:02:53.195Z" + }, "metadata": { "jobId": 2 }, "destination": { "Config": { - "apiKey": "WJqij952gdy251", + "apiKey": "dummyApiKey", "genericPage": false, "genericScreen": false } @@ -121,7 +173,8 @@ }, "destination": { "Config": { - "apiKey": "WJqij952gdy251", + "baseEndpoint": "https://api.prod2.kustomerapp.com", + "apiKey": "dummyApiKey", "genericPage": false, "genericScreen": false } diff --git a/test/__tests__/data/kustomer_router_output.json b/test/__tests__/data/kustomer_router_output.json index ec6257d00c4..0d3470f74a9 100644 --- a/test/__tests__/data/kustomer_router_output.json +++ b/test/__tests__/data/kustomer_router_output.json @@ -7,14 +7,14 @@ "endpoint": "https://api.kustomerapp.com/v1/customers", "headers": { "Content-Type": "application/json", - "Authorization": "Bearer WJqij952gdy251" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { "JSON": { - "name": "Utsab Chowdhury", - "externalId": "utsabc", - "username": "utsabc47", + "name": "test Rudderlabs", + "externalId": "testc", + "username": "testc47", "company": "Rudderstack", "signedUpAt": "2015-04-17T12:37:42.146Z", "lastActivityAt": "2016-04-17T12:37:42.146Z", @@ -29,22 +29,22 @@ "verified": true, "userid": "100", "type": "twitter", - "username": "@utsabc", - "url": "http://twitter.com/utsabc" + "username": "@testc", + "url": "http://twitter.com/testc" }, { "verified": false, "userid": "200", "type": "facebook", - "username": "utsabc", - "url": "http://facebook.com/utsabc" + "username": "testc", + "url": "http://facebook.com/testc" } ], "birthdayAt": "2005-01-01T23:28:56.782Z", "emails": [ { "type": "home", - "email": "utsab@rudderstack.com" + "email": "test@rudderstack.com" } ], "phones": [ @@ -73,14 +73,14 @@ }, "metadata": [ { - "jobId": 2 + "jobId": 1 } ], "batched": false, "statusCode": 200, "destination": { "Config": { - "apiKey": "WJqij952gdy251", + "apiKey": "dummyApiKey", "genericPage": false, "genericScreen": false } @@ -94,7 +94,54 @@ "endpoint": "https://api.kustomerapp.com/v1/tracking/identityEvent", "headers": { "Content-Type": "application/json", - "Authorization": "Bearer WJqij952gdy251" + "Authorization": "Bearer dummyApiKey" + }, + "params": {}, + "body": { + "JSON": { + "identity": { + "externalId": "user@doe" + }, + "event": { + "name": "Tracking-Weekender", + "sessionId": "63nsa22", + "trackingId": "sahetwiac", + "meta": { + "YearServicedNum": 211, + "region": "strapis" + } + } + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {} + }, + "metadata": [ + { + "jobId": 2 + } + ], + "batched": false, + "statusCode": 200, + "destination": { + "Config": { + "apiKey": "dummyApiKey", + "genericPage": false, + "genericScreen": false + } + } + }, + { + "batchedRequest": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.prod2.kustomerapp.com/v1/tracking/identityEvent", + "headers": { + "Content-Type": "application/json", + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { @@ -127,7 +174,8 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "WJqij952gdy251", + "baseEndpoint": "https://api.prod2.kustomerapp.com", + "apiKey": "dummyApiKey", "genericPage": false, "genericScreen": false } diff --git a/test/__tests__/data/launchdarkly_audience.json b/test/__tests__/data/launchdarkly_audience.json new file mode 100644 index 00000000000..2f348e01fa4 --- /dev/null +++ b/test/__tests__/data/launchdarkly_audience.json @@ -0,0 +1,495 @@ +[ + { + "description": "Unsupported event type", + "input": { + "message": { + "userId": "user123", + "type": "abc", + "properties": { + "listData": { + "add": [ + { + "identifier": "alex@email.com" + }, + { + "identifier": "ryan@email.com" + }, + { + "identifier": "van@email.com" + } + ] + } + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + }, + "destination": { + "Config": { + "audienceId": "test-audienceId", + "audienceName": "test-audienceName", + "accessToken": "test-accessToken", + "clientSideId": "test-clientSideId" + } + } + }, + "output": { + "error": "Event type abc is not supported. Aborting message." + } + }, + { + "description": "List data is not passed", + "input": { + "message": { + "userId": "user123", + "type": "audiencelist", + "properties": {}, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + }, + "destination": { + "Config": { + "audienceId": "test-audienceId", + "audienceName": "test-audienceName", + "accessToken": "test-accessToken", + "clientSideId": "test-clientSideId" + } + } + }, + "output": { + "error": "`listData` is not present inside properties. Aborting message." + } + }, + { + "description": "List data is empty", + "input": { + "message": { + "userId": "user123", + "type": "audiencelist", + "properties": { + "listData": {} + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + }, + "destination": { + "Config": { + "audienceId": "test-audienceId", + "audienceName": "test-audienceName", + "accessToken": "test-accessToken", + "clientSideId": "test-clientSideId" + } + } + }, + "output": { + "error": "`listData` is empty. Aborting message." + } + }, + { + "description": "List data is empty", + "input": { + "message": { + "userId": "user123", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "identifier": "" + }, + { + "identifier": "" + } + ] + } + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + }, + "destination": { + "Config": { + "audienceId": "test-audienceId", + "audienceName": "test-audienceName", + "accessToken": "test-accessToken", + "clientSideId": "test-clientSideId" + } + } + }, + "output": { + "error": "`listData` is empty. Aborting message." + } + }, + { + "description": "Unsupported action type", + "input": { + "message": { + "userId": "user123", + "type": "audiencelist", + "properties": { + "listData": { + "update": [ + { + "identifier": "alex@email.com" + } + ] + } + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + }, + "destination": { + "Config": { + "audienceId": "test-audienceId", + "audienceName": "test-audienceName", + "accessToken": "test-accessToken", + "clientSideId": "test-clientSideId" + } + } + }, + "output": { + "error": "Unsupported action type. Aborting message." + } + }, + { + "description": "Add members to the audience list", + "input": { + "message": { + "userId": "user123", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "identifier": "alex@email.com" + }, + { + "identifier": "ryan@email.com" + }, + { + "identifier": "van@email.com" + } + ] + } + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + }, + "destination": { + "Config": { + "audienceId": "test-audienceId", + "audienceName": "test-audienceName", + "accessToken": "test-accessToken", + "clientSideId": "test-clientSideId" + } + } + }, + "output": [ + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://app.launchdarkly.com/api/v2/segment-targets/rudderstack", + "headers": { + "Authorization": "test-accessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "environmentId": "test-clientSideId", + "cohortId": "test-audienceId", + "cohortName": "test-audienceName", + "listData": { + "add": [ + { + "id": "alex@email.com" + }, + { + "id": "ryan@email.com" + } + ], + "remove": [] + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://app.launchdarkly.com/api/v2/segment-targets/rudderstack", + "headers": { + "Authorization": "test-accessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "environmentId": "test-clientSideId", + "cohortId": "test-audienceId", + "cohortName": "test-audienceName", + "listData": { + "add": [ + { + "id": "van@email.com" + } + ], + "remove": [] + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + ] + }, + { + "description": "Remove members from the audience list", + "input": { + "message": { + "userId": "user123", + "type": "audiencelist", + "properties": { + "listData": { + "remove": [ + { + "identifier": "alex@email.com" + }, + { + "identifier": "ryan@email.com" + }, + { + "identifier": "van@email.com" + } + ] + } + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + }, + "destination": { + "Config": { + "audienceId": "test-audienceId", + "audienceName": "test-audienceName", + "accessToken": "test-accessToken", + "clientSideId": "test-clientSideId" + } + } + }, + "output": [ + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://app.launchdarkly.com/api/v2/segment-targets/rudderstack", + "headers": { + "Authorization": "test-accessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "environmentId": "test-clientSideId", + "cohortId": "test-audienceId", + "cohortName": "test-audienceName", + "listData": { + "remove": [ + { + "id": "alex@email.com" + }, + { + "id": "ryan@email.com" + } + ], + "add": [] + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://app.launchdarkly.com/api/v2/segment-targets/rudderstack", + "headers": { + "Authorization": "test-accessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "environmentId": "test-clientSideId", + "cohortId": "test-audienceId", + "cohortName": "test-audienceName", + "listData": { + "remove": [ + { + "id": "van@email.com" + } + ], + "add": [] + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + ] + }, + { + "description": "Add/Remove members", + "input": { + "message": { + "userId": "user123", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "identifier": "alex@email.com" + }, + { + "userId": "user1" + } + ], + "remove": [ + { + "identifier": "ryan@email.com" + }, + { + "identifier": "van@email.com" + } + ] + } + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + }, + "destination": { + "Config": { + "audienceId": "test-audienceId", + "audienceName": "test-audienceName", + "accessToken": "test-accessToken", + "clientSideId": "test-clientSideId" + } + } + }, + "output": [ + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://app.launchdarkly.com/api/v2/segment-targets/rudderstack", + "headers": { + "Authorization": "test-accessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "environmentId": "test-clientSideId", + "cohortId": "test-audienceId", + "cohortName": "test-audienceName", + "listData": { + "add": [ + { + "id": "alex@email.com" + } + ], + "remove": [ + { + "id": "ryan@email.com" + } + ] + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://app.launchdarkly.com/api/v2/segment-targets/rudderstack", + "headers": { + "Authorization": "test-accessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "environmentId": "test-clientSideId", + "cohortId": "test-audienceId", + "cohortName": "test-audienceName", + "listData": { + "add": [], + "remove": [ + { + "id": "van@email.com" + } + ] + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + ] + } +] diff --git a/test/__tests__/data/leanplum_router_input.json b/test/__tests__/data/leanplum_router_input.json index 9d8b05bcdf8..ba36628209d 100644 --- a/test/__tests__/data/leanplum_router_input.json +++ b/test/__tests__/data/leanplum_router_input.json @@ -57,7 +57,7 @@ "sentAt": "2020-03-12T09:05:13.042Z" }, "metadata": { - "jobId": 2 + "jobId": 1 }, "destination": { "Config": { diff --git a/test/__tests__/data/leanplum_router_output.json b/test/__tests__/data/leanplum_router_output.json index cfa3c0e0f83..e32c53cf835 100644 --- a/test/__tests__/data/leanplum_router_output.json +++ b/test/__tests__/data/leanplum_router_output.json @@ -71,7 +71,7 @@ ], "metadata": [ { - "jobId": 2 + "jobId": 1 } ], "batched": false, diff --git a/test/__tests__/data/lemnisk.json b/test/__tests__/data/lemnisk.json index 0f38eaf639c..3dc295da588 100644 --- a/test/__tests__/data/lemnisk.json +++ b/test/__tests__/data/lemnisk.json @@ -191,8 +191,8 @@ "name": "http" }, "traits": { - "firstName": "Anant", - "lastName": "jain", + "firstName": "test", + "lastName": "rudderlabs", "role": "Manager", "address": "Flat No 58 ABC building XYZ Area near PQRS , 354408", "hasPurchased": "yes", diff --git a/test/__tests__/data/lytics_cdk_output.json b/test/__tests__/data/lytics_cdk_output.json index 1bcc7cf761d..ee8d3e72543 100644 --- a/test/__tests__/data/lytics_cdk_output.json +++ b/test/__tests__/data/lytics_cdk_output.json @@ -3,7 +3,7 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, @@ -72,18 +72,18 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, "params": {}, "body": { "JSON": { - "user_id": "ruchu123", + "user_id": "rudder123", "company.id": "abc123", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "XML": {}, @@ -96,18 +96,18 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, "params": {}, "body": { "JSON": { - "user_id": "ruchu123", + "user_id": "rudder123", "company.id": "abc123", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "XML": {}, @@ -120,18 +120,18 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, "params": {}, "body": { "JSON": { - "user_id": "ruchu123", + "user_id": "rudder123", "company.id": "abc123", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "XML": {}, @@ -144,18 +144,18 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, "params": {}, "body": { "JSON": { - "user_id": "ruchu123", + "user_id": "rudder123", "company.id": "abc123", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "XML": {}, @@ -168,18 +168,18 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, "params": {}, "body": { "JSON": { - "user_id": "ruchu123", + "user_id": "rudder123", "company.id": "abc123", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "XML": {}, @@ -200,7 +200,7 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, @@ -269,7 +269,7 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, @@ -293,7 +293,7 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, @@ -317,21 +317,21 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, "params": {}, "body": { "JSON": { - "user_id": "ruchu123", + "user_id": "rudder123", "company.id": "abc123", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise", - "first_name": "Ruchira", - "last_name": "Moitra" + "first_name": "Rudderstack", + "last_name": "Test" }, "JSON_ARRAY": {}, "XML": {}, diff --git a/test/__tests__/data/lytics_input.json b/test/__tests__/data/lytics_input.json index da29f509972..4ea3001e2e9 100644 --- a/test/__tests__/data/lytics_input.json +++ b/test/__tests__/data/lytics_input.json @@ -34,8 +34,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -111,7 +111,7 @@ "request_ip": "[::1]", "sentAt": "2020-10-16T08:10:12.783Z", "type": "track", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "DestinationDefinition": { @@ -120,7 +120,7 @@ } }, "Config": { - "apiKey": "11111122702j2a2U2K2C7H", + "apiKey": "dummyApiKey", "stream": "default" }, "Enabled": true, @@ -163,8 +163,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -179,7 +179,7 @@ "sentAt": "2020-10-16T08:26:14.939Z", "timestamp": "2020-10-16T13:56:14.944+05:30", "type": "identify", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "DestinationDefinition": { @@ -188,7 +188,7 @@ } }, "Config": { - "apiKey": "11111122702j2a2U2K2C7H", + "apiKey": "dummyApiKey", "stream": "default" }, "Enabled": true, @@ -239,8 +239,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -255,7 +255,7 @@ "sentAt": "2020-10-16T08:53:29.387Z", "timestamp": "2020-10-16T14:23:29.401+05:30", "type": "identify", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "DestinationDefinition": { @@ -264,7 +264,7 @@ } }, "Config": { - "apiKey": "11111122702j2a2U2K2C7H", + "apiKey": "dummyApiKey", "stream": "default" }, "Enabled": true, @@ -307,8 +307,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -323,7 +323,7 @@ "sentAt": "2020-10-16T09:05:11.002Z", "timestamp": "2020-10-16T14:35:11.013+05:30", "type": "identify", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "DestinationDefinition": { @@ -332,7 +332,7 @@ } }, "Config": { - "apiKey": "11111122702j2a2U2K2C7H", + "apiKey": "dummyApiKey", "stream": "default" }, "Enabled": true, @@ -375,8 +375,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -391,7 +391,7 @@ "sentAt": "2020-10-16T09:09:31.466Z", "timestamp": "2020-10-16T14:39:31.467+05:30", "type": "identify", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "DestinationDefinition": { @@ -400,7 +400,7 @@ } }, "Config": { - "apiKey": "11111122702j2a2U2K2C7H", + "apiKey": "dummyApiKey", "stream": "default" }, "Enabled": true, @@ -443,8 +443,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -459,7 +459,7 @@ "sentAt": "2020-10-16T09:09:31.466Z", "timestamp": "2020-10-16T14:39:31.467+05:30", "type": "identify", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "DestinationDefinition": { @@ -468,7 +468,7 @@ } }, "Config": { - "apiKey": "11111122702j2a2U2K2C7H", + "apiKey": "dummyApiKey", "stream": "default" }, "Enabled": true, @@ -511,8 +511,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -526,7 +526,7 @@ "request_ip": "[::1]", "sentAt": "2020-10-16T09:09:31.466Z", "timestamp": "2020-10-16T14:39:31.467+05:30", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "DestinationDefinition": { @@ -535,7 +535,7 @@ } }, "Config": { - "apiKey": "11111122702j2a2U2K2C7H", + "apiKey": "dummyApiKey", "stream": "default" }, "Enabled": true, @@ -578,8 +578,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -594,7 +594,7 @@ "sentAt": "2020-10-16T09:09:31.466Z", "timestamp": "2020-10-16T14:39:31.467+05:30", "type": "gone", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "DestinationDefinition": { @@ -603,7 +603,7 @@ } }, "Config": { - "apiKey": "11111122702j2a2U2K2C7H", + "apiKey": "dummyApiKey", "stream": "default" }, "Enabled": true, @@ -645,8 +645,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -722,7 +722,7 @@ "sentAt": "2020-10-16T08:10:12.783Z", "timestamp": "2020-10-16T13:40:12.791+05:30", "type": "track", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "DestinationDefinition": { @@ -731,7 +731,7 @@ } }, "Config": { - "apiKey": "11111122702j2a2U2K2C7H", + "apiKey": "dummyApiKey", "stream": "default" }, "Enabled": true, @@ -799,7 +799,7 @@ } }, "Config": { - "apiKey": "11111122702j2a2U2K2C7H", + "apiKey": "dummyApiKey", "stream": "default" }, "Enabled": true, @@ -867,7 +867,7 @@ } }, "Config": { - "apiKey": "11111122702j2a2U2K2C7H", + "apiKey": "dummyApiKey", "stream": "default" }, "Enabled": true, @@ -910,11 +910,11 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise", - "firstName": "Ruchira", - "lastname": "Moitra" + "firstName": "Rudderstack", + "lastname": "Test" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" }, @@ -928,7 +928,7 @@ "sentAt": "2020-10-16T08:26:14.939Z", "timestamp": "2020-10-16T13:56:14.944+05:30", "type": "identify", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "DestinationDefinition": { @@ -937,7 +937,7 @@ } }, "Config": { - "apiKey": "11111122702j2a2U2K2C7H", + "apiKey": "dummyApiKey", "stream": "default" }, "Enabled": true, diff --git a/test/__tests__/data/lytics_output.json b/test/__tests__/data/lytics_output.json index 2de68e6d0de..8a1949bbb4c 100644 --- a/test/__tests__/data/lytics_output.json +++ b/test/__tests__/data/lytics_output.json @@ -3,7 +3,7 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, @@ -72,18 +72,18 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, "params": {}, "body": { "JSON": { - "user_id": "ruchu123", + "user_id": "rudder123", "company.id": "abc123", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "XML": {}, @@ -96,18 +96,18 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, "params": {}, "body": { "JSON": { - "user_id": "ruchu123", + "user_id": "rudder123", "company.id": "abc123", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "XML": {}, @@ -120,18 +120,18 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, "params": {}, "body": { "JSON": { - "user_id": "ruchu123", + "user_id": "rudder123", "company.id": "abc123", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "XML": {}, @@ -144,18 +144,18 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, "params": {}, "body": { "JSON": { - "user_id": "ruchu123", + "user_id": "rudder123", "company.id": "abc123", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "XML": {}, @@ -168,18 +168,18 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, "params": {}, "body": { "JSON": { - "user_id": "ruchu123", + "user_id": "rudder123", "company.id": "abc123", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "XML": {}, @@ -200,7 +200,7 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, @@ -269,7 +269,7 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, @@ -293,7 +293,7 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, @@ -317,21 +317,21 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, "params": {}, "body": { "JSON": { - "user_id": "ruchu123", + "user_id": "rudder123", "company.id": "abc123", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise", - "first_name": "Ruchira", - "last_name": "Moitra" + "first_name": "Rudderstack", + "last_name": "Test" }, "JSON_ARRAY": {}, "XML": {}, diff --git a/test/__tests__/data/lytics_router_input.json b/test/__tests__/data/lytics_router_input.json index 7cd94f49a6a..425a7b1e3e8 100644 --- a/test/__tests__/data/lytics_router_input.json +++ b/test/__tests__/data/lytics_router_input.json @@ -34,8 +34,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -110,14 +110,14 @@ "request_ip": "[::1]", "sentAt": "2020-10-16T08:10:12.783Z", "type": "track", - "userId": "ruchu123" + "userId": "rudder123" }, "metadata": { - "jobId": 2 + "jobId": 1 }, "destination": { "Config": { - "apiKey": "11111122702j2a2U2K2C7H", + "apiKey": "dummyApiKey", "stream": "default" }, "Enabled": true, @@ -160,8 +160,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -176,14 +176,14 @@ "sentAt": "2020-10-16T08:26:14.939Z", "timestamp": "2020-10-16T13:56:14.944+05:30", "type": "identify", - "userId": "ruchu123" + "userId": "rudder123" }, "metadata": { "jobId": 2 }, "destination": { "Config": { - "apiKey": "11111122702j2a2U2K2C7H", + "apiKey": "dummyApiKey", "stream": "default" }, "Enabled": true, diff --git a/test/__tests__/data/lytics_router_output.json b/test/__tests__/data/lytics_router_output.json index d13671d0cde..2ac41bea00f 100644 --- a/test/__tests__/data/lytics_router_output.json +++ b/test/__tests__/data/lytics_router_output.json @@ -4,7 +4,7 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, @@ -71,14 +71,14 @@ }, "metadata": [ { - "jobId": 2 + "jobId": 1 } ], "batched": false, "statusCode": 200, "destination": { "Config": { - "apiKey": "11111122702j2a2U2K2C7H", + "apiKey": "dummyApiKey", "stream": "default" }, "Enabled": true, @@ -91,18 +91,18 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.lytics.io/collect/json/default?access_token=11111122702j2a2U2K2C7H", + "endpoint": "https://api.lytics.io/collect/json/default?access_token=dummyApiKey", "headers": { "Content-Type": "application/json" }, "params": {}, "body": { "JSON": { - "user_id": "ruchu123", + "user_id": "rudder123", "company.id": "abc123", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "XML": {}, @@ -120,7 +120,7 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "11111122702j2a2U2K2C7H", + "apiKey": "dummyApiKey", "stream": "default" }, "Enabled": true, diff --git a/test/__tests__/data/mailchimp_batch_input.json b/test/__tests__/data/mailchimp_batch_input.json index ddf5e87787d..ea382b1d89a 100644 --- a/test/__tests__/data/mailchimp_batch_input.json +++ b/test/__tests__/data/mailchimp_batch_input.json @@ -9,7 +9,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apiKey-usPQ", + "apiKey": "apiKey-dummyApiKey", "audienceId": "1232yyqw22", "datacenterId": "us20" }, @@ -82,7 +82,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apiKey-usPQ", + "apiKey": "apiKey-dummyApiKey", "audienceId": "1232yyqw22", "datacenterId": "us20" }, @@ -132,7 +132,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apiKey-usPQ", + "apiKey": "apiKey-dummyApiKey", "audienceId": "1232yyqw22", "datacenterId": "us20" }, @@ -182,7 +182,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apiKey-usPQ", + "apiKey": "apiKey-dummyApiKey", "audienceId": "1232yyqw22", "datacenterId": "us20" }, diff --git a/test/__tests__/data/mailchimp_batch_output.json b/test/__tests__/data/mailchimp_batch_output.json index 866f078771a..fac07b6a460 100644 --- a/test/__tests__/data/mailchimp_batch_output.json +++ b/test/__tests__/data/mailchimp_batch_output.json @@ -7,7 +7,7 @@ "endpoint": "https://us20.api.mailchimp.com/3.0/lists/1232yyqw22?skip_merge_validation=false&skip_duplicate_check=false", "headers": { "Content-Type": "application/json", - "Authorization": "Basic YXBpS2V5OmFwaUtleS11c1BR" + "Authorization": "Basic YXBpS2V5OmFwaUtleS1kdW1teUFwaUtleQ==" }, "params": {}, "body": { @@ -59,7 +59,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apiKey-usPQ", + "apiKey": "apiKey-dummyApiKey", "audienceId": "1232yyqw22", "datacenterId": "us20" }, @@ -77,7 +77,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apiKey-usPQ", + "apiKey": "apiKey-dummyApiKey", "audienceId": "1232yyqw22", "datacenterId": "us20" }, diff --git a/test/__tests__/data/mailchimp_input.json b/test/__tests__/data/mailchimp_input.json index 695477021ea..20b7ba0fc01 100644 --- a/test/__tests__/data/mailchimp_input.json +++ b/test/__tests__/data/mailchimp_input.json @@ -9,7 +9,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX", "enableMergeFields": true @@ -77,7 +77,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX", "enableMergeFields": true @@ -133,14 +133,14 @@ { "destination": { "ID": "1Tdi0lpXwSVwXG1lcdP2pXHKrJ6", - "Name": "Titli Ganguly", + "Name": "Titli Test", "DestinationDefinition": { "ID": "1SujZGrVEPqYmpUJcV4vSl9tfxn", "Name": "MC", "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey-usYY", + "apiKey": "apiKey-dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, @@ -150,7 +150,7 @@ "message": { "type": "identify", "sentAt": "2021-05-18T06:58:57.186Z", - "userId": "pravesh.choudhary@yara.com", + "userId": "test.rudderlabs@yara.com", "channel": "web", "context": { "os": { @@ -181,8 +181,8 @@ "density": 2 }, "traits": { - "name": "Pravesh Choudhary", - "email": "pravesh.choudhary@yara.com", + "name": "test rudderlabs", + "email": "test.rudderlabs@yara.com", "userId": "1sWVaQTxoVwjvShC0295E6OqMaP", "first_login": false, "workspaceId": "1jWrHYPjNGSHbvKwzow0ZFPIQll", @@ -210,14 +210,14 @@ { "destination": { "ID": "1Tdi0lpXwSVwXG1lcdP2pXHKrJ6", - "Name": "Titli Ganguly", + "Name": "Titli Test", "DestinationDefinition": { "ID": "1SujZGrVEPqYmpUJcV4vSl9tfxn", "Name": "MC", "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, @@ -296,7 +296,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, @@ -366,7 +366,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, @@ -413,7 +413,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, @@ -470,7 +470,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud112", "datacenterId": "usXX" }, @@ -529,7 +529,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, @@ -588,7 +588,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, @@ -681,10 +681,10 @@ "density": 2 }, "traits": { - "anonymousId": "rohithkaza", - "email": "rohithkaza-test@initech.com", - "firstName": "Rohith", - "lastName": "Kaza" + "anonymousId": "test-rudderlabs", + "email": "test-rudderlabs-test@initech.com", + "firstName": "Test", + "lastName": "Rudderlabs" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36" }, @@ -712,7 +712,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "datacenterId": "usXX" }, "Enabled": true, @@ -742,10 +742,10 @@ "density": 2 }, "traits": { - "anonymousId": "rohithkaza", - "email": "rohithkaza-test@initech.com", - "firstName": "Rohith", - "lastName": "Kaza" + "anonymousId": "test-rudderlabs", + "email": "test-rudderlabs-test@initech.com", + "firstName": "Test", + "lastName": "Rudderlabs" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36" }, @@ -773,7 +773,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "" }, @@ -804,10 +804,10 @@ "density": 2 }, "traits": { - "anonymousId": "rohithkaza", - "email": "rohithkaza-test@initech.com", - "firstName": "Rohith", - "lastName": "Kaza" + "anonymousId": "test-rudderlabs", + "email": "test-rudderlabs-test@initech.com", + "firstName": "Test", + "lastName": "Rudderlabs" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36" }, @@ -835,7 +835,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, @@ -866,10 +866,10 @@ "density": 2 }, "traits": { - "anonymousId": "rohithkaza", - "email": "rohithkaza-test@initech.com", - "firstName": "Rohith", - "lastName": "Kaza" + "anonymousId": "test-rudderlabs", + "email": "test-rudderlabs-test@initech.com", + "firstName": "Test", + "lastName": "Rudderlabs" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36" }, @@ -897,7 +897,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, @@ -938,7 +938,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, @@ -980,7 +980,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, @@ -1016,7 +1016,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, @@ -1057,7 +1057,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, @@ -1094,7 +1094,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, @@ -1147,7 +1147,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, @@ -1200,7 +1200,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, @@ -1253,7 +1253,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, diff --git a/test/__tests__/data/mailchimp_output.json b/test/__tests__/data/mailchimp_output.json index 0181409515f..e1a8384242a 100644 --- a/test/__tests__/data/mailchimp_output.json +++ b/test/__tests__/data/mailchimp_output.json @@ -6,7 +6,7 @@ "endpoint": "https://usXX.api.mailchimp.com/3.0/lists/aud111/members/48cd6232dc124497369f59c33d3eb4ab", "headers": { "Content-Type": "application/json", - "Authorization": "Basic YXBpS2V5OmFwaWtleQ==" + "Authorization": "Basic YXBpS2V5OmR1bW15QXBpS2V5" }, "params": {}, "body": { @@ -40,7 +40,7 @@ "endpoint": "https://usXX.api.mailchimp.com/3.0/lists/aud111/members/48cd6232dc124497369f59c33d3eb4ab", "headers": { "Content-Type": "application/json", - "Authorization": "Basic YXBpS2V5OmFwaWtleQ==" + "Authorization": "Basic YXBpS2V5OmR1bW15QXBpS2V5" }, "params": {}, "body": { @@ -62,14 +62,14 @@ "error": "User does not have access to the requested operation", "destination": { "ID": "1Tdi0lpXwSVwXG1lcdP2pXHKrJ6", - "Name": "Titli Ganguly", + "Name": "Titli Test", "DestinationDefinition": { "ID": "1SujZGrVEPqYmpUJcV4vSl9tfxn", "Name": "MC", "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey-usYY", + "apiKey": "apiKey-dummyApiKey", "audienceId": "aud111", "datacenterId": "usXX" }, @@ -80,7 +80,7 @@ { "destination": { "ID": "1Tdi0lpXwSVwXG1lcdP2pXHKrJ6", - "Name": "Titli Ganguly", + "Name": "Titli Test", "DestinationDefinition": { "ID": "1SujZGrVEPqYmpUJcV4vSl9tfxn", "Name": "MC", @@ -103,7 +103,7 @@ "endpoint": "https://usXX.api.mailchimp.com/3.0/lists/aud111/members/48cd6232dc124497369f59c33d3eb4ab", "headers": { "Content-Type": "application/json", - "Authorization": "Basic YXBpS2V5OmFwaWtleQ==" + "Authorization": "Basic YXBpS2V5OmR1bW15QXBpS2V5" }, "params": {}, "body": { @@ -150,7 +150,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "ff21810ddc", "datacenterId": "us14" }, @@ -181,7 +181,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Basic YXBpS2V5OmFwaWtleQ==" + "Authorization": "Basic YXBpS2V5OmR1bW15QXBpS2V5" }, "audienceId": "aud112", "version": "1", @@ -204,7 +204,7 @@ "audienceId": "aud111", "headers": { "Content-Type": "application/json", - "Authorization": "Basic YXBpS2V5OmFwaWtleQ==" + "Authorization": "Basic YXBpS2V5OmR1bW15QXBpS2V5" }, "version": "1", "endpoint": "https://usXX.api.mailchimp.com/3.0/lists/aud111/members/48cd6232dc124497369f59c33d3eb4ab" @@ -216,7 +216,7 @@ "endpoint": "https://usXX.api.mailchimp.com/3.0/lists/aud111/members/48cd6232dc124497369f59c33d3eb4ab", "headers": { "Content-Type": "application/json", - "Authorization": "Basic YXBpS2V5OmFwaWtleQ==" + "Authorization": "Basic YXBpS2V5OmR1bW15QXBpS2V5" }, "params": {}, "body": { @@ -278,7 +278,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "aud111", "datacenterId": "" }, @@ -313,7 +313,7 @@ "endpoint": "https://usXX.api.mailchimp.com/3.0/lists/aud111/members/48cd6232dc124497369f59c33d3eb4ab/events", "headers": { "Content-Type": "application/json", - "Authorization": "Basic YXBpS2V5OmFwaWtleQ==" + "Authorization": "Basic YXBpS2V5OmR1bW15QXBpS2V5" }, "params": {}, "body": { @@ -339,7 +339,7 @@ "endpoint": "https://usXX.api.mailchimp.com/3.0/lists/aud111/members/48cd6232dc124497369f59c33d3eb4ab/events", "headers": { "Content-Type": "application/json", - "Authorization": "Basic YXBpS2V5OmFwaWtleQ==" + "Authorization": "Basic YXBpS2V5OmR1bW15QXBpS2V5" }, "params": {}, "body": { @@ -372,7 +372,7 @@ "endpoint": "https://usXX.api.mailchimp.com/3.0/lists/aud111/members/48cd6232dc124497369f59c33d3eb4ab/events", "headers": { "Content-Type": "application/json", - "Authorization": "Basic YXBpS2V5OmFwaWtleQ==" + "Authorization": "Basic YXBpS2V5OmR1bW15QXBpS2V5" }, "params": {}, "body": { @@ -394,7 +394,7 @@ "endpoint": "https://usXX.api.mailchimp.com/3.0/lists/aud111/members/48cd6232dc124497369f59c33d3eb4ab/events", "headers": { "Content-Type": "application/json", - "Authorization": "Basic YXBpS2V5OmFwaWtleQ==" + "Authorization": "Basic YXBpS2V5OmR1bW15QXBpS2V5" }, "params": {}, "body": { @@ -423,7 +423,7 @@ "endpoint": "https://usXX.api.mailchimp.com/3.0/lists/aud111/members/48cd6232dc124497369f59c33d3eb4ab/events", "headers": { "Content-Type": "application/json", - "Authorization": "Basic YXBpS2V5OmFwaWtleQ==" + "Authorization": "Basic YXBpS2V5OmR1bW15QXBpS2V5" }, "params": {}, "body": { @@ -455,7 +455,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "ff21810ddc", "datacenterId": "us14" }, @@ -480,7 +480,7 @@ "DisplayName": "MailChimp" }, "Config": { - "apiKey": "apikey", + "apiKey": "dummyApiKey", "audienceId": "ff21810ddc", "datacenterId": "us14" }, diff --git a/test/__tests__/data/mailjet.json b/test/__tests__/data/mailjet.json index 7f4293cb0bf..86e49f924d1 100644 --- a/test/__tests__/data/mailjet.json +++ b/test/__tests__/data/mailjet.json @@ -20,8 +20,8 @@ }, "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2" + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret" } } }, @@ -52,8 +52,8 @@ }, "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2" + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret" } } }, @@ -83,8 +83,8 @@ }, "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2" + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret" } } }, @@ -114,8 +114,8 @@ }, "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [{ "from": "userCountry", "to": "country" }] } diff --git a/test/__tests__/data/mailjet_batch.json b/test/__tests__/data/mailjet_batch.json index 50d2157d7ee..10c2a863d02 100644 --- a/test/__tests__/data/mailjet_batch.json +++ b/test/__tests__/data/mailjet_batch.json @@ -5,8 +5,8 @@ { "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [{ "from": "userCountry", "to": "country" }] } @@ -42,7 +42,7 @@ "endpoint": "https://api.mailjet.com/v3/REST/contactslist/58578/managemanycontacts", "headers": { "Content-Type": "application/json", - "Authorization": "Basic NjA3Mjg3ZmZhZGY1MmM0ODg4MTAxODcwYjllNzFjNTI6ZWY0MjhjMTVlMmc4YWViNmViYWNmZDFjZmJmN2JmZDI=" + "Authorization": "Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=" }, "params": {}, "body": { @@ -70,8 +70,8 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [ { @@ -90,8 +90,8 @@ { "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [{ "from": "userCountry", "to": "country" }] } @@ -120,8 +120,8 @@ { "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [{ "from": "userCountry", "to": "country" }] } @@ -162,8 +162,8 @@ { "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [{ "from": "userCountry", "to": "country" }] } @@ -204,8 +204,8 @@ { "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [{ "from": "userCountry", "to": "country" }] } @@ -246,8 +246,8 @@ { "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [{ "from": "userCountry", "to": "country" }] } @@ -288,8 +288,8 @@ { "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [{ "from": "userCountry", "to": "country" }] } @@ -324,8 +324,8 @@ { "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [{ "from": "userCountry", "to": "country" }] } @@ -361,7 +361,7 @@ "endpoint": "https://api.mailjet.com/v3/REST/contactslist/58578/managemanycontacts", "headers": { "Content-Type": "application/json", - "Authorization": "Basic NjA3Mjg3ZmZhZGY1MmM0ODg4MTAxODcwYjllNzFjNTI6ZWY0MjhjMTVlMmc4YWViNmViYWNmZDFjZmJmN2JmZDI=" + "Authorization": "Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=" }, "params": {}, "body": { @@ -393,8 +393,8 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [ { @@ -413,7 +413,7 @@ "endpoint": "https://api.mailjet.com/v3/REST/contactslist/58570/managemanycontacts", "headers": { "Content-Type": "application/json", - "Authorization": "Basic NjA3Mjg3ZmZhZGY1MmM0ODg4MTAxODcwYjllNzFjNTI6ZWY0MjhjMTVlMmc4YWViNmViYWNmZDFjZmJmN2JmZDI=" + "Authorization": "Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=" }, "params": {}, "body": { @@ -439,8 +439,8 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [ { @@ -459,7 +459,7 @@ "endpoint": "https://api.mailjet.com/v3/REST/contactslist/58576/managemanycontacts", "headers": { "Content-Type": "application/json", - "Authorization": "Basic NjA3Mjg3ZmZhZGY1MmM0ODg4MTAxODcwYjllNzFjNTI6ZWY0MjhjMTVlMmc4YWViNmViYWNmZDFjZmJmN2JmZDI=" + "Authorization": "Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=" }, "params": {}, "body": { @@ -485,8 +485,8 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [ { @@ -505,7 +505,7 @@ "endpoint": "https://api.mailjet.com/v3/REST/contactslist/58576/managemanycontacts", "headers": { "Content-Type": "application/json", - "Authorization": "Basic NjA3Mjg3ZmZhZGY1MmM0ODg4MTAxODcwYjllNzFjNTI6ZWY0MjhjMTVlMmc4YWViNmViYWNmZDFjZmJmN2JmZDI=" + "Authorization": "Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=" }, "params": {}, "body": { @@ -531,8 +531,8 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [ { @@ -551,7 +551,7 @@ "endpoint": "https://api.mailjet.com/v3/REST/contactslist/585896/managemanycontacts", "headers": { "Content-Type": "application/json", - "Authorization": "Basic NjA3Mjg3ZmZhZGY1MmM0ODg4MTAxODcwYjllNzFjNTI6ZWY0MjhjMTVlMmc4YWViNmViYWNmZDFjZmJmN2JmZDI=" + "Authorization": "Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=" }, "params": {}, "body": { @@ -577,8 +577,8 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [ { @@ -597,7 +597,7 @@ "endpoint": "https://api.mailjet.com/v3/REST/contactslist/584896/managemanycontacts", "headers": { "Content-Type": "application/json", - "Authorization": "Basic NjA3Mjg3ZmZhZGY1MmM0ODg4MTAxODcwYjllNzFjNTI6ZWY0MjhjMTVlMmc4YWViNmViYWNmZDFjZmJmN2JmZDI=" + "Authorization": "Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=" }, "params": {}, "body": { @@ -623,8 +623,8 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [ { diff --git a/test/__tests__/data/mailjet_router.json b/test/__tests__/data/mailjet_router.json index 66c2525bc4a..7381a9dfa67 100644 --- a/test/__tests__/data/mailjet_router.json +++ b/test/__tests__/data/mailjet_router.json @@ -4,8 +4,8 @@ { "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [{ "from": "userCountry", "to": "country" }] } @@ -41,7 +41,7 @@ "endpoint": "https://api.mailjet.com/v3/REST/contactslist/58578/managemanycontacts", "headers": { "Content-Type": "application/json", - "Authorization": "Basic NjA3Mjg3ZmZhZGY1MmM0ODg4MTAxODcwYjllNzFjNTI6ZWY0MjhjMTVlMmc4YWViNmViYWNmZDFjZmJmN2JmZDI=" + "Authorization": "Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=" }, "params": {}, "body": { @@ -69,8 +69,8 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "607287ffadf52c4888101870b9e71c52", - "apiSecret": "ef428c15e2g8aeb6ebacfd1cfbf7bfd2", + "apiKey": "dummyApiKey", + "apiSecret": "dummyApiSecret", "listId": "58578", "contactPropertiesMapping": [ { diff --git a/test/__tests__/data/mailjet_source.json b/test/__tests__/data/mailjet_source.json index 59a95114d46..d9869585cb7 100644 --- a/test/__tests__/data/mailjet_source.json +++ b/test/__tests__/data/mailjet_source.json @@ -6,7 +6,7 @@ "time": 1664443614, "MessageID": 94857068804950690, "Message_GUID": "54d6cdec-f659-4547-8926-13d9c4126b82", - "email": "bhalalamark@gmail.com", + "email": "test@rudderstack.com", "mj_campaign_id": 108760, "mj_contact_id": 399962859, "customcampaign": "mj.nl=58424", @@ -19,14 +19,28 @@ "output": { "Message": { "context": { - "library": { "name": "unknown", "version": "unknown" }, - "integration": { "name": "MailJet" }, - "traits": { "email": "bhalalamark@gmail.com" }, + "library": { + "name": "unknown", + "version": "unknown" + }, + "integration": { + "name": "MailJet" + }, + "traits": { + "email": "test@rudderstack.com" + }, "ip": "66.249.84.231", "userAgent": "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)", - "externalId": [{ "type": "mailjetContactId", "id": 399962859 }] + "externalId": [ + { + "type": "mailjetContactId", + "id": 399962859 + } + ] + }, + "integrations": { + "MailJet": false }, - "integrations": { "MailJet": false }, "type": "track", "event": "open", "properties": { @@ -36,7 +50,7 @@ "Payload": "" }, "originalTimestamp": "2022-09-29T09:26:54.000Z", - "userId": "9c51bf2b379a4c773b1eaa9732405b86" + "userId": "5b6a3426dba2cb24e4f0aeec43bee9d7" } } }, @@ -47,7 +61,7 @@ "time": 1664444171, "MessageID": 55169098999352350, "Message_GUID": "447d7eab-3335-4aba-9a51-09454bc14b81", - "email": "anant@mailjet.com", + "email": "test@rudderstack.com", "mj_campaign_id": 108892, "mj_contact_id": 373142816, "customcampaign": "mj.nl=58486", @@ -59,12 +73,26 @@ "output": { "Message": { "context": { - "library": { "name": "unknown", "version": "unknown" }, - "integration": { "name": "MailJet" }, - "traits": { "email": "anant@mailjet.com" }, - "externalId": [{ "type": "mailjetContactId", "id": 373142816 }] + "library": { + "name": "unknown", + "version": "unknown" + }, + "integration": { + "name": "MailJet" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "externalId": [ + { + "type": "mailjetContactId", + "id": 373142816 + } + ] + }, + "integrations": { + "MailJet": false }, - "integrations": { "MailJet": false }, "type": "track", "event": "bounce", "properties": { @@ -72,7 +100,7 @@ "mj_campaign_id": 108892 }, "originalTimestamp": "2022-09-29T09:36:11.000Z", - "userId": "40551363d7812758a04abd72a8cab645" + "userId": "5b6a3426dba2cb24e4f0aeec43bee9d7" } } }, @@ -83,7 +111,7 @@ "time": 1664444171, "MessageID": 92886743924596480, "Message_GUID": "0230c73a-2b77-4aea-8ef2-ed15d0edc5fd", - "email": "rohitkhatta710@gmail.com", + "email": "test@rudderstack.com", "mj_campaign_id": 108892, "mj_contact_id": 372651182, "customcampaign": "mj.nl=58486", @@ -92,12 +120,26 @@ "output": { "Message": { "context": { - "library": { "name": "unknown", "version": "unknown" }, - "integration": { "name": "MailJet" }, - "traits": { "email": "rohitkhatta710@gmail.com" }, - "externalId": [{ "type": "mailjetContactId", "id": 372651182 }] + "library": { + "name": "unknown", + "version": "unknown" + }, + "integration": { + "name": "MailJet" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "externalId": [ + { + "type": "mailjetContactId", + "id": 372651182 + } + ] + }, + "integrations": { + "MailJet": false }, - "integrations": { "MailJet": false }, "type": "track", "event": "sent", "properties": { @@ -105,7 +147,7 @@ "mj_campaign_id": 108892 }, "originalTimestamp": "2022-09-29T09:36:11.000Z", - "userId": "3c7c40c09c1cfacf36cc8065e1dfb86d" + "userId": "5b6a3426dba2cb24e4f0aeec43bee9d7" } } }, @@ -116,7 +158,7 @@ "time": 1664444170, "MessageID": 56013522696710744, "Message_GUID": "dbe4f0a3-4a5a-4784-a724-a9794d3c0444", - "email": "gaurav@mailjet.com", + "email": "test@rudderstack.com", "mj_campaign_id": 108892, "mj_contact_id": 373142182, "customcampaign": "mj.nl=58486", @@ -128,12 +170,26 @@ "output": { "Message": { "context": { - "library": { "name": "unknown", "version": "unknown" }, - "integration": { "name": "MailJet" }, - "traits": { "email": "gaurav@mailjet.com" }, - "externalId": [{ "type": "mailjetContactId", "id": 373142182 }] + "library": { + "name": "unknown", + "version": "unknown" + }, + "integration": { + "name": "MailJet" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "externalId": [ + { + "type": "mailjetContactId", + "id": 373142182 + } + ] + }, + "integrations": { + "MailJet": false }, - "integrations": { "MailJet": false }, "type": "track", "event": "bounce", "properties": { @@ -141,7 +197,52 @@ "mj_campaign_id": 108892 }, "originalTimestamp": "2022-09-29T09:36:10.000Z", - "userId": "13f24125295a86d4dcc765a28664e910" + "userId": "5b6a3426dba2cb24e4f0aeec43bee9d7" + } + } + }, + { + "description": "MailJet when no email is present", + "input": { + "event": "bounce", + "time": 1664444170, + "MessageID": 56013522696710744, + "Message_GUID": "dbe4f0a3-4a5a-4784-a724-a9794d3c0444", + "mj_campaign_id": 108892, + "mj_contact_id": 373142182, + "customcampaign": "mj.nl=58486", + "blocked": false, + "hard_bounce": false, + "error_related_to": "system", + "error": "connection issue" + }, + "output": { + "Message": { + "context": { + "library": { + "name": "unknown", + "version": "unknown" + }, + "integration": { + "name": "MailJet" + }, + "externalId": [ + { + "type": "mailjetContactId", + "id": 373142182 + } + ] + }, + "integrations": { + "MailJet": false + }, + "type": "track", + "event": "bounce", + "properties": { + "customcampaign": "mj.nl=58486", + "mj_campaign_id": 108892 + }, + "originalTimestamp": "2022-09-29T09:36:10.000Z" } } } diff --git a/test/__tests__/data/mailmodo.json b/test/__tests__/data/mailmodo.json index c3593ee3ead..30b093a6b20 100644 --- a/test/__tests__/data/mailmodo.json +++ b/test/__tests__/data/mailmodo.json @@ -4,7 +4,7 @@ "input": { "destination": { "Config": { - "apiKey": "FXLkLUEhGJyvmY4" + "apiKey": "dummyApiKey" } }, "message": { @@ -73,7 +73,7 @@ "method": "POST", "endpoint": "https://api.mailmodo.com/api/v1/addEvent", "headers": { - "mmApiKey": "FXLkLUEhGJyvmY4", + "mmApiKey": "dummyApiKey", "Content-Type": "application/json" }, "params": {}, @@ -239,7 +239,7 @@ "input": { "destination": { "Config": { - "apiKey": "FXLkLUEhGJyvmY4", + "apiKey": "dummyApiKey", "listName": "abcdef" } }, @@ -276,7 +276,7 @@ "input": { "destination": { "Config": { - "apiKey": "FXLkLUEhGJyvmY4", + "apiKey": "dummyApiKey", "listName": "" } }, @@ -310,7 +310,7 @@ "method": "POST", "endpoint": "https://api.mailmodo.com/api/v1/addToList/batch", "headers": { - "mmApiKey": "FXLkLUEhGJyvmY4", + "mmApiKey": "dummyApiKey", "Content-Type": "application/json" }, "params": {}, @@ -335,7 +335,7 @@ "input": { "destination": { "Config": { - "apiKey": "FXLkLUEhGJyvmY4", + "apiKey": "dummyApiKey", "listName": "abcdef" } }, @@ -369,7 +369,7 @@ "method": "POST", "endpoint": "https://api.mailmodo.com/api/v1/addToList/batch", "headers": { - "mmApiKey": "FXLkLUEhGJyvmY4", + "mmApiKey": "dummyApiKey", "Content-Type": "application/json" }, "params": {}, @@ -394,7 +394,7 @@ "input": { "destination": { "Config": { - "apiKey": "FXLkLUEhGJyvmY4", + "apiKey": "dummyApiKey", "listName": "abcdef" } }, @@ -431,7 +431,7 @@ "input": { "destination": { "Config": { - "apiKey": "FXLkLUEhGJyvmY4", + "apiKey": "dummyApiKey", "listName": "abcdef" } }, @@ -450,9 +450,9 @@ }, "traits": { "email": "testabc2@abcd.com", - "name": "Rohith Kumar Kaza", - "firstName": "Rohith", - "lastName": "Kaza", + "name": "Rudder Test", + "firstName": "Test", + "lastName": "Rudderlabs", "age": 21, "phone": "9876543210", "address": { @@ -470,7 +470,7 @@ "method": "POST", "endpoint": "https://api.mailmodo.com/api/v1/addToList/batch", "headers": { - "mmApiKey": "FXLkLUEhGJyvmY4", + "mmApiKey": "dummyApiKey", "Content-Type": "application/json" }, "params": {}, @@ -482,9 +482,9 @@ "email": "testabc2@abcd.com", "data": { "age": 21, - "first_name": "Rohith", - "last_name": "Kaza", - "name": "Rohith Kumar Kaza", + "first_name": "Test", + "last_name": "Rudderlabs", + "name": "Rudder Test", "phone": "9876543210", "trait1": "new-val", "city": "Vijayawada", @@ -506,7 +506,7 @@ "input": { "destination": { "Config": { - "apiKey": "FXLkLUEhGJyvmY4", + "apiKey": "dummyApiKey", "listName": "abcdef" } }, @@ -525,9 +525,9 @@ }, "traits": { "email": "testabc2@abcd.com", - "name": "Rohith Kumar Kaza", - "firstName": "Rohith", - "lastName": "Kaza", + "name": "Rudder Test", + "firstName": "Test", + "lastName": "Rudderlabs", "age": 21, "phone": "9876543210", "address": "welcome to home" @@ -541,7 +541,7 @@ "method": "POST", "endpoint": "https://api.mailmodo.com/api/v1/addToList/batch", "headers": { - "mmApiKey": "FXLkLUEhGJyvmY4", + "mmApiKey": "dummyApiKey", "Content-Type": "application/json" }, "params": {}, @@ -553,9 +553,9 @@ "email": "testabc2@abcd.com", "data": { "age": 21, - "first_name": "Rohith", - "last_name": "Kaza", - "name": "Rohith Kumar Kaza", + "first_name": "Test", + "last_name": "Rudderlabs", + "name": "Rudder Test", "phone": "9876543210", "trait1": "new-val", "address1": "welcome to home" diff --git a/test/__tests__/data/mailmodo_router_input.json b/test/__tests__/data/mailmodo_router_input.json index 42c1f251df3..78db8426ff6 100644 --- a/test/__tests__/data/mailmodo_router_input.json +++ b/test/__tests__/data/mailmodo_router_input.json @@ -28,7 +28,7 @@ }, "destination": { "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", + "apiKey": "dummyApiKey", "listName": "abc" }, "Enabled": true @@ -63,7 +63,7 @@ }, "destination": { "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", + "apiKey": "dummyApiKey", "listName": "abc" }, "Enabled": true @@ -85,9 +85,9 @@ }, "traits": { "email": "test@abc.com", - "name": "Rohith Kumar Kaza", - "firstName": "Rohith", - "lastName": "Kaza", + "name": "Rudder Test", + "firstName": "Test", + "lastName": "Rudderlabs", "age": 21, "phone": "9876543210" }, @@ -98,7 +98,7 @@ }, "destination": { "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", + "apiKey": "dummyApiKey", "listName": "abc" }, "Enabled": true @@ -132,7 +132,7 @@ }, "destination": { "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", + "apiKey": "dummyApiKey", "listName": "" }, "Enabled": true diff --git a/test/__tests__/data/mailmodo_router_output.json b/test/__tests__/data/mailmodo_router_output.json index 3bdb7c38103..2e2eb9e3fb0 100644 --- a/test/__tests__/data/mailmodo_router_output.json +++ b/test/__tests__/data/mailmodo_router_output.json @@ -14,9 +14,9 @@ { "email": "test@abc.com", "data": { - "name": "Rohith Kumar Kaza", - "first_name": "Rohith", - "last_name": "Kaza", + "name": "Rudder Test", + "first_name": "Test", + "last_name": "Rudderlabs", "age": 21, "phone": "9876543210", "trait1": "new-val" @@ -30,7 +30,7 @@ "method": "POST", "params": {}, "headers": { - "mmApiKey": "62d12498c37c4fd8a1a546c2d35c2f60", + "mmApiKey": "dummyApiKey", "Content-Type": "application/json" }, "version": "1", @@ -48,7 +48,7 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", + "apiKey": "dummyApiKey", "listName": "abc" }, "Enabled": true @@ -76,7 +76,7 @@ "method": "POST", "params": {}, "headers": { - "mmApiKey": "62d12498c37c4fd8a1a546c2d35c2f60", + "mmApiKey": "dummyApiKey", "Content-Type": "application/json" }, "version": "1", @@ -91,7 +91,7 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", + "apiKey": "dummyApiKey", "listName": "abc" }, "Enabled": true @@ -112,7 +112,7 @@ "statusCode": 400, "destination": { "Config": { - "apiKey": "62d12498c37c4fd8a1a546c2d35c2f60", + "apiKey": "dummyApiKey", "listName": "" }, "Enabled": true diff --git a/test/__tests__/data/mailmodo_source_input.json b/test/__tests__/data/mailmodo_source_input.json index 79f76f48548..5ecc44b8f21 100644 --- a/test/__tests__/data/mailmodo_source_input.json +++ b/test/__tests__/data/mailmodo_source_input.json @@ -15,7 +15,7 @@ "next-step-id": "success", "total-steps": "3", "responseId": "b9a5d224-cc5a-4e64-9800-5a3db9515fdf", - "recipientEmail": "sudip.paul21997@gmail.com", + "recipientEmail": "test.rudderlabs21997@gmail.com", "formId": "formosztd5", "recordedAt": { "ts": 1662695704, @@ -26,7 +26,9 @@ "submissionSource": "amp", "elementjbtz42": "Everything ", "element8jzo13": ["Reliable", "High Quality", "Useful"], - "recipientData": { "email": "sudip.paul21997@gmail.com" }, + "recipientData": { + "email": "test.rudderlabs21997@gmail.com" + }, "recommend": "9", "liking": "upvote", "satisfaction": "4", @@ -127,7 +129,7 @@ "next-step-id": "success", "total-steps": "3", "responseId": "ad20a980-4fce-44b6-887d-2236df514a76", - "recipientEmail": "rohithkaza@rudderstack.com", + "recipientEmail": "test@rudderstack.com", "formId": "formosztd5", "recordedAt": { "ts": 1662695887, @@ -139,7 +141,7 @@ "elementjbtz42": "peace", "element8jzo13": ["Useful"], "recipientData": { - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "first_name": "abcda" }, "recommend": "1", diff --git a/test/__tests__/data/mailmodo_source_output.json b/test/__tests__/data/mailmodo_source_output.json index 3bca19e141a..3ffcf147f12 100644 --- a/test/__tests__/data/mailmodo_source_output.json +++ b/test/__tests__/data/mailmodo_source_output.json @@ -32,7 +32,7 @@ "type": "track" }, { - "anonymousId": "cd5dbd2727742c2957771e61eef4e296f3fb263294e184fcb8af98b7ccd372c7", + "anonymousId": "a80b34ec43ca959c7b8e5116ac626c3cf8561f62616e000a01729a8a900cc0a0", "context": { "integration": { "name": "Mailmodo", @@ -43,7 +43,7 @@ "version": "unknown" }, "traits": { - "email": "sudip.paul21997@gmail.com" + "email": "test.rudderlabs21997@gmail.com" } }, "event": "Form Submitted", @@ -275,7 +275,7 @@ "type": "track" }, { - "anonymousId": "d6a9d06e8a464324d448003ff0467d971a55ca2950e11fc51faaec4e2850ecc6", + "anonymousId": "1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd", "context": { "integration": { "name": "Mailmodo", @@ -286,7 +286,7 @@ "version": "unknown" }, "traits": { - "email": "rohithkaza@rudderstack.com", + "email": "test@rudderstack.com", "first_name": "abcda" } }, diff --git a/test/__tests__/data/marketo_bulk_upload_fileUpload_output.json b/test/__tests__/data/marketo_bulk_upload_fileUpload_output.json index 2ba4fadd72b..0ea94284ae8 100644 --- a/test/__tests__/data/marketo_bulk_upload_fileUpload_output.json +++ b/test/__tests__/data/marketo_bulk_upload_fileUpload_output.json @@ -2,7 +2,6 @@ { "statusCode": 200, "importId": "2977", - "pollURL": "/pollStatus", "metadata": { "successfulJobs": ["17"], "unsuccessfulJobs": [], @@ -12,7 +11,6 @@ { "statusCode": 200, "importId": "2977", - "pollURL": "/pollStatus", "metadata": { "successfulJobs": ["17"], "unsuccessfulJobs": [], @@ -22,7 +20,6 @@ { "statusCode": 200, "importId": "2977", - "pollURL": "/pollStatus", "metadata": { "successfulJobs": ["17"], "unsuccessfulJobs": [], @@ -37,7 +34,6 @@ { "statusCode": 200, "importId": "2977", - "pollURL": "/pollStatus", "metadata": { "successfulJobs": ["17"], "unsuccessfulJobs": [], @@ -46,22 +42,22 @@ }, { "statusCode": 400, - "error": "Could not upload file", + "error": "[Could not upload file]Error message: undefined", "metadata": null }, { "statusCode": 400, - "error": "There are 10 imports currently being processed. Please try again later", + "error": "[Could not upload file]Error message: There are 10 imports currently being processed. Please try again later", "metadata": null }, { "statusCode": 400, - "error": "Empty file", + "error": "[Could not upload file]Error message: Empty file", "metadata": null }, { "statusCode": 400, - "error": "Any other error", + "error": "[Could not upload file]Error message: Any other error", "metadata": null } ] diff --git a/test/__tests__/data/marketo_bulk_upload_jobStatus_output.json b/test/__tests__/data/marketo_bulk_upload_jobStatus_output.json index 7c0d6c2d772..eac43ee82c8 100644 --- a/test/__tests__/data/marketo_bulk_upload_jobStatus_output.json +++ b/test/__tests__/data/marketo_bulk_upload_jobStatus_output.json @@ -8,7 +8,7 @@ }, { "statusCode": 400, - "error": "Could not fetch warning job status" + "error": "Unable to fetch job status" } ] }, @@ -21,7 +21,7 @@ }, { "statusCode": 400, - "error": "Could not fetch failure job status" + "error": "Unable to fetch job status" } ] } diff --git a/test/__tests__/data/marketo_bulk_upload_poll_output.json b/test/__tests__/data/marketo_bulk_upload_poll_output.json index c10744bfe72..92e312072ea 100644 --- a/test/__tests__/data/marketo_bulk_upload_poll_output.json +++ b/test/__tests__/data/marketo_bulk_upload_poll_output.json @@ -1,11 +1,10 @@ [ { - "success": true, + "Complete": true, "statusCode": 200, "hasFailed": false, - "failedJobsURL": "/getFailedJobs", - "hasWarnings": false, - "warningJobsURL": "/getWarningJobs" + "InProgress": false, + "HasWarning": false }, { "statusCode": 400, @@ -13,6 +12,6 @@ }, { "statusCode": 400, - "error": "Any 500 error" + "error": "[Could not poll status]Error message: Any 500 error" } ] diff --git a/test/__tests__/data/marketo_input.json b/test/__tests__/data/marketo_input.json index c54005b9f6d..122525560e0 100644 --- a/test/__tests__/data/marketo_input.json +++ b/test/__tests__/data/marketo_input.json @@ -77,7 +77,8 @@ "Config": { "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", - "accountId": "marketo_acct_id_success" + "accountId": "marketo_acct_id_success", + "rudderEventsMapping": [] }, "Enabled": true, "Transformations": [], @@ -151,31 +152,31 @@ "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", "trackAnonymousEvents": true, - "customActivityEventMap": [ - { - "from": "Product Clicked", - "to": "100001" - } - ], "customActivityPropertyMap": [ { "from": "name", "to": "productName" } ], + "leadTraitMapping": [ + { + "from": "leadScore", + "to": "customLeadScore" + } + ], + "createIfNotExist": true, "customActivityPrimaryKeyMap": [ { "from": "Product Clicked", "to": "name" } ], - "leadTraitMapping": [ + "customActivityEventMap": [ { - "from": "leadScore", - "to": "customLeadScore" + "from": "Product Clicked", + "to": "100001" } - ], - "createIfNotExist": true + ] } } }, @@ -243,12 +244,6 @@ "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", "trackAnonymousEvents": true, - "customActivityEventMap": [ - { - "from": "Product Clicked", - "to": "100001" - } - ], "customActivityPropertyMap": [ { "from": "name", @@ -259,19 +254,20 @@ "to": "productId" } ], - "customActivityPrimaryKeyMap": [ - { - "from": "Product Clicked", - "to": "name" - } - ], "leadTraitMapping": [ { "from": "leadScore", "to": "customLeadScore" } ], - "createIfNotExist": true + "createIfNotExist": true, + "rudderEventsMapping": [ + { + "event": "Product Clicked", + "marketoPrimarykey": "name", + "marketoActivityId": "100001" + } + ] } } }, @@ -339,31 +335,26 @@ "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", "trackAnonymousEvents": false, - "customActivityEventMap": [ - { - "from": "Product Clicked", - "to": "100001" - } - ], "customActivityPropertyMap": [ { "from": "name", "to": "productName" } ], - "customActivityPrimaryKeyMap": [ - { - "from": "Product Clicked", - "to": "name" - } - ], "leadTraitMapping": [ { "from": "leadScore", "to": "customLeadScore" } ], - "createIfNotExist": true + "createIfNotExist": true, + "rudderEventsMapping": [ + { + "event": "Product Clicked", + "marketoPrimarykey": "name", + "marketoActivityId": "100001" + } + ] } } }, @@ -397,31 +388,26 @@ "clientId": "marketo_acct_id_token_failure", "clientSecret": "marketo_acct_id_token_failure", "trackAnonymousEvents": false, - "customActivityEventMap": [ - { - "from": "Product Clicked", - "to": "100001" - } - ], "customActivityPropertyMap": [ { "from": "name", "to": "productName" } ], - "customActivityPrimaryKeyMap": [ - { - "from": "Product Clicked", - "to": "name" - } - ], "leadTraitMapping": [ { "from": "leadScore", "to": "customLeadScore" } ], - "createIfNotExist": true + "createIfNotExist": true, + "rudderEventsMapping": [ + { + "event": "Product Clicked", + "marketoPrimarykey": "name", + "marketoActivityId": "100001" + } + ] } } }, @@ -489,31 +475,26 @@ "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", "trackAnonymousEvents": false, - "customActivityEventMap": [ - { - "from": "Product Clicked", - "to": "100001" - } - ], "customActivityPropertyMap": [ { "from": "name", "to": "productName" } ], - "customActivityPrimaryKeyMap": [ - { - "from": "Product Clicked", - "to": "name" - } - ], "leadTraitMapping": [ { "from": "leadScore", "to": "customLeadScore" } ], - "createIfNotExist": true + "createIfNotExist": true, + "rudderEventsMapping": [ + { + "event": "Product Clicked", + "marketoPrimarykey": "name", + "marketoActivityId": "100001" + } + ] } } }, @@ -558,12 +539,6 @@ "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", "trackAnonymousEvents": true, - "customActivityEventMap": [ - { - "from": "Product Clicked", - "to": "100001" - } - ], "customActivityPropertyMap": [ { "from": "name", @@ -574,19 +549,20 @@ "to": "productId" } ], - "customActivityPrimaryKeyMap": [ - { - "from": "Product Clicked", - "to": "name" - } - ], "leadTraitMapping": [ { "from": "leadScore", "to": "customLeadScore" } ], - "createIfNotExist": true + "createIfNotExist": true, + "rudderEventsMapping": [ + { + "event": "Product Clicked", + "marketoPrimarykey": "name", + "marketoActivityId": "100001" + } + ] } } }, @@ -653,31 +629,26 @@ "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", "trackAnonymousEvents": false, - "customActivityEventMap": [ - { - "from": "Product Clicked", - "to": "100001" - } - ], "customActivityPropertyMap": [ { "from": "name", "to": "productName" } ], - "customActivityPrimaryKeyMap": [ - { - "from": "Product Clicked", - "to": "name" - } - ], "leadTraitMapping": [ { "from": "leadScore", "to": "customLeadScore" } ], - "createIfNotExist": true + "createIfNotExist": true, + "rudderEventsMapping": [ + { + "event": "Product Clicked", + "marketoPrimarykey": "name", + "marketoActivityId": "100001" + } + ] } } }, @@ -744,31 +715,26 @@ "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", "trackAnonymousEvents": true, - "customActivityEventMap": [ - { - "from": "Product Clicked", - "to": "100001" - } - ], "customActivityPropertyMap": [ { "from": "name", "to": "productName" } ], - "customActivityPrimaryKeyMap": [ - { - "from": "Product Clicked", - "to": "name" - } - ], "leadTraitMapping": [ { "from": "leadScore", "to": "customLeadScore" } ], - "createIfNotExist": true + "createIfNotExist": true, + "rudderEventsMapping": [ + { + "event": "Product Clicked", + "marketoPrimarykey": "name", + "marketoActivityId": "100001" + } + ] } } }, @@ -835,31 +801,26 @@ "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", "trackAnonymousEvents": true, - "customActivityEventMap": [ - { - "from": "Product Clicked", - "to": "100001" - } - ], "customActivityPropertyMap": [ { "from": "name", "to": "productName" } ], - "customActivityPrimaryKeyMap": [ - { - "from": "Product Clicked", - "to": "name" - } - ], "leadTraitMapping": [ { "from": "leadScore", "to": "customLeadScore" } ], - "createIfNotExist": true + "createIfNotExist": true, + "rudderEventsMapping": [ + { + "event": "Product Clicked", + "marketoPrimarykey": "name", + "marketoActivityId": "100001" + } + ] } } }, @@ -925,31 +886,26 @@ "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", "trackAnonymousEvents": true, - "customActivityEventMap": [ - { - "from": "Product Clicked", - "to": "100001" - } - ], "customActivityPropertyMap": [ { "from": "name", "to": "productName" } ], - "customActivityPrimaryKeyMap": [ - { - "from": "Product Clicked", - "to": "name" - } - ], "leadTraitMapping": [ { "from": "leadScore", "to": "customLeadScore" } ], - "createIfNotExist": true + "createIfNotExist": true, + "rudderEventsMapping": [ + { + "event": "Product Clicked", + "marketoPrimarykey": "name", + "marketoActivityId": "100001" + } + ] } } }, @@ -1016,31 +972,26 @@ "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", "trackAnonymousEvents": true, - "customActivityEventMap": [ - { - "from": "Product Clicked", - "to": "100001" - } - ], "customActivityPropertyMap": [ { "from": "name", "to": "productName" } ], - "customActivityPrimaryKeyMap": [ - { - "from": "Product Clicked", - "to": "name" - } - ], "leadTraitMapping": [ { "from": "leadScore", "to": "customLeadScore" } ], - "createIfNotExist": true + "createIfNotExist": true, + "rudderEventsMapping": [ + { + "event": "Product Clicked", + "marketoPrimarykey": "name", + "marketoActivityId": "100001" + } + ] } } }, @@ -1088,12 +1039,6 @@ "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", "trackAnonymousEvents": true, - "customActivityEventMap": [ - { - "from": "Product Clicked", - "to": "100001" - } - ], "customActivityPropertyMap": [ { "from": "name", @@ -1104,17 +1049,18 @@ "to": "productId" } ], - "customActivityPrimaryKeyMap": [ - { - "from": "Product Clicked", - "to": "name" - } - ], "leadTraitMapping": [ { "from": "score", "to": "customLeadScore" } + ], + "rudderEventsMapping": [ + { + "event": "Product Clicked", + "marketoPrimarykey": "name", + "marketoActivityId": "100001" + } ] } } @@ -1196,7 +1142,8 @@ "Config": { "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", - "accountId": "marketo_acct_id_success" + "accountId": "marketo_acct_id_success", + "rudderEventsMapping": [] }, "Enabled": true, "Transformations": [], diff --git a/test/__tests__/data/marketo_proxy_input.json b/test/__tests__/data/marketo_proxy_input.json deleted file mode 100644 index b846f024197..00000000000 --- a/test/__tests__/data/marketo_proxy_input.json +++ /dev/null @@ -1,272 +0,0 @@ -[ - { - "type": "REST", - "endpoint": "https://mktId.mktorest.com/rest/v1/leads.json/test1", - "method": "POST", - "userId": "", - "headers": { - "Authorization": "Bearer token", - "Content-Type": "application/json" - }, - "body": { - "FORM": {}, - "JSON": { - "action": "createOrUpdate", - "input": [ - { - "City": "Tokyo", - "Country": "JP", - "Email": "gabi29@gmail.com", - "PostalCode": "100-0001", - "Title": "Owner", - "id": 1328328, - "userId": "gabi_userId_45" - } - ], - "lookupField": "id" - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "files": {}, - "params": { - "destination": "marketo" - } - }, - { - "type": "REST", - "endpoint": "https://mktId.mktorest.com/rest/v1/leads.json/test2", - "method": "POST", - "userId": "", - "headers": { - "Authorization": "Bearer token", - "Content-Type": "application/json" - }, - "body": { - "FORM": {}, - "JSON": { - "action": "createOrUpdate", - "input": [ - { - "City": "Tokyo", - "Country": "JP", - "Email": "gabi29@gmail.com", - "PostalCode": "100-0001", - "Title": "Owner", - "id": 1328328, - "userId": "gabi_userId_45" - } - ], - "lookupField": "id" - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "files": {}, - "params": { - "destination": "marketo" - } - }, - { - "type": "REST", - "endpoint": "https://mktId.mktorest.com/rest/v1/leads.json/test3", - "method": "POST", - "userId": "", - "headers": { - "Authorization": "Bearer token", - "Content-Type": "application/json" - }, - "body": { - "FORM": {}, - "JSON": { - "action": "createOrUpdate", - "input": [ - { - "City": "Tokyo", - "Country": "JP", - "Email": "gabi29@gmail.com", - "PostalCode": "100-0001", - "Title": "Owner", - "id": 1328328, - "userId": "gabi_userId_45" - } - ], - "lookupField": "id" - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "files": {}, - "params": { - "destination": "marketo" - } - }, - { - "type": "REST", - "endpoint": "https://mktId.mktorest.com/rest/v1/leads.json/test4", - "method": "POST", - "userId": "", - "headers": { - "Authorization": "Bearer token", - "Content-Type": "application/json" - }, - "body": { - "FORM": {}, - "JSON": { - "action": "createOrUpdate", - "input": [ - { - "City": "Tokyo", - "Country": "JP", - "Email": "gabi29@gmail.com", - "PostalCode": "100-0001", - "Title": "Owner", - "id": 1328328, - "userId": "gabi_userId_45" - } - ], - "lookupField": "id" - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "files": {}, - "params": { - "destination": "marketo" - } - }, - { - "type": "REST", - "endpoint": "https://mktId.mktorest.com/rest/v1/leads.json/test5", - "method": "POST", - "userId": "", - "headers": { - "Authorization": "Bearer token", - "Content-Type": "application/json" - }, - "body": { - "FORM": {}, - "JSON": { - "action": "createOrUpdate", - "input": [ - { - "City": "Tokyo", - "Country": "JP", - "Email": "gabi29@gmail.com", - "PostalCode": "100-0001", - "Title": "Owner", - "id": 1328328, - "userId": "gabi_userId_45" - } - ], - "lookupField": "id" - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "files": {}, - "params": { - "destination": "marketo" - } - }, - { - "type": "REST", - "endpoint": "https://mktId.mktorest.com/rest/v1/leads.json/test6", - "method": "POST", - "userId": "", - "headers": { - "Authorization": "Bearer token", - "Content-Type": "application/json" - }, - "body": { - "FORM": {}, - "JSON": { - "action": "createOrUpdate", - "input": [ - { - "City": "Tokyo", - "Country": "JP", - "Email": "gabi29@gmail.com", - "PostalCode": "100-0001", - "Title": "Owner", - "id": 1328328, - "userId": "gabi_userId_45" - } - ], - "lookupField": "id" - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "files": {}, - "params": { - "destination": "marketo" - } - }, - { - "type": "REST", - "endpoint": "https://mktId.mktorest.com/rest/v1/leads.json/test7", - "method": "POST", - "userId": "", - "headers": { - "Authorization": "Bearer token", - "Content-Type": "application/json" - }, - "body": { - "FORM": {}, - "JSON": { - "action": "createOrUpdate", - "input": [ - { - "City": "Tokyo", - "Country": "JP", - "Email": "gabi29@gmail.com", - "PostalCode": "100-0001", - "Title": "Owner", - "id": 1328328, - "userId": "gabi_userId_45" - } - ], - "lookupField": "id" - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "files": {}, - "params": { - "destination": "marketo" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://unhandled_exception_in_proxy_req.mktorest.com/rest/v1/leads.json", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer access_token_success" - }, - "body": { - "JSON": { - "action": "createOrUpdate", - "input": [ - { - "Email": "0c7b8b80-9c43-4f8e-b2d2-5e2448a25040@j.mail", - "FirstName": "A", - "LastName": "M", - "id": 4, - "userId": "e17c5a5e-5e2f-430b-b497-fe3f1ea3a704" - } - ], - "lookupField": "id" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "params": { - "destination": "marketo" - } - } -] \ No newline at end of file diff --git a/test/__tests__/data/marketo_proxy_output.json b/test/__tests__/data/marketo_proxy_output.json deleted file mode 100644 index a17eb1d47d8..00000000000 --- a/test/__tests__/data/marketo_proxy_output.json +++ /dev/null @@ -1,193 +0,0 @@ -[ - { - "output": { - "status": 200, - "message": "Request Processed Successfully", - "destinationResponse": { - "response": { - "requestId": "664#17dae8c3d48", - "result": [ - { - "id": 1328328, - "status": "updated" - } - ], - "success": true - }, - "status": 200 - } - } - }, - { - "output": { - "status": 500, - "message": "Request Failed for marketo, Access token invalid (Retryable).during Marketo Response Handling", - "destinationResponse": { - "response": { - "requestId": "a61c#17daea5968a", - "success": false, - "errors": [ - { - "code": "601", - "message": "Access token invalid" - } - ] - }, - "status": 200 - }, - "statTags": { - "destType": "MARKETO", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "retryable", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - }, - { - "output": { - "status": 400, - "message": "Request Failed for marketo, Requested resource not found (Aborted).during Marketo Response Handling", - "destinationResponse": { - "response": { - "requestId": "a61c#17daea5968a", - "success": false, - "errors": [ - { - "code": "610", - "message": "Requested resource not found" - } - ] - }, - "status": 200 - }, - "statTags": { - "destType": "MARKETO", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - }, - { - "output": { - "status": 413, - "message": "Request failed with status: 413", - "destinationResponse": { - "response": { - "code": 413, - "payload_size_bytes": 86321233, - "message": "Payload exceeded 1MB limit." - }, - "status": 413 - }, - "statTags": { - "destType": "MARKETO", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - }, - { - "output": { - "status": 500, - "message": "Request failed with status: 500", - "destinationResponse": { - "response": "", - "status": 500 - }, - "statTags": { - "destType": "MARKETO", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "retryable", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - }, - { - "output": { - "status": 500, - "message": "Request failed with status: 500", - "destinationResponse": { - "response": "", - "status": 500 - }, - "statTags": { - "destType": "MARKETO", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "retryable", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - }, - { - "output": { - "status": 400, - "message": "Request failed with status: 400", - "destinationResponse": { - "response": "[[ENOTFOUND] :: DNS lookup failed]", - "status": 400 - }, - "statTags": { - "destType": "MARKETO", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - }, - { - "output": { - "status": 400, - "message": "Error occurred during Marketo Response Handling -> problem", - "destinationResponse": { - "response": { - "requestId": "142e4#1835b117b76", - "success": false, - "errors": [ - { - "code": "random_marketo_code", - "message": "problem" - } - ] - }, - "status": 200 - }, - "statTags": { - "destType": "MARKETO", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "meta": "unhandledStatusCode", - "module": "destination" - } - } - } -] \ No newline at end of file diff --git a/test/__tests__/data/marketo_router_input.json b/test/__tests__/data/marketo_router_input.json index 0577771f061..a7a40a221a2 100644 --- a/test/__tests__/data/marketo_router_input.json +++ b/test/__tests__/data/marketo_router_input.json @@ -56,7 +56,7 @@ "sentAt": "2020-03-12T09:05:03.421Z" }, "metadata": { - "jobId": 2 + "jobId": 1 }, "destination": { "Config": { @@ -64,29 +64,24 @@ "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", "trackAnonymousEvents": true, - "customActivityEventMap": [ - { - "from": "Product Clicked", - "to": "100001" - } - ], "customActivityPropertyMap": [ { "from": "name", "to": "productName" } ], - "customActivityPrimaryKeyMap": [ - { - "from": "Product Clicked", - "to": "name" - } - ], "leadTraitMapping": [ { "from": "leadScore", "to": "customLeadScore" } + ], + "rudderEventsMapping": [ + { + "event": "Product Clicked", + "marketoPrimarykey": "name", + "marketoActivityId": "100001" + } ] }, "secretConfig": {}, @@ -105,9 +100,8 @@ "clientId", "clientSecret", "trackAnonymousEvents", - "customActivityEventMap", + "rudderEventsMapping", "customActivityPropertyMap", - "customActivityPrimaryKeyMap", "leadTraitMapping" ] }, @@ -251,29 +245,24 @@ "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", "trackAnonymousEvents": true, - "customActivityEventMap": [ - { - "from": "Product Clicked", - "to": "100001" - } - ], "customActivityPropertyMap": [ { "from": "name", "to": "productName" } ], - "customActivityPrimaryKeyMap": [ - { - "from": "Product Clicked", - "to": "name" - } - ], "leadTraitMapping": [ { "from": "leadScore", "to": "customLeadScore" } + ], + "rudderEventsMapping": [ + { + "event": "Product Clicked", + "marketoPrimarykey": "name", + "marketoActivityId": "100001" + } ] }, "secretConfig": {}, @@ -292,9 +281,8 @@ "clientId", "clientSecret", "trackAnonymousEvents", - "customActivityEventMap", + "rudderEventsMapping", "customActivityPropertyMap", - "customActivityPrimaryKeyMap", "leadTraitMapping" ] }, @@ -450,38 +438,38 @@ "clientSecret": "3l3gJpzRsZagD6gu7tnTeKXz0bomLGnd", "trackAnonymousEvents": false, "createIfNotExist": true, - "customActivityEventMap": [ + "rudderEventsMapping": [ { - "from": "acq_signup_completed", - "to": "100026" + "event": "acq_signup_completed", + "marketoActivityId": "100026" }, { - "from": "act_createwebinarform_submit", - "to": "100025" + "event": "act_createwebinarform_submit", + "marketoActivityId": "100025" }, { - "from": "act_presentation_style", - "to": "100025" + "event": "act_presentation_style", + "marketoActivityId": "100025" }, { - "from": "act_webinar_view", - "to": "100025" + "event": "act_webinar_view", + "marketoActivityId": "100025" }, { - "from": "act_webinar_join", - "to": "100025" + "event": "act_webinar_join", + "marketoActivityId": "100025" }, { - "from": "act_presentation_addteammember", - "to": "100025" + "event": "act_presentation_addteammember", + "marketoActivityId": "100025" }, { - "from": "act_engagement_discussions_savediscussion", - "to": "100025" + "event": "act_engagement_discussions_savediscussion", + "marketoActivityId": "100025" }, { - "to": "100025", - "from": "act_engagement_networking_savetime" + "event": "act_engagement_networking_savetime", + "marketoActivityId": "100025" } ] }, @@ -493,9 +481,8 @@ "clientId", "clientSecret", "trackAnonymousEvents", - "customActivityEventMap", + "rudderEventsMapping", "customActivityPropertyMap", - "customActivityPrimaryKeyMap", "leadTraitMapping" ] }, @@ -662,38 +649,38 @@ "clientSecret": "3l3gJpzRsZagD6gu7tnTeKXz0bomLGnd", "trackAnonymousEvents": false, "createIfNotExist": true, - "customActivityEventMap": [ + "rudderEventsMapping": [ { - "from": "acq_signup_completed", - "to": "100026" + "event": "acq_signup_completed", + "marketoActivityId": "100026" }, { - "from": "act_createwebinarform_submit", - "to": "100025" + "event": "act_createwebinarform_submit", + "marketoActivityId": "100025" }, { - "from": "act_presentation_style", - "to": "100025" + "event": "act_presentation_style", + "marketoActivityId": "100025" }, { - "from": "act_webinar_view", - "to": "100025" + "event": "act_webinar_view", + "marketoActivityId": "100025" }, { - "from": "act_webinar_join", - "to": "100025" + "event": "act_webinar_join", + "marketoActivityId": "100025" }, { - "from": "act_presentation_addteammember", - "to": "100025" + "event": "act_presentation_addteammember", + "marketoActivityId": "100025" }, { - "from": "act_engagement_discussions_savediscussion", - "to": "100025" + "event": "act_engagement_discussions_savediscussion", + "marketoActivityId": "100025" }, { - "to": "100025", - "from": "act_engagement_networking_savetime" + "event": "act_engagement_networking_savetime", + "marketoActivityId": "100025" } ] }, @@ -705,9 +692,8 @@ "clientId", "clientSecret", "trackAnonymousEvents", - "customActivityEventMap", + "rudderEventsMapping", "customActivityPropertyMap", - "customActivityPrimaryKeyMap", "leadTraitMapping" ] }, @@ -874,38 +860,38 @@ "clientSecret": "3l3gJpzRsZagD6gu7tnTeKXz0bomLGnd", "trackAnonymousEvents": false, "createIfNotExist": true, - "customActivityEventMap": [ + "rudderEventsMapping": [ { - "from": "acq_signup_completed", - "to": "100026" + "event": "acq_signup_completed", + "marketoActivityId": "100026" }, { - "from": "act_createwebinarform_submit", - "to": "100025" + "event": "act_createwebinarform_submit", + "marketoActivityId": "100025" }, { - "from": "act_presentation_style", - "to": "100025" + "event": "act_presentation_style", + "marketoActivityId": "100025" }, { - "from": "act_webinar_view", - "to": "100025" + "event": "act_webinar_view", + "marketoActivityId": "100025" }, { - "from": "act_webinar_join", - "to": "100025" + "event": "act_webinar_join", + "marketoActivityId": "100025" }, { - "from": "act_presentation_addteammember", - "to": "100025" + "event": "act_presentation_addteammember", + "marketoActivityId": "100025" }, { - "from": "act_engagement_discussions_savediscussion", - "to": "100025" + "event": "act_engagement_discussions_savediscussion", + "marketoActivityId": "100025" }, { - "to": "100025", - "from": "act_engagement_networking_savetime" + "event": "act_engagement_networking_savetime", + "marketoActivityId": "100025" } ] }, @@ -917,9 +903,8 @@ "clientId", "clientSecret", "trackAnonymousEvents", - "customActivityEventMap", + "rudderEventsMapping", "customActivityPropertyMap", - "customActivityPrimaryKeyMap", "leadTraitMapping" ] }, diff --git a/test/__tests__/data/marketo_router_metadata_input.json b/test/__tests__/data/marketo_router_metadata_input.json index 1c02a9c6fd9..b1e3a26f694 100644 --- a/test/__tests__/data/marketo_router_metadata_input.json +++ b/test/__tests__/data/marketo_router_metadata_input.json @@ -46,10 +46,25 @@ "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", "trackAnonymousEvents": true, - "customActivityEventMap": [{ "from": "Product Clicked", "to": "100001" }], - "customActivityPropertyMap": [{ "from": "name", "to": "productName" }], - "customActivityPrimaryKeyMap": [{ "from": "Product Clicked", "to": "name" }], - "leadTraitMapping": [{ "from": "leadScore", "to": "customLeadScore" }] + "customActivityPropertyMap": [ + { + "from": "name", + "to": "productName" + } + ], + "rudderEventsMapping": [ + { + "event": "Product Clicked", + "marketoPrimarykey": "name", + "marketoActivityId": "100001" + } + ], + "leadTraitMapping": [ + { + "from": "leadScore", + "to": "customLeadScore" + } + ] }, "secretConfig": {}, "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", @@ -67,9 +82,8 @@ "clientId", "clientSecret", "trackAnonymousEvents", - "customActivityEventMap", "customActivityPropertyMap", - "customActivityPrimaryKeyMap", + "rudderEventsMapping", "leadTraitMapping" ] }, @@ -83,20 +97,56 @@ "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": 606 }, - { "success": "false", "errors.0.code": 607 }, - { "success": "false", "errors.0.code": 608 }, - { "success": "false", "errors.0.code": 611 } + { + "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": 606 + }, + { + "success": "false", + "errors.0.code": 607 + }, + { + "success": "false", + "errors.0.code": 608 + }, + { + "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 } + { + "success": "false", + "errors.0.code": 603 + }, + { + "success": "false", + "errors.0.code": 605 + }, + { + "success": "false", + "errors.0.code": 609 + }, + { + "success": "false", + "errors.0.code": 610 + } ] } }, diff --git a/test/__tests__/data/marketo_router_output.json b/test/__tests__/data/marketo_router_output.json index 52ca6722adb..c4b59b396d1 100644 --- a/test/__tests__/data/marketo_router_output.json +++ b/test/__tests__/data/marketo_router_output.json @@ -30,7 +30,7 @@ }, "metadata": [ { - "jobId": 2 + "jobId": 1 } ], "batched": false, @@ -41,29 +41,24 @@ "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", "trackAnonymousEvents": true, - "customActivityEventMap": [ - { - "from": "Product Clicked", - "to": "100001" - } - ], "customActivityPropertyMap": [ { "from": "name", "to": "productName" } ], - "customActivityPrimaryKeyMap": [ - { - "from": "Product Clicked", - "to": "name" - } - ], "leadTraitMapping": [ { "from": "leadScore", "to": "customLeadScore" } + ], + "rudderEventsMapping": [ + { + "event": "Product Clicked", + "marketoPrimarykey": "name", + "marketoActivityId": "100001" + } ] }, "secretConfig": {}, @@ -82,9 +77,8 @@ "clientId", "clientSecret", "trackAnonymousEvents", - "customActivityEventMap", + "rudderEventsMapping", "customActivityPropertyMap", - "customActivityPrimaryKeyMap", "leadTraitMapping" ] }, @@ -204,29 +198,24 @@ "clientId": "marketo_client_id_success", "clientSecret": "marketo_client_secret_success", "trackAnonymousEvents": true, - "customActivityEventMap": [ - { - "from": "Product Clicked", - "to": "100001" - } - ], "customActivityPropertyMap": [ { "from": "name", "to": "productName" } ], - "customActivityPrimaryKeyMap": [ - { - "from": "Product Clicked", - "to": "name" - } - ], "leadTraitMapping": [ { "from": "leadScore", "to": "customLeadScore" } + ], + "rudderEventsMapping": [ + { + "event": "Product Clicked", + "marketoPrimarykey": "name", + "marketoActivityId": "100001" + } ] }, "secretConfig": {}, @@ -245,9 +234,8 @@ "clientId", "clientSecret", "trackAnonymousEvents", - "customActivityEventMap", + "rudderEventsMapping", "customActivityPropertyMap", - "customActivityPrimaryKeyMap", "leadTraitMapping" ] }, @@ -328,7 +316,7 @@ { "batched": false, "statusCode": 400, - "error": "Request Failed for marketo, Lookup field 'userId' not found (Aborted).[Marketo Transformer]: During lead look up using email", + "error": "{\"message\":\"Request Failed for marketo, Lookup field 'userId' not found (Aborted).[Marketo Transformer]: During lead look up using email\",\"destinationResponse\":{\"response\":{\"requestId\":\"142e4#1835b117b76\",\"success\":false,\"errors\":[{\"code\":\"1006\",\"message\":\"Lookup field 'userId' not found\"}]},\"status\":200}}", "statTags": { "errorCategory": "network", "errorType": "aborted" @@ -345,38 +333,38 @@ "clientSecret": "3l3gJpzRsZagD6gu7tnTeKXz0bomLGnd", "trackAnonymousEvents": false, "createIfNotExist": true, - "customActivityEventMap": [ + "rudderEventsMapping": [ { - "from": "acq_signup_completed", - "to": "100026" + "event": "acq_signup_completed", + "marketoActivityId": "100026" }, { - "from": "act_createwebinarform_submit", - "to": "100025" + "event": "act_createwebinarform_submit", + "marketoActivityId": "100025" }, { - "from": "act_presentation_style", - "to": "100025" + "event": "act_presentation_style", + "marketoActivityId": "100025" }, { - "from": "act_webinar_view", - "to": "100025" + "event": "act_webinar_view", + "marketoActivityId": "100025" }, { - "from": "act_webinar_join", - "to": "100025" + "event": "act_webinar_join", + "marketoActivityId": "100025" }, { - "from": "act_presentation_addteammember", - "to": "100025" + "event": "act_presentation_addteammember", + "marketoActivityId": "100025" }, { - "from": "act_engagement_discussions_savediscussion", - "to": "100025" + "event": "act_engagement_discussions_savediscussion", + "marketoActivityId": "100025" }, { - "to": "100025", - "from": "act_engagement_networking_savetime" + "event": "act_engagement_networking_savetime", + "marketoActivityId": "100025" } ] }, @@ -388,9 +376,8 @@ "clientId", "clientSecret", "trackAnonymousEvents", - "customActivityEventMap", + "rudderEventsMapping", "customActivityPropertyMap", - "customActivityPrimaryKeyMap", "leadTraitMapping" ] }, @@ -479,7 +466,7 @@ { "batched": false, "statusCode": 400, - "error": "Error occurred [Marketo Transformer]: During lead look up using email -> some other problem", + "error": "{\"message\":\"Error occurred [Marketo Transformer]: During lead look up using email -> some other problem\",\"destinationResponse\":{\"response\":{\"requestId\":\"142e4#1835b117b76\",\"success\":false,\"errors\":[{\"code\":\"random_marketo_code\",\"message\":\"some other problem\"}]},\"status\":200}}", "statTags": { "errorCategory": "network", "errorType": "aborted", @@ -492,38 +479,38 @@ "clientSecret": "3l3gJpzRsZagD6gu7tnTeKXz0bomLGnd", "trackAnonymousEvents": false, "createIfNotExist": true, - "customActivityEventMap": [ + "rudderEventsMapping": [ { - "from": "acq_signup_completed", - "to": "100026" + "event": "acq_signup_completed", + "marketoActivityId": "100026" }, { - "from": "act_createwebinarform_submit", - "to": "100025" + "event": "act_createwebinarform_submit", + "marketoActivityId": "100025" }, { - "from": "act_presentation_style", - "to": "100025" + "event": "act_presentation_style", + "marketoActivityId": "100025" }, { - "from": "act_webinar_view", - "to": "100025" + "event": "act_webinar_view", + "marketoActivityId": "100025" }, { - "from": "act_webinar_join", - "to": "100025" + "event": "act_webinar_join", + "marketoActivityId": "100025" }, { - "from": "act_presentation_addteammember", - "to": "100025" + "event": "act_presentation_addteammember", + "marketoActivityId": "100025" }, { - "from": "act_engagement_discussions_savediscussion", - "to": "100025" + "event": "act_engagement_discussions_savediscussion", + "marketoActivityId": "100025" }, { - "to": "100025", - "from": "act_engagement_networking_savetime" + "event": "act_engagement_networking_savetime", + "marketoActivityId": "100025" } ] }, @@ -535,9 +522,8 @@ "clientId", "clientSecret", "trackAnonymousEvents", - "customActivityEventMap", + "rudderEventsMapping", "customActivityPropertyMap", - "customActivityPrimaryKeyMap", "leadTraitMapping" ] }, @@ -673,38 +659,38 @@ "clientSecret": "3l3gJpzRsZagD6gu7tnTeKXz0bomLGnd", "trackAnonymousEvents": false, "createIfNotExist": true, - "customActivityEventMap": [ + "rudderEventsMapping": [ { - "from": "acq_signup_completed", - "to": "100026" + "event": "acq_signup_completed", + "marketoActivityId": "100026" }, { - "from": "act_createwebinarform_submit", - "to": "100025" + "event": "act_createwebinarform_submit", + "marketoActivityId": "100025" }, { - "from": "act_presentation_style", - "to": "100025" + "event": "act_presentation_style", + "marketoActivityId": "100025" }, { - "from": "act_webinar_view", - "to": "100025" + "event": "act_webinar_view", + "marketoActivityId": "100025" }, { - "from": "act_webinar_join", - "to": "100025" + "event": "act_webinar_join", + "marketoActivityId": "100025" }, { - "from": "act_presentation_addteammember", - "to": "100025" + "event": "act_presentation_addteammember", + "marketoActivityId": "100025" }, { - "from": "act_engagement_discussions_savediscussion", - "to": "100025" + "event": "act_engagement_discussions_savediscussion", + "marketoActivityId": "100025" }, { - "to": "100025", - "from": "act_engagement_networking_savetime" + "event": "act_engagement_networking_savetime", + "marketoActivityId": "100025" } ] }, @@ -716,9 +702,8 @@ "clientId", "clientSecret", "trackAnonymousEvents", - "customActivityEventMap", + "rudderEventsMapping", "customActivityPropertyMap", - "customActivityPrimaryKeyMap", "leadTraitMapping" ] }, diff --git a/test/__tests__/data/marketo_static_list.json b/test/__tests__/data/marketo_static_list.json deleted file mode 100644 index 701868cab06..00000000000 --- a/test/__tests__/data/marketo_static_list.json +++ /dev/null @@ -1,2542 +0,0 @@ -[ - { - "description": "adding and removing users and getting staticListId from externalId", - "input": { - "destination": { - "ID": "1zia9wKshXt80YksLmUdJnr7IHI", - "Name": "test_marketo", - "DestinationDefinition": { - "ID": "1iVQvTRMsPPyJzwol0ifH93QTQ6", - "Name": "MARKETO", - "DisplayName": "Marketo", - "transformAt": "processor", - "transformAtV1": "processor" - }, - "Config": { - "clientId": "marketo_client_id_success", - "clientSecret": "marketo_client_secret_success", - "accountId": "marketo_acct_id_success", - "staticListId": 3421 - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "id": 1 - }, - { - "id": 2 - }, - { - "id": 3 - } - ], - "remove": [ - { - "id": 4 - }, - { - "id": 5 - }, - { - "id": 6 - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - }, - "externalId": [ - { - "type": "marketoStaticListId", - "id": 1234 - } - ] - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=1&id=2&id=3", - "headers": { - "Authorization": "Bearer access_token_success", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=4&id=5&id=6", - "headers": { - "Authorization": "Bearer access_token_success", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "adding more than max limit users", - "input": { - "destination": { - "ID": "1zia9wKshXt80YksLmUdJnr7IHI", - "Name": "test_marketo", - "DestinationDefinition": { - "ID": "1iVQvTRMsPPyJzwol0ifH93QTQ6", - "Name": "MARKETO", - "DisplayName": "Marketo", - "transformAt": "processor", - "transformAtV1": "processor" - }, - "Config": { - "clientId": "marketo_client_id_success", - "clientSecret": "marketo_client_secret_success", - "accountId": "marketo_acct_id_success", - "staticListId": 1234 - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "id": 0 - }, - { - "id": 1 - }, - { - "id": 2 - }, - { - "id": 3 - }, - { - "id": 4 - }, - { - "id": 5 - }, - { - "id": 6 - }, - { - "id": 7 - }, - { - "id": 8 - }, - { - "id": 9 - }, - { - "id": 10 - }, - { - "id": 11 - }, - { - "id": 12 - }, - { - "id": 13 - }, - { - "id": 14 - }, - { - "id": 15 - }, - { - "id": 16 - }, - { - "id": 17 - }, - { - "id": 18 - }, - { - "id": 19 - }, - { - "id": 20 - }, - { - "id": 21 - }, - { - "id": 22 - }, - { - "id": 23 - }, - { - "id": 24 - }, - { - "id": 25 - }, - { - "id": 26 - }, - { - "id": 27 - }, - { - "id": 28 - }, - { - "id": 29 - }, - { - "id": 30 - }, - { - "id": 31 - }, - { - "id": 32 - }, - { - "id": 33 - }, - { - "id": 34 - }, - { - "id": 35 - }, - { - "id": 36 - }, - { - "id": 37 - }, - { - "id": 38 - }, - { - "id": 39 - }, - { - "id": 40 - }, - { - "id": 41 - }, - { - "id": 42 - }, - { - "id": 43 - }, - { - "id": 44 - }, - { - "id": 45 - }, - { - "id": 46 - }, - { - "id": 47 - }, - { - "id": 48 - }, - { - "id": 49 - }, - { - "id": 50 - }, - { - "id": 51 - }, - { - "id": 52 - }, - { - "id": 53 - }, - { - "id": 54 - }, - { - "id": 55 - }, - { - "id": 56 - }, - { - "id": 57 - }, - { - "id": 58 - }, - { - "id": 59 - }, - { - "id": 60 - }, - { - "id": 61 - }, - { - "id": 62 - }, - { - "id": 63 - }, - { - "id": 64 - }, - { - "id": 65 - }, - { - "id": 66 - }, - { - "id": 67 - }, - { - "id": 68 - }, - { - "id": 69 - }, - { - "id": 70 - }, - { - "id": 71 - }, - { - "id": 72 - }, - { - "id": 73 - }, - { - "id": 74 - }, - { - "id": 75 - }, - { - "id": 76 - }, - { - "id": 77 - }, - { - "id": 78 - }, - { - "id": 79 - }, - { - "id": 80 - }, - { - "id": 81 - }, - { - "id": 82 - }, - { - "id": 83 - }, - { - "id": 84 - }, - { - "id": 85 - }, - { - "id": 86 - }, - { - "id": 87 - }, - { - "id": 88 - }, - { - "id": 89 - }, - { - "id": 90 - }, - { - "id": 91 - }, - { - "id": 92 - }, - { - "id": 93 - }, - { - "id": 94 - }, - { - "id": 95 - }, - { - "id": 96 - }, - { - "id": 97 - }, - { - "id": 98 - }, - { - "id": 99 - }, - { - "id": 100 - }, - { - "id": 101 - }, - { - "id": 102 - }, - { - "id": 103 - }, - { - "id": 104 - }, - { - "id": 105 - }, - { - "id": 106 - }, - { - "id": 107 - }, - { - "id": 108 - }, - { - "id": 109 - }, - { - "id": 110 - }, - { - "id": 111 - }, - { - "id": 112 - }, - { - "id": 113 - }, - { - "id": 114 - }, - { - "id": 115 - }, - { - "id": 116 - }, - { - "id": 117 - }, - { - "id": 118 - }, - { - "id": 119 - }, - { - "id": 120 - }, - { - "id": 121 - }, - { - "id": 122 - }, - { - "id": 123 - }, - { - "id": 124 - }, - { - "id": 125 - }, - { - "id": 126 - }, - { - "id": 127 - }, - { - "id": 128 - }, - { - "id": 129 - }, - { - "id": 130 - }, - { - "id": 131 - }, - { - "id": 132 - }, - { - "id": 133 - }, - { - "id": 134 - }, - { - "id": 135 - }, - { - "id": 136 - }, - { - "id": 137 - }, - { - "id": 138 - }, - { - "id": 139 - }, - { - "id": 140 - }, - { - "id": 141 - }, - { - "id": 142 - }, - { - "id": 143 - }, - { - "id": 144 - }, - { - "id": 145 - }, - { - "id": 146 - }, - { - "id": 147 - }, - { - "id": 148 - }, - { - "id": 149 - }, - { - "id": 150 - }, - { - "id": 151 - }, - { - "id": 152 - }, - { - "id": 153 - }, - { - "id": 154 - }, - { - "id": 155 - }, - { - "id": 156 - }, - { - "id": 157 - }, - { - "id": 158 - }, - { - "id": 159 - }, - { - "id": 160 - }, - { - "id": 161 - }, - { - "id": 162 - }, - { - "id": 163 - }, - { - "id": 164 - }, - { - "id": 165 - }, - { - "id": 166 - }, - { - "id": 167 - }, - { - "id": 168 - }, - { - "id": 169 - }, - { - "id": 170 - }, - { - "id": 171 - }, - { - "id": 172 - }, - { - "id": 173 - }, - { - "id": 174 - }, - { - "id": 175 - }, - { - "id": 176 - }, - { - "id": 177 - }, - { - "id": 178 - }, - { - "id": 179 - }, - { - "id": 180 - }, - { - "id": 181 - }, - { - "id": 182 - }, - { - "id": 183 - }, - { - "id": 184 - }, - { - "id": 185 - }, - { - "id": 186 - }, - { - "id": 187 - }, - { - "id": 188 - }, - { - "id": 189 - }, - { - "id": 190 - }, - { - "id": 191 - }, - { - "id": 192 - }, - { - "id": 193 - }, - { - "id": 194 - }, - { - "id": 195 - }, - { - "id": 196 - }, - { - "id": 197 - }, - { - "id": 198 - }, - { - "id": 199 - }, - { - "id": 200 - }, - { - "id": 201 - }, - { - "id": 202 - }, - { - "id": 203 - }, - { - "id": 204 - }, - { - "id": 205 - }, - { - "id": 206 - }, - { - "id": 207 - }, - { - "id": 208 - }, - { - "id": 209 - }, - { - "id": 210 - }, - { - "id": 211 - }, - { - "id": 212 - }, - { - "id": 213 - }, - { - "id": 214 - }, - { - "id": 215 - }, - { - "id": 216 - }, - { - "id": 217 - }, - { - "id": 218 - }, - { - "id": 219 - }, - { - "id": 220 - }, - { - "id": 221 - }, - { - "id": 222 - }, - { - "id": 223 - }, - { - "id": 224 - }, - { - "id": 225 - }, - { - "id": 226 - }, - { - "id": 227 - }, - { - "id": 228 - }, - { - "id": 229 - }, - { - "id": 230 - }, - { - "id": 231 - }, - { - "id": 232 - }, - { - "id": 233 - }, - { - "id": 234 - }, - { - "id": 235 - }, - { - "id": 236 - }, - { - "id": 237 - }, - { - "id": 238 - }, - { - "id": 239 - }, - { - "id": 240 - }, - { - "id": 241 - }, - { - "id": 242 - }, - { - "id": 243 - }, - { - "id": 244 - }, - { - "id": 245 - }, - { - "id": 246 - }, - { - "id": 247 - }, - { - "id": 248 - }, - { - "id": 249 - }, - { - "id": 250 - }, - { - "id": 251 - }, - { - "id": 252 - }, - { - "id": 253 - }, - { - "id": 254 - }, - { - "id": 255 - }, - { - "id": 256 - }, - { - "id": 257 - }, - { - "id": 258 - }, - { - "id": 259 - }, - { - "id": 260 - }, - { - "id": 261 - }, - { - "id": 262 - }, - { - "id": 263 - }, - { - "id": 264 - }, - { - "id": 265 - }, - { - "id": 266 - }, - { - "id": 267 - }, - { - "id": 268 - }, - { - "id": 269 - }, - { - "id": 270 - }, - { - "id": 271 - }, - { - "id": 272 - }, - { - "id": 273 - }, - { - "id": 274 - }, - { - "id": 275 - }, - { - "id": 276 - }, - { - "id": 277 - }, - { - "id": 278 - }, - { - "id": 279 - }, - { - "id": 280 - }, - { - "id": 281 - }, - { - "id": 282 - }, - { - "id": 283 - }, - { - "id": 284 - }, - { - "id": 285 - }, - { - "id": 286 - }, - { - "id": 287 - }, - { - "id": 288 - }, - { - "id": 289 - }, - { - "id": 290 - }, - { - "id": 291 - }, - { - "id": 292 - }, - { - "id": 293 - }, - { - "id": 294 - }, - { - "id": 295 - }, - { - "id": 296 - }, - { - "id": 297 - }, - { - "id": 298 - }, - { - "id": 299 - }, - { - "id": 300 - }, - { - "id": 301 - }, - { - "id": 302 - }, - { - "id": 303 - }, - { - "id": 304 - }, - { - "id": 305 - }, - { - "id": 306 - }, - { - "id": 307 - }, - { - "id": 308 - }, - { - "id": 309 - }, - { - "id": 310 - }, - { - "id": 311 - }, - { - "id": 312 - }, - { - "id": 313 - }, - { - "id": 314 - }, - { - "id": 315 - }, - { - "id": 316 - }, - { - "id": 317 - }, - { - "id": 318 - }, - { - "id": 319 - }, - { - "id": 320 - }, - { - "id": 321 - }, - { - "id": 322 - }, - { - "id": 323 - }, - { - "id": 324 - }, - { - "id": 325 - }, - { - "id": 326 - }, - { - "id": 327 - }, - { - "id": 328 - }, - { - "id": 329 - }, - { - "id": 330 - }, - { - "id": 331 - }, - { - "id": 332 - }, - { - "id": 333 - }, - { - "id": 334 - }, - { - "id": 335 - }, - { - "id": 336 - }, - { - "id": 337 - }, - { - "id": 338 - }, - { - "id": 339 - }, - { - "id": 340 - }, - { - "id": 341 - }, - { - "id": 342 - }, - { - "id": 343 - }, - { - "id": 344 - }, - { - "id": 345 - }, - { - "id": 346 - }, - { - "id": 347 - }, - { - "id": 348 - }, - { - "id": 349 - }, - { - "id": 350 - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=0&id=1&id=2&id=3&id=4&id=5&id=6&id=7&id=8&id=9&id=10&id=11&id=12&id=13&id=14&id=15&id=16&id=17&id=18&id=19&id=20&id=21&id=22&id=23&id=24&id=25&id=26&id=27&id=28&id=29&id=30&id=31&id=32&id=33&id=34&id=35&id=36&id=37&id=38&id=39&id=40&id=41&id=42&id=43&id=44&id=45&id=46&id=47&id=48&id=49&id=50&id=51&id=52&id=53&id=54&id=55&id=56&id=57&id=58&id=59&id=60&id=61&id=62&id=63&id=64&id=65&id=66&id=67&id=68&id=69&id=70&id=71&id=72&id=73&id=74&id=75&id=76&id=77&id=78&id=79&id=80&id=81&id=82&id=83&id=84&id=85&id=86&id=87&id=88&id=89&id=90&id=91&id=92&id=93&id=94&id=95&id=96&id=97&id=98&id=99&id=100&id=101&id=102&id=103&id=104&id=105&id=106&id=107&id=108&id=109&id=110&id=111&id=112&id=113&id=114&id=115&id=116&id=117&id=118&id=119&id=120&id=121&id=122&id=123&id=124&id=125&id=126&id=127&id=128&id=129&id=130&id=131&id=132&id=133&id=134&id=135&id=136&id=137&id=138&id=139&id=140&id=141&id=142&id=143&id=144&id=145&id=146&id=147&id=148&id=149&id=150&id=151&id=152&id=153&id=154&id=155&id=156&id=157&id=158&id=159&id=160&id=161&id=162&id=163&id=164&id=165&id=166&id=167&id=168&id=169&id=170&id=171&id=172&id=173&id=174&id=175&id=176&id=177&id=178&id=179&id=180&id=181&id=182&id=183&id=184&id=185&id=186&id=187&id=188&id=189&id=190&id=191&id=192&id=193&id=194&id=195&id=196&id=197&id=198&id=199&id=200&id=201&id=202&id=203&id=204&id=205&id=206&id=207&id=208&id=209&id=210&id=211&id=212&id=213&id=214&id=215&id=216&id=217&id=218&id=219&id=220&id=221&id=222&id=223&id=224&id=225&id=226&id=227&id=228&id=229&id=230&id=231&id=232&id=233&id=234&id=235&id=236&id=237&id=238&id=239&id=240&id=241&id=242&id=243&id=244&id=245&id=246&id=247&id=248&id=249&id=250&id=251&id=252&id=253&id=254&id=255&id=256&id=257&id=258&id=259&id=260&id=261&id=262&id=263&id=264&id=265&id=266&id=267&id=268&id=269&id=270&id=271&id=272&id=273&id=274&id=275&id=276&id=277&id=278&id=279&id=280&id=281&id=282&id=283&id=284&id=285&id=286&id=287&id=288&id=289&id=290&id=291&id=292&id=293&id=294&id=295&id=296&id=297&id=298&id=299", - "headers": { - "Authorization": "Bearer access_token_success", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=300&id=301&id=302&id=303&id=304&id=305&id=306&id=307&id=308&id=309&id=310&id=311&id=312&id=313&id=314&id=315&id=316&id=317&id=318&id=319&id=320&id=321&id=322&id=323&id=324&id=325&id=326&id=327&id=328&id=329&id=330&id=331&id=332&id=333&id=334&id=335&id=336&id=337&id=338&id=339&id=340&id=341&id=342&id=343&id=344&id=345&id=346&id=347&id=348&id=349&id=350", - "headers": { - "Authorization": "Bearer access_token_success", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "removing more than max limit users", - "input": { - "destination": { - "ID": "1zia9wKshXt80YksLmUdJnr7IHI", - "Name": "test_marketo", - "DestinationDefinition": { - "ID": "1iVQvTRMsPPyJzwol0ifH93QTQ6", - "Name": "MARKETO", - "DisplayName": "Marketo", - "transformAt": "processor", - "transformAtV1": "processor" - }, - "Config": { - "clientId": "marketo_client_id_success", - "clientSecret": "marketo_client_secret_success", - "accountId": "marketo_acct_id_success", - "staticListId": 1234 - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "remove": [ - { - "id": 0 - }, - { - "id": 1 - }, - { - "id": 2 - }, - { - "id": 3 - }, - { - "id": 4 - }, - { - "id": 5 - }, - { - "id": 6 - }, - { - "id": 7 - }, - { - "id": 8 - }, - { - "id": 9 - }, - { - "id": 10 - }, - { - "id": 11 - }, - { - "id": 12 - }, - { - "id": 13 - }, - { - "id": 14 - }, - { - "id": 15 - }, - { - "id": 16 - }, - { - "id": 17 - }, - { - "id": 18 - }, - { - "id": 19 - }, - { - "id": 20 - }, - { - "id": 21 - }, - { - "id": 22 - }, - { - "id": 23 - }, - { - "id": 24 - }, - { - "id": 25 - }, - { - "id": 26 - }, - { - "id": 27 - }, - { - "id": 28 - }, - { - "id": 29 - }, - { - "id": 30 - }, - { - "id": 31 - }, - { - "id": 32 - }, - { - "id": 33 - }, - { - "id": 34 - }, - { - "id": 35 - }, - { - "id": 36 - }, - { - "id": 37 - }, - { - "id": 38 - }, - { - "id": 39 - }, - { - "id": 40 - }, - { - "id": 41 - }, - { - "id": 42 - }, - { - "id": 43 - }, - { - "id": 44 - }, - { - "id": 45 - }, - { - "id": 46 - }, - { - "id": 47 - }, - { - "id": 48 - }, - { - "id": 49 - }, - { - "id": 50 - }, - { - "id": 51 - }, - { - "id": 52 - }, - { - "id": 53 - }, - { - "id": 54 - }, - { - "id": 55 - }, - { - "id": 56 - }, - { - "id": 57 - }, - { - "id": 58 - }, - { - "id": 59 - }, - { - "id": 60 - }, - { - "id": 61 - }, - { - "id": 62 - }, - { - "id": 63 - }, - { - "id": 64 - }, - { - "id": 65 - }, - { - "id": 66 - }, - { - "id": 67 - }, - { - "id": 68 - }, - { - "id": 69 - }, - { - "id": 70 - }, - { - "id": 71 - }, - { - "id": 72 - }, - { - "id": 73 - }, - { - "id": 74 - }, - { - "id": 75 - }, - { - "id": 76 - }, - { - "id": 77 - }, - { - "id": 78 - }, - { - "id": 79 - }, - { - "id": 80 - }, - { - "id": 81 - }, - { - "id": 82 - }, - { - "id": 83 - }, - { - "id": 84 - }, - { - "id": 85 - }, - { - "id": 86 - }, - { - "id": 87 - }, - { - "id": 88 - }, - { - "id": 89 - }, - { - "id": 90 - }, - { - "id": 91 - }, - { - "id": 92 - }, - { - "id": 93 - }, - { - "id": 94 - }, - { - "id": 95 - }, - { - "id": 96 - }, - { - "id": 97 - }, - { - "id": 98 - }, - { - "id": 99 - }, - { - "id": 100 - }, - { - "id": 101 - }, - { - "id": 102 - }, - { - "id": 103 - }, - { - "id": 104 - }, - { - "id": 105 - }, - { - "id": 106 - }, - { - "id": 107 - }, - { - "id": 108 - }, - { - "id": 109 - }, - { - "id": 110 - }, - { - "id": 111 - }, - { - "id": 112 - }, - { - "id": 113 - }, - { - "id": 114 - }, - { - "id": 115 - }, - { - "id": 116 - }, - { - "id": 117 - }, - { - "id": 118 - }, - { - "id": 119 - }, - { - "id": 120 - }, - { - "id": 121 - }, - { - "id": 122 - }, - { - "id": 123 - }, - { - "id": 124 - }, - { - "id": 125 - }, - { - "id": 126 - }, - { - "id": 127 - }, - { - "id": 128 - }, - { - "id": 129 - }, - { - "id": 130 - }, - { - "id": 131 - }, - { - "id": 132 - }, - { - "id": 133 - }, - { - "id": 134 - }, - { - "id": 135 - }, - { - "id": 136 - }, - { - "id": 137 - }, - { - "id": 138 - }, - { - "id": 139 - }, - { - "id": 140 - }, - { - "id": 141 - }, - { - "id": 142 - }, - { - "id": 143 - }, - { - "id": 144 - }, - { - "id": 145 - }, - { - "id": 146 - }, - { - "id": 147 - }, - { - "id": 148 - }, - { - "id": 149 - }, - { - "id": 150 - }, - { - "id": 151 - }, - { - "id": 152 - }, - { - "id": 153 - }, - { - "id": 154 - }, - { - "id": 155 - }, - { - "id": 156 - }, - { - "id": 157 - }, - { - "id": 158 - }, - { - "id": 159 - }, - { - "id": 160 - }, - { - "id": 161 - }, - { - "id": 162 - }, - { - "id": 163 - }, - { - "id": 164 - }, - { - "id": 165 - }, - { - "id": 166 - }, - { - "id": 167 - }, - { - "id": 168 - }, - { - "id": 169 - }, - { - "id": 170 - }, - { - "id": 171 - }, - { - "id": 172 - }, - { - "id": 173 - }, - { - "id": 174 - }, - { - "id": 175 - }, - { - "id": 176 - }, - { - "id": 177 - }, - { - "id": 178 - }, - { - "id": 179 - }, - { - "id": 180 - }, - { - "id": 181 - }, - { - "id": 182 - }, - { - "id": 183 - }, - { - "id": 184 - }, - { - "id": 185 - }, - { - "id": 186 - }, - { - "id": 187 - }, - { - "id": 188 - }, - { - "id": 189 - }, - { - "id": 190 - }, - { - "id": 191 - }, - { - "id": 192 - }, - { - "id": 193 - }, - { - "id": 194 - }, - { - "id": 195 - }, - { - "id": 196 - }, - { - "id": 197 - }, - { - "id": 198 - }, - { - "id": 199 - }, - { - "id": 200 - }, - { - "id": 201 - }, - { - "id": 202 - }, - { - "id": 203 - }, - { - "id": 204 - }, - { - "id": 205 - }, - { - "id": 206 - }, - { - "id": 207 - }, - { - "id": 208 - }, - { - "id": 209 - }, - { - "id": 210 - }, - { - "id": 211 - }, - { - "id": 212 - }, - { - "id": 213 - }, - { - "id": 214 - }, - { - "id": 215 - }, - { - "id": 216 - }, - { - "id": 217 - }, - { - "id": 218 - }, - { - "id": 219 - }, - { - "id": 220 - }, - { - "id": 221 - }, - { - "id": 222 - }, - { - "id": 223 - }, - { - "id": 224 - }, - { - "id": 225 - }, - { - "id": 226 - }, - { - "id": 227 - }, - { - "id": 228 - }, - { - "id": 229 - }, - { - "id": 230 - }, - { - "id": 231 - }, - { - "id": 232 - }, - { - "id": 233 - }, - { - "id": 234 - }, - { - "id": 235 - }, - { - "id": 236 - }, - { - "id": 237 - }, - { - "id": 238 - }, - { - "id": 239 - }, - { - "id": 240 - }, - { - "id": 241 - }, - { - "id": 242 - }, - { - "id": 243 - }, - { - "id": 244 - }, - { - "id": 245 - }, - { - "id": 246 - }, - { - "id": 247 - }, - { - "id": 248 - }, - { - "id": 249 - }, - { - "id": 250 - }, - { - "id": 251 - }, - { - "id": 252 - }, - { - "id": 253 - }, - { - "id": 254 - }, - { - "id": 255 - }, - { - "id": 256 - }, - { - "id": 257 - }, - { - "id": 258 - }, - { - "id": 259 - }, - { - "id": 260 - }, - { - "id": 261 - }, - { - "id": 262 - }, - { - "id": 263 - }, - { - "id": 264 - }, - { - "id": 265 - }, - { - "id": 266 - }, - { - "id": 267 - }, - { - "id": 268 - }, - { - "id": 269 - }, - { - "id": 270 - }, - { - "id": 271 - }, - { - "id": 272 - }, - { - "id": 273 - }, - { - "id": 274 - }, - { - "id": 275 - }, - { - "id": 276 - }, - { - "id": 277 - }, - { - "id": 278 - }, - { - "id": 279 - }, - { - "id": 280 - }, - { - "id": 281 - }, - { - "id": 282 - }, - { - "id": 283 - }, - { - "id": 284 - }, - { - "id": 285 - }, - { - "id": 286 - }, - { - "id": 287 - }, - { - "id": 288 - }, - { - "id": 289 - }, - { - "id": 290 - }, - { - "id": 291 - }, - { - "id": 292 - }, - { - "id": 293 - }, - { - "id": 294 - }, - { - "id": 295 - }, - { - "id": 296 - }, - { - "id": 297 - }, - { - "id": 298 - }, - { - "id": 299 - }, - { - "id": 300 - }, - { - "id": 301 - }, - { - "id": 302 - }, - { - "id": 303 - }, - { - "id": 304 - }, - { - "id": 305 - }, - { - "id": 306 - }, - { - "id": 307 - }, - { - "id": 308 - }, - { - "id": 309 - }, - { - "id": 310 - }, - { - "id": 311 - }, - { - "id": 312 - }, - { - "id": 313 - }, - { - "id": 314 - }, - { - "id": 315 - }, - { - "id": 316 - }, - { - "id": 317 - }, - { - "id": 318 - }, - { - "id": 319 - }, - { - "id": 320 - }, - { - "id": 321 - }, - { - "id": 322 - }, - { - "id": 323 - }, - { - "id": 324 - }, - { - "id": 325 - }, - { - "id": 326 - }, - { - "id": 327 - }, - { - "id": 328 - }, - { - "id": 329 - }, - { - "id": 330 - }, - { - "id": 331 - }, - { - "id": 332 - }, - { - "id": 333 - }, - { - "id": 334 - }, - { - "id": 335 - }, - { - "id": 336 - }, - { - "id": 337 - }, - { - "id": 338 - }, - { - "id": 339 - }, - { - "id": 340 - }, - { - "id": 341 - }, - { - "id": 342 - }, - { - "id": 343 - }, - { - "id": 344 - }, - { - "id": 345 - }, - { - "id": 346 - }, - { - "id": 347 - }, - { - "id": 348 - }, - { - "id": 349 - }, - { - "id": 350 - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=0&id=1&id=2&id=3&id=4&id=5&id=6&id=7&id=8&id=9&id=10&id=11&id=12&id=13&id=14&id=15&id=16&id=17&id=18&id=19&id=20&id=21&id=22&id=23&id=24&id=25&id=26&id=27&id=28&id=29&id=30&id=31&id=32&id=33&id=34&id=35&id=36&id=37&id=38&id=39&id=40&id=41&id=42&id=43&id=44&id=45&id=46&id=47&id=48&id=49&id=50&id=51&id=52&id=53&id=54&id=55&id=56&id=57&id=58&id=59&id=60&id=61&id=62&id=63&id=64&id=65&id=66&id=67&id=68&id=69&id=70&id=71&id=72&id=73&id=74&id=75&id=76&id=77&id=78&id=79&id=80&id=81&id=82&id=83&id=84&id=85&id=86&id=87&id=88&id=89&id=90&id=91&id=92&id=93&id=94&id=95&id=96&id=97&id=98&id=99&id=100&id=101&id=102&id=103&id=104&id=105&id=106&id=107&id=108&id=109&id=110&id=111&id=112&id=113&id=114&id=115&id=116&id=117&id=118&id=119&id=120&id=121&id=122&id=123&id=124&id=125&id=126&id=127&id=128&id=129&id=130&id=131&id=132&id=133&id=134&id=135&id=136&id=137&id=138&id=139&id=140&id=141&id=142&id=143&id=144&id=145&id=146&id=147&id=148&id=149&id=150&id=151&id=152&id=153&id=154&id=155&id=156&id=157&id=158&id=159&id=160&id=161&id=162&id=163&id=164&id=165&id=166&id=167&id=168&id=169&id=170&id=171&id=172&id=173&id=174&id=175&id=176&id=177&id=178&id=179&id=180&id=181&id=182&id=183&id=184&id=185&id=186&id=187&id=188&id=189&id=190&id=191&id=192&id=193&id=194&id=195&id=196&id=197&id=198&id=199&id=200&id=201&id=202&id=203&id=204&id=205&id=206&id=207&id=208&id=209&id=210&id=211&id=212&id=213&id=214&id=215&id=216&id=217&id=218&id=219&id=220&id=221&id=222&id=223&id=224&id=225&id=226&id=227&id=228&id=229&id=230&id=231&id=232&id=233&id=234&id=235&id=236&id=237&id=238&id=239&id=240&id=241&id=242&id=243&id=244&id=245&id=246&id=247&id=248&id=249&id=250&id=251&id=252&id=253&id=254&id=255&id=256&id=257&id=258&id=259&id=260&id=261&id=262&id=263&id=264&id=265&id=266&id=267&id=268&id=269&id=270&id=271&id=272&id=273&id=274&id=275&id=276&id=277&id=278&id=279&id=280&id=281&id=282&id=283&id=284&id=285&id=286&id=287&id=288&id=289&id=290&id=291&id=292&id=293&id=294&id=295&id=296&id=297&id=298&id=299", - "headers": { - "Authorization": "Bearer access_token_success", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=300&id=301&id=302&id=303&id=304&id=305&id=306&id=307&id=308&id=309&id=310&id=311&id=312&id=313&id=314&id=315&id=316&id=317&id=318&id=319&id=320&id=321&id=322&id=323&id=324&id=325&id=326&id=327&id=328&id=329&id=330&id=331&id=332&id=333&id=334&id=335&id=336&id=337&id=338&id=339&id=340&id=341&id=342&id=343&id=344&id=345&id=346&id=347&id=348&id=349&id=350", - "headers": { - "Authorization": "Bearer access_token_success", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "unsupported message Type", - "input": { - "destination": { - "ID": "1zia9wKshXt80YksLmUdJnr7IHI", - "Name": "test_marketo", - "DestinationDefinition": { - "ID": "1iVQvTRMsPPyJzwol0ifH93QTQ6", - "Name": "MARKETO", - "DisplayName": "Marketo", - "transformAt": "processor", - "transformAtV1": "processor" - }, - "Config": { - "clientId": "marketo_client_id_success", - "clientSecret": "marketo_client_secret_success", - "accountId": "marketo_acct_id_success", - "staticListId": 1234 - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "track", - "properties": { - "listData": { - "remove": [1] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": { - "error": "Event type track is not supported" - } - }, - { - "description": "Invalid leadIds format ", - "input": { - "destination": { - "ID": "1zia9wKshXt80YksLmUdJnr7IHI", - "Name": "test_marketo", - "DestinationDefinition": { - "ID": "1iVQvTRMsPPyJzwol0ifH93QTQ6", - "Name": "MARKETO", - "DisplayName": "Marketo", - "transformAt": "processor", - "transformAtV1": "processor" - }, - "Config": { - "clientId": "marketo_client_id_success", - "clientSecret": "marketo_client_secret_success", - "accountId": "marketo_acct_id_success", - "staticListId": 1234 - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "remove": 1 - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": { - "error": "Invalid leadIds format or no leadIds found neither to add nor to remove" - } - }, - { - "description": "Only adding with remove not an array", - "input": { - "destination": { - "ID": "1zia9wKshXt80YksLmUdJnr7IHI", - "Name": "test_marketo", - "DestinationDefinition": { - "ID": "1iVQvTRMsPPyJzwol0ifH93QTQ6", - "Name": "MARKETO", - "DisplayName": "Marketo", - "transformAt": "processor", - "transformAtV1": "processor" - }, - "Config": { - "clientId": "marketo_client_id_success", - "clientSecret": "marketo_client_secret_success", - "accountId": "marketo_acct_id_success", - "staticListId": 1234 - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [{ "id": 1 }], - "remove": 2 - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=1", - "headers": { - "Authorization": "Bearer access_token_success", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - } -] diff --git a/test/__tests__/data/marketo_static_list_proxy_input.json b/test/__tests__/data/marketo_static_list_proxy_input.json index a96f5c2fe2a..6f84e7416dc 100644 --- a/test/__tests__/data/marketo_static_list_proxy_input.json +++ b/test/__tests__/data/marketo_static_list_proxy_input.json @@ -1,4 +1,24 @@ [ + { + "type": "REST", + "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=110&id=111&id=112", + "method": "POST", + "userId": "", + "headers": { + "Authorization": "Bearer Incorrect_token", + "Content-Type": "application/json" + }, + "body": { + "FORM": {}, + "JSON": {}, + "JSON_ARRAY": {}, + "XML": {} + }, + "files": {}, + "params": { + "destination": "marketo_static_list" + } + }, { "type": "REST", "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=1&id=2&id=3", @@ -80,7 +100,7 @@ { "City": "Tokyo", "Country": "JP", - "Email": "ben@shappiro.com", + "Email": "b@s.com", "PostalCode": "100-0001", "Title": "Owner", "id": 1328329, @@ -121,7 +141,7 @@ { "City": "Tokyo", "Country": "JP", - "Email": "ben@shappiro.com", + "Email": "b@s.com", "PostalCode": "100-0001", "Title": "Owner", "id": 1328329, diff --git a/test/__tests__/data/marketo_static_list_proxy_output.json b/test/__tests__/data/marketo_static_list_proxy_output.json index 2dfbee0e8eb..ec52d0c37c8 100644 --- a/test/__tests__/data/marketo_static_list_proxy_output.json +++ b/test/__tests__/data/marketo_static_list_proxy_output.json @@ -1,4 +1,37 @@ [ + { + "output": { + "message": "Request Processed Successfully", + "destinationResponse": { + "response": { + "requestId": "b6d1#18a8d2c10e7", + "result": [ + { + "id": 110, + "status": "skipped", + "reasons": [ + { + "code": "1015", + "message": "Lead not in list" + } + ] + }, + { + "id": 111, + "status": "removed" + }, + { + "id": 112, + "status": "removed" + } + ], + "success": true + }, + "status": 200 + }, + "status": 200 + } + }, { "output": { "status": 500, @@ -72,21 +105,25 @@ }, { "output": { - "destinationResponse": "", - "message": "Request failed during: during Marketo Static List Response Handling, error: [{\"code\":\"1004\",\"message\":\"Lead not found\"}]", - "statTags": { - "destType": "MARKETO_STATIC_LIST", - "errorCategory": "dataValidation", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "instrumentation", - "feature": "dataDelivery", - "implementation": "native", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "module": "destination" - }, - "status": 400 + "status": 200, + "message": "Request Processed Successfully", + "destinationResponse": { + "response": { + "requestId": "12d3c#1846057dce2", + "result": { + "id": 5, + "status": "skipped", + "reasons": [ + { + "code": "1015", + "message": "Lead not in list" + } + ] + }, + "success": true + }, + "status": 200 + } } } -] \ No newline at end of file +] diff --git a/test/__tests__/data/marketo_static_list_router_input.json b/test/__tests__/data/marketo_static_list_router_input.json deleted file mode 100644 index ed3a7591e6d..00000000000 --- a/test/__tests__/data/marketo_static_list_router_input.json +++ /dev/null @@ -1,1209 +0,0 @@ -[ - { - "destination": { - "ID": "1zia9wKshXt80YksLmUdJnr7IHI", - "Name": "test_marketo", - "DestinationDefinition": { - "ID": "1iVQvTRMsPPyJzwol0ifH93QTQ6", - "Name": "MARKETO", - "DisplayName": "Marketo", - "transformAt": "processor", - "transformAtV1": "processor" - }, - "Config": { - "clientId": "marketo_client_id_success", - "clientSecret": "marketo_client_secret_success", - "accountId": "marketo_acct_id_success", - "staticListId": 1234 - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "id": 1 - }, - { - "id": 2 - }, - { - "id": 3 - } - ], - "remove": [ - { - "id": 4 - }, - { - "id": 5 - }, - { - "id": 6 - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "metadata": { - "jobId": 1 - } - }, - { - "destination": { - "ID": "1zia9wKshXt80YksLmUdJnr7IHI", - "Name": "test_marketo", - "DestinationDefinition": { - "ID": "1iVQvTRMsPPyJzwol0ifH93QTQ6", - "Name": "MARKETO", - "DisplayName": "Marketo", - "transformAt": "processor", - "transformAtV1": "processor" - }, - "Config": { - "clientId": "marketo_client_id_success", - "clientSecret": "marketo_client_secret_success", - "accountId": "marketo_acct_id_success", - "staticListId": 1234 - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "id": 0 - }, - { - "id": 1 - }, - { - "id": 2 - }, - { - "id": 3 - }, - { - "id": 4 - }, - { - "id": 5 - }, - { - "id": 6 - }, - { - "id": 7 - }, - { - "id": 8 - }, - { - "id": 9 - }, - { - "id": 10 - }, - { - "id": 11 - }, - { - "id": 12 - }, - { - "id": 13 - }, - { - "id": 14 - }, - { - "id": 15 - }, - { - "id": 16 - }, - { - "id": 17 - }, - { - "id": 18 - }, - { - "id": 19 - }, - { - "id": 20 - }, - { - "id": 21 - }, - { - "id": 22 - }, - { - "id": 23 - }, - { - "id": 24 - }, - { - "id": 25 - }, - { - "id": 26 - }, - { - "id": 27 - }, - { - "id": 28 - }, - { - "id": 29 - }, - { - "id": 30 - }, - { - "id": 31 - }, - { - "id": 32 - }, - { - "id": 33 - }, - { - "id": 34 - }, - { - "id": 35 - }, - { - "id": 36 - }, - { - "id": 37 - }, - { - "id": 38 - }, - { - "id": 39 - }, - { - "id": 40 - }, - { - "id": 41 - }, - { - "id": 42 - }, - { - "id": 43 - }, - { - "id": 44 - }, - { - "id": 45 - }, - { - "id": 46 - }, - { - "id": 47 - }, - { - "id": 48 - }, - { - "id": 49 - }, - { - "id": 50 - }, - { - "id": 51 - }, - { - "id": 52 - }, - { - "id": 53 - }, - { - "id": 54 - }, - { - "id": 55 - }, - { - "id": 56 - }, - { - "id": 57 - }, - { - "id": 58 - }, - { - "id": 59 - }, - { - "id": 60 - }, - { - "id": 61 - }, - { - "id": 62 - }, - { - "id": 63 - }, - { - "id": 64 - }, - { - "id": 65 - }, - { - "id": 66 - }, - { - "id": 67 - }, - { - "id": 68 - }, - { - "id": 69 - }, - { - "id": 70 - }, - { - "id": 71 - }, - { - "id": 72 - }, - { - "id": 73 - }, - { - "id": 74 - }, - { - "id": 75 - }, - { - "id": 76 - }, - { - "id": 77 - }, - { - "id": 78 - }, - { - "id": 79 - }, - { - "id": 80 - }, - { - "id": 81 - }, - { - "id": 82 - }, - { - "id": 83 - }, - { - "id": 84 - }, - { - "id": 85 - }, - { - "id": 86 - }, - { - "id": 87 - }, - { - "id": 88 - }, - { - "id": 89 - }, - { - "id": 90 - }, - { - "id": 91 - }, - { - "id": 92 - }, - { - "id": 93 - }, - { - "id": 94 - }, - { - "id": 95 - }, - { - "id": 96 - }, - { - "id": 97 - }, - { - "id": 98 - }, - { - "id": 99 - }, - { - "id": 100 - }, - { - "id": 101 - }, - { - "id": 102 - }, - { - "id": 103 - }, - { - "id": 104 - }, - { - "id": 105 - }, - { - "id": 106 - }, - { - "id": 107 - }, - { - "id": 108 - }, - { - "id": 109 - }, - { - "id": 110 - }, - { - "id": 111 - }, - { - "id": 112 - }, - { - "id": 113 - }, - { - "id": 114 - }, - { - "id": 115 - }, - { - "id": 116 - }, - { - "id": 117 - }, - { - "id": 118 - }, - { - "id": 119 - }, - { - "id": 120 - }, - { - "id": 121 - }, - { - "id": 122 - }, - { - "id": 123 - }, - { - "id": 124 - }, - { - "id": 125 - }, - { - "id": 126 - }, - { - "id": 127 - }, - { - "id": 128 - }, - { - "id": 129 - }, - { - "id": 130 - }, - { - "id": 131 - }, - { - "id": 132 - }, - { - "id": 133 - }, - { - "id": 134 - }, - { - "id": 135 - }, - { - "id": 136 - }, - { - "id": 137 - }, - { - "id": 138 - }, - { - "id": 139 - }, - { - "id": 140 - }, - { - "id": 141 - }, - { - "id": 142 - }, - { - "id": 143 - }, - { - "id": 144 - }, - { - "id": 145 - }, - { - "id": 146 - }, - { - "id": 147 - }, - { - "id": 148 - }, - { - "id": 149 - }, - { - "id": 150 - }, - { - "id": 151 - }, - { - "id": 152 - }, - { - "id": 153 - }, - { - "id": 154 - }, - { - "id": 155 - }, - { - "id": 156 - }, - { - "id": 157 - }, - { - "id": 158 - }, - { - "id": 159 - }, - { - "id": 160 - }, - { - "id": 161 - }, - { - "id": 162 - }, - { - "id": 163 - }, - { - "id": 164 - }, - { - "id": 165 - }, - { - "id": 166 - }, - { - "id": 167 - }, - { - "id": 168 - }, - { - "id": 169 - }, - { - "id": 170 - }, - { - "id": 171 - }, - { - "id": 172 - }, - { - "id": 173 - }, - { - "id": 174 - }, - { - "id": 175 - }, - { - "id": 176 - }, - { - "id": 177 - }, - { - "id": 178 - }, - { - "id": 179 - }, - { - "id": 180 - }, - { - "id": 181 - }, - { - "id": 182 - }, - { - "id": 183 - }, - { - "id": 184 - }, - { - "id": 185 - }, - { - "id": 186 - }, - { - "id": 187 - }, - { - "id": 188 - }, - { - "id": 189 - }, - { - "id": 190 - }, - { - "id": 191 - }, - { - "id": 192 - }, - { - "id": 193 - }, - { - "id": 194 - }, - { - "id": 195 - }, - { - "id": 196 - }, - { - "id": 197 - }, - { - "id": 198 - }, - { - "id": 199 - }, - { - "id": 200 - }, - { - "id": 201 - }, - { - "id": 202 - }, - { - "id": 203 - }, - { - "id": 204 - }, - { - "id": 205 - }, - { - "id": 206 - }, - { - "id": 207 - }, - { - "id": 208 - }, - { - "id": 209 - }, - { - "id": 210 - }, - { - "id": 211 - }, - { - "id": 212 - }, - { - "id": 213 - }, - { - "id": 214 - }, - { - "id": 215 - }, - { - "id": 216 - }, - { - "id": 217 - }, - { - "id": 218 - }, - { - "id": 219 - }, - { - "id": 220 - }, - { - "id": 221 - }, - { - "id": 222 - }, - { - "id": 223 - }, - { - "id": 224 - }, - { - "id": 225 - }, - { - "id": 226 - }, - { - "id": 227 - }, - { - "id": 228 - }, - { - "id": 229 - }, - { - "id": 230 - }, - { - "id": 231 - }, - { - "id": 232 - }, - { - "id": 233 - }, - { - "id": 234 - }, - { - "id": 235 - }, - { - "id": 236 - }, - { - "id": 237 - }, - { - "id": 238 - }, - { - "id": 239 - }, - { - "id": 240 - }, - { - "id": 241 - }, - { - "id": 242 - }, - { - "id": 243 - }, - { - "id": 244 - }, - { - "id": 245 - }, - { - "id": 246 - }, - { - "id": 247 - }, - { - "id": 248 - }, - { - "id": 249 - }, - { - "id": 250 - }, - { - "id": 251 - }, - { - "id": 252 - }, - { - "id": 253 - }, - { - "id": 254 - }, - { - "id": 255 - }, - { - "id": 256 - }, - { - "id": 257 - }, - { - "id": 258 - }, - { - "id": 259 - }, - { - "id": 260 - }, - { - "id": 261 - }, - { - "id": 262 - }, - { - "id": 263 - }, - { - "id": 264 - }, - { - "id": 265 - }, - { - "id": 266 - }, - { - "id": 267 - }, - { - "id": 268 - }, - { - "id": 269 - }, - { - "id": 270 - }, - { - "id": 271 - }, - { - "id": 272 - }, - { - "id": 273 - }, - { - "id": 274 - }, - { - "id": 275 - }, - { - "id": 276 - }, - { - "id": 277 - }, - { - "id": 278 - }, - { - "id": 279 - }, - { - "id": 280 - }, - { - "id": 281 - }, - { - "id": 282 - }, - { - "id": 283 - }, - { - "id": 284 - }, - { - "id": 285 - }, - { - "id": 286 - }, - { - "id": 287 - }, - { - "id": 288 - }, - { - "id": 289 - }, - { - "id": 290 - }, - { - "id": 291 - }, - { - "id": 292 - }, - { - "id": 293 - }, - { - "id": 294 - }, - { - "id": 295 - }, - { - "id": 296 - }, - { - "id": 297 - }, - { - "id": 298 - }, - { - "id": 299 - }, - { - "id": 300 - }, - { - "id": 301 - }, - { - "id": 302 - }, - { - "id": 303 - }, - { - "id": 304 - }, - { - "id": 305 - }, - { - "id": 306 - }, - { - "id": 307 - }, - { - "id": 308 - }, - { - "id": 309 - }, - { - "id": 310 - }, - { - "id": 311 - }, - { - "id": 312 - }, - { - "id": 313 - }, - { - "id": 314 - }, - { - "id": 315 - }, - { - "id": 316 - }, - { - "id": 317 - }, - { - "id": 318 - }, - { - "id": 319 - }, - { - "id": 320 - }, - { - "id": 321 - }, - { - "id": 322 - }, - { - "id": 323 - }, - { - "id": 324 - }, - { - "id": 325 - }, - { - "id": 326 - }, - { - "id": 327 - }, - { - "id": 328 - }, - { - "id": 329 - }, - { - "id": 330 - }, - { - "id": 331 - }, - { - "id": 332 - }, - { - "id": 333 - }, - { - "id": 334 - }, - { - "id": 335 - }, - { - "id": 336 - }, - { - "id": 337 - }, - { - "id": 338 - }, - { - "id": 339 - }, - { - "id": 340 - }, - { - "id": 341 - }, - { - "id": 342 - }, - { - "id": 343 - }, - { - "id": 344 - }, - { - "id": 345 - }, - { - "id": 346 - }, - { - "id": 347 - }, - { - "id": 348 - }, - { - "id": 349 - }, - { - "id": 350 - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "metadata": { - "jobId": 2 - } - }, - { - "destination": { - "ID": "1zia9wKshXt80YksLmUdJnr7IHI", - "Name": "test_marketo", - "DestinationDefinition": { - "ID": "1iVQvTRMsPPyJzwol0ifH93QTQ6", - "Name": "MARKETO", - "DisplayName": "Marketo", - "transformAt": "processor", - "transformAtV1": "processor" - }, - "Config": { - "clientId": "marketo_client_id_success", - "clientSecret": "marketo_client_secret_success", - "accountId": "marketo_acct_id_success", - "staticListId": 1234 - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "track", - "properties": { - "listData": { - "remove": [1] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - }, - "metadata": { - "jobId": 3 - } - } -] diff --git a/test/__tests__/data/marketo_static_list_router_metadata_input.json b/test/__tests__/data/marketo_static_list_router_metadata_input.json deleted file mode 100644 index d006aa184be..00000000000 --- a/test/__tests__/data/marketo_static_list_router_metadata_input.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=1&id=2&id=3", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer access_token_success" - }, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 1 - }, - { - "jobId": 2 - }, - { - "jobId": 3 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "accountId": "marketo_acct_id_success", - "clientId": "marketo_client_id_success", - "clientSecret": "marketo_client_secret_success", - "staticListId": 3027 - }, - "secretConfig": {}, - "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", - "name": "Marketo Static List", - "enabled": true, - "workspaceId": "1TSN08muJTZwH8iCDmnnRt1pmLd", - "deleted": false, - "createdAt": "2020-12-30T08:39:32.005Z", - "updatedAt": "2021-02-03T16:22:31.374Z", - "destinationDefinition": { - "config": { - "destConfig": { - "defaultConfig": ["accountId", "clientId", "clientSecret", "staticListId"] - }, - "secretKeys": ["clientSecret"], - "excludeKeys": [], - "includeKeys": [], - "routerTransform": true, - "supportedSourceTypes": ["android", "ios", "web", "unity", "amp", "cloud", "reactnative"] - }, - "id": "1aIXqM806xAVm92nx07YwKbRrO9", - "name": "MARKETO_STATIC_LIST", - "displayName": "Marketo Static List", - "createdAt": "2020-04-09T09:24:31.794Z", - "updatedAt": "2021-01-11T11:03:28.103Z" - }, - "transformations": [], - "isConnectionEnabled": true, - "isProcessorEnabled": true - } -} diff --git a/test/__tests__/data/marketo_static_list_router_metadata_output.json b/test/__tests__/data/marketo_static_list_router_metadata_output.json deleted file mode 100644 index bc560d73a7f..00000000000 --- a/test/__tests__/data/marketo_static_list_router_metadata_output.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - { - "destInfo": { - "authKey": "1mMy5cqbtfuaKZv1IhVQKnBdVwe" - }, - "jobId": 1 - }, - { - "destInfo": { - "authKey": "1mMy5cqbtfuaKZv1IhVQKnBdVwe" - }, - "jobId": 2 - }, - { - "destInfo": { - "authKey": "1mMy5cqbtfuaKZv1IhVQKnBdVwe" - }, - "jobId": 3 - } -] diff --git a/test/__tests__/data/marketo_static_list_router_output.json b/test/__tests__/data/marketo_static_list_router_output.json deleted file mode 100644 index 9c096b84c64..00000000000 --- a/test/__tests__/data/marketo_static_list_router_output.json +++ /dev/null @@ -1,170 +0,0 @@ -[ - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=1&id=2&id=3", - "headers": { - "Authorization": "Bearer access_token_success", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=4&id=5&id=6", - "headers": { - "Authorization": "Bearer access_token_success", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "1zia9wKshXt80YksLmUdJnr7IHI", - "Name": "test_marketo", - "DestinationDefinition": { - "ID": "1iVQvTRMsPPyJzwol0ifH93QTQ6", - "Name": "MARKETO", - "DisplayName": "Marketo", - "transformAt": "processor", - "transformAtV1": "processor" - }, - "Config": { - "clientId": "marketo_client_id_success", - "clientSecret": "marketo_client_secret_success", - "accountId": "marketo_acct_id_success", - "staticListId": 1234 - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=0&id=1&id=2&id=3&id=4&id=5&id=6&id=7&id=8&id=9&id=10&id=11&id=12&id=13&id=14&id=15&id=16&id=17&id=18&id=19&id=20&id=21&id=22&id=23&id=24&id=25&id=26&id=27&id=28&id=29&id=30&id=31&id=32&id=33&id=34&id=35&id=36&id=37&id=38&id=39&id=40&id=41&id=42&id=43&id=44&id=45&id=46&id=47&id=48&id=49&id=50&id=51&id=52&id=53&id=54&id=55&id=56&id=57&id=58&id=59&id=60&id=61&id=62&id=63&id=64&id=65&id=66&id=67&id=68&id=69&id=70&id=71&id=72&id=73&id=74&id=75&id=76&id=77&id=78&id=79&id=80&id=81&id=82&id=83&id=84&id=85&id=86&id=87&id=88&id=89&id=90&id=91&id=92&id=93&id=94&id=95&id=96&id=97&id=98&id=99&id=100&id=101&id=102&id=103&id=104&id=105&id=106&id=107&id=108&id=109&id=110&id=111&id=112&id=113&id=114&id=115&id=116&id=117&id=118&id=119&id=120&id=121&id=122&id=123&id=124&id=125&id=126&id=127&id=128&id=129&id=130&id=131&id=132&id=133&id=134&id=135&id=136&id=137&id=138&id=139&id=140&id=141&id=142&id=143&id=144&id=145&id=146&id=147&id=148&id=149&id=150&id=151&id=152&id=153&id=154&id=155&id=156&id=157&id=158&id=159&id=160&id=161&id=162&id=163&id=164&id=165&id=166&id=167&id=168&id=169&id=170&id=171&id=172&id=173&id=174&id=175&id=176&id=177&id=178&id=179&id=180&id=181&id=182&id=183&id=184&id=185&id=186&id=187&id=188&id=189&id=190&id=191&id=192&id=193&id=194&id=195&id=196&id=197&id=198&id=199&id=200&id=201&id=202&id=203&id=204&id=205&id=206&id=207&id=208&id=209&id=210&id=211&id=212&id=213&id=214&id=215&id=216&id=217&id=218&id=219&id=220&id=221&id=222&id=223&id=224&id=225&id=226&id=227&id=228&id=229&id=230&id=231&id=232&id=233&id=234&id=235&id=236&id=237&id=238&id=239&id=240&id=241&id=242&id=243&id=244&id=245&id=246&id=247&id=248&id=249&id=250&id=251&id=252&id=253&id=254&id=255&id=256&id=257&id=258&id=259&id=260&id=261&id=262&id=263&id=264&id=265&id=266&id=267&id=268&id=269&id=270&id=271&id=272&id=273&id=274&id=275&id=276&id=277&id=278&id=279&id=280&id=281&id=282&id=283&id=284&id=285&id=286&id=287&id=288&id=289&id=290&id=291&id=292&id=293&id=294&id=295&id=296&id=297&id=298&id=299", - "headers": { - "Authorization": "Bearer access_token_success", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=300&id=301&id=302&id=303&id=304&id=305&id=306&id=307&id=308&id=309&id=310&id=311&id=312&id=313&id=314&id=315&id=316&id=317&id=318&id=319&id=320&id=321&id=322&id=323&id=324&id=325&id=326&id=327&id=328&id=329&id=330&id=331&id=332&id=333&id=334&id=335&id=336&id=337&id=338&id=339&id=340&id=341&id=342&id=343&id=344&id=345&id=346&id=347&id=348&id=349&id=350", - "headers": { - "Authorization": "Bearer access_token_success", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "1zia9wKshXt80YksLmUdJnr7IHI", - "Name": "test_marketo", - "DestinationDefinition": { - "ID": "1iVQvTRMsPPyJzwol0ifH93QTQ6", - "Name": "MARKETO", - "DisplayName": "Marketo", - "transformAt": "processor", - "transformAtV1": "processor" - }, - "Config": { - "clientId": "marketo_client_id_success", - "clientSecret": "marketo_client_secret_success", - "accountId": "marketo_acct_id_success", - "staticListId": 1234 - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - }, - { - "metadata": [ - { - "jobId": 3 - } - ], - "destination": { - "ID": "1zia9wKshXt80YksLmUdJnr7IHI", - "Name": "test_marketo", - "DestinationDefinition": { - "ID": "1iVQvTRMsPPyJzwol0ifH93QTQ6", - "Name": "MARKETO", - "DisplayName": "Marketo", - "transformAt": "processor", - "transformAtV1": "processor" - }, - "Config": { - "clientId": "marketo_client_id_success", - "clientSecret": "marketo_client_secret_success", - "accountId": "marketo_acct_id_success", - "staticListId": 1234 - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "batched": false, - "statusCode": 400, - "error": "Event type track is not supported", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - } - } -] diff --git a/test/__tests__/data/moengage_input.json b/test/__tests__/data/moengage_input.json index d2fe1b5de8f..290d19565c1 100644 --- a/test/__tests__/data/moengage_input.json +++ b/test/__tests__/data/moengage_input.json @@ -35,8 +35,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -151,7 +151,7 @@ "sentAt": "2020-10-16T08:10:12.783Z", "timestamp": "2020-10-16T13:40:12.791+05:30", "type": "track", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "ID": "1iuTZs6eEZVMm6GjRBe6bNShaL3", @@ -171,7 +171,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "US" @@ -216,8 +216,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -232,7 +232,7 @@ "sentAt": "2020-10-16T08:26:14.939Z", "timestamp": "2020-10-16T13:56:14.944+05:30", "type": "identify", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "ID": "1iuTZs6eEZVMm6GjRBe6bNShaL3", @@ -252,7 +252,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "US" @@ -329,7 +329,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "US" @@ -382,8 +382,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -398,7 +398,7 @@ "sentAt": "2020-10-16T08:53:29.387Z", "timestamp": "2020-10-16T14:23:29.401+05:30", "type": "identify", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "ID": "1iuTZs6eEZVMm6GjRBe6bNShaL3", @@ -418,7 +418,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "US" @@ -463,8 +463,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -479,7 +479,7 @@ "sentAt": "2020-10-16T09:05:11.002Z", "timestamp": "2020-10-16T14:35:11.013+05:30", "type": "identify", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "ID": "1iuTZs6eEZVMm6GjRBe6bNShaL3", @@ -499,7 +499,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "EU" @@ -544,8 +544,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -560,7 +560,7 @@ "sentAt": "2020-10-16T09:09:31.466Z", "timestamp": "2020-10-16T14:39:31.467+05:30", "type": "identify", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "ID": "1iuTZs6eEZVMm6GjRBe6bNShaL3", @@ -580,7 +580,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "IND" @@ -625,8 +625,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -641,7 +641,7 @@ "sentAt": "2020-10-16T09:09:31.466Z", "timestamp": "2020-10-16T14:39:31.467+05:30", "type": "identify", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "ID": "1iuTZs6eEZVMm6GjRBe6bNShaL3", @@ -661,7 +661,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "AMA" @@ -706,8 +706,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -721,7 +721,7 @@ "request_ip": "[::1]", "sentAt": "2020-10-16T09:09:31.466Z", "timestamp": "2020-10-16T14:39:31.467+05:30", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "ID": "1iuTZs6eEZVMm6GjRBe6bNShaL3", @@ -741,7 +741,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "IND" @@ -786,8 +786,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -802,7 +802,7 @@ "sentAt": "2020-10-16T09:09:31.466Z", "timestamp": "2020-10-16T14:39:31.467+05:30", "type": "gone", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "ID": "1iuTZs6eEZVMm6GjRBe6bNShaL3", @@ -822,7 +822,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "IND" @@ -867,8 +867,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -983,7 +983,7 @@ "sentAt": "2020-10-16T08:10:12.783Z", "timestamp": "2020-10-16T13:40:12.791+05:30", "type": "track", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "ID": "1iuTZs6eEZVMm6GjRBe6bNShaL3", @@ -1003,7 +1003,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "US" @@ -1049,8 +1049,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -1126,7 +1126,7 @@ "sentAt": "2020-10-16T08:10:12.783Z", "timestamp": "2020-10-16T13:40:12.791+05:30", "type": "track", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "ID": "1iuTZs6eEZVMm6GjRBe6bNShaL3", @@ -1146,7 +1146,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "US" @@ -1199,8 +1199,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -1215,7 +1215,7 @@ "sentAt": "2020-10-16T08:53:29.387Z", "timestamp": "2020-10-16T14:23:29.401+05:30", "type": "identify", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "ID": "1iuTZs6eEZVMm6GjRBe6bNShaL3", @@ -1235,7 +1235,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "US" @@ -1289,8 +1289,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -1380,7 +1380,7 @@ "sentAt": "2020-10-16T08:10:12.783Z", "timestamp": "2020-10-16T13:40:12.791+05:30", "type": "track", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "ID": "1iuTZs6eEZVMm6GjRBe6bNShaL3", @@ -1400,7 +1400,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "US" @@ -1454,8 +1454,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -1547,7 +1547,7 @@ "sentAt": "2020-10-16T08:10:12.783Z", "timestamp": "2020-10-16T13:40:12.791+05:30", "type": "track", - "userId": "ruchu123" + "userId": "rudder123" }, "destination": { "ID": "1iuTZs6eEZVMm6GjRBe6bNShaL3", @@ -1567,7 +1567,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "US" @@ -1608,7 +1608,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "US" @@ -1648,7 +1648,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "US" diff --git a/test/__tests__/data/moengage_output.json b/test/__tests__/data/moengage_output.json index 33221a4f232..87559e5e6cc 100644 --- a/test/__tests__/data/moengage_output.json +++ b/test/__tests__/data/moengage_output.json @@ -7,12 +7,12 @@ "headers": { "Content-Type": "application/json", "MOE-APPKEY": "W0ZHNMPI2O4KHJ48ZILZACRA", - "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOnV1SE1uWDY2Y3RFZGpEX19iamxTQ08wTw==" + "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5" }, "params": {}, "body": { "JSON": { - "customer_id": "ruchu123", + "customer_id": "rudder123", "type": "event", "actions": [ { @@ -128,14 +128,14 @@ "JSON": { "type": "customer", "attributes": { - "name": "Ruchira Moitra", + "name": "Rudder Test", "plan": "Enterprise", - "email": "ruchira@gmail.com", + "email": "rudderTest@gmail.com", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", "company.id": "abc123", "created_time": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)" }, - "customer_id": "ruchu123" + "customer_id": "rudder123" } }, "type": "REST", @@ -146,7 +146,7 @@ "headers": { "MOE-APPKEY": "W0ZHNMPI2O4KHJ48ZILZACRA", "Content-Type": "application/json", - "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOnV1SE1uWDY2Y3RFZGpEX19iamxTQ08wTw==" + "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5" }, "version": "1", "endpoint": "https://api-01.moengage.com/v1/customer/W0ZHNMPI2O4KHJ48ZILZACRA" @@ -175,7 +175,7 @@ "headers": { "MOE-APPKEY": "W0ZHNMPI2O4KHJ48ZILZACRA", "Content-Type": "application/json", - "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOnV1SE1uWDY2Y3RFZGpEX19iamxTQ08wTw==" + "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5" }, "version": "1", "endpoint": "https://api-01.moengage.com/v1/customer/W0ZHNMPI2O4KHJ48ZILZACRA" @@ -189,14 +189,14 @@ "JSON": { "type": "customer", "attributes": { - "name": "Ruchira Moitra", + "name": "Rudder Test", "plan": "Enterprise", - "email": "ruchira@gmail.com", + "email": "rudderTest@gmail.com", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", "company.id": "abc123", "created_time": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)" }, - "customer_id": "ruchu123" + "customer_id": "rudder123" } }, "type": "REST", @@ -207,7 +207,7 @@ "headers": { "MOE-APPKEY": "W0ZHNMPI2O4KHJ48ZILZACRA", "Content-Type": "application/json", - "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOnV1SE1uWDY2Y3RFZGpEX19iamxTQ08wTw==" + "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5" }, "version": "1", "endpoint": "https://api-01.moengage.com/v1/customer/W0ZHNMPI2O4KHJ48ZILZACRA" @@ -226,7 +226,7 @@ "platform": "android", "app_version": "1.1.6" }, - "customer_id": "ruchu123" + "customer_id": "rudder123" } }, "type": "REST", @@ -237,7 +237,7 @@ "headers": { "MOE-APPKEY": "W0ZHNMPI2O4KHJ48ZILZACRA", "Content-Type": "application/json", - "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOnV1SE1uWDY2Y3RFZGpEX19iamxTQ08wTw==" + "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5" }, "version": "1", "endpoint": "https://api-01.moengage.com/v1/device/W0ZHNMPI2O4KHJ48ZILZACRA" @@ -251,14 +251,14 @@ "JSON": { "type": "customer", "attributes": { - "name": "Ruchira Moitra", + "name": "Rudder Test", "plan": "Enterprise", - "email": "ruchira@gmail.com", + "email": "rudderTest@gmail.com", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", "company.id": "abc123", "created_time": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)" }, - "customer_id": "ruchu123" + "customer_id": "rudder123" } }, "type": "REST", @@ -269,7 +269,7 @@ "headers": { "MOE-APPKEY": "W0ZHNMPI2O4KHJ48ZILZACRA", "Content-Type": "application/json", - "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOnV1SE1uWDY2Y3RFZGpEX19iamxTQ08wTw==" + "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5" }, "version": "1", "endpoint": "https://api-02.moengage.com/v1/customer/W0ZHNMPI2O4KHJ48ZILZACRA" @@ -282,14 +282,14 @@ "JSON": { "type": "customer", "attributes": { - "name": "Ruchira Moitra", + "name": "Rudder Test", "plan": "Enterprise", - "email": "ruchira@gmail.com", + "email": "rudderTest@gmail.com", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", "company.id": "abc123", "created_time": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)" }, - "customer_id": "ruchu123" + "customer_id": "rudder123" } }, "type": "REST", @@ -300,7 +300,7 @@ "headers": { "MOE-APPKEY": "W0ZHNMPI2O4KHJ48ZILZACRA", "Content-Type": "application/json", - "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOnV1SE1uWDY2Y3RFZGpEX19iamxTQ08wTw==" + "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5" }, "version": "1", "endpoint": "https://api-03.moengage.com/v1/customer/W0ZHNMPI2O4KHJ48ZILZACRA" @@ -325,12 +325,12 @@ "headers": { "Content-Type": "application/json", "MOE-APPKEY": "W0ZHNMPI2O4KHJ48ZILZACRA", - "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOnV1SE1uWDY2Y3RFZGpEX19iamxTQ08wTw==" + "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5" }, "params": {}, "body": { "JSON": { - "customer_id": "ruchu123", + "customer_id": "rudder123", "type": "event", "actions": [ { @@ -442,7 +442,7 @@ "FORM": {} }, "files": {}, - "userId": "ruchu123" + "userId": "rudder123" }, { "version": "1", @@ -452,12 +452,12 @@ "headers": { "Content-Type": "application/json", "MOE-APPKEY": "W0ZHNMPI2O4KHJ48ZILZACRA", - "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOnV1SE1uWDY2Y3RFZGpEX19iamxTQ08wTw==" + "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5" }, "params": {}, "body": { "JSON": { - "customer_id": "ruchu123", + "customer_id": "rudder123", "type": "event", "actions": [ { @@ -536,14 +536,14 @@ "JSON": { "type": "customer", "attributes": { - "name": "Ruchira Moitra", + "name": "Rudder Test", "plan": "Enterprise", - "email": "ruchira@gmail.com", + "email": "rudderTest@gmail.com", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", "company.id": "abc123", "created_time": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)" }, - "customer_id": "ruchu123" + "customer_id": "rudder123" } }, "type": "REST", @@ -554,7 +554,7 @@ "headers": { "MOE-APPKEY": "W0ZHNMPI2O4KHJ48ZILZACRA", "Content-Type": "application/json", - "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOnV1SE1uWDY2Y3RFZGpEX19iamxTQ08wTw==" + "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5" }, "version": "1", "endpoint": "https://api-01.moengage.com/v1/customer/W0ZHNMPI2O4KHJ48ZILZACRA" @@ -573,7 +573,7 @@ "platform": "iOS", "app_version": "1.1.6" }, - "customer_id": "ruchu123" + "customer_id": "rudder123" } }, "type": "REST", @@ -584,7 +584,7 @@ "headers": { "MOE-APPKEY": "W0ZHNMPI2O4KHJ48ZILZACRA", "Content-Type": "application/json", - "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOnV1SE1uWDY2Y3RFZGpEX19iamxTQ08wTw==" + "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5" }, "version": "1", "endpoint": "https://api-01.moengage.com/v1/device/W0ZHNMPI2O4KHJ48ZILZACRA" @@ -598,12 +598,12 @@ "headers": { "Content-Type": "application/json", "MOE-APPKEY": "W0ZHNMPI2O4KHJ48ZILZACRA", - "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOnV1SE1uWDY2Y3RFZGpEX19iamxTQ08wTw==" + "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5" }, "params": {}, "body": { "JSON": { - "customer_id": "ruchu123", + "customer_id": "rudder123", "device_id": "7e32188a4dab669f", "type": "event", "actions": [ @@ -690,12 +690,12 @@ "headers": { "Content-Type": "application/json", "MOE-APPKEY": "W0ZHNMPI2O4KHJ48ZILZACRA", - "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOnV1SE1uWDY2Y3RFZGpEX19iamxTQ08wTw==" + "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5" }, "params": {}, "body": { "JSON": { - "customer_id": "ruchu123", + "customer_id": "rudder123", "device_id": "7e32188a4dab669f", "type": "event", "actions": [ @@ -799,7 +799,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOnV1SE1uWDY2Y3RFZGpEX19iamxTQ08wTw==" + "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5" }, "version": "1", "endpoint": "https://api-01.moengage.com/v1/customer/merge?app_id=W0ZHNMPI2O4KHJ48ZILZACRA" diff --git a/test/__tests__/data/moengage_router_input.json b/test/__tests__/data/moengage_router_input.json index 71c15adfbe7..5adcf68eae3 100644 --- a/test/__tests__/data/moengage_router_input.json +++ b/test/__tests__/data/moengage_router_input.json @@ -35,8 +35,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -112,10 +112,10 @@ "sentAt": "2020-10-16T08:10:12.783Z", "timestamp": "2020-10-16T13:40:12.791+05:30", "type": "track", - "userId": "ruchu123" + "userId": "rudder123" }, "metadata": { - "jobId": 2 + "jobId": 1 }, "destination": { "ID": "1iuTZs6eEZVMm6GjRBe6bNShaL3", @@ -135,7 +135,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "US" @@ -180,8 +180,8 @@ "id": "abc123" }, "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", - "email": "ruchira@gmail.com", - "name": "Ruchira Moitra", + "email": "rudderTest@gmail.com", + "name": "Rudder Test", "plan": "Enterprise" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36" @@ -196,7 +196,7 @@ "sentAt": "2020-10-16T08:26:14.939Z", "timestamp": "2020-10-16T13:56:14.944+05:30", "type": "identify", - "userId": "ruchu123" + "userId": "rudder123" }, "metadata": { "jobId": 2 @@ -219,7 +219,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "US" diff --git a/test/__tests__/data/moengage_router_output.json b/test/__tests__/data/moengage_router_output.json index b8b7e517173..75874804eb9 100644 --- a/test/__tests__/data/moengage_router_output.json +++ b/test/__tests__/data/moengage_router_output.json @@ -8,12 +8,12 @@ "headers": { "Content-Type": "application/json", "MOE-APPKEY": "W0ZHNMPI2O4KHJ48ZILZACRA", - "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOnV1SE1uWDY2Y3RFZGpEX19iamxTQ08wTw==" + "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5" }, "params": {}, "body": { "JSON": { - "customer_id": "ruchu123", + "customer_id": "rudder123", "type": "event", "actions": [ { @@ -84,7 +84,11 @@ "files": {}, "userId": "4eb021e9-a2af-4926-ae82-fe996d12f3c5" }, - "metadata": [{ "jobId": 2 }], + "metadata": [ + { + "jobId": 1 + } + ], "batched": false, "statusCode": 200, "destination": { @@ -95,7 +99,9 @@ "Name": "MOENGAGE", "DisplayName": "MoEngage", "Config": { - "destConfig": { "defaultConfig": ["apiId", "apiKey", "region"] }, + "destConfig": { + "defaultConfig": ["apiId", "apiKey", "region"] + }, "excludeKeys": [], "includeKeys": [], "supportedSourceTypes": ["android", "ios", "web", "unity", "amp", "cloud", "reactnative"] @@ -103,7 +109,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "US" @@ -122,16 +128,16 @@ "headers": { "Content-Type": "application/json", "MOE-APPKEY": "W0ZHNMPI2O4KHJ48ZILZACRA", - "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOnV1SE1uWDY2Y3RFZGpEX19iamxTQ08wTw==" + "Authorization": "Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5" }, "params": {}, "body": { "JSON": { - "customer_id": "ruchu123", + "customer_id": "rudder123", "type": "customer", "attributes": { - "name": "Ruchira Moitra", - "email": "ruchira@gmail.com", + "name": "Rudder Test", + "email": "rudderTest@gmail.com", "created_time": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", "company.id": "abc123", "createdAt": "Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)", @@ -145,7 +151,11 @@ "files": {}, "userId": "4eb021e9-a2af-4926-ae82-fe996d12f3c5" }, - "metadata": [{ "jobId": 2 }], + "metadata": [ + { + "jobId": 2 + } + ], "batched": false, "statusCode": 200, "destination": { @@ -156,7 +166,9 @@ "Name": "MOENGAGE", "DisplayName": "MoEngage", "Config": { - "destConfig": { "defaultConfig": ["apiId", "apiKey", "region"] }, + "destConfig": { + "defaultConfig": ["apiId", "apiKey", "region"] + }, "excludeKeys": [], "includeKeys": [], "supportedSourceTypes": ["android", "ios", "web", "unity", "amp", "cloud", "reactnative"] @@ -164,7 +176,7 @@ }, "Config": { "apiId": "W0ZHNMPI2O4KHJ48ZILZACRA", - "apiKey": "uuHMnX66ctEdjD__bjlSCO0O", + "apiKey": "dummyApiKey", "eventDelivery": false, "eventDeliveryTS": 1602757086384, "region": "US" diff --git a/test/__tests__/data/monday.json b/test/__tests__/data/monday.json index 0feb20d374b..cec99959da7 100644 --- a/test/__tests__/data/monday.json +++ b/test/__tests__/data/monday.json @@ -19,7 +19,7 @@ "event": "create an item", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "name": "Task 1" @@ -92,7 +92,7 @@ "event": "create an item", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "name": "Task 1" @@ -166,7 +166,7 @@ "event": "create an item", "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "name": "Task 1" @@ -223,7 +223,7 @@ "event": "create an item", "type": "", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "name": "Task 1" @@ -280,7 +280,7 @@ "event": "create an item", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "name": "Task 1" @@ -337,7 +337,7 @@ "event": "create an item", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "name": "Task 1" @@ -394,7 +394,7 @@ "event": "", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "name": "Task 1" @@ -428,7 +428,7 @@ } }, "output": { - "error": "event is not present in the input payloads" + "error": "Event is a required field and should be a string" } }, { @@ -460,7 +460,7 @@ "event": "create an item", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "name": "Task 1", @@ -546,7 +546,7 @@ "event": "create an item", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "name": "Task 1", @@ -632,7 +632,7 @@ "event": "create an item", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "name": "Task 1", @@ -701,7 +701,7 @@ "event": "create an item", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "name": "", @@ -810,7 +810,7 @@ "event": "create an item", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "name": "Task 1", @@ -911,7 +911,7 @@ "event": "create an item", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "name": "", @@ -980,7 +980,7 @@ "event": "create an item", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "name": "Task 1", diff --git a/test/__tests__/data/monday_router_input.json b/test/__tests__/data/monday_router_input.json index cff03f467e0..2770d23cb2c 100644 --- a/test/__tests__/data/monday_router_input.json +++ b/test/__tests__/data/monday_router_input.json @@ -16,7 +16,7 @@ "event": "create an item", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "name": "Task 1" @@ -72,7 +72,7 @@ "event": "create an item", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "name": "Task 1", diff --git a/test/__tests__/data/monetate_input.json b/test/__tests__/data/monetate_input.json index 172b8d82a08..2b784e98ca7 100644 --- a/test/__tests__/data/monetate_input.json +++ b/test/__tests__/data/monetate_input.json @@ -750,7 +750,7 @@ "density": 2.5 }, "traits": { - "email": "arucha@mysite.com" + "email": "rudder@mysite.com" }, "userId": "user202", "library": { @@ -815,7 +815,7 @@ "density": 2.5 }, "traits": { - "email": "arucha@mysite.com" + "email": "rudder@mysite.com" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -885,7 +885,7 @@ "density": 2.5 }, "traits": { - "email": "arucha@mysite.com" + "email": "rudder@mysite.com" }, "userId": "user101", "library": { @@ -943,7 +943,7 @@ "density": 2.5 }, "traits": { - "email": "arucha@mysite.com" + "email": "rudder@mysite.com" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -1004,7 +1004,7 @@ "density": 2.5 }, "traits": { - "email": "arucha@mysite.com" + "email": "rudder@mysite.com" }, "userId": "user101", "library": { @@ -1067,7 +1067,7 @@ "density": 2.5 }, "traits": { - "email": "arucha@mysite.com" + "email": "rudder@mysite.com" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -1129,7 +1129,7 @@ "density": 2.5 }, "traits": { - "email": "arucha@mysite.com" + "email": "rudder@mysite.com" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -1201,7 +1201,7 @@ "density": 2.5 }, "traits": { - "email": "arucha@mysite.com" + "email": "rudder@mysite.com" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -1340,7 +1340,7 @@ "traits": { "city": "Bangalore", "name": "Manashi", - "email": "arucha@mysite.com", + "email": "rudder@mysite.com", "country": "India" }, "library": { @@ -1394,7 +1394,7 @@ "traits": { "city": "Bangalore", "name": "Manashi", - "email": "arucha@mysite.com", + "email": "rudder@mysite.com", "country": "India" }, "library": { @@ -1508,7 +1508,7 @@ "density": 2.5 }, "traits": { - "email": "arucha@mysite.com" + "email": "rudder@mysite.com" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -1580,7 +1580,7 @@ "density": 2.5 }, "traits": { - "email": "arucha@mysite.com" + "email": "rudder@mysite.com" }, "library": { "name": "RudderLabs JavaScript SDK", diff --git a/test/__tests__/data/monetate_router_input.json b/test/__tests__/data/monetate_router_input.json index 287428e7948..0571fac96fa 100644 --- a/test/__tests__/data/monetate_router_input.json +++ b/test/__tests__/data/monetate_router_input.json @@ -49,7 +49,7 @@ "userId": "newUser" }, "metadata": { - "jobId": 2 + "jobId": 1 }, "destination": { "Config": { diff --git a/test/__tests__/data/monetate_router_output.json b/test/__tests__/data/monetate_router_output.json index 08ad1ea27e6..14018aafc5e 100644 --- a/test/__tests__/data/monetate_router_output.json +++ b/test/__tests__/data/monetate_router_output.json @@ -43,7 +43,7 @@ }, "metadata": [ { - "jobId": 2 + "jobId": 1 } ], "batched": false, diff --git a/test/__tests__/data/mp_input.json b/test/__tests__/data/mp_input.json deleted file mode 100644 index 3eec6ea3fda..00000000000 --- a/test/__tests__/data/mp_input.json +++ /dev/null @@ -1,4433 +0,0 @@ -[ - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "name": "Contact Us", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originalTimestamp": "2020-01-24T06:29:02.358Z", - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.359Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "page", - "userId": "hjikl" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "name": "Contact Us", - "category": "Contact", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originalTimestamp": "2020-01-24T06:29:02.358Z", - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.359Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "page", - "userId": "hjikl" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "mobile", - "name": "Contact Us", - "properties": { - "category": "communication" - }, - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs Android SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originalTimestamp": "2020-01-24T06:29:02.358Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.359Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "screen", - "userId": "hjikl" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "mobile", - "name": "Contact Us", - "category": "Contact", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs Android SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originalTimestamp": "2020-01-24T06:29:02.358Z", - "properties": { - "path": "/tests/html/index2.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index2.html" - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.359Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "screen", - "userId": "hjiklmk" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "mobile", - "name": "Contact Us", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs Android SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originalTimestamp": "2020-01-24T06:29:02.358Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.359Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "screen", - "userId": "hjikl" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "useNewMapping": true - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstName": "Mickey", - "lastName": "Mouse", - "createdAt": "2020-01-23T08:54:02.362Z" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53709", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstName": "Mickey" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": "test revenue MIXPANEL", - "integrations": { - "All": true - }, - "messageId": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", - "originalTimestamp": "2020-01-24T06:29:02.364Z", - "properties": { - "currency": "USD", - "revenue": 45.89 - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53710", - "sentAt": "2020-01-24T06:29:02.364Z", - "timestamp": "2020-01-24T11:59:02.403+05:30", - "type": "track", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstname": "Mickey" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "79313729-7fe5-4204-963a-dc46f4205e4e", - "originalTimestamp": "2020-01-24T06:29:02.366Z", - "previousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53711", - "sentAt": "2020-01-24T06:29:02.366Z", - "timestamp": "2020-01-24T11:59:02.403+05:30", - "type": "alias", - "userId": "1234abc" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstName": "Mickey" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": "KM Order Completed", - "integrations": { - "All": true - }, - "messageId": "aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a", - "originalTimestamp": "2020-01-24T06:29:02.367Z", - "properties": { - "affiliation": "Google Store", - "checkout_id": "fksdjfsdjfisjf9sdfjsd9f", - "coupon": "hasbros", - "currency": "USD", - "discount": 2.5, - "order_id": "50314b8e9bcf000000000000", - "products": [ - { - "category": "Games", - "image_url": "https:///www.example.com/product/path.jpg", - "name": "Monopoly: 3rd Edition", - "price": 19, - "product_id": "507f1f77bcf86cd799439011", - "quantity": 1, - "sku": "45790-32", - "url": "https://www.example.com/product/path" - }, - { - "category": "Games", - "name": "Uno Card Game", - "price": 3, - "product_id": "505bd76785ebb509fc183733", - "quantity": 2, - "sku": "46493-32" - } - ], - "revenue": 25, - "shipping": 3, - "subtotal": 22.5, - "tax": 2, - "total": 27.5 - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53712", - "sentAt": "2020-01-24T06:29:02.368Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "track", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "first_name": "Mickey", - "lastName": "Mouse", - "name": "Mickey Mouse" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": "KM Order Completed", - "integrations": { - "All": true - }, - "messageId": "aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a", - "originalTimestamp": "2020-01-24T06:29:02.367Z", - "properties": { - "affiliation": "Google Store", - "checkout_id": "fksdjfsdjfisjf9sdfjsd9f", - "coupon": "hasbros", - "currency": "USD", - "discount": 2.5, - "order_id": "50314b8e9bcf000000000000", - "revenue": 34, - "key_1": { - "child_key1": "child_value1", - "child_key2": { - "child_key21": "child_value21", - "child_key22": "child_value22" - } - }, - "products": [ - { - "category": "Games", - "image_url": "https:///www.example.com/product/path.jpg", - "name": "Monopoly: 3rd Edition", - "price": 19, - "product_id": "507f1f77bcf86cd799439011", - "quantity": 1, - "sku": "45790-32", - "url": "https://www.example.com/product/path" - }, - { - "category": "Games", - "name": "Uno Card Game", - "price": 3, - "product_id": "505bd76785ebb509fc183733", - "quantity": 2, - "sku": "46493-32" - } - ], - "shipping": 3, - "subtotal": 22.5, - "tax": 2, - "total": 27.5 - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53712", - "sentAt": "2020-01-24T06:29:02.368Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "track", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstName": "Mickey" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": " new Order Completed totally", - "integrations": { - "All": true - }, - "messageId": "aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a", - "originalTimestamp": "2020-01-24T06:29:02.367Z", - "properties": { - "affiliation": "Google Store", - "checkout_id": "fksdjfsdjfisjf9sdfjsd9f", - "coupon": "hasbros", - "currency": "USD", - "discount": 2.5, - "total": 23, - "order_id": "50314b8e9bcf000000000000", - "key_1": { - "child_key1": "child_value1", - "child_key2": { - "child_key21": "child_value21", - "child_key22": "child_value22" - } - }, - "products": [ - { - "category": "Games", - "image_url": "https:///www.example.com/product/path.jpg", - "name": "Monopoly: 3rd Edition", - "price": 19, - "product_id": "507f1f77bcf86cd799439011", - "quantity": 1, - "sku": "45790-32", - "url": "https://www.example.com/product/path" - }, - { - "category": "Games", - "name": "Uno Card Game", - "price": 3, - "product_id": "505bd76785ebb509fc183733", - "quantity": 2, - "sku": "46493-32" - } - ], - "shipping": 3, - "subtotal": 22.5, - "tax": 2 - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53712", - "sentAt": "2020-01-24T06:29:02.368Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "track", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstName": "Mickey" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": " Order Completed ", - "integrations": { - "All": true - }, - "messageId": "aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a", - "originalTimestamp": "2020-01-24T06:29:02.367Z", - "properties": { - "affiliation": "Google Store", - "checkout_id": "fksdjfsdjfisjf9sdfjsd9f", - "coupon": "hasbros", - "currency": "USD", - "discount": 2.5, - "total": 23, - "order_id": "50314b8e9bcf000000000000", - "key_1": { - "child_key1": "child_value1", - "child_key2": { - "child_key21": "child_value21", - "child_key22": "child_value22" - } - }, - "products": [ - { - "category": "Games", - "image_url": "https:///www.example.com/product/path.jpg", - "name": "Monopoly: 3rd Edition", - "price": 19, - "product_id": "507f1f77bcf86cd799439011", - "quantity": 1, - "sku": "45790-32", - "url": "https://www.example.com/product/path" - }, - { - "category": "Games", - "name": "Uno Card Game", - "price": 3, - "product_id": "505bd76785ebb509fc183733", - "quantity": 2, - "sku": "46493-32" - } - ], - "shipping": 3, - "subtotal": 22.5, - "tax": 2, - "Billing Amount": "77" - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53712", - "sentAt": "2020-01-24T06:29:02.368Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "track" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "mobile", - "name": "Contact Us", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs Android SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originalTimestamp": "2020-01-24T06:29:02.358Z", - "properties": { - "path": "/tests/html/index2.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index2.html" - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.359Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "group", - "userId": "hjikl" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstName": "Mickey" - }, - "integrations": { - "All": true - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53709", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "groupKeySettings": [ - { - "groupKey": "company" - } - ] - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "mobile", - "name": "Contact Us", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs Android SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originalTimestamp": "2020-01-24T06:29:02.358Z", - "properties": { - "path": "/tests/html/index2.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index2.html" - }, - "traits": { - "company": "testComp" - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.359Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "group", - "userId": "hjikl" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "groupKeySettings": [ - { - "groupKey": "company" - } - ] - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "mobile", - "name": "Contact Us", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs Android SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originalTimestamp": "2020-01-24T06:29:02.358Z", - "properties": { - "path": "/tests/html/index2.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index2.html" - }, - "traits": { - "company": ["testComp", "testComp1"] - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.359Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "group", - "userId": "hjikl" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "usenativesdk": false, - "dataResidency": "eu", - "groupKeySettings": [ - { - "groupKey": "company" - } - ] - }, - "destinationdefinition": { - "displayname": "kiss metrics", - "id": "1whbsz6ua3h5chvifhpfl2h6sie", - "name": "mixpanel" - }, - "enabled": true, - "id": "1whcocggj9aszu850hvugu2c3aq", - "name": "kiss metrics", - "transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "mobile", - "name": "contact us", - "context": { - "app": { - "build": "1.0.0", - "name": "rudderlabs android sdk", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "rudderlabs javascript sdk", - "version": "1.0.5" - }, - "locale": "en-gb", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "useragent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.117 safari/537.36" - }, - "integrations": { - "all": true - }, - "messageid": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originaltimestamp": "2020-01-24t06:29:02.358z", - "traits": { - "company": "testComp" - }, - "properties": { - "path": "/tests/html/index2.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index2.html" - }, - "receivedat": "2020-01-24t11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentat": "2020-01-24t06:29:02.359z", - "timestamp": "2020-01-24t11:59:02.402+05:30", - "type": "group", - "userId": "hjikl" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "dataResidency": "eu", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstname": "Mickey", - "lastname": "Mouse" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": "KM Order Completed", - "integrations": { - "All": true - }, - "messageId": "aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a", - "originalTimestamp": "2020-01-24T06:29:02.367Z", - "properties": { - "affiliation": "Google Store", - "checkout_id": "fksdjfsdjfisjf9sdfjsd9f", - "coupon": "hasbros", - "currency": "USD", - "discount": 2.5, - "order_id": "50314b8e9bcf000000000000", - "products": [ - { - "category": "Games", - "image_url": "https:///www.example.com/product/path.jpg", - "name": "Monopoly: 3rd Edition", - "price": 19, - "product_id": "507f1f77bcf86cd799439011", - "quantity": 1, - "sku": "45790-32", - "url": "https://www.example.com/product/path" - }, - { - "category": "Games", - "name": "Uno Card Game", - "price": 3, - "product_id": "505bd76785ebb509fc183733", - "quantity": 2, - "sku": "46493-32" - } - ], - "revenue": 25, - "shipping": 3, - "subtotal": 22.5, - "tax": 2, - "total": 27.5 - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53712", - "sentAt": "2020-01-24T06:29:02.368Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "track", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "dataResidency": "eu", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "5094f5704b9cf2b3", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "LeanPlumIntegrationAndroid", - "namespace": "com.android.SampleLeanPlum", - "version": "1.0" - }, - "device": { - "id": "5094f5704b9cf2b3", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android", - "token": "test_device_token" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.1-beta.1" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "8.1.0" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5094f5704b9cf2b3" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)" - }, - "event": "MainActivity", - "integrations": { - "All": true - }, - "messageId": "id2", - "properties": { - "name": "MainActivity", - "automatic": true - }, - "originalTimestamp": "2020-03-12T09:05:03.421Z", - "type": "identify", - "sentAt": "2020-03-12T09:05:13.042Z" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "apiSecret": "some_api_secret", - "prefixProperties": true, - "dataResidency": "eu", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "5094f5704b9cf2b3", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "LeanPlumIntegrationAndroid", - "namespace": "com.android.SampleLeanPlum", - "version": "1.0" - }, - "device": { - "id": "5094f5704b9cf2b3", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "ios", - "token": "test_device_token" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.1-beta.1" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "8.1.0" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5094f5704b9cf2b3", - "userId": "test_user_id" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)" - }, - "event": "MainActivity", - "integrations": { - "All": true - }, - "userId": "test_user_id", - "messageId": "id2", - "properties": { - "name": "MainActivity", - "automatic": true - }, - "originalTimestamp": "2020-03-12T09:05:03.421Z", - "type": "identify", - "sentAt": "2020-03-12T09:05:13.042Z" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "name": "Contact Us", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originalTimestamp": "2020-01-24T06:29:02.358Z", - "properties": { - "path": "/tests/html/index2.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index2.html", - "category": "communication" - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.359Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "page" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "lastname": "Mickey", - "firstName": "Mouse" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "79313729-7fe5-4204-963a-dc46f4205e4e", - "originalTimestamp": "2020-01-24T06:29:02.366Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53711", - "sentAt": "2020-01-24T06:29:02.366Z", - "timestamp": "2020-01-24T11:59:02.403+05:30", - "type": "alias", - "userId": "1234abc" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "apiSecret": "some_api_secret", - "prefixProperties": true, - "dataResidency": "eu", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "5094f5704b9cf2b3", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "LeanPlumIntegrationAndroid", - "namespace": "com.android.SampleLeanPlum", - "version": "1.0" - }, - "device": { - "id": "5094f5704b9cf2b3", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "tvos", - "token": "test_device_token" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.1-beta.1" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5094f5704b9cf2b3", - "userId": "test_user_id", - "createdat": "2020-01-23T08:54:02.362Z" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)" - }, - "event": "MainActivity", - "integrations": { - "All": true - }, - "userId": "test_user_id", - "messageId": "id2", - "properties": { - "name": "MainActivity", - "automatic": true - }, - "originalTimestamp": "2020-03-12T09:05:03.421Z", - "type": "identify", - "sentAt": "2020-03-12T09:05:13.042Z" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "first_name": "Mickey", - "last_name": "Mouse" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": "KM Order Completed", - "integrations": { - "All": true - }, - "messageId": "aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a", - "originalTimestamp": "2020-01-24T06:29:02.367Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53712", - "sentAt": "2020-01-24T06:29:02.368Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "first_name": "Mickey" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": "KM Order Completed", - "integrations": { - "All": true - }, - "messageId": "aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a", - "originalTimestamp": "2020-01-24T06:29:02.367Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53712", - "sentAt": "2020-01-24T06:29:02.368Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "address": { - "city": "Disney", - "country": "USA", - "state": "US" - }, - "email": "mickey@disney.com", - "first_name": "Mickey", - "last_name": "Mouse", - "name": "Mickey Mouse" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": "KM Order Completed", - "integrations": { - "All": true - }, - "messageId": "aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a", - "originalTimestamp": "2020-01-24T06:29:02.367Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53712", - "sentAt": "2020-01-24T06:29:02.368Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "first_name": "Mickey" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": "KM Order Completed", - "integrations": { - "All": true - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "last_name": "Mouse" - }, - "messageId": "aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a", - "originalTimestamp": "2020-01-24T06:29:02.367Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53712", - "sentAt": "2020-01-24T06:29:02.368Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "useNewMapping": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "first_name": "Mickey", - "last_name": "Mouse" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": "KM Order Completed", - "integrations": { - "All": true - }, - "traits": { - "name": "Mouse" - }, - "messageId": "aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a", - "originalTimestamp": "2020-01-24T06:29:02.367Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53712", - "sentAt": "2020-01-24T06:29:02.368Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "useNewMapping": true - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "first_name": "Mickey", - "last_name": "Mouse" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": "KM Order Completed", - "integrations": { - "All": true - }, - "messageId": "aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a", - "originalTimestamp": "2020-01-24T06:29:02.367Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53712", - "sentAt": "2020-01-24T06:29:02.368Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "useNewMapping": true - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "first_name": "Mickey" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": "KM Order Completed", - "integrations": { - "All": true - }, - "messageId": "aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a", - "originalTimestamp": "2020-01-24T06:29:02.367Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53712", - "sentAt": "2020-01-24T06:29:02.368Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "useNewMapping": true - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "address": { - "city": "Disney", - "country": "USA", - "state": "US" - }, - "email": "mickey@disney.com", - "first_name": "Mickey", - "last_name": "Mouse", - "name": "Mickey Mouse" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": "KM Order Completed", - "integrations": { - "All": true - }, - "messageId": "aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a", - "originalTimestamp": "2020-01-24T06:29:02.367Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53712", - "sentAt": "2020-01-24T06:29:02.368Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "useNewMapping": true - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "first_name": "Mickey" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": "KM Order Completed", - "integrations": { - "All": true - }, - "traits": { - "city": "Disney", - "country": "USA", - "address": "1 Government Dr, St. Louis, MO 63110, United States", - "email": "mickey@disney.com", - "last_name": "Mouse" - }, - "messageId": "aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a", - "originalTimestamp": "2020-01-24T06:29:02.367Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53712", - "sentAt": "2020-01-24T06:29:02.368Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "useNewMapping": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "type": "track", - "event": "FirstTrackCall12", - "sentAt": "2021-09-30T07:15:23.523Z", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.18", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_testingTool/", - "path": "/Testing/App_for_testingTool/", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_testingTool/", - "referrer": "http://127.0.0.1:7307/Testing/", - "initial_referrer": "http://127.0.0.1:7307/Testing/", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "127.0.0.1:7307" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 590, - "innerHeight": 665 - }, - "traits": { - "anonymousId": "ea776ad0-3136-44fb-9216-5b1578609a2b", - "userId": "as09sufa09usaf09as0f9uasf", - "id": "as09sufa09usaf09as0f9uasf", - "firstName": "Bob", - "lastName": "Marley", - "name": "Bob Marley", - "age": 43, - "email": "bob@marleymail.com", - "phone": "+447748544123", - "birthday": "1987-01-01T20:08:59+0000", - "createdAt": "2022-01-21T14:10:12+0000", - "address": "51,B.L.T road, Kolkata-700060", - "description": "I am great", - "gender": "male", - "title": "Founder", - "username": "bobm", - "website": "https://bobm.com", - "randomProperty": "randomValue" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.18" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36" - }, - "rudderId": "294702c7-8732-4fb3-b39f-f3bdffe1aa88", - "messageId": "0d5c1a4a-27e4-41da-a246-4d01f44e74bd", - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "properties": { - "foo": "bar", - "$deviceId": "nkasdnkasd" - }, - "anonymousId": "1dbb5784-b8e2-4074-8644-9920145b7ae5", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-09-30T07:15:23.523Z" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "useNewMapping": true - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "type": "track", - "event": "FirstTrackCall12", - "sentAt": "2021-09-30T07:15:23.523Z", - "channel": "web", - "context": { - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.18", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/App_for_testingTool/", - "path": "/Testing/App_for_testingTool/", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/App_for_testingTool/", - "referrer": "http://127.0.0.1:7307/Testing/", - "initial_referrer": "http://127.0.0.1:7307/Testing/", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "127.0.0.1:7307" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 590, - "innerHeight": 665 - }, - "traits": { - "anonymousId": "ea776ad0-3136-44fb-9216-5b1578609a2b", - "userId": "as09sufa09usaf09as0f9uasf", - "id": "as09sufa09usaf09as0f9uasf", - "firstName": "Bob", - "lastName": "Marley", - "name": "Bob Marley", - "age": 43, - "email": "bob@marleymail.com", - "phone": "+447748544123", - "birthday": "1987-01-01T20:08:59+0000", - "createdAt": "2022-01-21T14:10:12+0000", - "address": "51,B.L.T road, Kolkata-700060", - "description": "I am great", - "gender": "male", - "title": "Founder", - "username": "bobm", - "website": "https://bobm.com", - "randomProperty": "randomValue" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.18" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36" - }, - "rudderId": "294702c7-8732-4fb3-b39f-f3bdffe1aa88", - "messageId": "0d5c1a4a-27e4-41da-a246-4d01f44e74bd", - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "properties": { - "foo": "bar", - "$deviceId": "nkasdnkasd" - }, - "anonymousId": "1dbb5784-b8e2-4074-8644-9920145b7ae5", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-09-30T07:15:23.523Z", - "timestamp": "2012-09-30T07:15:23.523Z" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "apiSecret": "some_api_secret", - "prefixProperties": true, - "dataResidency": "eu", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "5094f5704b9cf2b3", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "LeanPlumIntegrationAndroid", - "namespace": "com.android.SampleLeanPlum", - "version": "1.0" - }, - "device": { - "id": "5094f5704b9cf2b3", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "ios", - "token": "test_device_token" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.1-beta.1" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "8.1.0" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5094f5704b9cf2b3", - "userId": "test_user_id" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)" - }, - "event": "MainActivity", - "integrations": { - "All": true - }, - "userId": "test_user_id", - "messageId": "id2", - "properties": { - "name": "MainActivity", - "automatic": true - }, - "originalTimestamp": "2020-03-12T09:05:03.421Z", - "type": "track", - "sentAt": "2020-03-12T09:05:13.042Z", - "timestamp": "2018-03-12T09:05:03.421Z" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "apiSecret": "someApiSecret", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstname": "Mickey" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "79313729-7fe5-4204-963a-dc46f4205e4e", - "originalTimestamp": "2020-01-24T06:29:02.366Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53711", - "sentAt": "2020-01-24T06:29:02.366Z", - "type": "alias", - "userId": "1234abc" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "apiSecret": "someApiSecret", - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstname": "Mickey" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "79313729-7fe5-4204-963a-dc46f4205e4e", - "originalTimestamp": "2020-01-24T06:29:02.366Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53711", - "sentAt": "2020-01-24T06:29:02.366Z", - "type": "test", - "userId": "1234abc" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "useNewMapping": true - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "active": false, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstName": "Mickey", - "lastName": "Mouse", - "createdAt": "2020-01-23T08:54:02.362Z" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53709", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "useNewMapping": true - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "active": true, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstName": "Mickey", - "lastName": "Mouse", - "createdAt": "2020-01-23T08:54:02.362Z" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53709", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "useNewMapping": true - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "location": { - "geoSource": "abc" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstName": "Mickey", - "lastName": "Mouse", - "createdAt": "2020-01-23T08:54:02.362Z" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53709", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "serviceAccountUserName": "rudder.d2a3f1.mp-service-account", - "serviceAccountSecret": "jatpQxcjMh8eetk1xrH3KjQIbzy4iX8b", - "projectId": "123456", - "prefixProperties": true, - "useNativeSDK": false, - "useNewMapping": true - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "active": true, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstName": "Mickey", - "lastName": "Mouse", - "createdAt": "2020-01-23T08:54:02.362Z" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53709", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "user1234" - } - }, - { - "message": { - "type": "track", - "event": "Application Installed", - "sentAt": "2022-09-05T07:46:26.322Z", - "channel": "mobile", - "context": { - "os": { - "name": "Android", - "version": "12" - }, - "app": { - "name": "Sample Kotlin", - "build": "4", - "version": "1.0", - "namespace": "com.example.testapp1mg" - }, - "device": { - "id": "39da706ec83d0e90", - "name": "emu64a", - "type": "Android", - "model": "sdk_gphone64_arm64", - "manufacturer": "Google" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 2984, - "density": 560 - }, - "traits": { - "anonymousId": "39da706ec83d0e90" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.7.0" - }, - "network": { - "wifi": true, - "carrier": "T-Mobile", - "cellular": true, - "bluetooth": true - }, - "timezone": "Asia/Kolkata", - "sessionId": 1662363980, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android Tiramisu Build/TPP2.220218.008)", - "sessionStart": true - }, - "rudderId": "3ef1dec3-d729-4830-a394-7b8be6819765", - "messageId": "1662363980287-168cf720-6227-4b56-a98e-c49bdc7279e9", - "properties": { - "build": 4, - "version": "1.0" - }, - "anonymousId": "39da706ec83d0e90", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-09-05T07:46:20.290Z" - }, - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "apiSecret": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "useNewMapping": true - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - } - }, - { - "message": { - "type": "track", - "event": "Application Opened", - "sentAt": "2022-09-05T07:46:26.322Z", - "channel": "mobile", - "context": { - "os": { - "name": "Android", - "version": "12" - }, - "app": { - "name": "Sample Kotlin", - "build": "4", - "version": "1.0", - "namespace": "com.example.testapp1mg" - }, - "device": { - "id": "39da706ec83d0e90", - "name": "emu64a", - "type": "Android", - "model": "sdk_gphone64_arm64", - "manufacturer": "Google" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 2984, - "density": 560 - }, - "traits": { - "anonymousId": "39da706ec83d0e90" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.7.0" - }, - "network": { - "wifi": true, - "carrier": "T-Mobile", - "cellular": true, - "bluetooth": true - }, - "timezone": "Asia/Kolkata", - "sessionId": "1662363980", - "userAgent": "Dalvik/2.1.0 (Linux; U; Android Tiramisu Build/TPP2.220218.008)", - "sessionStart": true - }, - "rudderId": "3ef1dec3-d729-4830-a394-7b8be6819765", - "messageId": "1662363980287-168cf720-6227-4b56-a98e-c49bdc7279e9", - "properties": { - "build": 4, - "version": "1.0" - }, - "anonymousId": "39da706ec83d0e90", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-09-05T07:46:20.290Z" - }, - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "apiSecret": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "useNewMapping": true - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "groupKeySettings": [ - { - "groupKey": "groupId" - } - ] - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "mobile", - "name": "Contact Us", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs Android SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originalTimestamp": "2020-01-24T06:29:02.358Z", - "properties": { - "path": "/tests/html/index2.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index2.html" - }, - "traits": { - "company": "testComp", - "groupId": "groupIdInTraits" - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.359Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "group", - "userId": "hjikl", - "groupId": "testGroupId" - } - }, - { - "description": "Track: set device id and user id when simplified id merge api is selected", - "destination": { - "Config": { - "apiKey": "apiKey123", - "token": "apiToken123", - "prefixProperties": true, - "identityMergeApi": "simplified" - } - }, - "message": { - "anonymousId": "anonId01", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "LeanPlumIntegrationAndroid", - "namespace": "com.android.SampleLeanPlum", - "version": "1.0" - }, - "device": { - "id": "5094f5704b9cf2b3", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "ios", - "token": "test_device_token" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.1-beta.1" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "8.1.0" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)" - }, - "event": "Product Viewed", - "integrations": { - "All": true - }, - "userId": "userId01", - "messageId": "id2", - "properties": { - "name": "T-Shirt" - }, - "type": "track", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30" - } - }, - { - "description": "Identify: skip merge event when simplified id merge api is selected", - "destination": { - "Config": { - "apiKey": "apiKey123", - "token": "apiToken123", - "prefixProperties": true, - "identityMergeApi": "simplified" - } - }, - "message": { - "anonymousId": "anonId01", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstName": "Mickey", - "lastName": "Mouse", - "createdAt": "2020-01-23T08:54:02.362Z" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53709", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "userId01" - } - }, - { - "description": "Identify: append $device: to deviceId while creating the user when simplified id merge api is selected", - "destination": { - "Config": { - "apiKey": "apiKey123", - "token": "apiToken123", - "identityMergeApi": "simplified" - } - }, - "message": { - "anonymousId": "anonId01", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstName": "Mickey", - "lastName": "Mouse", - "createdAt": "2020-01-23T08:54:02.362Z" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53709", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify" - } - }, - { - "description": "Unsupported alias call when simplified id merge api is selected", - "destination": { - "Config": { - "apiKey": "apiKey123", - "token": "apiToken123", - "identityMergeApi": "simplified" - } - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstname": "Mickey" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "79313729-7fe5-4204-963a-dc46f4205e4e", - "originalTimestamp": "2020-01-24T06:29:02.366Z", - "previousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53711", - "sentAt": "2020-01-24T06:29:02.366Z", - "timestamp": "2020-01-24T11:59:02.403+05:30", - "type": "alias", - "userId": "1234abc" - } - }, - { - "description": "Track revenue event: set device id and user id when simplified id merge api is selected", - "destination": { - "Config": { - "apiKey": "apiKey123", - "token": "apiToken123", - "prefixProperties": true, - "identityMergeApi": "simplified" - } - }, - "message": { - "anonymousId": "anonId01", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstName": "Mickey" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "event": "test revenue MIXPANEL", - "integrations": { - "All": true - }, - "messageId": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", - "originalTimestamp": "2020-01-24T06:29:02.364Z", - "properties": { - "currency": "USD", - "revenue": 18.9 - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53710", - "sentAt": "2020-01-24T06:29:02.364Z", - "timestamp": "2020-01-24T11:59:02.403+05:30", - "type": "track", - "userId": "userId01" - } - }, - { - "description": "Page with anonymous user when simplified api is selected", - "destination": { - "Config": { - "apiKey": "apiKey123", - "token": "apiToken123", - "identityMergeApi": "simplified" - } - }, - "message": { - "anonymousId": "anonId01", - "channel": "web", - "name": "Contact Us", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originalTimestamp": "2020-01-24T06:29:02.358Z", - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.359Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "page" - } - }, - { - "description": "Group call with anonymous user when simplified api is selected", - "destination": { - "Config": { - "apiKey": "apiKey123", - "token": "apiToken123", - "identityMergeApi": "simplified", - "groupKeySettings": [ - { - "groupKey": "company" - } - ] - } - }, - "message": { - "anonymousId": "anonId01", - "channel": "mobile", - "name": "Contact Us", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs Android SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originalTimestamp": "2020-01-24T06:29:02.358Z", - "properties": { - "path": "/tests/html/index2.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index2.html" - }, - "traits": { - "company": "testComp" - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.359Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "group" - } - }, - { - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "groupKeySettings": [ - { - "groupKey": "company" - } - ] - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "mobile", - "name": "Contact Us", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs Android SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originalTimestamp": "2020-01-24T06:29:02.358Z", - "properties": { - "path": "/tests/html/index2.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index2.html" - }, - "traits": {}, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.359Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "group", - "userId": "hjikl" - } - }, - { - "message": { - "type": "track", - "event": "Application Installed", - "sentAt": "2022-09-05T07:46:26.322Z", - "channel": "mobile", - "timestamp": "", - "context": { - "os": { - "name": "Android", - "version": "12" - }, - "app": { - "name": "Sample Kotlin", - "build": "4", - "version": "1.0", - "namespace": "com.example.testapp1mg" - }, - "device": { - "id": "39da706ec83d0e90", - "name": "emu64a", - "type": "Android", - "model": "sdk_gphone64_arm64", - "manufacturer": "Google" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 2984, - "density": 560 - }, - "traits": { - "anonymousId": "39da706ec83d0e90" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.7.0" - }, - "network": { - "wifi": true, - "carrier": "T-Mobile", - "cellular": true, - "bluetooth": true - }, - "timezone": "Asia/Kolkata", - "sessionId": 1662363980, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android Tiramisu Build/TPP2.220218.008)", - "sessionStart": true - }, - "rudderId": "3ef1dec3-d729-4830-a394-7b8be6819765", - "messageId": "1662363980287-168cf720-6227-4b56-a98e-c49bdc7279e9", - "properties": { - "build": 4, - "version": "1.0", - "revenue": 12.13 - }, - "anonymousId": "39da706ec83d0e90", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-09-05T07:46:20.290Z" - }, - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "apiSecret": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "useNewMapping": true - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - } - }, - { - "message": { - "type": "track", - "event": "Application Installed", - "sentAt": "2022-09-05T07:46:26.322Z", - "channel": "mobile", - "timestamp": "safaff", - "context": { - "os": { - "name": "Android", - "version": "12" - }, - "app": { - "name": "Sample Kotlin", - "build": "4", - "version": "1.0", - "namespace": "com.example.testapp1mg" - }, - "device": { - "id": "39da706ec83d0e90", - "name": "emu64a", - "type": "Android", - "model": "sdk_gphone64_arm64", - "manufacturer": "Google" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 2984, - "density": 560 - }, - "traits": { - "anonymousId": "39da706ec83d0e90" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.7.0" - }, - "network": { - "wifi": true, - "carrier": "T-Mobile", - "cellular": true, - "bluetooth": true - }, - "timezone": "Asia/Kolkata", - "sessionId": 1662363980, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android Tiramisu Build/TPP2.220218.008)", - "sessionStart": true - }, - "rudderId": "3ef1dec3-d729-4830-a394-7b8be6819765", - "messageId": "1662363980287-168cf720-6227-4b56-a98e-c49bdc7279e9", - "properties": { - "build": 4, - "version": "1.0", - "revenue": 23.45 - }, - "anonymousId": "39da706ec83d0e90", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-09-05T07:46:20.290Z" - }, - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "apiSecret": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false, - "useNewMapping": true - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - } - }, - { - "description": "Track: with strict mode enabled", - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "apiSecret": "some_api_secret", - "prefixProperties": true, - "dataResidency": "eu", - "useNativeSDK": false, - "strictMode": true - }, - "DestinationDefinition": { - "DisplayName": "Mixpanel", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MP" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Mixpanel", - "Transformations": [] - }, - "message": { - "anonymousId": "5094f5704b9cf2b3", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "LeanPlumIntegrationAndroid", - "namespace": "com.android.SampleLeanPlum", - "version": "1.0" - }, - "device": { - "id": "5094f5704b9cf2b3", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "ios", - "token": "test_device_token" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.1-beta.1" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "8.1.0" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5094f5704b9cf2b3", - "userId": "test_user_id" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)" - }, - "event": "MainActivity", - "integrations": { - "All": true - }, - "userId": "test_user_id", - "messageId": "id2", - "properties": { - "name": "MainActivity", - "automatic": true - }, - "originalTimestamp": "2020-03-12T09:05:03.421Z", - "type": "identify", - "sentAt": "2020-03-12T09:05:13.042Z" - } - }, - { - "description": "Alias: with same previousId and userId", - "destination": { - "Config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "token": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - }, - "DestinationDefinition": { - "DisplayName": "Kiss Metrics", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MIXPANEL" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Kiss Metrics", - "Transformations": [] - }, - "message": { - "anonymousId": "test_anonymous_id", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "lastname": "Mickey", - "firstName": "Mouse" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "79313729-7fe5-4204-963a-dc46f4205e4e", - "originalTimestamp": "2020-01-24T06:29:02.366Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53711", - "sentAt": "2020-01-24T06:29:02.366Z", - "timestamp": "2020-01-24T11:59:02.403+05:30", - "type": "alias", - "userId": "test_user_id", - "previousId": "test_user_id" - } - } -] diff --git a/test/__tests__/data/mp_output.json b/test/__tests__/data/mp_output.json deleted file mode 100644 index f1936d10abe..00000000000 --- a/test/__tests__/data/mp_output.json +++ /dev/null @@ -1,1296 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/track/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"Loaded a Page\",\"properties\":{\"ip\":\"0.0.0.0\",\"$user_id\":\"hjikl\",\"$current_url\":\"https://docs.rudderstack.com/destinations/mixpanel\",\"$screen_dpi\":2,\"mp_lib\":\"RudderLabs JavaScript SDK\",\"$app_build_number\":\"1.0.0\",\"$app_version_string\":\"1.0.5\",\"$insert_id\":\"dd266c67-9199-4a52-ba32-f46ddde67312\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"distinct_id\":\"hjikl\",\"time\":1579847342,\"name\":\"Contact Us\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "hjikl" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/track/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"Loaded a Page\",\"properties\":{\"ip\":\"0.0.0.0\",\"$user_id\":\"hjikl\",\"$current_url\":\"https://docs.rudderstack.com/destinations/mixpanel\",\"$screen_dpi\":2,\"mp_lib\":\"RudderLabs JavaScript SDK\",\"$app_build_number\":\"1.0.0\",\"$app_version_string\":\"1.0.5\",\"$insert_id\":\"dd266c67-9199-4a52-ba32-f46ddde67312\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"distinct_id\":\"hjikl\",\"time\":1579847342,\"name\":\"Contact Us\",\"category\":\"Contact\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "hjikl" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/track/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"Loaded a Screen\",\"properties\":{\"category\":\"communication\",\"ip\":\"0.0.0.0\",\"$user_id\":\"hjikl\",\"$screen_dpi\":2,\"mp_lib\":\"RudderLabs JavaScript SDK\",\"$app_build_number\":\"1.0.0\",\"$app_version_string\":\"1.0.5\",\"$insert_id\":\"dd266c67-9199-4a52-ba32-f46ddde67312\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"distinct_id\":\"hjikl\",\"time\":1579847342,\"name\":\"Contact Us\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "hjikl" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/track/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"Loaded a Screen\",\"properties\":{\"path\":\"/tests/html/index2.html\",\"referrer\":\"\",\"search\":\"\",\"title\":\"\",\"url\":\"http://localhost/tests/html/index2.html\",\"ip\":\"0.0.0.0\",\"$user_id\":\"hjiklmk\",\"$screen_dpi\":2,\"mp_lib\":\"RudderLabs Android SDK\",\"$app_build_number\":\"1.0.0\",\"$app_version_string\":\"1.0.5\",\"$insert_id\":\"dd266c67-9199-4a52-ba32-f46ddde67312\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"distinct_id\":\"hjiklmk\",\"time\":1579847342,\"name\":\"Contact Us\",\"category\":\"Contact\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "hjiklmk" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/track/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"Loaded a Screen\",\"properties\":{\"ip\":\"0.0.0.0\",\"$user_id\":\"hjikl\",\"$screen_dpi\":2,\"mp_lib\":\"RudderLabs JavaScript SDK\",\"$app_build_number\":\"1.0.0\",\"$app_version_string\":\"1.0.5\",\"$insert_id\":\"dd266c67-9199-4a52-ba32-f46ddde67312\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"distinct_id\":\"hjikl\",\"time\":1579847342,\"name\":\"Contact Us\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "hjikl" - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$created\":\"2020-01-23T08:54:02.362Z\",\"$email\":\"mickey@disney.com\",\"$first_name\":\"Mickey\",\"$last_name\":\"Mouse\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$name\":\"Mickey Mouse\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"$ip\":\"0.0.0.0\",\"$time\":1579847342}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$append\":{\"$transactions\":{\"$time\":\"2020-01-24T06:29:02.403Z\",\"$amount\":45.89}},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\"}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/track/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"test revenue MIXPANEL\",\"properties\":{\"currency\":\"USD\",\"revenue\":45.89,\"city\":\"Disney\",\"country\":\"USA\",\"email\":\"mickey@disney.com\",\"firstName\":\"Mickey\",\"ip\":\"0.0.0.0\",\"$current_url\":\"https://docs.rudderstack.com/destinations/mixpanel\",\"$screen_dpi\":2,\"mp_lib\":\"RudderLabs JavaScript SDK\",\"$app_build_number\":\"1.0.0\",\"$app_version_string\":\"1.0.5\",\"$insert_id\":\"a6a0ad5a-bd26-4f19-8f75-38484e580fc7\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"time\":1579847342,\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/track/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"$create_alias\",\"properties\":{\"distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"alias\":\"1234abc\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "1234abc" - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$append\":{\"$transactions\":{\"$time\":\"2020-01-24T06:29:02.402Z\",\"$amount\":25}},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\"}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/track/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"KM Order Completed\",\"properties\":{\"affiliation\":\"Google Store\",\"checkout_id\":\"fksdjfsdjfisjf9sdfjsd9f\",\"coupon\":\"hasbros\",\"currency\":\"USD\",\"discount\":2.5,\"order_id\":\"50314b8e9bcf000000000000\",\"products\":[{\"category\":\"Games\",\"image_url\":\"https:///www.example.com/product/path.jpg\",\"name\":\"Monopoly: 3rd Edition\",\"price\":19,\"product_id\":\"507f1f77bcf86cd799439011\",\"quantity\":1,\"sku\":\"45790-32\",\"url\":\"https://www.example.com/product/path\"},{\"category\":\"Games\",\"name\":\"Uno Card Game\",\"price\":3,\"product_id\":\"505bd76785ebb509fc183733\",\"quantity\":2,\"sku\":\"46493-32\"}],\"revenue\":25,\"shipping\":3,\"subtotal\":22.5,\"tax\":2,\"total\":27.5,\"city\":\"Disney\",\"country\":\"USA\",\"email\":\"mickey@disney.com\",\"firstName\":\"Mickey\",\"ip\":\"0.0.0.0\",\"$current_url\":\"https://docs.rudderstack.com/destinations/mixpanel\",\"$screen_dpi\":2,\"mp_lib\":\"RudderLabs JavaScript SDK\",\"$app_build_number\":\"1.0.0\",\"$app_version_string\":\"1.0.5\",\"$insert_id\":\"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"time\":1579847342,\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$append\":{\"$transactions\":{\"$time\":\"2020-01-24T06:29:02.402Z\",\"$amount\":34}},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\"}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/track/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"KM Order Completed\",\"properties\":{\"affiliation\":\"Google Store\",\"checkout_id\":\"fksdjfsdjfisjf9sdfjsd9f\",\"coupon\":\"hasbros\",\"currency\":\"USD\",\"discount\":2.5,\"order_id\":\"50314b8e9bcf000000000000\",\"revenue\":34,\"key_1\":{\"child_key1\":\"child_value1\",\"child_key2\":{\"child_key21\":\"child_value21\",\"child_key22\":\"child_value22\"}},\"products\":[{\"category\":\"Games\",\"image_url\":\"https:///www.example.com/product/path.jpg\",\"name\":\"Monopoly: 3rd Edition\",\"price\":19,\"product_id\":\"507f1f77bcf86cd799439011\",\"quantity\":1,\"sku\":\"45790-32\",\"url\":\"https://www.example.com/product/path\"},{\"category\":\"Games\",\"name\":\"Uno Card Game\",\"price\":3,\"product_id\":\"505bd76785ebb509fc183733\",\"quantity\":2,\"sku\":\"46493-32\"}],\"shipping\":3,\"subtotal\":22.5,\"tax\":2,\"total\":27.5,\"city\":\"Disney\",\"country\":\"USA\",\"email\":\"mickey@disney.com\",\"first_name\":\"Mickey\",\"lastName\":\"Mouse\",\"name\":\"Mickey Mouse\",\"ip\":\"0.0.0.0\",\"$current_url\":\"https://docs.rudderstack.com/destinations/mixpanel\",\"$screen_dpi\":2,\"mp_lib\":\"RudderLabs JavaScript SDK\",\"$app_build_number\":\"1.0.0\",\"$app_version_string\":\"1.0.5\",\"$insert_id\":\"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"time\":1579847342,\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/track/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\" new Order Completed totally\",\"properties\":{\"affiliation\":\"Google Store\",\"checkout_id\":\"fksdjfsdjfisjf9sdfjsd9f\",\"coupon\":\"hasbros\",\"currency\":\"USD\",\"discount\":2.5,\"total\":23,\"order_id\":\"50314b8e9bcf000000000000\",\"key_1\":{\"child_key1\":\"child_value1\",\"child_key2\":{\"child_key21\":\"child_value21\",\"child_key22\":\"child_value22\"}},\"products\":[{\"category\":\"Games\",\"image_url\":\"https:///www.example.com/product/path.jpg\",\"name\":\"Monopoly: 3rd Edition\",\"price\":19,\"product_id\":\"507f1f77bcf86cd799439011\",\"quantity\":1,\"sku\":\"45790-32\",\"url\":\"https://www.example.com/product/path\"},{\"category\":\"Games\",\"name\":\"Uno Card Game\",\"price\":3,\"product_id\":\"505bd76785ebb509fc183733\",\"quantity\":2,\"sku\":\"46493-32\"}],\"shipping\":3,\"subtotal\":22.5,\"tax\":2,\"city\":\"Disney\",\"country\":\"USA\",\"email\":\"mickey@disney.com\",\"firstName\":\"Mickey\",\"ip\":\"0.0.0.0\",\"$current_url\":\"https://docs.rudderstack.com/destinations/mixpanel\",\"$screen_dpi\":2,\"mp_lib\":\"RudderLabs JavaScript SDK\",\"$app_build_number\":\"1.0.0\",\"$app_version_string\":\"1.0.5\",\"$insert_id\":\"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"time\":1579847342,\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/track/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\" Order Completed \",\"properties\":{\"affiliation\":\"Google Store\",\"checkout_id\":\"fksdjfsdjfisjf9sdfjsd9f\",\"coupon\":\"hasbros\",\"currency\":\"USD\",\"discount\":2.5,\"total\":23,\"order_id\":\"50314b8e9bcf000000000000\",\"key_1\":{\"child_key1\":\"child_value1\",\"child_key2\":{\"child_key21\":\"child_value21\",\"child_key22\":\"child_value22\"}},\"products\":[{\"category\":\"Games\",\"image_url\":\"https:///www.example.com/product/path.jpg\",\"name\":\"Monopoly: 3rd Edition\",\"price\":19,\"product_id\":\"507f1f77bcf86cd799439011\",\"quantity\":1,\"sku\":\"45790-32\",\"url\":\"https://www.example.com/product/path\"},{\"category\":\"Games\",\"name\":\"Uno Card Game\",\"price\":3,\"product_id\":\"505bd76785ebb509fc183733\",\"quantity\":2,\"sku\":\"46493-32\"}],\"shipping\":3,\"subtotal\":22.5,\"tax\":2,\"Billing Amount\":\"77\",\"city\":\"Disney\",\"country\":\"USA\",\"email\":\"mickey@disney.com\",\"firstName\":\"Mickey\",\"ip\":\"0.0.0.0\",\"$current_url\":\"https://docs.rudderstack.com/destinations/mixpanel\",\"$screen_dpi\":2,\"mp_lib\":\"RudderLabs JavaScript SDK\",\"$app_build_number\":\"1.0.0\",\"$app_version_string\":\"1.0.5\",\"$insert_id\":\"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"time\":1579847342,\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - { - "statusCode": 400, - "message": "Group Key Settings is not configured" - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$email\":\"mickey@disney.com\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$firstName\":\"Mickey\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"$ip\":\"0.0.0.0\",\"$time\":1579847342}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"hjikl\",\"$set\":{\"company\":[\"testComp\"]},\"$ip\":\"0.0.0.0\"}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "hjikl" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/groups/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$group_key\":\"company\",\"$group_id\":\"testComp\",\"$set\":{\"company\":\"testComp\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "hjikl" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"hjikl\",\"$set\":{\"company\":[\"testComp\",\"testComp1\"]},\"$ip\":\"0.0.0.0\"}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "hjikl" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/groups/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$group_key\":\"company\",\"$group_id\":\"testComp\",\"$set\":{\"company\":[\"testComp\",\"testComp1\"]}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "hjikl" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/groups/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$group_key\":\"company\",\"$group_id\":\"testComp1\",\"$set\":{\"company\":[\"testComp\",\"testComp1\"]}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "hjikl" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api-eu.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"hjikl\",\"$set\":{\"company\":[\"testComp\"]},\"$ip\":\"0.0.0.0\"}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "hjikl" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api-eu.mixpanel.com/groups/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$group_key\":\"company\",\"$group_id\":\"testComp\",\"$set\":{\"company\":\"testComp\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "hjikl" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api-eu.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$append\":{\"$transactions\":{\"$time\":\"2020-01-24T06:29:02.402Z\",\"$amount\":25}},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\"}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api-eu.mixpanel.com/track/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"KM Order Completed\",\"properties\":{\"affiliation\":\"Google Store\",\"checkout_id\":\"fksdjfsdjfisjf9sdfjsd9f\",\"coupon\":\"hasbros\",\"currency\":\"USD\",\"discount\":2.5,\"order_id\":\"50314b8e9bcf000000000000\",\"products\":[{\"category\":\"Games\",\"image_url\":\"https:///www.example.com/product/path.jpg\",\"name\":\"Monopoly: 3rd Edition\",\"price\":19,\"product_id\":\"507f1f77bcf86cd799439011\",\"quantity\":1,\"sku\":\"45790-32\",\"url\":\"https://www.example.com/product/path\"},{\"category\":\"Games\",\"name\":\"Uno Card Game\",\"price\":3,\"product_id\":\"505bd76785ebb509fc183733\",\"quantity\":2,\"sku\":\"46493-32\"}],\"revenue\":25,\"shipping\":3,\"subtotal\":22.5,\"tax\":2,\"total\":27.5,\"city\":\"Disney\",\"country\":\"USA\",\"email\":\"mickey@disney.com\",\"firstname\":\"Mickey\",\"lastname\":\"Mouse\",\"ip\":\"0.0.0.0\",\"$current_url\":\"https://docs.rudderstack.com/destinations/mixpanel\",\"$screen_dpi\":2,\"mp_lib\":\"RudderLabs JavaScript SDK\",\"$app_build_number\":\"1.0.0\",\"$app_version_string\":\"1.0.5\",\"$insert_id\":\"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"time\":1579847342,\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api-eu.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$carrier\":\"Android\",\"$manufacturer\":\"Google\",\"$model\":\"Android SDK built for x86\",\"$screen_height\":1794,\"$screen_width\":1080,\"$wifi\":true,\"anonymousId\":\"5094f5704b9cf2b3\",\"$android_devices\":[\"test_device_token\"],\"$os\":\"Android\",\"$android_model\":\"Android SDK built for x86\",\"$android_os_version\":\"8.1.0\",\"$android_manufacturer\":\"Google\",\"$android_app_version\":\"1.0\",\"$android_app_version_code\":\"1.0\",\"$android_brand\":\"Google\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"5094f5704b9cf2b3\",\"$time\":null}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "5094f5704b9cf2b3" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api-eu.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$carrier\":\"Android\",\"$manufacturer\":\"Google\",\"$model\":\"Android SDK built for x86\",\"$screen_height\":1794,\"$screen_width\":1080,\"$wifi\":true,\"anonymousId\":\"5094f5704b9cf2b3\",\"userId\":\"test_user_id\",\"$ios_devices\":[\"test_device_token\"],\"$os\":\"iOS\",\"$ios_device_model\":\"Android SDK built for x86\",\"$ios_version\":\"8.1.0\",\"$ios_app_release\":\"1\",\"$ios_app_version\":\"1.0\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"test_user_id\",\"$time\":null}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "test_user_id" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api-eu.mixpanel.com/import/", - "headers": { - "Authorization": "Basic c29tZV9hcGlfc2VjcmV0Og==", - "Content-Type": "application/json" - }, - "params": { "strict": 0 }, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"$merge\",\"properties\":{\"$distinct_ids\":[\"test_user_id\",\"5094f5704b9cf2b3\"],\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "test_user_id" - } - ], - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/track/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"Loaded a Page\",\"properties\":{\"path\":\"/tests/html/index2.html\",\"referrer\":\"\",\"search\":\"\",\"title\":\"\",\"url\":\"http://localhost/tests/html/index2.html\",\"category\":\"communication\",\"ip\":\"0.0.0.0\",\"$current_url\":\"https://docs.rudderstack.com/destinations/mixpanel\",\"$screen_dpi\":2,\"mp_lib\":\"RudderLabs JavaScript SDK\",\"$app_build_number\":\"1.0.0\",\"$app_version_string\":\"1.0.5\",\"$insert_id\":\"dd266c67-9199-4a52-ba32-f46ddde67312\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"time\":1579847342,\"name\":\"Contact Us\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/track/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"$create_alias\",\"properties\":{\"distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"alias\":\"1234abc\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "1234abc" - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api-eu.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$carrier\":\"Android\",\"$manufacturer\":\"Google\",\"$model\":\"Android SDK built for x86\",\"$screen_height\":1794,\"$screen_width\":1080,\"$wifi\":true,\"anonymousId\":\"5094f5704b9cf2b3\",\"userId\":\"test_user_id\",\"createdat\":\"2020-01-23T08:54:02.362Z\",\"$ios_devices\":[\"test_device_token\"],\"$ios_device_model\":\"Android SDK built for x86\",\"$ios_app_release\":\"1\",\"$ios_app_version\":\"1.0\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"test_user_id\",\"$time\":null}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "test_user_id" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api-eu.mixpanel.com/import/", - "headers": { - "Authorization": "Basic c29tZV9hcGlfc2VjcmV0Og==", - "Content-Type": "application/json" - }, - "params": { "strict": 0 }, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"$merge\",\"properties\":{\"$distinct_ids\":[\"test_user_id\",\"5094f5704b9cf2b3\"],\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "test_user_id" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$email\":\"mickey@disney.com\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$name\":\"Mickey Mouse\",\"$firstName\":\"Mickey\",\"$lastName\":\"Mouse\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"$ip\":\"0.0.0.0\",\"$time\":1579847342}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$email\":\"mickey@disney.com\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$firstName\":\"Mickey\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"$ip\":\"0.0.0.0\",\"$time\":1579847342}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$email\":\"mickey@disney.com\",\"$name\":\"Mickey Mouse\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$region\":\"US\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$firstName\":\"Mickey\",\"$lastName\":\"Mouse\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"$ip\":\"0.0.0.0\",\"$time\":1579847342}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$email\":\"mickey@disney.com\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$name\":\"Mickey Mouse\",\"$firstName\":\"Mickey\",\"$lastName\":\"Mouse\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"$ip\":\"0.0.0.0\",\"$time\":1579847342}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$email\":\"mickey@disney.com\",\"$name\":\"Mouse\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$firstName\":\"Mickey\",\"$lastName\":\"Mouse\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"$ip\":\"0.0.0.0\",\"$time\":1579847342}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$email\":\"mickey@disney.com\",\"$first_name\":\"Mickey\",\"$last_name\":\"Mouse\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$name\":\"Mickey Mouse\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"$ip\":\"0.0.0.0\",\"$time\":1579847342}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$email\":\"mickey@disney.com\",\"$first_name\":\"Mickey\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"$ip\":\"0.0.0.0\",\"$time\":1579847342}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$email\":\"mickey@disney.com\",\"$first_name\":\"Mickey\",\"$last_name\":\"Mouse\",\"$name\":\"Mickey Mouse\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$region\":\"US\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"$ip\":\"0.0.0.0\",\"$time\":1579847342}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$email\":\"mickey@disney.com\",\"$first_name\":\"Mickey\",\"$last_name\":\"Mouse\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$name\":\"Mickey Mouse\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"$ip\":\"0.0.0.0\",\"$time\":1579847342}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - { - "statusCode": 400, - "message": "Event timestamp is older than 5 days and no apisecret or service account credentials (i.e. username, secret and projectId) is provided in destination config" - }, - { - "statusCode": 400, - "message": "Event timestamp should be within last 5 years" - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api-eu.mixpanel.com/import/", - "headers": { - "Authorization": "Basic c29tZV9hcGlfc2VjcmV0Og==", - "Content-Type": "application/json" - }, - "params": { "strict": 0 }, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"MainActivity\",\"properties\":{\"name\":\"MainActivity\",\"automatic\":true,\"anonymousId\":\"5094f5704b9cf2b3\",\"userId\":\"test_user_id\",\"$user_id\":\"test_user_id\",\"$os\":\"iOS\",\"$screen_height\":1794,\"$screen_width\":1080,\"$screen_dpi\":420,\"$carrier\":\"Android\",\"$os_version\":\"8.1.0\",\"$device\":\"generic_x86\",\"$manufacturer\":\"Google\",\"$model\":\"Android SDK built for x86\",\"mp_device_model\":\"Android SDK built for x86\",\"$wifi\":true,\"$bluetooth_enabled\":false,\"mp_lib\":\"com.rudderstack.android.sdk.core\",\"$app_build_number\":\"1\",\"$app_version_string\":\"1.0\",\"$insert_id\":\"id2\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"distinct_id\":\"test_user_id\",\"time\":1520845503}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "test_user_id" - } - ], - { - "statusCode": 400, - "message": "Either previous id or anonymous id should be present in alias payload" - }, - { - "statusCode": 400, - "message": "Event type test is not supported" - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$created\":\"2020-01-23T08:54:02.362Z\",\"$email\":\"mickey@disney.com\",\"$first_name\":\"Mickey\",\"$last_name\":\"Mouse\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$name\":\"Mickey Mouse\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"$ip\":\"0.0.0.0\",\"$time\":1579847342,\"$ignore_time\":true}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$created\":\"2020-01-23T08:54:02.362Z\",\"$email\":\"mickey@disney.com\",\"$first_name\":\"Mickey\",\"$last_name\":\"Mouse\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$name\":\"Mickey Mouse\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"$ip\":\"0.0.0.0\",\"$time\":1579847342}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca" - } - ], - { - "statusCode": 400, - "message": "$geo_source value must be either null or 'reverse_geocoding' " - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$created\":\"2020-01-23T08:54:02.362Z\",\"$email\":\"mickey@disney.com\",\"$first_name\":\"Mickey\",\"$last_name\":\"Mouse\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$name\":\"Mickey Mouse\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"user1234\",\"$ip\":\"0.0.0.0\",\"$time\":1579847342}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "user1234" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/import/", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic cnVkZGVyLmQyYTNmMS5tcC1zZXJ2aWNlLWFjY291bnQ6amF0cFF4Y2pNaDhlZXRrMXhySDNLalFJYnp5NGlYOGI=" - }, - "params": { - "project_id": "123456", - "strict": 0 - }, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"$merge\",\"properties\":{\"$distinct_ids\":[\"user1234\",\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\"],\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "user1234" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/import/", - "headers": { - "Authorization": "Basic OTQzMmYxMWY3MGY4Y2UzODZmNTExMGM4YzkyNGIzZWM0ZjgyNTI1Njo=", - "Content-Type": "application/json" - }, - "params": { "strict": 0 }, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"Application Installed\",\"properties\":{\"build\":4,\"version\":\"1.0\",\"anonymousId\":\"39da706ec83d0e90\",\"$os\":\"Android\",\"$screen_height\":2984,\"$screen_width\":1440,\"$screen_dpi\":560,\"$carrier\":\"T-Mobile\",\"$os_version\":\"12\",\"$device\":\"emu64a\",\"$manufacturer\":\"Google\",\"$model\":\"sdk_gphone64_arm64\",\"mp_device_model\":\"sdk_gphone64_arm64\",\"$wifi\":true,\"$bluetooth_enabled\":true,\"mp_lib\":\"com.rudderstack.android.sdk.core\",\"$app_build_number\":\"4\",\"$app_version_string\":\"1.0\",\"$insert_id\":\"168cf720-6227-4b56-a98e-c49bdc7279e9\",\"$session_id\":\"1662363980\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"distinct_id\":\"39da706ec83d0e90\",\"time\":null}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "39da706ec83d0e90" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/import/", - "headers": { - "Authorization": "Basic OTQzMmYxMWY3MGY4Y2UzODZmNTExMGM4YzkyNGIzZWM0ZjgyNTI1Njo=", - "Content-Type": "application/json" - }, - "params": { "strict": 0 }, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"Application Opened\",\"properties\":{\"build\":4,\"version\":\"1.0\",\"anonymousId\":\"39da706ec83d0e90\",\"$os\":\"Android\",\"$screen_height\":2984,\"$screen_width\":1440,\"$screen_dpi\":560,\"$carrier\":\"T-Mobile\",\"$os_version\":\"12\",\"$device\":\"emu64a\",\"$manufacturer\":\"Google\",\"$model\":\"sdk_gphone64_arm64\",\"mp_device_model\":\"sdk_gphone64_arm64\",\"$wifi\":true,\"$bluetooth_enabled\":true,\"mp_lib\":\"com.rudderstack.android.sdk.core\",\"$app_build_number\":\"4\",\"$app_version_string\":\"1.0\",\"$insert_id\":\"168cf720-6227-4b56-a98e-c49bdc7279e9\",\"$session_id\":\"1662363980\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"distinct_id\":\"39da706ec83d0e90\",\"time\":null}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "39da706ec83d0e90" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"hjikl\",\"$set\":{\"groupId\":[\"testGroupId\"]},\"$ip\":\"0.0.0.0\"}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "hjikl" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/groups/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$group_key\":\"groupId\",\"$group_id\":\"testGroupId\",\"$set\":{\"company\":\"testComp\",\"groupId\":\"groupIdInTraits\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "hjikl" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/track/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"Product Viewed\",\"properties\":{\"name\":\"T-Shirt\",\"$user_id\":\"userId01\",\"$os\":\"iOS\",\"$screen_height\":1794,\"$screen_width\":1080,\"$screen_dpi\":420,\"$carrier\":\"Android\",\"$os_version\":\"8.1.0\",\"$device\":\"generic_x86\",\"$manufacturer\":\"Google\",\"$model\":\"Android SDK built for x86\",\"mp_device_model\":\"Android SDK built for x86\",\"$wifi\":true,\"$bluetooth_enabled\":false,\"mp_lib\":\"com.rudderstack.android.sdk.core\",\"$app_build_number\":\"1\",\"$app_version_string\":\"1.0\",\"$insert_id\":\"id2\",\"token\":\"apiToken123\",\"distinct_id\":\"userId01\",\"time\":1579847342,\"$device_id\":\"anonId01\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "userId01" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$created\":\"2020-01-23T08:54:02.362Z\",\"$email\":\"mickey@disney.com\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$name\":\"Mickey Mouse\",\"$firstName\":\"Mickey\",\"$lastName\":\"Mouse\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"apiToken123\",\"$distinct_id\":\"userId01\",\"$ip\":\"0.0.0.0\",\"$time\":1579847342}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "userId01" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$created\":\"2020-01-23T08:54:02.362Z\",\"$email\":\"mickey@disney.com\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$name\":\"Mickey Mouse\",\"$firstName\":\"Mickey\",\"$lastName\":\"Mouse\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"apiToken123\",\"$distinct_id\":\"$device:anonId01\",\"$ip\":\"0.0.0.0\",\"$time\":1579847342}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "anonId01" - } - ], - { - "statusCode": 400, - "message": "Event type 'alias' is not supported when 'Simplified ID merge' api is selected in webapp" - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$append\":{\"$transactions\":{\"$time\":\"2020-01-24T06:29:02.403Z\",\"$amount\":18.9}},\"$token\":\"apiToken123\",\"$distinct_id\":\"userId01\"}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "userId01" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/track/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"test revenue MIXPANEL\",\"properties\":{\"currency\":\"USD\",\"revenue\":18.9,\"city\":\"Disney\",\"country\":\"USA\",\"email\":\"mickey@disney.com\",\"firstName\":\"Mickey\",\"ip\":\"0.0.0.0\",\"$user_id\":\"userId01\",\"$current_url\":\"https://docs.rudderstack.com/destinations/mixpanel\",\"$screen_dpi\":2,\"mp_lib\":\"RudderLabs JavaScript SDK\",\"$app_build_number\":\"1.0.0\",\"$app_version_string\":\"1.0.5\",\"$insert_id\":\"a6a0ad5a-bd26-4f19-8f75-38484e580fc7\",\"token\":\"apiToken123\",\"distinct_id\":\"userId01\",\"time\":1579847342,\"$device_id\":\"anonId01\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "userId01" - } - ], - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/track/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"Loaded a Page\",\"properties\":{\"ip\":\"0.0.0.0\",\"$current_url\":\"https://docs.rudderstack.com/destinations/mixpanel\",\"$screen_dpi\":2,\"mp_lib\":\"RudderLabs JavaScript SDK\",\"$app_build_number\":\"1.0.0\",\"$app_version_string\":\"1.0.5\",\"$insert_id\":\"dd266c67-9199-4a52-ba32-f46ddde67312\",\"token\":\"apiToken123\",\"distinct_id\":\"$device:anonId01\",\"time\":1579847342,\"$device_id\":\"anonId01\",\"name\":\"Contact Us\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "anonId01" - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$token\":\"apiToken123\",\"$distinct_id\":\"$device:anonId01\",\"$set\":{\"company\":[\"testComp\"]},\"$ip\":\"0.0.0.0\"}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "anonId01" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/groups/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$token\":\"apiToken123\",\"$group_key\":\"company\",\"$group_id\":\"testComp\",\"$set\":{\"company\":\"testComp\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "anonId01" - } - ], - { - "statusCode": 400, - "message": "Group Key is not present. Aborting message" - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$append\":{\"$transactions\":{\"$time\":\"2022-09-05T07:46:20.290Z\",\"$amount\":12.13}},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"39da706ec83d0e90\"}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "39da706ec83d0e90" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/import/", - "headers": { - "Authorization": "Basic OTQzMmYxMWY3MGY4Y2UzODZmNTExMGM4YzkyNGIzZWM0ZjgyNTI1Njo=", - "Content-Type": "application/json" - }, - "params": { "strict": 0 }, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"Application Installed\",\"properties\":{\"build\":4,\"version\":\"1.0\",\"revenue\":12.13,\"anonymousId\":\"39da706ec83d0e90\",\"$os\":\"Android\",\"$screen_height\":2984,\"$screen_width\":1440,\"$screen_dpi\":560,\"$carrier\":\"T-Mobile\",\"$os_version\":\"12\",\"$device\":\"emu64a\",\"$manufacturer\":\"Google\",\"$model\":\"sdk_gphone64_arm64\",\"mp_device_model\":\"sdk_gphone64_arm64\",\"$wifi\":true,\"$bluetooth_enabled\":true,\"mp_lib\":\"com.rudderstack.android.sdk.core\",\"$app_build_number\":\"4\",\"$app_version_string\":\"1.0\",\"$insert_id\":\"168cf720-6227-4b56-a98e-c49bdc7279e9\",\"$session_id\":\"1662363980\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"distinct_id\":\"39da706ec83d0e90\",\"time\":null}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "39da706ec83d0e90" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$append\":{\"$transactions\":{\"$time\":\"2022-09-05T07:46:20.290Z\",\"$amount\":23.45}},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"39da706ec83d0e90\"}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "39da706ec83d0e90" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/import/", - "headers": { - "Authorization": "Basic OTQzMmYxMWY3MGY4Y2UzODZmNTExMGM4YzkyNGIzZWM0ZjgyNTI1Njo=", - "Content-Type": "application/json" - }, - "params": { "strict": 0 }, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"Application Installed\",\"properties\":{\"build\":4,\"version\":\"1.0\",\"revenue\":23.45,\"anonymousId\":\"39da706ec83d0e90\",\"$os\":\"Android\",\"$screen_height\":2984,\"$screen_width\":1440,\"$screen_dpi\":560,\"$carrier\":\"T-Mobile\",\"$os_version\":\"12\",\"$device\":\"emu64a\",\"$manufacturer\":\"Google\",\"$model\":\"sdk_gphone64_arm64\",\"mp_device_model\":\"sdk_gphone64_arm64\",\"$wifi\":true,\"$bluetooth_enabled\":true,\"mp_lib\":\"com.rudderstack.android.sdk.core\",\"$app_build_number\":\"4\",\"$app_version_string\":\"1.0\",\"$insert_id\":\"168cf720-6227-4b56-a98e-c49bdc7279e9\",\"$session_id\":\"1662363980\",\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"distinct_id\":\"39da706ec83d0e90\",\"time\":null}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "39da706ec83d0e90" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api-eu.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$carrier\":\"Android\",\"$manufacturer\":\"Google\",\"$model\":\"Android SDK built for x86\",\"$screen_height\":1794,\"$screen_width\":1080,\"$wifi\":true,\"anonymousId\":\"5094f5704b9cf2b3\",\"userId\":\"test_user_id\",\"$ios_devices\":[\"test_device_token\"],\"$os\":\"iOS\",\"$ios_device_model\":\"Android SDK built for x86\",\"$ios_version\":\"8.1.0\",\"$ios_app_release\":\"1\",\"$ios_app_version\":\"1.0\"},\"$token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\",\"$distinct_id\":\"test_user_id\",\"$time\":null}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "test_user_id" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api-eu.mixpanel.com/import/", - "headers": { - "Authorization": "Basic c29tZV9hcGlfc2VjcmV0Og==", - "Content-Type": "application/json" - }, - "params": { "strict": 1 }, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"$merge\",\"properties\":{\"$distinct_ids\":[\"test_user_id\",\"5094f5704b9cf2b3\"],\"token\":\"9432f11f70f8ce386f5110c8c924b3ec4f825256\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {}, - "userId": "test_user_id" - } - ], - { - "statusCode": 400, - "message": "One of previousId/anonymousId is same as userId" - } -] diff --git a/test/__tests__/data/mp_router_input.json b/test/__tests__/data/mp_router_input.json deleted file mode 100644 index dc088eb4768..00000000000 --- a/test/__tests__/data/mp_router_input.json +++ /dev/null @@ -1,603 +0,0 @@ -[ - { - "description": "Page call", - "destination": { - "Config": { - "apiSecret": "test_api_secret", - "token": "test_api_token", - "prefixProperties": true, - "useNativeSDK": false, - "useOldMapping": true, - "strictMode": true - }, - "DestinationDefinition": { - "DisplayName": "Mixpanel", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MP" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Mixpanel", - "Transformations": [] - }, - "metadata": { - "jobId": 1, - "additionalProp": 1 - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "name": "Contact Us", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "dd266c67-9199-4a52-ba32-f46ddde67312", - "originalTimestamp": "2020-01-24T06:29:02.358Z", - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.359Z", - "timestamp": "2023-07-06T11:59:02.402+05:30", - "type": "page", - "userId": "hjikl" - } - }, - { - "description": "Track: set device id and user id when simplified id merge api is selected", - "destination": { - "Config": { - "apiSecret": "test_api_secret", - "token": "test_api_token", - "prefixProperties": true, - "identityMergeApi": "simplified", - "strictMode": true - }, - "DestinationDefinition": { - "DisplayName": "Mixpanel", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MP" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Mixpanel", - "Transformations": [] - }, - "metadata": { - "jobId": 2, - "additionalProp": 2 - }, - "message": { - "anonymousId": "anonId01", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "LeanPlumIntegrationAndroid", - "namespace": "com.android.SampleLeanPlum", - "version": "1.0" - }, - "device": { - "id": "5094f5704b9cf2b3", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "ios", - "token": "test_device_token" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.1-beta.1" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "8.1.0" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)" - }, - "event": "Product Viewed", - "integrations": { - "All": true - }, - "userId": "userId01", - "messageId": "id2", - "properties": { - "name": "T-Shirt", - "revenue": 18.9 - }, - "type": "track", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2023-07-06T11:59:02.402+05:30" - } - }, - { - "description": "Identify call to create anonymous user profile", - "destination": { - "Config": { - "apiSecret": "test_api_secret", - "token": "test_api_token", - "prefixProperties": true, - "useNativeSDK": false, - "useOldMapping": true, - "strictMode": true - }, - "DestinationDefinition": { - "DisplayName": "Mixpanel", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MP" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Mixpanel", - "Transformations": [] - }, - "metadata": { - "jobId": 3, - "additionalProp": 3 - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstName": "Mickey" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53709", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2023-07-06T11:59:02.402+05:30", - "type": "identify", - "userId": "" - } - }, - { - "description": "Identify: append $device: to deviceId while creating the user when simplified id merge api is selected", - "destination": { - "Config": { - "apiSecret": "test_api_secret", - "token": "test_api_token", - "identityMergeApi": "simplified", - "strictMode": true - }, - "DestinationDefinition": { - "DisplayName": "Mixpanel", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MP" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Mixpanel", - "Transformations": [] - }, - "metadata": { - "jobId": 4, - "additionalProp": 4 - }, - "message": { - "anonymousId": "anonId01", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "city": "Disney", - "country": "USA", - "email": "mickey@disney.com", - "firstName": "Mickey", - "lastName": "Mouse", - "createdAt": "2020-01-23T08:54:02.362Z" - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53709", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2023-07-06T11:59:02.402+05:30", - "type": "identify" - } - }, - { - "description": "Merge call with strict mode enabled", - "destination": { - "Config": { - "apiSecret": "test_api_secret", - "token": "test_api_token", - "prefixProperties": true, - "useNativeSDK": false, - "strictMode": true - }, - "DestinationDefinition": { - "DisplayName": "Mixpanel", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MP" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Mixpanel", - "Transformations": [] - }, - "metadata": { - "jobId": 5, - "additionalProp": 5 - }, - "message": { - "anonymousId": "5094f5704b9cf2b3", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "LeanPlumIntegrationAndroid", - "namespace": "com.android.SampleLeanPlum", - "version": "1.0" - }, - "device": { - "id": "5094f5704b9cf2b3", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "ios", - "token": "test_device_token" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.1-beta.1" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "iOS", - "version": "8.1.0" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "5094f5704b9cf2b3", - "userId": "test_user_id" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)" - }, - "event": "MainActivity", - "integrations": { - "All": true - }, - "userId": "test_user_id", - "messageId": "id2", - "properties": { - "name": "MainActivity", - "automatic": true - }, - "originalTimestamp": "2020-03-12T09:05:03.421Z", - "type": "identify", - "sentAt": "2020-03-12T09:05:13.042Z" - } - }, - { - "description": "Group call", - "destination": { - "Config": { - "apiSecret": "test_api_secret", - "token": "test_api_token", - "groupKeySettings": [ - { - "groupKey": "company" - } - ], - "strictMode": true - }, - "DestinationDefinition": { - "DisplayName": "Mixpanel", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MP" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Mixpanel", - "Transformations": [] - }, - "metadata": { - "jobId": 6, - "additionalProp": 6 - }, - "message": { - "anonymousId": "anonId06", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "traits": { - "company": "testComp" - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53709", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2023-07-06T11:59:02.402+05:30", - "type": "group", - "userId": "userId06" - } - }, - { - "description": "Group key not present in traits", - "destination": { - "Config": { - "apiSecret": "test_api_secret", - "token": "test_api_token", - "groupKeySettings": [ - { - "groupKey": "company" - } - ], - "strictMode": true - }, - "DestinationDefinition": { - "DisplayName": "Mixpanel", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MP" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Mixpanel", - "Transformations": [] - }, - "metadata": { - "jobId": 7, - "additionalProp": 7 - }, - "message": { - "anonymousId": "anonId06", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "page": { - "path": "/destinations/mixpanel", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/mixpanel", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53709", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2023-07-06T11:59:02.402+05:30", - "type": "group", - "userId": "userId06" - } - } -] diff --git a/test/__tests__/data/mp_router_output.json b/test/__tests__/data/mp_router_output.json deleted file mode 100644 index fbb38a62cc1..00000000000 --- a/test/__tests__/data/mp_router_output.json +++ /dev/null @@ -1,209 +0,0 @@ -[ - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$append\":{\"$transactions\":{\"$time\":\"2023-07-06T06:29:02.402Z\",\"$amount\":18.9}},\"$token\":\"test_api_token\",\"$distinct_id\":\"userId01\"},{\"$set\":{\"$email\":\"mickey@disney.com\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$firstName\":\"Mickey\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"test_api_token\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"$ip\":\"0.0.0.0\",\"$time\":1688624942},{\"$set\":{\"$created\":\"2020-01-23T08:54:02.362Z\",\"$email\":\"mickey@disney.com\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$name\":\"Mickey Mouse\",\"$firstName\":\"Mickey\",\"$lastName\":\"Mouse\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"test_api_token\",\"$distinct_id\":\"$device:anonId01\",\"$ip\":\"0.0.0.0\",\"$time\":1688624942}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/import/", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic dGVzdF9hcGlfc2VjcmV0Og==" - }, - "params": { - "strict": 1 - }, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"Loaded a Page\",\"properties\":{\"ip\":\"0.0.0.0\",\"$user_id\":\"hjikl\",\"$current_url\":\"https://docs.rudderstack.com/destinations/mixpanel\",\"$screen_dpi\":2,\"mp_lib\":\"RudderLabs JavaScript SDK\",\"$app_build_number\":\"1.0.0\",\"$app_version_string\":\"1.0.5\",\"$insert_id\":\"dd266c67-9199-4a52-ba32-f46ddde67312\",\"token\":\"test_api_token\",\"distinct_id\":\"hjikl\",\"time\":1688624942,\"name\":\"Contact Us\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"}},{\"event\":\"Product Viewed\",\"properties\":{\"name\":\"T-Shirt\",\"revenue\":18.9,\"$user_id\":\"userId01\",\"$os\":\"iOS\",\"$screen_height\":1794,\"$screen_width\":1080,\"$screen_dpi\":420,\"$carrier\":\"Android\",\"$os_version\":\"8.1.0\",\"$device\":\"generic_x86\",\"$manufacturer\":\"Google\",\"$model\":\"Android SDK built for x86\",\"mp_device_model\":\"Android SDK built for x86\",\"$wifi\":true,\"$bluetooth_enabled\":false,\"mp_lib\":\"com.rudderstack.android.sdk.core\",\"$app_build_number\":\"1\",\"$app_version_string\":\"1.0\",\"$insert_id\":\"id2\",\"token\":\"test_api_token\",\"distinct_id\":\"userId01\",\"time\":1688624942,\"$device_id\":\"anonId01\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "jobId": 2, - "additionalProp": 2 - }, - { - "jobId": 3, - "additionalProp": 3 - }, - { - "jobId": 4, - "additionalProp": 4 - }, - { - "jobId": 1, - "additionalProp": 1 - } - ], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "apiSecret": "test_api_secret", - "token": "test_api_token", - "prefixProperties": true, - "identityMergeApi": "simplified", - "strictMode": true - }, - "DestinationDefinition": { - "DisplayName": "Mixpanel", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MP" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Mixpanel", - "Transformations": [] - } - }, - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/engage/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$carrier\":\"Android\",\"$manufacturer\":\"Google\",\"$model\":\"Android SDK built for x86\",\"$screen_height\":1794,\"$screen_width\":1080,\"$wifi\":true,\"anonymousId\":\"5094f5704b9cf2b3\",\"userId\":\"test_user_id\",\"$ios_devices\":[\"test_device_token\"],\"$os\":\"iOS\",\"$ios_device_model\":\"Android SDK built for x86\",\"$ios_version\":\"8.1.0\",\"$ios_app_release\":\"1\",\"$ios_app_version\":\"1.0\"},\"$token\":\"test_api_token\",\"$distinct_id\":\"test_user_id\",\"$time\":null},{\"$token\":\"test_api_token\",\"$distinct_id\":\"userId06\",\"$set\":{\"company\":[\"testComp\"]},\"$ip\":\"0.0.0.0\"}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/groups/", - "headers": {}, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"$token\":\"test_api_token\",\"$group_key\":\"company\",\"$group_id\":\"testComp\",\"$set\":{\"company\":\"testComp\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.mixpanel.com/import/", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic dGVzdF9hcGlfc2VjcmV0Og==" - }, - "params": { - "strict": 1 - }, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"event\":\"$merge\",\"properties\":{\"$distinct_ids\":[\"test_user_id\",\"5094f5704b9cf2b3\"],\"token\":\"test_api_token\"}}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "jobId": 5, - "additionalProp": 5 - }, - { - "jobId": 6, - "additionalProp": 6 - } - ], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "apiSecret": "test_api_secret", - "token": "test_api_token", - "prefixProperties": true, - "useNativeSDK": false, - "strictMode": true - }, - "DestinationDefinition": { - "DisplayName": "Mixpanel", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MP" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Mixpanel", - "Transformations": [] - } - }, - { - "metadata": [ - { - "jobId": 7, - "additionalProp": 7 - } - ], - "batched": false, - "statusCode": 400, - "error": "Group Key is not present. Aborting message", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - }, - "destination": { - "Config": { - "apiSecret": "test_api_secret", - "token": "test_api_token", - "groupKeySettings": [ - { - "groupKey": "company" - } - ], - "strictMode": true - }, - "DestinationDefinition": { - "DisplayName": "Mixpanel", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "MP" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Mixpanel", - "Transformations": [] - } - } -] diff --git a/test/__tests__/data/ometria_batch_input.json b/test/__tests__/data/ometria_batch_input.json index 6bf09e390c7..982b50607b2 100644 --- a/test/__tests__/data/ometria_batch_input.json +++ b/test/__tests__/data/ometria_batch_input.json @@ -97,7 +97,7 @@ "ResponseRules": {} }, "Config": { - "apiKey": "4f9880adb424c5065df868a339b1c0e0", + "apiKey": "dummyApiKey", "allowMarketing": false, "allowTransactional": false, "marketingOptin": "EXPLICITLY_OPTEDOUT" @@ -206,7 +206,7 @@ "ResponseRules": {} }, "Config": { - "apiKey": "4f9880adb424c5065df868a339b1c0e0", + "apiKey": "dummyApiKey", "allowMarketing": false, "allowTransactional": false, "marketingOptin": "EXPLICITLY_OPTEDOUT" diff --git a/test/__tests__/data/ometria_batch_output.json b/test/__tests__/data/ometria_batch_output.json index 1af504b10b2..f93e662d26a 100644 --- a/test/__tests__/data/ometria_batch_output.json +++ b/test/__tests__/data/ometria_batch_output.json @@ -6,7 +6,7 @@ "method": "POST", "endpoint": "https://api.ometria.com/v2/push", "headers": { - "X-Ometria-Auth": "4f9880adb424c5065df868a339b1c0e0" + "X-Ometria-Auth": "dummyApiKey" }, "params": {}, "body": { @@ -62,7 +62,7 @@ "ResponseRules": {} }, "Config": { - "apiKey": "4f9880adb424c5065df868a339b1c0e0", + "apiKey": "dummyApiKey", "allowMarketing": false, "allowTransactional": false, "marketingOptin": "EXPLICITLY_OPTEDOUT" diff --git a/test/__tests__/data/ometria_input.json b/test/__tests__/data/ometria_input.json index 75423b3f188..de03a585f8d 100644 --- a/test/__tests__/data/ometria_input.json +++ b/test/__tests__/data/ometria_input.json @@ -57,7 +57,7 @@ }, "destination": { "Config": { - "apiKey": "4f9880adb424c5065df868a339b1c0e0", + "apiKey": "dummyApiKey", "allowMarketing": false, "allowTransactional": false, "marketingOptin": "EXPLICITLY_OPTEDOUT" @@ -123,7 +123,7 @@ }, "destination": { "Config": { - "apiKey": "4f9880adb424c5065df868a339b1c0e0", + "apiKey": "dummyApiKey", "allowMarketing": false, "allowTransactional": false, "marketingOptin": "EXPLICITLY_OPTEDOUT" @@ -187,7 +187,7 @@ }, "destination": { "Config": { - "apiKey": "4f9880adb424c5065df868a339b1c0e0", + "apiKey": "dummyApiKey", "allowMarketing": false, "allowTransactional": false, "marketingOptin": "EXPLICITLY_OPTEDOUT" @@ -255,7 +255,7 @@ }, "destination": { "Config": { - "apiKey": "4f9880adb424c5065df868a339b1c0e0", + "apiKey": "dummyApiKey", "allowMarketing": false, "allowTransactional": false, "marketingOptin": "NOT_SPECIFIED" @@ -325,7 +325,7 @@ }, "destination": { "Config": { - "apiKey": "4f9880adb424c5065df868a339b1c0e0", + "apiKey": "dummyApiKey", "allowMarketing": false, "allowTransactional": false, "marketingOptin": "NOT_SPECIFIED" @@ -391,7 +391,7 @@ }, "destination": { "Config": { - "apiKey": "4f9880adb424c5065df868a339b1c0e0" + "apiKey": "dummyApiKey" } } }, @@ -456,7 +456,7 @@ }, "destination": { "Config": { - "apiKey": "4f9880adb424c5065df868a339b1c0e0" + "apiKey": "dummyApiKey" } } }, @@ -528,7 +528,7 @@ }, "destination": { "Config": { - "apiKey": "4f9880adb424c5065df868a339b1c0e0" + "apiKey": "dummyApiKey" } } }, @@ -607,7 +607,7 @@ }, "destination": { "Config": { - "apiKey": "4f9880adb424c5065df868a339b1c0e0" + "apiKey": "dummyApiKey" } } }, @@ -688,7 +688,7 @@ }, "destination": { "Config": { - "apiKey": "4f9880adb424c5065df868a339b1c0e0" + "apiKey": "dummyApiKey" } } }, @@ -773,7 +773,7 @@ }, "destination": { "Config": { - "apiKey": "4f9880adb424c5065df868a339b1c0e0" + "apiKey": "dummyApiKey" } } } diff --git a/test/__tests__/data/ometria_output.json b/test/__tests__/data/ometria_output.json index eb456536b8a..cd41f44d243 100644 --- a/test/__tests__/data/ometria_output.json +++ b/test/__tests__/data/ometria_output.json @@ -4,7 +4,7 @@ "type": "REST", "method": "POST", "endpoint": "https://api.ometria.com/v2/push", - "headers": { "X-Ometria-Auth": "4f9880adb424c5065df868a339b1c0e0" }, + "headers": { "X-Ometria-Auth": "dummyApiKey" }, "params": {}, "body": { "JSON": {}, @@ -21,7 +21,7 @@ "type": "REST", "method": "POST", "endpoint": "https://api.ometria.com/v2/push", - "headers": { "X-Ometria-Auth": "4f9880adb424c5065df868a339b1c0e0" }, + "headers": { "X-Ometria-Auth": "dummyApiKey" }, "params": {}, "body": { "JSON": {}, @@ -38,7 +38,7 @@ "type": "REST", "method": "POST", "endpoint": "https://api.ometria.com/v2/push", - "headers": { "X-Ometria-Auth": "4f9880adb424c5065df868a339b1c0e0" }, + "headers": { "X-Ometria-Auth": "dummyApiKey" }, "params": {}, "body": { "JSON": {}, @@ -55,7 +55,7 @@ "type": "REST", "method": "POST", "endpoint": "https://api.ometria.com/v2/push", - "headers": { "X-Ometria-Auth": "4f9880adb424c5065df868a339b1c0e0" }, + "headers": { "X-Ometria-Auth": "dummyApiKey" }, "params": {}, "body": { "JSON": {}, @@ -72,7 +72,7 @@ "type": "REST", "method": "POST", "endpoint": "https://api.ometria.com/v2/push", - "headers": { "X-Ometria-Auth": "4f9880adb424c5065df868a339b1c0e0" }, + "headers": { "X-Ometria-Auth": "dummyApiKey" }, "params": {}, "body": { "JSON": {}, @@ -89,7 +89,7 @@ "type": "REST", "method": "POST", "endpoint": "https://api.ometria.com/v2/push", - "headers": { "X-Ometria-Auth": "4f9880adb424c5065df868a339b1c0e0" }, + "headers": { "X-Ometria-Auth": "dummyApiKey" }, "params": {}, "body": { "JSON": {}, @@ -106,7 +106,7 @@ "type": "REST", "method": "POST", "endpoint": "https://api.ometria.com/v2/push", - "headers": { "X-Ometria-Auth": "4f9880adb424c5065df868a339b1c0e0" }, + "headers": { "X-Ometria-Auth": "dummyApiKey" }, "params": {}, "body": { "JSON": {}, @@ -123,7 +123,7 @@ "type": "REST", "method": "POST", "endpoint": "https://api.ometria.com/v2/push", - "headers": { "X-Ometria-Auth": "4f9880adb424c5065df868a339b1c0e0" }, + "headers": { "X-Ometria-Auth": "dummyApiKey" }, "params": {}, "body": { "JSON": {}, @@ -140,7 +140,7 @@ "type": "REST", "method": "POST", "endpoint": "https://api.ometria.com/v2/push", - "headers": { "X-Ometria-Auth": "4f9880adb424c5065df868a339b1c0e0" }, + "headers": { "X-Ometria-Auth": "dummyApiKey" }, "params": {}, "body": { "JSON": {}, @@ -157,7 +157,7 @@ "type": "REST", "method": "POST", "endpoint": "https://api.ometria.com/v2/push", - "headers": { "X-Ometria-Auth": "4f9880adb424c5065df868a339b1c0e0" }, + "headers": { "X-Ometria-Auth": "dummyApiKey" }, "params": {}, "body": { "JSON": {}, @@ -174,7 +174,7 @@ "type": "REST", "method": "POST", "endpoint": "https://api.ometria.com/v2/push", - "headers": { "X-Ometria-Auth": "4f9880adb424c5065df868a339b1c0e0" }, + "headers": { "X-Ometria-Auth": "dummyApiKey" }, "params": {}, "body": { "JSON": {}, diff --git a/test/__tests__/data/one_signal.json b/test/__tests__/data/one_signal.json index 40747e66862..da699ec0ef8 100644 --- a/test/__tests__/data/one_signal.json +++ b/test/__tests__/data/one_signal.json @@ -14,7 +14,7 @@ "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "context": { "os": { @@ -30,9 +30,9 @@ "traits": { "brand": "John Players", "price": "15000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", - "userId": "ujjwal27" + "firstName": "Test", + "email": "test@rudderstack.com", + "userId": "user@27" }, "locale": "en-US", "device": { @@ -73,16 +73,16 @@ "laguage": "en-US", "created_at": 1609693373, "last_active": 1609693373, - "external_user_id": "ujjwal27", + "external_user_id": "user@27", "app_id": "random-818c-4a28-b98e-6cd8a994eb22", "device_type": 11, - "identifier": "ujjwal@rudderstack.com", + "identifier": "test@rudderstack.com", "tags": { "brand": "John Players", "price": "15000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", - "userId": "ujjwal27", + "firstName": "Test", + "email": "test@rudderstack.com", + "userId": "user@27", "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" } }, @@ -108,16 +108,16 @@ "laguage": "en-US", "created_at": 1609693373, "last_active": 1609693373, - "external_user_id": "ujjwal27", + "external_user_id": "user@27", "app_id": "random-818c-4a28-b98e-6cd8a994eb22", "device_type": 8, "identifier": "97c46c81-3140-456d-b2a9-690d70aaca35", "tags": { "brand": "John Players", "price": "15000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", - "userId": "ujjwal27", + "firstName": "Test", + "email": "test@rudderstack.com", + "userId": "user@27", "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" } }, @@ -144,7 +144,7 @@ "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "context": { "os": { @@ -160,10 +160,10 @@ "traits": { "brand": "John Players", "price": "15000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", + "firstName": "Test", + "email": "test@rudderstack.com", "phone": "+917836362334", - "userId": "ujjwal27" + "userId": "user@27" }, "locale": "en-US", "device": { @@ -204,17 +204,17 @@ "laguage": "en-US", "created_at": 1609693373, "last_active": 1609693373, - "external_user_id": "ujjwal27", + "external_user_id": "user@27", "app_id": "random-818c-4a28-b98e-6cd8a994eb22", "device_type": 11, - "identifier": "ujjwal@rudderstack.com", + "identifier": "test@rudderstack.com", "tags": { "brand": "John Players", "price": "15000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", + "firstName": "Test", + "email": "test@rudderstack.com", "phone": "+917836362334", - "userId": "ujjwal27", + "userId": "user@27", "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" } }, @@ -240,17 +240,17 @@ "laguage": "en-US", "created_at": 1609693373, "last_active": 1609693373, - "external_user_id": "ujjwal27", + "external_user_id": "user@27", "app_id": "random-818c-4a28-b98e-6cd8a994eb22", "device_type": 14, "identifier": "+917836362334", "tags": { "brand": "John Players", "price": "15000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", + "firstName": "Test", + "email": "test@rudderstack.com", "phone": "+917836362334", - "userId": "ujjwal27", + "userId": "user@27", "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" } }, @@ -276,17 +276,17 @@ "laguage": "en-US", "created_at": 1609693373, "last_active": 1609693373, - "external_user_id": "ujjwal27", + "external_user_id": "user@27", "app_id": "random-818c-4a28-b98e-6cd8a994eb22", "device_type": 8, "identifier": "97c46c81-3140-456d-b2a9-690d70aaca35", "tags": { "brand": "John Players", "price": "15000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", + "firstName": "Test", + "email": "test@rudderstack.com", "phone": "+917836362334", - "userId": "ujjwal27", + "userId": "user@27", "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" } }, @@ -313,7 +313,7 @@ "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "context": { "os": { @@ -329,10 +329,10 @@ "traits": { "brand": "John Players", "price": "15000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", + "firstName": "Test", + "email": "test@rudderstack.com", "phone": "+917836362334", - "userId": "ujjwal27" + "userId": "user@27" }, "locale": "en-US", "device": { @@ -379,17 +379,17 @@ "laguage": "en-US", "created_at": 1609693373, "last_active": 1609693373, - "external_user_id": "ujjwal27", + "external_user_id": "user@27", "app_id": "random-818c-4a28-b98e-6cd8a994eb22", "device_type": 5, "identifier": "random_id", "tags": { "brand": "John Players", "price": "15000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", + "firstName": "Test", + "email": "test@rudderstack.com", "phone": "+917836362334", - "userId": "ujjwal27", + "userId": "user@27", "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" } }, @@ -416,7 +416,7 @@ "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "mobile", "context": { "os": { @@ -432,10 +432,10 @@ "traits": { "brand": "John Players", "price": "15000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", + "firstName": "Test", + "email": "test@rudderstack.com", "phone": "+917836362334", - "userId": "ujjwal27" + "userId": "user@27" }, "locale": "en-US", "device": { @@ -476,17 +476,17 @@ "laguage": "en-US", "created_at": 1609693373, "last_active": 1609693373, - "external_user_id": "ujjwal27", + "external_user_id": "user@27", "app_id": "random-818c-4a28-b98e-6cd8a994eb22", "device_type": 1, "identifier": "token", "tags": { "brand": "John Players", "price": "15000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", + "firstName": "Test", + "email": "test@rudderstack.com", "phone": "+917836362334", - "userId": "ujjwal27", + "userId": "user@27", "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" } }, @@ -513,7 +513,7 @@ "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "mobile", "context": { "externalId": [ @@ -535,10 +535,10 @@ "traits": { "brand": "Raymonds", "price": "14000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", + "firstName": "Test", + "email": "test@rudderstack.com", "phone": "+917836362334", - "userId": "ujjwal27" + "userId": "user@27" }, "locale": "en-US", "device": { @@ -578,15 +578,15 @@ "laguage": "en-US", "created_at": 1609693373, "last_active": 1609693373, - "external_user_id": "ujjwal27", + "external_user_id": "user@27", "app_id": "random-818c-4a28-b98e-6cd8a994eb22", "tags": { "brand": "Raymonds", "price": "14000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", + "firstName": "Test", + "email": "test@rudderstack.com", "phone": "+917836362334", - "userId": "ujjwal27", + "userId": "user@27", "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" } }, @@ -620,7 +620,7 @@ "event": "add_to_Cart", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "brand": "Zara", @@ -676,7 +676,7 @@ "Content-Type": "application/json" }, "version": "1", - "endpoint": "https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/ujjwal27" + "endpoint": "https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/user@27" } }, { @@ -702,7 +702,7 @@ "event": "add_to_Cart", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "brand": "Zara", @@ -758,7 +758,7 @@ "Content-Type": "application/json" }, "version": "1", - "endpoint": "https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/ujjwal27" + "endpoint": "https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/user@27" } }, { @@ -784,7 +784,7 @@ "event": "add_to_Cart", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "brand": "", @@ -840,7 +840,7 @@ "Content-Type": "application/json" }, "version": "1", - "endpoint": "https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/ujjwal27" + "endpoint": "https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/user@27" } }, { @@ -859,7 +859,7 @@ "event": "add_to_Cart", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "brand": "zara", @@ -913,7 +913,7 @@ "Content-Type": "application/json" }, "version": "1", - "endpoint": "https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/ujjwal27" + "endpoint": "https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/user@27" } }, { @@ -939,7 +939,7 @@ "type": "group", "groupId": "players111", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "context": { "os": { @@ -995,7 +995,7 @@ "Content-Type": "application/json" }, "version": "1", - "endpoint": "https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/ujjwal27" + "endpoint": "https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/user@27" } }, { @@ -1021,7 +1021,7 @@ "type": "group", "groupId": "players111", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "context": { "os": { @@ -1082,7 +1082,7 @@ "type": "page", "groupId": "players111", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "context": { "os": { @@ -1135,7 +1135,7 @@ "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "context": { "os": { @@ -1151,10 +1151,10 @@ "traits": { "brand": "John Players", "price": "15000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", + "firstName": "Test", + "email": "test@rudderstack.com", "phone": "+917836362334", - "userId": "ujjwal27" + "userId": "user@27" }, "locale": "en-US", "device": { @@ -1210,7 +1210,7 @@ "message": { "event": "add_to_Cart", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "brand": "Zara", @@ -1270,7 +1270,7 @@ "message": { "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "brand": "Zara", @@ -1330,7 +1330,7 @@ "message": { "type": "group", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "context": { "os": { diff --git a/test/__tests__/data/one_signal_router_input.json b/test/__tests__/data/one_signal_router_input.json index a860f1ff2b3..3b69aaadd75 100644 --- a/test/__tests__/data/one_signal_router_input.json +++ b/test/__tests__/data/one_signal_router_input.json @@ -15,7 +15,7 @@ "message": { "type": "identify", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "context": { "os": { @@ -31,9 +31,9 @@ "traits": { "brand": "John Players", "price": "15000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", - "userId": "ujjwal27" + "firstName": "Test", + "email": "test@rudderstack.com", + "userId": "user@27" }, "locale": "en-US", "device": { @@ -81,7 +81,7 @@ "event": "add_to_Cart", "type": "track", "sentAt": "2021-01-03T17:02:53.195Z", - "userId": "ujjwal27", + "userId": "user@27", "channel": "web", "properties": { "brand": "Zara", diff --git a/test/__tests__/data/one_signal_router_output.json b/test/__tests__/data/one_signal_router_output.json index 8f27a759968..bda0c36336d 100644 --- a/test/__tests__/data/one_signal_router_output.json +++ b/test/__tests__/data/one_signal_router_output.json @@ -17,16 +17,16 @@ "laguage": "en-US", "created_at": 1609693373, "last_active": 1609693373, - "external_user_id": "ujjwal27", + "external_user_id": "user@27", "app_id": "random-818c-4a28-b98e-6cd8a994eb22", "device_type": 11, - "identifier": "ujjwal@rudderstack.com", + "identifier": "test@rudderstack.com", "tags": { "brand": "John Players", "price": "15000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", - "userId": "ujjwal27", + "firstName": "Test", + "email": "test@rudderstack.com", + "userId": "user@27", "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" } }, @@ -52,16 +52,16 @@ "laguage": "en-US", "created_at": 1609693373, "last_active": 1609693373, - "external_user_id": "ujjwal27", + "external_user_id": "user@27", "app_id": "random-818c-4a28-b98e-6cd8a994eb22", "device_type": 8, "identifier": "97c46c81-3140-456d-b2a9-690d70aaca35", "tags": { "brand": "John Players", "price": "15000", - "firstName": "Ujjwal", - "email": "ujjwal@rudderstack.com", - "userId": "ujjwal27", + "firstName": "Test", + "email": "test@rudderstack.com", + "userId": "user@27", "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" } }, @@ -112,7 +112,7 @@ "Content-Type": "application/json" }, "version": "1", - "endpoint": "https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/ujjwal27" + "endpoint": "https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/user@27" }, "metadata": [ { diff --git a/test/__tests__/data/optimizely_fullstack.json b/test/__tests__/data/optimizely_fullstack.json deleted file mode 100644 index 6da031cbb33..00000000000 --- a/test/__tests__/data/optimizely_fullstack.json +++ /dev/null @@ -1,1674 +0,0 @@ -[ - { - "description": "Missing Data File URL", - "input": { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true - } - }, - "destination": { - "Config": { - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id" - } - } - }, - "output": { - "error": "Data File Url is not present. Aborting" - } - }, - { - "description": "Missing Data File Access Token for Secure Environment", - "input": { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "123" - } - } - }, - "destination": { - "Config": { - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "secureEnvironment": true, - "dataFileAccessToken": "" - } - } - }, - "output": { - "error": "Data File Access Token is not present for secure environment. Aborting" - } - }, - { - "description": "Identify call: Missing Variation ID in integration object", - "input": { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id" - } - } - }, - "output": { - "error": "Variation ID is not present in the integrations object" - } - }, - { - "description": "Missing Account ID", - "input": { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id" - } - } - }, - "output": { - "error": "Account ID is not present. Aborting" - } - }, - { - "description": "Missing Campaign ID", - "input": { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "experimentId": "test_experiment_id" - } - } - }, - "output": { - "error": "Campaign ID is not present. Aborting" - } - }, - { - "description": "Missing Experiment ID", - "input": { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id" - } - } - }, - "output": { - "error": "Experiment ID is not present. Aborting" - } - }, - { - "description": "Page: Track Categorized Page and Track Named Pages toggle are disabled", - "input": { - "message": { - "type": "page", - "channel": "web", - "name": "Home", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "123" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id", - "trackCategorizedPages": false, - "trackNamedPages": false - } - } - }, - "output": { - "error": "Both 'Track Categorized Pages' and 'Track Named Pages' toggles are disabled in webapp. Please enable at one of them to send page/screen events to Optimizely." - } - }, - { - "description": "Invalid Configuration (Track known users toggle is on and userId is missing in request)", - "input": { - "message": { - "type": "track", - "channel": "web", - "event": "Product Added", - "properties": { - "price": 999, - "quantity": 1 - }, - "context": { - "traits": { - "firstName": "John", - "age": 27 - } - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "optimizely_fullstack": { - "variationId": "123" - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id", - "trackCategorizedPages": false, - "trackNamedPages": false, - "trackKnownUsers": true - } - } - }, - "output": { - "error": "UserId is required for event tracking when the 'Track Known Users' setting is enabled. Please include a 'userId' in your event payload" - } - }, - { - "description": "Invalid Configuration (Track known users toggle is off and anonymousId is missing in request)", - "input": { - "message": { - "type": "track", - "channel": "web", - "event": "Product Added", - "properties": { - "price": 999, - "quantity": 1 - }, - "context": { - "traits": { - "firstName": "John", - "age": 27 - } - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "123" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id" - } - } - }, - "output": { - "error": "AnonymousId is required when 'Track Known Users' setting is disabled" - } - }, - { - "description": "Track call without event", - "input": { - "message": { - "type": "track", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id" - } - } - }, - "output": { - "error": "Event is not present. Aborting." - } - }, - { - "description": "Invalid data file url", - "input": { - "message": { - "type": "track", - "event": "Product Added", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/wrong_cdn.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id" - } - } - }, - "output": { - "error": "Data File Lookup Failed" - } - }, - { - "description": "Invalid data file url", - "input": { - "message": { - "type": "track", - "event": "Product Added", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "123" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id", - "eventMapping": [ - { - "from": "Product Added", - "to": "product_added" - } - ] - } - } - }, - "output": { - "error": "Event 'product_added' is not present in data file. Make sure event exists in Optimizely." - } - }, - { - "description": "Identify call (Decision Event) with userId", - "input": { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe", - "country": "US" - }, - "sessionId": 1685626914716 - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "timestamp": "2023-02-10T12:16:07.251Z", - "userId": "userId123", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "attributeMapping": [ - { - "from": "organization", - "to": "company" - }, - { - "from": "fullName", - "to": "name" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": false, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "attributes": [ - { - "entity_id": "test_attribute_id_5", - "key": "company", - "type": "custom", - "value": "RudderStack" - }, - { - "entity_id": "test_attribute_id_2", - "key": "name", - "type": "custom", - "value": "John Doe" - } - ], - "snapshots": [ - { - "decisions": [ - { - "campaign_id": "test_campaign_id", - "experiment_id": "test_experiment_id", - "variation_id": "test_variation_id_1" - } - ], - "events": [ - { - "entity_id": "test_campaign_id", - "type": "campaign_activated", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff" - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Identify call (Decision Event) with anonymousId", - "input": { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe", - "country": "US" - }, - "sessionId": 1685626914716 - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "timestamp": "2023-02-10T12:16:07.251Z", - "userId": "userId123", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": false - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": false, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "97c46c81-3140-456d-b2a9-690d70aaca35", - "snapshots": [ - { - "decisions": [ - { - "campaign_id": "test_campaign_id", - "experiment_id": "test_experiment_id", - "variation_id": "test_variation_id_1" - } - ], - "events": [ - { - "entity_id": "test_campaign_id", - "type": "campaign_activated", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff" - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Identify call (Decision Event) with projectId is empty", - "input": { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe", - "country": "US" - }, - "sessionId": 1685626914716 - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "timestamp": "2023-02-10T12:16:07.251Z", - "userId": "userId123", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "projectId": "", - "attributeMapping": [ - { - "from": "organization", - "to": "company" - }, - { - "from": "fullName", - "to": "name" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": false, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "attributes": [ - { - "entity_id": "test_attribute_id_5", - "key": "company", - "type": "custom", - "value": "RudderStack" - }, - { - "entity_id": "test_attribute_id_2", - "key": "name", - "type": "custom", - "value": "John Doe" - } - ], - "snapshots": [ - { - "decisions": [ - { - "campaign_id": "test_campaign_id", - "experiment_id": "test_experiment_id", - "variation_id": "test_variation_id_1" - } - ], - "events": [ - { - "entity_id": "test_campaign_id", - "type": "campaign_activated", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff" - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track call (Conversion event) with userId", - "input": { - "message": { - "type": "track", - "event": "product_added", - "userId": "userId123", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar", - "revenue": 123, - "quantity": 2 - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_2" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "eventMapping": [ - { - "from": "Product Searched", - "to": "Searched" - }, - { - "from": "product_added", - "to": "Product Added" - } - ], - "attributeMapping": [ - { - "from": "organization", - "to": "company" - }, - { - "from": "fullName", - "to": "name" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "attributes": [ - { - "entity_id": "test_attribute_id_5", - "key": "company", - "type": "custom", - "value": "RudderStack" - }, - { - "entity_id": "test_attribute_id_2", - "key": "name", - "type": "custom", - "value": "John Doe" - } - ], - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_1", - "key": "Product Added", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "quantity": 2, - "revenue": 12300, - "tags": { - "foo": "bar" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track call (Conversion event) without event mapping configured in webapp", - "input": { - "message": { - "type": "track", - "event": "Product Added", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "timestamp": "2023-02-10T12:16:07.251Z", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "123" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": false, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "97c46c81-3140-456d-b2a9-690d70aaca35", - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_1", - "key": "Product Added", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "tags": {} - } - ] - } - ] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track call: Missing Variation ID in integration object ", - "input": { - "message": { - "type": "track", - "event": "product_added", - "userId": "userId123", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar", - "revenue": 123, - "quantity": 2 - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "eventMapping": [ - { - "from": "Product Searched", - "to": "Searched" - }, - { - "from": "product_added", - "to": "Product Added" - } - ], - "attributeMapping": [ - { - "from": "organization", - "to": "company" - }, - { - "from": "fullName", - "to": "name" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "attributes": [ - { - "entity_id": "test_attribute_id_5", - "key": "company", - "type": "custom", - "value": "RudderStack" - }, - { - "entity_id": "test_attribute_id_2", - "key": "name", - "type": "custom", - "value": "John Doe" - } - ], - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_1", - "key": "Product Added", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "quantity": 2, - "revenue": 12300, - "tags": { - "foo": "bar" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track Categorized and Named Page", - "input": { - "message": { - "type": "page", - "name": "Meal", - "userId": "userId123", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar", - "category": "food" - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "pageMapping": [ - { - "from": "meal", - "to": "Viewed Meal Page" - }, - { - "from": "food", - "to": "Product Added" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_1", - "key": "Product Added", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "tags": { - "foo": "bar", - "category": "food" - } - }, - { - "entity_id": "test_event_id_4", - "key": "Viewed Meal page", - "timestamp": 1676031367251, - "uuid": "generated_uuid", - "tags": { - "foo": "bar", - "category": "food" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track Categorized and Named Page without event mapping configured in webapp", - "input": { - "message": { - "type": "page", - "name": "home", - "userId": "userId123", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar", - "category": "index" - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "pageMapping": [ - { - "from": "", - "to": "" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_8", - "key": "Index", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "tags": { - "foo": "bar", - "category": "index" - } - }, - { - "entity_id": "test_event_id_7", - "key": "Home", - "timestamp": 1676031367251, - "uuid": "generated_uuid", - "tags": { - "foo": "bar", - "category": "index" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track Categorized Page: trackCategorizedPages,trackNamedPages toggle are enabled and name is not provided", - "input": { - "message": { - "type": "page", - "userId": "userId123", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar", - "category": "food" - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "pageMapping": [ - { - "from": "meal", - "to": "Viewed Meal Page" - }, - { - "from": "food", - "to": "Product Added" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_1", - "key": "Product Added", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "tags": { - "foo": "bar", - "category": "food" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track Named Page: trackCategorizedPages,trackNamedPages toggle are enabled and category is not provided", - "input": { - "message": { - "type": "page", - "userId": "userId123", - "name": "Meal", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar" - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "pageMapping": [ - { - "from": "meal", - "to": "Viewed Meal Page" - }, - { - "from": "food", - "to": "Product Added" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_4", - "key": "Viewed Meal page", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "tags": { - "foo": "bar" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track Named Page: trackCategorizedPages,trackNamedPages toggle are enabled and category mapping is wrong", - "input": { - "message": { - "type": "page", - "userId": "userId123", - "name": "Meal", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar" - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "pageMapping": [ - { - "from": "meal", - "to": "Viewed Meal Page" - }, - { - "from": "food", - "to": "ABC" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_4", - "key": "Viewed Meal page", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "tags": { - "foo": "bar" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track Named Page: mapping is not provided for page name in webapp", - "input": { - "message": { - "type": "page", - "userId": "userId123", - "name": "Meal", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar" - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": false, - "trackNamedPages": true, - "pageMapping": [ - { - "from": "Home", - "to": "Viewed Home Page" - }, - { - "from": "food", - "to": "Product Added" - } - ] - } - } - }, - "output": { - "error": "Events [meal] are not present in the data file. Make sure events exist in Optimizely." - } - }, - { - "description": "Track Categorized and Named Screen", - "input": { - "message": { - "type": "screen", - "name": "Home", - "userId": "userId123", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar", - "category": "food" - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "pageMapping": [ - { - "from": "home", - "to": "Viewed Main Screen" - }, - { - "from": "food", - "to": "Product Added" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_1", - "key": "Product Added", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "tags": { - "foo": "bar", - "category": "food" - } - }, - { - "entity_id": "test_event_id_6", - "key": "Viewed Main screen", - "timestamp": 1676031367251, - "uuid": "generated_uuid", - "tags": { - "foo": "bar", - "category": "food" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - } -] diff --git a/test/__tests__/data/optimizely_fullstack_router.json b/test/__tests__/data/optimizely_fullstack_router.json deleted file mode 100644 index 6be928afc96..00000000000 --- a/test/__tests__/data/optimizely_fullstack_router.json +++ /dev/null @@ -1,494 +0,0 @@ -[ - { - "input": [ - { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe", - "country": "US" - }, - "sessionId": 1685626914716 - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "timestamp": "2023-02-10T12:16:07.251Z", - "userId": "userId123", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "attributeMapping": [ - { - "from": "organization", - "to": "company" - }, - { - "from": "fullName", - "to": "name" - } - ] - } - }, - "metadata": { - "jobId": 1 - } - }, - { - "message": { - "type": "track", - "event": "product_added", - "userId": "userId123", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar", - "revenue": 123, - "quantity": 2 - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_2" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "eventMapping": [ - { - "from": "Product Searched", - "to": "Searched" - }, - { - "from": "product_added", - "to": "Product Added" - } - ], - "attributeMapping": [ - { - "from": "organization", - "to": "company" - }, - { - "from": "fullName", - "to": "name" - } - ] - } - }, - "metadata": { - "jobId": 2 - } - }, - { - "message": { - "type": "page", - "userId": "userId123", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar", - "category": "food" - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": true, - "trackNamedPages": false, - "pageMapping": [ - { - "from": "meal", - "to": "Viewed Meal Page" - }, - { - "from": "food", - "to": "Product Added" - } - ] - } - }, - "metadata": { - "jobId": 3 - } - }, - { - "message": { - "type": "page", - "channel": "web", - "name": "Home", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "123" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id", - "trackCategorizedPages": false, - "trackNamedPages": false - } - }, - "metadata": { - "jobId": 4 - } - } - ], - "output": [ - { - "batched": false, - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": false, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "attributes": [ - { - "entity_id": "test_attribute_id_5", - "key": "company", - "type": "custom", - "value": "RudderStack" - }, - { - "entity_id": "test_attribute_id_2", - "key": "name", - "type": "custom", - "value": "John Doe" - } - ], - "snapshots": [ - { - "decisions": [ - { - "campaign_id": "test_campaign_id", - "experiment_id": "test_experiment_id", - "variation_id": "test_variation_id_1" - } - ], - "events": [ - { - "entity_id": "test_campaign_id", - "type": "campaign_activated", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff" - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "attributeMapping": [ - { - "from": "organization", - "to": "company" - }, - { - "from": "fullName", - "to": "name" - } - ] - } - }, - "metadata": [ - { - "jobId": 1 - } - ], - "statusCode": 200 - }, - { - "batched": false, - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "attributes": [ - { - "entity_id": "test_attribute_id_5", - "key": "company", - "type": "custom", - "value": "RudderStack" - }, - { - "entity_id": "test_attribute_id_2", - "key": "name", - "type": "custom", - "value": "John Doe" - } - ], - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_1", - "key": "Product Added", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "quantity": 2, - "revenue": 12300, - "tags": { - "foo": "bar" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "eventMapping": [ - { - "from": "Product Searched", - "to": "Searched" - }, - { - "from": "product_added", - "to": "Product Added" - } - ], - "attributeMapping": [ - { - "from": "organization", - "to": "company" - }, - { - "from": "fullName", - "to": "name" - } - ] - } - }, - "metadata": [ - { - "jobId": 2 - } - ], - "statusCode": 200 - }, - { - "batched": false, - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_1", - "key": "Product Added", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "tags": { - "foo": "bar", - "category": "food" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": true, - "trackNamedPages": false, - "pageMapping": [ - { - "from": "meal", - "to": "Viewed Meal Page" - }, - { - "from": "food", - "to": "Product Added" - } - ] - } - }, - "metadata": [ - { - "jobId": 3 - } - ], - "statusCode": 200 - }, - { - "batched": false, - "destination": { - "Config": { - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "experimentId": "test_experiment_id", - "trackCategorizedPages": false, - "trackNamedPages": false - } - }, - "error": "Both 'Track Categorized Pages' and 'Track Named Pages' toggles are disabled in webapp. Please enable at one of them to send page/screen events to Optimizely.", - "metadata": [ - { - "jobId": 4 - } - ], - "statTags": { - "errorCategory": "dataValidation", - "errorType": "configuration" - }, - "statusCode": 400 - } - ] - } -] diff --git a/test/__tests__/data/pagerduty_source.json b/test/__tests__/data/pagerduty_source.json index 9519abc79b8..0d116cff9b0 100644 --- a/test/__tests__/data/pagerduty_source.json +++ b/test/__tests__/data/pagerduty_source.json @@ -10,8 +10,8 @@ "agent": { "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E", "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", - "summary": "mihir patel", + "self": "https://api.pagerduty.com/users/user@1", + "summary": "rudder test", "type": "user_reference" }, "client": { @@ -39,8 +39,8 @@ { "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E", "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", - "summary": "mihir patel", + "self": "https://api.pagerduty.com/users/user@1", + "summary": "rudder test", "type": "user_reference" } ], @@ -72,9 +72,9 @@ "context": { "traits": { "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", + "self": "https://api.pagerduty.com/users/user@1", "type": "user_reference", - "summary": "mihir patel", + "summary": "rudder test", "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E" }, "library": { @@ -114,9 +114,9 @@ "assignees": [ { "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", + "self": "https://api.pagerduty.com/users/user@1", "type": "user_reference", - "summary": "mihir patel", + "summary": "rudder test", "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E" } ], @@ -155,8 +155,8 @@ "agent": { "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E", "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", - "summary": "mihir patel", + "self": "https://api.pagerduty.com/users/user@1", + "summary": "rudder test", "type": "user_reference" }, "client": null, @@ -181,8 +181,8 @@ { "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E", "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", - "summary": "mihir patel", + "self": "https://api.pagerduty.com/users/user@1", + "summary": "rudder test", "type": "user_reference" } ], @@ -214,9 +214,9 @@ "context": { "traits": { "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", + "self": "https://api.pagerduty.com/users/user@1", "type": "user_reference", - "summary": "mihir patel", + "summary": "rudder test", "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E" }, "library": { @@ -256,9 +256,9 @@ "assignees": [ { "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", + "self": "https://api.pagerduty.com/users/user@1", "type": "user_reference", - "summary": "mihir patel", + "summary": "rudder test", "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E" } ], @@ -293,8 +293,8 @@ "agent": { "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E", "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", - "summary": "mihir patel", + "self": "https://api.pagerduty.com/users/user@1", + "summary": "rudder test", "type": "user_reference" }, "client": null, @@ -309,8 +309,8 @@ "user": { "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E", "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", - "summary": "mihir patel", + "self": "https://api.pagerduty.com/users/user@1", + "summary": "rudder test", "type": "user_reference" }, "escalation_policy": null, @@ -327,9 +327,9 @@ "context": { "traits": { "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", + "self": "https://api.pagerduty.com/users/user@1", "type": "user_reference", - "summary": "mihir patel", + "summary": "rudder test", "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E" }, "library": { @@ -346,9 +346,9 @@ "type": "incident_responder", "user": { "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", + "self": "https://api.pagerduty.com/users/user@1", "type": "user_reference", - "summary": "mihir patel", + "summary": "rudder test", "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E" }, "state": "pending", @@ -381,8 +381,8 @@ "agent": { "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E", "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", - "summary": "mihir patel", + "self": "https://api.pagerduty.com/users/user@1", + "summary": "rudder test", "type": "user_reference" }, "client": null, @@ -407,8 +407,8 @@ { "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E", "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", - "summary": "mihir patel", + "self": "https://api.pagerduty.com/users/user@1", + "summary": "rudder test", "type": "user_reference" } ], @@ -440,9 +440,9 @@ "context": { "traits": { "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", + "self": "https://api.pagerduty.com/users/user@1", "type": "user_reference", - "summary": "mihir patel", + "summary": "rudder test", "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E" }, "library": { @@ -482,9 +482,9 @@ "assignees": [ { "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", + "self": "https://api.pagerduty.com/users/user@1", "type": "user_reference", - "summary": "mihir patel", + "summary": "rudder test", "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E" } ], @@ -519,8 +519,8 @@ "agent": { "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E", "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", - "summary": "mihir patel", + "self": "https://api.pagerduty.com/users/user@1", + "summary": "rudder test", "type": "user_reference" }, "client": null, @@ -573,9 +573,9 @@ "context": { "traits": { "id": "PXZZD2E", - "self": "https://api.pagerduty.com/users/PXZZD2E", + "self": "https://api.pagerduty.com/users/user@1", "type": "user_reference", - "summary": "mihir patel", + "summary": "rudder test", "html_url": "https://rudderlabs-com.pagerduty.com/users/PXZZD2E" }, "library": { diff --git a/test/__tests__/data/pardot_proxy_input.json b/test/__tests__/data/pardot_proxy_input.json deleted file mode 100644 index f5f62dea728..00000000000 --- a/test/__tests__/data/pardot_proxy_input.json +++ /dev/null @@ -1,106 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://pi.pardot.com/api/prospect/version/4/do/upsert/id/123435", - "headers": { - "Authorization": "Bearer myToken", - "Pardot-Business-Unit-Id": "0Uv2v000000k9tHCAQ" - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "first_name": "Roger12", - "last_name": "Federer12", - "website": "https://rudderstack.com", - "score": 14, - "campaign_id": 42213 - } - }, - "files": {}, - "params": { - "destination": "pardot" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://pi.pardot.com/api/prospect/version/4/do/upsert/email/Roger_12@waltair.io", - "headers": { - "Authorization": "Bearer myToken", - "Pardot-Business-Unit-Id": "0Uv2v000000k9tHCAQ" - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "first_name": "Roger_12", - "last_name": "Federer_12", - "website": "https://rudderstack.com", - "score": 14, - "campaign_id": 42213 - } - }, - "files": {}, - "params": { - "destination": "pardot" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://pi.pardot.com/api/prospect/version/4/do/upsert/fid/00Q6r000002LKhTPVR", - "headers": { - "Authorization": "Bearer myToken", - "Pardot-Business-Unit-Id": "0Uv2v000000k9tHCAQ" - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "first_name": "Nick", - "last_name": "Kyrgios", - "website": "https://rudderstack.com", - "score": 12, - "campaign_id": 42213 - } - }, - "files": {}, - "params": { - "destination": "pardot" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://pi.pardot.com/api/prospect/version/4/do/upsert/email/rolex_waltair@mywebsite.io", - "headers": { - "Authorization": "Bearer myExpiredToken", - "Pardot-Business-Unit-Id": "0Uv2v000000k9tHCAQ" - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "first_name": "Rolex", - "last_name": "Waltair", - "website": "https://rudderstack.com", - "score": 15, - "campaign_id": 42213 - } - }, - "files": {}, - "params": { - "destination": "pardot" - } - } -] \ No newline at end of file diff --git a/test/__tests__/data/pardot_proxy_output.json b/test/__tests__/data/pardot_proxy_output.json deleted file mode 100644 index 46783b3d699..00000000000 --- a/test/__tests__/data/pardot_proxy_output.json +++ /dev/null @@ -1,378 +0,0 @@ -[ - { - "output": { - "message": "Request Processed Successfully", - "status": 200, - "destinationResponse": { - "response": { - "@attributes": { - "stat": "ok", - "version": 1 - }, - "prospect": { - "id": 123435, - "campaign_id": 42213, - "salutation": null, - "first_name": "Roger12", - "last_name": "Federer12", - "email": "Roger12@waltair.io", - "password": null, - "company": null, - "website": "https://rudderstack.com", - "job_title": null, - "department": null, - "country": "AU", - "address_one": null, - "address_two": null, - "city": null, - "state": null, - "territory": null, - "zip": null, - "phone": null, - "fax": null, - "source": null, - "annual_revenue": null, - "employees": null, - "industry": null, - "years_in_business": null, - "comments": null, - "notes": null, - "score": 14, - "grade": null, - "last_activity_at": null, - "recent_interaction": "Never active.", - "crm_lead_fid": null, - "crm_contact_fid": null, - "crm_owner_fid": "00G2v000004WYXaEAO", - "crm_account_fid": null, - "salesforce_fid": null, - "crm_last_sync": null, - "crm_url": null, - "is_do_not_email": null, - "is_do_not_call": null, - "opted_out": null, - "is_reviewed": 1, - "is_starred": null, - "created_at": "2022-01-21 18:21:46", - "updated_at": "2022-01-21 18:48:41", - "campaign": { - "id": 42113, - "name": "Test", - "crm_fid": "7012y000000MNOCLL4" - }, - "assigned_to": { - "user": { - "id": 38443703, - "email": "test_rudderstack@testcompany.com", - "first_name": "Rudderstack", - "last_name": "User", - "job_title": null, - "role": "Administrator", - "account": 489853, - "created_at": "2021-02-26 06:25:17", - "updated_at": "2021-02-26 06:25:17" - } - }, - "Are_you_shipping_large_fragile_or_bulky_items": false, - "Calendly": false, - "Country_Code": "AU", - "Currency": "AUD", - "Inventory_or_Warehouse_Management_System": false, - "Lead_Status": "New", - "Marketing_Stage": "SAL", - "Record_Type_ID": "TestCompany Lead", - "profile": { - "id": 304, - "name": "Default", - "profile_criteria": [ - { - "id": 1500, - "name": "Shipping Volume", - "matches": "Unknown" - }, - { - "id": 1502, - "name": "Industry", - "matches": "Unknown" - }, - { - "id": 1506, - "name": "Job Title", - "matches": "Unknown" - }, - { - "id": 1508, - "name": "Department", - "matches": "Unknown" - } - ] - }, - "visitors": null, - "visitor_activities": null, - "lists": null - } - }, - "status": 200 - } - } - }, - { - "output": { - "message": "Request Processed Successfully", - "status": 201, - "destinationResponse": { - "response": { - "@attributes": { - "stat": "ok", - "version": 1 - }, - "prospect": { - "id": 123435, - "campaign_id": 42213, - "salutation": null, - "first_name": "Roger_12", - "last_name": "Federer_12", - "email": "Roger_12@waltair.io", - "password": null, - "company": null, - "website": "https://rudderstack.com", - "job_title": null, - "department": null, - "country": "AU", - "address_one": null, - "address_two": null, - "city": null, - "state": null, - "territory": null, - "zip": null, - "phone": null, - "fax": null, - "source": null, - "annual_revenue": null, - "employees": null, - "industry": null, - "years_in_business": null, - "comments": null, - "notes": null, - "score": 14, - "grade": null, - "last_activity_at": null, - "recent_interaction": "Never active.", - "crm_lead_fid": null, - "crm_contact_fid": null, - "crm_owner_fid": "00G2v000004WYXaEAO", - "crm_account_fid": null, - "salesforce_fid": null, - "crm_last_sync": null, - "crm_url": null, - "is_do_not_email": null, - "is_do_not_call": null, - "opted_out": null, - "is_reviewed": 1, - "is_starred": null, - "created_at": "2022-01-21 18:21:46", - "updated_at": "2022-01-21 18:48:41", - "campaign": { - "id": 42113, - "name": "Test", - "crm_fid": "7012y000000MNOCLL4" - }, - "assigned_to": { - "user": { - "id": 38443703, - "email": "test_rudderstack@testcompany.com", - "first_name": "Rudderstack", - "last_name": "User", - "job_title": null, - "role": "Administrator", - "account": 489853, - "created_at": "2021-02-26 06:25:17", - "updated_at": "2021-02-26 06:25:17" - } - }, - "Are_you_shipping_large_fragile_or_bulky_items": false, - "Calendly": false, - "Country_Code": "AU", - "Currency": "AUD", - "Inventory_or_Warehouse_Management_System": false, - "Lead_Status": "New", - "Marketing_Stage": "SAL", - "Record_Type_ID": "TestCompany Lead", - "profile": { - "id": 304, - "name": "Default", - "profile_criteria": [ - { - "id": 1500, - "name": "Shipping Volume", - "matches": "Unknown" - }, - { - "id": 1502, - "name": "Industry", - "matches": "Unknown" - }, - { - "id": 1506, - "name": "Job Title", - "matches": "Unknown" - }, - { - "id": 1508, - "name": "Department", - "matches": "Unknown" - } - ] - }, - "visitors": null, - "visitor_activities": null, - "lists": null - } - }, - "status": 201 - } - } - }, - { - "output": { - "message": "Request Processed Successfully", - "status": 200, - "destinationResponse": { - "response": { - "@attributes": { - "stat": "ok", - "version": 1 - }, - "prospect": { - "id": 123435, - "campaign_id": 42213, - "salutation": null, - "first_name": "Roger_12", - "last_name": "Federer_12", - "email": "Roger_12@federer.io", - "password": null, - "company": null, - "website": "https://rudderstack.com", - "job_title": null, - "department": null, - "country": "AU", - "address_one": null, - "address_two": null, - "city": null, - "state": null, - "territory": null, - "zip": null, - "phone": null, - "fax": null, - "source": null, - "annual_revenue": null, - "employees": null, - "industry": null, - "years_in_business": null, - "comments": null, - "notes": null, - "score": 14, - "grade": null, - "last_activity_at": null, - "recent_interaction": "Never active.", - "crm_lead_fid": "00Q6r000002LKhTPVR", - "crm_contact_fid": null, - "crm_owner_fid": "00G2v000004WYXaEAO", - "crm_account_fid": null, - "salesforce_fid": "00Q6r000002LKhTPVR", - "crm_last_sync": "2022-01-21 18:47:37", - "crm_url": "https://testcompany.my.salesforce.com/00Q6r000002LKhTPVR", - "is_do_not_email": null, - "is_do_not_call": null, - "opted_out": null, - "is_reviewed": 1, - "is_starred": null, - "created_at": "2022-01-21 18:21:46", - "updated_at": "2022-01-21 18:48:41", - "campaign": { - "id": 42113, - "name": "Test", - "crm_fid": "7012y000000MNOCLL4" - }, - "assigned_to": { - "user": { - "id": 38443703, - "email": "test_rudderstack@testcompany.com", - "first_name": "Rudderstack", - "last_name": "User", - "job_title": null, - "role": "Administrator", - "account": 489853, - "created_at": "2021-02-26 06:25:17", - "updated_at": "2021-02-26 06:25:17" - } - }, - "Are_you_shipping_large_fragile_or_bulky_items": false, - "Calendly": false, - "Country_Code": "AU", - "Currency": "AUD", - "Inventory_or_Warehouse_Management_System": false, - "Lead_Status": "New", - "Marketing_Stage": "SAL", - "Record_Type_ID": "TestCompany Lead", - "profile": { - "id": 304, - "name": "Default", - "profile_criteria": [ - { - "id": 1500, - "name": "Shipping Volume", - "matches": "Unknown" - }, - { - "id": 1502, - "name": "Industry", - "matches": "Unknown" - }, - { - "id": 1506, - "name": "Job Title", - "matches": "Unknown" - }, - { - "id": 1508, - "name": "Department", - "matches": "Unknown" - } - ] - }, - "visitors": null, - "visitor_activities": null, - "lists": null - } - }, - "status": 200 - } - } - }, - { - "output": { - "message": "access_token is invalid, unknown, or malformed: Inactive token during Pardot response transformation", - "status": 500, - "authErrorCategory": "REFRESH_TOKEN", - "destinationResponse": { - "@attributes": { - "stat": "fail", - "version": 1, - "err_code": 184 - }, - "err": "access_token is invalid, unknown, or malformed: Inactive token" - }, - "statTags": { - "destType": "PARDOT", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "retryable", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - } -] diff --git a/test/__tests__/data/pardot_router_input.json b/test/__tests__/data/pardot_router_input.json index b9ba71debe2..5db25245a70 100644 --- a/test/__tests__/data/pardot_router_input.json +++ b/test/__tests__/data/pardot_router_input.json @@ -45,6 +45,7 @@ "Transformations": [] }, "metadata": { + "jobId": 1, "secret": { "access_token": "myToken", "refresh_token": "myRefreshToken" @@ -167,6 +168,7 @@ "Transformations": [] }, "metadata": { + "jobId": 2, "secret": { "access_token": "myToken", "refresh_token": "myRefreshToken" @@ -283,6 +285,7 @@ "Transformations": [] }, "metadata": { + "jobId": 3, "secret": { "access_token": "myToken", "refresh_token": "myRefreshToken" @@ -405,6 +408,7 @@ "Transformations": [] }, "metadata": { + "jobId": 4, "secret": { "access_token": "myExpiredToken", "refresh_token": "myRefreshToken" @@ -521,6 +525,7 @@ "Transformations": [] }, "metadata": { + "jobId": 5, "secret": null }, "message": { diff --git a/test/__tests__/data/pardot_router_output.json b/test/__tests__/data/pardot_router_output.json index f49afc6c0b5..889cc8fd96c 100644 --- a/test/__tests__/data/pardot_router_output.json +++ b/test/__tests__/data/pardot_router_output.json @@ -26,6 +26,7 @@ }, "metadata": [ { + "jobId": 1, "secret": { "access_token": "myToken", "refresh_token": "myRefreshToken" @@ -106,6 +107,7 @@ }, "metadata": [ { + "jobId": 2, "secret": { "access_token": "myToken", "refresh_token": "myRefreshToken" @@ -186,6 +188,7 @@ }, "metadata": [ { + "jobId": 3, "secret": { "access_token": "myToken", "refresh_token": "myRefreshToken" @@ -266,6 +269,7 @@ }, "metadata": [ { + "jobId": 4, "secret": { "access_token": "myExpiredToken", "refresh_token": "myRefreshToken" @@ -366,12 +370,13 @@ }, "metadata": [ { + "jobId": 5, "secret": null } ], "batched": false, "statusCode": 500, - "error": "Empty/Invalid access token", + "error": "OAuth - access token not found", "statTags": { "errorCategory": "platform", "errorType": "oAuthSecret" diff --git a/test/__tests__/data/pinterest_tag_input.json b/test/__tests__/data/pinterest_tag_input.json index c4c0db1bf1b..f0755ddb383 100644 --- a/test/__tests__/data/pinterest_tag_input.json +++ b/test/__tests__/data/pinterest_tag_input.json @@ -14,8 +14,8 @@ "phone": "+1234589947", "gender": "non-binary", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -121,8 +121,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -227,8 +227,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -313,8 +313,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -418,8 +418,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -521,8 +521,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -628,8 +628,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -734,8 +734,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -841,8 +841,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -948,8 +948,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1056,8 +1056,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1134,8 +1134,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1212,8 +1212,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1291,8 +1291,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1652,8 +1652,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1738,8 +1738,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1836,8 +1836,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1921,8 +1921,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -2032,8 +2032,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -2143,8 +2143,8 @@ "phone": ["+1234589947", "+1234589948"], "ge": ["male", "male"], "db": ["19950715", "19970615"], - "lastname": ["Ganguly", "Xu"], - "firstName": ["Shrouti", "Alex"], + "lastname": ["Rudderlabs", "Xu"], + "firstName": ["Test", "Alex"], "address": { "city": ["Kolkata", "Mumbai"], "state": ["WB", "MH"], @@ -2254,8 +2254,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -2328,8 +2328,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -2401,8 +2401,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", diff --git a/test/__tests__/data/pinterest_tag_output.json b/test/__tests__/data/pinterest_tag_output.json index 5ee53d6df09..9fb809d112d 100644 --- a/test/__tests__/data/pinterest_tag_output.json +++ b/test/__tests__/data/pinterest_tag_output.json @@ -22,8 +22,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -79,8 +79,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -134,8 +134,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -193,8 +193,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -260,8 +260,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -315,8 +315,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -353,8 +353,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -392,8 +392,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -430,8 +430,8 @@ "advertiser_id": "123456", "user_data": { "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -581,8 +581,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -632,8 +632,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -671,7 +671,12 @@ "advertiser_id": "123456", "app_id": "429047995", "custom_data": { - "contents": [{ "item_price": "undefined", "quantity": 1 }], + "contents": [ + { + "item_price": "undefined", + "quantity": 1 + } + ], "currency": "USD", "num_items": 0, "order_id": "50314b8e9bcf000000000000", @@ -685,9 +690,9 @@ "country": ["582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "hashed_maids": ["6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"] @@ -698,7 +703,9 @@ }, "endpoint": "https://ct.pinterest.com/events/v3", "files": {}, - "headers": { "Content-Type": "application/json" }, + "headers": { + "Content-Type": "application/json" + }, "method": "POST", "params": {}, "type": "REST", @@ -726,8 +733,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -783,8 +790,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -846,11 +853,11 @@ "22bdde2594851294f2a6f4c34af704e68b398b03129ea9ceb58f0ffe33f6db52" ], "ln": [ - "b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8", + "dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251", "9c2f138690fca4890c3c4a6691610fbbbdf32091cc001f7355cfdf574baa52b9" ], "fn": [ - "d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776", + "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", "4135aa9dc1b842a653dea846903ddb95bfb8c5a10c504a7fa16e10bc31d1fdf0" ], "ct": [ @@ -906,8 +913,54 @@ "statusCode": 400, "error": "Conversion Token not found. Aborting" }, - { - "statusCode": 400, - "error": "custom event is not mapped in UI. Make sure to map the event in UI or enable the 'send as custom event' setting" - } + [ + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.pinterest.com/v5/ad_accounts/accountId123/events", + "headers": { + "Content-Type": "application/json", + "Authorization": "Bearer conversionToken123" + }, + "params": {}, + "body": { + "JSON": { + "event_name": "custom event", + "event_time": 1597383030, + "action_source": "web", + "event_id": "7208bbb6-2c4e-45bb-bf5b-ad426f3593e9", + "app_id": "429047995", + "user_data": { + "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], + "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], + "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], + "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], + "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], + "country": ["582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf"], + "hashed_maids": ["6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090"], + "client_user_agent": "chrome" + }, + "custom_data": { + "currency": "USD", + "value": "27.5", + "order_id": "50314b8e9bcf000000000000", + "num_items": 0, + "contents": [ + { + "quantity": 1, + "item_price": "undefined" + } + ] + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + ] ] diff --git a/test/__tests__/data/pinterest_tag_router_batch_output.json b/test/__tests__/data/pinterest_tag_router_batch_output.json index eb33780d535..6fceb08278b 100644 --- a/test/__tests__/data/pinterest_tag_router_batch_output.json +++ b/test/__tests__/data/pinterest_tag_router_batch_output.json @@ -23,8 +23,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -63,8 +63,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -103,8 +103,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -216,8 +216,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -251,8 +251,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -290,8 +290,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -587,8 +587,8 @@ "country": ["582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "hashed_maids": [ "6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090" ], @@ -626,8 +626,8 @@ "country": ["582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "hashed_maids": [ "6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090" ], @@ -664,8 +664,8 @@ "country": ["582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "hashed_maids": [ "6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090" ], @@ -782,8 +782,8 @@ "hashed_maids": [ "6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090" ], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"] diff --git a/test/__tests__/data/pinterest_tag_router_error_input.json b/test/__tests__/data/pinterest_tag_router_error_input.json index 65df074900d..e241ffb864c 100644 --- a/test/__tests__/data/pinterest_tag_router_error_input.json +++ b/test/__tests__/data/pinterest_tag_router_error_input.json @@ -14,8 +14,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", diff --git a/test/__tests__/data/pinterest_tag_router_input.json b/test/__tests__/data/pinterest_tag_router_input.json index c358ca040e6..4b966f948f9 100644 --- a/test/__tests__/data/pinterest_tag_router_input.json +++ b/test/__tests__/data/pinterest_tag_router_input.json @@ -15,8 +15,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -137,8 +137,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -258,8 +258,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -360,8 +360,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -481,8 +481,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -602,8 +602,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -826,8 +826,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -950,8 +950,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1073,8 +1073,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", diff --git a/test/__tests__/data/pinterest_tag_router_output.json b/test/__tests__/data/pinterest_tag_router_output.json index 6aaf53ce0e3..0e128575ee9 100644 --- a/test/__tests__/data/pinterest_tag_router_output.json +++ b/test/__tests__/data/pinterest_tag_router_output.json @@ -23,8 +23,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -63,8 +63,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -103,8 +103,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -142,8 +142,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -177,8 +177,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -216,8 +216,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -438,8 +438,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -477,8 +477,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -516,8 +516,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -554,8 +554,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], diff --git a/test/__tests__/data/pinterest_tag_step_input.json b/test/__tests__/data/pinterest_tag_step_input.json index 7a4ea0c3434..7b4e5071204 100644 --- a/test/__tests__/data/pinterest_tag_step_input.json +++ b/test/__tests__/data/pinterest_tag_step_input.json @@ -14,8 +14,8 @@ "phone": "+1234589947", "gender": "non-binary", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -121,8 +121,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -227,8 +227,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -313,8 +313,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -418,8 +418,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -521,8 +521,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -628,8 +628,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -734,8 +734,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -841,8 +841,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -948,8 +948,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1056,8 +1056,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1134,8 +1134,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1212,8 +1212,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1291,8 +1291,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1652,8 +1652,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1738,8 +1738,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1836,8 +1836,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1921,8 +1921,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -2032,8 +2032,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -2143,8 +2143,8 @@ "phone": ["+1234589947", "+1234589948"], "ge": ["male", "male"], "db": ["19950715", "19970615"], - "lastname": ["Ganguly", "Xu"], - "firstName": ["Shrouti", "Alex"], + "lastname": ["Rudderlabs", "Xu"], + "firstName": ["Test", "Alex"], "address": { "city": ["Kolkata", "Mumbai"], "state": ["WB", "MH"], @@ -2254,8 +2254,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -2328,8 +2328,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -2401,8 +2401,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", diff --git a/test/__tests__/data/pinterest_tag_step_output.json b/test/__tests__/data/pinterest_tag_step_output.json index efdbfda264b..d364bf82dc5 100644 --- a/test/__tests__/data/pinterest_tag_step_output.json +++ b/test/__tests__/data/pinterest_tag_step_output.json @@ -20,8 +20,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -77,8 +77,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -132,8 +132,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -191,8 +191,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -258,8 +258,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -313,8 +313,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -351,8 +351,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -390,8 +390,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -428,8 +428,8 @@ "advertiser_id": "123456", "user_data": { "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -579,8 +579,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -630,8 +630,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -683,9 +683,9 @@ "country": ["582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "hashed_maids": ["6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"] @@ -724,8 +724,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -781,8 +781,8 @@ "user_data": { "em": ["48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"], "ph": ["d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b"], - "ln": ["b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8"], - "fn": ["d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "ct": ["6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85"], "st": ["3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd"], "zp": ["1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c"], @@ -844,11 +844,11 @@ "22bdde2594851294f2a6f4c34af704e68b398b03129ea9ceb58f0ffe33f6db52" ], "ln": [ - "b507b6eb07a0166a64a6c06f5c684c732116d2b9c966e1176c3d7fcc1295bcc8", + "dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251", "9c2f138690fca4890c3c4a6691610fbbbdf32091cc001f7355cfdf574baa52b9" ], "fn": [ - "d03a692ebd9ab84a8147d666baf05673c8113fa436f92e658a25ee306f383776", + "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", "4135aa9dc1b842a653dea846903ddb95bfb8c5a10c504a7fa16e10bc31d1fdf0" ], "ct": [ diff --git a/test/__tests__/data/pipedream_source.json b/test/__tests__/data/pipedream_source.json index 72fe2282cbc..2d542e86738 100644 --- a/test/__tests__/data/pipedream_source.json +++ b/test/__tests__/data/pipedream_source.json @@ -80,7 +80,7 @@ "key2": "V2" }, "email": "john@doe.com", - "name": "Anant Doe", + "name": "John Doe", "userDeleted": false }, "locale": "en", @@ -119,7 +119,7 @@ "key2": "V2" }, "email": "john@doe.com", - "name": "Anant Doe", + "name": "John Doe", "userDeleted": false }, "locale": "en", @@ -150,9 +150,9 @@ "userId": "1", "originalTimestamp": "2020-09-28T19:53:31.900Z", "traits": { - "firstName": "Anant", - "lastName": "jain", - "email": "anant@r.com", + "firstName": "John", + "lastName": "doe", + "email": "John@r.com", "hasPurchased": "yes", "address": { "Home": { @@ -172,9 +172,9 @@ "userId": "1", "originalTimestamp": "2020-09-28T19:53:31.900Z", "traits": { - "firstName": "Anant", - "lastName": "jain", - "email": "anant@r.com", + "firstName": "John", + "lastName": "doe", + "email": "John@r.com", "hasPurchased": "yes", "address": { "Home": { diff --git a/test/__tests__/data/redis_input.json b/test/__tests__/data/redis_input.json deleted file mode 100644 index 05bcdc467bc..00000000000 --- a/test/__tests__/data/redis_input.json +++ /dev/null @@ -1,354 +0,0 @@ -[ - { - "destination": { - "Config": { - "address": "localhost:6379", - "database": "test", - "prefix": " " - }, - "DestinationDefinition": { - "DisplayName": "Redis", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "REDIS" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Redis", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "country": "UK", - "lastname": "Mouse", - "omega": "test", - "omega v2": "test", - "9mega": "test", - "mega&": "test", - "ome$ga": "test", - "alpha$": "test", - "ome_ ga": "test", - "9mega________-________90": "test", - "Cízǔ": "test", - "CamelCase123Key": "test", - "1CComega": "test", - "arrayProp": [{ "x": 1, "y": 2 }], - "nestedProp": { - "innerProp1": "innerPropVal1", - "innerProp2": "innerPropVal2", - "innerProp3": {} - } - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" - }, - "request": {} - }, - { - "destination": { - "Config": { - "address": "localhost:6379", - "database": "test", - "prefix": "TestPrefix" - }, - "DestinationDefinition": { - "DisplayName": "Redis", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "REDIS" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Redis", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "country": "UK", - "lastname": "Mouse", - "omega": "test", - "omega v2": "test", - "9mega": "test", - "mega&": "test", - "ome$ga": "test", - "alpha$": "test", - "ome_ ga": "test", - "9mega________-________90": "test", - "Cízǔ": "test", - "CamelCase123Key": "test", - "1CComega": "test", - "arrayProp": [{ "x": 1, "y": 2 }], - "nestedProp": { - "innerProp1": "innerPropVal1", - "innerProp2": "innerPropVal2", - "innerProp3": {} - } - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" - }, - "request": {} - }, - { - "destination": { - "Config": { - "address": "localhost:6379", - "database": "test", - "prefix": "TestPrefix" - }, - "DestinationDefinition": { - "DisplayName": "Redis", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "REDIS" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Redis", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "country": "UK", - "lastname": "Mouse", - "arrayProp": [{ "x": 1, "y": 2 }], - "nestedProp": { - "innerProp1": "innerPropVal1", - "innerProp2": "innerPropVal2", - "innerProp3": {} - } - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "traits": { - "country": "USA", - "firstname": "Mickey" - }, - "integrations": { - "All": true - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" - }, - "request": {} - }, - { - "destination": { - "Config": { - "address": "localhost:6379", - "database": "test", - "prefix": "TestEmptyKey" - }, - "DestinationDefinition": { - "DisplayName": "Redis", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "REDIS" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Redis", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "country": "UK", - "lastname": "Mouse", - "arrayProp": [{ "x": 1, "y": 2 }], - "emptyKey": "", - "nestedProp": { - "innerProp1": "innerPropVal1", - "innerProp2": "innerPropVal2", - "innerProp3": {} - } - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "traits": { - "country": "USA", - "firstname": "Mickey" - }, - "integrations": { - "All": true - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" - }, - "request": {} - }, - { - "destination": { - "Config": { - "address": "localhost:6379", - "database": "test", - "prefix": "TestPrefix" - }, - "DestinationDefinition": { - "DisplayName": "Redis", - "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", - "Name": "REDIS" - }, - "Enabled": true, - "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", - "Name": "Redis", - "Transformations": [] - }, - "message": { - "anonymousId": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.5" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.5" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "2536eda4-d638-4c93-8014-8ffe3f083214", - "originalTimestamp": "2020-01-24T06:29:02.362Z", - "receivedAt": "2020-01-24T11:59:02.403+05:30", - "request_ip": "[::1]:53708", - "sentAt": "2020-01-24T06:29:02.363Z", - "timestamp": "2020-01-24T11:59:02.402+05:30", - "type": "identify", - "userId": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" - }, - "request": {} - } -] diff --git a/test/__tests__/data/redis_output.json b/test/__tests__/data/redis_output.json deleted file mode 100644 index ed9f13ea28f..00000000000 --- a/test/__tests__/data/redis_output.json +++ /dev/null @@ -1,82 +0,0 @@ -[ - { - "message": { - "key": "user:9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33", - "fields": { - "country": "UK", - "lastname": "Mouse", - "omega": "test", - "omega v2": "test", - "9mega": "test", - "mega&": "test", - "ome$ga": "test", - "alpha$": "test", - "ome_ ga": "test", - "9mega________-________90": "test", - "Cízǔ": "test", - "CamelCase123Key": "test", - "1CComega": "test", - "arrayProp": "[{\"x\":1,\"y\":2}]", - "nestedProp.innerProp1": "innerPropVal1", - "nestedProp.innerProp2": "innerPropVal2" - } - }, - "userId": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" - }, - { - "message": { - "key": "TestPrefix:user:9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33", - "fields": { - "country": "UK", - "lastname": "Mouse", - "omega": "test", - "omega v2": "test", - "9mega": "test", - "mega&": "test", - "ome$ga": "test", - "alpha$": "test", - "ome_ ga": "test", - "9mega________-________90": "test", - "Cízǔ": "test", - "CamelCase123Key": "test", - "1CComega": "test", - "arrayProp": "[{\"x\":1,\"y\":2}]", - "nestedProp.innerProp1": "innerPropVal1", - "nestedProp.innerProp2": "innerPropVal2" - } - }, - "userId": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" - }, - { - "message": { - "key": "TestPrefix:user:9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33", - "fields": { - "country": "USA", - "firstname": "Mickey", - "lastname": "Mouse", - "arrayProp": "[{\"x\":1,\"y\":2}]", - "nestedProp.innerProp1": "innerPropVal1", - "nestedProp.innerProp2": "innerPropVal2" - } - }, - "userId": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" - }, - { - "message": { - "key": "TestEmptyKey:user:9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33", - "fields": { - "country": "USA", - "firstname": "Mickey", - "lastname": "Mouse", - "arrayProp": "[{\"x\":1,\"y\":2}]", - "emptyKey": "", - "nestedProp.innerProp1": "innerPropVal1", - "nestedProp.innerProp2": "innerPropVal2" - } - }, - "userId": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" - }, - { - "error": "context or context.traits or traits is empty" - } -] diff --git a/test/__tests__/data/revenue_cat_input.json b/test/__tests__/data/revenue_cat_input.json deleted file mode 100644 index f6162543977..00000000000 --- a/test/__tests__/data/revenue_cat_input.json +++ /dev/null @@ -1,449 +0,0 @@ -[ - { - "destination": { - "Config": { - "apiKey": "as9d920a5e75a18acb4a29abd9ec1e2e", - "xPlatform": "stripe" - } - }, - "message": { - "userId": "rudder1235678", - "channel": "web", - "context": { - "ip": "14.5.67.21", - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.rudderstack.demo.android", - "version": "1.0" - }, - "device": { - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content" - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Mumbai", - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "type": "identify", - "traits": { - "email": "chandan@companyname.com", - "phone": "92374162212", - "lastname": "Doe", - "density": "420", - "height": "1794", - "width": "1080", - "iterableCampaignId": "1234", - "iterableTemplateId": "1234" - } - } - }, - { - "destination": { - "Config": { - "apiKey": "a5e75dfda29abd920ec1ec8a18acb42e", - "xPlatform": "stripe" - } - }, - "message": { - "userId": "rudder1235678", - "channel": "web", - "context": { - "ip": "14.5.67.21", - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.rudderstack.demo.android", - "version": "1.0" - }, - "device": { - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content" - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Mumbai", - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "type": "identify", - "traits": { - "email": "chandan@companyname.com", - "phone": "92374162212", - "firstname": "James", - "density": 420, - "height": 1794, - "width": 1080, - "iterableCampaignId": "1234", - "iterableTemplateId": "1234" - } - } - }, - { - "destination": { - "Config": { - "xPlatform": "stripe" - } - }, - "message": { - "userId": "rudder1235678", - "channel": "web", - "context": { - "ip": "14.5.67.21", - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.rudderstack.demo.android", - "version": "1.0" - }, - "device": { - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content" - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Mumbai", - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "type": "identify", - "traits": { - "email": "chandan@companyname.com", - "phone": "92374162212", - "name": "John Doe" - } - } - }, - { - "destination": { - "Config": { - "apiKey": "a5e75d99c8a18acb4a29abd920ec1e2e" - } - }, - "message": { - "userId": "rudder1235678", - "channel": "web", - "context": { - "ip": "14.5.67.21", - "app": { - "build": "1", - "name": "RudderAndroidClient", - "namespace": "com.rudderstack.demo.android", - "version": "1.0" - }, - "device": { - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "0.1.4" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content" - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Mumbai", - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" - }, - "type": "identify", - "traits": { - "email": "chandan@companyname.com", - "phone": "92374162212", - "name": "John Doe" - } - } - }, - { - "destination": { - "Config": { - "apiKey": "a5e9abd75d99c8ad3acb4a2920ec1e2e" - } - }, - "message": { - "type": "track", - "userId": "rudder123", - "properties": { - "checkout_id": "12345", - "order_id": "1234", - "affiliation": "Apple Store", - "total": 20, - "revenue": 15.0, - "shipping": 22, - "tax": 1, - "discount": 1.5, - "coupon": "ImagePro", - "currency": "USD", - "fetch_token": "123asd23", - "product_id": "123", - "products": [ - { - "sku": "G-32", - "name": "Monopoly", - "price": 14, - "quantity": 1, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - }, - { - "product_id": "345", - "sku": "F-32", - "name": "UNO", - "price": 3.45, - "quantity": 2, - "category": "Games", - "introductory_price": "250", - "is_restore": false, - "presented_offering_identifier": "123erd" - } - ] - } - } - }, - { - "destination": { - "Config": { - "apiKey": "a5e9abd75d99c8ad3acb4a2920ec1e2e", - "xPlatform": "stripe" - } - }, - "message": { - "type": "track", - "userId": "rudder123", - "properties": { - "checkout_id": "12345", - "order_id": "1234", - "affiliation": "Apple Store", - "total": 20, - "revenue": 15.0, - "shipping": 22, - "tax": 1, - "discount": 1.5, - "coupon": "ImagePro", - "currency": "USD", - "fetch_token": "123asd23", - "product_id": "123", - "products": [ - { - "sku": "G-32", - "name": "Monopoly", - "price": 14, - "quantity": 1, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - }, - { - "product_id": "345", - "sku": "F-32", - "name": "UNO", - "price": 3.45, - "quantity": 2, - "category": "Games", - "introductory_price": "250", - "is_restore": false, - "presented_offering_identifier": "123erd" - } - ] - } - } - }, - { - "destination": { - "Config": { - "apiKey": "a5e9abd75d99c8ad3acb4a2920ec1e2e", - "xPlatform": "stripe" - } - }, - "message": { - "type": "track", - "userId": "rudder123", - "properties": { - "checkout_id": "12345", - "order_id": "1234", - "affiliation": "Apple Store", - "total": 20, - "revenue": 15.0, - "shipping": 22, - "tax": 1, - "discount": 1.5, - "coupon": "ImagePro", - "currency": "USD", - "fetch_token": "123asd23", - "product_id": "123-sa", - "products": [ - { - "sku": "G-32", - "name": "Monopoly", - "price": 14, - "quantity": 1, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - }, - { - "product_id": "345", - "sku": "F-32", - "name": "UNO", - "price": 3.45, - "quantity": 2, - "category": "Games", - "introductory_price": "250", - "is_restore": false, - "presented_offering_identifier": "123erd" - }, - { - "sku": "G-33", - "name": "SunGlass", - "price": 14, - "quantity": 1, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - }, - { - "sku": "G-35", - "product_id": "1234sb", - "name": "Real-me", - "price": 14, - "quantity": 1, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - } - ] - } - } - }, - { - "destination": { - "Config": { - "apiKey": "a5e9abd75d99c8ad3acb4a2920ec1e2e", - "xPlatform": "stripe" - } - }, - "message": { - "type": "track", - "userId": "rudder123", - "properties": { - "checkout_id": "12345", - "order_id": "1234", - "affiliation": "Apple Store", - "total": 20, - "revenue": 15.0, - "shipping": 22, - "tax": 1, - "discount": 1.5, - "coupon": "ImagePro", - "currency": "USD", - "fetch_token": "123asd23", - "product_id": "123-sa", - "sku": "G-32", - "name": "Monopoly", - "price": 14, - "quantity": 1, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - } - } - } -] diff --git a/test/__tests__/data/revenue_cat_output.json b/test/__tests__/data/revenue_cat_output.json deleted file mode 100644 index 6c1cf88454e..00000000000 --- a/test/__tests__/data/revenue_cat_output.json +++ /dev/null @@ -1,424 +0,0 @@ -[ - [ - { - "version": "1", - "type": "REST", - "method": "GET", - "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678", - "headers": { - "Authorization": "Basic as9d920a5e75a18acb4a29abd9ec1e2e", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678/attributes", - "headers": { - "Authorization": "Basic as9d920a5e75a18acb4a29abd9ec1e2e", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "attributes": { - "app_user_id": { - "value": "rudder1235678" - }, - "$email": { - "value": "chandan@companyname.com" - }, - "$phoneNumber": { - "value": "92374162212" - }, - "$ip": { - "value": "14.5.67.21" - }, - "$iterableCampaignId": { - "value": "1234" - }, - "$iterableTemplateId": { - "value": "1234" - }, - "$displayName": { - "value": "Doe" - }, - "lastname": { - "value": "Doe" - }, - "density": { - "value": "420" - }, - "height": { - "value": "1794" - }, - "width": { - "value": "1080" - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "GET", - "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678", - "headers": { - "Authorization": "Basic a5e75dfda29abd920ec1ec8a18acb42e", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678/attributes", - "headers": { - "Authorization": "Basic a5e75dfda29abd920ec1ec8a18acb42e", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "attributes": { - "app_user_id": { - "value": "rudder1235678" - }, - "$email": { - "value": "chandan@companyname.com" - }, - "$phoneNumber": { - "value": "92374162212" - }, - "$ip": { - "value": "14.5.67.21" - }, - "$iterableCampaignId": { - "value": "1234" - }, - "$iterableTemplateId": { - "value": "1234" - }, - "$displayName": { - "value": "James" - }, - "firstname": { - "value": "James" - }, - "density": { - "value": "420" - }, - "height": { - "value": "1794" - }, - "width": { - "value": "1080" - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - { - "statusCode": 400, - "error": "Public API Key required for Authentication", - "statTags": { - "destination": "revenue_cat", - "stage": "transform", - "scope": "exception" - } - }, - [ - { - "version": "1", - "type": "REST", - "method": "GET", - "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678", - "headers": { - "Authorization": "Basic a5e75d99c8a18acb4a29abd920ec1e2e", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678/attributes", - "headers": { - "Authorization": "Basic a5e75d99c8a18acb4a29abd920ec1e2e", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "attributes": { - "app_user_id": { - "value": "rudder1235678" - }, - "$displayName": { - "value": "John Doe" - }, - "$email": { - "value": "chandan@companyname.com" - }, - "$phoneNumber": { - "value": "92374162212" - }, - "$ip": { - "value": "14.5.67.21" - } - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - { - "statusCode": 400, - "error": "X-Platform is required field", - "statTags": { - "destination": "revenue_cat", - "stage": "transform", - "scope": "exception" - } - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/receipts", - "headers": { - "Authorization": "Basic a5e9abd75d99c8ad3acb4a2920ec1e2e", - "Content-Type": "application/json", - "X-Platform": "stripe" - }, - "params": {}, - "body": { - "JSON": { - "app_user_id": "rudder123", - "fetch_token": "123asd23", - "product_id": "123", - "currency": "USD", - "price": 14, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/receipts", - "headers": { - "Authorization": "Basic a5e9abd75d99c8ad3acb4a2920ec1e2e", - "Content-Type": "application/json", - "X-Platform": "stripe" - }, - "params": {}, - "body": { - "JSON": { - "app_user_id": "rudder123", - "fetch_token": "123asd23", - "product_id": "345", - "currency": "USD", - "price": 3.45, - "introductory_price": "250", - "is_restore": false, - "presented_offering_identifier": "123erd" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/receipts", - "headers": { - "Authorization": "Basic a5e9abd75d99c8ad3acb4a2920ec1e2e", - "Content-Type": "application/json", - "X-Platform": "stripe" - }, - "params": {}, - "body": { - "JSON": { - "app_user_id": "rudder123", - "fetch_token": "123asd23", - "product_id": "123-sa", - "currency": "USD", - "price": 14, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/receipts", - "headers": { - "Authorization": "Basic a5e9abd75d99c8ad3acb4a2920ec1e2e", - "Content-Type": "application/json", - "X-Platform": "stripe" - }, - "params": {}, - "body": { - "JSON": { - "app_user_id": "rudder123", - "fetch_token": "123asd23", - "product_id": "345", - "currency": "USD", - "price": 3.45, - "introductory_price": "250", - "is_restore": false, - "presented_offering_identifier": "123erd" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/receipts", - "headers": { - "Authorization": "Basic a5e9abd75d99c8ad3acb4a2920ec1e2e", - "Content-Type": "application/json", - "X-Platform": "stripe" - }, - "params": {}, - "body": { - "JSON": { - "app_user_id": "rudder123", - "fetch_token": "123asd23", - "product_id": "123-sa", - "currency": "USD", - "price": 14, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.revenuecat.com/v1/receipts", - "headers": { - "Authorization": "Basic a5e9abd75d99c8ad3acb4a2920ec1e2e", - "Content-Type": "application/json", - "X-Platform": "stripe" - }, - "params": {}, - "body": { - "JSON": { - "app_user_id": "rudder123", - "fetch_token": "123asd23", - "product_id": "1234sb", - "currency": "USD", - "price": 14, - "introductory_price": "350", - "is_restore": true, - "presented_offering_identifier": "123erd" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "price": 14, - "currency": "USD", - "is_restore": true, - "product_id": "123-sa", - "app_user_id": "rudder123", - "fetch_token": "123asd23", - "introductory_price": "350", - "presented_offering_identifier": "123erd" - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "X-Platform": "stripe", - "Content-Type": "application/json", - "Authorization": "Basic a5e9abd75d99c8ad3acb4a2920ec1e2e" - }, - "version": "1", - "endpoint": "https://api.revenuecat.com/v1/receipts" - } -] diff --git a/test/__tests__/data/rockerbox_router_input.json b/test/__tests__/data/rockerbox_router_input.json index dfc54f4f2a7..7b03502663e 100644 --- a/test/__tests__/data/rockerbox_router_input.json +++ b/test/__tests__/data/rockerbox_router_input.json @@ -125,7 +125,7 @@ } }, "metadata": { - "jobId": 1 + "jobId": 2 }, "message": { "type": "track", diff --git a/test/__tests__/data/rockerbox_router_output.json b/test/__tests__/data/rockerbox_router_output.json index 59d993241eb..5394fcd2202 100644 --- a/test/__tests__/data/rockerbox_router_output.json +++ b/test/__tests__/data/rockerbox_router_output.json @@ -150,7 +150,7 @@ }, "metadata": [ { - "jobId": 1 + "jobId": 2 } ], "statusCode": 200 diff --git a/test/__tests__/data/salesforce_input.json b/test/__tests__/data/salesforce_input.json deleted file mode 100644 index ee74b702b85..00000000000 --- a/test/__tests__/data/salesforce_input.json +++ /dev/null @@ -1,798 +0,0 @@ -[ - { - "destination": { - "Config": { - "initialAccessToken": "9f58ryaM64FZp0rg3jyDV4PB5", - "password": "hJCR557#uzFfD", - "userName": "sampathvinayak1453@gmail.com" - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1WqFFH5esuVPnUgHkvEoYxDcX3y", - "Name": "tst", - "Transformations": [] - }, - "message": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "company": "Initech", - "address": { - "city": "east greenwich", - "country": "USA", - "state": "California", - "street": "19123 forest lane", - "postalCode": "94115" - }, - "email": "peter.gibbons@initech.com", - "name": "Peter Gibbons", - "phone": "570-690-4150", - "rating": "Hot", - "title": "VP of Derp" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "f19c35da-e9de-4c6e-b6e5-9e60cccc12c8", - "originalTimestamp": "2020-01-27T12:20:55.301Z", - "receivedAt": "2020-01-27T17:50:58.657+05:30", - "request_ip": "14.98.244.60", - "sentAt": "2020-01-27T12:20:56.849Z", - "timestamp": "2020-01-27T17:50:57.109+05:30", - "type": "identify", - "userId": "1e7673da-9473-49c6-97f7-da848ecafa76" - } - }, - { - "destination": { - "Config": { - "initialAccessToken": "9f58ryaM64FZp0rg3jyDV4PB5", - "password": "hJCR557#uzFfD", - "userName": "sampathvinayak1453@gmail.com" - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1WqFFH5esuVPnUgHkvEoYxDcX3y", - "Name": "tst", - "Transformations": [] - }, - "message": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" - }, - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "company": "Initech", - "address": { - "city": "east greenwich", - "country": "USA", - "state": "California", - "street": "19123 forest lane", - "postalCode": "94115" - }, - "email": "peter.gibbons@initech.com", - "name": "Peter Gibbons", - "phone": "570-690-4150", - "rating": "Hot", - "title": "VP of Derp" - }, - "messageId": "f19c35da-e9de-4c6e-b6e5-9e60cccc12c8", - "originalTimestamp": "2020-01-27T12:20:55.301Z", - "receivedAt": "2020-01-27T17:50:58.657+05:30", - "request_ip": "14.98.244.60", - "sentAt": "2020-01-27T12:20:56.849Z", - "timestamp": "2020-01-27T17:50:57.109+05:30", - "type": "identify", - "userId": "1e7673da-9473-49c6-97f7-da848ecafa76" - } - }, - { - "destination": { - "Config": { - "initialAccessToken": "9f58ryaM64FZp0rg3jyDV4PB5", - "password": "hJCR557#uzFfD", - "userName": "sampathvinayak1453@gmail.com" - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1WqFFH5esuVPnUgHkvEoYxDcX3y", - "Name": "tst", - "Transformations": [] - }, - "message": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" - }, - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "company": "Initech", - "address": { - "city": "east greenwich", - "country": "USA", - "state": "California", - "street": "19123 forest lane", - "postalCode": "94115" - }, - "email": "peter.gibbons@initech.com", - "name": "Peter Gibbons", - "phone": "570-690-4150", - "rating": "Hot", - "title": "VP of Derp", - "LeadSource": "RudderLabs" - }, - "messageId": "f19c35da-e9de-4c6e-b6e5-9e60cccc12c8", - "originalTimestamp": "2020-01-27T12:20:55.301Z", - "receivedAt": "2020-01-27T17:50:58.657+05:30", - "request_ip": "14.98.244.60", - "sentAt": "2020-01-27T12:20:56.849Z", - "timestamp": "2020-01-27T17:50:57.109+05:30", - "type": "identify", - "userId": "1e7673da-9473-49c6-97f7-da848ecafa76" - } - }, - { - "destination": { - "Config": { - "initialAccessToken": "9f58ryaM64FZp0rg3jyDV4PB5", - "password": "hJCR557#uzFfD", - "userName": "sampathvinayak1453@gmail.com" - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1WqFFH5esuVPnUgHkvEoYxDcX3y", - "Name": "tst", - "Transformations": [] - }, - "message": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" - }, - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "company": "Initech", - "address": { - "city": "east greenwich", - "country": "USA", - "state": "California", - "street": "19123 forest lane", - "postalCode": "94115" - }, - "email": "peter.gibbons@initech.com", - "name": "Peter Gibbons", - "phone": "570-690-4150", - "rating": "Hot", - "title": "VP of Derp", - "LeadSource": "RudderLabs" - }, - "messageId": "f19c35da-e9de-4c6e-b6e5-9e60cccc12c8", - "originalTimestamp": "2020-01-27T12:20:55.301Z", - "receivedAt": "2020-01-27T17:50:58.657+05:30", - "request_ip": "14.98.244.60", - "sentAt": "2020-01-27T12:20:56.849Z", - "timestamp": "2020-01-27T17:50:57.109+05:30", - "type": "track", - "userId": "1e7673da-9473-49c6-97f7-da848ecafa76" - } - }, - { - "destination": { - "Config": { - "initialAccessToken": "9f58ryaM64FZp0rg3jyDV4PB5", - "password": "hJCR557#uzFfD", - "userName": "sampathvinayak1453@gmail.com" - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1WqFFH5esuVPnUgHkvEoYxDcX3y", - "Name": "tst", - "Transformations": [] - }, - "message": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" - }, - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "company": "Initech", - "address": { - "city": "east greenwich", - "country": "USA", - "state": "California", - "street": "19123 forest lane", - "postalCode": "94115" - }, - "email": "peter.gibbons@initech.com", - "name": "Peter Gibbons", - "phone": "570-690-4150", - "rating": "Hot", - "title": "VP of Derp", - "LeadSource": "RudderLabs", - "customKey": "customValue", - "customNullValue": null - }, - "messageId": "f19c35da-e9de-4c6e-b6e5-9e60cccc12c8", - "originalTimestamp": "2020-01-27T12:20:55.301Z", - "receivedAt": "2020-01-27T17:50:58.657+05:30", - "request_ip": "14.98.244.60", - "sentAt": "2020-01-27T12:20:56.849Z", - "timestamp": "2020-01-27T17:50:57.109+05:30", - "type": "identify", - "userId": "1e7673da-9473-49c6-97f7-da848ecafa76" - } - }, - { - "destination": { - "Config": { - "initialAccessToken": "9f58ryaM64FZp0rg3jyDV4PB5", - "password": "hJCR557#uzFfD", - "userName": "sampathvinayak1453@gmail.com" - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1WqFFH5esuVPnUgHkvEoYxDcX3y", - "Name": "tst", - "Transformations": [] - }, - "message": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" - }, - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "address": { - "city": "east greenwich", - "country": "USA", - "state": "California", - "street": "19123 forest lane", - "postalCode": "94115" - }, - "email": "peter.gibbons@initech.com", - "phone": "570-690-4150", - "rating": "Hot", - "title": "VP of Derp", - "LeadSource": "RudderLabs", - "customKey": "customValue", - "customNullValue": null - }, - "messageId": "f19c35da-e9de-4c6e-b6e5-9e60cccc12c8", - "originalTimestamp": "2020-01-27T12:20:55.301Z", - "receivedAt": "2020-01-27T17:50:58.657+05:30", - "request_ip": "14.98.244.60", - "sentAt": "2020-01-27T12:20:56.849Z", - "timestamp": "2020-01-27T17:50:57.109+05:30", - "type": "identify", - "userId": "1e7673da-9473-49c6-97f7-da848ecafa76" - } - }, - { - "destination": { - "Config": { - "initialAccessToken": "9f58ryaM64FZp0rg3jyDV4PB5", - "password": "hJCR557#uzFfD", - "userName": "sampathvinayak1453@gmail.com" - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1WqFFH5esuVPnUgHkvEoYxDcX3y", - "Name": "tst", - "Transformations": [] - }, - "message": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "City": "east greenwich", - "Company": "Initech", - "Country": "USA", - "Email": "peter.gibbons@initech.com", - "FirstName": "Peter", - "LastName": "Gibbons", - "Phone": "570-690-4150", - "PostalCode": "94115", - "Rating": "Hot", - "State": "California", - "Street": "19123 forest lane", - "Title": "VP of Derp" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36", - "externalId": [ - { - "type": "Salesforce-Contact", - "id": "sf-contact-id" - } - ] - }, - "integrations": { - "All": true - }, - "messageId": "f19c35da-e9de-4c6e-b6e5-9e60cccc12c8", - "originalTimestamp": "2020-01-27T12:20:55.301Z", - "receivedAt": "2020-01-27T17:50:58.657+05:30", - "request_ip": "14.98.244.60", - "sentAt": "2020-01-27T12:20:56.849Z", - "timestamp": "2020-01-27T17:50:57.109+05:30", - "type": "identify", - "userId": "1e7673da-9473-49c6-97f7-da848ecafa76" - } - }, - { - "destination": { - "Config": { - "initialAccessToken": "9f58ryaM64FZp0rg3jyDV4PB5", - "password": "hJCR557#uzFfD", - "userName": "sampathvinayak1453@gmail.com", - "mapProperty": false - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1WqFFH5esuVPnUgHkvEoYxDcX3y", - "Name": "tst", - "Transformations": [] - }, - "message": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "Phone": "570-690-4150", - "Rating": "Hot", - "Title": "VP of Derp", - "FirstName": "Peter", - "LastName": "Gibbons", - "PostalCode": "94115", - "City": "east greenwich", - "Country": "USA", - "State": "California", - "Street": "19123 forest lane", - "Company": "Initech" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36", - "externalId": [ - { - "type": "Salesforce-Lead", - "id": "sf-contact-id" - } - ] - }, - "integrations": { - "All": true - }, - "messageId": "f19c35da-e9de-4c6e-b6e5-9e60cccc12c8", - "originalTimestamp": "2020-01-27T12:20:55.301Z", - "receivedAt": "2020-01-27T17:50:58.657+05:30", - "request_ip": "14.98.244.60", - "sentAt": "2020-01-27T12:20:56.849Z", - "timestamp": "2020-01-27T17:50:57.109+05:30", - "type": "identify", - "userId": "1e7673da-9473-49c6-97f7-da848ecafa76" - } - }, - { - "destination": { - "Config": { - "initialAccessToken": "7fiy1FKcO9sohsxq1v6J88sg", - "password": "vfNx8&8%JR", - "userName": "utsab.c97-qvpd@force.com.test", - "sandbox": true - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1ut7LcVW1QC56y2EoTNo7ZwBWSY", - "Name": "Test SF", - "Transformations": [] - }, - "message": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "company": "Initech", - "address": { - "city": "east greenwich", - "country": "USA", - "state": "California", - "street": "19123 forest lane", - "postalCode": "94115" - }, - "email": "peter.gibbons@initech.com", - "name": "Peter Gibbons", - "phone": "570-690-4150", - "rating": "Hot", - "title": "VP of Derp" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "f19c35da-e9de-4c6e-b6e5-9e60cccc12c8", - "originalTimestamp": "2020-01-27T12:20:55.301Z", - "receivedAt": "2020-01-27T17:50:58.657+05:30", - "request_ip": "14.98.244.60", - "sentAt": "2020-01-27T12:20:56.849Z", - "timestamp": "2020-01-27T17:50:57.109+05:30", - "type": "identify", - "userId": "1e7673da-9473-49c6-97f7-da848ecafa76" - } - }, - { - "destination": { - "Config": { - "initialAccessToken": "7fiy1FKcO9sohsxq1v6J88sg", - "password": "vfNx8&8%JR", - "userName": "utsab.c97-qvpd@force.com.test", - "sandbox": true - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1ut7LcVW1QC56y2EoTNo7ZwBWSY", - "Name": "Test SF", - "Transformations": [] - }, - "message": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "channel": "web", - "context": { - "mappedToDestination": true, - "externalId": [ - { - "id": "a005g0000383kmUAAQ", - "type": "SALESFORCE-custom_object__c", - "identifierType": "Id" - } - ], - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "john@rs.com", - "firstname": "john doe" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "f19c35da-e9de-4c6e-b6e5-9e60cccc12c8", - "originalTimestamp": "2020-01-27T12:20:55.301Z", - "receivedAt": "2020-01-27T17:50:58.657+05:30", - "request_ip": "14.98.244.60", - "sentAt": "2020-01-27T12:20:56.849Z", - "timestamp": "2020-01-27T17:50:57.109+05:30", - "type": "identify", - "userId": "1e7673da-9473-49c6-97f7-da848ecafa76" - } - }, - { - "destination": { - "Config": { - "initialAccessToken": "7fiy1FKcO9sohsxq1v6J88sg", - "password": "vfNx8&8%JR", - "userName": "utsab.c97-qvpd@force.com.test", - "sandbox": true - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1ut7LcVW1QC56y2EoTNo7ZwBWSY", - "Name": "Test SF", - "Transformations": [] - }, - "message": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "channel": "web", - "context": { - "mappedToDestination": true, - "externalId": [ - { - "id": "a005g0000383kmUAAQ", - "type": "SALESFORCE-custom_object__c", - "identifierType": "Id" - } - ], - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "email": "john@rs.com", - "firstname": "john doe", - "Id": "some-id" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "f19c35da-e9de-4c6e-b6e5-9e60cccc12c8", - "originalTimestamp": "2020-01-27T12:20:55.301Z", - "receivedAt": "2020-01-27T17:50:58.657+05:30", - "request_ip": "14.98.244.60", - "sentAt": "2020-01-27T12:20:56.849Z", - "timestamp": "2020-01-27T17:50:57.109+05:30", - "type": "identify", - "userId": "1e7673da-9473-49c6-97f7-da848ecafa76" - } - } -] diff --git a/test/__tests__/data/salesforce_output.json b/test/__tests__/data/salesforce_output.json deleted file mode 100644 index 69b383d23ac..00000000000 --- a/test/__tests__/data/salesforce_output.json +++ /dev/null @@ -1,320 +0,0 @@ -[ - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY" - }, - "params": {}, - "body": { - "JSON": { - "Email": "peter.gibbons@initech.com", - "Phone": "570-690-4150", - "Rating": "Hot", - "Title": "VP of Derp", - "FirstName": "Peter", - "LastName": "Gibbons", - "PostalCode": "94115", - "City": "east greenwich", - "Country": "USA", - "State": "California", - "Street": "19123 forest lane", - "Company": "Initech" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY" - }, - "params": {}, - "body": { - "JSON": { - "Email": "peter.gibbons@initech.com", - "Phone": "570-690-4150", - "Rating": "Hot", - "Title": "VP of Derp", - "FirstName": "Peter", - "LastName": "Gibbons", - "PostalCode": "94115", - "City": "east greenwich", - "Country": "USA", - "State": "California", - "Street": "19123 forest lane", - "Company": "Initech" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY" - }, - "params": {}, - "body": { - "JSON": { - "Email": "peter.gibbons@initech.com", - "Phone": "570-690-4150", - "Rating": "Hot", - "Title": "VP of Derp", - "FirstName": "Peter", - "LastName": "Gibbons", - "PostalCode": "94115", - "City": "east greenwich", - "Country": "USA", - "State": "California", - "Street": "19123 forest lane", - "Company": "Initech", - "LeadSource": "RudderLabs" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ], - { - "statusCode": 400, - "error": "message type track is not supported" - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY" - }, - "params": {}, - "body": { - "JSON": { - "Email": "peter.gibbons@initech.com", - "Phone": "570-690-4150", - "Rating": "Hot", - "Title": "VP of Derp", - "FirstName": "Peter", - "LastName": "Gibbons", - "PostalCode": "94115", - "City": "east greenwich", - "Country": "USA", - "State": "California", - "Street": "19123 forest lane", - "Company": "Initech", - "LeadSource": "RudderLabs", - "customKey__c": "customValue" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY" - }, - "params": {}, - "body": { - "JSON": { - "Email": "peter.gibbons@initech.com", - "Phone": "570-690-4150", - "Rating": "Hot", - "Title": "VP of Derp", - "PostalCode": "94115", - "LastName": "n/a", - "City": "east greenwich", - "Country": "USA", - "State": "California", - "Street": "19123 forest lane", - "Company": "n/a", - "LeadSource": "RudderLabs", - "customKey__c": "customValue" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ap15.salesforce.com/services/data/v50.0/sobjects/Contact/sf-contact-id?_HttpMethod=PATCH", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY" - }, - "params": {}, - "body": { - "JSON": { - "Email__c": "peter.gibbons@initech.com", - "Phone__c": "570-690-4150", - "Rating__c": "Hot", - "Title__c": "VP of Derp", - "FirstName__c": "Peter", - "LastName": "n/a", - "LastName__c": "Gibbons", - "PostalCode__c": "94115", - "City__c": "east greenwich", - "Country__c": "USA", - "State__c": "California", - "Street__c": "19123 forest lane", - "Company__c": "Initech" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead/sf-contact-id?_HttpMethod=PATCH", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY" - }, - "params": {}, - "body": { - "JSON": { - "Phone": "570-690-4150", - "Rating": "Hot", - "Title": "VP of Derp", - "FirstName": "Peter", - "LastName": "Gibbons", - "PostalCode": "94115", - "City": "east greenwich", - "Country": "USA", - "State": "California", - "Street": "19123 forest lane", - "Company": "Initech" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY" - }, - "params": {}, - "body": { - "JSON": { - "Email": "peter.gibbons@initech.com", - "Phone": "570-690-4150", - "Rating": "Hot", - "Title": "VP of Derp", - "FirstName": "Peter", - "LastName": "Gibbons", - "PostalCode": "94115", - "City": "east greenwich", - "Country": "USA", - "State": "California", - "Street": "19123 forest lane", - "Company": "Initech" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ap15.salesforce.com/services/data/v50.0/sobjects/custom_object__c/a005g0000383kmUAAQ?_HttpMethod=PATCH", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY" - }, - "params": {}, - "body": { - "JSON": { - "email": "john@rs.com", - "firstname": "john doe" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ap15.salesforce.com/services/data/v50.0/sobjects/custom_object__c/a005g0000383kmUAAQ?_HttpMethod=PATCH", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY" - }, - "params": {}, - "body": { - "JSON": { - "email": "john@rs.com", - "firstname": "john doe" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ] -] diff --git a/test/__tests__/data/salesforce_proxy_input.json b/test/__tests__/data/salesforce_proxy_input.json deleted file mode 100644 index f04c3afe4e7..00000000000 --- a/test/__tests__/data/salesforce_proxy_input.json +++ /dev/null @@ -1,260 +0,0 @@ -[ - { - "type": "REST", - "files": {}, - "method": "POST", - "userId": "", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer token" - }, - "version": "1", - "endpoint": "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/1", - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "Email": "denis.kornilov@sbermarket.ru", - "Company": "sbermarket.ru", - "LastName": "Корнилов", - "FirstName": "Денис", - "LeadSource": "App Signup", - "account_type__c": "free_trial" - }, - "JSON_ARRAY": {} - }, - "metadata": { - "destInfo": { - "authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf" - } - }, - "params": { - "destination": "salesforce" - } - }, - { - "type": "REST", - "files": {}, - "method": "POST", - "userId": "", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer token" - }, - "version": "1", - "endpoint": "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/3", - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "Email": "denis.kornilov@sbermarket.ru", - "Company": "sbermarket.ru", - "LastName": "Корнилов", - "FirstName": "Денис", - "LeadSource": "App Signup", - "account_type__c": "free_trial" - }, - "JSON_ARRAY": {} - }, - "metadata": { - "destInfo": { - "authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf" - } - }, - "params": { - "destination": "salesforce" - } - }, - { - "type": "REST", - "files": {}, - "method": "POST", - "userId": "", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer Incorrect_token" - }, - "version": "1", - "endpoint": "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/2", - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "Email": "denis.kornilov@sbermarket.ru", - "Company": "sbermarket.ru", - "LastName": "Корнилов", - "FirstName": "Денис", - "LeadSource": "App Signup", - "account_type__c": "free_trial" - }, - "JSON_ARRAY": {} - }, - "metadata": { - "destInfo": { - "authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf" - } - }, - "params": { - "destination": "salesforce" - } - }, - { - "type": "REST", - "files": {}, - "method": "POST", - "userId": "", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer token" - }, - "version": "1", - "endpoint": "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/4", - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "Email": "denis.kornilov@sbermarket.ru", - "Company": "sbermarket.ru", - "LastName": "Корнилов", - "FirstName": "Денис", - "LeadSource": "App Signup", - "account_type__c": "free_trial" - }, - "JSON_ARRAY": {} - }, - "metadata": { - "destInfo": { - "authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf" - } - }, - "params": { - "destination": "salesforce" - } - }, - { - "type": "REST", - "files": {}, - "method": "POST", - "userId": "", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer token" - }, - "version": "1", - "endpoint": "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/5", - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "Email": "denis.kornilov@sbermarket.ru", - "Company": "sbermarket.ru", - "LastName": "Корнилов", - "FirstName": "Денис", - "LeadSource": "App Signup", - "account_type__c": "free_trial" - }, - "JSON_ARRAY": {} - }, - "metadata": { - "destInfo": { - "authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf" - } - }, - "params": { - "destination": "salesforce" - } - }, - { - "type": "REST", - "files": {}, - "method": "POST", - "userId": "", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer token" - }, - "version": "1", - "endpoint": "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/6", - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "Email": "denis.kornilov@sbermarket.ru", - "Company": "sbermarket.ru", - "LastName": "Корнилов", - "FirstName": "Денис", - "LeadSource": "App Signup", - "account_type__c": "free_trial" - }, - "JSON_ARRAY": {} - }, - "metadata": { - "destInfo": { - "authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf" - } - }, - "params": { - "destination": "salesforce" - } - }, - { - "type": "REST", - "files": {}, - "method": "POST", - "userId": "", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer token" - }, - "version": "1", - "endpoint": "https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/7", - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "Email": "denis.kornilov@sbermarket.ru", - "Company": "sbermarket.ru", - "LastName": "Корнилов", - "FirstName": "Денис", - "LeadSource": "App Signup", - "account_type__c": "free_trial" - }, - "JSON_ARRAY": {} - }, - "metadata": { - "destInfo": { - "authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf" - } - }, - "params": { - "destination": "salesforce" - } - }, - { - "type": "REST", - "method": "POST", - "endpoint": "https://rudderstack.my.salesforce.com/services/data/v50.0/parameterizedSearch/?q=external_id&sobject=object_name&in=External_ID__c&object_name.fields=id,External_ID__c", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer token" - }, - "body": { - "JSON": { - "Planning_Categories__c": "pc", - "External_ID__c": "external_id" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "metadata": { - "destInfo": { - "authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf" - } - }, - "params": { - "destination": "salesforce" - } - } -] diff --git a/test/__tests__/data/salesforce_proxy_output.json b/test/__tests__/data/salesforce_proxy_output.json deleted file mode 100644 index e5fc2f0bb39..00000000000 --- a/test/__tests__/data/salesforce_proxy_output.json +++ /dev/null @@ -1,210 +0,0 @@ -[ - { - "output": { - "status": 200, - "message": "Request for destination: salesforce Processed Successfully", - "destinationResponse": { - "response": { - "statusText": "No Content" - }, - "status": 204, - "rudderJobMetadata": { - "destInfo": { - "authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf" - } - } - } - } - }, - { - "output": { - "status": 500, - "message": "Salesforce Request Failed - due to \"INVALID_SESSION_ID\", (Retryable) during Salesforce Response Handling", - "destinationResponse": { - "response": [ - { - "message": "Session expired or invalid", - "errorCode": "INVALID_SESSION_ID" - } - ], - "status": 401, - "rudderJobMetadata": { - "destInfo": { - "authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf" - } - } - }, - "statTags": { - "destType": "SALESFORCE", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "retryable", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - }, - { - "output": { - "status": 400, - "message": "Salesforce Request Failed: \"401\" due to \"INVALID_HEADER_TYPE\", (Aborted) during Salesforce Response Handling", - "destinationResponse": { - "response": [ - { - "message": "INVALID_HEADER_TYPE", - "errorCode": "INVALID_AUTH_HEADER" - } - ], - "status": 401, - "rudderJobMetadata": { - "destInfo": { - "authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf" - } - } - }, - "statTags": { - "destType": "SALESFORCE", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - }, - { - "output": { - "status": 429, - "message": "Salesforce Request Failed - due to \"REQUEST_LIMIT_EXCEEDED\", (Throttled) during Salesforce Response Handling", - "destinationResponse": { - "response": [ - { - "message": "Request limit exceeded", - "errorCode": "REQUEST_LIMIT_EXCEEDED" - } - ], - "status": 403, - "rudderJobMetadata": { - "destInfo": { - "authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf" - } - } - }, - "statTags": { - "destType": "SALESFORCE", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "throttled", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - }, - { - "output": { - "status": 500, - "message": "Salesforce Request Failed - due to \"Server Unavailable\", (Retryable) during Salesforce Response Handling", - "destinationResponse": { - "response": [ - { - "message": "Server Unavailable", - "errorCode": "SERVER_UNAVAILABLE" - } - ], - "status": 503, - "rudderJobMetadata": { - "destInfo": { - "authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf" - } - } - }, - "statTags": { - "destType": "SALESFORCE", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "retryable", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - }, - { - "output": { - "status": 400, - "message": "Salesforce Request Failed: \"400\" due to \"{\"error\":\"invalid_grant\",\"error_description\":\"authentication failure\"}\", (Aborted) during Salesforce Response Handling", - "destinationResponse": { - "response": { - "error": "invalid_grant", - "error_description": "authentication failure" - }, - "status": 400, - "rudderJobMetadata": { - "destInfo": { - "authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf" - } - } - }, - "statTags": { - "destType": "SALESFORCE", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "aborted", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - }, - { - "output": { - "destinationResponse": { - "response": { - "errorCode": "SERVER_UNAVAILABLE", - "message": "Server Unavailable" - }, - "rudderJobMetadata": { - "destInfo": { - "authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf" - } - }, - "status": 503 - }, - "message": "Salesforce Request Failed - due to \"{\"message\":\"Server Unavailable\",\"errorCode\":\"SERVER_UNAVAILABLE\"}\", (Retryable) during Salesforce Response Handling", - "statTags": { - "destType": "SALESFORCE", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "retryable", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - }, - "status": 500 - } - }, - { - "output": { - "status": 200, - "message": "Request for destination: salesforce Processed Successfully", - "destinationResponse": { - "response": "", - "status": 200, - "rudderJobMetadata": { - "destInfo": { - "authKey": "2HezPl1w11opbFSxnLDEgZ7kWTf" - } - } - } - } - } -] diff --git a/test/__tests__/data/salesforce_router_input.json b/test/__tests__/data/salesforce_router_input.json deleted file mode 100644 index f618a250df6..00000000000 --- a/test/__tests__/data/salesforce_router_input.json +++ /dev/null @@ -1,278 +0,0 @@ -[ - { - "message": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "company": "Initech", - "address": { - "city": "east greenwich", - "country": "USA", - "state": "California", - "street": "19123 forest lane", - "postalCode": "94115" - }, - "email": "peter.gibbons@initech.com", - "name": "Peter Gibbons", - "phone": "570-690-4150", - "rating": "Hot", - "title": "VP of Derp" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "f19c35da-e9de-4c6e-b6e5-9e60cccc12c8", - "originalTimestamp": "2020-01-27T12:20:55.301Z", - "receivedAt": "2020-01-27T17:50:58.657+05:30", - "request_ip": "14.98.244.60", - "sentAt": "2020-01-27T12:20:56.849Z", - "timestamp": "2020-01-27T17:50:57.109+05:30", - "type": "identify", - "userId": "1e7673da-9473-49c6-97f7-da848ecafa76" - }, - "metadata": { - "jobId": 1 - }, - "destination": { - "Config": { - "initialAccessToken": "9f58ryaM64FZp0rg3jyDV4PB5", - "password": "hJCR557#uzFfD", - "userName": "sampathvinayak1453@gmail.com" - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1WqFFH5esuVPnUgHkvEoYxDcX3y", - "Name": "tst", - "Transformations": [] - } - }, - { - "message": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "traits": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "company": "Initech", - "address": { - "city": "east greenwich", - "country": "USA", - "state": "California", - "street": "19123 forest lane", - "postalCode": "94115" - }, - "email": "ddv_ua+{{1234*245}}@bugFix.com", - "name": "Peter Gibbons", - "phone": "570-690-4150", - "rating": "Hot", - "title": "VP of Derp" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "f19c35da-e9de-4c6e-b6e5-9e60cccc12c8", - "originalTimestamp": "2020-01-27T12:20:55.301Z", - "receivedAt": "2020-01-27T17:50:58.657+05:30", - "request_ip": "14.98.244.60", - "sentAt": "2020-01-27T12:20:56.849Z", - "timestamp": "2020-01-27T17:50:57.109+05:30", - "type": "identify", - "userId": "1e7673da-9473-49c6-97f7-da848ecafa76" - }, - "metadata": { - "jobId": 1 - }, - "destination": { - "Config": { - "initialAccessToken": "9f58ryaM64FZp0rg3jyDV4PB5", - "password": "hJCR557#uzFfD", - "userName": "sampathvinayak1453@gmail.com" - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1WqFFH5esuVPnUgHkvEoYxDcX3y", - "Name": "tst", - "Transformations": [] - } - }, - { - "message": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" - }, - "integrations": { - "All": true - }, - "traits": { - "anonymousId": "1e7673da-9473-49c6-97f7-da848ecafa76", - "company": "Initech", - "address": { - "city": "east greenwich", - "country": "USA", - "state": "California", - "street": "19123 forest lane", - "postalCode": "94115" - }, - "email": "peter.gibbons@initech.com", - "name": "Peter Gibbons", - "phone": "570-690-4150", - "rating": "Hot", - "title": "VP of Derp" - }, - "messageId": "f19c35da-e9de-4c6e-b6e5-9e60cccc12c8", - "originalTimestamp": "2020-01-27T12:20:55.301Z", - "receivedAt": "2020-01-27T17:50:58.657+05:30", - "request_ip": "14.98.244.60", - "sentAt": "2020-01-27T12:20:56.849Z", - "timestamp": "2020-01-27T17:50:57.109+05:30", - "type": "identify", - "userId": "1e7673da-9473-49c6-97f7-da848ecafa76" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "initialAccessToken": "9f58ryaM64FZp0rg3jyDV4PB5", - "password": "hJCR557#uzFfD", - "userName": "sampathvinayak1453@gmail.com" - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1WqFFH5esuVPnUgHkvEoYxDcX3y", - "Name": "tst", - "Transformations": [] - } - }, - { - "message": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY" - }, - "params": {}, - "body": { - "JSON": { - "Email": "peter.gibbons@initech.com", - "Phone": "570-690-4150", - "Rating": "Hot", - "Title": "VP of Derp", - "FirstName": "Peter", - "LastName": "Gibbons", - "PostalCode": "94115", - "City": "east greenwich", - "Country": "USA", - "State": "California", - "Street": "19123 forest lane", - "Company": "Initech" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "statusCode": 200 - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "initialAccessToken": "9f58ryaM64FZp0rg3jyDV4PB5", - "password": "hJCR557#uzFfD", - "userName": "sampathvinayak1453@gmail.com" - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1WqFFH5esuVPnUgHkvEoYxDcX3y", - "Name": "tst", - "Transformations": [] - } - } -] diff --git a/test/__tests__/data/salesforce_router_metadata_input.json b/test/__tests__/data/salesforce_router_metadata_input.json index 72a359dba39..4c8c62301da 100644 --- a/test/__tests__/data/salesforce_router_metadata_input.json +++ b/test/__tests__/data/salesforce_router_metadata_input.json @@ -46,8 +46,8 @@ "destination": { "Config": { "initialAccessToken": "9f58ryaInitToken1343dsu73", - "password": "myPa#swd123", - "userName": "sampathvinayak1453@gmail.com" + "password": "dummyPassword3", + "userName": "testsalesforce1453@gmail.com" }, "secretConfig": {}, "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", diff --git a/test/__tests__/data/salesforce_router_output.json b/test/__tests__/data/salesforce_router_output.json deleted file mode 100644 index 624f9582117..00000000000 --- a/test/__tests__/data/salesforce_router_output.json +++ /dev/null @@ -1,233 +0,0 @@ -[ - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY" - }, - "params": {}, - "body": { - "JSON": { - "Email": "peter.gibbons@initech.com", - "Phone": "570-690-4150", - "Rating": "Hot", - "Title": "VP of Derp", - "FirstName": "Peter", - "LastName": "Gibbons", - "PostalCode": "94115", - "City": "east greenwich", - "Country": "USA", - "State": "California", - "Street": "19123 forest lane", - "Company": "Initech" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "initialAccessToken": "9f58ryaM64FZp0rg3jyDV4PB5", - "password": "hJCR557#uzFfD", - "userName": "sampathvinayak1453@gmail.com" - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1WqFFH5esuVPnUgHkvEoYxDcX3y", - "Name": "tst", - "Transformations": [] - } - }, - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead/leadId?_HttpMethod=PATCH", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY" - }, - "params": {}, - "body": { - "JSON": { - "Email": "ddv_ua+{{1234*245}}@bugFix.com", - "Phone": "570-690-4150", - "Rating": "Hot", - "Title": "VP of Derp", - "FirstName": "Peter", - "LastName": "Gibbons", - "PostalCode": "94115", - "City": "east greenwich", - "Country": "USA", - "State": "California", - "Street": "19123 forest lane", - "Company": "Initech" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "initialAccessToken": "9f58ryaM64FZp0rg3jyDV4PB5", - "password": "hJCR557#uzFfD", - "userName": "sampathvinayak1453@gmail.com" - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1WqFFH5esuVPnUgHkvEoYxDcX3y", - "Name": "tst", - "Transformations": [] - } - }, - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY" - }, - "params": {}, - "body": { - "JSON": { - "Email": "peter.gibbons@initech.com", - "Phone": "570-690-4150", - "Rating": "Hot", - "Title": "VP of Derp", - "FirstName": "Peter", - "LastName": "Gibbons", - "PostalCode": "94115", - "City": "east greenwich", - "Country": "USA", - "State": "California", - "Street": "19123 forest lane", - "Company": "Initech" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "initialAccessToken": "9f58ryaM64FZp0rg3jyDV4PB5", - "password": "hJCR557#uzFfD", - "userName": "sampathvinayak1453@gmail.com" - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1WqFFH5esuVPnUgHkvEoYxDcX3y", - "Name": "tst", - "Transformations": [] - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY" - }, - "params": {}, - "body": { - "JSON": { - "Email": "peter.gibbons@initech.com", - "Phone": "570-690-4150", - "Rating": "Hot", - "Title": "VP of Derp", - "FirstName": "Peter", - "LastName": "Gibbons", - "PostalCode": "94115", - "City": "east greenwich", - "Country": "USA", - "State": "California", - "Street": "19123 forest lane", - "Company": "Initech" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "statusCode": 200 - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "initialAccessToken": "9f58ryaM64FZp0rg3jyDV4PB5", - "password": "hJCR557#uzFfD", - "userName": "sampathvinayak1453@gmail.com" - }, - "DestinationDefinition": { - "DisplayName": "Salesforce", - "ID": "1T96GHZ0YZ1qQSLULHCoJkow9KC", - "Name": "SALESFORCE" - }, - "Enabled": true, - "ID": "1WqFFH5esuVPnUgHkvEoYxDcX3y", - "Name": "tst", - "Transformations": [] - } - } -] diff --git a/test/__tests__/data/sanity/active_campaign_output.json b/test/__tests__/data/sanity/active_campaign_output.json deleted file mode 100644 index 2e6b44db153..00000000000 --- a/test/__tests__/data/sanity/active_campaign_output.json +++ /dev/null @@ -1,54 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://active.campaigns.rudder.com/api/3/contact/sync", - "headers": { - "Content-Type": "application/json", - "Api-Token": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1" - }, - "params": {}, - "body": { - "JSON": { - "contact": { - "email": "manashi@gmail.com", - "phone": 9090909000, - "firstName": null, - "lastName": null - }, - "apiKey": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://active.campaigns.rudder.com/api/3/contact/sync", - "headers": { - "Content-Type": "application/json", - "Api-Token": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1" - }, - "params": {}, - "body": { - "JSON": { - "contact": { - "email": "testkolkata@rudderlabs.com", - "phone": "570-690-4150", - "firstName": "Sajal", - "lastName": "Mohanta" - }, - "apiKey": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } -] diff --git a/test/__tests__/data/sanity/destination_config.json b/test/__tests__/data/sanity/destination_config.json deleted file mode 100644 index a94749fb558..00000000000 --- a/test/__tests__/data/sanity/destination_config.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "active_campaign": { - "config": { - "processor": { - "Config": { - "apiKey": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", - "apiUrl": "https://active.campaigns.rudder.com", - "actid": "476550467", - "eventKey": "f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03" - } - } - } - }, - "clevertap": { - "config": { - "processor": {}, - "router": {} - } - }, - "marketo": { - "config": { - "router": { - "Config": { - "accountId": "marketo_acct_id_success", - "clientId": "marketo_client_id_success", - "clientSecret": "marketo_client_secret_success", - "trackAnonymousEvents": true, - "customActivityEventMap": [{ "from": "Product Clicked", "to": "100001" }], - "customActivityPropertyMap": [{ "from": "name", "to": "productName" }], - "customActivityPrimaryKeyMap": [{ "from": "Product Clicked", "to": "name" }], - "leadTraitMapping": [{ "from": "leadScore", "to": "customLeadScore" }] - }, - "secretConfig": {}, - "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", - "name": "Marketo", - "enabled": true, - "workspaceId": "1TSN08muJTZwH8iCDmnnRt1pmLd", - "deleted": false, - "createdAt": "2020-12-30T08:39:32.005Z", - "updatedAt": "2021-02-03T16:22:31.374Z", - "destinationDefinition": { - "config": { - "destConfig": { - "defaultConfig": [ - "accountId", - "clientId", - "clientSecret", - "trackAnonymousEvents", - "customActivityEventMap", - "customActivityPropertyMap", - "customActivityPrimaryKeyMap", - "leadTraitMapping" - ] - }, - "secretKeys": ["clientSecret"], - "excludeKeys": [], - "includeKeys": [], - "routerTransform": true, - "supportedSourceTypes": [ - "android", - "ios", - "web", - "unity", - "amp", - "cloud", - "reactnative" - ] - }, - "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": 606 }, - { "success": "false", "errors.0.code": 607 }, - { "success": "false", "errors.0.code": 608 }, - { "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 } - ] - } - }, - "id": "1aIXqM806xAVm92nx07YwKbRrO9", - "name": "MARKETO", - "displayName": "Marketo", - "createdAt": "2020-04-09T09:24:31.794Z", - "updatedAt": "2021-01-11T11:03:28.103Z" - }, - "transformations": [], - "isConnectionEnabled": true, - "isProcessorEnabled": true - } - } - } -} diff --git a/test/__tests__/data/sanity/marketo_router_output.json b/test/__tests__/data/sanity/marketo_router_output.json deleted file mode 100644 index 9f967074a38..00000000000 --- a/test/__tests__/data/sanity/marketo_router_output.json +++ /dev/null @@ -1,165 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/activities/external.json", - "headers": { - "Authorization": "Bearer access_token_success", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "input": [ - { - "activityDate": "2020-12-17T21:00:59.176Z", - "activityTypeId": 100001, - "attributes": [], - "leadId": 4, - "primaryAttributeValue": "Test Product" - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 1 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "accountId": "marketo_acct_id_success", - "clientId": "marketo_client_id_success", - "clientSecret": "marketo_client_secret_success", - "trackAnonymousEvents": true, - "customActivityEventMap": [ - { - "from": "Product Clicked", - "to": "100001" - } - ], - "customActivityPropertyMap": [ - { - "from": "name", - "to": "productName" - } - ], - "customActivityPrimaryKeyMap": [ - { - "from": "Product Clicked", - "to": "name" - } - ], - "leadTraitMapping": [ - { - "from": "leadScore", - "to": "customLeadScore" - } - ] - }, - "secretConfig": {}, - "ID": "1mMy5cqbtfuaKZv1IhVQKnBdVwe", - "name": "Marketo", - "enabled": true, - "workspaceId": "1TSN08muJTZwH8iCDmnnRt1pmLd", - "deleted": false, - "createdAt": "2020-12-30T08:39:32.005Z", - "updatedAt": "2021-02-03T16:22:31.374Z", - "destinationDefinition": { - "config": { - "destConfig": { - "defaultConfig": [ - "accountId", - "clientId", - "clientSecret", - "trackAnonymousEvents", - "customActivityEventMap", - "customActivityPropertyMap", - "customActivityPrimaryKeyMap", - "leadTraitMapping" - ] - }, - "secretKeys": ["clientSecret"], - "excludeKeys": [], - "includeKeys": [], - "routerTransform": true, - "supportedSourceTypes": ["android", "ios", "web", "unity", "amp", "cloud", "reactnative"] - }, - "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": 606 - }, - { - "success": "false", - "errors.0.code": 607 - }, - { - "success": "false", - "errors.0.code": 608 - }, - { - "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 - } - ] - } - }, - "id": "1aIXqM806xAVm92nx07YwKbRrO9", - "name": "MARKETO", - "displayName": "Marketo", - "createdAt": "2020-04-09T09:24:31.794Z", - "updatedAt": "2021-01-11T11:03:28.103Z" - }, - "transformations": [], - "isConnectionEnabled": true, - "isProcessorEnabled": true - } - } -] diff --git a/test/__tests__/data/sanity/sanity_input.json b/test/__tests__/data/sanity/sanity_input.json deleted file mode 100644 index 9dd99611603..00000000000 --- a/test/__tests__/data/sanity/sanity_input.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "messages": [ - { - "type": "identify", - "event": "identify", - "sentAt": "2021-02-08T12:45:42.760Z", - "userId": "User_111", - "channel": "mobile", - "context": { - "os": { - "name": "iOS", - "version": "13.0" - }, - "app": { - "name": "MyApp", - "build": "1", - "version": "1.0", - "namespace": "com.rudderlabs.MyApp" - }, - "device": { - "id": "e2b94e2d-8327-429c-9d91-792a80d189c8", - "name": "iPhone 11 Pro Max", - "type": "iOS", - "model": "iPhone", - "manufacturer": "Apple" - }, - "locale": "en-US", - "screen": { - "width": 896, - "height": 414, - "density": 3 - }, - "traits": { - "age": 24, - "city": "Bangalore", - "name": "Manashi Mazumder", - "email": "manashi@gmail.com", - "phone": 9090909000, - "userId": "User_111", - "anonymousId": "e2b94e2d-8327-429c-9d91-792a80d189c8" - }, - "library": { - "name": "rudder-ios-library", - "version": "1.0.11" - }, - "network": { - "wifi": true, - "carrier": "unavailable", - "cellular": false, - "bluetooth": false - }, - "timezone": "Asia/Kolkata", - "userAgent": "unknown" - }, - "rudderId": "139d65bb-8a40-48c7-854c-06bbf44f686e", - "messageId": "1612788330-7e1e60a8-fb7e-437d-81c1-5b000318d0cb", - "anonymousId": "e2b94e2d-8327-429c-9d91-792a80d189c8", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-02-08T12:45:30.717Z" - }, - { - "type": "identify", - "sentAt": "2021-04-15T19:43:53.393Z", - "userId": "sajal1234", - "channel": "web", - "context": { - "id": "ID101", - "ip": "0.0.0.0", - "os": { - "name": "", - "version": "" - }, - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.1.17", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "www.rudderstack.com", - "path": "/path5", - "title": "JS Test", - "search": "My Page", - "tab_url": "https://odd-rat-19.loca.lt/Rectified.html", - "referrer": "www.google.com", - "initial_referrer": "$direct", - "referring_domain": "", - "initial_referring_domain": "" - }, - "event": "Sample Identify call", - "locale": "en-US", - "screen": { - "density": 2.75 - }, - "traits": { - "id": "ID101", - "city": "east greenwich", - "plan": "Open source", - "tags": ["x0002x", "y0004y", "t0001t"], - "email": "testkolkata@rudderlabs.com", - "event": "Sample Identify call", - "lists": [ - { - "id": 2, - "status": "unsubscribed" - }, - { - "id": 3, - "status": "unsubscribe" - } - ], - "phone": "570-690-4150", - "state": "RI", - "title": "Mr", - "logins": 5, - "mobile": "123456786", - "rating": "Hot", - "street": "19123 forest lane", - "company": { - "id": 378763009439, - "name": "Rudderlabs", - "industry": "IT", - "employee_count": 1200 - }, - "country": "USA", - "sent_at": "20210109134567", - "birthDay": "2021/04/15", - "category": "SampleIdentify", - "industry": "ITES", - "lastName": "Mohanta", - "timezone": "Berlin", - "Homephone": 9836543283, - "createdAt": "2021/04/15", - "fieldInfo": { - "state": "California", - "Address": "kolkata", - "listBox": ["Option1", "Option2"], - "CheckBox": ["Option1", "Option2", "Option3"], - "TextArea": "This is a sample text area field value . it is tested for Active Campaign. It should have more than 100 words. Lorem ipsum is a dummy sentence to fill up any area. And also , it is used to fill up dummy website. So, it is wriiten by simply wasting time. ", - "DateField": "1988-12-05", - "HiddenField": "Hidden", - "RadioButton": "Option1", - "multiChoice": "Option 1", - "DateTimeField": "2020-05-19T02:45:00-05:00" - }, - "firstName": "Sajal", - "isEnabled": true, - "timestamp": "1403743443", - "event_text": "identify", - "leadSource": "WEB", - "postalCode": "94115", - "received_at": "202101091347654", - "organizationId": 378763009439, - "original_timestamp": "1403743443" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.17" - }, - "sent_at": "20210109134567", - "campaign": {}, - "timestamp": "1403743443", - "userAgent": "Mozilla/5.0 (Linux; Android 11; sdk_gphone_x86_arm Build/RSR1.201013.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36", - "event_text": "identify", - "externalId": [ - { - "id": "0035g000002XN5MAAW", - "type": "Salesforce-Contact" - } - ], - "received_at": "202101091347654", - "original_timestamp": "1403743443" - }, - "rudderId": "bc2402b7-6796-4fa5-9beb-bad3761fc961", - "messageId": "9d0df235-d354-4a81-8056-07dcb58081d7", - "anonymousId": "anonIDfromAndroid", - "integrations": { - "All": true - }, - "originalTimestamp": "2021-04-15T19:43:53.392Z" - } - ] -} diff --git a/test/__tests__/data/sanity/sanity_router_input.json b/test/__tests__/data/sanity/sanity_router_input.json deleted file mode 100644 index 16b8ccffadc..00000000000 --- a/test/__tests__/data/sanity/sanity_router_input.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "messages": [ - { - "anonymousId": "anon_id_success", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "TestAppName", - "namespace": "com.android.sample", - "version": "1.0" - }, - "device": { - "id": "anon_id_success", - "manufacturer": "Google", - "model": "Android SDK built for x86", - "name": "generic_x86", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.1-beta.1" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "8.1.0" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "anonymousId": "anon_id_success" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)" - }, - "event": "Product Clicked", - "integrations": { - "All": true - }, - "messageId": "id1", - "properties": { - "name": "Test Product" - }, - "originalTimestamp": "2020-12-17T21:00:59.176Z", - "type": "track", - "sentAt": "2020-03-12T09:05:03.421Z" - } - ] -} diff --git a/test/__tests__/data/satismeter_source.json b/test/__tests__/data/satismeter_source.json index 1abec80a5f8..97b8b44a157 100644 --- a/test/__tests__/data/satismeter_source.json +++ b/test/__tests__/data/satismeter_source.json @@ -64,7 +64,7 @@ "score": -100, "user": { "id": "63766fbb7ac7b72676145338", - "name": "Anant Doe", + "name": "John Doe", "email": "john@doe.com", "userId": "No response", "deleted": false, @@ -78,7 +78,7 @@ "key2": "V2" }, "email": "john@doe.com", - "name": "Anant Doe" + "name": "John Doe" } }, "device": { @@ -106,7 +106,7 @@ "key2": "V2" }, "email": "john@doe.com", - "name": "Anant Doe" + "name": "John Doe" }, "campaign": { "id": "6373271b764986ebee62bfca", @@ -129,7 +129,7 @@ "key2": "V2" }, "email": "john@doe.com", - "name": "Anant Doe", + "name": "John Doe", "userDeleted": false }, "locale": "en", @@ -285,7 +285,7 @@ "category": "detractor", "score": -100, "user": { - "name": "Anant Doe", + "name": "John Doe", "email": "john@doe.com", "deleted": false, "groups": { @@ -298,7 +298,7 @@ "key2": "V2" }, "email": "john@doe.com", - "name": "Anant Doe" + "name": "John Doe" } }, "device": { @@ -326,7 +326,7 @@ "key2": "V2" }, "email": "john@doe.com", - "name": "Anant Doe" + "name": "John Doe" }, "campaign": { "id": "6373271b764986ebee62bfca", @@ -349,7 +349,7 @@ "key2": "V2" }, "email": "john@doe.com", - "name": "Anant Doe", + "name": "John Doe", "userDeleted": false }, "locale": "en", diff --git a/test/__tests__/data/segment_input.json b/test/__tests__/data/segment_input.json deleted file mode 100644 index c21cb93f6e5..00000000000 --- a/test/__tests__/data/segment_input.json +++ /dev/null @@ -1,368 +0,0 @@ -[ - { - "destination": { - "ID": "1afmecIpsJm7D72aRTksxyODrwR", - "Name": "Segment", - "DestinationDefinition": { - "ID": "1afjjahf0X5lSyNze7Xh7aqJs11", - "Name": "SEGMENT", - "DisplayName": "Segment", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "writeKey": "abcdefghijklmnopqrstuvwxyz" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "testmp@rudderstack.com", - "firstname": "Test Kafka" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "258b77c6-442d-4bdc-8729-f0e4cef41353", - "name": "home", - "originalTimestamp": "2020-04-17T14:55:31.367Z", - "properties": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "receivedAt": "2020-04-17T20:25:31.381+05:30", - "request_ip": "[::1]:57363", - "sentAt": "2020-04-17T14:55:31.367Z", - "timestamp": "2020-04-17T20:25:31.381+05:30", - "type": "page", - "userId": "user12345" - } - }, - { - "destination": { - "ID": "1afmecIpsJm7D72aRTksxyODrwR", - "Name": "Segment", - "DestinationDefinition": { - "ID": "1afjjahf0X5lSyNze7Xh7aqJs11", - "Name": "SEGMENT", - "DisplayName": "Segment", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "writeKey": "abcdefghijklmnopqrstuvwxyz" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "testmp@email.com", - "firstname": "Test Transformer" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "023a3a48-190a-4968-9394-a8e99b81a3c0", - "originalTimestamp": "2020-04-17T14:55:31.37Z", - "receivedAt": "2020-04-17T20:25:31.401+05:30", - "request_ip": "[::1]:57364", - "sentAt": "2020-04-17T14:55:31.37Z", - "timestamp": "2020-04-17T20:25:31.401+05:30", - "type": "identify", - "userId": "user12345" - } - }, - { - "destination": { - "ID": "1afmecIpsJm7D72aRTksxyODrwR", - "Name": "Segment", - "DestinationDefinition": { - "ID": "1afjjahf0X5lSyNze7Xh7aqJs11", - "Name": "SEGMENT", - "DisplayName": "Segment", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "writeKey": "abcdefghijklmnopqrstuvwxyz" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "testmp@email.com", - "firstname": "Test Transformer" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "event": "test track with property", - "integrations": { - "All": true - }, - "messageId": "584fde02-901a-4964-a4a0-4078b999d5b2", - "originalTimestamp": "2020-04-17T14:55:31.372Z", - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "receivedAt": "2020-04-17T20:25:31.401+05:30", - "request_ip": "[::1]:57365", - "sentAt": "2020-04-17T14:55:31.372Z", - "timestamp": "2020-04-17T20:25:31.401+05:30", - "type": "track", - "userId": "user12345" - } - }, - { - "destination": { - "ID": "1afmecIpsJm7D72aRTksxyODrwR", - "Name": "Segment", - "DestinationDefinition": { - "ID": "1afjjahf0X5lSyNze7Xh7aqJs11", - "Name": "SEGMENT", - "DisplayName": "Segment", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "writeKey": "abcdefghijklmnopqrstuvwxyz" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - "traits": { - "age": 23, - "email": "testmp@rudderstack.com", - "firstname": "Test Kafka" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "258b77c6-442d-4bdc-8729-f0e4cef41353", - "name": "home", - "originalTimestamp": "2020-04-17T14:55:31.367Z", - "properties": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "receivedAt": "2020-04-17T20:25:31.381+05:30", - "request_ip": "[::1]:57363", - "sentAt": "2020-04-17T14:55:31.367Z", - "timestamp": "2020-04-17T20:25:31.381+05:30", - "type": "page", - "userId": "user12345" - } - }, - { - "destination": { - "ID": "1afmecIpsJm7D72aRTksxyODrwR", - "Name": "Segment", - "DestinationDefinition": { - "ID": "1afjjahf0X5lSyNze7Xh7aqJs11", - "Name": "SEGMENT", - "DisplayName": "Segment", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "writeKey": "abcdefghijklmnopqrstuvwxyz" - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.2" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.2" - }, - "locale": "en-GB", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "screen": { - "density": 2 - }, - - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" - }, - "event": "test track with property", - "integrations": { - "All": true - }, - "messageId": "584fde02-901a-4964-a4a0-4078b999d5b2", - "originalTimestamp": "2020-04-17T14:55:31.372Z", - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "receivedAt": "2020-04-17T20:25:31.401+05:30", - "request_ip": "[::1]:57365", - "sentAt": "2020-04-17T14:55:31.372Z", - "timestamp": "2020-04-17T20:25:31.401+05:30", - "type": "track", - "userId": "user12345" - } - } -] diff --git a/test/__tests__/data/segment_output.json b/test/__tests__/data/segment_output.json deleted file mode 100644 index 0d8ca2c784d..00000000000 --- a/test/__tests__/data/segment_output.json +++ /dev/null @@ -1,187 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "userId": "user12345", - "endpoint": "https://api.segment.io/v1/batch", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6" - }, - "params": {}, - "body": { - "JSON": { - "batch": [ - { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "type": "page", - "userId": "user12345", - "traits": { - "age": 23, - "email": "testmp@rudderstack.com", - "firstname": "Test Kafka" - }, - "properties": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "timeStamp": "2020-04-17T20:25:31.381+05:30" - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "userId": "user12345", - "method": "POST", - "endpoint": "https://api.segment.io/v1/batch", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6" - }, - "params": {}, - "body": { - "JSON": { - "batch": [ - { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "type": "identify", - "userId": "user12345", - "traits": { - "age": 23, - "email": "testmp@email.com", - "firstname": "Test Transformer" - }, - "timeStamp": "2020-04-17T20:25:31.401+05:30" - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "userId": "user12345", - "method": "POST", - "endpoint": "https://api.segment.io/v1/batch", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6" - }, - "params": {}, - "body": { - "JSON": { - "batch": [ - { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "type": "track", - "userId": "user12345", - "event": "test track with property", - "traits": { - "age": 23, - "email": "testmp@email.com", - "firstname": "Test Transformer" - }, - "properties": { "test_prop_1": "test prop", "test_prop_2": 1232 }, - "timeStamp": "2020-04-17T20:25:31.401+05:30" - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.segment.io/v1/batch", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6" - }, - "params": {}, - "body": { - "JSON": { - "batch": [ - { - "type": "page", - "userId": "user12345", - "traits": { - "age": 23, - "email": "testmp@rudderstack.com", - "firstname": "Test Kafka" - }, - "properties": { - "path": "/tests/html/index4.html", - "referrer": "", - "search": "", - "title": "", - "url": "http://localhost/tests/html/index4.html" - }, - "timeStamp": "2020-04-17T20:25:31.381+05:30" - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "user12345", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.segment.io/v1/batch", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6" - }, - "params": {}, - "body": { - "JSON": { - "batch": [ - { - "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", - "type": "track", - "userId": "user12345", - "event": "test track with property", - "properties": { - "test_prop_1": "test prop", - "test_prop_2": 1232 - }, - "timeStamp": "2020-04-17T20:25:31.401+05:30" - } - ] - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "user12345", - "statusCode": 200 - } -] diff --git a/test/__tests__/data/sendgrid.json b/test/__tests__/data/sendgrid.json index 79c3457d32c..1981e16cf16 100644 --- a/test/__tests__/data/sendgrid.json +++ b/test/__tests__/data/sendgrid.json @@ -25,13 +25,21 @@ ], "eventDelivery": false, "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [{ "event": "open" }], + "eventNamesSettings": [ + { + "event": "open" + } + ], "footer": false, - "fromEmail": "ankitcingh93@gmail.com", + "fromEmail": "a@g.com", "fromName": "", "ganalytics": false, "group": "", - "groupsToDisplay": [{ "groupId": "" }], + "groupsToDisplay": [ + { + "groupId": "" + } + ], "html": "", "listId": "list111", "mailFromTraits": false, @@ -54,9 +62,9 @@ "traits": { "age": "25", "city": "Surat", - "phone": "+91 9557645345", + "phone": "+91 9876543210", "lastName": "test", - "firstName": "mihir", + "firstName": "rudder", "state": "Gujarat" } } @@ -92,13 +100,21 @@ ], "eventDelivery": false, "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [{ "event": "open" }], + "eventNamesSettings": [ + { + "event": "open" + } + ], "footer": false, - "fromEmail": "ankitcingh93@gmail.com", + "fromEmail": "a@g.com", "fromName": "", "ganalytics": false, "group": "", - "groupsToDisplay": [{ "groupId": "" }], + "groupsToDisplay": [ + { + "groupId": "" + } + ], "html": "", "listId": "list111", "mailFromTraits": false, @@ -121,10 +137,10 @@ "traits": { "age": "25", "city": "Surat", - "email": "testmihir@gmail.com", - "phone": "+91 9557645345", + "email": "test@rudderstack.com", + "phone": "+91 9876543210", "lastName": "test", - "firstName": "mihir", + "firstName": "rudder", "state": "Gujarat" } } @@ -136,10 +152,10 @@ "FORM": {}, "JSON": { "contactDetails": { - "email": "testmihir@gmail.com", + "email": "test@rudderstack.com", "last_name": "test", - "first_name": "mihir", - "phone_number": "+91 9557645345", + "first_name": "rudder", + "phone_number": "+91 9876543210", "custom_fields": {} }, "contactListIds": "list111" @@ -183,16 +199,29 @@ "value": "

Hello from Twilio SendGrid!

Sending with the email service trusted by developers and marketers for time-savings, scalability, and delivery expertise.

%open-track%

" } ], - "customFieldsMapping": [{ "from": "name", "to": "user_name" }], + "customFieldsMapping": [ + { + "from": "name", + "to": "user_name" + } + ], "eventDelivery": false, "eventDeliveryTS": 1668424218224, - "eventNamesSettings": [{ "event": "open" }], + "eventNamesSettings": [ + { + "event": "open" + } + ], "footer": false, - "fromEmail": "ankitcingh93@gmail.com", + "fromEmail": "a@g.com", "fromName": "", "ganalytics": false, "group": "", - "groupsToDisplay": [{ "groupId": "" }], + "groupsToDisplay": [ + { + "groupId": "" + } + ], "html": "", "mailFromTraits": false, "openTracking": false, @@ -214,11 +243,11 @@ "traits": { "age": "25", "city": "Surat", - "name": "mihir test", - "email": "testmihir@gmail.com", - "phone": "+91 9557645345", + "name": "rudder test", + "email": "test@rudderstack.com", + "phone": "+91 9876543210", "lastName": "test", - "firstName": "mihir", + "firstName": "rudder", "state": "Gujarat" } } @@ -230,13 +259,13 @@ "FORM": {}, "JSON": { "contactDetails": { - "email": "testmihir@gmail.com", + "email": "test@rudderstack.com", "last_name": "test", - "first_name": "mihir", - "unique_name": "mihir test", - "phone_number": "+91 9557645345", + "first_name": "rudder", + "unique_name": "rudder test", + "phone_number": "+91 9876543210", "custom_fields": { - "w1_T": "mihir test" + "w1_T": "rudder test" } }, "contactListIds": "" @@ -261,7 +290,14 @@ "destination": { "Config": { "apiKey": "apikey", - "eventNamesSettings": [{ "event": "testing" }, { "event": "clicked" }], + "eventNamesSettings": [ + { + "event": "testing" + }, + { + "event": "clicked" + } + ], "subject": "A sample subject", "replyToEmail": "ankit@rudderstack.com", "contents": [ @@ -298,8 +334,13 @@ "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", "locale": "en-US", "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } }, "messageId": "84e26acc-56a5-4835-8233-591137fca468", "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", @@ -311,7 +352,7 @@ { "to": [ { - "email": "ankitcingh93@gmail.com" + "email": "a@g.com" }, { "name": "hello" @@ -324,7 +365,9 @@ "email": "ankit@rudderstack.com" } }, - "integrations": { "All": true }, + "integrations": { + "All": true + }, "sentAt": "2019-10-14T09:03:22.563Z" } }, @@ -347,7 +390,7 @@ { "to": [ { - "email": "ankitcingh93@gmail.com" + "email": "a@g.com" } ], "subject": "hey there" @@ -356,7 +399,9 @@ "from": { "email": "ankit@rudderstack.com" }, - "reply_to": { "email": "ankit@rudderstack.com" }, + "reply_to": { + "email": "ankit@rudderstack.com" + }, "subject": "A sample subject", "content": [ { @@ -375,7 +420,14 @@ "destination": { "Config": { "apiKey": "apikey", - "eventNamesSettings": [{ "event": "testing" }, { "event": "clicked" }], + "eventNamesSettings": [ + { + "event": "testing" + }, + { + "event": "clicked" + } + ], "subject": "A sample subject", "replyToEmail": "ankit@rudderstack.com", "contents": [ @@ -411,8 +463,13 @@ "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", "locale": "en-US", "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } }, "messageId": "84e26acc-56a5-4835-8233-591137fca468", "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", @@ -427,7 +484,7 @@ { "to": [ { - "email": "ankitcingh93@gmail.com" + "email": "a@g.com" }, { "name": "hello" @@ -440,7 +497,9 @@ "email": "ankit@rudderstack.com" } }, - "integrations": { "All": true }, + "integrations": { + "All": true + }, "sentAt": "2019-10-14T09:03:22.563Z" } }, @@ -463,7 +522,7 @@ { "to": [ { - "email": "ankitcingh93@gmail.com" + "email": "a@g.com" } ], "subject": "hey there" @@ -472,7 +531,9 @@ "from": { "email": "ankit@rudderstack.com" }, - "reply_to": { "email": "testing@gmail.com" }, + "reply_to": { + "email": "testing@gmail.com" + }, "subject": "A sample subject", "content": [ { @@ -491,7 +552,14 @@ "destination": { "Config": { "apiKey": "apikey", - "eventNamesSettings": [{ "event": "testing" }, { "event": "clicked" }], + "eventNamesSettings": [ + { + "event": "testing" + }, + { + "event": "clicked" + } + ], "subject": "A sample subject", "replyToEmail": "ankit@rudderstack.com", "contents": [ @@ -510,7 +578,17 @@ "subscriptionTracking": false, "clickTrackingEnableText": false, "group": "12345", - "groupsToDisplay": [{ "groupId": "12345" }, { "groupId": "abc" }, { "groupId": "12346" }] + "groupsToDisplay": [ + { + "groupId": "12345" + }, + { + "groupId": "abc" + }, + { + "groupId": "12346" + } + ] } }, "message": { @@ -529,8 +607,13 @@ "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", "locale": "en-US", "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } }, "messageId": "84e26acc-56a5-4835-8233-591137fca468", "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", @@ -545,7 +628,7 @@ { "to": [ { - "email": "ankitcingh93@gmail.com" + "email": "a@g.com" }, { "name": "hello" @@ -559,7 +642,9 @@ } } }, - "integrations": { "All": true }, + "integrations": { + "All": true + }, "sentAt": "2019-10-14T09:03:22.563Z" }, "output": { @@ -581,7 +666,7 @@ { "to": [ { - "email": "ankitcingh93@gmail.com" + "email": "a@g.com" } ], "subject": "hey there" @@ -590,7 +675,9 @@ "from": { "email": "ankit@rudderstack.com" }, - "reply_to": { "email": "testing@gmail.com" }, + "reply_to": { + "email": "testing@gmail.com" + }, "asm": { "group_id": 12345, "groups_to_display": [12345, 12346] @@ -613,7 +700,14 @@ "destination": { "Config": { "apiKey": "apikey", - "eventNamesSettings": [{ "event": "testing" }, { "event": "clicked" }], + "eventNamesSettings": [ + { + "event": "testing" + }, + { + "event": "clicked" + } + ], "subject": "A sample subject", "replyToEmail": "ankit@rudderstack.com", "contents": [ @@ -632,7 +726,17 @@ "subscriptionTracking": false, "clickTrackingEnableText": false, "group": "12345", - "groupsToDisplay": [{ "groupId": "12345" }, { "groupId": "abc" }, { "groupId": "12346" }] + "groupsToDisplay": [ + { + "groupId": "12345" + }, + { + "groupId": "abc" + }, + { + "groupId": "12346" + } + ] } }, "message": { @@ -651,8 +755,13 @@ "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", "locale": "en-US", "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } }, "messageId": "84e26acc-56a5-4835-8233-591137fca468", "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", @@ -667,7 +776,7 @@ { "to": [ { - "email": "ankitcingh93@gmail.com" + "email": "a@g.com" }, { "name": "hello" @@ -680,7 +789,9 @@ "email": "ankit@rudderstack.com" } }, - "integrations": { "All": true }, + "integrations": { + "All": true + }, "sentAt": "2019-10-14T09:03:22.563Z" } }, @@ -694,7 +805,14 @@ "destination": { "Config": { "apiKey": "apikey", - "eventNamesSettings": [{ "event": "testing" }, { "event": "clicked" }], + "eventNamesSettings": [ + { + "event": "testing" + }, + { + "event": "clicked" + } + ], "subject": "A sample subject", "replyToEmail": "ankit@rudderstack.com", "contents": [ @@ -713,7 +831,17 @@ "subscriptionTracking": false, "clickTrackingEnableText": false, "group": "12345", - "groupsToDisplay": [{ "groupId": "12345" }, { "groupId": "abc" }, { "groupId": "12346" }], + "groupsToDisplay": [ + { + "groupId": "12345" + }, + { + "groupId": "abc" + }, + { + "groupId": "12346" + } + ], "attachments": [ { "content": "YXNkZ2FmZ3FlcmRxZ2Iua2puYWRrbGpuYWtqc2Rmbg==", @@ -738,8 +866,13 @@ "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", "locale": "en-US", "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } }, "messageId": "84e26acc-56a5-4835-8233-591137fca468", "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", @@ -754,7 +887,7 @@ { "to": [ { - "email": "ankitcingh93@gmail.com" + "email": "a@g.com" }, { "name": "hello" @@ -767,7 +900,9 @@ "email": "ankit@rudderstack.com" } }, - "integrations": { "All": true }, + "integrations": { + "All": true + }, "sentAt": "2019-10-14T09:03:22.563Z" } }, @@ -790,7 +925,7 @@ { "to": [ { - "email": "ankitcingh93@gmail.com" + "email": "a@g.com" } ], "subject": "hey there" @@ -799,7 +934,9 @@ "from": { "email": "ankit@rudderstack.com" }, - "reply_to": { "email": "testing@gmail.com" }, + "reply_to": { + "email": "testing@gmail.com" + }, "asm": { "group_id": 12345, "groups_to_display": [12345, 12346] @@ -828,7 +965,14 @@ "destination": { "Config": { "apiKey": "apikey", - "eventNamesSettings": [{ "event": "testing" }, { "event": "clicked" }], + "eventNamesSettings": [ + { + "event": "testing" + }, + { + "event": "clicked" + } + ], "subject": "A sample subject", "replyToEmail": "ankit@rudderstack.com", "contents": [ @@ -847,7 +991,17 @@ "subscriptionTracking": false, "clickTrackingEnableText": false, "group": "12345", - "groupsToDisplay": [{ "groupId": "12345" }, { "groupId": "abc" }, { "groupId": "12346" }], + "groupsToDisplay": [ + { + "groupId": "12345" + }, + { + "groupId": "abc" + }, + { + "groupId": "12346" + } + ], "attachments": [ { "content": "YXNkZ21hcyxkLm1mO29xd2llbGpmbWwuYWRrbXMuLGFtZHM=", @@ -875,8 +1029,13 @@ "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", "locale": "en-US", "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } }, "messageId": "84e26acc-56a5-4835-8233-591137fca468", "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", @@ -891,7 +1050,7 @@ { "to": [ { - "email": "ankitcingh93@gmail.com" + "email": "a@g.com" }, { "name": "hello" @@ -904,7 +1063,9 @@ "email": "ankit@rudderstack.com" } }, - "integrations": { "All": true }, + "integrations": { + "All": true + }, "sentAt": "2019-10-14T09:03:22.563Z" } }, @@ -927,7 +1088,7 @@ { "to": [ { - "email": "ankitcingh93@gmail.com" + "email": "a@g.com" } ], "subject": "hey there" @@ -936,7 +1097,9 @@ "from": { "email": "ankit@rudderstack.com" }, - "reply_to": { "email": "testing@gmail.com" }, + "reply_to": { + "email": "testing@gmail.com" + }, "asm": { "group_id": 12345, "groups_to_display": [12345, 12346] @@ -965,7 +1128,14 @@ "destination": { "Config": { "apiKey": "apikey", - "eventNamesSettings": [{ "event": "testing" }, { "event": "clicked" }], + "eventNamesSettings": [ + { + "event": "testing" + }, + { + "event": "clicked" + } + ], "subject": "A sample subject", "replyToEmail": "ankit@rudderstack.com", "contents": [ @@ -984,7 +1154,17 @@ "subscriptionTracking": false, "clickTrackingEnableText": false, "group": "12345", - "groupsToDisplay": [{ "groupId": "12345" }, { "groupId": "abc" }, { "groupId": "12346" }], + "groupsToDisplay": [ + { + "groupId": "12345" + }, + { + "groupId": "abc" + }, + { + "groupId": "12346" + } + ], "attachments": [ { "content": "YXNkZ21hcyxkLm1mO29xd2llbGpmbWwuYWRrbXMuLGFtZHM=", @@ -1012,8 +1192,13 @@ "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", "locale": "en-US", "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } }, "messageId": "84e26acc-56a5-4835-8233-591137fca468", "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", @@ -1032,7 +1217,7 @@ { "to": [ { - "email": "ankitcingh93@gmail.com" + "email": "a@g.com" }, { "name": "hello" @@ -1045,7 +1230,9 @@ "email": "ankit@rudderstack.com" } }, - "integrations": { "All": true }, + "integrations": { + "All": true + }, "sentAt": "2019-10-14T09:03:22.563Z" } }, @@ -1068,7 +1255,7 @@ { "to": [ { - "email": "ankitcingh93@gmail.com" + "email": "a@g.com" } ], "subject": "hey there" @@ -1077,7 +1264,9 @@ "from": { "email": "ankit@rudderstack.com" }, - "reply_to": { "email": "testing@gmail.com" }, + "reply_to": { + "email": "testing@gmail.com" + }, "asm": { "group_id": 12345, "groups_to_display": [12345, 12346] @@ -1099,7 +1288,10 @@ "bypass_list_management": { "enable": true }, - "footer": { "enable": true, "text": "some text" } + "footer": { + "enable": true, + "text": "some text" + } } } }, diff --git a/test/__tests__/data/sendgrid_batch.json b/test/__tests__/data/sendgrid_batch.json index 0089bc4e0db..23c9c34f9c2 100644 --- a/test/__tests__/data/sendgrid_batch.json +++ b/test/__tests__/data/sendgrid_batch.json @@ -30,7 +30,7 @@ "eventDeliveryTS": 1668424218224, "eventNamesSettings": [{ "event": "open" }], "footer": false, - "fromEmail": "ankitcingh93@gmail.com", + "fromEmail": "a@g.com", "fromName": "", "ganalytics": false, "group": "", @@ -56,7 +56,7 @@ "traits": { "age": "30", "email": "user3@rudderlabs.com", - "phone": "+91 66788956789", + "phone": "+91 9876543210", "city": "Ahmedabad", "state": "Gujarat", "lastName": "gupta", @@ -103,7 +103,7 @@ "eventDeliveryTS": 1668424218224, "eventNamesSettings": [{ "event": "open" }], "footer": false, - "fromEmail": "ankitcingh93@gmail.com", + "fromEmail": "a@g.com", "fromName": "", "ganalytics": false, "group": "", @@ -128,7 +128,7 @@ "context": { "traits": { "email": "user4@rudderlabs.com", - "phone": "+91 66788956769", + "phone": "+91 9876543210", "userId": "sajal", "city": "Bombey", "state": "Maharastra", @@ -176,7 +176,7 @@ "eventDeliveryTS": 1668424218224, "eventNamesSettings": [{ "event": "open" }], "footer": false, - "fromEmail": "ankitcingh93@gmail.com", + "fromEmail": "a@g.com", "fromName": "", "ganalytics": false, "group": "", @@ -201,7 +201,7 @@ "context": { "traits": { "email": "user5@rudderlabs.com", - "phone": "+91 66788956769", + "phone": "+91 9876543210", "city": "Banglore", "lastName": "bhatt", "username": "kiran bhatt", @@ -250,7 +250,7 @@ "eventDeliveryTS": 1668424218224, "eventNamesSettings": [{ "event": "open" }], "footer": false, - "fromEmail": "ankitcingh93@gmail.com", + "fromEmail": "a@g.com", "fromName": "", "ganalytics": false, "group": "", @@ -275,7 +275,7 @@ "context": { "traits": { "email": "user6@rudderlabs.com", - "phone": "+91 66758956769", + "phone": "+91 9876543210", "city": "Los Angeles", "lastName": "doe", "name": "john doe", @@ -325,7 +325,7 @@ "eventDeliveryTS": 1668424218224, "eventNamesSettings": [{ "event": "open" }], "footer": false, - "fromEmail": "ankitcingh93@gmail.com", + "fromEmail": "a@g.com", "fromName": "", "ganalytics": false, "group": "", @@ -350,7 +350,7 @@ "context": { "traits": { "email": "user7@rudderlabs.com", - "phone": "+91 66958956769", + "phone": "+91 9876543210", "city": "Chicago", "lastName": "patel", "name": "reshma patel", @@ -391,7 +391,7 @@ "eventDeliveryTS": 1668424218224, "eventNamesSettings": [{ "event": "open" }], "footer": false, - "fromEmail": "ankitcingh93@gmail.com", + "fromEmail": "a@g.com", "fromName": "", "ganalytics": false, "group": "", @@ -416,7 +416,7 @@ "context": { "traits": { "email": "user8@rudderlabs.com", - "phone": "+91 76958956769", + "phone": "+91 9876543210", "city": "Chicago", "lastName": "patel", "name": "karishma patel", @@ -459,7 +459,7 @@ "contacts": [ { "email": "user3@rudderlabs.com", - "phone_number": "+91 66788956789", + "phone_number": "+91 9876543210", "first_name": "aman", "last_name": "gupta", "unique_name": "aman gupta", @@ -503,7 +503,7 @@ "eventDeliveryTS": 1668424218224, "eventNamesSettings": [{ "event": "open" }], "footer": false, - "fromEmail": "ankitcingh93@gmail.com", + "fromEmail": "a@g.com", "fromName": "", "ganalytics": false, "group": "", @@ -540,7 +540,7 @@ "contacts": [ { "email": "user4@rudderlabs.com", - "phone_number": "+91 66788956769", + "phone_number": "+91 9876543210", "first_name": "suresh", "last_name": "gupta", "custom_fields": {} @@ -583,7 +583,7 @@ "eventDeliveryTS": 1668424218224, "eventNamesSettings": [{ "event": "open" }], "footer": false, - "fromEmail": "ankitcingh93@gmail.com", + "fromEmail": "a@g.com", "fromName": "", "ganalytics": false, "group": "", @@ -623,7 +623,7 @@ "contacts": [ { "email": "user5@rudderlabs.com", - "phone_number": "+91 66788956769", + "phone_number": "+91 9876543210", "first_name": "kiran", "last_name": "bhatt", "custom_fields": {} @@ -666,7 +666,7 @@ "eventDeliveryTS": 1668424218224, "eventNamesSettings": [{ "event": "open" }], "footer": false, - "fromEmail": "ankitcingh93@gmail.com", + "fromEmail": "a@g.com", "fromName": "", "ganalytics": false, "group": "", @@ -706,7 +706,7 @@ "contacts": [ { "email": "user6@rudderlabs.com", - "phone_number": "+91 66758956769", + "phone_number": "+91 9876543210", "first_name": "john", "last_name": "doe", "unique_name": "john doe", @@ -750,7 +750,7 @@ "eventDeliveryTS": 1668424218224, "eventNamesSettings": [{ "event": "open" }], "footer": false, - "fromEmail": "ankitcingh93@gmail.com", + "fromEmail": "a@g.com", "fromName": "", "ganalytics": false, "group": "", @@ -786,7 +786,7 @@ "contacts": [ { "email": "user7@rudderlabs.com", - "phone_number": "+91 66958956769", + "phone_number": "+91 9876543210", "first_name": "reshma", "last_name": "patel", "unique_name": "reshma patel", @@ -830,7 +830,7 @@ "eventDeliveryTS": 1668424218224, "eventNamesSettings": [{ "event": "open" }], "footer": false, - "fromEmail": "ankitcingh93@gmail.com", + "fromEmail": "a@g.com", "fromName": "", "ganalytics": false, "group": "", @@ -872,7 +872,7 @@ "contacts": [ { "email": "user8@rudderlabs.com", - "phone_number": "+91 76958956769", + "phone_number": "+91 9876543210", "first_name": "karishma", "last_name": "patel", "unique_name": "karishma patel", @@ -916,7 +916,7 @@ "eventDeliveryTS": 1668424218224, "eventNamesSettings": [{ "event": "open" }], "footer": false, - "fromEmail": "ankitcingh93@gmail.com", + "fromEmail": "a@g.com", "fromName": "", "ganalytics": false, "group": "", diff --git a/test/__tests__/data/sendgrid_router.json b/test/__tests__/data/sendgrid_router.json index 00757ad513a..a9147d1ee74 100644 --- a/test/__tests__/data/sendgrid_router.json +++ b/test/__tests__/data/sendgrid_router.json @@ -57,7 +57,7 @@ { "to": [ { - "email": "ankitcingh93@gmail.com" + "email": "a@g.com" }, { "name": "hello" @@ -87,7 +87,7 @@ { "to": [ { - "email": "ankitcingh93@gmail.com" + "email": "a@g.com" } ], "subject": "hey there" diff --git a/test/__tests__/data/sendinblue.json b/test/__tests__/data/sendinblue.json index 62f480f4b54..06b6df14d96 100644 --- a/test/__tests__/data/sendinblue.json +++ b/test/__tests__/data/sendinblue.json @@ -182,7 +182,7 @@ "lastName": "Doe", "age": 19, "email": "john_doe@example.com", - "phone": "+919348230999", + "phone": "+919876543210", "location": "Mumbai", "role": "SDE" } @@ -211,7 +211,7 @@ "properties": { "FIRSTNAME": "John", "LASTNAME": "Doe", - "SMS": "+919348230999", + "SMS": "+919876543210", "age": 19, "location": "Mumbai", "role": "SDE" @@ -247,7 +247,7 @@ "lastName": "Doe", "age": 19, "email": "john_doe@example.com", - "phone": "+919348230999", + "phone": "+919876543210", "location": "Mumbai", "role": "SDE" } @@ -283,7 +283,7 @@ "FIRSTNAME": "John", "LASTNAME": "Doe", "LOCATION": "Mumbai", - "SMS": "+919348230999", + "SMS": "+919876543210", "age": 19, "role": "SDE" } @@ -334,7 +334,7 @@ "lastName": "Doe", "age": 19, "email": "john_doe@example.com", - "phone": "+919348230999", + "phone": "+919876543210", "location": "Mumbai", "role": "SDE" } @@ -395,7 +395,7 @@ "FIRSTNAME": "John", "LASTNAME": "Doe", "LOCATION": "Mumbai", - "SMS": "+919348230999", + "SMS": "+919876543210", "age": 19, "role": "SDE" } @@ -446,7 +446,7 @@ "lastName": "Doe", "age": 19, "email": "john_doe@example.com", - "phone": "+919348230999", + "phone": "+919876543210", "location": "Mumbai", "role": "SDE" } @@ -501,7 +501,7 @@ "FIRSTNAME": "John", "LASTNAME": "Doe", "LOCATION": "Mumbai", - "SMS": "+919348230999", + "SMS": "+919876543210", "age": 19, "role": "SDE" } @@ -728,7 +728,7 @@ "lastName": "Doe", "age": 19, "email": "john_doe@example.com", - "phone": "+919348230999", + "phone": "+919876543210", "location": "Mumbai", "newEmail": "alex_root@example.com", "role": "SDE" @@ -774,7 +774,7 @@ "FIRSTNAME": "John", "LASTNAME": "Doe", "LOCATION": "Mumbai", - "SMS": "+919348230999", + "SMS": "+919876543210", "EMAIL": "alex_root@example.com", "age": 19, "role": "SDE" @@ -811,7 +811,7 @@ "lastName": "Doe", "age": 19, "email": "john_doe@example.com", - "phone": "+919348230999", + "phone": "+919876543210", "location": "Mumbai", "role": "SDE" }, @@ -853,7 +853,7 @@ "attributes": { "FIRSTNAME": "John", "LASTNAME": "Doe", - "SMS": "+919348230999", + "SMS": "+919876543210", "age": 19, "location": "Mumbai", "role": "SDE" @@ -890,7 +890,7 @@ "lastName": "Doe", "age": 19, "email": "john_doe@example.com", - "phone": "+919348230999", + "phone": "+919876543210", "location": "Mumbai", "role": "SDE" }, @@ -926,7 +926,7 @@ "lastName": "Doe", "age": 19, "email": "john_doe@example.com", - "phone": "+919348230999", + "phone": "+919876543210", "location": "Mumbai", "role": "SDE" }, diff --git a/test/__tests__/data/sendinblue_router_input.json b/test/__tests__/data/sendinblue_router_input.json index 000c0a9a910..1f2b8a1dc2e 100644 --- a/test/__tests__/data/sendinblue_router_input.json +++ b/test/__tests__/data/sendinblue_router_input.json @@ -28,7 +28,7 @@ "lastName": "Doe", "age": 19, "email": "john_doe@example.com", - "phone": "+919348230999", + "phone": "+919876543210", "location": "Mumbai", "role": "SDE" } @@ -110,7 +110,7 @@ "lastName": "Doe", "age": 19, "email": "john_doe@example.com", - "phone": "+919348230999", + "phone": "+919876543210", "location": "Mumbai", "newEmail": "alex_root@example.com", "role": "SDE" @@ -161,7 +161,7 @@ "lastName": "Doe", "age": 19, "email": "john_doe@example.com", - "phone": "+919348230999", + "phone": "+919876543210", "location": "Mumbai", "role": "SDE" }, diff --git a/test/__tests__/data/sendinblue_router_output.json b/test/__tests__/data/sendinblue_router_output.json index a525a86f310..c15c15205c6 100644 --- a/test/__tests__/data/sendinblue_router_output.json +++ b/test/__tests__/data/sendinblue_router_output.json @@ -31,7 +31,7 @@ "FIRSTNAME": "John", "LASTNAME": "Doe", "LOCATION": "Mumbai", - "SMS": "+919348230999", + "SMS": "+919876543210", "age": 19, "role": "SDE" } @@ -127,7 +127,7 @@ "FIRSTNAME": "John", "LASTNAME": "Doe", "LOCATION": "Mumbai", - "SMS": "+919348230999", + "SMS": "+919876543210", "age": 19, "role": "SDE" }, diff --git a/test/__tests__/data/sf_input.json b/test/__tests__/data/sf_input.json index aa1fb03a19b..a10caa8d12e 100644 --- a/test/__tests__/data/sf_input.json +++ b/test/__tests__/data/sf_input.json @@ -55,7 +55,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -109,7 +109,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { diff --git a/test/__tests__/data/sfmc_input.json b/test/__tests__/data/sfmc_input.json index b10ffcbb8c5..ee6eccb1543 100644 --- a/test/__tests__/data/sfmc_input.json +++ b/test/__tests__/data/sfmc_input.json @@ -16,7 +16,7 @@ }, "traits": { "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Malik" + "name": "Tonmoy Labs" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -91,7 +91,7 @@ }, "traits": { "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Malik" + "name": "Tonmoy Labs" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -165,7 +165,7 @@ "content": "Demo content" }, "traits": { - "name": "Tonmoy Malik" + "name": "Tonmoy Labs" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -239,7 +239,7 @@ }, "traits": { "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Malik" + "name": "Tonmoy Labs" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -313,7 +313,7 @@ }, "traits": { "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Malik" + "name": "Tonmoy Labs" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -401,7 +401,7 @@ }, "traits": { "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Malik" + "name": "Tonmoy Labs" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -477,7 +477,7 @@ }, "traits": { "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Malik" + "name": "Tonmoy Labs" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -570,7 +570,7 @@ }, "traits": { "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Malik" + "name": "Tonmoy Labs" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -662,7 +662,7 @@ "carrier": "Verizon" }, "traits": { - "name": "Tonmoy Malik" + "name": "Tonmoy Labs" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -754,7 +754,7 @@ "carrier": "Verizon" }, "traits": { - "name": "Tonmoy Malik" + "name": "Tonmoy Labs" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -833,7 +833,7 @@ }, "traits": { "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Malik" + "name": "Tonmoy Labs" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -922,7 +922,7 @@ }, "traits": { "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Malik" + "name": "Tonmoy Labs" }, "library": { "name": "RudderLabs JavaScript SDK", diff --git a/test/__tests__/data/sfmc_output.json b/test/__tests__/data/sfmc_output.json index ce7e2eb07da..aaaf23aea85 100644 --- a/test/__tests__/data/sfmc_output.json +++ b/test/__tests__/data/sfmc_output.json @@ -1,6 +1,6 @@ [ { - "error": "Creating or updating contacts is disabled" + "error": "Creating or updating contacts is disabled. To enable this feature set \"Do Not Create or Update Contacts\" to false" }, [ { @@ -53,7 +53,7 @@ "Screen Height": 860, "Screen Width": 1280, "Email": "tonmoy@rudderstack.com", - "Name": "Tonmoy Malik" + "Name": "Tonmoy Labs" } }, "XML": {}, @@ -107,7 +107,7 @@ "body": { "JSON": { "values": { - "Name": "Tonmoy Malik", + "Name": "Tonmoy Labs", "Email": "tonmoy@rudderstack.com", "Locale": "en-GB", "App Name": "RudderLabs JavaScript SDK", diff --git a/test/__tests__/data/sfmc_router_input.json b/test/__tests__/data/sfmc_router_input.json index fe4f0ecfb34..ba925030eb0 100644 --- a/test/__tests__/data/sfmc_router_input.json +++ b/test/__tests__/data/sfmc_router_input.json @@ -16,7 +16,7 @@ }, "traits": { "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Malik" + "name": "Tonmoy Labs" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -44,7 +44,7 @@ } }, "metadata": { - "jobId": 2 + "jobId": 1 }, "destination": { "ID": "1pYpzzvcn7AQ2W9GGIAZSsN6Mfq", @@ -94,7 +94,7 @@ }, "traits": { "email": "tonmoy@rudderstack.com", - "name": "Tonmoy Malik" + "name": "Tonmoy Labs" }, "library": { "name": "RudderLabs JavaScript SDK", diff --git a/test/__tests__/data/sfmc_router_output.json b/test/__tests__/data/sfmc_router_output.json index 5971a4f8c60..beb90b5e13b 100644 --- a/test/__tests__/data/sfmc_router_output.json +++ b/test/__tests__/data/sfmc_router_output.json @@ -2,7 +2,7 @@ { "metadata": [ { - "jobId": 2 + "jobId": 1 } ], "destination": { @@ -37,7 +37,7 @@ }, "batched": false, "statusCode": 400, - "error": "Creating or updating contacts is disabled", + "error": "Creating or updating contacts is disabled. To enable this feature set \"Do Not Create or Update Contacts\" to false", "statTags": { "errorCategory": "dataValidation", "errorType": "configuration" @@ -95,7 +95,7 @@ "Screen Height": 860, "Screen Width": 1280, "Email": "tonmoy@rudderstack.com", - "Name": "Tonmoy Malik" + "Name": "Tonmoy Labs" } }, "XML": {}, diff --git a/test/__tests__/data/shynet.json b/test/__tests__/data/shynet.json deleted file mode 100644 index 16673e09cfe..00000000000 --- a/test/__tests__/data/shynet.json +++ /dev/null @@ -1,166 +0,0 @@ -[ - { - "description": "Page Call", - "input": { - "destination": { - "Config": { - "shynetServiceUrl": "https://9710-103-211-12-1.in.ngrok.io/ingress/5b3470a9-be69-4298-9ec1-3fe3f483738c/script.js", - "heartBeat": 5000 - } - }, - "message": { - "type": "page", - "sentAt": "2022-08-22T13:39:21.034Z", - "channel": "web", - "context": { - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/test/ourSdk.html", - "path": "/Testing/test/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/test/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/test/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "" - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "email": "12312@!fma", - "city": "Pune", - "revenue": 93889 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "anonymousId": "bf412108-0357-4330-b119-7305e767823c", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-08-22T13:39:21.032Z" - } - }, - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "location": "http://127.0.0.1:7307/Testing/test/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/test/" - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://9710-103-211-12-1.in.ngrok.io/ingress/5b3470a9-be69-4298-9ec1-3fe3f483738c/script.js" - } - }, - { - "description": "Page Call without heartBeat Mentioned", - "input": { - "destination": { - "Config": { - "shynetServiceUrl": "https://9710-103-211-12-1.in.ngrok.io/ingress/5b3470a9-be69-4298-9ec1-3fe3f483738c/script.js" - } - }, - "message": { - "type": "page", - "sentAt": "2022-08-22T13:39:21.034Z", - "channel": "web", - "context": { - "app": { - "name": "RudderLabs JavaScript SDK", - "build": "1.0.0", - "version": "1.2.20", - "namespace": "com.rudderlabs.javascript" - }, - "page": { - "url": "http://127.0.0.1:7307/Testing/test/ourSdk.html", - "path": "/Testing/test/ourSdk.html", - "title": "Document", - "search": "", - "tab_url": "http://127.0.0.1:7307/Testing/test/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/test/", - "initial_referrer": "$direct", - "referring_domain": "127.0.0.1:7307", - "initial_referring_domain": "", - "loadTime": 45 - }, - "locale": "en-US", - "screen": { - "width": 1440, - "height": 900, - "density": 2, - "innerWidth": 536, - "innerHeight": 689 - }, - "traits": { - "email": "12312@!fma", - "city": "Pune", - "revenue": 93889 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.2.20" - }, - "campaign": {}, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" - }, - "properties": { - "loadTime": 45 - }, - "rudderId": "553b5522-c575-40a7-8072-9741c5f9a647", - "anonymousId": "675467tfhjgjhfcghjc", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-08-22T13:39:21.032Z" - } - }, - "output": { - "body": { - "XML": {}, - "FORM": {}, - "JSON": { - "loadTime": 45, - "location": "http://127.0.0.1:7307/Testing/test/ourSdk.html", - "referrer": "http://127.0.0.1:7307/Testing/test/" - }, - "JSON_ARRAY": {} - }, - "type": "REST", - "files": {}, - "method": "POST", - "params": {}, - "headers": { - "Content-Type": "application/json" - }, - "version": "1", - "endpoint": "https://9710-103-211-12-1.in.ngrok.io/ingress/5b3470a9-be69-4298-9ec1-3fe3f483738c/script.js" - } - } -] diff --git a/test/__tests__/data/slack_input.json b/test/__tests__/data/slack_input.json deleted file mode 100644 index 4e6195a37d8..00000000000 --- a/test/__tests__/data/slack_input.json +++ /dev/null @@ -1,696 +0,0 @@ -[ - { - "destination": { - "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "Name": "test-slack", - "DestinationDefinition": { - "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", - "Name": "SLACK", - "DisplayName": "Slack", - "Config": { "excludeKeys": [], "includeKeys": [] } - }, - "Config": { - "eventChannelSettings": [ - { - "eventChannel": "#slack_integration", - "eventName": "is", - "eventRegex": true - }, - { "eventChannel": "", "eventName": "", "eventRegex": false }, - { "eventChannel": "", "eventName": "", "eventRegex": false } - ], - "eventTemplateSettings": [ - { - "eventName": "is", - "eventRegex": true, - "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" - }, - { "eventName": "", "eventRegex": false, "eventTemplate": "" } - ], - "identifyTemplate": "identified {{name}} with {{traits}}", - "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", - "whitelistedTraitsSettings": [{ "trait": "hiji" }, { "trait": "" }] - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "4de817fb-7f8e-4e23-b9be-f6736dbda20f", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.1" - }, - "locale": "en-US", - "os": { "name": "", "version": "" }, - "page": { - "path": "/tests/html/script-test.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/script-test.html" - }, - "screen": { "density": 1.7999999523162842 }, - "traits": { - "country": "India", - "email": "name@domain.com", - "hiji": "hulala", - "name": "my-name" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" - }, - "integrations": { "All": true }, - "messageId": "9ecc0183-89ed-48bd-87eb-b2d8e1ca6780", - "originalTimestamp": "2020-03-23T03:46:30.916Z", - "properties": { - "path": "/tests/html/script-test.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/script-test.html" - }, - "receivedAt": "2020-03-23T09:16:31.041+05:30", - "request_ip": "[::1]:52056", - "sentAt": "2020-03-23T03:46:30.916Z", - "timestamp": "2020-03-23T09:16:31.041+05:30", - "type": "page", - "userId": "12345" - }, - "metadata": { - "anonymousId": "4de817fb-7f8e-4e23-b9be-f6736dbda20f", - "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "destinationType": "SLACK", - "jobId": 126, - "messageId": "9ecc0183-89ed-48bd-87eb-b2d8e1ca6780", - "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" - } - }, - { - "destination": { - "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "Name": "test-slack", - "DestinationDefinition": { - "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", - "Name": "SLACK", - "DisplayName": "Slack", - "Config": { "excludeKeys": [], "includeKeys": [] } - }, - "Config": { - "eventChannelSettings": [ - { - "eventChannel": "#slack_integration", - "eventName": "is", - "eventRegex": true - }, - { "eventChannel": "", "eventName": "", "eventRegex": false }, - { "eventChannel": "", "eventName": "", "eventRegex": false } - ], - "eventTemplateSettings": [ - { - "eventName": "is", - "eventRegex": true, - "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" - }, - { "eventName": "", "eventRegex": false, "eventTemplate": "" } - ], - "identifyTemplate": "identified {{name}} with {{traits}}", - "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", - "whitelistedTraitsSettings": [{ "trait": "hiji" }, { "trait": "" }] - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "12345", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.1" - }, - "locale": "en-US", - "os": { "name": "", "version": "" }, - "page": { - "path": "", - "referrer": "", - "search": "", - "title": "", - "url": "" - }, - "screen": { "density": 1.7999999523162842 }, - "traits": { - "country": "India", - "email": "name@domain.com", - "hiji": "hulala", - "name": "my-name" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" - }, - "traits": { - "country": "USA", - "email": "test@domain.com", - "hiji": "hulala-1", - "name": "my-name-1" - }, - "integrations": { "All": true }, - "messageId": "4aaecff2-a513-4bbf-9824-c471f4ac9777", - "originalTimestamp": "2020-03-23T03:41:46.122Z", - "receivedAt": "2020-03-23T09:11:46.244+05:30", - "request_ip": "[::1]:52055", - "sentAt": "2020-03-23T03:41:46.123Z", - "timestamp": "2020-03-23T09:11:46.243+05:30", - "type": "identify", - "userId": "12345" - }, - "metadata": { - "anonymousId": "12345", - "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "destinationType": "SLACK", - "jobId": 123, - "messageId": "4aaecff2-a513-4bbf-9824-c471f4ac9777", - "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" - } - }, - { - "destination": { - "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "Name": "test-slack", - "DestinationDefinition": { - "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", - "Name": "SLACK", - "DisplayName": "Slack", - "Config": { "excludeKeys": [], "includeKeys": [] } - }, - "Config": { - "eventChannelSettings": [ - { - "eventChannel": "#slack_integration", - "eventName": "is", - "eventRegex": true - }, - { "eventChannel": "", "eventName": "", "eventRegex": false }, - { "eventChannel": "", "eventName": "", "eventRegex": false } - ], - "eventTemplateSettings": [ - { - "eventName": "is", - "eventRegex": true, - "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}} and traits {{traitsList.hiji}}" - }, - { "eventName": "", "eventRegex": false, "eventTemplate": "" } - ], - "identifyTemplate": "identified {{name}} with {{traits}}", - "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", - "whitelistedTraitsSettings": [{ "trait": "hiji" }, { "trait": "" }] - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "00000000000000000000000000", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.1" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.1" - }, - "locale": "en-US", - "os": { "name": "", "version": "" }, - "page": { - "path": "/tests/html/script-test.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/script-test.html" - }, - "screen": { "density": 1.7999999523162842 }, - "traits": { - "country": "India", - "email": "name@domain.com", - "hiji": "hulala", - "name": "my-name" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" - }, - "event": "test_isent1", - "integrations": { "All": true }, - "messageId": "78102118-56ac-4c5a-a495-8cd7c8f71cc2", - "originalTimestamp": "2020-03-23T03:46:30.921Z", - "properties": { - "currency": "USD", - "key1": "test_val1", - "key2": "test_val2", - "revenue": 30, - "user_actual_id": 12345 - }, - "receivedAt": "2020-03-23T09:16:31.064+05:30", - "request_ip": "[::1]:52057", - "sentAt": "2020-03-23T03:46:30.921Z", - "timestamp": "2020-03-23T09:16:31.064+05:30", - "type": "track", - "userId": "12345" - }, - "metadata": { - "anonymousId": "00000000000000000000000000", - "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "destinationType": "SLACK", - "jobId": 128, - "messageId": "78102118-56ac-4c5a-a495-8cd7c8f71cc2", - "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" - } - }, - { - "destination": { - "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "Name": "test-slack", - "DestinationDefinition": { - "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", - "Name": "SLACK", - "DisplayName": "Slack", - "Config": { "excludeKeys": [], "includeKeys": [] } - }, - "Config": { - "eventChannelSettings": [ - { - "eventChannel": "#slack_integration", - "eventName": "is", - "eventRegex": true - }, - { "eventChannel": "", "eventName": "", "eventRegex": false }, - { "eventChannel": "", "eventName": "", "eventRegex": false } - ], - "eventTemplateSettings": [ - { - "eventName": "is", - "eventRegex": true, - "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" - }, - { "eventName": "", "eventRegex": false, "eventTemplate": "" } - ], - "identifyTemplate": "identified {{name}} with {{traits}}", - "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", - "whitelistedTraitsSettings": [{ "trait": "hiji" }, { "trait": "" }] - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "00000000000000000000000000", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.1" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.1" - }, - "locale": "en-US", - "os": { "name": "", "version": "" }, - "page": { - "path": "/tests/html/script-test.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/script-test.html" - }, - "screen": { "density": 1.7999999523162842 }, - "traits": { - "country": "India", - "email": "name@domain.com", - "hiji": "hulala", - "name": "my-name" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" - }, - "event": "test_eventing_testis", - "integrations": { "All": true }, - "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", - "originalTimestamp": "2020-03-23T03:46:30.922Z", - "properties": { - "currency": "USD", - "key1": "test_val1", - "key2": "test_val2", - "revenue": 30, - "user_actual_id": 12345 - }, - "receivedAt": "2020-03-23T09:16:31.064+05:30", - "request_ip": "[::1]:52054", - "sentAt": "2020-03-23T03:46:30.923Z", - "timestamp": "2020-03-23T09:16:31.063+05:30", - "type": "track", - "userId": "12345" - }, - "metadata": { - "anonymousId": "00000000000000000000000000", - "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "destinationType": "SLACK", - "jobId": 129, - "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", - "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" - } - }, - { - "destination": { - "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "Name": "test-slack", - "DestinationDefinition": { - "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", - "Name": "SLACK", - "DisplayName": "Slack", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "eventChannelSettings": [ - { - "eventChannel": "#slack_integration", - "eventName": "is", - "eventRegex": true - }, - { - "eventChannel": "", - "eventName": "", - "eventRegex": false - }, - { - "eventChannel": "", - "eventName": "", - "eventRegex": false - } - ], - "eventTemplateSettings": [ - { - "eventName": "is", - "eventRegex": true, - "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" - }, - { - "eventName": "", - "eventRegex": false, - "eventTemplate": "" - } - ], - "identifyTemplate": "identified {{name}} with {{traits}}", - "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", - "whitelistedTraitsSettings": [ - { - "trait": "hiji" - }, - { - "trait": "" - } - ] - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "00000000000000000000000000", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.1" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.1" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/script-test.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/script-test.html" - }, - "screen": { - "density": 1.7999999523162842 - }, - "traits": { - "country": "India", - "email": "name@domain.com", - "hiji": "hulala", - "name": "my-name" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" - }, - "event": "test_eventing_testis", - "integrations": { - "All": true - }, - "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", - "originalTimestamp": "2020-03-23T03:46:30.922Z", - "properties": { - "currency": "USD", - "key1": "test_val1", - "key2": "test_val2", - "revenue": 30, - "user_actual_id": 12345 - }, - "receivedAt": "2020-03-23T09:16:31.064+05:30", - "request_ip": "[::1]:52054", - "sentAt": "2020-03-23T03:46:30.923Z", - "timestamp": "2020-03-23T09:16:31.063+05:30", - "userId": "12345" - }, - "metadata": { - "anonymousId": "00000000000000000000000000", - "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "destinationType": "SLACK", - "jobId": 129, - "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", - "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" - } - }, - { - "destination": { - "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "Name": "test-slack", - "DestinationDefinition": { - "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", - "Name": "SLACK", - "DisplayName": "Slack", - "Config": { "excludeKeys": [], "includeKeys": [] } - }, - "Config": { - "eventChannelSettings": [ - { - "eventChannel": "#slack_integration", - "eventName": "is", - "eventRegex": true - }, - { "eventChannel": "", "eventName": "", "eventRegex": false }, - { "eventChannel": "", "eventName": "", "eventRegex": false } - ], - "eventTemplateSettings": [ - { - "eventName": "is", - "eventRegex": true, - "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" - }, - { "eventName": "", "eventRegex": false, "eventTemplate": "" } - ], - "identifyTemplate": "identified {{name}} with {{traits}}", - "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", - "whitelistedTraitsSettings": [{ "trait": "hiji" }, { "trait": "" }] - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "00000000000000000000000000", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.1" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.1" - }, - "locale": "en-US", - "os": { "name": "", "version": "" }, - "page": { - "path": "/tests/html/script-test.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/script-test.html" - }, - "screen": { "density": 1.7999999523162842 }, - "traits": { - "country": "India", - "email": "name@domain.com", - "hiji": "hulala", - "name": "my-name" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" - }, - "integrations": { "All": true }, - "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", - "originalTimestamp": "2020-03-23T03:46:30.922Z", - "properties": { - "currency": "USD", - "key1": "test_val1", - "key2": "test_val2", - "revenue": 30, - "user_actual_id": 12345 - }, - "receivedAt": "2020-03-23T09:16:31.064+05:30", - "request_ip": "[::1]:52054", - "sentAt": "2020-03-23T03:46:30.923Z", - "timestamp": "2020-03-23T09:16:31.063+05:30", - "type": "track", - "userId": "12345" - }, - "metadata": { - "anonymousId": "00000000000000000000000000", - "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "destinationType": "SLACK", - "jobId": 129, - "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", - "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" - } - }, - { - "destination": { - "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "Name": "test-slack", - "DestinationDefinition": { - "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", - "Name": "SLACK", - "DisplayName": "Slack", - "Config": { "excludeKeys": [], "includeKeys": [] } - }, - "Config": { - "eventChannelSettings": [ - { - "eventChannel": "#slack_integration", - "eventName": "is", - "eventRegex": true - }, - { "eventChannel": "", "eventName": "", "eventRegex": false }, - { "eventChannel": "", "eventName": "", "eventRegex": false } - ], - "eventTemplateSettings": [ - { - "eventName": "is", - "eventRegex": true, - "eventTemplate": "{{name}} performed {{event}} with {{properties. key1}} {{properties.key2}} and traits {{traitsList.hiji}}" - }, - { "eventName": "", "eventRegex": false, "eventTemplate": "" } - ], - "identifyTemplate": "identified {{name}} with {{traits}}", - "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", - "whitelistedTraitsSettings": [{ "trait": "hiji" }, { "trait": "" }] - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "00000000000000000000000000", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.1" - }, - "ip": "0.0.0.0", - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.1" - }, - "locale": "en-US", - "os": { "name": "", "version": "" }, - "page": { - "path": "/tests/html/script-test.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/script-test.html" - }, - "screen": { "density": 1.7999999523162842 }, - "traits": { - "country": "India", - "email": "name@domain.com", - "hiji": "hulala", - "name": "my-name" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" - }, - "event": "test_isent1", - "integrations": { "All": true }, - "messageId": "78102118-56ac-4c5a-a495-8cd7c8f71cc2", - "originalTimestamp": "2020-03-23T03:46:30.921Z", - "properties": { - "currency": "USD", - "key1": "test_val1", - "key2": "test_val2", - "revenue": 30, - "user_actual_id": 12345 - }, - "receivedAt": "2020-03-23T09:16:31.064+05:30", - "request_ip": "[::1]:52057", - "sentAt": "2020-03-23T03:46:30.921Z", - "timestamp": "2020-03-23T09:16:31.064+05:30", - "type": "track", - "userId": "12345" - }, - "metadata": { - "anonymousId": "00000000000000000000000000", - "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "destinationType": "SLACK", - "jobId": 128, - "messageId": "78102118-56ac-4c5a-a495-8cd7c8f71cc2", - "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" - } - } -] diff --git a/test/__tests__/data/slack_output.json b/test/__tests__/data/slack_output.json deleted file mode 100644 index 5c8495c7579..00000000000 --- a/test/__tests__/data/slack_output.json +++ /dev/null @@ -1,71 +0,0 @@ -[ - { - "error": "Event type page is not supported" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", - "headers": { "Content-Type": "application/x-www-form-urlencoded" }, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "payload": "{\"text\":\"identified my-name-1 with hiji: hulala-1 \",\"username\":\"RudderStack\",\"icon_url\":\"https://cdn.rudderlabs.com/rudderstack.png\"}" - } - }, - "files": {}, - "userId": "12345", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", - "headers": { "Content-Type": "application/x-www-form-urlencoded" }, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "payload": "{\"channel\":\"#slack_integration\",\"text\":\"my-name performed test_isent1 with test_val1 test_val2 and traits hulala\",\"username\":\"RudderStack\",\"icon_url\":\"https://cdn.rudderlabs.com/rudderstack.png\"}" - } - }, - "files": {}, - "userId": "12345", - "statusCode": 200 - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", - "headers": { "Content-Type": "application/x-www-form-urlencoded" }, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "payload": "{\"channel\":\"#slack_integration\",\"text\":\"my-name performed test_eventing_testis with test_val1 test_val2\",\"username\":\"RudderStack\",\"icon_url\":\"https://cdn.rudderlabs.com/rudderstack.png\"}" - } - }, - "files": {}, - "userId": "12345", - "statusCode": 200 - }, - { - "error": "Event type is required" - }, - { - "error": "Event name is required" - }, - { - "error": "Something is wrong with the event template: '{{name}} performed {{event}} with {{properties. key1}} {{properties.key2}} and traits {{traitsList.hiji}}'" - } -] diff --git a/test/__tests__/data/slack_router_input.json b/test/__tests__/data/slack_router_input.json deleted file mode 100644 index f2bf20466d4..00000000000 --- a/test/__tests__/data/slack_router_input.json +++ /dev/null @@ -1,247 +0,0 @@ -[ - { - "destination": { - "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "Name": "test-slack", - "DestinationDefinition": { - "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", - "Name": "SLACK", - "DisplayName": "Slack", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "eventChannelSettings": [ - { - "eventChannel": "#slack_integration", - "eventName": "is", - "eventRegex": true - }, - { - "eventChannel": "", - "eventName": "", - "eventRegex": false - }, - { - "eventChannel": "", - "eventName": "", - "eventRegex": false - } - ], - "eventTemplateSettings": [ - { - "eventName": "is", - "eventRegex": true, - "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" - }, - { - "eventName": "", - "eventRegex": false, - "eventTemplate": "" - } - ], - "identifyTemplate": "identified {{name}} with {{traits}}", - "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", - "whitelistedTraitsSettings": [ - { - "trait": "hiji" - }, - { - "trait": "" - } - ] - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "4de817fb-7f8e-4e23-b9be-f6736dbda20f", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.1" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "/tests/html/script-test.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/script-test.html" - }, - "screen": { - "density": 1.7999999523162842 - }, - "traits": { - "country": "India", - "email": "name@domain.com", - "hiji": "hulala", - "name": "my-name" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" - }, - "integrations": { - "All": true - }, - "messageId": "9ecc0183-89ed-48bd-87eb-b2d8e1ca6780", - "originalTimestamp": "2020-03-23T03:46:30.916Z", - "properties": { - "path": "/tests/html/script-test.html", - "referrer": "http://localhost:1111/tests/html/", - "search": "", - "title": "", - "url": "http://localhost:1111/tests/html/script-test.html" - }, - "receivedAt": "2020-03-23T09:16:31.041+05:30", - "request_ip": "[::1]:52056", - "sentAt": "2020-03-23T03:46:30.916Z", - "timestamp": "2020-03-23T09:16:31.041+05:30", - "type": "page", - "userId": "12345" - }, - "metadata": { - "anonymousId": "4de817fb-7f8e-4e23-b9be-f6736dbda20f", - "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "destinationType": "SLACK", - "jobId": 126, - "messageId": "9ecc0183-89ed-48bd-87eb-b2d8e1ca6780", - "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" - } - }, - { - "destination": { - "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "Name": "test-slack", - "DestinationDefinition": { - "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", - "Name": "SLACK", - "DisplayName": "Slack", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "eventChannelSettings": [ - { - "eventChannel": "#slack_integration", - "eventName": "is", - "eventRegex": true - }, - { - "eventChannel": "", - "eventName": "", - "eventRegex": false - }, - { - "eventChannel": "", - "eventName": "", - "eventRegex": false - } - ], - "eventTemplateSettings": [ - { - "eventName": "is", - "eventRegex": true, - "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" - }, - { - "eventName": "", - "eventRegex": false, - "eventTemplate": "" - } - ], - "identifyTemplate": "identified {{name}} with {{traits}}", - "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", - "whitelistedTraitsSettings": [ - { - "trait": "hiji" - }, - { - "trait": "" - } - ] - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "message": { - "anonymousId": "12345", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.1-rc.1" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.1-rc.1" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "page": { - "path": "", - "referrer": "", - "search": "", - "title": "", - "url": "" - }, - "screen": { - "density": 1.7999999523162842 - }, - "traits": { - "country": "India", - "email": "name@domain.com", - "hiji": "hulala", - "name": "my-name" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" - }, - "traits": { - "country": "USA", - "email": "test@domain.com", - "hiji": "hulala-1", - "name": "my-name-1" - }, - "integrations": { - "All": true - }, - "messageId": "4aaecff2-a513-4bbf-9824-c471f4ac9777", - "originalTimestamp": "2020-03-23T03:41:46.122Z", - "receivedAt": "2020-03-23T09:11:46.244+05:30", - "request_ip": "[::1]:52055", - "sentAt": "2020-03-23T03:41:46.123Z", - "timestamp": "2020-03-23T09:11:46.243+05:30", - "type": "identify", - "userId": "12345" - }, - "metadata": { - "anonymousId": "12345", - "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "destinationType": "SLACK", - "jobId": 123, - "messageId": "4aaecff2-a513-4bbf-9824-c471f4ac9777", - "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" - } - } -] diff --git a/test/__tests__/data/slack_router_output.json b/test/__tests__/data/slack_router_output.json deleted file mode 100644 index 6b1658b5e03..00000000000 --- a/test/__tests__/data/slack_router_output.json +++ /dev/null @@ -1,172 +0,0 @@ -[ - { - "destination": { - "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "Name": "test-slack", - "DestinationDefinition": { - "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", - "Name": "SLACK", - "DisplayName": "Slack", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "eventChannelSettings": [ - { - "eventChannel": "#slack_integration", - "eventName": "is", - "eventRegex": true - }, - { - "eventChannel": "", - "eventName": "", - "eventRegex": false - }, - { - "eventChannel": "", - "eventName": "", - "eventRegex": false - } - ], - "eventTemplateSettings": [ - { - "eventName": "is", - "eventRegex": true, - "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" - }, - { - "eventName": "", - "eventRegex": false, - "eventTemplate": "" - } - ], - "identifyTemplate": "identified {{name}} with {{traits}}", - "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", - "whitelistedTraitsSettings": [ - { - "trait": "hiji" - }, - { - "trait": "" - } - ] - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - }, - "metadata": [ - { - "anonymousId": "4de817fb-7f8e-4e23-b9be-f6736dbda20f", - "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "destinationType": "SLACK", - "jobId": 126, - "messageId": "9ecc0183-89ed-48bd-87eb-b2d8e1ca6780", - "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" - } - ], - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation" - }, - "batched": false, - "statusCode": 400, - "error": "Event type page is not supported" - }, - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", - "headers": { - "Content-Type": "application/x-www-form-urlencoded" - }, - "params": {}, - "body": { - "JSON": {}, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": { - "payload": "{\"text\":\"identified my-name-1 with hiji: hulala-1 \",\"username\":\"RudderStack\",\"icon_url\":\"https://cdn.rudderlabs.com/rudderstack.png\"}" - } - }, - "files": {}, - "userId": "12345", - "statusCode": 200 - } - ], - "metadata": [ - { - "anonymousId": "12345", - "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "destinationType": "SLACK", - "jobId": 123, - "messageId": "4aaecff2-a513-4bbf-9824-c471f4ac9777", - "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", - "Name": "test-slack", - "DestinationDefinition": { - "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", - "Name": "SLACK", - "DisplayName": "Slack", - "Config": { - "excludeKeys": [], - "includeKeys": [] - } - }, - "Config": { - "eventChannelSettings": [ - { - "eventChannel": "#slack_integration", - "eventName": "is", - "eventRegex": true - }, - { - "eventChannel": "", - "eventName": "", - "eventRegex": false - }, - { - "eventChannel": "", - "eventName": "", - "eventRegex": false - } - ], - "eventTemplateSettings": [ - { - "eventName": "is", - "eventRegex": true, - "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" - }, - { - "eventName": "", - "eventRegex": false, - "eventTemplate": "" - } - ], - "identifyTemplate": "identified {{name}} with {{traits}}", - "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", - "whitelistedTraitsSettings": [ - { - "trait": "hiji" - }, - { - "trait": "" - } - ] - }, - "Enabled": true, - "Transformations": [], - "IsProcessorEnabled": true - } - } -] diff --git a/test/__tests__/data/snapchat_conversion.json b/test/__tests__/data/snapchat_conversion.json deleted file mode 100644 index 0105df1c9cd..00000000000 --- a/test/__tests__/data/snapchat_conversion.json +++ /dev/null @@ -1,2796 +0,0 @@ -[ - { - "description": "Test case for Prodcuts Searched event for conversion type offline", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Products Searched", - "properties": { - "query": "t-shirts", - "event_conversion_type": "web", - "number_items": 4 - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "pixelId": "68e3dab0-3282-49ef10931dbf3", - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0." - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "search_string": "t-shirts", - "event_type": "SEARCH", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "OFFLINE", - "pixel_id": "68e3dab0-3282-49ef10931dbf3", - "number_items": 4 - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test case for Track event without event Key", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "properties": { - "query": "t-shirts", - "event_conversion_type": "web" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "pixelId": "68e3dab0-3282-49ef10931dbf3", - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0." - } - } - }, - "output": { - "statusCode": 400, - "error": "Event name is required" - } - }, - { - "description": "Test case for Identify event which is not supported in this destination", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "identify", - "event": "Products Searched", - "properties": { - "query": "t-shirts", - "event_conversion_type": "web" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "pixelId": "68e3dab0-3282-49ef10931dbf3", - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0." - } - } - }, - "output": { - "statusCode": 400, - "error": "Event type identify is not supported" - } - }, - { - "description": "Pixel id is not set as a destination config field", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Products Searched", - "properties": { - "query": "t-shirts", - "event_conversion_type": "web" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0." - } - } - }, - "output": { - "statusCode": 400, - "error": "Pixel Id is required for web and offline events" - } - }, - { - "description": "Test case for Prodcuts Searched event for conversion type web", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "web", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Products Searched", - "properties": { - "query": "t-shirts", - "event_conversion_type": "web" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "search_string": "t-shirts", - "event_type": "SEARCH", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "WEB", - "pixel_id": "dihfnjrnerneknrenrjenjer" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test case where appId is not present in destination config", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "mobile", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Products Searched", - "properties": { - "query": "t-shirts", - "event_conversion_type": "web" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer" - } - } - }, - "output": { - "statusCode": 400, - "error": "App Id is required for app events" - } - }, - { - "description": "Test case where snap app id is not present in destination config", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "mobile", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Products Searched", - "properties": { - "query": "t-shirts", - "event_conversion_type": "web" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f" - } - } - }, - "output": { - "statusCode": 400, - "error": "Snap App Id is required for app events" - } - }, - { - "description": "Product Searched event where conversion type is mobile app", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "mobile", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Products Searched", - "properties": { - "query": "t-shirts", - "event_conversion_type": "web" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f", - "snapAppId": "hfhdhfd" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "search_string": "t-shirts", - "event_type": "SEARCH", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "MOBILE_APP", - "snap_app_id": "hfhdhfd", - "app_id": "dhfeih44f" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test Case for Product List Viewed event where conversion type is mobile app", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "mobile", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Product List Viewed", - "properties": { - "products": [ - { - "product_id": "123", - "price": "14" - }, - { - "product_id": "123", - "price": 14, - "quantity": 3 - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f", - "snapAppId": "hfhdhfd" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event_type": "VIEW_CONTENT", - "item_ids": ["123", "123"], - "price": "56", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "MOBILE_APP", - "snap_app_id": "hfhdhfd", - "app_id": "dhfeih44f" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test case for checkout_started event where conversion type is mobile app", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "mobile", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "checkout_started", - "properties": { - "products": [ - { - "product_id": "123", - "price": "14" - }, - { - "product_id": "123", - "price": 14, - "quantity": "2" - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f", - "snapAppId": "hfhdhfd" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event_type": "START_CHECKOUT", - "item_ids": ["123", "123"], - "price": "42", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "MOBILE_APP", - "snap_app_id": "hfhdhfd", - "app_id": "dhfeih44f" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test Case for Order Completed event where conversion type is mobile app", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "mobile", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Order Completed", - "properties": { - "products": [ - { - "product_id": "123", - "price": "14", - "quantity": 1 - }, - { - "product_id": "123", - "price": 14, - "quantity": 3 - } - ] - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f", - "snapAppId": "hfhdhfd" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event_type": "PURCHASE", - "item_ids": ["123", "123"], - "price": "56", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "MOBILE_APP", - "snap_app_id": "hfhdhfd", - "app_id": "dhfeih44f" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test Case for Product Added event where conversion type is mobile app", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "mobile", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Product Added", - "properties": { - "product_id": "123", - "price": "14", - "category": "shoes", - "currency": "USD" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f", - "snapAppId": "hfhdhfd" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "item_ids": "123", - "item_category": "shoes", - "price": "14", - "currency": "USD", - "event_type": "ADD_CART", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "MOBILE_APP", - "snap_app_id": "hfhdhfd", - "app_id": "dhfeih44f" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test case for Product Viewed event where conversion type is web", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "web", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Product Viewed", - "properties": { - "product_id": "123", - "price": "14", - "category": "shoes", - "currency": "USD", - "number_items": 14, - "quantity": 1 - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f", - "snapAppId": "hfhdhfd" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "item_ids": "123", - "item_category": "shoes", - "price": "14", - "currency": "USD", - "event_type": "VIEW_CONTENT", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "WEB", - "pixel_id": "dihfnjrnerneknrenrjenjer", - "number_items": 14 - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test case for Product Viewed event where conversion type is offline", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Product Viewed", - "properties": { - "product_id": "123", - "price": "14", - "category": "shoes", - "currency": "USD", - "quantity": 1 - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f", - "snapAppId": "hfhdhfd" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "item_ids": "123", - "item_category": "shoes", - "price": "14", - "currency": "USD", - "event_type": "VIEW_CONTENT", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "OFFLINE", - "pixel_id": "dihfnjrnerneknrenrjenjer", - "number_items": 1 - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test case for Payment Info Entered event where conversion type is offline", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Payment Info Entered", - "properties": { - "checkout_id": "12dfdfdf3" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f", - "snapAppId": "hfhdhfd" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "transaction_id": "12dfdfdf3", - "event_type": "ADD_BILLING", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "OFFLINE", - "pixel_id": "dihfnjrnerneknrenrjenjer" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test case for Subscribe event where conversion type is web", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "subscribe", - "properties": { - "checkout_id": "123", - "price": "14", - "category": "shoes", - "currency": "USD" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f", - "snapAppId": "hfhdhfd" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "item_category": "shoes", - "price": "14", - "currency": "USD", - "event_type": "SUBSCRIBE", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "OFFLINE", - "pixel_id": "dihfnjrnerneknrenrjenjer" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test case for Promotion Viewed event for conversion type offline", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Promotion Viewed", - "properties": { - "checkout_id": "123", - "price": "14", - "category": "shoes", - "currency": "USD" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f", - "snapAppId": "hfhdhfd" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "item_category": "shoes", - "price": "14", - "currency": "USD", - "event_type": "AD_VIEW", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "OFFLINE", - "pixel_id": "dihfnjrnerneknrenrjenjer" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test case for Promotion Clicked event for conversion type offline", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Promotion clicked", - "properties": { - "checkout_id": "123", - "price": "14", - "category": "shoes", - "currency": "USD" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f", - "snapAppId": "hfhdhfd" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "item_category": "shoes", - "price": "14", - "currency": "USD", - "event_type": "AD_CLICK", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "OFFLINE", - "pixel_id": "dihfnjrnerneknrenrjenjer" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test case for save event for conversion type offline", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "save", - "properties": { - "checkout_id": "123", - "price": "14", - "category": "shoes", - "currency": "USD" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f", - "snapAppId": "hfhdhfd" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "item_category": "shoes", - "price": "14", - "currency": "USD", - "event_type": "SAVE", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "OFFLINE", - "pixel_id": "dihfnjrnerneknrenrjenjer" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test case for Product Viewed event where conversion type is web", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Product Viewed", - "properties": { - "eventConversionType": "web", - "checkout_id": "123", - "price": "14", - "category": "shoes", - "currency": "USD", - "url": "hjhb.com" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f", - "snapAppId": "hfhdhfd" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "item_category": "shoes", - "page_url": "hjhb.com", - "price": "14", - "currency": "USD", - "event_type": "VIEW_CONTENT", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "WEB", - "pixel_id": "dihfnjrnerneknrenrjenjer" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test case for Product Viewed event where conversion type is offline", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Product Viewed", - "properties": { - "eventConversionType": "offline", - "checkout_id": "123", - "price": "14", - "category": "shoes", - "currency": "USD", - "url": "hjhb.com" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f", - "snapAppId": "hfhdhfd" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "item_category": "shoes", - "price": "14", - "currency": "USD", - "event_type": "VIEW_CONTENT", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "OFFLINE", - "pixel_id": "dihfnjrnerneknrenrjenjer" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test case for Product Searched event where conversion type is offline", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Products Searched", - "properties": { - "query": "t-shirts", - "event_conversion_type": "web", - "event_tag": "offline" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "pixelId": "68e3dab0-3282-49ef10931dbf3", - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0." - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "search_string": "t-shirts", - "event_type": "SEARCH", - "event_tag": "offline", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "OFFLINE", - "pixel_id": "68e3dab0-3282-49ef10931dbf3" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test Case for Product Added To Whishlist event where conversion type is mobile app", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "mobile", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Product Added to Wishlist", - "properties": { - "product_id": "123", - "price": "14", - "category": "shoes", - "currency": "USD" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f", - "snapAppId": "hfhdhfd" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "item_category": "shoes", - "item_ids": "123", - "price": "14", - "currency": "USD", - "event_type": "ADD_TO_WISHLIST", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "MOBILE_APP", - "snap_app_id": "hfhdhfd", - "app_id": "dhfeih44f" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Test case for Products Searched event using event mapping", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "ProdSearched", - "properties": { - "query": "t-shirts", - "event_conversion_type": "web" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "pixelId": "68e3dab0-3282-49ef10931dbf3", - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "rudderEventsToSnapEvents": [ - { - "from": "ProdSearched", - "to": "products_searched" - } - ] - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "search_string": "t-shirts", - "event_type": "SEARCH", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "OFFLINE", - "pixel_id": "68e3dab0-3282-49ef10931dbf3" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Test case event doesn't match with snapchat events", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "ProdSearched", - "properties": { - "query": "t-shirts", - "event_conversion_type": "web" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "pixelId": "68e3dab0-3282-49ef10931dbf3", - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "rudderEventsToSnapEvents": [] - } - } - }, - "output": { - "statusCode": 400, - "error": "Event ProdSearched doesn't match with Snapchat Events!" - } - }, - { - "description": "test event naming (i.e passed vs the names provided in webapp) by bringing them to a common ground", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Product Added to Cart", - "properties": { - "query": "t-shirts", - "event_conversion_type": "web" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "pixelId": "68e3dab0-3282-49ef10931dbf3", - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "rudderEventsToSnapEvents": [ - { - "from": "Product_Added_To_Cart", - "to": "products_searched" - } - ] - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "search_string": "t-shirts", - "event_type": "SEARCH", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "OFFLINE", - "pixel_id": "68e3dab0-3282-49ef10931dbf3" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "test event naming (i.e passed vs the names provided in webapp) by bringing them to a common ground - here destination config need to be modified", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Product_Added_to_Cart", - "properties": { - "query": "t-shirts", - "event_conversion_type": "web" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "pixelId": "68e3dab0-3282-49ef10931dbf3", - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "rudderEventsToSnapEvents": [ - { - "from": "Product Added To Cart", - "to": "products_searched" - } - ] - } - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "search_string": "t-shirts", - "event_type": "SEARCH", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "OFFLINE", - "pixel_id": "68e3dab0-3282-49ef10931dbf3" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Mapping revenue to price for order completed event", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "mobile", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Order Completed", - "properties": { - "products": [ - { - "product_id": "123", - "price": "14", - "quantity": 1 - }, - { - "product_id": "123", - "price": 14, - "quantity": 3 - } - ], - "revenue": "100" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f", - "snapAppId": "hfhdhfd" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event_type": "PURCHASE", - "item_ids": ["123", "123"], - "price": "100", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "MOBILE_APP", - "snap_app_id": "hfhdhfd", - "app_id": "dhfeih44f" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Mapping revenue to price for product list viewed event", - "input": { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "channel": "mobile", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Product List Viewed", - "properties": { - "products": [ - { - "product_id": "123", - "price": "14" - }, - { - "product_id": "123", - "price": 14, - "quantity": 3 - } - ], - "revenue": "100" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "destination": { - "Config": { - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "pixelId": "dihfnjrnerneknrenrjenjer", - "appId": "dhfeih44f", - "snapAppId": "hfhdhfd" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0.", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event_type": "VIEW_CONTENT", - "item_ids": ["123", "123"], - "price": "100", - "hashed_email": "73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2", - "hashed_phone_number": "bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492", - "hashed_mobile_ad_id": "f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2", - "hashed_idfv": "54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f", - "user_agent": "mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36", - "timestamp": "1650625078", - "event_conversion_type": "MOBILE_APP", - "snap_app_id": "hfhdhfd", - "app_id": "dhfeih44f" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - } -] diff --git a/test/__tests__/data/snapchat_conversion_router_input.json b/test/__tests__/data/snapchat_conversion_router_input.json deleted file mode 100644 index 284e37dd1f7..00000000000 --- a/test/__tests__/data/snapchat_conversion_router_input.json +++ /dev/null @@ -1,321 +0,0 @@ -[ - { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Products Searched", - "properties": { - "query": "t-shirts", - "event_conversion_type": "web" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "metadata": { - "jobId": 1 - }, - "destination": { - "Config": { - "pixelId": "68e3dab0-3282-49ef10931dbf3", - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0." - } - } - }, - { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Products Searched", - "properties": { - "query": "t-shirts", - "event_conversion_type": "web" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "pixelId": "68e3dab0-3282-49ef10931dbf3", - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0." - } - } - }, - { - "message": { - "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "originalTimestamp": "2022-04-22T10:57:58Z", - "anonymousId": "ea5cfab2-3961-4d8a-8187-3d1858c99090", - "context": { - "traits": { - "email": "test@email.com", - "phone": "+91 2111111 " - }, - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "device": { - "advertisingId": "T0T0T072-5e28-45a1-9eda-ce22a3e36d1a", - "id": "3f034872-5e28-45a1-9eda-ce22a3e36d1a", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "ios", - "attTrackingStatus": 3 - }, - - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "iOS", - "version": "14.4.1" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "ga4AppInstanceId", - "id": "f0dd99v4f979fb997ce453373900f891" - } - ], - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" - }, - "type": "track", - "event": "Products Searched", - "properties": { - "query": "t-shirts", - "event_conversion_type": "web" - }, - "integrations": { - "All": true - }, - "sentAt": "2022-04-22T10:57:58Z" - }, - "metadata": { - "jobId": 3 - }, - "destination": { - "Config": { - "pixelId": "68e3dab0-3282-49ef10931dbf3", - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0." - } - } - }, - { - "message": { - "type": "track", - "event": "Product List Viewed", - "sentAt": "2022-08-01T15:04:58.764Z", - "userId": "d131b5f1fc@nana.sa", - "channel": "mobile", - "context": { - "os": { - "name": "iOS", - "version": "15.5" - }, - "app": { - "name": "CFBundleDisplayName", - "build": "12.43.0.16", - "version": "12.43.0", - "namespace": "iShopCloud.com" - }, - "device": { - "id": "f244e389-d899-40a0-9673-1db87a8db7d3", - "name": "iPhone Monerah", - "type": "iOS", - "model": "iPhone", - "manufacturer": "Apple" - }, - "locale": "ar-SA", - "screen": { - "width": 896, - "height": 414, - "density": 2 - }, - "traits": { - "email": "mnoryali011@gmail.com", - "phone": "00966556747779", - "userId": "d131b5f1fc@nana.sa", - "address": { - "city": "الرياض", - "country": "sa" - }, - "country": "sa", - "lastName": "", - "firstName": "منيرة ام عمر", - "anonymousId": "f244e389-d899-40a0-9673-1db87a8db7d3", - "Mobile Number": "00966556747779", - "Last App Close": "2022-07-29T21:43:30.342Z", - "Activation code": "9997", - "Activation date": "2022-03-24 19:37:42", - "First App Close": "2022-05-18 07:53:03", - "Mobile Number Status": "Active", - "Last Activated Device": { - "UUID": "F244E389-D899-40A0-9673-1DB87A8DB7D3", - "Platform": "IOS", - "App Version": "12.38.0", - "App Language": "AR", - "Platform Version": "15.4" - }, - "ml_availability_segment": -1 - }, - "library": { - "name": "rudder-ios-library", - "version": "1.0.7" - }, - "network": { - "wifi": true, - "carrier": "unavailable", - "cellular": false, - "bluetooth": false - }, - "timezone": "Asia/Riyadh", - "userAgent": "unknown", - "externalId": [ - { - "id": "CBEDC847-F22C-447C-85DE-2BB693240F8E", - "type": "brazeExternalId" - } - ] - }, - "rudderId": "8fd7a036-fcbd-4ec3-b498-ea2cbf1df629", - "messageId": "1659366289-4126c107-c1e1-4ee1-b534-fb49afca197b", - "timestamp": "2022-08-01T15:04:49.593Z", - "properties": { - "Parent": "Testing", - "List ID": "CAT00002903", - "store_id": "STR00001959", - "List Name": "User", - "session_id": "", - "Viewed From": "home", - "Category Position": 2, - "Banner Position Segment": "B", - "category_personalise_segment": "B" - }, - "receivedAt": "2022-08-01T15:04:59.091Z", - "request_ip": "78.95.64.84", - "anonymousId": "f244e389-d899-40a0-9673-1db87a8db7d3", - "integrations": { - "All": true - }, - "originalTimestamp": "2022-08-01T15:04:49.266Z" - }, - "metadata": { - "jobId": 4 - }, - "destination": { - "Config": { - "pixelId": "jashdfkjas-3282-49ef1093alsjkdhfjadksf", - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyUlkjhhadfkasdfkhkasdfkj.eyJhdWQiOiJjYW52YXMtY2FudmFzYXBpIiwiaXNzIjoiY2FudmFzLXMyc3Rva2VuIiwibmJmIjoxNjU5MDc3ODA4LCJzdWIiOiJjMmRkMmNkOC02NTQ3LTRiMDAtOTBlZS0xZDZkMzUxN2EwOWN-UFJPRFVDVElPTn45MzZiMTg4My0zNTUyLTQxNTQtOWQyMy00NjZkNGRjN2UxNmIifQ.XdQwpR7qIjH4WMujDWzZSbOIBcZtKwreBWjTPNIiHD.", - "appId": "jahsdfjk-5487-asdfa-9957-7c74eb8d3e80", - "snapAppId": "", - "enableDeduplication": false, - "rudderEventsToSnapEvents": [ - { - "from": "Product List Viewed", - "to": "product_list_viewed" - } - ] - } - } - } -] diff --git a/test/__tests__/data/snapchat_conversion_router_output.json b/test/__tests__/data/snapchat_conversion_router_output.json deleted file mode 100644 index 3541dd01ec0..00000000000 --- a/test/__tests__/data/snapchat_conversion_router_output.json +++ /dev/null @@ -1,72 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://tr.snapchat.com/v2/conversion", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0." - }, - "params": {}, - "body": { - "JSON": {}, - "JSON_ARRAY": { - "batch": "[{\"search_string\":\"t-shirts\",\"event_type\":\"SEARCH\",\"hashed_email\":\"73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2\",\"hashed_phone_number\":\"bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492\",\"hashed_idfv\":\"54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f\",\"hashed_mobile_ad_id\":\"f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2\",\"user_agent\":\"mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36\",\"timestamp\":\"1650625078\",\"event_conversion_type\":\"OFFLINE\",\"pixel_id\":\"68e3dab0-3282-49ef10931dbf3\"},{\"search_string\":\"t-shirts\",\"event_type\":\"SEARCH\",\"hashed_email\":\"73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2\",\"hashed_phone_number\":\"bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492\",\"hashed_idfv\":\"54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f\",\"hashed_mobile_ad_id\":\"f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2\",\"user_agent\":\"mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36\",\"timestamp\":\"1650625078\",\"event_conversion_type\":\"OFFLINE\",\"pixel_id\":\"68e3dab0-3282-49ef10931dbf3\"},{\"search_string\":\"t-shirts\",\"event_type\":\"SEARCH\",\"hashed_email\":\"73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2\",\"hashed_phone_number\":\"bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492\",\"hashed_idfv\":\"54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f\",\"hashed_mobile_ad_id\":\"f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2\",\"user_agent\":\"mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36\",\"timestamp\":\"1650625078\",\"event_conversion_type\":\"OFFLINE\",\"pixel_id\":\"68e3dab0-3282-49ef10931dbf3\"}]" - }, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 1 - }, - { - "jobId": 2 - }, - { - "jobId": 3 - } - ], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "pixelId": "68e3dab0-3282-49ef10931dbf3", - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyU0hNQUNQcm9kIiwidHlwIjoiSldUIn0." - } - } - }, - { - "metadata": [ - { - "jobId": 4 - } - ], - "batched": false, - "statusCode": 400, - "error": "Snap App Id is required for app events", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "configuration" - }, - "destination": { - "Config": { - "pixelId": "jashdfkjas-3282-49ef1093alsjkdhfjadksf", - "apiKey": "eyJhbGciOiJIUzI1NiIsImtpZCI6IkNhbnZhc1MyUlkjhhadfkasdfkhkasdfkj.eyJhdWQiOiJjYW52YXMtY2FudmFzYXBpIiwiaXNzIjoiY2FudmFzLXMyc3Rva2VuIiwibmJmIjoxNjU5MDc3ODA4LCJzdWIiOiJjMmRkMmNkOC02NTQ3LTRiMDAtOTBlZS0xZDZkMzUxN2EwOWN-UFJPRFVDVElPTn45MzZiMTg4My0zNTUyLTQxNTQtOWQyMy00NjZkNGRjN2UxNmIifQ.XdQwpR7qIjH4WMujDWzZSbOIBcZtKwreBWjTPNIiHD.", - "appId": "jahsdfjk-5487-asdfa-9957-7c74eb8d3e80", - "snapAppId": "", - "enableDeduplication": false, - "rudderEventsToSnapEvents": [ - { - "from": "Product List Viewed", - "to": "product_list_viewed" - } - ] - } - } - } -] diff --git a/test/__tests__/data/snapchat_custom_audience.json b/test/__tests__/data/snapchat_custom_audience.json deleted file mode 100644 index 2ac369feb7e..00000000000 --- a/test/__tests__/data/snapchat_custom_audience.json +++ /dev/null @@ -1,939 +0,0 @@ -[ - { - "description": "adding user", - "input": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "sudip@abc.com", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "schema": ["EMAIL_SHA256"], - "data": [["938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c"]] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "removing user", - "input": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": true, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "remove": [ - { - "email": "938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "id": "123", - "schema": ["EMAIL_SHA256"], - "data": [["938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c"]] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "adding and removing users", - "input": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "sudip@abc.com", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - } - ], - "remove": [ - { - "email": "sudip@abc.com", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "schema": ["EMAIL_SHA256"], - "data": [["938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c"]] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "id": "123", - "schema": ["EMAIL_SHA256"], - "data": [["938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c"]] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "adding multiple users", - "input": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "sudip@abc.com", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - }, - { - "email": "rohith@abc.com", - "phone": "@09432457768", - "firstName": "rohith", - "lastName": "kaza", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "schema": ["EMAIL_SHA256"], - "data": [ - ["938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c"], - ["445f6f4b062809de065cfbb4b56bfeedc550842887237e792d4ce23df9b172e0"] - ] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "removing multiple users", - "input": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "remove": [ - { - "email": "sudip@abc.com", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - }, - { - "email": "rohith@abc.com", - "phone": "@09432457768", - "firstName": "rohith", - "lastName": "kaza", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "id": "123", - "schema": ["EMAIL_SHA256"], - "data": [ - ["938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c"], - ["445f6f4b062809de065cfbb4b56bfeedc550842887237e792d4ce23df9b172e0"] - ] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "message type is not audiencelist", - "input": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audience", - "properties": { - "listData": { - "add": [ - { - "email": "rohith@abc.com", - "phone": "@09432457768", - "firstName": "rohith", - "lastName": "kaza", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": { - "statusCode": 400, - "error": "Event type audience is not supported" - } - }, - { - "description": "without message type", - "input": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "properties": { - "listData": { - "add": [ - { - "email": "rohith@abc.com", - "phone": "@09432457768", - "firstName": "rohith", - "lastName": "kaza", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": { - "statusCode": 400, - "error": "Event type is required" - } - }, - { - "description": "without sending properties", - "input": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": { - "statusCode": 400, - "error": "Message properties is not present. Aborting message" - } - }, - { - "description": "without listData inside properties", - "input": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": { - "statusCode": 400, - "error": "listData is not present inside properties. Aborting message" - } - }, - { - "description": "without add or remove lists inside listData", - "input": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "abc": "123" - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": { - "statusCode": 400, - "error": "Neither 'add' nor 'remove' property is present inside 'listData'. Aborting message" - } - }, - { - "description": "not providing required field for chosen schema in all the cases", - "input": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "remove": [ - { - "email": "", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - }, - { - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": { - "statusCode": 400, - "error": "Required schema parameter email is not found from payload" - } - }, - { - "description": "not providing required field for chosen schema in some cases", - "input": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "remove": [ - { - "email": "abcd@abc.com", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - }, - { - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "DELETE", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "id": "123", - "schema": ["EMAIL_SHA256"], - "data": [["8c37cbc5d9abb3082303c6548571cfc7655a4546ddc1e943f041fc9126e7274a"]] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "schema= phone", - "input": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "phone" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "sudip@abc.com", - "phone": "09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "schema": ["PHONE_SHA256"], - "data": [["0dcd4be87427e008a16adbdc2b2c15a14accf485dd451314dcecfb902c51c686"]] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "schema= mobileAdId", - "input": { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "mobileAdId" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "sudip@abc.com", - "phone": "09432457768", - "mobileId": "1334", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Authorization": "Bearer abcd1234", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "schema": ["MOBILE_AD_ID_SHA256"], - "data": [["eb43272640b269219a01caf99c5a4122d6edc0916d45ac13c0ce80ca3ad2def0"]] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - } -] diff --git a/test/__tests__/data/snapchat_custom_audience_proxy_output.json b/test/__tests__/data/snapchat_custom_audience_proxy_output.json index 654d94c45c6..e5bcc4faa8f 100644 --- a/test/__tests__/data/snapchat_custom_audience_proxy_output.json +++ b/test/__tests__/data/snapchat_custom_audience_proxy_output.json @@ -43,6 +43,7 @@ }, { "output": { + "authErrorCategory": "AUTH_STATUS_INACTIVE", "status": 400, "destinationResponse": { "response": { diff --git a/test/__tests__/data/snapchat_custom_audience_router_input.json b/test/__tests__/data/snapchat_custom_audience_router_input.json deleted file mode 100644 index 25e455cc865..00000000000 --- a/test/__tests__/data/snapchat_custom_audience_router_input.json +++ /dev/null @@ -1,46 +0,0 @@ -[ - { - "metadata": { - "secret": { - "access_token": "abcd1234", - "refresh_token": "efgh5678", - "developer_token": "ijkl9101" - } - }, - "destination": { - "Config": { - "segmentId": "123", - "disableHashing": false, - "schema": "email" - } - }, - "message": { - "userId": "user 1", - "anonymousId": "anon-id-new", - "event": "event1", - "type": "audiencelist", - "properties": { - "listData": { - "add": [ - { - "email": "sudip@abc.com", - "phone": "@09432457768", - "firstName": "sudip", - "lastName": "paul", - "country": "US", - "postalCode": "1245" - } - ] - }, - "enablePartialFailure": true - }, - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "timestamp": "2020-02-02T00:23:09.544Z" - } - } -] diff --git a/test/__tests__/data/snapchat_custom_audience_router_output.json b/test/__tests__/data/snapchat_custom_audience_router_output.json deleted file mode 100644 index 9c12db4f2dc..00000000000 --- a/test/__tests__/data/snapchat_custom_audience_router_output.json +++ /dev/null @@ -1,49 +0,0 @@ -[ - { - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcd1234" - }, - "params": {}, - "body": { - "JSON": { - "users": [ - { - "data": [["938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c"]], - "schema": ["EMAIL_SHA256"] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "metadata": [ - { - "secret": { - "access_token": "abcd1234", - "developer_token": "ijkl9101", - "refresh_token": "efgh5678" - } - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "disableHashing": false, - "schema": "email", - "segmentId": "123" - } - } - } -] diff --git a/test/__tests__/data/splitio_input.json b/test/__tests__/data/splitio_input.json deleted file mode 100644 index a8b8f5480df..00000000000 --- a/test/__tests__/data/splitio_input.json +++ /dev/null @@ -1,367 +0,0 @@ -[ - { - "message": { - "traits": { - "martin": 21.565000000000001, - "trafficTypeName": "user", - "vertical": "restaurant", - "eventTypeId": "page_load end to end", - "timestamp": 1513357833000, - "GMV": false - }, - "userId": "user123", - "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", - "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", - "context": { - "ip": "14.5.67.21", - "traits": { - "abc": "new-val", - "key": "key_user_0", - "value": "0.93" - }, - "library": { - "name": "http" - } - }, - "type": "group", - "groupId": "group1", - "timestamp": "2020-01-21T00:21:34.208Z", - "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", - "receivedAt": "2021-04-19T14:53:18.215+05:30", - "requestIP": "[::1]" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - }, - { - "message": { - "traits": { - "martin": 21.565000000000001, - "trafficTypeName": "user", - "eventTypeId": "page_load end to end", - "timestamp": 1513357833000, - "address": { - "city": "San Francisco", - "state": "CA", - "country": "USA" - }, - "key1": { - "a": "a" - }, - "key2": [1, 2, 3], - "key3": { - "key4": {} - }, - "key5": null - }, - "userId": "user123", - "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", - "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", - "context": { - "ip": "14.5.67.21", - "traits": { - "abc": "new-val", - "key": "key_user_0" - }, - "library": { - "name": "http" - } - }, - "type": "identify", - "timestamp": "2020-01-21T00:21:34.208Z", - "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", - "receivedAt": "2021-04-19T14:53:18.215+05:30", - "requestIP": "[::1]" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - }, - { - "message": { - "event": "splitio_test_1", - "messageId": "9b200548-5961-4448-9dbc-098b7ce85751", - "properties": { - "eventTypeId": "page_load", - "trafficTypeName": "user", - "key": "key_user_0", - "timestamp": 1513357833000, - "value": "0.93", - "martin": 21.565, - "vertical": "restaurant", - "GMV": true, - "abc": "new-val", - "property1": { - "property2": 1, - "property3": "test", - "property4": { - "subProp1": { - "a": "a", - "b": "b" - }, - "subProp2": ["a", "b"], - "subProp3": { - "prop": {} - } - } - }, - "properties5": null - }, - "receivedAt": "2021-03-01T22:55:54.806Z", - "rudderId": "6886eb9e-215d-4f61-a651-4b8ef18aaea3", - "timestamp": "2021-03-01T22:55:54.771Z", - "type": "track", - "userId": "user 1" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "production", - "trafficType": "user" - } - } - }, - { - "message": { - "name": "splitio_test_1", - "messageId": "9b200548-5961-4448-9dbc-098b7ce85751", - "properties": { - "eventTypeId": "page_load", - "trafficTypeName": "user", - "key": "key_user_0", - "timestamp": 1513357833000, - "value": "0.93", - "martin": 21.565, - "vertical": "restaurant", - "GMV": true, - "abc": "new-val" - }, - "receivedAt": "2021-03-01T22:55:54.806Z", - "rudderId": "6886eb9e-215d-4f61-a651-4b8ef18aaea3", - "timestamp": "2021-03-01T22:55:54.771Z", - "type": "page", - "userId": "user 1" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "production", - "trafficType": "user" - } - } - }, - { - "message": { - "name": "splitio_test_1", - "messageId": "9b200548-5961-4448-9dbc-098b7ce85751", - "properties": { - "eventTypeId": "page_load", - "trafficTypeName": "user", - "key": "key_user_0", - "timestamp": 1513357833000, - "value": "0.93", - "martin": 21.565, - "vertical": "restaurant", - "GMV": true, - "abc": "new-val" - }, - "receivedAt": "2021-03-01T22:55:54.806Z", - "rudderId": "6886eb9e-215d-4f61-a651-4b8ef18aaea3", - "timestamp": "2021-03-01T22:55:54.771Z", - "type": "screen", - "userId": "user 1" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - }, - { - "message": { - "userId": "user123", - "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", - "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", - "context": { - "ip": "14.5.67.21", - "traits": { - "abc": "new-val", - "key": "key_user_0", - "newProperty": "1", - "martin": 21.565000000000001, - "vertical": "restaurant", - "GMV": false - }, - "library": { - "name": "http" - } - }, - "type": "identify", - "timestamp": "2020-01-21T00:21:34.208Z", - "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", - "receivedAt": "2021-04-19T14:53:18.215+05:30", - "requestIP": "[::1]" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - }, - { - "message": { - "userId": "user123", - "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", - "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", - "context": { - "ip": "14.5.67.21", - "traits": { - "abc": "new-val", - "key": "key_user_0", - "newProperty": "1" - }, - "library": { - "name": "http" - } - }, - "timestamp": "2020-01-21T00:21:34.208Z", - "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", - "receivedAt": "2021-04-19T14:53:18.215+05:30", - "requestIP": "[::1]" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - }, - { - "message": { - "userId": "user123", - "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", - "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", - "context": { - "ip": "14.5.67.21", - "traits": { - "abc": "new-val", - "key": "key_user_0", - "newProperty": "1" - }, - "library": { - "name": "http" - } - }, - "type": "abc", - "timestamp": "2020-01-21T00:21:34.208Z", - "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", - "receivedAt": "2021-04-19T14:53:18.215+05:30", - "requestIP": "[::1]" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - }, - { - "message": { - "name": "@$%%^&", - "messageId": "9b200548-5961-4448-9dbc-098b7ce85751", - "properties": { - "eventTypeId": "page_load", - "trafficTypeName": "user", - "key": "key_user_0", - "timestamp": 1513357833000, - "value": "0.93", - "martin": 21.565, - "vertical": "restaurant", - "GMV": true, - "abc": "new-val" - }, - "receivedAt": "2021-03-01T22:55:54.806Z", - "rudderId": "6886eb9e-215d-4f61-a651-4b8ef18aaea3", - "timestamp": "2021-03-01T22:55:54.771Z", - "type": "page", - "userId": "user 1" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "production", - "trafficType": "user" - } - } - }, - { - "message": { - "name": "1pplication accepted", - "messageId": "9b200548-5961-4448-9dbc-098b7ce85751", - "category": "food", - "properties": { - "eventTypeId": "page_load", - "trafficTypeName": "user", - "key": "key_user_0", - "timestamp": 1513357833000, - "value": "bc2", - "martin": 21.565, - "vertical": ["restaurant", "mall"], - "GMV": true, - "abc": "new-val" - }, - "receivedAt": "2021-03-01T22:55:54.806Z", - "rudderId": "6886eb9e-215d-4f61-a651-4b8ef18aaea3", - "timestamp": "2021-03-01T22:55:54.771Z", - "type": "page", - "userId": "user 1" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "production", - "trafficType": "user" - } - } - }, - { - "message": { - "userId": "user123", - "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", - "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", - "context": { - "ip": "14.5.67.21", - "library": { - "name": "http" - } - }, - "type": "identify", - "timestamp": "2020-01-21T00:21:34.208Z", - "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", - "receivedAt": "2021-04-19T14:53:18.215+05:30", - "requestIP": "[::1]" - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - } -] diff --git a/test/__tests__/data/splitio_output.json b/test/__tests__/data/splitio_output.json deleted file mode 100644 index bb51be1d174..00000000000 --- a/test/__tests__/data/splitio_output.json +++ /dev/null @@ -1,261 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "group", - "key": "user123", - "timestamp": 1579566094208, - "environmentName": "staging", - "trafficTypeName": "user", - "properties": { - "martin": 21.565, - "vertical": "restaurant", - "GMV": false - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "identify", - "key": "user123", - "timestamp": 1579566094208, - "environmentName": "staging", - "trafficTypeName": "user", - "properties": { - "martin": 21.565, - "address.city": "San Francisco", - "address.state": "CA", - "address.country": "USA", - "key1.a": "a", - "key2[0]": 1, - "key2[1]": 2, - "key2[2]": 3 - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "splitio_test_1", - "key": "user 1", - "timestamp": 1614639354771, - "value": 0.93, - "environmentName": "production", - "trafficTypeName": "user", - "properties": { - "martin": 21.565, - "vertical": "restaurant", - "GMV": true, - "abc": "new-val", - "property1.property2": 1, - "property1.property3": "test", - "property1.property4.subProp1.a": "a", - "property1.property4.subProp1.b": "b", - "property1.property4.subProp2[0]": "a", - "property1.property4.subProp2[1]": "b" - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "Viewed_splitio_test_1_page", - "key": "user 1", - "timestamp": 1614639354771, - "value": 0.93, - "environmentName": "production", - "trafficTypeName": "user", - "properties": { - "martin": 21.565, - "vertical": "restaurant", - "GMV": true, - "abc": "new-val" - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "Viewed_splitio_test_1_screen", - "key": "user 1", - "timestamp": 1614639354771, - "value": 0.93, - "environmentName": "staging", - "trafficTypeName": "user", - "properties": { - "martin": 21.565, - "vertical": "restaurant", - "GMV": true, - "abc": "new-val" - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "identify", - "key": "user123", - "timestamp": 1579566094208, - "environmentName": "staging", - "trafficTypeName": "user", - "properties": { - "abc": "new-val", - "newProperty": "1", - "martin": 21.565000000000001, - "vertical": "restaurant", - "GMV": false - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "error": "Event type is required" - }, - { - "error": "Event type abc is not supported" - }, - { - "error": "eventTypeId does not match with ideal format /^[\\dA-Za-z][\\w.-]{0,79}$/" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "Viewed_1pplication_accepted_page", - "key": "user 1", - "timestamp": 1614639354771, - "environmentName": "production", - "trafficTypeName": "user", - "properties": { - "martin": 21.565, - "GMV": true, - "abc": "new-val", - "category": "food", - "vertical[0]": "restaurant", - "vertical[1]": "mall" - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "identify", - "key": "user123", - "timestamp": 1579566094208, - "environmentName": "staging", - "trafficTypeName": "user", - "properties": {} - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - } -] diff --git a/test/__tests__/data/splitio_router_input.json b/test/__tests__/data/splitio_router_input.json deleted file mode 100644 index 5be89da84a3..00000000000 --- a/test/__tests__/data/splitio_router_input.json +++ /dev/null @@ -1,82 +0,0 @@ -[ - { - "message": { - "traits": { - "martin": 21.565000000000001, - "trafficTypeName": "user", - "vertical": "restaurant", - "eventTypeId": "page_load end to end", - "timestamp": 1513357833000, - "GMV": false - }, - "userId": "user123", - "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", - "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", - "context": { - "ip": "14.5.67.21", - "traits": { - "abc": "new-val", - "key": "key_user_0", - "value": "0.93" - }, - "library": { - "name": "http" - } - }, - "type": "group", - "groupId": "group1", - "timestamp": "2020-01-21T00:21:34.208Z", - "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", - "receivedAt": "2021-04-19T14:53:18.215+05:30", - "requestIP": "[::1]" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - }, - { - "message": { - "traits": { - "martin": 21.565000000000001, - "trafficTypeName": "user", - "eventTypeId": "page_load end to end", - "timestamp": 1513357833000 - }, - "userId": "user123", - "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", - "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", - "context": { - "ip": "14.5.67.21", - "traits": { - "abc": "new-val", - "key": "key_user_0" - }, - "library": { - "name": "http" - } - }, - "type": "identify", - "timestamp": "2020-01-21T00:21:34.208Z", - "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", - "receivedAt": "2021-04-19T14:53:18.215+05:30", - "requestIP": "[::1]" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - } -] diff --git a/test/__tests__/data/splitio_router_output.json b/test/__tests__/data/splitio_router_output.json deleted file mode 100644 index 644347ee959..00000000000 --- a/test/__tests__/data/splitio_router_output.json +++ /dev/null @@ -1,90 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "group", - "key": "user123", - "timestamp": 1579566094208, - "environmentName": "staging", - "trafficTypeName": "user", - "properties": { - "martin": 21.565, - "vertical": "restaurant", - "GMV": false - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - }, - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://events.split.io/api/events", - "headers": { - "Content-Type": "application/json", - "Authorization": "Bearer abcde" - }, - "params": {}, - "body": { - "JSON": { - "eventTypeId": "identify", - "key": "user123", - "timestamp": 1579566094208, - "environmentName": "staging", - "trafficTypeName": "user", - "properties": { - "martin": 21.565 - } - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 2 - } - ], - "batched": false, - "statusCode": 200, - "destination": { - "Config": { - "apiKey": "abcde", - "environment": "staging", - "trafficType": "user" - } - } - } -] diff --git a/test/__tests__/data/statsig_cdk_output.json b/test/__tests__/data/statsig_cdk_output.json deleted file mode 100644 index 212d7652301..00000000000 --- a/test/__tests__/data/statsig_cdk_output.json +++ /dev/null @@ -1,600 +0,0 @@ -[ - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "anonymousId": "8d872292709c6fbe", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AMTestProject", - "namespace": "com.rudderstack.android.rudderstack.sampleAndroidApp", - "version": "1.0" - }, - "device": { - "id": "8d872292709c6fbe", - "manufacturer": "Google", - "model": "AOSPonIAEmulator", - "name": "generic_x86_arm", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.2" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "address": { - "city": "Kolkata", - "country": "India", - "postalcode": "700096", - "state": "West bengal", - "street": "Park Street" - }, - "age": "30", - "anonymousId": "8d872292709c6fbe", - "birthday": "2020-05-26", - "createdat": "18th March 2020", - "description": "Premium User for 3 years", - "email": "identify@test.com", - "firstname": "John", - "userId": "sample_user_id", - "lastname": "Sparrow", - "name": "John Sparrow", - "id": "sample_user_id", - "phone": "9112340345", - "username": "john_sparrow" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)" - }, - "event": "Product Clicked", - "integrations": { - "All": true - }, - "messageId": "1590431830915-73bed370-5889-436d-9a9e-0c0e0c809d06", - "properties": { - "revenue": "30", - "currency": "USD", - "quantity": "5", - "test_key_2": { - "test_child_key_1": "test_child_value_1" - }, - "price": "58.0" - }, - "originalTimestamp": "2020-05-25T18:37:10.917Z", - "sentAt": "2020-05-25T18:37:10.917Z", - "type": "track", - "userId": "sample_user_id" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.statsig.com/v1/webhooks/rudderstack", - "headers": { - "content-type": "application/json", - "STATSIG-API-KEY": "secret-tHe5ecr37" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "anonymousId": "8d872292709c6fbe", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AMTestProject", - "namespace": "com.rudderstack.android.rudderstack.sampleAndroidApp", - "version": "1.0" - }, - "device": { - "id": "8d872292709c6fbe", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.2" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "address": { - "city": "Kolkata", - "country": "India", - "postalcode": "700096", - "state": "West bengal", - "street": "Park Street" - }, - "age": "30", - "anonymousId": "8d872292709c6fbe", - "birthday": "2020-05-26", - "createdat": "18th March 2020", - "description": "Premium User for 3 years", - "email": "identify@test.com", - "firstname": "John", - "userId": "sample_user_id", - "lastname": "Sparrow", - "name": "John Sparrow", - "id": "sample_user_id", - "phone": "9876543210", - "username": "john_sparrow", - "quantity": "5", - "price": "56.0" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)" - }, - "event": "identify", - "integrations": { - "All": true - }, - "messageId": "1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9", - "originalTimestamp": "2020-05-25T18:37:10.865Z", - "sentAt": "2020-05-25T18:37:10.917Z", - "type": "identify", - "userId": "sample_user_id" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.statsig.com/v1/webhooks/rudderstack", - "headers": { - "content-type": "application/json", - "STATSIG-API-KEY": "secret-tHe5ecr37" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "anonymousId": "8d872292709c6fbe", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AMTestProject", - "namespace": "com.rudderstack.android.rudderstack.sampleAndroidApp", - "version": "1.0" - }, - "device": { - "id": "8d872292709c6fbe", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.2" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "address": { - "city": "Kolkata", - "country": "India", - "postalcode": "700096", - "state": "West bengal", - "street": "Park Street" - }, - "age": "30", - "anonymousId": "8d872292709c6fbe", - "birthday": "2020-05-26", - "createdat": "18th March 2020", - "description": "Premium User for 3 years", - "email": "page@test.com", - "firstname": "John", - "userId": "sample_user_id", - "lastname": "Sparrow", - "name": "John Sparrow", - "id": "sample_user_id", - "phone": "9876543210", - "username": "john_sparrow", - "quantity": "5", - "price": "56.0" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)" - }, - "event": "page", - "integrations": { - "All": true - }, - "messageId": "1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9", - "originalTimestamp": "2020-05-25T18:37:10.865Z", - "sentAt": "2020-05-25T18:37:10.917Z", - "type": "page", - "userId": "sample_user_id" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.statsig.com/v1/webhooks/rudderstack", - "headers": { - "content-type": "application/json", - "STATSIG-API-KEY": "secret-tHe5ecr37" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "anonymousId": "8d872292709c6fbe", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AMTestProject", - "namespace": "com.rudderstack.android.rudderstack.sampleAndroidApp", - "version": "1.0" - }, - "device": { - "id": "8d872292709c6fbe", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.2" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "address": { - "city": "Kolkata", - "country": "India", - "postalcode": "700096", - "state": "West bengal", - "street": "Park Street" - }, - "age": "30", - "anonymousId": "8d872292709c6fbe", - "birthday": "2020-05-26", - "createdat": "18th March 2020", - "description": "Premium User for 3 years", - "email": "screen@test.com", - "firstname": "John", - "userId": "sample_user_id", - "lastname": "Sparrow", - "name": "John Sparrow", - "id": "sample_user_id", - "phone": "9876543210", - "username": "john_sparrow", - "quantity": "5", - "price": "56.0" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)" - }, - "event": "screen", - "integrations": { - "All": true - }, - "messageId": "1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9", - "originalTimestamp": "2020-05-25T18:37:10.865Z", - "sentAt": "2020-05-25T18:37:10.917Z", - "type": "screen", - "userId": "sample_user_id" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.statsig.com/v1/webhooks/rudderstack", - "headers": { - "content-type": "application/json", - "STATSIG-API-KEY": "secret-tHe5ecr37" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "anonymousId": "8d872292709c6fbe", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AMTestProject", - "namespace": "com.rudderstack.android.rudderstack.sampleAndroidApp", - "version": "1.0" - }, - "device": { - "id": "8d872292709c6fbe", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.2" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "address": { - "city": "Kolkata", - "country": "India", - "postalcode": "700096", - "state": "West bengal", - "street": "Park Street" - }, - "age": "30", - "anonymousId": "8d872292709c6fbe", - "birthday": "2020-05-26", - "createdat": "18th March 2020", - "description": "Premium User for 3 years", - "email": "screen@test.com", - "firstname": "John", - "userId": "sample_user_id", - "lastname": "Sparrow", - "name": "John Sparrow", - "id": "sample_user_id", - "phone": "9876543210", - "username": "john_sparrow", - "quantity": "5", - "price": "56.0" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)" - }, - "event": "screen", - "integrations": { - "All": true - }, - "messageId": "1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9", - "originalTimestamp": "2020-05-25T18:37:10.865Z", - "sentAt": "2020-05-25T18:37:10.917Z", - "type": "screen", - "userId": "sample_user_id" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.statsig.com/v1/webhooks/rudderstack", - "headers": { - "content-type": "application/json", - "STATSIG-API-KEY": "secret-4n07h3rsecr3t" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "alias", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "integrations": { - "All": true - }, - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.statsig.com/v1/webhooks/rudderstack", - "headers": { - "content-type": "application/json", - "STATSIG-API-KEY": "secret-tHe5ecr37" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "userId": "123456", - "type": "group", - "traits": { - "anonymousId": "123456", - "email": "sayan@gmail.com", - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - } - }, - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.statsig.com/v1/webhooks/rudderstack", - "headers": { - "content-type": "application/json", - "STATSIG-API-KEY": "secret-tHe5ecr37" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "error": "message type NOT_A_TYPE is not supported" - } -] diff --git a/test/__tests__/data/statsig_input.json b/test/__tests__/data/statsig_input.json deleted file mode 100644 index b70f4c94318..00000000000 --- a/test/__tests__/data/statsig_input.json +++ /dev/null @@ -1,607 +0,0 @@ -[ - { - "message": { - "anonymousId": "8d872292709c6fbe", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AMTestProject", - "namespace": "com.rudderstack.android.rudderstack.sampleAndroidApp", - "version": "1.0" - }, - "device": { - "id": "8d872292709c6fbe", - "manufacturer": "Google", - "model": "AOSPonIAEmulator", - "name": "generic_x86_arm", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.2" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "address": { - "city": "Kolkata", - "country": "India", - "postalcode": "700096", - "state": "West bengal", - "street": "Park Street" - }, - "age": "30", - "anonymousId": "8d872292709c6fbe", - "birthday": "2020-05-26", - "createdat": "18th March 2020", - "description": "Premium User for 3 years", - "email": "identify@test.com", - "firstname": "John", - "userId": "sample_user_id", - "lastname": "Sparrow", - "name": "John Sparrow", - "id": "sample_user_id", - "phone": "9112340345", - "username": "john_sparrow" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)" - }, - "event": "Product Clicked", - "integrations": { - "All": true - }, - "messageId": "1590431830915-73bed370-5889-436d-9a9e-0c0e0c809d06", - "properties": { - "revenue": "30", - "currency": "USD", - "quantity": "5", - "test_key_2": { - "test_child_key_1": "test_child_value_1" - }, - "price": "58.0" - }, - "originalTimestamp": "2020-05-25T18:37:10.917Z", - "sentAt": "2020-05-25T18:37:10.917Z", - "type": "track", - "userId": "sample_user_id" - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - }, - "Config": { - "secretKey": "secret-tHe5ecr37" - } - } - }, - { - "message": { - "anonymousId": "8d872292709c6fbe", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AMTestProject", - "namespace": "com.rudderstack.android.rudderstack.sampleAndroidApp", - "version": "1.0" - }, - "device": { - "id": "8d872292709c6fbe", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.2" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "address": { - "city": "Kolkata", - "country": "India", - "postalcode": "700096", - "state": "West bengal", - "street": "Park Street" - }, - "age": "30", - "anonymousId": "8d872292709c6fbe", - "birthday": "2020-05-26", - "createdat": "18th March 2020", - "description": "Premium User for 3 years", - "email": "identify@test.com", - "firstname": "John", - "userId": "sample_user_id", - "lastname": "Sparrow", - "name": "John Sparrow", - "id": "sample_user_id", - "phone": "9876543210", - "username": "john_sparrow", - "quantity": "5", - "price": "56.0" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)" - }, - "event": "identify", - "integrations": { - "All": true - }, - "messageId": "1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9", - "originalTimestamp": "2020-05-25T18:37:10.865Z", - "sentAt": "2020-05-25T18:37:10.917Z", - "type": "identify", - "userId": "sample_user_id" - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - }, - "Config": { - "secretKey": "secret-tHe5ecr37" - } - } - }, - { - "message": { - "anonymousId": "8d872292709c6fbe", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AMTestProject", - "namespace": "com.rudderstack.android.rudderstack.sampleAndroidApp", - "version": "1.0" - }, - "device": { - "id": "8d872292709c6fbe", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.2" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "address": { - "city": "Kolkata", - "country": "India", - "postalcode": "700096", - "state": "West bengal", - "street": "Park Street" - }, - "age": "30", - "anonymousId": "8d872292709c6fbe", - "birthday": "2020-05-26", - "createdat": "18th March 2020", - "description": "Premium User for 3 years", - "email": "page@test.com", - "firstname": "John", - "userId": "sample_user_id", - "lastname": "Sparrow", - "name": "John Sparrow", - "id": "sample_user_id", - "phone": "9876543210", - "username": "john_sparrow", - "quantity": "5", - "price": "56.0" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)" - }, - "event": "page", - "integrations": { - "All": true - }, - "messageId": "1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9", - "originalTimestamp": "2020-05-25T18:37:10.865Z", - "sentAt": "2020-05-25T18:37:10.917Z", - "type": "page", - "userId": "sample_user_id" - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - }, - "Config": { - "secretKey": "secret-tHe5ecr37" - } - } - }, - { - "message": { - "anonymousId": "8d872292709c6fbe", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AMTestProject", - "namespace": "com.rudderstack.android.rudderstack.sampleAndroidApp", - "version": "1.0" - }, - "device": { - "id": "8d872292709c6fbe", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.2" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "address": { - "city": "Kolkata", - "country": "India", - "postalcode": "700096", - "state": "West bengal", - "street": "Park Street" - }, - "age": "30", - "anonymousId": "8d872292709c6fbe", - "birthday": "2020-05-26", - "createdat": "18th March 2020", - "description": "Premium User for 3 years", - "email": "screen@test.com", - "firstname": "John", - "userId": "sample_user_id", - "lastname": "Sparrow", - "name": "John Sparrow", - "id": "sample_user_id", - "phone": "9876543210", - "username": "john_sparrow", - "quantity": "5", - "price": "56.0" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)" - }, - "event": "screen", - "integrations": { - "All": true - }, - "messageId": "1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9", - "originalTimestamp": "2020-05-25T18:37:10.865Z", - "sentAt": "2020-05-25T18:37:10.917Z", - "type": "screen", - "userId": "sample_user_id" - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - }, - "Config": { - "secretKey": "secret-tHe5ecr37" - } - } - }, - { - "message": { - "anonymousId": "8d872292709c6fbe", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AMTestProject", - "namespace": "com.rudderstack.android.rudderstack.sampleAndroidApp", - "version": "1.0" - }, - "device": { - "id": "8d872292709c6fbe", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.2" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "address": { - "city": "Kolkata", - "country": "India", - "postalcode": "700096", - "state": "West bengal", - "street": "Park Street" - }, - "age": "30", - "anonymousId": "8d872292709c6fbe", - "birthday": "2020-05-26", - "createdat": "18th March 2020", - "description": "Premium User for 3 years", - "email": "screen@test.com", - "firstname": "John", - "userId": "sample_user_id", - "lastname": "Sparrow", - "name": "John Sparrow", - "id": "sample_user_id", - "phone": "9876543210", - "username": "john_sparrow", - "quantity": "5", - "price": "56.0" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)" - }, - "event": "screen", - "integrations": { - "All": true - }, - "messageId": "1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9", - "originalTimestamp": "2020-05-25T18:37:10.865Z", - "sentAt": "2020-05-25T18:37:10.917Z", - "type": "screen", - "userId": "sample_user_id" - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - }, - "Config": { - "secretKey": "secret-4n07h3rsecr3t" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "alias", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "integrations": { - "All": true - }, - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - }, - "Config": { - "secretKey": "secret-tHe5ecr37" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "userId": "123456", - "type": "group", - "traits": { - "anonymousId": "123456", - "email": "sayan@gmail.com", - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - } - }, - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - }, - "Config": { - "secretKey": "secret-tHe5ecr37" - } - } - }, - { - "message": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.0.0" }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "userId": "123456", - "type": "NOT_A_TYPE", - "traits": { - "anonymousId": "123456", - "email": "sayan@gmail.com", - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - } - }, - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - }, - "Config": { - "secretKey": "secret-tHe5ecr37" - } - } - } -] diff --git a/test/__tests__/data/statsig_output.json b/test/__tests__/data/statsig_output.json deleted file mode 100644 index 91e7b3710b1..00000000000 --- a/test/__tests__/data/statsig_output.json +++ /dev/null @@ -1,600 +0,0 @@ -[ - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "anonymousId": "8d872292709c6fbe", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AMTestProject", - "namespace": "com.rudderstack.android.rudderstack.sampleAndroidApp", - "version": "1.0" - }, - "device": { - "id": "8d872292709c6fbe", - "manufacturer": "Google", - "model": "AOSPonIAEmulator", - "name": "generic_x86_arm", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.2" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "address": { - "city": "Kolkata", - "country": "India", - "postalcode": "700096", - "state": "West bengal", - "street": "Park Street" - }, - "age": "30", - "anonymousId": "8d872292709c6fbe", - "birthday": "2020-05-26", - "createdat": "18th March 2020", - "description": "Premium User for 3 years", - "email": "identify@test.com", - "firstname": "John", - "userId": "sample_user_id", - "lastname": "Sparrow", - "name": "John Sparrow", - "id": "sample_user_id", - "phone": "9112340345", - "username": "john_sparrow" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)" - }, - "event": "Product Clicked", - "integrations": { - "All": true - }, - "messageId": "1590431830915-73bed370-5889-436d-9a9e-0c0e0c809d06", - "properties": { - "revenue": "30", - "currency": "USD", - "quantity": "5", - "test_key_2": { - "test_child_key_1": "test_child_value_1" - }, - "price": "58.0" - }, - "originalTimestamp": "2020-05-25T18:37:10.917Z", - "sentAt": "2020-05-25T18:37:10.917Z", - "type": "track", - "userId": "sample_user_id" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.statsig.com/v1/webhooks/rudderstack", - "headers": { - "content-type": "application/json", - "STATSIG-API-KEY": "secret-tHe5ecr37" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "anonymousId": "8d872292709c6fbe", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AMTestProject", - "namespace": "com.rudderstack.android.rudderstack.sampleAndroidApp", - "version": "1.0" - }, - "device": { - "id": "8d872292709c6fbe", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.2" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "address": { - "city": "Kolkata", - "country": "India", - "postalcode": "700096", - "state": "West bengal", - "street": "Park Street" - }, - "age": "30", - "anonymousId": "8d872292709c6fbe", - "birthday": "2020-05-26", - "createdat": "18th March 2020", - "description": "Premium User for 3 years", - "email": "identify@test.com", - "firstname": "John", - "userId": "sample_user_id", - "lastname": "Sparrow", - "name": "John Sparrow", - "id": "sample_user_id", - "phone": "9876543210", - "username": "john_sparrow", - "quantity": "5", - "price": "56.0" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)" - }, - "event": "identify", - "integrations": { - "All": true - }, - "messageId": "1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9", - "originalTimestamp": "2020-05-25T18:37:10.865Z", - "sentAt": "2020-05-25T18:37:10.917Z", - "type": "identify", - "userId": "sample_user_id" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.statsig.com/v1/webhooks/rudderstack", - "headers": { - "content-type": "application/json", - "STATSIG-API-KEY": "secret-tHe5ecr37" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "anonymousId": "8d872292709c6fbe", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AMTestProject", - "namespace": "com.rudderstack.android.rudderstack.sampleAndroidApp", - "version": "1.0" - }, - "device": { - "id": "8d872292709c6fbe", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.2" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "address": { - "city": "Kolkata", - "country": "India", - "postalcode": "700096", - "state": "West bengal", - "street": "Park Street" - }, - "age": "30", - "anonymousId": "8d872292709c6fbe", - "birthday": "2020-05-26", - "createdat": "18th March 2020", - "description": "Premium User for 3 years", - "email": "page@test.com", - "firstname": "John", - "userId": "sample_user_id", - "lastname": "Sparrow", - "name": "John Sparrow", - "id": "sample_user_id", - "phone": "9876543210", - "username": "john_sparrow", - "quantity": "5", - "price": "56.0" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)" - }, - "event": "page", - "integrations": { - "All": true - }, - "messageId": "1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9", - "originalTimestamp": "2020-05-25T18:37:10.865Z", - "sentAt": "2020-05-25T18:37:10.917Z", - "type": "page", - "userId": "sample_user_id" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.statsig.com/v1/webhooks/rudderstack", - "headers": { - "content-type": "application/json", - "STATSIG-API-KEY": "secret-tHe5ecr37" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "anonymousId": "8d872292709c6fbe", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AMTestProject", - "namespace": "com.rudderstack.android.rudderstack.sampleAndroidApp", - "version": "1.0" - }, - "device": { - "id": "8d872292709c6fbe", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.2" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "address": { - "city": "Kolkata", - "country": "India", - "postalcode": "700096", - "state": "West bengal", - "street": "Park Street" - }, - "age": "30", - "anonymousId": "8d872292709c6fbe", - "birthday": "2020-05-26", - "createdat": "18th March 2020", - "description": "Premium User for 3 years", - "email": "screen@test.com", - "firstname": "John", - "userId": "sample_user_id", - "lastname": "Sparrow", - "name": "John Sparrow", - "id": "sample_user_id", - "phone": "9876543210", - "username": "john_sparrow", - "quantity": "5", - "price": "56.0" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)" - }, - "event": "screen", - "integrations": { - "All": true - }, - "messageId": "1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9", - "originalTimestamp": "2020-05-25T18:37:10.865Z", - "sentAt": "2020-05-25T18:37:10.917Z", - "type": "screen", - "userId": "sample_user_id" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.statsig.com/v1/webhooks/rudderstack", - "headers": { - "content-type": "application/json", - "STATSIG-API-KEY": "secret-tHe5ecr37" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "anonymousId": "8d872292709c6fbe", - "channel": "mobile", - "context": { - "app": { - "build": "1", - "name": "AMTestProject", - "namespace": "com.rudderstack.android.rudderstack.sampleAndroidApp", - "version": "1.0" - }, - "device": { - "id": "8d872292709c6fbe", - "manufacturer": "Google", - "model": "AOSP on IA Emulator", - "name": "generic_x86_arm", - "type": "android" - }, - "library": { - "name": "com.rudderstack.android.sdk.core", - "version": "1.0.2" - }, - "locale": "en-US", - "network": { - "carrier": "Android", - "bluetooth": false, - "cellular": true, - "wifi": true - }, - "os": { - "name": "Android", - "version": "9" - }, - "screen": { - "density": 420, - "height": 1794, - "width": 1080 - }, - "timezone": "Asia/Kolkata", - "traits": { - "address": { - "city": "Kolkata", - "country": "India", - "postalcode": "700096", - "state": "West bengal", - "street": "Park Street" - }, - "age": "30", - "anonymousId": "8d872292709c6fbe", - "birthday": "2020-05-26", - "createdat": "18th March 2020", - "description": "Premium User for 3 years", - "email": "screen@test.com", - "firstname": "John", - "userId": "sample_user_id", - "lastname": "Sparrow", - "name": "John Sparrow", - "id": "sample_user_id", - "phone": "9876543210", - "username": "john_sparrow", - "quantity": "5", - "price": "56.0" - }, - "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)" - }, - "event": "screen", - "integrations": { - "All": true - }, - "messageId": "1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9", - "originalTimestamp": "2020-05-25T18:37:10.865Z", - "sentAt": "2020-05-25T18:37:10.917Z", - "type": "screen", - "userId": "sample_user_id" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.statsig.com/v1/webhooks/rudderstack", - "headers": { - "content-type": "application/json", - "STATSIG-API-KEY": "secret-4n07h3rsecr3t" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.1.5" - }, - "traits": { - "name": "Shehan Study", - "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", - "plan": "Open source", - "logins": 5, - "createdAt": 1599264000 - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.1.5" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 0.8999999761581421 - }, - "campaign": { - "source": "google", - "medium": "medium", - "term": "keyword", - "content": "some content", - "name": "some campaign", - "test": "other value" - }, - "page": { - "path": "/destinations/amplitude", - "referrer": "", - "search": "", - "title": "", - "url": "https://docs.rudderstack.com/destinations/amplitude", - "category": "destination", - "initial_referrer": "https://docs.rudderstack.com", - "initial_referring_domain": "docs.rudderstack.com" - } - }, - "type": "alias", - "messageId": "dd46338d-5f83-493b-bd28-3b48f55d0be8", - "originalTimestamp": "2020-10-20T08:14:28.778Z", - "anonymousId": "my-anonymous-id-new", - "userId": "newUserIdAlias", - "integrations": { - "All": true - }, - "previousId": "sampleusrRudder3", - "sentAt": "2020-10-20T08:14:28.778Z" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.statsig.com/v1/webhooks/rudderstack", - "headers": { - "content-type": "application/json", - "STATSIG-API-KEY": "secret-tHe5ecr37" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", - "locale": "en-US", - "ip": "0.0.0.0", - "os": { "name": "", "version": "" }, - "screen": { "density": 2 } - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "anonymousId": "123456", - "userId": "123456", - "type": "group", - "traits": { - "anonymousId": "123456", - "email": "sayan@gmail.com", - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - } - }, - "integrations": { "All": true }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://api.statsig.com/v1/webhooks/rudderstack", - "headers": { - "content-type": "application/json", - "STATSIG-API-KEY": "secret-tHe5ecr37" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "error": "message type \"NOT_A_TYPE\" not supported for \"statsig\"" - } -] diff --git a/test/__tests__/data/stormly.json b/test/__tests__/data/stormly.json index cc1584d0d1f..2f0bb7f4d6d 100644 --- a/test/__tests__/data/stormly.json +++ b/test/__tests__/data/stormly.json @@ -4,7 +4,7 @@ "input": { "destination": { "Config": { - "apiKey": "dea8bdce17cd64e25ac31768bba574e26" + "apiKey": "dummyApiKey" }, "ID": "stormly123" }, @@ -31,7 +31,7 @@ "input": { "destination": { "Config": { - "apiKey": "dea8bdce17cd64e25ac31768bba574e26" + "apiKey": "dummyApiKey" }, "ID": "stormly123" }, @@ -59,7 +59,7 @@ "endpoint": "https://rudderstack.t.stormly.com/webhook/rudderstack/identify", "headers": { "Content-Type": "application/json", - "Authorization": "Basic dea8bdce17cd64e25ac31768bba574e26" + "Authorization": "Basic dummyApiKey" }, "params": {}, "body": { @@ -84,7 +84,7 @@ "input": { "destination": { "Config": { - "apiKey": "dea8bdce17cd64e25ac31768bba574e26" + "apiKey": "dummyApiKey" }, "ID": "stormly123" }, @@ -113,7 +113,7 @@ "input": { "destination": { "Config": { - "apiKey": "dea8bdce17cd64e25ac31768bba574e26" + "apiKey": "dummyApiKey" }, "ID": "stormly123" }, @@ -140,7 +140,7 @@ "endpoint": "https://rudderstack.t.stormly.com/webhook/rudderstack/track", "headers": { "Content-Type": "application/json", - "Authorization": "Basic dea8bdce17cd64e25ac31768bba574e26" + "Authorization": "Basic dummyApiKey" }, "params": {}, "body": { @@ -167,7 +167,7 @@ "input": { "destination": { "Config": { - "apiKey": "dea8bdce17cd64e25ac31768bba574e26" + "apiKey": "dummyApiKey" }, "ID": "stormly123" }, @@ -188,7 +188,7 @@ "endpoint": "https://rudderstack.t.stormly.com/webhook/rudderstack/track", "headers": { "Content-Type": "application/json", - "Authorization": "Basic dea8bdce17cd64e25ac31768bba574e26" + "Authorization": "Basic dummyApiKey" }, "params": {}, "body": { @@ -209,7 +209,7 @@ "input": { "destination": { "Config": { - "apiKey": "dea8bdce17cd64e25ac31768bba574e26" + "apiKey": "dummyApiKey" }, "ID": "stormly123" }, @@ -237,7 +237,7 @@ "endpoint": "https://rudderstack.t.stormly.com/webhook/rudderstack/track", "headers": { "Content-Type": "application/json", - "Authorization": "Basic dea8bdce17cd64e25ac31768bba574e26" + "Authorization": "Basic dummyApiKey" }, "params": {}, "body": { @@ -267,7 +267,7 @@ "input": { "destination": { "Config": { - "apiKey": "dea8bdce17cd64e25ac31768bba574e26" + "apiKey": "dummyApiKey" }, "ID": "stormly123" }, @@ -302,7 +302,7 @@ "endpoint": "https://rudderstack.t.stormly.com/webhook/rudderstack/track", "headers": { "Content-Type": "application/json", - "Authorization": "Basic dea8bdce17cd64e25ac31768bba574e26" + "Authorization": "Basic dummyApiKey" }, "params": {}, "body": { @@ -332,7 +332,7 @@ "input": { "destination": { "Config": { - "apiKey": "dea8bdce17cd64e25ac31768bba574e26" + "apiKey": "dummyApiKey" }, "ID": "stormly123" }, @@ -361,7 +361,7 @@ "endpoint": "https://rudderstack.t.stormly.com/webhook/rudderstack/group", "headers": { "Content-Type": "application/json", - "Authorization": "Basic dea8bdce17cd64e25ac31768bba574e26" + "Authorization": "Basic dummyApiKey" }, "params": {}, "body": { diff --git a/test/__tests__/data/stormly_router_input.json b/test/__tests__/data/stormly_router_input.json index 0404ae5268a..3fa583ebc30 100644 --- a/test/__tests__/data/stormly_router_input.json +++ b/test/__tests__/data/stormly_router_input.json @@ -2,7 +2,7 @@ { "destination": { "Config": { - "apiKey": "dea8bdce17cd64e25ac31768bba574e26" + "apiKey": "dummyApiKey" }, "ID": "stormly123" }, @@ -29,7 +29,7 @@ { "destination": { "Config": { - "apiKey": "dea8bdce17cd64e25ac31768bba574e26" + "apiKey": "dummyApiKey" }, "ID": "stormly123" }, diff --git a/test/__tests__/data/stormly_router_output.json b/test/__tests__/data/stormly_router_output.json index c5ec112aa8e..2a129dfbafd 100644 --- a/test/__tests__/data/stormly_router_output.json +++ b/test/__tests__/data/stormly_router_output.json @@ -19,7 +19,7 @@ "endpoint": "https://rudderstack.t.stormly.com/webhook/rudderstack/identify", "files": {}, "headers": { - "Authorization": "Basic dea8bdce17cd64e25ac31768bba574e26", + "Authorization": "Basic dummyApiKey", "Content-Type": "application/json" }, "method": "POST", @@ -29,7 +29,7 @@ }, "destination": { "Config": { - "apiKey": "dea8bdce17cd64e25ac31768bba574e26" + "apiKey": "dummyApiKey" }, "ID": "stormly123" }, @@ -43,7 +43,7 @@ { "destination": { "Config": { - "apiKey": "dea8bdce17cd64e25ac31768bba574e26" + "apiKey": "dummyApiKey" }, "ID": "stormly123" }, diff --git a/test/__tests__/data/test_router_input.json b/test/__tests__/data/test_router_input.json index 60c9b0b2b15..3e10f0b087e 100644 --- a/test/__tests__/data/test_router_input.json +++ b/test/__tests__/data/test_router_input.json @@ -168,7 +168,7 @@ "destination": { "config": { "appKey": "0e5440c3-226b-45d0-91b5-c64da56cde16", - "restApiKey": "a1d4f79a-cea9-4e0e-a104-b57e37ba3b3a", + "restApiKey": "dummyApiKey", "dataCenter": "US-03", "useNativeSDK": { "web": false diff --git a/test/__tests__/data/test_router_output.json b/test/__tests__/data/test_router_output.json index a8335f7f3a7..97e716b3009 100644 --- a/test/__tests__/data/test_router_output.json +++ b/test/__tests__/data/test_router_output.json @@ -47,7 +47,7 @@ "headers": { "Content-Type": "application/json", "Accept": "application/json", - "Authorization": "Bearer a1d4f79a-cea9-4e0e-a104-b57e37ba3b3a" + "Authorization": "Bearer dummyApiKey" }, "params": {}, "body": { diff --git a/test/__tests__/data/tiktok_ads_input.json b/test/__tests__/data/tiktok_ads_input.json deleted file mode 100644 index aa54539678f..00000000000 --- a/test/__tests__/data/tiktok_ads_input.json +++ /dev/null @@ -1,2500 +0,0 @@ -[ - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "checkout step completed", - "properties": { - "eventId": "1616318632825_357", - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "checkout started", - "properties": { - "eventId": "1616318632825_357", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "Product Added to Wishlist", - "properties": { - "eventId": "1616318632825_357", - "testEventCode": "sample rudder test_event_code", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "Product Added to Wishlist1", - "properties": { - "eventId": "1616318632825_357", - "testEventCode": "sample rudder test_event_code", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "Product Added to Wishlist", - "properties": { - "eventId": "1616318632825_357", - "testEventCode": "sample rudder test_event_code", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "Product Added to Wishlist", - "properties": { - "eventId": "1616318632825_357", - "testEventCode": "sample rudder test_event_code", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "1234" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "SubscriBe", - "properties": { - "eventId": "1616318632825_357", - "testEventCode": "", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "+868987675687", - "email": "sample@sample.com" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": true - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "payment info entered", - "properties": { - "eventId": "1616318632825_357", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "properties": { - "eventId": "1616318632825_357", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "properties": { - "eventId": "1616318632825_357", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "type": "track", - "event": "payment info entered", - "properties": { - "eventId": "1616318632825_357", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "submitform", - "properties": { - "eventId": "16163186328257", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "submitform", - "properties": { - "eventId": "16163186328257", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131" - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "contact", - "properties": { - "eventId": "16163186328257", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "identify", - "event": "contact", - "properties": { - "eventId": "16163186328257", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "checkout step completed", - "properties": { - "eventId": "1616318632825_357", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "order completed", - "properties": { - "eventId": "1616318632825_357", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "user@sample.com", - "phone": "+919912345678" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "SubscriBe", - "properties": { - "eventId": "1616318632825_357", - "testEventCode": "TEST0000000011", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "+918987674657", - "email": "sample@rudder.com" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": true - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "traits": { - "email": "user@sample.com", - "phone": "+919912345678" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "SubscriBe", - "properties": { - "eventId": "1616318632825_357", - "testEventCode": "TEST0000000011", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "", - "email": "" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": true - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "ad": { - "callback": "999ATXSfe" - }, - "page": { - "url": "http://rudder.mywebsite.com/purchase", - "referrer": "http://rudder.mywebsite.com" - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "checkout step completed", - "properties": { - "eventId": "1616318632825_357", - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0, - "context": { - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "abc", - "properties": { - "eventId": "1616318632825_357", - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false, - "eventsToStandard": [ - { - "from": "abc", - "to": "download" - }, - { - "from": "abc", - "to": "search" - }, - { - "from": "def", - "to": "search" - } - ] - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "abc", - "properties": { - "eventId": "1616318632825_357", - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false, - "eventsToStandard": [ - { - "from": "def", - "to": "download" - } - ] - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "abc", - "properties": { - "eventId": "1616318632825_357", - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false, - "eventsToStandard": [ - { - "from": "abc", - "to": "download" - }, - { - "from": "def", - "to": "download" - } - ] - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "abc", - "properties": { - "eventId": "1616318632825_357", - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "+371234567890123", - "email": "sample@sample.com" - } - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": true, - "eventsToStandard": [ - { - "from": "abc", - "to": "download" - }, - { - "from": "def", - "to": "download" - } - ] - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "abc", - "properties": { - "eventId": "1616318632825_357", - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "+3712345678", - "email": "sample@sample.com" - } - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": true, - "eventsToStandard": [ - { - "from": "abc", - "to": "download" - }, - { - "from": "def", - "to": "download" - } - ] - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "checkout step completed", - "properties": { - "eventId": "1616318632825_357", - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "products": [ - { - "product_id": 123, - "sku": "G-32", - "name": "Monopoly", - "price": 14, - "quantity": 1, - "category": "Games", - "url": "https://www.website.com/product/path", - "image_url": "https://www.website.com/product/path.jpg" - }, - { - "product_id": "345", - "sku": "F-32", - "name": "UNO", - "price": 3.45, - "quantity": 2, - "category": "Games" - } - ], - "currency": "USD", - "value": 46.0, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "checkout step completed", - "properties": { - "eventId": "1616318632825_357", - "products": [ - { - "product_id": 123, - "sku": "G-32", - "name": "Monopoly", - "price": 14, - "quantity": 1, - "contentType": "product_group", - "category": "Games", - "url": "https://www.website.com/product/path", - "image_url": "https://www.website.com/product/path.jpg" - }, - { - "product_id": 345, - "sku": "F-32", - "name": "UNO", - "price": 3.45, - "contentType": "product_group", - "quantity": 2 - } - ], - "currency": "USD", - "value": 46.0, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "checkout step completed", - "properties": { - "eventId": "1616318632825_357", - "products": [ - { - "contentType": "product_group", - "product_id": "123", - "sku": "G-32", - "name": "Monopoly", - "price": 14, - "quantity": 1, - "category": "Games", - "url": "https://www.website.com/product/path", - "image_url": "https://www.website.com/product/path.jpg" - }, - { - "contentType": "product_group", - "product_id": "345", - "sku": "F-32", - "name": "UNO", - "price": 3.45, - "quantity": 2, - "category": "Games" - } - ], - "currency": "USD", - "value": 46.0, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "checkout step completed", - "properties": { - "category": "Urban", - "status": "processed", - "name": "games", - "contentType": "product_group", - "productId": "qqw21221341234", - "eventId": "1616318632825_357", - "products": [ - { - "product_id": "123", - "sku": "G-32", - "name": "Monopoly", - "price": 14, - "quantity": 1, - "category": "Games", - "url": "https://www.website.com/product/path", - "image_url": "https://www.website.com/product/path.jpg" - }, - { - "product_id": "345", - "sku": "F-32", - "name": "UNO", - "price": 3.45, - "quantity": 2, - "category": "Games" - } - ], - "currency": "USD", - "value": 46.0, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - } -] diff --git a/test/__tests__/data/tiktok_ads_offline_events.json b/test/__tests__/data/tiktok_ads_offline_events.json deleted file mode 100644 index aded6af93b7..00000000000 --- a/test/__tests__/data/tiktok_ads_offline_events.json +++ /dev/null @@ -1,469 +0,0 @@ -[ - { - "description": "Identify call not supported error message", - "input": { - "destination": { - "Config": { - "accessToken": "fuwheirujkvjnkrtgkf", - "hashUserProperties": true - } - }, - "message": { - "type": "Identify", - "userId": "yash001", - "originalTimestamp": "2019-10-14T09:03:17.562Z" - } - }, - "output": { - "error": "Event type identify is not supported" - } - }, - { - "description": "Regular track call", - "input": { - "destination": { - "Config": { - "accessToken": "fuwheirujkvjnkrtgkf", - "hashUserProperties": false - } - }, - "message": { - "event": "subscribe", - "context": { - "traits": { - "phone": "c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646" - }, - "channel": "web" - }, - "properties": { - "eventSetId": "7181537436256731137", - "eventId": "1616318632825_352", - "order_id": "abc_xyz", - "shop_id": "123abc", - "currency": "USD", - "value": 46.0, - "price": 8, - "quantity": 2, - "content_type": "product1234", - "product_id": "1077218", - "name": "socks", - "category": "Men's cloth" - }, - "type": "track", - "userId": "eventIdn01", - "timestamp": "2023-01-03" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/offline/track/", - "headers": { - "Access-Token": "fuwheirujkvjnkrtgkf", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event_set_id": "7181537436256731137", - "event": "Subscribe", - "event_id": "1616318632825_352", - "timestamp": "2023-01-03", - "partner_name": "RudderStack", - "context": { - "user": { - "phone_numbers": [ - "c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646" - ] - } - }, - "properties": { - "order_id": "abc_xyz", - "shop_id": "123abc", - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "product1234", - "content_id": "1077218", - "content_name": "socks", - "content_category": "Men's cloth" - } - ], - "event_channel": "web", - "currency": "USD", - "value": 46.0 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "event_set_id": "7181537436256731137" - } - ] - }, - { - "description": "Track call with hashUserProperties set to true", - "input": { - "destination": { - "Config": { - "accessToken": "fuwheirujkvjnkrtgkf", - "hashUserProperties": true - } - }, - "message": { - "event": "subscribe", - "context": { - "traits": { - "phone": "1234567890" - }, - "channel": "web" - }, - "properties": { - "eventSetId": "7181537436256731137", - "eventId": "1616318632825_352", - "prop1": "val1" - }, - "type": "track", - "userId": "eventIdn01", - "timestamp": "2023-01-03" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/offline/track/", - "headers": { - "Access-Token": "fuwheirujkvjnkrtgkf", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event_set_id": "7181537436256731137", - "event": "Subscribe", - "event_id": "1616318632825_352", - "timestamp": "2023-01-03", - "partner_name": "RudderStack", - "context": { - "user": { - "phone_numbers": [ - "c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646" - ] - } - }, - "properties": { - "event_channel": "web" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "event_set_id": "7181537436256731137" - } - ] - }, - { - "description": "Track call with event mapping", - "input": { - "destination": { - "Config": { - "accessToken": "fuwheirujkvjnkrtgkf", - "hashUserProperties": true, - "eventsToStandard": [ - { - "from": "RandomEvent", - "to": "SubmitForm" - } - ] - } - }, - "message": { - "event": "RandomEvent", - "context": { - "traits": { - "phone": "1234567890" - }, - "channel": "web" - }, - "properties": { - "eventSetId": "7185009018564395009", - "eventId": "1616318632003_004", - "prop1": "val1" - }, - "userId": "eventIdn01", - "timestamp": "2023-01-03", - "type": "track" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/offline/track/", - "headers": { - "Access-Token": "fuwheirujkvjnkrtgkf", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event": "SubmitForm", - "context": { - "user": { - "phone_numbers": [ - "c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646" - ] - } - }, - "event_id": "1616318632003_004", - "timestamp": "2023-01-03", - "properties": { - "event_channel": "web" - }, - "event_set_id": "7185009018564395009", - "partner_name": "RudderStack" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "event_set_id": "7185009018564395009" - } - ] - }, - { - "description": "Track call with no Access-Token", - "input": { - "destination": { - "Config": { - "hashUserProperties": true - } - }, - "message": { - "type": "track", - "userId": "yash001", - "originalTimestamp": "2019-10-14T09:03:17.562Z" - } - }, - "output": { - "error": "Access Token not found" - } - }, - { - "description": "Track call with product details in properties", - "input": { - "destination": { - "Config": { - "accessToken": "fuwheirujkvjnkrtgkf", - "hashUserProperties": true - } - }, - "message": { - "event": "subscribe", - "context": { - "traits": { - "phone": "1234567890", - "email": "random@mail.com" - }, - "channel": "web" - }, - "properties": { - "eventSetId": "7181537436256731137", - "eventId": "1616318632825_352", - "products": [ - { - "price": 8, - "quantity": 2, - "content_type": "product1", - "product_id": "1077218", - "name": "socks", - "category": "Men's cloth" - }, - { - "price": 18, - "quantity": 12, - "content_type": "product2", - "product_id": "1077219", - "name": "socks1", - "category": "Men's cloth1" - } - ] - }, - "type": "track", - "userId": "eventIdn01", - "timestamp": "2023-01-03" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/offline/track/", - "headers": { - "Access-Token": "fuwheirujkvjnkrtgkf", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "event_set_id": "7181537436256731137", - "event": "Subscribe", - "event_id": "1616318632825_352", - "timestamp": "2023-01-03", - "partner_name": "RudderStack", - "context": { - "user": { - "phone_numbers": [ - "c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646" - ], - "emails": ["d9fcca64ec1b250da4261a3f89a8e0f7749c4e0f5a1a918e5397194c8b5a9f16"] - } - }, - "properties": { - "event_channel": "web", - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "product1", - "content_id": "1077218", - "content_name": "socks", - "content_category": "Men's cloth" - }, - { - "price": 18, - "quantity": 12, - "content_type": "product2", - "content_id": "1077219", - "content_name": "socks1", - "content_category": "Men's cloth1" - } - ] - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {}, - "event_set_id": "7181537436256731137" - } - ] - }, - { - "description": "Track call with email and phone number parameter as an array", - "input": { - "destination": { - "Config": { - "accessToken": "fuwheirujkvjnkrtgkf", - "hashUserProperties": true, - "eventsToStandard": [ - { - "from": "CompletePayment", - "to": "Purchase" - } - ] - } - }, - "message": { - "type": "track", - "event": "CompletePayment", - "sentAt": "2023-03-22T00:02:33.802Z", - "traits": { - "email": [ - "efaaf5c8803af4fbf305d7a110c832673d89ed40983770329092fd04b0ba7900", - "078d6c8e19f24093368d1712d7801970467f59216f7ccc087bf81b91e0e1f68f" - ], - "phone": [ - "c4994d14e724936f1169147dddf1673a09af69b55cc54bc695dbe246bd093b05", - "078d6c8e19f24093368d1712d7801970467f59216f7ccc087bf81b91e0e1f68f" - ] - }, - "userId": "60241286212", - "channel": "sources", - "context": { - "sources": { - "job_id": "2N4WuoNQpGYmCPASUvnV86QyhY4/Syncher", - "version": "v1.20.0", - "job_run_id": "cgd4a063b2fn2e1j0q90", - "task_run_id": "cgd4a063b2fn2e1j0qa0" - } - }, - "recordId": "16322", - "rudderId": "5b4ed73f-69aa-4198-88d1-3d4d509acbf1", - "messageId": "cgd4b663b2fn2e1j8th0", - "timestamp": "2023-03-22T00:02:33.170Z", - "properties": { - "phone": "c4994d14e724936f1169147dddf1673a09af69b55cc54bc695dbe246bd093b05", - "value": 32.839999999999996, - "emails": "[\"efaaf5c8803af4fbf305d7a110c832673d89ed40983770329092fd04b0ba7900\",\"078d6c8e19f24093368d1712d7801970467f59216f7ccc087bf81b91e0e1f68f\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]", - "eventId": "8965fb56-090f-47a5-aa7f-bbab22d9ec90", - "currency": "USD", - "order_id": 60241286212, - "eventSetId": "7211223771099742210", - "event_name": "CompletePayment" - }, - "receivedAt": "2023-03-22T00:02:33.171Z", - "request_ip": "10.7.78.187", - "anonymousId": "60241286212", - "originalTimestamp": "2023-03-22T00:02:33.802Z" - } - }, - "output": [ - { - "body": { - "FORM": {}, - "JSON": { - "context": { - "user": { - "emails": [ - "4dc75b075057df6f6b729e74a9feed1244dcf8ceb7903eaba13203f3268ae4b9", - "77b639edeb3cd6c801ea05176b8acbfa38d5f38490b764cd0c80756d0cf9ec68" - ], - "phone_numbers": [ - "28b7b205c2936d2ded022d2587fb2677a76e560e921b3ad615b739b0238baa5d", - "77b639edeb3cd6c801ea05176b8acbfa38d5f38490b764cd0c80756d0cf9ec68" - ] - } - }, - "event": "Purchase", - "event_id": "8965fb56-090f-47a5-aa7f-bbab22d9ec90", - "event_set_id": "7211223771099742210", - "partner_name": "RudderStack", - "properties": { - "currency": "USD", - "order_id": 60241286212, - "value": 32.839999999999996 - }, - "timestamp": "2023-03-22T00:02:33.170Z" - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/offline/track/", - "event_set_id": "7211223771099742210", - "files": {}, - "headers": { - "Access-Token": "fuwheirujkvjnkrtgkf", - "Content-Type": "application/json" - }, - "method": "POST", - "params": {}, - "type": "REST", - "version": "1" - } - ] - } -] diff --git a/test/__tests__/data/tiktok_ads_offline_events_router_input.json b/test/__tests__/data/tiktok_ads_offline_events_router_input.json index e8c6a4ce746..2986efa804b 100644 --- a/test/__tests__/data/tiktok_ads_offline_events_router_input.json +++ b/test/__tests__/data/tiktok_ads_offline_events_router_input.json @@ -5,7 +5,7 @@ }, "destination": { "Config": { - "accessToken": "fuwheirujkvjnkrtgkf", + "accessToken": "dummyAccessToken", "hashUserProperties": true } }, @@ -42,7 +42,7 @@ }, "destination": { "Config": { - "accessToken": "fuwheirujkvjnkrtgkf", + "accessToken": "dummyAccessToken", "hashUserProperties": true } }, @@ -88,7 +88,7 @@ }, "destination": { "Config": { - "accessToken": "fuwheirujkvjnkrtgkf", + "accessToken": "dummyAccessToken", "hashUserProperties": true } }, @@ -119,7 +119,7 @@ }, "destination": { "Config": { - "accessToken": "fuwheirujkvjnkrtgkf", + "accessToken": "dummyAccessToken", "hashUserProperties": true } }, diff --git a/test/__tests__/data/tiktok_ads_offline_events_router_output.json b/test/__tests__/data/tiktok_ads_offline_events_router_output.json index 83e56f915b2..9fc45461be0 100644 --- a/test/__tests__/data/tiktok_ads_offline_events_router_output.json +++ b/test/__tests__/data/tiktok_ads_offline_events_router_output.json @@ -7,7 +7,7 @@ "method": "POST", "endpoint": "https://business-api.tiktok.com/open_api/v1.3/offline/batch/", "headers": { - "Access-Token": "fuwheirujkvjnkrtgkf", + "Access-Token": "dummyAccessToken", "Content-Type": "application/json" }, "params": {}, @@ -93,7 +93,7 @@ }, "destination": { "Config": { - "accessToken": "fuwheirujkvjnkrtgkf", + "accessToken": "dummyAccessToken", "hashUserProperties": true } }, @@ -115,7 +115,7 @@ "method": "POST", "endpoint": "https://business-api.tiktok.com/open_api/v1.3/offline/batch/", "headers": { - "Access-Token": "fuwheirujkvjnkrtgkf", + "Access-Token": "dummyAccessToken", "Content-Type": "application/json" }, "params": {}, @@ -159,7 +159,7 @@ }, "destination": { "Config": { - "accessToken": "fuwheirujkvjnkrtgkf", + "accessToken": "dummyAccessToken", "hashUserProperties": true } }, @@ -173,7 +173,7 @@ { "destination": { "Config": { - "accessToken": "fuwheirujkvjnkrtgkf", + "accessToken": "dummyAccessToken", "hashUserProperties": true } }, diff --git a/test/__tests__/data/tiktok_ads_output.json b/test/__tests__/data/tiktok_ads_output.json deleted file mode 100644 index a51f3a16cca..00000000000 --- a/test/__tests__/data/tiktok_ads_output.json +++ /dev/null @@ -1,1545 +0,0 @@ -[ - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "CompletePayment", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - }, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - }, - "ip": "13.57.97.131", - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "InitiateCheckout", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - }, - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131" - }, - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "AddToWishlist", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "test_event_code": "sample rudder test_event_code", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - } - }, - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - { - "statusCode": 400, - "error": "Event name (product added to wishlist1) is not valid, must be mapped to one of standard events", - "statTags": { - "destination": "tiktok_ads", - "stage": "transform", - "scope": "exception" - } - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "AddToWishlist", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "test_event_code": "sample rudder test_event_code", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - }, - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131" - }, - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "AddToWishlist", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "test_event_code": "sample rudder test_event_code", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - }, - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131" - }, - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "body": { - "FORM": {}, - "JSON": { - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "ip": "13.57.97.131", - "page": { - "referrer": "http://demo.mywebsite.com", - "url": "http://demo.mywebsite.com/purchase" - }, - "user": { - "email": "774efc08cebab8c50c0f0eb2d3a2d2e560872a64f6c1617314c4f03b1c3d4dfa", - "external_id": "03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4", - "phone_number": "1d96e70d2bf54087e33586457cde2790825bee7b1a3b05d26481cb12ec8e63fd" - }, - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - }, - "event": "Subscribe", - "event_id": "1616318632825_357", - "partner_name": "RudderStack", - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "properties": { - "contents": [ - { - "content_id": "1077218", - "content_type": "socks", - "price": 8, - "quantity": 2 - }, - { - "content_id": "1197218", - "content_type": "dress", - "price": 30, - "quantity": 1 - } - ], - "currency": "USD", - "value": 46 - }, - "timestamp": "2020-09-17T19:49:27Z" - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "files": {}, - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "method": "POST", - "params": {}, - "type": "REST", - "version": "1" - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "AddPaymentInfo", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - }, - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131" - }, - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - { - "statusCode": 400, - "error": "Event name is required", - "statTags": { - "destination": "tiktok_ads", - "stage": "transform", - "scope": "exception" - } - }, - { - "statusCode": 400, - "error": "Event type is required", - "statTags": { - "destination": "tiktok_ads", - "stage": "transform", - "scope": "exception" - } - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "AddPaymentInfo", - "event_id": "1616318632825_357", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - }, - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131" - }, - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "SubmitForm", - "event_id": "16163186328257", - "timestamp": "2020-09-17T19:49:27Z", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - }, - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131" - }, - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "SubmitForm", - "event_id": "16163186328257", - "timestamp": "2020-09-17T19:49:27Z", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - }, - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "Contact", - "event_id": "16163186328257", - "timestamp": "2020-09-17T19:49:27Z", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - }, - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131" - }, - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - { - "statusCode": 400, - "error": "Event type identify is not supported", - "statTags": { - "destination": "tiktok_ads", - "stage": "transform", - "scope": "exception" - } - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "CompletePayment", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - }, - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131" - }, - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "PlaceAnOrder", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - }, - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131" - }, - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "Subscribe", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "test_event_code": "TEST0000000011", - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - }, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "1b6abcebb79b2208929967160ba291656f3fcd4f00e93b6a846c1e56c0e177c6", - "email": "02e47a94635c1ffd6f6a69fe2c7a92dbfbb9d5e2ebddb54810520b34989b66a7", - "external_id": "f0f3ec74bbef8580d7de80624dea93c05d828c748715199fe71bc7f5a67aa8b3" - }, - "ip": "13.57.97.131", - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "Subscribe", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "test_event_code": "TEST0000000011", - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - }, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "241102c24fa8a642e3d1346a31fbce3dd312563c015ae577a2253cb8652581eb", - "email": "a344da1fac6201ed1c1f20a07e1b55bb896a5ac0abd269c1e9daf1afbbffca3b", - "external_id": "f0f3ec74bbef8580d7de80624dea93c05d828c748715199fe71bc7f5a67aa8b3" - }, - "ip": "13.57.97.131", - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "CompletePayment", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - }, - "context": { - "ad": { - "callback": "999ATXSfe" - }, - "page": { - "url": "http://rudder.mywebsite.com/purchase", - "referrer": "http://rudder.mywebsite.com" - }, - "user": { - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - }, - "ip": "13.57.97.131", - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "download", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - }, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f", - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - }, - "ip": "13.57.97.131", - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "search", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - }, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f", - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - }, - "ip": "13.57.97.131", - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - { - "statusCode": 400, - "error": "Event name (abc) is not valid, must be mapped to one of standard events", - "statTags": { - "destination": "tiktok_ads", - "stage": "transform", - "scope": "exception" - } - }, - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "download", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - }, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f", - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - }, - "ip": "13.57.97.131", - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "download", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - }, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "6080191ec608e10062e9257702cbca694cfe1bfa53944ba5701119d8f8b99ad6", - "email": "774efc08cebab8c50c0f0eb2d3a2d2e560872a64f6c1617314c4f03b1c3d4dfa", - "external_id": "f0f3ec74bbef8580d7de80624dea93c05d828c748715199fe71bc7f5a67aa8b3" - }, - "ip": "13.57.97.131", - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "download", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - }, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "6e6c1bb39126b3ecf537e62847909b1372a1a22de9b28d85960e12c78f322035", - "email": "774efc08cebab8c50c0f0eb2d3a2d2e560872a64f6c1617314c4f03b1c3d4dfa", - "external_id": "f0f3ec74bbef8580d7de80624dea93c05d828c748715199fe71bc7f5a67aa8b3" - }, - "ip": "13.57.97.131", - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "CompletePayment", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - }, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - }, - "ip": "13.57.97.131", - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "event": "CompletePayment", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "properties": { - "contents": [ - { - "content_id": "123", - "content_type": "product_group", - "content_name": "Monopoly", - "price": 14, - "quantity": 1, - "content_category": "Games" - }, - { - "content_id": "345", - "content_type": "product_group", - "content_name": "UNO", - "price": 3.45, - "quantity": 2 - } - ], - "currency": "USD", - "value": 46 - }, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f" - }, - "ip": "13.57.97.131", - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - } - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "event": "CompletePayment", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "properties": { - "currency": "USD", - "value": 46, - "contents": [ - { - "content_type": "product_group", - "content_id": "123", - "content_category": "Games", - "content_name": "Monopoly", - "price": 14, - "quantity": 1 - }, - { - "content_type": "product_group", - "content_id": "345", - "content_category": "Games", - "content_name": "UNO", - "price": 3.45, - "quantity": 2 - } - ] - }, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f", - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - }, - "ip": "13.57.97.131", - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - }, - "partner_name": "RudderStack" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "event": "CompletePayment", - "event_id": "1616318632825_357", - "timestamp": "2020-09-17T19:49:27Z", - "properties": { - "content_category": "Urban", - "status": "processed", - "content_name": "games", - "content_id": "qqw21221341234", - "content_type": "product_group", - "currency": "USD", - "value": 46, - "contents": [ - { - "content_type": "product_group", - "content_id": "123", - "content_category": "Games", - "content_name": "Monopoly", - "price": 14, - "quantity": 1 - }, - { - "content_type": "product_group", - "content_id": "345", - "content_category": "Games", - "content_name": "UNO", - "price": 3.45, - "quantity": 2 - } - ] - }, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f", - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - }, - "ip": "13.57.97.131", - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - }, - "partner_name": "RudderStack" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] -] diff --git a/test/__tests__/data/tiktok_ads_proxy_input.json b/test/__tests__/data/tiktok_ads_proxy_input.json index 3f063f82924..6028fa1e4f5 100644 --- a/test/__tests__/data/tiktok_ads_proxy_input.json +++ b/test/__tests__/data/tiktok_ads_proxy_input.json @@ -5,7 +5,7 @@ "method": "POST", "endpoint": "https://business-api.tiktok.com/open_api/v1.2/pixel/batch/", "headers": { - "Access-Token": "1234ac663758946dfep3520b394bbac511b371f7", + "Access-Token": "dummyAccessToken", "Content-Type": "application/json", "test-dest-response-key": "successResponse" }, @@ -66,7 +66,7 @@ "method": "POST", "endpoint": "https://business-api.tiktok.com/open_api/v1.2/pixel/batch/", "headers": { - "Access-Token": "1234ac663758946dfexp3520b394bbac511b371f7", + "Access-Token": "dummyAccessToken", "Content-Type": "application/json", "test-dest-response-key": "invalidDataTypeResponse" }, @@ -127,7 +127,7 @@ "method": "POST", "endpoint": "https://business-api.tiktok.com/open_api/v1.2/pixel/batch/", "headers": { - "Access-Token": "1234ac663758946dexp3520b394bbac511b371f7", + "Access-Token": "dummyAccessToken", "Content-Type": "application/json", "test-dest-response-key": "invalidPermissionsResponse" }, @@ -188,7 +188,7 @@ "method": "POST", "endpoint": "https://business-api.tiktok.com/open_api/v1.2/pixel/batch/", "headers": { - "Access-Token": "1234ac663758946dexp3520b394bbac511b371f7", + "Access-Token": "dummyAccessToken", "Content-Type": "application/json", "test-dest-response-key": "tooManyRequests" }, @@ -249,7 +249,7 @@ "method": "POST", "endpoint": "https://business-api.tiktok.com/open_api/v1.2/pixel/batch/", "headers": { - "Access-Token": "1234ac663758946dexp3520b394bbac511b371f7", + "Access-Token": "dummyAccessToken", "Content-Type": "application/json", "test-dest-response-key": "502-BadGateway" }, @@ -310,7 +310,7 @@ "method": "POST", "endpoint": "https://business-api.tiktok.com/open_api/v1.2/pixel/batch/", "headers": { - "Access-Token": "1234ac663758946dexp3520b394bbac511b371f7", + "Access-Token": "dummyAccessToken", "Content-Type": "application/json", "test-dest-response-key": "500-NoResponse" }, @@ -365,4 +365,4 @@ }, "files": {} } -] \ No newline at end of file +] diff --git a/test/__tests__/data/tiktok_ads_router_input.json b/test/__tests__/data/tiktok_ads_router_input.json deleted file mode 100644 index 47d9559883b..00000000000 --- a/test/__tests__/data/tiktok_ads_router_input.json +++ /dev/null @@ -1,441 +0,0 @@ -[ - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131", - "locale": "en-US", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "checkout step completed", - "properties": { - "eventId": "1616318632825_357", - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - } - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "metadata": { - "jobId": 5 - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "checkout started", - "properties": { - "eventId": "1616318632825_357", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "metadata": { - "jobId": 1 - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "download", - "properties": { - "eventId": "1616318632825_357", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131" - }, - - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "metadata": { - "jobId": 2 - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "search", - "properties": { - "eventId": "1616318632825_357", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea", - "email": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131" - }, - - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "metadata": { - "jobId": 4 - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "message": { - "anonymousId": "21e13f4bc7ceddad", - "channel": "web", - "context": { - "app": { - "build": "1.0.0", - "name": "RudderLabs JavaScript SDK", - "namespace": "com.rudderlabs.javascript", - "version": "1.0.0" - }, - "library": { - "name": "RudderLabs JavaScript SDK", - "version": "1.0.0" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "locale": "en-US", - "ip": "13.57.97.131", - "os": { - "name": "", - "version": "" - }, - "screen": { - "density": 2 - }, - "externalId": [ - { - "type": "tiktokExternalId", - "id": "1234" - } - ] - }, - "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T09:03:17.562Z", - "timestamp": "2020-09-17T19:49:27Z", - "type": "track", - "event": "Product Added to Wishlist", - "properties": { - "eventId": "1616318632825_357", - "testEventCode": "sample rudder test_event_code", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "phone_number": "+858987675687", - "email": "sample@sample.com" - }, - "userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion", - "ip": "13.57.97.131" - }, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46.0 - }, - "integrations": { - "All": true - }, - "sentAt": "2019-10-14T09:03:22.563Z" - }, - "metadata": { - "jobId": 3 - }, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": true - } - } - } -] diff --git a/test/__tests__/data/tiktok_ads_router_output.json b/test/__tests__/data/tiktok_ads_router_output.json deleted file mode 100644 index 5722cf2f2ef..00000000000 --- a/test/__tests__/data/tiktok_ads_router_output.json +++ /dev/null @@ -1,287 +0,0 @@ -[ - { - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/batch/", - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "batch": [ - { - "event": "CompletePayment", - "event_id": "1616318632825_357", - "type": "track", - "timestamp": "2020-09-17T19:49:27Z", - "properties": { - "contents": [ - { - "price": 8, - "quantity": 2, - "content_type": "socks", - "content_id": "1077218" - }, - { - "price": 30, - "quantity": 1, - "content_type": "dress", - "content_id": "1197218" - } - ], - "currency": "USD", - "value": 46 - }, - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "email": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea" - }, - "ip": "13.57.97.131", - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - } - }, - { - "event": "InitiateCheckout", - "event_id": "1616318632825_357", - "type": "track", - "timestamp": "2020-09-17T19:49:27Z", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "ip": "13.57.97.131", - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "email": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea" - }, - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - }, - "properties": { - "value": 46, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_id": "1077218", - "content_type": "socks" - }, - { - "price": 30, - "quantity": 1, - "content_id": "1197218", - "content_type": "dress" - } - ], - "currency": "USD" - } - }, - { - "event": "Download", - "event_id": "1616318632825_357", - "type": "track", - "timestamp": "2020-09-17T19:49:27Z", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "ip": "13.57.97.131", - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "email": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea" - }, - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - }, - "properties": { - "value": 46, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_id": "1077218", - "content_type": "socks" - }, - { - "price": 30, - "quantity": 1, - "content_id": "1197218", - "content_type": "dress" - } - ], - "currency": "USD" - } - }, - { - "event": "Search", - "event_id": "1616318632825_357", - "type": "track", - "timestamp": "2020-09-17T19:49:27Z", - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "ip": "13.57.97.131", - "page": { - "url": "http://demo.mywebsite.com/purchase", - "referrer": "http://demo.mywebsite.com" - }, - "user": { - "email": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "external_id": "f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc", - "phone_number": "2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea" - }, - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - }, - "properties": { - "value": 46, - "contents": [ - { - "price": 8, - "quantity": 2, - "content_id": "1077218", - "content_type": "socks" - }, - { - "price": 30, - "quantity": 1, - "content_id": "1197218", - "content_type": "dress" - } - ], - "currency": "USD" - } - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "metadata": [ - { - "jobId": 5 - }, - { - "jobId": 1 - }, - { - "jobId": 2 - }, - { - "jobId": 4 - } - ], - "batched": true, - "statusCode": 200, - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": false - } - } - }, - { - "batched": false, - "batchedRequest": [ - { - "body": { - "FORM": {}, - "JSON": { - "context": { - "ad": { - "callback": "123ATXSfe" - }, - "ip": "13.57.97.131", - "page": { - "referrer": "http://demo.mywebsite.com", - "url": "http://demo.mywebsite.com/purchase" - }, - "user": { - "external_id": "03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4", - "phone_number": "4443dd476f2be18201447ef046731c1a715accee4edc5192641a3b4c3ba921c7", - "email": "774efc08cebab8c50c0f0eb2d3a2d2e560872a64f6c1617314c4f03b1c3d4dfa" - }, - "user_agent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" - }, - "event": "AddToWishlist", - "event_id": "1616318632825_357", - "pixel_code": "A1T8T4UYGVIQA8ORZMX9", - "partner_name": "RudderStack", - "properties": { - "contents": [ - { - "content_id": "1077218", - "content_type": "socks", - "price": 8, - "quantity": 2 - }, - { - "content_id": "1197218", - "content_type": "dress", - "price": 30, - "quantity": 1 - } - ], - "currency": "USD", - "value": 46 - }, - "test_event_code": "sample rudder test_event_code", - "timestamp": "2020-09-17T19:49:27Z" - }, - "JSON_ARRAY": {}, - "XML": {} - }, - "endpoint": "https://business-api.tiktok.com/open_api/v1.3/pixel/track/", - "files": {}, - "headers": { - "Access-Token": "1234ac663758946dfea3520b394bbac511b371f7", - "Content-Type": "application/json" - }, - "method": "POST", - "params": {}, - "type": "REST", - "version": "1" - } - ], - "destination": { - "Config": { - "accessToken": "1234ac663758946dfea3520b394bbac511b371f7", - "pixelCode": "A1T8T4UYGVIQA8ORZMX9", - "hashUserProperties": true - } - }, - "metadata": [ - { - "jobId": 3 - } - ], - "statusCode": 200 - } -] diff --git a/test/__tests__/data/twitter_ads.json b/test/__tests__/data/twitter_ads.json deleted file mode 100644 index 6dc13be0524..00000000000 --- a/test/__tests__/data/twitter_ads.json +++ /dev/null @@ -1,706 +0,0 @@ -[ - { - "description": "Track - success call", - "input": { - "message": { - "type": "track", - "event": "ABC Searched", - "channel": "web", - "context": { - "source": "test", - "userAgent": "chrome", - "traits": { - "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", - "email": "abc@gmail.com", - "phone": "+1234589947", - "ge": "male", - "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", - "address": { - "city": "Kolkata", - "state": "WB", - "zip": "700114", - "country": "IN" - } - }, - "device": { - "advertisingId": "abc123" - }, - "library": { - "name": "rudder-sdk-ruby-sync", - "version": "1.0.6" - } - }, - "messageId": "7208bbb6-2c4e-45bb-bf5b-ad426f3593e9", - "timestamp": "2020-08-14T05:30:30.118Z", - "properties": { - "conversionTime": "2023-06-01T06:03:08.739Z", - "tax": 2, - "total": 27.5, - "coupon": "hasbros", - "revenue": 48, - "price": 25, - "quantity": 2, - "currency": "USD", - "priceCurrency": "USD", - "conversionId": "213123", - "numberItems": "2323", - "phone": "+919927455678", - "twclid": "543", - "shipping": 3, - "subtotal": 22.5, - "affiliation": "Google Store", - "checkout_id": "fksdjfsdjfisjf9sdfjsd9f", - "email": "abc@ax.com", - "contents": [ - { - "price": "123.3345", - "quantity": "12", - "id": "12" - }, - { - "price": 200, - "quantity": 11, - "id": "4" - }] - }, - "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", - "integrations": { - "All": true - } - }, - "metadata": { - "secret": { - "consumerKey": "qwe", - "consumerSecret": "fdghv", - "accessToken": "yrdghfvhjvhj", - "accessTokenSecret": "453etyfghjvhgcdcghv" - } - }, - "destination": { - "Config": { - "pixelId": "5343234", - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK", - "twitterAdsEventNames": [ - { - "rudderEventName": "ABC Searched", - "twitterEventId": "tw-234234324234" - }, - { - "rudderEventName": "Home Page Viewed", - "twitterEventId": "tw-odt2o-odt2q" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ads-api.twitter.com/12/measurement/conversions/5343234", - "headers": { - "Authorization": "OAuth oauth_consumer_key=\"qwe\", oauth_nonce=\"V1kMh028kZLLhfeYozuL0B45Pcx6LvuW\", oauth_signature=\"Di4cuoGv4PnCMMEeqfWTcqhvdwc%3D\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"1685603652\", oauth_token=\"yrdghfvhjvhj\", oauth_version=\"1.0\"", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "conversions": [ - { - "number_items": 2, - "price_currency": "USD", - "value": "25", - "conversion_id": "213123", - "contents": [ - { - "content_price": 123.3345, - "num_items": 12, - "content_id": "12" - }, - { - "content_price": 200.00, - "num_items": 11, - "content_id": "4" - } - ], - "event_id": "tw-234234324234", - "conversion_time": "2023-06-01T06:03:08.739Z", - "identifiers": [ - { - "hashed_email": "4c3c8a8cba2f3bb1e9e617301f85d1f68e816a01c7b716f482f2ab9adb8181fb" - }, - { - "hashed_phone_number": "b308962b96b40cce7981493a372db9478edae79f83c2d8ca6cd15a39566f8c56" - }, - { - "twclid": "18beb4813723e788a1d79bcbf80802538ec813aa19ded2e9c21cbf08bed6bee3" - } - ] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track - validation fail call", - "input": { - "message": { - "type": "track", - "event": "Home Page Viewed", - "channel": "web", - "context": { - "source": "test", - "userAgent": "chrome", - "traits": { - "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", - "email": "abc@gmail.com", - "phone": "+1234589947", - "ge": "male", - "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", - "address": { - "city": "Kolkata", - "state": "WB", - "zip": "700114", - "country": "IN" - } - }, - "device": { - "advertisingId": "abc123" - }, - "library": { - "name": "rudder-sdk-ruby-sync", - "version": "1.0.6" - } - }, - "messageId": "7208bbb6-2c4e-45bb-bf5b-ad426f3593e9", - "timestamp": "2020-08-14T05:30:30.118Z", - "properties": { - "conversionTime": "2023-06-01T06:03:08.739Z", - "eventId": "429047995", - "tax": 2, - "total": 27.5, - "coupon": "hasbros", - "revenue": 48, - "price": 25, - "quantity": 2, - "currency": "USD", - "priceCurrency": "USD", - "conversionId": "213123", - "numberItems": "2323", - "shipping": 3, - "subtotal": 22.5, - "affiliation": "Google Store", - "checkout_id": "fksdjfsdjfisjf9sdfjsd9f" - }, - "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", - "integrations": { - "All": true - } - }, - "metadata": { - "secret": { - "consumerKey": "qwe", - "consumerSecret": "fdghv", - "accessToken": "yrdghfvhjvhj", - "accessTokenSecret": "453etyfghjvhgcdcghv" - } - }, - "destination": { - "Config": { - "pixelId": "5343234", - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK", - "twitterAdsEventNames": [ - { - "rudderEventName": "ABC Searched", - "twitterEventId": "tw-234234324234" - }, - { - "rudderEventName": "Home Page Viewed", - "twitterEventId": "tw-2dfsdf" - } - ] - } - } - }, - "output" : { - "statusCode": 400, - "error": "[TWITTER ADS]: one of twclid, phone or email must be present in properties.", - "statTags": { - "errorCategory": "dataValidation", - "errorType": "instrumentation", - "destType": "TWITTER_ADS", - "module": "destination", - "implementation": "native", - "feature": "processor" - } - } - }, - { - "description": "Track - pixelId from payload call", - "input": { - "message": { - "type": "track", - "event": "Home Page Viewed", - "channel": "web", - "context": { - "source": "test", - "userAgent": "chrome", - "traits": { - "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", - "email": "abc@gmail.com", - "phone": "+1234589947", - "ge": "male", - "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", - "address": { - "city": "Kolkata", - "state": "WB", - "zip": "700114", - "country": "IN" - } - }, - "device": { - "advertisingId": "abc123" - }, - "library": { - "name": "rudder-sdk-ruby-sync", - "version": "1.0.6" - } - }, - "messageId": "7208bbb6-2c4e-45bb-bf5b-ad426f3593e9", - "timestamp": "2020-08-14T05:30:30.118Z", - "properties": { - "pixelId": "odr324tt", - "conversionTime": "2023-06-01T06:03:08.739Z", - "eventId": "429047995", - "tax": 2, - "total": 27.5, - "coupon": "hasbros", - "revenue": 48, - "price": 25.55, - "quantity": 2, - "currency": "USD", - "priceCurrency": "USD", - "conversionId": "213123", - "numberItems": "2323", - "phone": "+919927455678", - "twclid": "543", - "shipping": 3, - "subtotal": 22.5, - "affiliation": "Google Store", - "checkout_id": "fksdjfsdjfisjf9sdfjsd9f", - "email": "abc@ax.com" - }, - "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", - "integrations": { - "All": true - } - }, - "metadata": { - "secret": { - "consumerKey": "qwe", - "consumerSecret": "fdghv", - "accessToken": "yrdghfvhjvhj", - "accessTokenSecret": "453etyfghjvhgcdcghv" - } - }, - "destination": { - "Config": { - "pixelId": "5343234", - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK", - "twitterAdsEventNames": [ - { - "rudderEventName": "ABC Searched", - "twitterEventId": "tw-234234324234" - }, - { - "rudderEventName": "Home Page Viewed", - "twitterEventId": "tw-324fdsf" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ads-api.twitter.com/12/measurement/conversions/odr324tt", - "headers": { - "Authorization": "OAuth oauth_consumer_key=\"qwe\", oauth_nonce=\"V1kMh028kZLLhfeYozuL0B45Pcx6LvuW\", oauth_signature=\"Di4cuoGv4PnCMMEeqfWTcqhvdwc%3D\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"1685603652\", oauth_token=\"yrdghfvhjvhj\", oauth_version=\"1.0\"", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "conversions": [ - { - "number_items": 2, - "price_currency": "USD", - "value": "25.55", - "conversion_id": "213123", - "event_id": "429047995", - "conversion_time": "2023-06-01T06:03:08.739Z", - "identifiers": [ - { - "hashed_email": "4c3c8a8cba2f3bb1e9e617301f85d1f68e816a01c7b716f482f2ab9adb8181fb" - }, - { - "hashed_phone_number": "b308962b96b40cce7981493a372db9478edae79f83c2d8ca6cd15a39566f8c56" - }, - { - "twclid": "18beb4813723e788a1d79bcbf80802538ec813aa19ded2e9c21cbf08bed6bee3" - } - ] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track - event name with no corresponding eventId", - "input": { - "message": { - "type": "track", - "event": "Home Page", - "channel": "web", - "context": { - "source": "test", - "userAgent": "chrome", - "traits": { - "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", - "email": "abc@gmail.com", - "phone": "+1234589947", - "ge": "male", - "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", - "address": { - "city": "Kolkata", - "state": "WB", - "zip": "700114", - "country": "IN" - } - }, - "device": { - "advertisingId": "abc123" - }, - "library": { - "name": "rudder-sdk-ruby-sync", - "version": "1.0.6" - } - }, - "messageId": "7208bbb6-2c4e-45bb-bf5b-ad426f3593e9", - "timestamp": "2020-08-14T05:30:30.118Z", - "properties": { - "pixelId": "odr324tt", - "conversionTime": "2023-06-01T06:03:08.739Z", - "tax": 2, - "total": 27.5, - "coupon": "hasbros", - "revenue": 48, - "price": 25, - "quantity": 2, - "currency": "USD", - "priceCurrency": "USD", - "conversionId": "213123", - "numberItems": "2323", - "phone": "+919927455678", - "twclid": "543", - "shipping": 3, - "subtotal": 22.5, - "affiliation": "Google Store", - "checkout_id": "fksdjfsdjfisjf9sdfjsd9f", - "email": "abc@ax.com" - }, - "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", - "integrations": { - "All": true - } - }, - "metadata": { - "secret": { - "consumerKey": "qwe", - "consumerSecret": "fdghv", - "accessToken": "yrdghfvhjvhj", - "accessTokenSecret": "453etyfghjvhgcdcghv" - } - }, - "destination": { - "Config": { - "pixelId": "5343234", - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK", - "twitterAdsEventNames": [ - { - "rudderEventName": "ABC Searched", - "twitterEventId": "tw-234234324234" - }, - { - "rudderEventName": "Home Page Viewed", - "twitterEventId": "tw-324fdsf" - } - ] - } - } - }, - "output": { - "statusCode": 400, - "error": "[TWITTER ADS]: Event - 'Home Page' do not have a corresponding eventId in configuration. Aborting" - } - }, - { - "description": "Track - event name with no corresponding eventId", - "input": { - "message": { - "type": "track", - "event": "Home Page", - "channel": "web", - "context": { - "source": "test", - "userAgent": "chrome", - "traits": { - "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", - "email": "abc@gmail.com", - "phone": "+1234589947", - "ge": "male", - "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", - "address": { - "city": "Kolkata", - "state": "WB", - "zip": "700114", - "country": "IN" - } - }, - "device": { - "advertisingId": "abc123" - }, - "library": { - "name": "rudder-sdk-ruby-sync", - "version": "1.0.6" - } - }, - "messageId": "7208bbb6-2c4e-45bb-bf5b-ad426f3593e9", - "timestamp": "2020-08-14T05:30:30.118Z", - "properties": { - "pixelId": "odr324tt", - "conversionTime": "2023-06-01T06:03:08.739Z", - "tax": 2, - "total": 27.5, - "coupon": "hasbros", - "revenue": 48, - "price": 25, - "quantity": 2, - "currency": "USD", - "priceCurrency": "USD", - "conversionId": "213123", - "numberItems": "2323", - "phone": "+919927455678", - "twclid": "543", - "shipping": 3, - "subtotal": 22.5, - "affiliation": "Google Store", - "checkout_id": "fksdjfsdjfisjf9sdfjsd9f", - "email": "abc@ax.com" - }, - "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", - "integrations": { - "All": true - } - }, - "metadata": { - "secret": { - "consumerKey": "qwe", - "consumerSecret": "fdghv", - "accessToken": "yrdghfvhjvhj", - "accessTokenSecret": "453etyfghjvhgcdcghv" - } - }, - "destination": { - "Config": { - "pixelId": "5343234", - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK", - "twitterAdsEventNames": [ - { - "rudderEventName": " ", - "twitterEventId": "tw-324fdsf" - }, - { - "rudderEventName": "Home Page Viewed", - "twitterEventId": "tw-324fdsf" - } - ] - } - } - }, - "output": { - "statusCode": 400, - "error": "[TWITTER ADS]: Event - 'Home Page' do not have a corresponding eventId in configuration. Aborting" - } - }, - { - "description": "Track - success call", - "input": { - "message": { - "type": "track", - "event": "Home Page Viewed", - "channel": "web", - "context": { - "source": "test", - "userAgent": "chrome", - "traits": { - "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", - "email": "abc@gmail.com", - "phone": "+1234589947", - "ge": "male", - "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", - "address": { - "city": "Kolkata", - "state": "WB", - "zip": "700114", - "country": "IN" - } - }, - "device": { - "advertisingId": "abc123" - }, - "library": { - "name": "rudder-sdk-ruby-sync", - "version": "1.0.6" - } - }, - "messageId": "7208bbb6-2c4e-45bb-bf5b-ad426f3593e9", - "timestamp": "2020-08-14T05:30:30.118Z", - "properties": { - "conversionTime": "2023-06-01T06:03:08.739Z", - "tax": 2, - "total": 27.5, - "coupon": "hasbros", - "revenue": 48, - "price": 25, - "quantity": 2, - "currency": "USD", - "priceCurrency": "USD", - "conversionId": "213123", - "numberItems": "2323", - "phone": "+919927455678", - "twclid": "543", - "shipping": 3, - "subtotal": 22.5, - "affiliation": "Google Store", - "checkout_id": "fksdjfsdjfisjf9sdfjsd9f", - "email": "abc@ax.com", - "contents": [ - { - "price": "123.3345", - "quantity": "12", - "id": "12" - }, - { - "price": 200, - "quantity": 11, - "id": "4" - }] - }, - "anonymousId": "50be5c78-6c3f-4b60-be84-97805a316fb1", - "integrations": { - "All": true - } - }, - "metadata": { - "secret": { - "consumerKey": "qwe", - "consumerSecret": "fdghv", - "accessToken": "yrdghfvhjvhj", - "accessTokenSecret": "453etyfghjvhgcdcghv" - } - }, - "destination": { - "Config": { - "pixelId": "5343234", - "rudderAccountId": "2EOknn1JNH7WK1MfNku4fGYKkRK", - "twitterAdsEventNames": [ - { - "rudderEventName": "ABC Searched", - "twitterEventId": "tw-234234324234" - }, - { - "rudderEventName": "Home Page Viewed", - "twitterEventId": "tw-odt2o-odt2q" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://ads-api.twitter.com/12/measurement/conversions/5343234", - "headers": { - "Authorization": "OAuth oauth_consumer_key=\"qwe\", oauth_nonce=\"V1kMh028kZLLhfeYozuL0B45Pcx6LvuW\", oauth_signature=\"Di4cuoGv4PnCMMEeqfWTcqhvdwc%3D\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"1685603652\", oauth_token=\"yrdghfvhjvhj\", oauth_version=\"1.0\"", - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "conversions": [ - { - "number_items": 2, - "price_currency": "USD", - "value": "25", - "conversion_id": "213123", - "contents": [ - { - "content_price": 123.3345, - "num_items": 12, - "content_id": "12" - }, - { - "content_price": 200.00, - "num_items": 11, - "content_id": "4" - } - ], - "event_id": "tw-odt2o-odt2q", - "conversion_time": "2023-06-01T06:03:08.739Z", - "identifiers": [ - { - "hashed_email": "4c3c8a8cba2f3bb1e9e617301f85d1f68e816a01c7b716f482f2ab9adb8181fb" - }, - { - "hashed_phone_number": "b308962b96b40cce7981493a372db9478edae79f83c2d8ca6cd15a39566f8c56" - }, - { - "twclid": "18beb4813723e788a1d79bcbf80802538ec813aa19ded2e9c21cbf08bed6bee3" - } - ] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - } -] diff --git a/test/__tests__/data/user_router.json b/test/__tests__/data/user_router.json index d42ae087836..5fbe9ace79a 100644 --- a/test/__tests__/data/user_router.json +++ b/test/__tests__/data/user_router.json @@ -36,19 +36,35 @@ }, "destination": { "Config": { - "apiKey": "262fbbda-b85b-48b8-a719-c2fceaf8afaf", + "apiKey": "dummyApiKey", "appSubdomain": "commander", - "userAttributesMapping": [{ "from": "useroccupation", "to": "occupation" }], + "userAttributesMapping": [ + { + "from": "useroccupation", + "to": "occupation" + } + ], "userEvents": [ { "rsEventName": "login", "userEventName": "product viewed", - "eventProperties": [{ "from": "count", "to": "productcount" }] + "eventProperties": [ + { + "from": "count", + "to": "productcount" + } + ] } ], "companyAttributesMapping": [ - { "from": "category", "to": "companycategory" }, - { "from": "owner", "to": "companyowner" } + { + "from": "category", + "to": "companycategory" + }, + { + "from": "owner", + "to": "companyowner" + } ] } } @@ -86,19 +102,35 @@ }, "destination": { "Config": { - "apiKey": "262fbbda-b85b-48b8-a719-c2fceaf8afaf", + "apiKey": "dummyApiKey", "appSubdomain": "commander", - "userAttributesMapping": [{ "from": "useroccupation", "to": "occupation" }], + "userAttributesMapping": [ + { + "from": "useroccupation", + "to": "occupation" + } + ], "userEvents": [ { "rsEventName": "login", "userEventName": "product viewed", - "eventProperties": [{ "from": "count", "to": "productcount" }] + "eventProperties": [ + { + "from": "count", + "to": "productcount" + } + ] } ], "companyAttributesMapping": [ - { "from": "category", "to": "companycategory" }, - { "from": "owner", "to": "companyowner" } + { + "from": "category", + "to": "companycategory" + }, + { + "from": "owner", + "to": "companyowner" + } ] } } @@ -123,7 +155,7 @@ "headers": { "Accept": "*/*;version=2", "Content-Type": "application/json", - "Authorization": "Token 262fbbda-b85b-48b8-a719-c2fceaf8afaf" + "Authorization": "Token dummyApiKey" }, "version": "1", "endpoint": "https://commander.user.com/api/public/companies/21/add_member/" @@ -137,19 +169,35 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "262fbbda-b85b-48b8-a719-c2fceaf8afaf", + "apiKey": "dummyApiKey", "appSubdomain": "commander", - "userAttributesMapping": [{ "from": "useroccupation", "to": "occupation" }], + "userAttributesMapping": [ + { + "from": "useroccupation", + "to": "occupation" + } + ], "userEvents": [ { "rsEventName": "login", "userEventName": "product viewed", - "eventProperties": [{ "from": "count", "to": "productcount" }] + "eventProperties": [ + { + "from": "count", + "to": "productcount" + } + ] } ], "companyAttributesMapping": [ - { "from": "category", "to": "companycategory" }, - { "from": "owner", "to": "companyowner" } + { + "from": "category", + "to": "companycategory" + }, + { + "from": "owner", + "to": "companyowner" + } ] } } @@ -181,7 +229,7 @@ "headers": { "Accept": "*/*;version=2", "Content-Type": "application/json", - "Authorization": "Token 262fbbda-b85b-48b8-a719-c2fceaf8afaf" + "Authorization": "Token dummyApiKey" }, "version": "1", "endpoint": "https://commander.user.com/api/public/users/59/" @@ -195,19 +243,35 @@ "statusCode": 200, "destination": { "Config": { - "apiKey": "262fbbda-b85b-48b8-a719-c2fceaf8afaf", + "apiKey": "dummyApiKey", "appSubdomain": "commander", - "userAttributesMapping": [{ "from": "useroccupation", "to": "occupation" }], + "userAttributesMapping": [ + { + "from": "useroccupation", + "to": "occupation" + } + ], "userEvents": [ { "rsEventName": "login", "userEventName": "product viewed", - "eventProperties": [{ "from": "count", "to": "productcount" }] + "eventProperties": [ + { + "from": "count", + "to": "productcount" + } + ] } ], "companyAttributesMapping": [ - { "from": "category", "to": "companycategory" }, - { "from": "owner", "to": "companyowner" } + { + "from": "category", + "to": "companycategory" + }, + { + "from": "owner", + "to": "companyowner" + } ] } } diff --git a/test/__tests__/data/user_transformation_async_output.json b/test/__tests__/data/user_transformation_async_output.json index 3c8f1f6cd38..4ba5d0c8e77 100644 --- a/test/__tests__/data/user_transformation_async_output.json +++ b/test/__tests__/data/user_transformation_async_output.json @@ -51,7 +51,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -101,7 +101,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { diff --git a/test/__tests__/data/user_transformation_async_output_large.json b/test/__tests__/data/user_transformation_async_output_large.json index b40ae4a3f1e..c53fd6963dc 100644 --- a/test/__tests__/data/user_transformation_async_output_large.json +++ b/test/__tests__/data/user_transformation_async_output_large.json @@ -51,7 +51,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -101,7 +101,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -189,7 +189,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -239,7 +239,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { diff --git a/test/__tests__/data/user_transformation_code_test_output.json b/test/__tests__/data/user_transformation_code_test_output.json index 1c7b58ce360..a79f81b24b1 100644 --- a/test/__tests__/data/user_transformation_code_test_output.json +++ b/test/__tests__/data/user_transformation_code_test_output.json @@ -64,7 +64,7 @@ }, "traits": { "anonymousId": "12345", - "email": "sayan@gmail.com" + "email": "test@rudderstack.com" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" }, @@ -111,7 +111,7 @@ }, "traits": { "anonymousId": "12345", - "email": "sayan@gmail.com" + "email": "test@rudderstack.com" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" }, diff --git a/test/__tests__/data/user_transformation_filter_input.json b/test/__tests__/data/user_transformation_filter_input.json index a0a38cd6139..96d97bee542 100644 --- a/test/__tests__/data/user_transformation_filter_input.json +++ b/test/__tests__/data/user_transformation_filter_input.json @@ -65,7 +65,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -125,7 +125,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { diff --git a/test/__tests__/data/user_transformation_filter_output.json b/test/__tests__/data/user_transformation_filter_output.json index 710a261dadd..8592efb1302 100644 --- a/test/__tests__/data/user_transformation_filter_output.json +++ b/test/__tests__/data/user_transformation_filter_output.json @@ -10,7 +10,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { diff --git a/test/__tests__/data/user_transformation_input.json b/test/__tests__/data/user_transformation_input.json index 0f3ceca16ba..0a42b32bc28 100644 --- a/test/__tests__/data/user_transformation_input.json +++ b/test/__tests__/data/user_transformation_input.json @@ -61,7 +61,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -115,7 +115,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { diff --git a/test/__tests__/data/user_transformation_input_large.json b/test/__tests__/data/user_transformation_input_large.json index 8568b9c4aa7..6c85f9507be 100644 --- a/test/__tests__/data/user_transformation_input_large.json +++ b/test/__tests__/data/user_transformation_input_large.json @@ -61,7 +61,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -115,7 +115,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -217,7 +217,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -271,7 +271,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { diff --git a/test/__tests__/data/user_transformation_lodash_output.json b/test/__tests__/data/user_transformation_lodash_output.json index 5bd9b9950c4..89334d83a23 100644 --- a/test/__tests__/data/user_transformation_lodash_output.json +++ b/test/__tests__/data/user_transformation_lodash_output.json @@ -52,7 +52,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -103,7 +103,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { diff --git a/test/__tests__/data/user_transformation_output.json b/test/__tests__/data/user_transformation_output.json index f924ab5e514..e269e7c9968 100644 --- a/test/__tests__/data/user_transformation_output.json +++ b/test/__tests__/data/user_transformation_output.json @@ -50,7 +50,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -99,7 +99,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { diff --git a/test/__tests__/data/user_transformation_pycode_test_output.json b/test/__tests__/data/user_transformation_pycode_test_output.json index 6c86a7d6efa..23009ac4df6 100644 --- a/test/__tests__/data/user_transformation_pycode_test_output.json +++ b/test/__tests__/data/user_transformation_pycode_test_output.json @@ -63,7 +63,7 @@ }, "traits": { "anonymousId": "12345", - "email": "sayan@gmail.com" + "email": "test@rudderstack.com" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" }, @@ -109,7 +109,7 @@ }, "traits": { "anonymousId": "12345", - "email": "sayan@gmail.com" + "email": "test@rudderstack.com" }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" }, diff --git a/test/__tests__/data/keen_input.json b/test/__tests__/data/user_transformation_service_filter_input.json similarity index 60% rename from test/__tests__/data/keen_input.json rename to test/__tests__/data/user_transformation_service_filter_input.json index e832868ad31..966031e7bbd 100644 --- a/test/__tests__/data/keen_input.json +++ b/test/__tests__/data/user_transformation_service_filter_input.json @@ -1,42 +1,4 @@ [ - { - "message": { - "channel": "web", - "type": "page", - "context": null, - "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", - "originalTimestamp": "2019-10-14T11:15:18.299Z", - "anonymousId": "00000000000000000000000000", - "userId": "12345", - "properties": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com" - }, - "traits": { - "email": "test@gmail.com", - "anonymousId": "anon-id" - }, - "integrations": { - "All": true - }, - "name": "ApplicationLoaded", - "sentAt": "2019-10-14T11:15:53.296Z" - }, - "destination": { - "Config": { - "projectID": "abcde", - "writeKey": "xyz", - "ipAddon": true, - "uaAddon": true, - "urlAddon": true, - "referrerAddon": true - } - } - }, { "message": { "channel": "web", @@ -48,17 +10,7 @@ "version": "1.0.0" }, "traits": { - "anonymousId": "123456", - "email": "sayan@gmail.com", - "address": { - "city": "kolkata", - "country": "India", - "postalCode": 712136, - "state": "WB", - "street": "" - }, - "ip": "0.0.0.0", - "age": 26 + "anonymousId": "123456" }, "library": { "name": "RudderLabs JavaScript SDK", @@ -77,35 +29,30 @@ }, "type": "identify", "messageId": "84e26acc-56a5-4835-8233-591137fca468", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", "originalTimestamp": "2019-10-14T09:03:17.562Z", "anonymousId": "123456", "userId": "123456", "integrations": { "All": true }, - "traits": { - "anonymousId": "my-anon-id", - "email": "test@gmail.com", - "address": { - "city": "kolkata-1", - "country": "US", - "postalCode": 712136, - "state": "CA", - "street": "" - } - }, "sentAt": "2019-10-14T09:03:22.563Z" }, + "metadata": { + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "sourceId": "s1", + "destinationId": "d1" + }, "destination": { + "ID": 2, "Config": { - "projectID": "abcde", - "writeKey": "xyz", - "ipAddon": true, - "uaAddon": true, - "urlAddon": true, - "referrerAddon": true - } + "trackingID": "abcd" + }, + "Enabled": true, + "Transformations": [ + { + "VersionID": "24" + } + ] } }, { @@ -119,7 +66,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -139,20 +86,15 @@ }, "type": "page", "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", "originalTimestamp": "2019-10-14T11:15:18.299Z", "anonymousId": "00000000000000000000000000", "userId": "12345", "properties": { - "path": "/test", - "referrer": "Rudder", - "search": "abc", - "title": "Test Page", - "url": "www.rudderlabs.com" - }, - "traits": { - "email": "test@gmail.com", - "anonymousId": "anon-id" + "path": "/abc", + "referrer": "", + "search": "", + "title": "", + "url": "" }, "integrations": { "All": true @@ -160,15 +102,22 @@ "name": "ApplicationLoaded", "sentAt": "2019-10-14T11:15:53.296Z" }, + "metadata": { + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "sourceId": "s1", + "destinationId": "d1" + }, "destination": { + "ID": 2, "Config": { - "projectID": "abcde", - "writeKey": "xyz", - "ipAddon": true, - "uaAddon": true, - "urlAddon": true, - "referrerAddon": true - } + "trackingID": "abcd" + }, + "Enabled": true, + "Transformations": [ + { + "VersionID": "24" + } + ] } }, { @@ -182,7 +131,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -191,6 +140,7 @@ }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", "locale": "en-US", + "ip": "0.0.0.0", "os": { "name": "", "version": "" @@ -201,35 +151,97 @@ }, "type": "track", "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", - "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", "originalTimestamp": "2019-10-14T11:15:18.300Z", "anonymousId": "00000000000000000000000000", "userId": "12345", - "event": "test track event", - "request_ip": "1.1.1.1", + "event": "test track event GA3", "properties": { - "user_actual_role": "system_admin", - "user_actual_id": 12345, - "user_time_spent": 50000 + "user_actual_role": "system_admin, system_user", + "user_actual_id": 12345 }, "integrations": { "All": true }, - "traits": { - "email": "test@gmail.com", - "anonymousId": "anon-id" + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "metadata": { + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "sourceId": "s1", + "destinationId": "d1" + }, + "destination": { + "ID": 2, + "Config": { + "trackingID": "abcd" + }, + "Enabled": true, + "Transformations": [ + { + "VersionID": "24" + } + ] + } + }, + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com", + "anonymousId": "12345" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "non-standard", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "test track event GA3", + "properties": { + "user_actual_role": "system_admin, system_user", + "user_actual_id": 12345 + }, + "integrations": { + "All": true }, "sentAt": "2019-10-14T11:15:53.296Z" }, + "metadata": { + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "sourceId": "s1", + "destinationId": "d1" + }, "destination": { + "ID": 2, "Config": { - "projectID": "abcde", - "writeKey": "xyz", - "ipAddon": true, - "uaAddon": true, - "urlAddon": true, - "referrerAddon": true - } + "trackingID": "abcd" + }, + "Enabled": true, + "Transformations": [ + { + "VersionID": "24" + } + ] } } ] diff --git a/test/__tests__/data/user_transformation_service_filter_output.json b/test/__tests__/data/user_transformation_service_filter_output.json new file mode 100644 index 00000000000..2d2c03349e1 --- /dev/null +++ b/test/__tests__/data/user_transformation_service_filter_output.json @@ -0,0 +1,83 @@ +{ + "transformedEvents": [ + { + "statusCode": 298, + "metadata": { + "sourceId": "s1", + "destinationId": "d1", + "messageIds": null, + "messageId": "84e26acc-56a5-4835-8233-591137fca468" + } + }, + { + "statusCode": 298, + "metadata": { + "sourceId": "s1", + "destinationId": "d1", + "messageIds": null, + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71" + } + }, + { + "output": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com", + "anonymousId": "12345" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "test track event GA3", + "properties": { + "user_actual_role": "system_admin, system_user", + "user_actual_id": 12345 + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "metadata": { + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "sourceId": "s1", + "destinationId": "d1" + }, + "statusCode": 200 + }, + { + "error": "Error: non-standard event\n at transformEvent (base transformation:5:56)", + "metadata": { + "destinationId": "d1", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "sourceId": "s1" + }, + "statusCode": 400 + } + ], + "retryStatus": 200 +} diff --git a/test/__tests__/data/user_transformation_url_search_params_output.json b/test/__tests__/data/user_transformation_url_search_params_output.json index 3a41e2a128b..f8581c3dbde 100644 --- a/test/__tests__/data/user_transformation_url_search_params_output.json +++ b/test/__tests__/data/user_transformation_url_search_params_output.json @@ -50,7 +50,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -100,7 +100,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { diff --git a/test/__tests__/data/userlist_cdk_output.json b/test/__tests__/data/userlist_cdk_output.json index 1470f2ae81e..5de9e806d11 100644 --- a/test/__tests__/data/userlist_cdk_output.json +++ b/test/__tests__/data/userlist_cdk_output.json @@ -14,7 +14,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "address": { "city": "kolkata", "country": "India", @@ -92,7 +92,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -155,7 +155,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -166,8 +166,13 @@ }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", "locale": "en-US", - "os": { "name": "", "version": "" }, - "screen": { "density": 0.8999999761581421 }, + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 0.8999999761581421 + }, "campaign": { "source": "google", "medium": "medium", @@ -189,11 +194,19 @@ "originalTimestamp": "2020-10-20T07:54:58.983Z", "anonymousId": "my-anonymous-id-new", "userId": "sampleusrRudder3", - "integrations": { "All": true }, + "integrations": { + "All": true + }, "groupId": "Sample_groupId23", "traits": { - "KEY_3": { "CHILD_KEY_92": "value_95", "CHILD_KEY_102": "value_103" }, - "KEY_2": { "CHILD_KEY_92": "value_95", "CHILD_KEY_102": "value_103" }, + "KEY_3": { + "CHILD_KEY_92": "value_95", + "CHILD_KEY_102": "value_103" + }, + "KEY_2": { + "CHILD_KEY_92": "value_95", + "CHILD_KEY_102": "value_103" + }, "name_trait": "Company", "value_trait": ["Comapny-ABC"] }, diff --git a/test/__tests__/data/userlist_input.json b/test/__tests__/data/userlist_input.json index d71c6d6cfaa..d8dcd4abb8d 100644 --- a/test/__tests__/data/userlist_input.json +++ b/test/__tests__/data/userlist_input.json @@ -11,7 +11,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "address": { "city": "kolkata", "country": "India", @@ -84,7 +84,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -142,16 +142,24 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.1.5" }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.5" + }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", "locale": "en-US", - "os": { "name": "", "version": "" }, - "screen": { "density": 0.8999999761581421 }, + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 0.8999999761581421 + }, "campaign": { "source": "google", "medium": "medium", @@ -173,11 +181,19 @@ "originalTimestamp": "2020-10-20T07:54:58.983Z", "anonymousId": "my-anonymous-id-new", "userId": "sampleusrRudder3", - "integrations": { "All": true }, + "integrations": { + "All": true + }, "groupId": "Sample_groupId23", "traits": { - "KEY_3": { "CHILD_KEY_92": "value_95", "CHILD_KEY_102": "value_103" }, - "KEY_2": { "CHILD_KEY_92": "value_95", "CHILD_KEY_102": "value_103" }, + "KEY_3": { + "CHILD_KEY_92": "value_95", + "CHILD_KEY_102": "value_103" + }, + "KEY_2": { + "CHILD_KEY_92": "value_95", + "CHILD_KEY_102": "value_103" + }, "name_trait": "Company", "value_trait": ["Comapny-ABC"] }, @@ -206,7 +222,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "address": { "city": "kolkata", "country": "India", @@ -278,7 +294,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -335,16 +351,24 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 }, - "library": { "name": "RudderLabs JavaScript SDK", "version": "1.1.5" }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.5" + }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", "locale": "en-US", - "os": { "name": "", "version": "" }, - "screen": { "density": 0.8999999761581421 }, + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 0.8999999761581421 + }, "campaign": { "source": "google", "medium": "medium", @@ -365,11 +389,19 @@ "messageId": "e5034df0-a404-47b4-a463-76df99934fea", "originalTimestamp": "2020-10-20T07:54:58.983Z", "anonymousId": "my-anonymous-id-new", - "integrations": { "All": true }, + "integrations": { + "All": true + }, "groupId": "Sample_groupId23", "traits": { - "KEY_3": { "CHILD_KEY_92": "value_95", "CHILD_KEY_102": "value_103" }, - "KEY_2": { "CHILD_KEY_92": "value_95", "CHILD_KEY_102": "value_103" }, + "KEY_3": { + "CHILD_KEY_92": "value_95", + "CHILD_KEY_102": "value_103" + }, + "KEY_2": { + "CHILD_KEY_92": "value_95", + "CHILD_KEY_102": "value_103" + }, "name_trait": "Company", "value_trait": ["Comapny-ABC"] }, @@ -397,7 +429,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -455,7 +487,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com" + "email": "test@rudderstack.com" }, "library": { "name": "RudderLabs JavaScript SDK", diff --git a/test/__tests__/data/userlist_output.json b/test/__tests__/data/userlist_output.json index ebf23a12665..27eb9320f14 100644 --- a/test/__tests__/data/userlist_output.json +++ b/test/__tests__/data/userlist_output.json @@ -14,7 +14,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "address": { "city": "kolkata", "country": "India", @@ -93,7 +93,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { @@ -157,7 +157,7 @@ "traits": { "name": "Shehan Study", "category": "SampleIdentify", - "email": "chandra+r@rudderlabs.com", + "email": "test@rudderstack.com", "plan": "Open source", "logins": 5, "createdAt": 1599264000 @@ -168,8 +168,13 @@ }, "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", "locale": "en-US", - "os": { "name": "", "version": "" }, - "screen": { "density": 0.8999999761581421 }, + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 0.8999999761581421 + }, "campaign": { "source": "google", "medium": "medium", @@ -191,11 +196,19 @@ "originalTimestamp": "2020-10-20T07:54:58.983Z", "anonymousId": "my-anonymous-id-new", "userId": "sampleusrRudder3", - "integrations": { "All": true }, + "integrations": { + "All": true + }, "groupId": "Sample_groupId23", "traits": { - "KEY_3": { "CHILD_KEY_92": "value_95", "CHILD_KEY_102": "value_103" }, - "KEY_2": { "CHILD_KEY_92": "value_95", "CHILD_KEY_102": "value_103" }, + "KEY_3": { + "CHILD_KEY_92": "value_95", + "CHILD_KEY_102": "value_103" + }, + "KEY_2": { + "CHILD_KEY_92": "value_95", + "CHILD_KEY_102": "value_103" + }, "name_trait": "Company", "value_trait": ["Comapny-ABC"] }, diff --git a/test/__tests__/data/userlist_router_input.json b/test/__tests__/data/userlist_router_input.json index aa1877d1bed..4feb367454d 100644 --- a/test/__tests__/data/userlist_router_input.json +++ b/test/__tests__/data/userlist_router_input.json @@ -11,7 +11,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "address": { "city": "kolkata", "country": "India", @@ -63,7 +63,7 @@ "sentAt": "2019-10-14T09:03:22.563Z" }, "metadata": { - "jobId": 2 + "jobId": 1 }, "destination": { "Config": { @@ -82,7 +82,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { diff --git a/test/__tests__/data/userlist_router_output.json b/test/__tests__/data/userlist_router_output.json index 2b10f4d5d51..2c5ed6149b0 100644 --- a/test/__tests__/data/userlist_router_output.json +++ b/test/__tests__/data/userlist_router_output.json @@ -15,7 +15,7 @@ }, "traits": { "anonymousId": "123456", - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "address": { "city": "kolkata", "country": "India", @@ -82,7 +82,7 @@ }, "metadata": [ { - "jobId": 2 + "jobId": 1 } ], "batched": false, @@ -108,7 +108,7 @@ "version": "1.0.0" }, "traits": { - "email": "sayan@gmail.com", + "email": "test@rudderstack.com", "anonymousId": "12345" }, "library": { diff --git a/test/__tests__/data/variance_input.json b/test/__tests__/data/variance_input.json deleted file mode 100644 index bb95160e9ca..00000000000 --- a/test/__tests__/data/variance_input.json +++ /dev/null @@ -1,410 +0,0 @@ -[ - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "traits": { - "address": { - "city": "Dhaka", - "country": "Bangladesh" - }, - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2, - "win_amount": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "sentAt": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "user_properties": { - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "fb_profile": "0", - "game_fps": 30, - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": false, - "level": 6, - "lifetime_gem_balance": 0, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2 - } - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - }, - "Config": { - "webhookUrl": "http://6b0e6a60.ngrok.io", - "authHeader": "Basic MVA4dUtGOF=" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "traits": { - "address": { - "city": "Dhaka", - "country": "Bangladesh" - }, - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2, - "win_amount": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "sentAt": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "user_properties": { - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "fb_profile": "0", - "game_fps": 30, - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": false, - "level": 6, - "lifetime_gem_balance": 0, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2 - } - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - }, - "Config": { - "webhookUrl": "https://6b0e6a60.ngrok.io/n" - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "traits": { - "address": { - "city": "Dhaka", - "country": "Bangladesh" - }, - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2, - "win_amount": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "sentAt": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "user_properties": { - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "fb_profile": "0", - "game_fps": 30, - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": false, - "level": 6, - "lifetime_gem_balance": 0, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2 - } - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - }, - "Config": { - "webhookUrl": "https://6b0e6a60." - } - } - }, - { - "message": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "traits": { - "address": { - "city": "Dhaka", - "country": "Bangladesh" - }, - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } - }, - "event": "spin_result", - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2, - "win_amount": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "sentAt": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "request_ip": "127.0.0.1" - }, - "destination": { - "DestinationDefinition": { - "Config": { - "cdkEnabled": true - } - }, - "Config": { - "webhookUrl": "http://6b0e6a60.ngrok.io", - "header": [ - { - "from": "test1", - "to": "value1" - }, - { - "from": "test2", - "to": "value2" - } - ] - } - } - } -] diff --git a/test/__tests__/data/variance_output.json b/test/__tests__/data/variance_output.json deleted file mode 100644 index 2295fdbe7b4..00000000000 --- a/test/__tests__/data/variance_output.json +++ /dev/null @@ -1,421 +0,0 @@ -[ - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "sentAt": "2019-09-01T15:46:51.693229+05:30", - "user_properties": { - "total_payments": 0, - "internetReachability": "ReachableViaLocalAreaNetwork", - "level": 6, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "coin_balance": 9466052, - "player_total_shields": 0, - "isLowEndDevice": false, - "game_fps": 30, - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "graphicsQuality": "HD", - "current_module_name": "CasinoGameModule", - "player_total_battles": 0, - "lifetime_gem_balance": 0, - "gem_balance": 0, - "fb_profile": "0", - "start_date": "2019-08-01", - "versionSessionCount": 2, - "game_name": "FireEagleSlots" - }, - "integrations": { - "All": true - }, - "event": "spin_result", - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "context": { - "device": { - "model": "Redmi 6", - "manufacturer": "Xiaomi", - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "name": "xiaomi" - }, - "traits": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "address": { - "city": "Dhaka", - "country": "Bangladesh" - } - }, - "os": { - "version": "8.1.0", - "name": "android" - }, - "network": { - "carrier": "Banglalink" - } - }, - "type": "track", - "properties": { - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "jackpot_win_type": "Silver", - "coin_balance": 9466052, - "bet_level": 1, - "ishighroller": "False", - "tournament_id": "T1561970819", - "battle_id": "N/A", - "bet_amount": 9, - "fb_profile": "0", - "player_total_shields": 0, - "is_turbo": "False", - "player_total_battles": 0, - "bet_multiplier": 1, - "start_date": "2019-08-01", - "versionSessionCount": 2, - "graphicsQuality": "HD", - "is_auto_spin": "False", - "days_in_game": 0, - "additional_bet_index": 0, - "isLowEndDevice": "False", - "game_fps": 30, - "extra_param": "N/A", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "current_module_name": "CasinoGameModule", - "game_id": "fireEagleBase", - "featureGameType": "N/A", - "gem_balance": 0, - "internetReachability": "ReachableViaLocalAreaNetwork", - "total_payments": 0, - "level": 6, - "win_amount": 0, - "no_of_spin": 1, - "game_name": "FireEagleSlots", - "jackpot_win_amount": 90, - "lifetime_gem_balance": 0, - "isf": "False" - } - }, - "FORM": {} - }, - "files": {}, - "endpoint": "http://6b0e6a60.ngrok.io", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "headers": { - "content-type": "application/json", - "authorization": "Basic MVA4dUtGOF=" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "sentAt": "2019-09-01T15:46:51.693229+05:30", - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "user_properties": { - "total_payments": 0, - "internetReachability": "ReachableViaLocalAreaNetwork", - "level": 6, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "coin_balance": 9466052, - "player_total_shields": 0, - "isLowEndDevice": false, - "game_fps": 30, - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "graphicsQuality": "HD", - "current_module_name": "CasinoGameModule", - "player_total_battles": 0, - "lifetime_gem_balance": 0, - "gem_balance": 0, - "fb_profile": "0", - "start_date": "2019-08-01", - "versionSessionCount": 2, - "game_name": "FireEagleSlots" - }, - "integrations": { - "All": true - }, - "event": "spin_result", - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "context": { - "device": { - "model": "Redmi 6", - "manufacturer": "Xiaomi", - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "name": "xiaomi" - }, - "traits": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "address": { - "city": "Dhaka", - "country": "Bangladesh" - } - }, - "os": { - "version": "8.1.0", - "name": "android" - }, - "network": { - "carrier": "Banglalink" - } - }, - "type": "track", - "properties": { - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "jackpot_win_type": "Silver", - "coin_balance": 9466052, - "bet_level": 1, - "ishighroller": "False", - "tournament_id": "T1561970819", - "battle_id": "N/A", - "bet_amount": 9, - "fb_profile": "0", - "player_total_shields": 0, - "is_turbo": "False", - "player_total_battles": 0, - "bet_multiplier": 1, - "start_date": "2019-08-01", - "versionSessionCount": 2, - "graphicsQuality": "HD", - "is_auto_spin": "False", - "days_in_game": 0, - "additional_bet_index": 0, - "isLowEndDevice": "False", - "game_fps": 30, - "extra_param": "N/A", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "current_module_name": "CasinoGameModule", - "game_id": "fireEagleBase", - "featureGameType": "N/A", - "gem_balance": 0, - "internetReachability": "ReachableViaLocalAreaNetwork", - "total_payments": 0, - "level": 6, - "win_amount": 0, - "no_of_spin": 1, - "game_name": "FireEagleSlots", - "jackpot_win_amount": 90, - "lifetime_gem_balance": 0, - "isf": "False" - } - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://6b0e6a60.ngrok.io/n", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "headers": { - "content-type": "application/json" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "body": { - "XML": {}, - "JSON_ARRAY": {}, - "JSON": { - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "sentAt": "2019-09-01T15:46:51.693229+05:30", - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "user_properties": { - "total_payments": 0, - "internetReachability": "ReachableViaLocalAreaNetwork", - "level": 6, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "coin_balance": 9466052, - "player_total_shields": 0, - "isLowEndDevice": false, - "game_fps": 30, - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "graphicsQuality": "HD", - "current_module_name": "CasinoGameModule", - "player_total_battles": 0, - "lifetime_gem_balance": 0, - "gem_balance": 0, - "fb_profile": "0", - "start_date": "2019-08-01", - "versionSessionCount": 2, - "game_name": "FireEagleSlots" - }, - "integrations": { - "All": true - }, - "event": "spin_result", - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "context": { - "device": { - "model": "Redmi 6", - "manufacturer": "Xiaomi", - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "name": "xiaomi" - }, - "traits": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "address": { - "city": "Dhaka", - "country": "Bangladesh" - } - }, - "os": { - "version": "8.1.0", - "name": "android" - }, - "network": { - "carrier": "Banglalink" - } - }, - "type": "track", - "properties": { - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "jackpot_win_type": "Silver", - "coin_balance": 9466052, - "bet_level": 1, - "ishighroller": "False", - "tournament_id": "T1561970819", - "battle_id": "N/A", - "bet_amount": 9, - "fb_profile": "0", - "player_total_shields": 0, - "is_turbo": "False", - "player_total_battles": 0, - "bet_multiplier": 1, - "start_date": "2019-08-01", - "versionSessionCount": 2, - "graphicsQuality": "HD", - "is_auto_spin": "False", - "days_in_game": 0, - "additional_bet_index": 0, - "isLowEndDevice": "False", - "game_fps": 30, - "extra_param": "N/A", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "current_module_name": "CasinoGameModule", - "game_id": "fireEagleBase", - "featureGameType": "N/A", - "gem_balance": 0, - "internetReachability": "ReachableViaLocalAreaNetwork", - "total_payments": 0, - "level": 6, - "win_amount": 0, - "no_of_spin": 1, - "game_name": "FireEagleSlots", - "jackpot_win_amount": 90, - "lifetime_gem_balance": 0, - "isf": "False" - } - }, - "FORM": {} - }, - "files": {}, - "endpoint": "https://6b0e6a60.", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "headers": { - "content-type": "application/json" - }, - "version": "1", - "params": {}, - "type": "REST", - "method": "POST" - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "http://6b0e6a60.ngrok.io", - "headers": { - "content-type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "context": { - "device": { - "id": "df16bffa-5c3d-4fbb-9bce-3bab098129a7R", - "manufacturer": "Xiaomi", - "model": "Redmi 6", - "name": "xiaomi" - }, - "network": { - "carrier": "Banglalink" - }, - "os": { - "name": "android", - "version": "8.1.0" - }, - "traits": { - "address": { - "city": "Dhaka", - "country": "Bangladesh" - }, - "anonymousId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - }, - "ip": "127.0.0.1" - }, - "event": "spin_result", - "integrations": { - "All": true - }, - "message_id": "a80f82be-9bdc-4a9f-b2a5-15621ee41df8", - "properties": { - "additional_bet_index": 0, - "battle_id": "N/A", - "bet_amount": 9, - "bet_level": 1, - "bet_multiplier": 1, - "coin_balance": 9466052, - "current_module_name": "CasinoGameModule", - "days_in_game": 0, - "extra_param": "N/A", - "fb_profile": "0", - "featureGameType": "N/A", - "game_fps": 30, - "game_id": "fireEagleBase", - "game_name": "FireEagleSlots", - "gem_balance": 0, - "graphicsQuality": "HD", - "idfa": "2bf99787-33d2-4ae2-a76a-c49672f97252", - "internetReachability": "ReachableViaLocalAreaNetwork", - "isLowEndDevice": "False", - "is_auto_spin": "False", - "is_turbo": "False", - "isf": "False", - "ishighroller": "False", - "jackpot_win_amount": 90, - "jackpot_win_type": "Silver", - "level": 6, - "lifetime_gem_balance": 0, - "no_of_spin": 1, - "player_total_battles": 0, - "player_total_shields": 0, - "start_date": "2019-08-01", - "total_payments": 0, - "tournament_id": "T1561970819", - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", - "versionSessionCount": 2, - "win_amount": 0 - }, - "timestamp": "2019-09-01T15:46:51.693229+05:30", - "originalTimestamp": "2019-09-01T15:46:51.693229+05:30", - "sentAt": "2019-09-01T15:46:51.693229+05:30", - "type": "track", - "request_ip": "127.0.0.1" - }, - "XML": {}, - "JSON_ARRAY": {}, - "FORM": {} - }, - "files": {}, - "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1" - } -] diff --git a/test/__tests__/data/vero.json b/test/__tests__/data/vero.json deleted file mode 100644 index 24c2c003ff5..00000000000 --- a/test/__tests__/data/vero.json +++ /dev/null @@ -1,559 +0,0 @@ -[ - { - "description": "Identify Call with userId only", - "input": { - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "message": { - "context": { - "traits": { - "homwTown": "kanpur", - "age": "24" - } - }, - "type": "Identify", - "userId": "yash001", - "originalTimestamp": "2019-10-14T09:03:17.562Z" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/users/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "yash001", - "data": { - "homwTown": "kanpur", - "age": "24" - }, - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Identify Call with both userId and email", - "input": { - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "message": { - "context": { - "traits": { - "email": "user1001@tech.com" - } - }, - "type": "Identify", - "userId": "user1001" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/users/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "user1001", - "email": "user1001@tech.com", - "data": {}, - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Identify Call with anonymousId and email only", - "input": { - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "message": { - "context": { - "traits": { - "email": "user1002@tech.com" - } - }, - "type": "Identify", - "anonymousId": "b4ffheww8eisndbdjgdewifewfgerwibderv" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/users/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "b4ffheww8eisndbdjgdewifewfgerwibderv", - "email": "user1002@tech.com", - "data": {}, - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Add tags in identify call", - "input": { - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "message": { - "context": { - "traits": { - "address": "Caravela Beach Goa", - "homwTown": "Mawsynram", - "email": "user1005@tech.com" - } - }, - "integrations": { - "vero": { - "tags": { - "add": ["a", "b"] - } - } - }, - "type": "Identify", - "userId": "fprediruser001" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/users/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "fprediruser001", - "email": "user1005@tech.com", - "data": { - "address": "Caravela Beach Goa", - "homwTown": "Mawsynram" - }, - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.getvero.com/api/v2/users/tags/edit", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF", - "id": "fprediruser001", - "add": ["a", "b"] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Track Call with nonexistent userId- Creates new user with event", - "input": { - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "message": { - "event": "Random event with nonexisting userId and email", - "properties": { - "movieWatched": 3, - "gamesPlayed": 4, - "email": "eventIdn01@sample.com" - }, - "type": "track", - "userId": "eventIdn01" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/events/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "identity": { - "id": "eventIdn01", - "email": "eventIdn01@sample.com" - }, - "event_name": "Random event with nonexisting userId and email", - "data": { - "movieWatched": 3, - "gamesPlayed": 4, - "email": "eventIdn01@sample.com" - }, - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Track Call with already existing userId and removing tags", - "input": { - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "message": { - "event": "Random event with existing userId and some tags removed", - "properties": { - "movieWatched": 3, - "gamesPlayed": 4, - "email": "eventIdn01@sample.com" - }, - "integrations": { - "Vero": { - "tags": { - "remove": ["a"] - } - } - }, - "type": "track", - "userId": "fprediruser001" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/events/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "identity": { - "id": "fprediruser001", - "email": "eventIdn01@sample.com" - }, - "event_name": "Random event with existing userId and some tags removed", - "data": { - "movieWatched": 3, - "gamesPlayed": 4, - "email": "eventIdn01@sample.com" - }, - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.getvero.com/api/v2/users/tags/edit", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF", - "id": "fprediruser001", - "remove": ["a"] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Alias Call - Merge two user profiles", - "input": { - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "message": { - "type": "alias", - "userId": "sample101", - "previousId": "newsamplel01" - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.getvero.com/api/v2/users/reidentify", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "new_id": "sample101", - "id": "newsamplel01", - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Identify Call with valid channels", - "input": { - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "message": { - "context": { - "traits": { - "email": "user1001@tech.com" - }, - "os": { - "name": "android" - }, - "device": { - "token": "qwertyuioiuytrewwertyu", - "name": "Mi" - } - }, - "type": "Identify", - "userId": "user1001" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/users/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "user1001", - "email": "user1001@tech.com", - "channels": { - "platform": "android", - "address": "qwertyuioiuytrewwertyu", - "device": "Mi", - "type": "push" - }, - "data": {}, - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Identify Call with invalid channels", - "input": { - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "message": { - "context": { - "traits": { - "email": "user1001@tech.com" - }, - "device": { - "token": "qwertyuioiuytrewwertyu", - "name": "Mi" - } - }, - "type": "Identify", - "userId": "user1001" - } - }, - "output": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/users/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "user1001", - "email": "user1001@tech.com", - "data": {}, - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ] - }, - { - "description": "Track Call to unsubscribe a userId", - "input": { - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "message": { - "event": "unsubscribe", - "type": "track", - "userId": "eventIdn01" - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/users/unsubscribe", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "eventIdn01", - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Page Call with an existing userID", - "input": { - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "message": { - "name": "Rudderstack", - "properties": { - "title": "rudderstack", - "path": "/" - }, - "type": "page", - "userId": "eventIdn01" - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/events/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "identity": { - "id": "eventIdn01" - }, - "event_name": "Viewed Rudderstack Page", - "data": { - "title": "rudderstack", - "path": "/" - }, - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Error flow - message type not supported", - "input": { - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "message": { - "groupId": "1234", - "traits": { - "name": "MyGroup", - "industry": "IT", - "employees": 450, - "plan": "basic" - }, - "type": "group", - "userId": "eventIdn01" - } - }, - "output": { - "error": "Event type group is not supported" - } - } -] diff --git a/test/__tests__/data/vero_router_input.json b/test/__tests__/data/vero_router_input.json deleted file mode 100644 index 63695bbc67d..00000000000 --- a/test/__tests__/data/vero_router_input.json +++ /dev/null @@ -1,88 +0,0 @@ -[ - { - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "metadata": { - "jobId": 1 - }, - "message": { - "context": { - "traits": { - "email": "user001@tech.com" - } - }, - "type": "Identify", - "userId": "user001" - } - }, - { - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "metadata": { - "jobId": 1 - }, - "message": { - "context": { - "traits": { - "email": "user002@tech.com" - } - }, - "type": "Identify", - "anonymousId": "b4ffheww8eisndbdjgdewifewfgerwibderv" - } - }, - { - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "metadata": { - "jobId": 1 - }, - "message": { - "context": { - "traits": { - "address": "Caravela Beach Goa", - "homwTown": "Mawsynram", - "email": "user005@tech.com" - } - }, - "integrations": { - "vero": { - "tags": { - "add": ["a", "b"] - } - } - }, - "type": "Identify", - "userId": "fprediruser001" - } - }, - { - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "metadata": { - "jobId": 1 - }, - "message": { - "event": "Random event with nonexisting userId and email", - "properties": { - "movieWatched": 3, - "gamesPlayed": 4, - "email": "eventIdn02@sample.com" - }, - "type": "track", - "userId": "eventIdn01" - } - } -] diff --git a/test/__tests__/data/vero_router_output.json b/test/__tests__/data/vero_router_output.json deleted file mode 100644 index 3159a169278..00000000000 --- a/test/__tests__/data/vero_router_output.json +++ /dev/null @@ -1,175 +0,0 @@ -[ - { - "batched": false, - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/users/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "user001", - "email": "user001@tech.com", - "data": {}, - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "metadata": [ - { - "jobId": 1 - } - ], - "statusCode": 200 - }, - { - "batched": false, - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/users/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "b4ffheww8eisndbdjgdewifewfgerwibderv", - "email": "user002@tech.com", - "data": {}, - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "metadata": [ - { - "jobId": 1 - } - ], - "statusCode": 200 - }, - { - "batched": false, - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/users/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "id": "fprediruser001", - "email": "user005@tech.com", - "data": { - "address": "Caravela Beach Goa", - "homwTown": "Mawsynram" - }, - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - { - "version": "1", - "type": "REST", - "method": "PUT", - "endpoint": "https://api.getvero.com/api/v2/users/tags/edit", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF", - "id": "fprediruser001", - "add": ["a", "b"] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "metadata": [ - { - "jobId": 1 - } - ], - "statusCode": 200 - }, - { - "batched": false, - "batchedRequest": [ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://api.getvero.com/api/v2/events/track", - "headers": {}, - "params": {}, - "body": { - "JSON": { - "identity": { - "id": "eventIdn01", - "email": "eventIdn02@sample.com" - }, - "event_name": "Random event with nonexisting userId and email", - "data": { - "movieWatched": 3, - "gamesPlayed": 4, - "email": "eventIdn02@sample.com" - }, - "auth_token": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - ], - "destination": { - "Config": { - "authToken": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" - } - }, - "metadata": [ - { - "jobId": 1 - } - ], - "statusCode": 200 - } -] diff --git a/test/__tests__/data/versioned_batch_braze_input.json b/test/__tests__/data/versioned_batch_braze_input.json index 007fd156b35..021217d7bdd 100644 --- a/test/__tests__/data/versioned_batch_braze_input.json +++ b/test/__tests__/data/versioned_batch_braze_input.json @@ -12,7 +12,7 @@ "aliases_to_identify": [ { "user_alias": { - "alias_name": "ruchira", + "alias_name": "rudderstack", "alias_label": "rudder_id" }, "external_id": "03a4d996-4c49-4079-964b-daba14e752a2" @@ -28,7 +28,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -65,7 +65,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -102,7 +102,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -139,7 +139,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -176,7 +176,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -213,7 +213,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -250,7 +250,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -287,7 +287,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -324,7 +324,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -361,7 +361,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -398,7 +398,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -435,7 +435,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -472,7 +472,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -509,7 +509,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -546,7 +546,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -583,7 +583,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -620,7 +620,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -657,7 +657,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -694,7 +694,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -731,7 +731,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -768,7 +768,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -805,7 +805,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -842,7 +842,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -879,7 +879,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -916,7 +916,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -953,7 +953,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -990,7 +990,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1027,7 +1027,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1064,7 +1064,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1101,7 +1101,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1138,7 +1138,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1175,7 +1175,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1212,7 +1212,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1249,7 +1249,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1286,7 +1286,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1323,7 +1323,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1360,7 +1360,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1397,7 +1397,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1434,7 +1434,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1471,7 +1471,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1508,7 +1508,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1545,7 +1545,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1582,7 +1582,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1619,7 +1619,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1656,7 +1656,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1693,7 +1693,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1730,7 +1730,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1767,7 +1767,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1804,7 +1804,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1841,7 +1841,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1878,7 +1878,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1915,7 +1915,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1952,7 +1952,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -1989,7 +1989,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2026,7 +2026,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2063,7 +2063,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2100,7 +2100,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2137,7 +2137,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2174,7 +2174,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2211,7 +2211,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2248,7 +2248,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2285,7 +2285,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2322,7 +2322,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2359,7 +2359,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2396,7 +2396,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2433,7 +2433,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2470,7 +2470,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2507,7 +2507,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2544,7 +2544,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2581,7 +2581,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2618,7 +2618,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2655,7 +2655,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2692,7 +2692,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2729,7 +2729,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2766,7 +2766,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2803,7 +2803,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2840,7 +2840,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2877,7 +2877,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2914,7 +2914,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2951,7 +2951,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -2988,7 +2988,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3025,7 +3025,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3062,7 +3062,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3099,7 +3099,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3136,7 +3136,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3173,7 +3173,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3210,7 +3210,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3247,7 +3247,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3284,7 +3284,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3321,7 +3321,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3358,7 +3358,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3395,7 +3395,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3432,7 +3432,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3469,7 +3469,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3506,7 +3506,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3543,7 +3543,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3580,7 +3580,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3617,7 +3617,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3654,7 +3654,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3691,7 +3691,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3728,7 +3728,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3765,7 +3765,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3802,7 +3802,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" @@ -3839,7 +3839,7 @@ "headers": { "Accept": "application/json", "Content-Type": "application/json", - "Authorization": "Bearer b9a4eded-992d-403f-ba31-974705306c74" + "Authorization": "Bearer dummyApiKey" }, "version": "1", "endpoint": "https://rest.iad-01.braze.com/users/identify" diff --git a/test/__tests__/data/versioned_batch_braze_output.json b/test/__tests__/data/versioned_batch_braze_output.json index 517595cc87b..7b97741b589 100644 --- a/test/__tests__/data/versioned_batch_braze_output.json +++ b/test/__tests__/data/versioned_batch_braze_output.json @@ -17,7 +17,7 @@ "aliases_to_identify": [ { "user_alias": { - "alias_name": "ruchira", + "alias_name": "rudderstack", "alias_label": "rudder_id" }, "external_id": "03a4d996-4c49-4079-964b-daba14e752a2" diff --git a/test/__tests__/data/versioned_processor_algolia_input.json b/test/__tests__/data/versioned_processor_algolia_input.json index 22c75152f61..84e281fac1f 100644 --- a/test/__tests__/data/versioned_processor_algolia_input.json +++ b/test/__tests__/data/versioned_processor_algolia_input.json @@ -59,7 +59,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", + "apiKey": "dummyApiKey", "applicationId": "O2YARRI15I", "eventTypeSettings": [ { @@ -143,7 +143,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", + "apiKey": "dummyApiKey", "applicationId": "O2YARRI15I", "eventTypeSettings": [ { @@ -218,7 +218,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", + "apiKey": "dummyApiKey", "applicationId": "O2YARRI15I", "eventTypeSettings": [] }, @@ -287,7 +287,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", + "apiKey": "dummyApiKey", "applicationId": "O2YARRI15I", "eventTypeSettings": [] }, @@ -366,7 +366,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", + "apiKey": "dummyApiKey", "applicationId": "O2YARRI15I", "eventTypeSettings": [ { @@ -450,7 +450,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", + "apiKey": "dummyApiKey", "applicationId": "O2YARRI15I", "eventTypeSettings": [ { @@ -534,7 +534,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", + "apiKey": "dummyApiKey", "applicationId": "O2YARRI15I", "eventTypeSettings": [ { @@ -618,7 +618,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", + "apiKey": "dummyApiKey", "applicationId": "O2YARRI15I", "eventTypeSettings": [ { @@ -702,7 +702,7 @@ }, "destination": { "Config": { - "apiKey": "34d8efa09c5b048bbacc6af157f2e687", + "apiKey": "dummyApiKey", "applicationId": "O2YARRI15I" }, "DestinationDefinition": { diff --git a/test/__tests__/data/versioned_processor_algolia_output.json b/test/__tests__/data/versioned_processor_algolia_output.json index 1381f116495..224a6c7f557 100644 --- a/test/__tests__/data/versioned_processor_algolia_output.json +++ b/test/__tests__/data/versioned_processor_algolia_output.json @@ -7,7 +7,7 @@ "endpoint": "https://insights.algolia.io/1/events", "headers": { "X-Algolia-Application-Id": "O2YARRI15I", - "X-Algolia-API-Key": "34d8efa09c5b048bbacc6af157f2e687" + "X-Algolia-API-Key": "dummyApiKey" }, "params": {}, "body": { @@ -39,7 +39,7 @@ "endpoint": "https://insights.algolia.io/1/events", "headers": { "X-Algolia-Application-Id": "O2YARRI15I", - "X-Algolia-API-Key": "34d8efa09c5b048bbacc6af157f2e687" + "X-Algolia-API-Key": "dummyApiKey" }, "params": {}, "body": { @@ -103,7 +103,7 @@ "endpoint": "https://insights.algolia.io/1/events", "headers": { "X-Algolia-Application-Id": "O2YARRI15I", - "X-Algolia-API-Key": "34d8efa09c5b048bbacc6af157f2e687" + "X-Algolia-API-Key": "dummyApiKey" }, "params": {}, "body": { diff --git a/test/__tests__/data/versioned_processor_pinterest_tag_input.json b/test/__tests__/data/versioned_processor_pinterest_tag_input.json index bf27cb9eb6e..c424f55d159 100644 --- a/test/__tests__/data/versioned_processor_pinterest_tag_input.json +++ b/test/__tests__/data/versioned_processor_pinterest_tag_input.json @@ -16,8 +16,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -126,8 +126,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -236,8 +236,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -326,8 +326,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -435,8 +435,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -542,8 +542,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -653,8 +653,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -763,8 +763,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -874,8 +874,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -985,8 +985,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1096,8 +1096,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1178,8 +1178,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1260,8 +1260,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -1343,8 +1343,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", diff --git a/test/__tests__/data/versioned_router_pinterest_tag_input.json b/test/__tests__/data/versioned_router_pinterest_tag_input.json index da494f4f29d..b785d7a0931 100644 --- a/test/__tests__/data/versioned_router_pinterest_tag_input.json +++ b/test/__tests__/data/versioned_router_pinterest_tag_input.json @@ -18,8 +18,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -143,8 +143,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -268,8 +268,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -370,8 +370,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -491,8 +491,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", @@ -616,8 +616,8 @@ "phone": "+1234589947", "ge": "male", "db": "19950715", - "lastname": "Ganguly", - "firstName": "Shrouti", + "lastname": "Rudderlabs", + "firstName": "Test", "address": { "city": "Kolkata", "state": "WB", diff --git a/test/__tests__/data/warehouse/events.js b/test/__tests__/data/warehouse/events.js index 4d4e37c3e79..20a6ce89b30 100644 --- a/test/__tests__/data/warehouse/events.js +++ b/test/__tests__/data/warehouse/events.js @@ -6,7 +6,7 @@ const sampleEvents = { input: { destination: { Config: { - restApiKey: "9432f11f70f8ce386f5110c8c924b3ec4f825256", + restApiKey: "dummyApiKey", prefixProperties: true, useNativeSDK: false }, @@ -484,7 +484,7 @@ const sampleEvents = { input: { destination: { Config: { - restApiKey: "9432f11f70f8ce386f5110c8c924b3ec4f825256", + restApiKey: "dummyApiKey", prefixProperties: true, useNativeSDK: false }, @@ -996,7 +996,7 @@ const sampleEvents = { }, destination: { Config: { - restApiKey: "9432f11f70f8ce386f5110c8c924b3ec4f825256", + restApiKey: "dummyApiKey", prefixProperties: true, useNativeSDK: false }, @@ -1209,7 +1209,7 @@ const sampleEvents = { version: "1.0.0" }, traits: { - email: "sayan@gmail.com" + email: "test@rudderstack.com" }, library: { name: "RudderLabs JavaScript SDK", @@ -1305,7 +1305,7 @@ const sampleEvents = { context_app_name: "RudderLabs JavaScript SDK", context_app_namespace: "com.rudderlabs.javascript", context_app_version: "1.0.0", - context_traits_email: "sayan@gmail.com", + context_traits_email: "test@rudderstack.com", context_library_name: "RudderLabs JavaScript SDK", context_library_version: "1.0.0", context_user_agent: @@ -1366,7 +1366,7 @@ const sampleEvents = { CONTEXT_APP_NAME: "RudderLabs JavaScript SDK", CONTEXT_APP_NAMESPACE: "com.rudderlabs.javascript", CONTEXT_APP_VERSION: "1.0.0", - CONTEXT_TRAITS_EMAIL: "sayan@gmail.com", + CONTEXT_TRAITS_EMAIL: "test@rudderstack.com", CONTEXT_LIBRARY_NAME: "RudderLabs JavaScript SDK", CONTEXT_LIBRARY_VERSION: "1.0.0", CONTEXT_USER_AGENT: @@ -1427,7 +1427,7 @@ const sampleEvents = { context_app_name: "RudderLabs JavaScript SDK", context_app_namespace: "com.rudderlabs.javascript", context_app_version: "1.0.0", - context_traits_email: "sayan@gmail.com", + context_traits_email: "test@rudderstack.com", context_library_name: "RudderLabs JavaScript SDK", context_library_version: "1.0.0", context_user_agent: @@ -1463,7 +1463,7 @@ const sampleEvents = { version: "1.0.0" }, traits: { - email: "ruchira@rudderlabs.com" + email: "test@rudderstack.com" }, library: { name: "RudderLabs JavaScript SDK", @@ -1554,7 +1554,7 @@ const sampleEvents = { context_app_name: "RudderLabs JavaScript SDK", context_app_namespace: "com.rudderlabs.javascript", context_app_version: "1.0.0", - context_traits_email: "ruchira@rudderlabs.com", + context_traits_email: "test@rudderstack.com", context_library_name: "RudderLabs JavaScript SDK", context_library_version: "1.0.0", context_user_agent: @@ -1621,7 +1621,7 @@ const sampleEvents = { CONTEXT_APP_NAME: "RudderLabs JavaScript SDK", CONTEXT_APP_NAMESPACE: "com.rudderlabs.javascript", CONTEXT_APP_VERSION: "1.0.0", - CONTEXT_TRAITS_EMAIL: "ruchira@rudderlabs.com", + CONTEXT_TRAITS_EMAIL: "test@rudderstack.com", CONTEXT_LIBRARY_NAME: "RudderLabs JavaScript SDK", CONTEXT_LIBRARY_VERSION: "1.0.0", CONTEXT_USER_AGENT: @@ -1688,7 +1688,7 @@ const sampleEvents = { context_app_name: "RudderLabs JavaScript SDK", context_app_namespace: "com.rudderlabs.javascript", context_app_version: "1.0.0", - context_traits_email: "ruchira@rudderlabs.com", + context_traits_email: "test@rudderstack.com", context_library_name: "RudderLabs JavaScript SDK", context_library_version: "1.0.0", context_user_agent: @@ -1722,7 +1722,7 @@ const sampleEvents = { input: { destination: { Config: { - apiKey: "9432f11f70f8ce386f5110c8c924b3ec4f825256", + apiKey: "dummyApiKey", prefixProperties: true, useNativeSDK: false }, @@ -1986,7 +1986,7 @@ const sampleEvents = { input: { destination: { Config: { - restApiKey: "9432f11f70f8ce386f5110c8c924b3ec4f825256", + restApiKey: "dummyApiKey", prefixProperties: true, useNativeSDK: false }, diff --git a/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/aliases.js b/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/aliases.js new file mode 100644 index 00000000000..ee748a1a2b6 --- /dev/null +++ b/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/aliases.js @@ -0,0 +1,427 @@ +module.exports = { + input: { + destination: { + Config: {} + }, + message: { + anonymousId: "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + channel: "web", + traits: { + city: "Disney", + country: "USA", + email: "mickey@disney.com", + firstname: "Mickey", + testMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + context: { + app: { + build: "1.0.0", + name: "RudderLabs JavaScript SDK", + namespace: "com.rudderlabs.javascript", + version: "1.0.5" + }, + ip: "0.0.0.0", + library: { + name: "RudderLabs JavaScript SDK", + version: "1.0.5" + }, + ctestMap: { + cnestedMap: { + n1: "context nested prop 1" + } + }, + locale: "en-GB", + screen: { + density: 2 + }, + userAgent: + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + integrations: { + All: true, + RS: { + options: { + jsonPaths: [ + "testMap.nestedMap", + "ctestMap.cnestedMap", + ] + } + }, + BQ: { + options: { + jsonPaths: [ + "testMap.nestedMap", + "ctestMap.cnestedMap", + ] + } + }, + POSTGRES: { + options: { + jsonPaths: [ + "testMap.nestedMap", + "ctestMap.cnestedMap", + ] + } + }, + SNOWFLAKE: { + options: { + jsonPaths: [ + "testMap.nestedMap", + "ctestMap.cnestedMap", + ] + } + }, + S3_DATALAKE: { + options: { + skipReservedKeywordsEscaping: true + } + }, + }, + messageId: "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + originalTimestamp: "2020-01-24T06:29:02.364Z", + receivedAt: "2020-01-24T11:59:02.403+05:30", + request_ip: "[::1]:53708", + sentAt: "2020-01-24T06:29:02.364Z", + timestamp: "2020-01-24T11:59:02.403+05:30", + type: "alias", + userId: "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + request: { + query: { + whSchemaVersion: "v1" + } + } + }, + output: { + default: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "city": "Disney", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "city": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "country": "string", + "email": "string", + "firstname": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "aliases" + } + } + ], + rs: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "city": "Disney", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "city": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "country": "string", + "email": "string", + "firstname": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "aliases" + } + } + ], + bq: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "city": "Disney", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "city": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "country": "string", + "email": "string", + "firstname": "string", + "id": "string", + "loaded_at": "datetime", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "aliases" + } + } + ], + postgres: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "city": "Disney", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "city": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "country": "string", + "email": "string", + "firstname": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "aliases" + } + } + ], + snowflake: [ + { + "data": { + "ANONYMOUS_ID": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "CHANNEL": "web", + "CITY": "Disney", + "CONTEXT_APP_BUILD": "1.0.0", + "CONTEXT_APP_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_APP_NAMESPACE": "com.rudderlabs.javascript", + "CONTEXT_APP_VERSION": "1.0.5", + "CONTEXT_CTEST_MAP_CNESTED_MAP_N_1": "context nested prop 1", + "CONTEXT_IP": "0.0.0.0", + "CONTEXT_LIBRARY_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_LIBRARY_VERSION": "1.0.5", + "CONTEXT_LOCALE": "en-GB", + "CONTEXT_PASSED_IP": "0.0.0.0", + "CONTEXT_REQUEST_IP": "[::1]:53708", + "CONTEXT_SCREEN_DENSITY": 2, + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "COUNTRY": "USA", + "EMAIL": "mickey@disney.com", + "FIRSTNAME": "Mickey", + "ID": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "ORIGINAL_TIMESTAMP": "2020-01-24T06:29:02.364Z", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "SENT_AT": "2020-01-24T06:29:02.364Z", + "TEST_MAP_NESTED_MAP_N_1": "nested prop 1", + "TIMESTAMP": "2020-01-24T06:29:02.403Z", + "USER_ID": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "ANONYMOUS_ID": "string", + "CHANNEL": "string", + "CITY": "string", + "CONTEXT_APP_BUILD": "string", + "CONTEXT_APP_NAME": "string", + "CONTEXT_APP_NAMESPACE": "string", + "CONTEXT_APP_VERSION": "string", + "CONTEXT_CTEST_MAP_CNESTED_MAP_N_1": "string", + "CONTEXT_IP": "string", + "CONTEXT_LIBRARY_NAME": "string", + "CONTEXT_LIBRARY_VERSION": "string", + "CONTEXT_LOCALE": "string", + "CONTEXT_PASSED_IP": "string", + "CONTEXT_REQUEST_IP": "string", + "CONTEXT_SCREEN_DENSITY": "int", + "CONTEXT_USER_AGENT": "string", + "COUNTRY": "string", + "EMAIL": "string", + "FIRSTNAME": "string", + "ID": "string", + "ORIGINAL_TIMESTAMP": "datetime", + "RECEIVED_AT": "datetime", + "SENT_AT": "datetime", + "TEST_MAP_NESTED_MAP_N_1": "string", + "TIMESTAMP": "datetime", + "USER_ID": "string", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "ALIASES" + } + } + ], + } +} diff --git a/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/extract.js b/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/extract.js new file mode 100644 index 00000000000..906c3ada231 --- /dev/null +++ b/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/extract.js @@ -0,0 +1,278 @@ +module.exports = { + input: { + destination: { + Config: {} + }, + message: { + anonymousId: "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + channel: "web", + context: { + sources: { + job_id: "djfhksdjhfkjdhfkjahkf", + version: "1169/merge", + job_run_id: "job_run_id", + task_run_id: "task_run_id" + }, + CMap: { + nestedMap: { + n1: "context nested prop 1" + } + }, + userAgent: + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + event: "Product Added", + integrations: { + All: true, + RS: { + options: { + jsonPaths: [ + "PMap.nestedMap", + "CMap.nestedMap", + ] + } + }, + BQ: { + options: { + jsonPaths: [ + "PMap.nestedMap", + "CMap.nestedMap", + ] + } + }, + POSTGRES: { + options: { + jsonPaths: [ + "PMap.nestedMap", + "CMap.nestedMap", + ] + } + }, + SNOWFLAKE: { + options: { + jsonPaths: [ + "PMap.nestedMap", + "CMap.nestedMap", + ] + } + }, + S3_DATALAKE: { + options: { + skipReservedKeywordsEscaping: true + } + }, + }, + recordId: "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + messageId: "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + originalTimestamp: "2020-01-24T06:29:02.364Z", + properties: { + currency: "USD", + revenue: 50, + PMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + type: "extract", + receivedAt: "2020-01-24T11:59:02.403+05:30", + request_ip: "[::1]:53708", + sentAt: "2020-01-24T06:29:02.364Z", + timestamp: "2020-01-24T11:59:02.403+05:30", + userId: "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + request: { + query: { + whSchemaVersion: "v1" + } + } + }, + output: { + default: [ + { + "data": { + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_sources_job_id": "djfhksdjhfkjdhfkjahkf", + "context_sources_job_run_id": "job_run_id", + "context_sources_task_run_id": "task_run_id", + "context_sources_version": "1169/merge", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "event": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "p_map_nested_map_n_1": "nested prop 1", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50 + }, + "metadata": { + "columns": { + "context_c_map_nested_map_n_1": "string", + "context_sources_job_id": "string", + "context_sources_job_run_id": "string", + "context_sources_task_run_id": "string", + "context_sources_version": "string", + "context_user_agent": "string", + "currency": "string", + "event": "string", + "id": "string", + "p_map_nested_map_n_1": "string", + "received_at": "datetime", + "revenue": "int", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "product_added" + } + } + ], + rs: [ + { + "data": { + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_sources_job_id": "djfhksdjhfkjdhfkjahkf", + "context_sources_job_run_id": "job_run_id", + "context_sources_task_run_id": "task_run_id", + "context_sources_version": "1169/merge", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "event": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "p_map_nested_map_n_1": "nested prop 1", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50 + }, + "metadata": { + "columns": { + "context_c_map_nested_map_n_1": "string", + "context_sources_job_id": "string", + "context_sources_job_run_id": "string", + "context_sources_task_run_id": "string", + "context_sources_version": "string", + "context_user_agent": "string", + "currency": "string", + "event": "string", + "id": "string", + "p_map_nested_map_n_1": "string", + "received_at": "datetime", + "revenue": "int", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "product_added" + } + } + ], + bq: [ + { + "data": { + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_sources_job_id": "djfhksdjhfkjdhfkjahkf", + "context_sources_job_run_id": "job_run_id", + "context_sources_task_run_id": "task_run_id", + "context_sources_version": "1169/merge", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "event": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "p_map_nested_map_n_1": "nested prop 1", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50 + }, + "metadata": { + "columns": { + "context_c_map_nested_map_n_1": "string", + "context_sources_job_id": "string", + "context_sources_job_run_id": "string", + "context_sources_task_run_id": "string", + "context_sources_version": "string", + "context_user_agent": "string", + "currency": "string", + "event": "string", + "id": "string", + "loaded_at": "datetime", + "p_map_nested_map_n_1": "string", + "received_at": "datetime", + "revenue": "int", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "product_added" + } + } + ], + postgres: [ + { + "data": { + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_sources_job_id": "djfhksdjhfkjdhfkjahkf", + "context_sources_job_run_id": "job_run_id", + "context_sources_task_run_id": "task_run_id", + "context_sources_version": "1169/merge", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "event": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "p_map_nested_map_n_1": "nested prop 1", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50 + }, + "metadata": { + "columns": { + "context_c_map_nested_map_n_1": "string", + "context_sources_job_id": "string", + "context_sources_job_run_id": "string", + "context_sources_task_run_id": "string", + "context_sources_version": "string", + "context_user_agent": "string", + "currency": "string", + "event": "string", + "id": "string", + "p_map_nested_map_n_1": "string", + "received_at": "datetime", + "revenue": "int", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "product_added" + } + } + ], + snowflake: [ + { + "data": { + "CONTEXT_C_MAP_NESTED_MAP_N_1": "context nested prop 1", + "CONTEXT_SOURCES_JOB_ID": "djfhksdjhfkjdhfkjahkf", + "CONTEXT_SOURCES_JOB_RUN_ID": "job_run_id", + "CONTEXT_SOURCES_TASK_RUN_ID": "task_run_id", + "CONTEXT_SOURCES_VERSION": "1169/merge", + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "CURRENCY": "USD", + "EVENT": "Product Added", + "ID": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "P_MAP_NESTED_MAP_N_1": "nested prop 1", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "REVENUE": 50 + }, + "metadata": { + "columns": { + "CONTEXT_C_MAP_NESTED_MAP_N_1": "string", + "CONTEXT_SOURCES_JOB_ID": "string", + "CONTEXT_SOURCES_JOB_RUN_ID": "string", + "CONTEXT_SOURCES_TASK_RUN_ID": "string", + "CONTEXT_SOURCES_VERSION": "string", + "CONTEXT_USER_AGENT": "string", + "CURRENCY": "string", + "EVENT": "string", + "ID": "string", + "P_MAP_NESTED_MAP_N_1": "string", + "RECEIVED_AT": "datetime", + "REVENUE": "int", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "PRODUCT_ADDED" + } + } + ] + } +} diff --git a/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/groups.js b/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/groups.js new file mode 100644 index 00000000000..13b243f3a7f --- /dev/null +++ b/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/groups.js @@ -0,0 +1,432 @@ +module.exports = { + input: { + destination: { + Config: {} + }, + message: { + anonymousId: "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + channel: "web", + traits: { + city: "Disney", + country: "USA", + email: "mickey@disney.com", + firstname: "Mickey", + testMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + context: { + app: { + build: "1.0.0", + name: "RudderLabs JavaScript SDK", + namespace: "com.rudderlabs.javascript", + version: "1.0.5" + }, + ip: "0.0.0.0", + library: { + name: "RudderLabs JavaScript SDK", + version: "1.0.5" + }, + ctestMap: { + cnestedMap: { + n1: "context nested prop 1" + } + }, + locale: "en-GB", + screen: { + density: 2 + }, + userAgent: + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + integrations: { + All: true, + RS: { + options: { + jsonPaths: [ + "testMap.nestedMap", + "ctestMap.cnestedMap", + ] + } + }, + BQ: { + options: { + jsonPaths: [ + "testMap.nestedMap", + "ctestMap.cnestedMap", + ] + } + }, + POSTGRES: { + options: { + jsonPaths: [ + "testMap.nestedMap", + "ctestMap.cnestedMap", + ] + } + }, + SNOWFLAKE: { + options: { + jsonPaths: [ + "testMap.nestedMap", + "ctestMap.cnestedMap", + ] + } + }, + GCS_DATALAKE: { + options: { + skipReservedKeywordsEscaping: true + } + }, + S3_DATALAKE: { + options: { + skipReservedKeywordsEscaping: true + } + }, + }, + messageId: "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + originalTimestamp: "2020-01-24T06:29:02.364Z", + receivedAt: "2020-01-24T11:59:02.403+05:30", + request_ip: "[::1]:53708", + sentAt: "2020-01-24T06:29:02.364Z", + timestamp: "2020-01-24T11:59:02.403+05:30", + type: "group", + userId: "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + request: { + query: { + whSchemaVersion: "v1" + } + } + }, + output: { + default: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "city": "Disney", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "city": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "country": "string", + "email": "string", + "firstname": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "groups" + } + } + ], + rs: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "city": "Disney", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "city": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "country": "string", + "email": "string", + "firstname": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "groups" + } + } + ], + bq: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "city": "Disney", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "city": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "country": "string", + "email": "string", + "firstname": "string", + "id": "string", + "loaded_at": "datetime", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "_groups" + } + } + ], + postgres: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "city": "Disney", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "city": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "country": "string", + "email": "string", + "firstname": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "groups" + } + } + ], + snowflake: [ + { + "data": { + "ANONYMOUS_ID": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "CHANNEL": "web", + "CITY": "Disney", + "CONTEXT_APP_BUILD": "1.0.0", + "CONTEXT_APP_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_APP_NAMESPACE": "com.rudderlabs.javascript", + "CONTEXT_APP_VERSION": "1.0.5", + "CONTEXT_CTEST_MAP_CNESTED_MAP_N_1": "context nested prop 1", + "CONTEXT_IP": "0.0.0.0", + "CONTEXT_LIBRARY_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_LIBRARY_VERSION": "1.0.5", + "CONTEXT_LOCALE": "en-GB", + "CONTEXT_PASSED_IP": "0.0.0.0", + "CONTEXT_REQUEST_IP": "[::1]:53708", + "CONTEXT_SCREEN_DENSITY": 2, + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "COUNTRY": "USA", + "EMAIL": "mickey@disney.com", + "FIRSTNAME": "Mickey", + "ID": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "ORIGINAL_TIMESTAMP": "2020-01-24T06:29:02.364Z", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "SENT_AT": "2020-01-24T06:29:02.364Z", + "TEST_MAP_NESTED_MAP_N_1": "nested prop 1", + "TIMESTAMP": "2020-01-24T06:29:02.403Z", + "USER_ID": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "ANONYMOUS_ID": "string", + "CHANNEL": "string", + "CITY": "string", + "CONTEXT_APP_BUILD": "string", + "CONTEXT_APP_NAME": "string", + "CONTEXT_APP_NAMESPACE": "string", + "CONTEXT_APP_VERSION": "string", + "CONTEXT_CTEST_MAP_CNESTED_MAP_N_1": "string", + "CONTEXT_IP": "string", + "CONTEXT_LIBRARY_NAME": "string", + "CONTEXT_LIBRARY_VERSION": "string", + "CONTEXT_LOCALE": "string", + "CONTEXT_PASSED_IP": "string", + "CONTEXT_REQUEST_IP": "string", + "CONTEXT_SCREEN_DENSITY": "int", + "CONTEXT_USER_AGENT": "string", + "COUNTRY": "string", + "EMAIL": "string", + "FIRSTNAME": "string", + "ID": "string", + "ORIGINAL_TIMESTAMP": "datetime", + "RECEIVED_AT": "datetime", + "SENT_AT": "datetime", + "TEST_MAP_NESTED_MAP_N_1": "string", + "TIMESTAMP": "datetime", + "USER_ID": "string", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "GROUPS" + } + } + ], + } +} diff --git a/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/identifies.js b/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/identifies.js new file mode 100644 index 00000000000..47b7f1209a9 --- /dev/null +++ b/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/identifies.js @@ -0,0 +1,850 @@ +module.exports = { + input: { + destination: { + Config: {} + }, + message: { + type: "identify", + sentAt: "2021-01-03T17:02:53.195Z", + userId: "user123", + channel: "web", + integrations: { + All: true, + RS: { + options: { + jsonPaths: [ + "UPMap.nestedMap", + "CTMap.nestedMap", + "TMap.nestedMap", + "CMap.nestedMap", + ] + } + }, + BQ: { + options: { + jsonPaths: [ + "UPMap.nestedMap", + "CTMap.nestedMap", + "TMap.nestedMap", + "CMap.nestedMap", + ] + } + }, + POSTGRES: { + options: { + jsonPaths: [ + "UPMap.nestedMap", + "CTMap.nestedMap", + "TMap.nestedMap", + "CMap.nestedMap", + ] + } + }, + SNOWFLAKE: { + options: { + jsonPaths: [ + "UPMap.nestedMap", + "CTMap.nestedMap", + "TMap.nestedMap", + "CMap.nestedMap", + ] + } + }, + S3_DATALAKE: { + options: { + skipReservedKeywordsEscaping: true + } + }, + }, + userProperties: { + email: "test@gmail.com", + UPMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + traits: { + TMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + context: { + os: { + "name": "android", + "version": "1.12.3" + }, + app: { + name: "RudderLabs JavaScript SDK", + build: "1.0.0", + version: "1.1.11", + namespace: "com.rudderlabs.javascript" + }, + traits: { + email: "user123@email.com", + phone: "+917836362334", + userId: "user123", + CTMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + CMap: { + nestedMap: { + n1: "context nested prop 1" + } + }, + locale: "en-US", + device: { + token: "token", + id: "id", + type: "ios" + }, + library: { + name: "RudderLabs JavaScript SDK", + version: "1.1.11" + }, + userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" + }, + rudderId: "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", + messageId: "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", + anonymousId: "97c46c81-3140-456d-b2a9-690d70aaca35", + originalTimestamp: "2020-01-24T06:29:02.364Z", + receivedAt: "2020-01-24T11:59:02.403+05:30", + request_ip: "[::1]:53708", + timestamp: "2020-01-24T11:59:02.403+05:30" + }, + request: { + query: { + whSchemaVersion: "v1" + } + } + }, + output: { + default: [ + { + "data": { + "anonymous_id": "97c46c81-3140-456d-b2a9-690d70aaca35", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.1.11", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_device_id": "id", + "context_device_token": "token", + "context_device_type": "ios", + "context_ip": "[::1]:53708", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.1.11", + "context_locale": "en-US", + "context_os_name": "android", + "context_os_version": "1.12.3", + "context_request_ip": "[::1]:53708", + "context_traits_ct_map_nested_map_n_1": "nested prop 1", + "context_traits_email": "user123@email.com", + "context_traits_phone": "+917836362334", + "context_traits_user_id": "user123", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "ct_map_nested_map_n_1": "nested prop 1", + "email": "user123@email.com", + "id": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "phone": "+917836362334", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2021-01-03T17:02:53.195Z", + "t_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "up_map_nested_map_n_1": "nested prop 1", + "user_id": "user123" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_device_id": "string", + "context_device_token": "string", + "context_device_type": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_os_name": "string", + "context_os_version": "string", + "context_request_ip": "string", + "context_traits_ct_map_nested_map_n_1": "string", + "context_traits_email": "string", + "context_traits_phone": "string", + "context_traits_user_id": "string", + "context_user_agent": "string", + "ct_map_nested_map_n_1": "string", + "email": "string", + "id": "string", + "original_timestamp": "datetime", + "phone": "string", + "received_at": "datetime", + "sent_at": "datetime", + "t_map_nested_map_n_1": "string", + "timestamp": "datetime", + "up_map_nested_map_n_1": "string", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "identifies" + } + }, + { + "data": { + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.1.11", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_device_id": "id", + "context_device_token": "token", + "context_device_type": "ios", + "context_ip": "[::1]:53708", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.1.11", + "context_locale": "en-US", + "context_os_name": "android", + "context_os_version": "1.12.3", + "context_request_ip": "[::1]:53708", + "context_traits_ct_map_nested_map_n_1": "nested prop 1", + "context_traits_email": "user123@email.com", + "context_traits_phone": "+917836362334", + "context_traits_user_id": "user123", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "ct_map_nested_map_n_1": "nested prop 1", + "email": "user123@email.com", + "id": "user123", + "phone": "+917836362334", + "received_at": "2020-01-24T06:29:02.403Z", + "t_map_nested_map_n_1": "nested prop 1", + "up_map_nested_map_n_1": "nested prop 1" + }, + "metadata": { + "columns": { + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_device_id": "string", + "context_device_token": "string", + "context_device_type": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_os_name": "string", + "context_os_version": "string", + "context_request_ip": "string", + "context_traits_ct_map_nested_map_n_1": "string", + "context_traits_email": "string", + "context_traits_phone": "string", + "context_traits_user_id": "string", + "context_user_agent": "string", + "ct_map_nested_map_n_1": "string", + "email": "string", + "id": "string", + "phone": "string", + "received_at": "datetime", + "t_map_nested_map_n_1": "string", + "up_map_nested_map_n_1": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "users" + } + } + ], + rs: [ + { + "data": { + "anonymous_id": "97c46c81-3140-456d-b2a9-690d70aaca35", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.1.11", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_device_id": "id", + "context_device_token": "token", + "context_device_type": "ios", + "context_ip": "[::1]:53708", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.1.11", + "context_locale": "en-US", + "context_os_name": "android", + "context_os_version": "1.12.3", + "context_request_ip": "[::1]:53708", + "context_traits_ct_map_nested_map_n_1": "nested prop 1", + "context_traits_email": "user123@email.com", + "context_traits_phone": "+917836362334", + "context_traits_user_id": "user123", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "ct_map_nested_map_n_1": "nested prop 1", + "email": "user123@email.com", + "id": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "phone": "+917836362334", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2021-01-03T17:02:53.195Z", + "t_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "up_map_nested_map_n_1": "nested prop 1", + "user_id": "user123" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_device_id": "string", + "context_device_token": "string", + "context_device_type": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_os_name": "string", + "context_os_version": "string", + "context_request_ip": "string", + "context_traits_ct_map_nested_map_n_1": "string", + "context_traits_email": "string", + "context_traits_phone": "string", + "context_traits_user_id": "string", + "context_user_agent": "string", + "ct_map_nested_map_n_1": "string", + "email": "string", + "id": "string", + "original_timestamp": "datetime", + "phone": "string", + "received_at": "datetime", + "sent_at": "datetime", + "t_map_nested_map_n_1": "string", + "timestamp": "datetime", + "up_map_nested_map_n_1": "string", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "identifies" + } + }, + { + "data": { + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.1.11", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_device_id": "id", + "context_device_token": "token", + "context_device_type": "ios", + "context_ip": "[::1]:53708", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.1.11", + "context_locale": "en-US", + "context_os_name": "android", + "context_os_version": "1.12.3", + "context_request_ip": "[::1]:53708", + "context_traits_ct_map_nested_map_n_1": "nested prop 1", + "context_traits_email": "user123@email.com", + "context_traits_phone": "+917836362334", + "context_traits_user_id": "user123", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "ct_map_nested_map_n_1": "nested prop 1", + "email": "user123@email.com", + "id": "user123", + "phone": "+917836362334", + "received_at": "2020-01-24T06:29:02.403Z", + "t_map_nested_map_n_1": "nested prop 1", + "up_map_nested_map_n_1": "nested prop 1" + }, + "metadata": { + "columns": { + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_device_id": "string", + "context_device_token": "string", + "context_device_type": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_os_name": "string", + "context_os_version": "string", + "context_request_ip": "string", + "context_traits_ct_map_nested_map_n_1": "string", + "context_traits_email": "string", + "context_traits_phone": "string", + "context_traits_user_id": "string", + "context_user_agent": "string", + "ct_map_nested_map_n_1": "string", + "email": "string", + "id": "string", + "phone": "string", + "received_at": "datetime", + "t_map_nested_map_n_1": "string", + "up_map_nested_map_n_1": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "users" + } + } + ], + bq: [ + { + "data": { + "anonymous_id": "97c46c81-3140-456d-b2a9-690d70aaca35", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.1.11", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_device_id": "id", + "context_device_token": "token", + "context_device_type": "ios", + "context_ip": "[::1]:53708", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.1.11", + "context_locale": "en-US", + "context_os_name": "android", + "context_os_version": "1.12.3", + "context_request_ip": "[::1]:53708", + "context_traits_ct_map_nested_map_n_1": "nested prop 1", + "context_traits_email": "user123@email.com", + "context_traits_phone": "+917836362334", + "context_traits_user_id": "user123", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "ct_map_nested_map_n_1": "nested prop 1", + "email": "user123@email.com", + "id": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "phone": "+917836362334", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2021-01-03T17:02:53.195Z", + "t_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "up_map_nested_map_n_1": "nested prop 1", + "user_id": "user123" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_device_id": "string", + "context_device_token": "string", + "context_device_type": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_os_name": "string", + "context_os_version": "string", + "context_request_ip": "string", + "context_traits_ct_map_nested_map_n_1": "string", + "context_traits_email": "string", + "context_traits_phone": "string", + "context_traits_user_id": "string", + "context_user_agent": "string", + "ct_map_nested_map_n_1": "string", + "email": "string", + "id": "string", + "loaded_at": "datetime", + "original_timestamp": "datetime", + "phone": "string", + "received_at": "datetime", + "sent_at": "datetime", + "t_map_nested_map_n_1": "string", + "timestamp": "datetime", + "up_map_nested_map_n_1": "string", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "identifies" + } + }, + { + "data": { + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.1.11", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_device_id": "id", + "context_device_token": "token", + "context_device_type": "ios", + "context_ip": "[::1]:53708", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.1.11", + "context_locale": "en-US", + "context_os_name": "android", + "context_os_version": "1.12.3", + "context_request_ip": "[::1]:53708", + "context_traits_ct_map_nested_map_n_1": "nested prop 1", + "context_traits_email": "user123@email.com", + "context_traits_phone": "+917836362334", + "context_traits_user_id": "user123", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "ct_map_nested_map_n_1": "nested prop 1", + "email": "user123@email.com", + "id": "user123", + "phone": "+917836362334", + "received_at": "2020-01-24T06:29:02.403Z", + "t_map_nested_map_n_1": "nested prop 1", + "up_map_nested_map_n_1": "nested prop 1" + }, + "metadata": { + "columns": { + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_device_id": "string", + "context_device_token": "string", + "context_device_type": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_os_name": "string", + "context_os_version": "string", + "context_request_ip": "string", + "context_traits_ct_map_nested_map_n_1": "string", + "context_traits_email": "string", + "context_traits_phone": "string", + "context_traits_user_id": "string", + "context_user_agent": "string", + "ct_map_nested_map_n_1": "string", + "email": "string", + "id": "string", + "loaded_at": "datetime", + "phone": "string", + "received_at": "datetime", + "t_map_nested_map_n_1": "string", + "up_map_nested_map_n_1": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "users" + } + } + ], + postgres: [ + { + "data": { + "anonymous_id": "97c46c81-3140-456d-b2a9-690d70aaca35", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.1.11", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_device_id": "id", + "context_device_token": "token", + "context_device_type": "ios", + "context_ip": "[::1]:53708", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.1.11", + "context_locale": "en-US", + "context_os_name": "android", + "context_os_version": "1.12.3", + "context_request_ip": "[::1]:53708", + "context_traits_ct_map_nested_map_n_1": "nested prop 1", + "context_traits_email": "user123@email.com", + "context_traits_phone": "+917836362334", + "context_traits_user_id": "user123", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "ct_map_nested_map_n_1": "nested prop 1", + "email": "user123@email.com", + "id": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "phone": "+917836362334", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2021-01-03T17:02:53.195Z", + "t_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "up_map_nested_map_n_1": "nested prop 1", + "user_id": "user123" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_device_id": "string", + "context_device_token": "string", + "context_device_type": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_os_name": "string", + "context_os_version": "string", + "context_request_ip": "string", + "context_traits_ct_map_nested_map_n_1": "string", + "context_traits_email": "string", + "context_traits_phone": "string", + "context_traits_user_id": "string", + "context_user_agent": "string", + "ct_map_nested_map_n_1": "string", + "email": "string", + "id": "string", + "original_timestamp": "datetime", + "phone": "string", + "received_at": "datetime", + "sent_at": "datetime", + "t_map_nested_map_n_1": "string", + "timestamp": "datetime", + "up_map_nested_map_n_1": "string", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "identifies" + } + }, + { + "data": { + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.1.11", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_device_id": "id", + "context_device_token": "token", + "context_device_type": "ios", + "context_ip": "[::1]:53708", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.1.11", + "context_locale": "en-US", + "context_os_name": "android", + "context_os_version": "1.12.3", + "context_request_ip": "[::1]:53708", + "context_traits_ct_map_nested_map_n_1": "nested prop 1", + "context_traits_email": "user123@email.com", + "context_traits_phone": "+917836362334", + "context_traits_user_id": "user123", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "ct_map_nested_map_n_1": "nested prop 1", + "email": "user123@email.com", + "id": "user123", + "phone": "+917836362334", + "received_at": "2020-01-24T06:29:02.403Z", + "t_map_nested_map_n_1": "nested prop 1", + "up_map_nested_map_n_1": "nested prop 1" + }, + "metadata": { + "columns": { + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_device_id": "string", + "context_device_token": "string", + "context_device_type": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_os_name": "string", + "context_os_version": "string", + "context_request_ip": "string", + "context_traits_ct_map_nested_map_n_1": "string", + "context_traits_email": "string", + "context_traits_phone": "string", + "context_traits_user_id": "string", + "context_user_agent": "string", + "ct_map_nested_map_n_1": "string", + "email": "string", + "id": "string", + "phone": "string", + "received_at": "datetime", + "t_map_nested_map_n_1": "string", + "up_map_nested_map_n_1": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "users" + } + } + ], + snowflake: [ + { + "data": { + "ANONYMOUS_ID": "97c46c81-3140-456d-b2a9-690d70aaca35", + "CHANNEL": "web", + "CONTEXT_APP_BUILD": "1.0.0", + "CONTEXT_APP_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_APP_NAMESPACE": "com.rudderlabs.javascript", + "CONTEXT_APP_VERSION": "1.1.11", + "CONTEXT_C_MAP_NESTED_MAP_N_1": "context nested prop 1", + "CONTEXT_DEVICE_ID": "id", + "CONTEXT_DEVICE_TOKEN": "token", + "CONTEXT_DEVICE_TYPE": "ios", + "CONTEXT_IP": "[::1]:53708", + "CONTEXT_LIBRARY_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_LIBRARY_VERSION": "1.1.11", + "CONTEXT_LOCALE": "en-US", + "CONTEXT_OS_NAME": "android", + "CONTEXT_OS_VERSION": "1.12.3", + "CONTEXT_REQUEST_IP": "[::1]:53708", + "CONTEXT_TRAITS_CT_MAP_NESTED_MAP_N_1": "nested prop 1", + "CONTEXT_TRAITS_EMAIL": "user123@email.com", + "CONTEXT_TRAITS_PHONE": "+917836362334", + "CONTEXT_TRAITS_USER_ID": "user123", + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "CT_MAP_NESTED_MAP_N_1": "nested prop 1", + "EMAIL": "user123@email.com", + "ID": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", + "ORIGINAL_TIMESTAMP": "2020-01-24T06:29:02.364Z", + "PHONE": "+917836362334", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "SENT_AT": "2021-01-03T17:02:53.195Z", + "TIMESTAMP": "2020-01-24T06:29:02.403Z", + "T_MAP_NESTED_MAP_N_1": "nested prop 1", + "UP_MAP_NESTED_MAP_N_1": "nested prop 1", + "USER_ID": "user123" + }, + "metadata": { + "columns": { + "ANONYMOUS_ID": "string", + "CHANNEL": "string", + "CONTEXT_APP_BUILD": "string", + "CONTEXT_APP_NAME": "string", + "CONTEXT_APP_NAMESPACE": "string", + "CONTEXT_APP_VERSION": "string", + "CONTEXT_C_MAP_NESTED_MAP_N_1": "string", + "CONTEXT_DEVICE_ID": "string", + "CONTEXT_DEVICE_TOKEN": "string", + "CONTEXT_DEVICE_TYPE": "string", + "CONTEXT_IP": "string", + "CONTEXT_LIBRARY_NAME": "string", + "CONTEXT_LIBRARY_VERSION": "string", + "CONTEXT_LOCALE": "string", + "CONTEXT_OS_NAME": "string", + "CONTEXT_OS_VERSION": "string", + "CONTEXT_REQUEST_IP": "string", + "CONTEXT_TRAITS_CT_MAP_NESTED_MAP_N_1": "string", + "CONTEXT_TRAITS_EMAIL": "string", + "CONTEXT_TRAITS_PHONE": "string", + "CONTEXT_TRAITS_USER_ID": "string", + "CONTEXT_USER_AGENT": "string", + "CT_MAP_NESTED_MAP_N_1": "string", + "EMAIL": "string", + "ID": "string", + "ORIGINAL_TIMESTAMP": "datetime", + "PHONE": "string", + "RECEIVED_AT": "datetime", + "SENT_AT": "datetime", + "TIMESTAMP": "datetime", + "T_MAP_NESTED_MAP_N_1": "string", + "UP_MAP_NESTED_MAP_N_1": "string", + "USER_ID": "string", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "IDENTIFIES" + } + }, + { + "data": { + "CONTEXT_APP_BUILD": "1.0.0", + "CONTEXT_APP_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_APP_NAMESPACE": "com.rudderlabs.javascript", + "CONTEXT_APP_VERSION": "1.1.11", + "CONTEXT_C_MAP_NESTED_MAP_N_1": "context nested prop 1", + "CONTEXT_DEVICE_ID": "id", + "CONTEXT_DEVICE_TOKEN": "token", + "CONTEXT_DEVICE_TYPE": "ios", + "CONTEXT_IP": "[::1]:53708", + "CONTEXT_LIBRARY_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_LIBRARY_VERSION": "1.1.11", + "CONTEXT_LOCALE": "en-US", + "CONTEXT_OS_NAME": "android", + "CONTEXT_OS_VERSION": "1.12.3", + "CONTEXT_REQUEST_IP": "[::1]:53708", + "CONTEXT_TRAITS_CT_MAP_NESTED_MAP_N_1": "nested prop 1", + "CONTEXT_TRAITS_EMAIL": "user123@email.com", + "CONTEXT_TRAITS_PHONE": "+917836362334", + "CONTEXT_TRAITS_USER_ID": "user123", + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "CT_MAP_NESTED_MAP_N_1": "nested prop 1", + "EMAIL": "user123@email.com", + "ID": "user123", + "PHONE": "+917836362334", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "T_MAP_NESTED_MAP_N_1": "nested prop 1", + "UP_MAP_NESTED_MAP_N_1": "nested prop 1" + }, + "metadata": { + "columns": { + "CONTEXT_APP_BUILD": "string", + "CONTEXT_APP_NAME": "string", + "CONTEXT_APP_NAMESPACE": "string", + "CONTEXT_APP_VERSION": "string", + "CONTEXT_C_MAP_NESTED_MAP_N_1": "string", + "CONTEXT_DEVICE_ID": "string", + "CONTEXT_DEVICE_TOKEN": "string", + "CONTEXT_DEVICE_TYPE": "string", + "CONTEXT_IP": "string", + "CONTEXT_LIBRARY_NAME": "string", + "CONTEXT_LIBRARY_VERSION": "string", + "CONTEXT_LOCALE": "string", + "CONTEXT_OS_NAME": "string", + "CONTEXT_OS_VERSION": "string", + "CONTEXT_REQUEST_IP": "string", + "CONTEXT_TRAITS_CT_MAP_NESTED_MAP_N_1": "string", + "CONTEXT_TRAITS_EMAIL": "string", + "CONTEXT_TRAITS_PHONE": "string", + "CONTEXT_TRAITS_USER_ID": "string", + "CONTEXT_USER_AGENT": "string", + "CT_MAP_NESTED_MAP_N_1": "string", + "EMAIL": "string", + "ID": "string", + "PHONE": "string", + "RECEIVED_AT": "datetime", + "T_MAP_NESTED_MAP_N_1": "string", + "UP_MAP_NESTED_MAP_N_1": "string", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "USERS" + } + } + ], + } +} diff --git a/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/pages.js b/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/pages.js new file mode 100644 index 00000000000..0aac8a3c236 --- /dev/null +++ b/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/pages.js @@ -0,0 +1,405 @@ +module.exports = { + input: { + destination: { + Config: {} + }, + message: { + anonymousId: "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + channel: "web", + context: { + app: { + build: "1.0.0", + name: "RudderLabs JavaScript SDK", + namespace: "com.rudderlabs.javascript", + version: "1.0.5" + }, + ip: "0.0.0.0", + library: { + name: "RudderLabs JavaScript SDK", + version: "1.0.5" + }, + ctestMap: { + cnestedMap: { + n1: "context nested prop 1" + } + }, + locale: "en-GB", + screen: { + density: 2 + }, + userAgent: + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + integrations: { + All: true, + RS: { + options: { + jsonPaths: [ + "testMap.nestedMap", + "ctestMap.cnestedMap", + ] + } + }, + BQ: { + options: { + jsonPaths: [ + "testMap.nestedMap", + "ctestMap.cnestedMap", + ] + } + }, + POSTGRES: { + options: { + jsonPaths: [ + "testMap.nestedMap", + "ctestMap.cnestedMap", + ] + } + }, + SNOWFLAKE: { + options: { + jsonPaths: [ + "testMap.nestedMap", + "ctestMap.cnestedMap", + ] + } + }, + S3_DATALAKE: { + options: { + skipReservedKeywordsEscaping: true + } + }, + }, + messageId: "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + originalTimestamp: "2020-01-24T06:29:02.364Z", + properties: { + currency: "USD", + revenue: 50, + testMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + receivedAt: "2020-01-24T11:59:02.403+05:30", + request_ip: "[::1]:53708", + sentAt: "2020-01-24T06:29:02.364Z", + timestamp: "2020-01-24T11:59:02.403+05:30", + type: "page", + userId: "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + request: { + query: { + whSchemaVersion: "v1" + } + } + }, + output: { + default: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "currency": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "pages" + } + } + ], + rs: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "currency": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "pages" + } + } + ], + bq: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "currency": "string", + "id": "string", + "loaded_at": "datetime", + "original_timestamp": "datetime", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "pages" + } + } + ], + postgres: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "currency": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "pages" + } + } + ], + snowflake: [ + { + "data": { + "ANONYMOUS_ID": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "CHANNEL": "web", + "CONTEXT_APP_BUILD": "1.0.0", + "CONTEXT_APP_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_APP_NAMESPACE": "com.rudderlabs.javascript", + "CONTEXT_APP_VERSION": "1.0.5", + "CONTEXT_CTEST_MAP_CNESTED_MAP_N_1": "context nested prop 1", + "CONTEXT_IP": "0.0.0.0", + "CONTEXT_LIBRARY_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_LIBRARY_VERSION": "1.0.5", + "CONTEXT_LOCALE": "en-GB", + "CONTEXT_PASSED_IP": "0.0.0.0", + "CONTEXT_REQUEST_IP": "[::1]:53708", + "CONTEXT_SCREEN_DENSITY": 2, + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "CURRENCY": "USD", + "ID": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "ORIGINAL_TIMESTAMP": "2020-01-24T06:29:02.364Z", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "REVENUE": 50, + "SENT_AT": "2020-01-24T06:29:02.364Z", + "TEST_MAP_NESTED_MAP_N_1": "nested prop 1", + "TIMESTAMP": "2020-01-24T06:29:02.403Z", + "USER_ID": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "ANONYMOUS_ID": "string", + "CHANNEL": "string", + "CONTEXT_APP_BUILD": "string", + "CONTEXT_APP_NAME": "string", + "CONTEXT_APP_NAMESPACE": "string", + "CONTEXT_APP_VERSION": "string", + "CONTEXT_CTEST_MAP_CNESTED_MAP_N_1": "string", + "CONTEXT_IP": "string", + "CONTEXT_LIBRARY_NAME": "string", + "CONTEXT_LIBRARY_VERSION": "string", + "CONTEXT_LOCALE": "string", + "CONTEXT_PASSED_IP": "string", + "CONTEXT_REQUEST_IP": "string", + "CONTEXT_SCREEN_DENSITY": "int", + "CONTEXT_USER_AGENT": "string", + "CURRENCY": "string", + "ID": "string", + "ORIGINAL_TIMESTAMP": "datetime", + "RECEIVED_AT": "datetime", + "REVENUE": "int", + "SENT_AT": "datetime", + "TEST_MAP_NESTED_MAP_N_1": "string", + "TIMESTAMP": "datetime", + "USER_ID": "string", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "PAGES" + } + } + ], + } +} diff --git a/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/screens.js b/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/screens.js new file mode 100644 index 00000000000..bad325c9084 --- /dev/null +++ b/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/screens.js @@ -0,0 +1,405 @@ +module.exports = { + input: { + destination: { + Config: {} + }, + message: { + anonymousId: "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + channel: "web", + context: { + app: { + build: "1.0.0", + name: "RudderLabs JavaScript SDK", + namespace: "com.rudderlabs.javascript", + version: "1.0.5" + }, + ip: "0.0.0.0", + library: { + name: "RudderLabs JavaScript SDK", + version: "1.0.5" + }, + ctestMap: { + cnestedMap: { + n1: "context nested prop 1" + } + }, + locale: "en-GB", + screen: { + density: 2 + }, + userAgent: + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + integrations: { + All: true, + RS: { + options: { + jsonPaths: [ + "testMap.nestedMap", + ".ctestMap.cnestedMap", + ] + } + }, + BQ: { + options: { + jsonPaths: [ + "testMap.nestedMap", + ".ctestMap.cnestedMap", + ] + } + }, + POSTGRES: { + options: { + jsonPaths: [ + "testMap.nestedMap", + ".ctestMap.cnestedMap", + ] + } + }, + SNOWFLAKE: { + options: { + jsonPaths: [ + "testMap.nestedMap", + ".ctestMap.cnestedMap", + ] + } + }, + S3_DATALAKE: { + options: { + skipReservedKeywordsEscaping: true + } + }, + }, + messageId: "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + originalTimestamp: "2020-01-24T06:29:02.364Z", + properties: { + currency: "USD", + revenue: 50, + testMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + receivedAt: "2020-01-24T11:59:02.403+05:30", + request_ip: "[::1]:53708", + sentAt: "2020-01-24T06:29:02.364Z", + timestamp: "2020-01-24T11:59:02.403+05:30", + type: "screen", + userId: "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + request: { + query: { + whSchemaVersion: "v1" + } + } + }, + output: { + default: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "currency": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "screens" + } + } + ], + rs: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "currency": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "screens" + } + } + ], + bq: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "currency": "string", + "id": "string", + "loaded_at": "datetime", + "original_timestamp": "datetime", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "screens" + } + } + ], + postgres: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "currency": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "screens" + } + } + ], + snowflake: [ + { + "data": { + "ANONYMOUS_ID": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "CHANNEL": "web", + "CONTEXT_APP_BUILD": "1.0.0", + "CONTEXT_APP_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_APP_NAMESPACE": "com.rudderlabs.javascript", + "CONTEXT_APP_VERSION": "1.0.5", + "CONTEXT_CTEST_MAP_CNESTED_MAP_N_1": "context nested prop 1", + "CONTEXT_IP": "0.0.0.0", + "CONTEXT_LIBRARY_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_LIBRARY_VERSION": "1.0.5", + "CONTEXT_LOCALE": "en-GB", + "CONTEXT_PASSED_IP": "0.0.0.0", + "CONTEXT_REQUEST_IP": "[::1]:53708", + "CONTEXT_SCREEN_DENSITY": 2, + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "CURRENCY": "USD", + "ID": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "ORIGINAL_TIMESTAMP": "2020-01-24T06:29:02.364Z", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "REVENUE": 50, + "SENT_AT": "2020-01-24T06:29:02.364Z", + "TEST_MAP_NESTED_MAP_N_1": "nested prop 1", + "TIMESTAMP": "2020-01-24T06:29:02.403Z", + "USER_ID": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "ANONYMOUS_ID": "string", + "CHANNEL": "string", + "CONTEXT_APP_BUILD": "string", + "CONTEXT_APP_NAME": "string", + "CONTEXT_APP_NAMESPACE": "string", + "CONTEXT_APP_VERSION": "string", + "CONTEXT_CTEST_MAP_CNESTED_MAP_N_1": "string", + "CONTEXT_IP": "string", + "CONTEXT_LIBRARY_NAME": "string", + "CONTEXT_LIBRARY_VERSION": "string", + "CONTEXT_LOCALE": "string", + "CONTEXT_PASSED_IP": "string", + "CONTEXT_REQUEST_IP": "string", + "CONTEXT_SCREEN_DENSITY": "int", + "CONTEXT_USER_AGENT": "string", + "CURRENCY": "string", + "ID": "string", + "ORIGINAL_TIMESTAMP": "datetime", + "RECEIVED_AT": "datetime", + "REVENUE": "int", + "SENT_AT": "datetime", + "TEST_MAP_NESTED_MAP_N_1": "string", + "TIMESTAMP": "datetime", + "USER_ID": "string", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "SCREENS" + } + } + ], + } +} diff --git a/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/tracks.js b/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/tracks.js new file mode 100644 index 00000000000..5070284e99d --- /dev/null +++ b/test/__tests__/data/warehouse/integrations/jsonpaths/legacy/tracks.js @@ -0,0 +1,830 @@ +module.exports = { + input: { + destination: { + Config: {} + }, + message: { + anonymousId: "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + channel: "web", + context: { + app: { + build: "1.0.0", + name: "RudderLabs JavaScript SDK", + namespace: "com.rudderlabs.javascript", + version: "1.0.5" + }, + ip: "0.0.0.0", + library: { + name: "RudderLabs JavaScript SDK", + version: "1.0.5" + }, + locale: "en-GB", + screen: { + density: 2 + }, + traits: { + city: "Disney", + country: "USA", + email: "mickey@disney.com", + firstname: "Mickey" + }, + CMap: { + nestedMap: { + n1: "context nested prop 1" + } + }, + userAgent: + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + event: "Product Added", + integrations: { + All: true, + RS: { + options: { + jsonPaths: [ + "UPMap.nestedMap", + "PMap.nestedMap", + "CMap.nestedMap", + ] + } + }, + BQ: { + options: { + jsonPaths: [ + "UPMap.nestedMap", + "PMap.nestedMap", + "CMap.nestedMap", + ] + } + }, + POSTGRES: { + options: { + jsonPaths: [ + "UPMap.nestedMap", + "PMap.nestedMap", + "CMap.nestedMap", + ] + } + }, + SNOWFLAKE: { + options: { + jsonPaths: [ + "UPMap.nestedMap", + "PMap.nestedMap", + "CMap.nestedMap", + ] + } + }, + S3_DATALAKE: { + options: { + skipReservedKeywordsEscaping: true + } + }, + }, + messageId: "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + originalTimestamp: "2020-01-24T06:29:02.364Z", + userProperties: { + email: "test@gmail.com", + UPMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + properties: { + currency: "USD", + revenue: 50, + PMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + receivedAt: "2020-01-24T11:59:02.403+05:30", + request_ip: "[::1]:53708", + sentAt: "2020-01-24T06:29:02.364Z", + timestamp: "2020-01-24T11:59:02.403+05:30", + type: "track", + userId: "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + request: { + query: { + whSchemaVersion: "v1" + } + } + }, + output: { + default: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_traits_city": "Disney", + "context_traits_country": "USA", + "context_traits_email": "mickey@disney.com", + "context_traits_firstname": "Mickey", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "event": "product_added", + "event_text": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_traits_city": "string", + "context_traits_country": "string", + "context_traits_email": "string", + "context_traits_firstname": "string", + "context_user_agent": "string", + "event": "string", + "event_text": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "tracks" + } + }, + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_traits_city": "Disney", + "context_traits_country": "USA", + "context_traits_email": "mickey@disney.com", + "context_traits_firstname": "Mickey", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "email": "test@gmail.com", + "event": "product_added", + "event_text": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "p_map_nested_map_n_1": "nested prop 1", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "timestamp": "2020-01-24T06:29:02.403Z", + "up_map_nested_map_n_1": "nested prop 1", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_traits_city": "string", + "context_traits_country": "string", + "context_traits_email": "string", + "context_traits_firstname": "string", + "context_user_agent": "string", + "currency": "string", + "email": "string", + "event": "string", + "event_text": "string", + "id": "string", + "original_timestamp": "datetime", + "p_map_nested_map_n_1": "string", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "timestamp": "datetime", + "up_map_nested_map_n_1": "string", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "product_added" + } + } + ], + rs: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_traits_city": "Disney", + "context_traits_country": "USA", + "context_traits_email": "mickey@disney.com", + "context_traits_firstname": "Mickey", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "event": "product_added", + "event_text": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_traits_city": "string", + "context_traits_country": "string", + "context_traits_email": "string", + "context_traits_firstname": "string", + "context_user_agent": "string", + "event": "string", + "event_text": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "tracks" + } + }, + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_traits_city": "Disney", + "context_traits_country": "USA", + "context_traits_email": "mickey@disney.com", + "context_traits_firstname": "Mickey", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "email": "test@gmail.com", + "event": "product_added", + "event_text": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "p_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "timestamp": "2020-01-24T06:29:02.403Z", + "up_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_traits_city": "string", + "context_traits_country": "string", + "context_traits_email": "string", + "context_traits_firstname": "string", + "context_user_agent": "string", + "currency": "string", + "email": "string", + "event": "string", + "event_text": "string", + "id": "string", + "original_timestamp": "datetime", + "p_map_nested_map": "json", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "timestamp": "datetime", + "up_map_nested_map": "json", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "product_added" + } + } + ], + bq: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_traits_city": "Disney", + "context_traits_country": "USA", + "context_traits_email": "mickey@disney.com", + "context_traits_firstname": "Mickey", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "event": "product_added", + "event_text": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_traits_city": "string", + "context_traits_country": "string", + "context_traits_email": "string", + "context_traits_firstname": "string", + "context_user_agent": "string", + "event": "string", + "event_text": "string", + "id": "string", + "loaded_at": "datetime", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "tracks" + } + }, + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_traits_city": "Disney", + "context_traits_country": "USA", + "context_traits_email": "mickey@disney.com", + "context_traits_firstname": "Mickey", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "email": "test@gmail.com", + "event": "product_added", + "event_text": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "p_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "timestamp": "2020-01-24T06:29:02.403Z", + "up_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_traits_city": "string", + "context_traits_country": "string", + "context_traits_email": "string", + "context_traits_firstname": "string", + "context_user_agent": "string", + "currency": "string", + "email": "string", + "event": "string", + "event_text": "string", + "id": "string", + "loaded_at": "datetime", + "original_timestamp": "datetime", + "p_map_nested_map": "string", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "timestamp": "datetime", + "up_map_nested_map": "string", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "product_added" + } + } + ], + postgres: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_traits_city": "Disney", + "context_traits_country": "USA", + "context_traits_email": "mickey@disney.com", + "context_traits_firstname": "Mickey", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "event": "product_added", + "event_text": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_traits_city": "string", + "context_traits_country": "string", + "context_traits_email": "string", + "context_traits_firstname": "string", + "context_user_agent": "string", + "event": "string", + "event_text": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "tracks" + } + }, + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_traits_city": "Disney", + "context_traits_country": "USA", + "context_traits_email": "mickey@disney.com", + "context_traits_firstname": "Mickey", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "email": "test@gmail.com", + "event": "product_added", + "event_text": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "p_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "timestamp": "2020-01-24T06:29:02.403Z", + "up_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_traits_city": "string", + "context_traits_country": "string", + "context_traits_email": "string", + "context_traits_firstname": "string", + "context_user_agent": "string", + "currency": "string", + "email": "string", + "event": "string", + "event_text": "string", + "id": "string", + "original_timestamp": "datetime", + "p_map_nested_map": "json", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "timestamp": "datetime", + "up_map_nested_map": "json", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "product_added" + } + } + ], + snowflake: [ + { + "data": { + "ANONYMOUS_ID": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "CHANNEL": "web", + "CONTEXT_APP_BUILD": "1.0.0", + "CONTEXT_APP_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_APP_NAMESPACE": "com.rudderlabs.javascript", + "CONTEXT_APP_VERSION": "1.0.5", + "CONTEXT_C_MAP_NESTED_MAP_N_1": "context nested prop 1", + "CONTEXT_IP": "0.0.0.0", + "CONTEXT_LIBRARY_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_LIBRARY_VERSION": "1.0.5", + "CONTEXT_LOCALE": "en-GB", + "CONTEXT_PASSED_IP": "0.0.0.0", + "CONTEXT_REQUEST_IP": "[::1]:53708", + "CONTEXT_SCREEN_DENSITY": 2, + "CONTEXT_TRAITS_CITY": "Disney", + "CONTEXT_TRAITS_COUNTRY": "USA", + "CONTEXT_TRAITS_EMAIL": "mickey@disney.com", + "CONTEXT_TRAITS_FIRSTNAME": "Mickey", + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "EVENT": "product_added", + "EVENT_TEXT": "Product Added", + "ID": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "ORIGINAL_TIMESTAMP": "2020-01-24T06:29:02.364Z", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "SENT_AT": "2020-01-24T06:29:02.364Z", + "TIMESTAMP": "2020-01-24T06:29:02.403Z", + "USER_ID": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "ANONYMOUS_ID": "string", + "CHANNEL": "string", + "CONTEXT_APP_BUILD": "string", + "CONTEXT_APP_NAME": "string", + "CONTEXT_APP_NAMESPACE": "string", + "CONTEXT_APP_VERSION": "string", + "CONTEXT_C_MAP_NESTED_MAP_N_1": "string", + "CONTEXT_IP": "string", + "CONTEXT_LIBRARY_NAME": "string", + "CONTEXT_LIBRARY_VERSION": "string", + "CONTEXT_LOCALE": "string", + "CONTEXT_PASSED_IP": "string", + "CONTEXT_REQUEST_IP": "string", + "CONTEXT_SCREEN_DENSITY": "int", + "CONTEXT_TRAITS_CITY": "string", + "CONTEXT_TRAITS_COUNTRY": "string", + "CONTEXT_TRAITS_EMAIL": "string", + "CONTEXT_TRAITS_FIRSTNAME": "string", + "CONTEXT_USER_AGENT": "string", + "EVENT": "string", + "EVENT_TEXT": "string", + "ID": "string", + "ORIGINAL_TIMESTAMP": "datetime", + "RECEIVED_AT": "datetime", + "SENT_AT": "datetime", + "TIMESTAMP": "datetime", + "USER_ID": "string", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "TRACKS" + } + }, + { + "data": { + "ANONYMOUS_ID": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "CHANNEL": "web", + "CONTEXT_APP_BUILD": "1.0.0", + "CONTEXT_APP_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_APP_NAMESPACE": "com.rudderlabs.javascript", + "CONTEXT_APP_VERSION": "1.0.5", + "CONTEXT_C_MAP_NESTED_MAP_N_1": "context nested prop 1", + "CONTEXT_IP": "0.0.0.0", + "CONTEXT_LIBRARY_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_LIBRARY_VERSION": "1.0.5", + "CONTEXT_LOCALE": "en-GB", + "CONTEXT_PASSED_IP": "0.0.0.0", + "CONTEXT_REQUEST_IP": "[::1]:53708", + "CONTEXT_SCREEN_DENSITY": 2, + "CONTEXT_TRAITS_CITY": "Disney", + "CONTEXT_TRAITS_COUNTRY": "USA", + "CONTEXT_TRAITS_EMAIL": "mickey@disney.com", + "CONTEXT_TRAITS_FIRSTNAME": "Mickey", + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "CURRENCY": "USD", + "EMAIL": "test@gmail.com", + "EVENT": "product_added", + "EVENT_TEXT": "Product Added", + "ID": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "ORIGINAL_TIMESTAMP": "2020-01-24T06:29:02.364Z", + "P_MAP_NESTED_MAP": "{\"n1\":\"nested prop 1\"}", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "REVENUE": 50, + "SENT_AT": "2020-01-24T06:29:02.364Z", + "TIMESTAMP": "2020-01-24T06:29:02.403Z", + "UP_MAP_NESTED_MAP": "{\"n1\":\"nested prop 1\"}", + "USER_ID": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "ANONYMOUS_ID": "string", + "CHANNEL": "string", + "CONTEXT_APP_BUILD": "string", + "CONTEXT_APP_NAME": "string", + "CONTEXT_APP_NAMESPACE": "string", + "CONTEXT_APP_VERSION": "string", + "CONTEXT_C_MAP_NESTED_MAP_N_1": "string", + "CONTEXT_IP": "string", + "CONTEXT_LIBRARY_NAME": "string", + "CONTEXT_LIBRARY_VERSION": "string", + "CONTEXT_LOCALE": "string", + "CONTEXT_PASSED_IP": "string", + "CONTEXT_REQUEST_IP": "string", + "CONTEXT_SCREEN_DENSITY": "int", + "CONTEXT_TRAITS_CITY": "string", + "CONTEXT_TRAITS_COUNTRY": "string", + "CONTEXT_TRAITS_EMAIL": "string", + "CONTEXT_TRAITS_FIRSTNAME": "string", + "CONTEXT_USER_AGENT": "string", + "CURRENCY": "string", + "EMAIL": "string", + "EVENT": "string", + "EVENT_TEXT": "string", + "ID": "string", + "ORIGINAL_TIMESTAMP": "datetime", + "P_MAP_NESTED_MAP": "json", + "RECEIVED_AT": "datetime", + "REVENUE": "int", + "SENT_AT": "datetime", + "TIMESTAMP": "datetime", + "UP_MAP_NESTED_MAP": "json", + "USER_ID": "string", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "PRODUCT_ADDED" + } + } + ] + } +} diff --git a/test/__tests__/data/warehouse/integrations/jsonpaths/new/aliases.js b/test/__tests__/data/warehouse/integrations/jsonpaths/new/aliases.js new file mode 100644 index 00000000000..91f19c5c77d --- /dev/null +++ b/test/__tests__/data/warehouse/integrations/jsonpaths/new/aliases.js @@ -0,0 +1,415 @@ +module.exports = { + input: { + destination: { + Config: {} + }, + message: { + anonymousId: "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + channel: "web", + traits: { + city: "Disney", + country: "USA", + email: "mickey@disney.com", + firstname: "Mickey", + testMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + context: { + app: { + build: "1.0.0", + name: "RudderLabs JavaScript SDK", + namespace: "com.rudderlabs.javascript", + version: "1.0.5" + }, + ip: "0.0.0.0", + library: { + name: "RudderLabs JavaScript SDK", + version: "1.0.5" + }, + ctestMap: { + cnestedMap: { + n1: "context nested prop 1" + } + }, + locale: "en-GB", + screen: { + density: 2 + }, + userAgent: + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + integrations: { + All: true, + RS: { + options: { + jsonPaths: ["alias.traits.testMap.nestedMap", "alias.context.ctestMap.cnestedMap"] + } + }, + BQ: { + options: { + jsonPaths: ["alias.traits.testMap.nestedMap", "alias.context.ctestMap.cnestedMap"] + } + }, + POSTGRES: { + options: { + jsonPaths: ["alias.traits.testMap.nestedMap", "alias.context.ctestMap.cnestedMap"] + } + }, + SNOWFLAKE: { + options: { + jsonPaths: ["alias.traits.testMap.nestedMap", "alias.context.ctestMap.cnestedMap"] + } + }, + S3_DATALAKE: { + options: { + skipReservedKeywordsEscaping: true + } + }, + }, + messageId: "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + originalTimestamp: "2020-01-24T06:29:02.364Z", + receivedAt: "2020-01-24T11:59:02.403+05:30", + request_ip: "[::1]:53708", + sentAt: "2020-01-24T06:29:02.364Z", + timestamp: "2020-01-24T11:59:02.403+05:30", + type: "alias", + userId: "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + request: { + query: { + whSchemaVersion: "v1" + } + } + }, + output: { + default: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "city": "Disney", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "city": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "country": "string", + "email": "string", + "firstname": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "aliases" + } + } + ], + rs: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "city": "Disney", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "city": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map": "json", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "country": "string", + "email": "string", + "firstname": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "test_map_nested_map": "json", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "aliases" + } + } + ], + bq: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "city": "Disney", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "city": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "country": "string", + "email": "string", + "firstname": "string", + "id": "string", + "loaded_at": "datetime", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "test_map_nested_map": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "aliases" + } + } + ], + postgres: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "city": "Disney", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "city": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map": "json", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "country": "string", + "email": "string", + "firstname": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "test_map_nested_map": "json", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "aliases" + } + } + ], + snowflake: [ + { + "data": { + "ANONYMOUS_ID": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "CHANNEL": "web", + "CITY": "Disney", + "CONTEXT_APP_BUILD": "1.0.0", + "CONTEXT_APP_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_APP_NAMESPACE": "com.rudderlabs.javascript", + "CONTEXT_APP_VERSION": "1.0.5", + "CONTEXT_CTEST_MAP_CNESTED_MAP": "{\"n1\":\"context nested prop 1\"}", + "CONTEXT_IP": "0.0.0.0", + "CONTEXT_LIBRARY_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_LIBRARY_VERSION": "1.0.5", + "CONTEXT_LOCALE": "en-GB", + "CONTEXT_PASSED_IP": "0.0.0.0", + "CONTEXT_REQUEST_IP": "[::1]:53708", + "CONTEXT_SCREEN_DENSITY": 2, + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "COUNTRY": "USA", + "EMAIL": "mickey@disney.com", + "FIRSTNAME": "Mickey", + "ID": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "ORIGINAL_TIMESTAMP": "2020-01-24T06:29:02.364Z", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "SENT_AT": "2020-01-24T06:29:02.364Z", + "TEST_MAP_NESTED_MAP": "{\"n1\":\"nested prop 1\"}", + "TIMESTAMP": "2020-01-24T06:29:02.403Z", + "USER_ID": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "ANONYMOUS_ID": "string", + "CHANNEL": "string", + "CITY": "string", + "CONTEXT_APP_BUILD": "string", + "CONTEXT_APP_NAME": "string", + "CONTEXT_APP_NAMESPACE": "string", + "CONTEXT_APP_VERSION": "string", + "CONTEXT_CTEST_MAP_CNESTED_MAP": "json", + "CONTEXT_IP": "string", + "CONTEXT_LIBRARY_NAME": "string", + "CONTEXT_LIBRARY_VERSION": "string", + "CONTEXT_LOCALE": "string", + "CONTEXT_PASSED_IP": "string", + "CONTEXT_REQUEST_IP": "string", + "CONTEXT_SCREEN_DENSITY": "int", + "CONTEXT_USER_AGENT": "string", + "COUNTRY": "string", + "EMAIL": "string", + "FIRSTNAME": "string", + "ID": "string", + "ORIGINAL_TIMESTAMP": "datetime", + "RECEIVED_AT": "datetime", + "SENT_AT": "datetime", + "TEST_MAP_NESTED_MAP": "json", + "TIMESTAMP": "datetime", + "USER_ID": "string", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "ALIASES" + } + } + ], + } +} diff --git a/test/__tests__/data/warehouse/integrations/jsonpaths/new/extract.js b/test/__tests__/data/warehouse/integrations/jsonpaths/new/extract.js new file mode 100644 index 00000000000..7a36e4787eb --- /dev/null +++ b/test/__tests__/data/warehouse/integrations/jsonpaths/new/extract.js @@ -0,0 +1,278 @@ +module.exports = { + input: { + destination: { + Config: {} + }, + message: { + anonymousId: "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + channel: "web", + context: { + sources: { + job_id: "djfhksdjhfkjdhfkjahkf", + version: "1169/merge", + job_run_id: "job_run_id", + task_run_id: "task_run_id" + }, + CMap: { + nestedMap: { + n1: "context nested prop 1" + } + }, + userAgent: + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + event: "Product Added", + integrations: { + All: true, + RS: { + options: { + jsonPaths: [ + "extract.properties.PMap.nestedMap", + "extract.context.CMap.nestedMap", + ] + } + }, + BQ: { + options: { + jsonPaths: [ + "extract.properties.PMap.nestedMap", + "extract.context.CMap.nestedMap", + ] + } + }, + POSTGRES: { + options: { + jsonPaths: [ + "extract.properties.PMap.nestedMap", + "extract.context.CMap.nestedMap", + ] + } + }, + SNOWFLAKE: { + options: { + jsonPaths: [ + "extract.properties.PMap.nestedMap", + "extract.context.CMap.nestedMap", + ] + } + }, + S3_DATALAKE: { + options: { + skipReservedKeywordsEscaping: true + } + }, + }, + recordId: "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + messageId: "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + originalTimestamp: "2020-01-24T06:29:02.364Z", + properties: { + currency: "USD", + revenue: 50, + PMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + type: "extract", + receivedAt: "2020-01-24T11:59:02.403+05:30", + request_ip: "[::1]:53708", + sentAt: "2020-01-24T06:29:02.364Z", + timestamp: "2020-01-24T11:59:02.403+05:30", + userId: "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + request: { + query: { + whSchemaVersion: "v1" + } + } + }, + output: { + default: [ + { + "data": { + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_sources_job_id": "djfhksdjhfkjdhfkjahkf", + "context_sources_job_run_id": "job_run_id", + "context_sources_task_run_id": "task_run_id", + "context_sources_version": "1169/merge", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "event": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "p_map_nested_map_n_1": "nested prop 1", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50 + }, + "metadata": { + "columns": { + "context_c_map_nested_map_n_1": "string", + "context_sources_job_id": "string", + "context_sources_job_run_id": "string", + "context_sources_task_run_id": "string", + "context_sources_version": "string", + "context_user_agent": "string", + "currency": "string", + "event": "string", + "id": "string", + "p_map_nested_map_n_1": "string", + "received_at": "datetime", + "revenue": "int", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "product_added" + } + } + ], + rs: [ + { + "data": { + "context_c_map_nested_map": "{\"n1\":\"context nested prop 1\"}", + "context_sources_job_id": "djfhksdjhfkjdhfkjahkf", + "context_sources_job_run_id": "job_run_id", + "context_sources_task_run_id": "task_run_id", + "context_sources_version": "1169/merge", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "event": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "p_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50 + }, + "metadata": { + "columns": { + "context_c_map_nested_map": "json", + "context_sources_job_id": "string", + "context_sources_job_run_id": "string", + "context_sources_task_run_id": "string", + "context_sources_version": "string", + "context_user_agent": "string", + "currency": "string", + "event": "string", + "id": "string", + "p_map_nested_map": "json", + "received_at": "datetime", + "revenue": "int", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "product_added" + } + } + ], + bq:[ + { + "data": { + "context_c_map_nested_map": "{\"n1\":\"context nested prop 1\"}", + "context_sources_job_id": "djfhksdjhfkjdhfkjahkf", + "context_sources_job_run_id": "job_run_id", + "context_sources_task_run_id": "task_run_id", + "context_sources_version": "1169/merge", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "event": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "p_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50 + }, + "metadata": { + "columns": { + "context_c_map_nested_map": "string", + "context_sources_job_id": "string", + "context_sources_job_run_id": "string", + "context_sources_task_run_id": "string", + "context_sources_version": "string", + "context_user_agent": "string", + "currency": "string", + "event": "string", + "id": "string", + "loaded_at": "datetime", + "p_map_nested_map": "string", + "received_at": "datetime", + "revenue": "int", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "product_added" + } + } + ], + postgres: [ + { + "data": { + "context_c_map_nested_map": "{\"n1\":\"context nested prop 1\"}", + "context_sources_job_id": "djfhksdjhfkjdhfkjahkf", + "context_sources_job_run_id": "job_run_id", + "context_sources_task_run_id": "task_run_id", + "context_sources_version": "1169/merge", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "event": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "p_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50 + }, + "metadata": { + "columns": { + "context_c_map_nested_map": "json", + "context_sources_job_id": "string", + "context_sources_job_run_id": "string", + "context_sources_task_run_id": "string", + "context_sources_version": "string", + "context_user_agent": "string", + "currency": "string", + "event": "string", + "id": "string", + "p_map_nested_map": "json", + "received_at": "datetime", + "revenue": "int", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "product_added" + } + } + ], + snowflake: [ + { + "data": { + "CONTEXT_C_MAP_NESTED_MAP": "{\"n1\":\"context nested prop 1\"}", + "CONTEXT_SOURCES_JOB_ID": "djfhksdjhfkjdhfkjahkf", + "CONTEXT_SOURCES_JOB_RUN_ID": "job_run_id", + "CONTEXT_SOURCES_TASK_RUN_ID": "task_run_id", + "CONTEXT_SOURCES_VERSION": "1169/merge", + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "CURRENCY": "USD", + "EVENT": "Product Added", + "ID": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "P_MAP_NESTED_MAP": "{\"n1\":\"nested prop 1\"}", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "REVENUE": 50 + }, + "metadata": { + "columns": { + "CONTEXT_C_MAP_NESTED_MAP": "json", + "CONTEXT_SOURCES_JOB_ID": "string", + "CONTEXT_SOURCES_JOB_RUN_ID": "string", + "CONTEXT_SOURCES_TASK_RUN_ID": "string", + "CONTEXT_SOURCES_VERSION": "string", + "CONTEXT_USER_AGENT": "string", + "CURRENCY": "string", + "EVENT": "string", + "ID": "string", + "P_MAP_NESTED_MAP": "json", + "RECEIVED_AT": "datetime", + "REVENUE": "int", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "PRODUCT_ADDED" + } + } + ] + } +} diff --git a/test/__tests__/data/warehouse/integrations/jsonpaths/new/groups.js b/test/__tests__/data/warehouse/integrations/jsonpaths/new/groups.js new file mode 100644 index 00000000000..f84f9d33edb --- /dev/null +++ b/test/__tests__/data/warehouse/integrations/jsonpaths/new/groups.js @@ -0,0 +1,420 @@ +module.exports = { + input: { + destination: { + Config: {} + }, + message: { + anonymousId: "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + channel: "web", + traits: { + city: "Disney", + country: "USA", + email: "mickey@disney.com", + firstname: "Mickey", + testMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + context: { + app: { + build: "1.0.0", + name: "RudderLabs JavaScript SDK", + namespace: "com.rudderlabs.javascript", + version: "1.0.5" + }, + ip: "0.0.0.0", + library: { + name: "RudderLabs JavaScript SDK", + version: "1.0.5" + }, + ctestMap: { + cnestedMap: { + n1: "context nested prop 1" + } + }, + locale: "en-GB", + screen: { + density: 2 + }, + userAgent: + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + integrations: { + All: true, + RS: { + options: { + jsonPaths: ["group.traits.testMap.nestedMap", "group.context.ctestMap.cnestedMap"] + } + }, + BQ: { + options: { + jsonPaths: ["group.traits.testMap.nestedMap", "group.context.ctestMap.cnestedMap"] + } + }, + POSTGRES: { + options: { + jsonPaths: ["group.traits.testMap.nestedMap", "group.context.ctestMap.cnestedMap"] + } + }, + SNOWFLAKE: { + options: { + jsonPaths: ["group.traits.testMap.nestedMap", "group.context.ctestMap.cnestedMap"] + } + }, + GCS_DATALAKE: { + options: { + skipReservedKeywordsEscaping: true + } + }, + S3_DATALAKE: { + options: { + skipReservedKeywordsEscaping: true + } + }, + }, + messageId: "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + originalTimestamp: "2020-01-24T06:29:02.364Z", + receivedAt: "2020-01-24T11:59:02.403+05:30", + request_ip: "[::1]:53708", + sentAt: "2020-01-24T06:29:02.364Z", + timestamp: "2020-01-24T11:59:02.403+05:30", + type: "group", + userId: "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + request: { + query: { + whSchemaVersion: "v1" + } + } + }, + output: { + default: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "city": "Disney", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "city": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "country": "string", + "email": "string", + "firstname": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "groups" + } + } + ], + rs: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "city": "Disney", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "city": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map": "json", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "country": "string", + "email": "string", + "firstname": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "test_map_nested_map": "json", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "groups" + } + } + ], + bq: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "city": "Disney", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "city": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "country": "string", + "email": "string", + "firstname": "string", + "id": "string", + "loaded_at": "datetime", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "test_map_nested_map": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "_groups" + } + } + ], + postgres: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "city": "Disney", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "country": "USA", + "email": "mickey@disney.com", + "firstname": "Mickey", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "city": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map": "json", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "country": "string", + "email": "string", + "firstname": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "test_map_nested_map": "json", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "groups" + } + } + ], + snowflake: [ + { + "data": { + "ANONYMOUS_ID": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "CHANNEL": "web", + "CITY": "Disney", + "CONTEXT_APP_BUILD": "1.0.0", + "CONTEXT_APP_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_APP_NAMESPACE": "com.rudderlabs.javascript", + "CONTEXT_APP_VERSION": "1.0.5", + "CONTEXT_CTEST_MAP_CNESTED_MAP": "{\"n1\":\"context nested prop 1\"}", + "CONTEXT_IP": "0.0.0.0", + "CONTEXT_LIBRARY_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_LIBRARY_VERSION": "1.0.5", + "CONTEXT_LOCALE": "en-GB", + "CONTEXT_PASSED_IP": "0.0.0.0", + "CONTEXT_REQUEST_IP": "[::1]:53708", + "CONTEXT_SCREEN_DENSITY": 2, + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "COUNTRY": "USA", + "EMAIL": "mickey@disney.com", + "FIRSTNAME": "Mickey", + "ID": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "ORIGINAL_TIMESTAMP": "2020-01-24T06:29:02.364Z", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "SENT_AT": "2020-01-24T06:29:02.364Z", + "TEST_MAP_NESTED_MAP": "{\"n1\":\"nested prop 1\"}", + "TIMESTAMP": "2020-01-24T06:29:02.403Z", + "USER_ID": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "ANONYMOUS_ID": "string", + "CHANNEL": "string", + "CITY": "string", + "CONTEXT_APP_BUILD": "string", + "CONTEXT_APP_NAME": "string", + "CONTEXT_APP_NAMESPACE": "string", + "CONTEXT_APP_VERSION": "string", + "CONTEXT_CTEST_MAP_CNESTED_MAP": "json", + "CONTEXT_IP": "string", + "CONTEXT_LIBRARY_NAME": "string", + "CONTEXT_LIBRARY_VERSION": "string", + "CONTEXT_LOCALE": "string", + "CONTEXT_PASSED_IP": "string", + "CONTEXT_REQUEST_IP": "string", + "CONTEXT_SCREEN_DENSITY": "int", + "CONTEXT_USER_AGENT": "string", + "COUNTRY": "string", + "EMAIL": "string", + "FIRSTNAME": "string", + "ID": "string", + "ORIGINAL_TIMESTAMP": "datetime", + "RECEIVED_AT": "datetime", + "SENT_AT": "datetime", + "TEST_MAP_NESTED_MAP": "json", + "TIMESTAMP": "datetime", + "USER_ID": "string", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "GROUPS" + } + } + ], + } +} diff --git a/test/__tests__/data/warehouse/integrations/jsonpaths/new/identifies.js b/test/__tests__/data/warehouse/integrations/jsonpaths/new/identifies.js new file mode 100644 index 00000000000..3d6164b430c --- /dev/null +++ b/test/__tests__/data/warehouse/integrations/jsonpaths/new/identifies.js @@ -0,0 +1,850 @@ +module.exports = { + input: { + destination: { + Config: {} + }, + message: { + type: "identify", + sentAt: "2021-01-03T17:02:53.195Z", + userId: "user123", + channel: "web", + integrations: { + All: true, + RS: { + options: { + jsonPaths: [ + "identify.userProperties.UPMap.nestedMap", + "identify.context.traits.CTMap.nestedMap", + "identify.traits.TMap.nestedMap", + "identify.context.CMap.nestedMap", + ] + } + }, + BQ: { + options: { + jsonPaths: [ + "identify.userProperties.UPMap.nestedMap", + "identify.context.traits.CTMap.nestedMap", + "identify.traits.TMap.nestedMap", + "identify.context.CMap.nestedMap", + ] + } + }, + POSTGRES: { + options: { + jsonPaths: [ + "identify.userProperties.UPMap.nestedMap", + "identify.context.traits.CTMap.nestedMap", + "identify.traits.TMap.nestedMap", + "identify.context.CMap.nestedMap", + ] + } + }, + SNOWFLAKE: { + options: { + jsonPaths: [ + "identify.userProperties.UPMap.nestedMap", + "identify.context.traits.CTMap.nestedMap", + "identify.traits.TMap.nestedMap", + "identify.context.CMap.nestedMap", + ] + } + }, + S3_DATALAKE: { + options: { + skipReservedKeywordsEscaping: true + } + }, + }, + userProperties: { + email: "test@gmail.com", + UPMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + traits: { + TMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + context: { + os: { + "name": "android", + "version": "1.12.3" + }, + app: { + name: "RudderLabs JavaScript SDK", + build: "1.0.0", + version: "1.1.11", + namespace: "com.rudderlabs.javascript" + }, + traits: { + email: "user123@email.com", + phone: "+917836362334", + userId: "user123", + CTMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + CMap: { + nestedMap: { + n1: "context nested prop 1" + } + }, + locale: "en-US", + device: { + token: "token", + id: "id", + type: "ios" + }, + library: { + name: "RudderLabs JavaScript SDK", + version: "1.1.11" + }, + userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0" + }, + rudderId: "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", + messageId: "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", + anonymousId: "97c46c81-3140-456d-b2a9-690d70aaca35", + originalTimestamp: "2020-01-24T06:29:02.364Z", + receivedAt: "2020-01-24T11:59:02.403+05:30", + request_ip: "[::1]:53708", + timestamp: "2020-01-24T11:59:02.403+05:30" + }, + request: { + query: { + whSchemaVersion: "v1" + } + } + }, + output: { + default: [ + { + "data": { + "anonymous_id": "97c46c81-3140-456d-b2a9-690d70aaca35", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.1.11", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_device_id": "id", + "context_device_token": "token", + "context_device_type": "ios", + "context_ip": "[::1]:53708", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.1.11", + "context_locale": "en-US", + "context_os_name": "android", + "context_os_version": "1.12.3", + "context_request_ip": "[::1]:53708", + "context_traits_ct_map_nested_map_n_1": "nested prop 1", + "context_traits_email": "user123@email.com", + "context_traits_phone": "+917836362334", + "context_traits_user_id": "user123", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "ct_map_nested_map_n_1": "nested prop 1", + "email": "user123@email.com", + "id": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "phone": "+917836362334", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2021-01-03T17:02:53.195Z", + "t_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "up_map_nested_map_n_1": "nested prop 1", + "user_id": "user123" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_device_id": "string", + "context_device_token": "string", + "context_device_type": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_os_name": "string", + "context_os_version": "string", + "context_request_ip": "string", + "context_traits_ct_map_nested_map_n_1": "string", + "context_traits_email": "string", + "context_traits_phone": "string", + "context_traits_user_id": "string", + "context_user_agent": "string", + "ct_map_nested_map_n_1": "string", + "email": "string", + "id": "string", + "original_timestamp": "datetime", + "phone": "string", + "received_at": "datetime", + "sent_at": "datetime", + "t_map_nested_map_n_1": "string", + "timestamp": "datetime", + "up_map_nested_map_n_1": "string", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "identifies" + } + }, + { + "data": { + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.1.11", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_device_id": "id", + "context_device_token": "token", + "context_device_type": "ios", + "context_ip": "[::1]:53708", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.1.11", + "context_locale": "en-US", + "context_os_name": "android", + "context_os_version": "1.12.3", + "context_request_ip": "[::1]:53708", + "context_traits_ct_map_nested_map_n_1": "nested prop 1", + "context_traits_email": "user123@email.com", + "context_traits_phone": "+917836362334", + "context_traits_user_id": "user123", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "ct_map_nested_map_n_1": "nested prop 1", + "email": "user123@email.com", + "id": "user123", + "phone": "+917836362334", + "received_at": "2020-01-24T06:29:02.403Z", + "t_map_nested_map_n_1": "nested prop 1", + "up_map_nested_map_n_1": "nested prop 1" + }, + "metadata": { + "columns": { + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_device_id": "string", + "context_device_token": "string", + "context_device_type": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_os_name": "string", + "context_os_version": "string", + "context_request_ip": "string", + "context_traits_ct_map_nested_map_n_1": "string", + "context_traits_email": "string", + "context_traits_phone": "string", + "context_traits_user_id": "string", + "context_user_agent": "string", + "ct_map_nested_map_n_1": "string", + "email": "string", + "id": "string", + "phone": "string", + "received_at": "datetime", + "t_map_nested_map_n_1": "string", + "up_map_nested_map_n_1": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "users" + } + } + ], + rs: [ + { + "data": { + "anonymous_id": "97c46c81-3140-456d-b2a9-690d70aaca35", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.1.11", + "context_c_map_nested_map": "{\"n1\":\"context nested prop 1\"}", + "context_device_id": "id", + "context_device_token": "token", + "context_device_type": "ios", + "context_ip": "[::1]:53708", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.1.11", + "context_locale": "en-US", + "context_os_name": "android", + "context_os_version": "1.12.3", + "context_request_ip": "[::1]:53708", + "context_traits_ct_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "context_traits_email": "user123@email.com", + "context_traits_phone": "+917836362334", + "context_traits_user_id": "user123", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "ct_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "email": "user123@email.com", + "id": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "phone": "+917836362334", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2021-01-03T17:02:53.195Z", + "t_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "timestamp": "2020-01-24T06:29:02.403Z", + "up_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "user_id": "user123" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map": "json", + "context_device_id": "string", + "context_device_token": "string", + "context_device_type": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_os_name": "string", + "context_os_version": "string", + "context_request_ip": "string", + "context_traits_ct_map_nested_map": "json", + "context_traits_email": "string", + "context_traits_phone": "string", + "context_traits_user_id": "string", + "context_user_agent": "string", + "ct_map_nested_map": "json", + "email": "string", + "id": "string", + "original_timestamp": "datetime", + "phone": "string", + "received_at": "datetime", + "sent_at": "datetime", + "t_map_nested_map": "json", + "timestamp": "datetime", + "up_map_nested_map": "json", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "identifies" + } + }, + { + "data": { + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.1.11", + "context_c_map_nested_map": "{\"n1\":\"context nested prop 1\"}", + "context_device_id": "id", + "context_device_token": "token", + "context_device_type": "ios", + "context_ip": "[::1]:53708", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.1.11", + "context_locale": "en-US", + "context_os_name": "android", + "context_os_version": "1.12.3", + "context_request_ip": "[::1]:53708", + "context_traits_ct_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "context_traits_email": "user123@email.com", + "context_traits_phone": "+917836362334", + "context_traits_user_id": "user123", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "ct_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "email": "user123@email.com", + "id": "user123", + "phone": "+917836362334", + "received_at": "2020-01-24T06:29:02.403Z", + "t_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "up_map_nested_map": "{\"n1\":\"nested prop 1\"}" + }, + "metadata": { + "columns": { + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map": "json", + "context_device_id": "string", + "context_device_token": "string", + "context_device_type": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_os_name": "string", + "context_os_version": "string", + "context_request_ip": "string", + "context_traits_ct_map_nested_map": "json", + "context_traits_email": "string", + "context_traits_phone": "string", + "context_traits_user_id": "string", + "context_user_agent": "string", + "ct_map_nested_map": "json", + "email": "string", + "id": "string", + "phone": "string", + "received_at": "datetime", + "t_map_nested_map": "json", + "up_map_nested_map": "json", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "users" + } + } + ], + bq: [ + { + "data": { + "anonymous_id": "97c46c81-3140-456d-b2a9-690d70aaca35", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.1.11", + "context_c_map_nested_map": "{\"n1\":\"context nested prop 1\"}", + "context_device_id": "id", + "context_device_token": "token", + "context_device_type": "ios", + "context_ip": "[::1]:53708", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.1.11", + "context_locale": "en-US", + "context_os_name": "android", + "context_os_version": "1.12.3", + "context_request_ip": "[::1]:53708", + "context_traits_ct_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "context_traits_email": "user123@email.com", + "context_traits_phone": "+917836362334", + "context_traits_user_id": "user123", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "ct_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "email": "user123@email.com", + "id": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "phone": "+917836362334", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2021-01-03T17:02:53.195Z", + "t_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "timestamp": "2020-01-24T06:29:02.403Z", + "up_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "user_id": "user123" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map": "string", + "context_device_id": "string", + "context_device_token": "string", + "context_device_type": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_os_name": "string", + "context_os_version": "string", + "context_request_ip": "string", + "context_traits_ct_map_nested_map": "string", + "context_traits_email": "string", + "context_traits_phone": "string", + "context_traits_user_id": "string", + "context_user_agent": "string", + "ct_map_nested_map": "string", + "email": "string", + "id": "string", + "loaded_at": "datetime", + "original_timestamp": "datetime", + "phone": "string", + "received_at": "datetime", + "sent_at": "datetime", + "t_map_nested_map": "string", + "timestamp": "datetime", + "up_map_nested_map": "string", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "identifies" + } + }, + { + "data": { + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.1.11", + "context_c_map_nested_map": "{\"n1\":\"context nested prop 1\"}", + "context_device_id": "id", + "context_device_token": "token", + "context_device_type": "ios", + "context_ip": "[::1]:53708", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.1.11", + "context_locale": "en-US", + "context_os_name": "android", + "context_os_version": "1.12.3", + "context_request_ip": "[::1]:53708", + "context_traits_ct_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "context_traits_email": "user123@email.com", + "context_traits_phone": "+917836362334", + "context_traits_user_id": "user123", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "ct_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "email": "user123@email.com", + "id": "user123", + "phone": "+917836362334", + "received_at": "2020-01-24T06:29:02.403Z", + "t_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "up_map_nested_map": "{\"n1\":\"nested prop 1\"}" + }, + "metadata": { + "columns": { + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map": "string", + "context_device_id": "string", + "context_device_token": "string", + "context_device_type": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_os_name": "string", + "context_os_version": "string", + "context_request_ip": "string", + "context_traits_ct_map_nested_map": "string", + "context_traits_email": "string", + "context_traits_phone": "string", + "context_traits_user_id": "string", + "context_user_agent": "string", + "ct_map_nested_map": "string", + "email": "string", + "id": "string", + "loaded_at": "datetime", + "phone": "string", + "received_at": "datetime", + "t_map_nested_map": "string", + "up_map_nested_map": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "users" + } + } + ], + postgres: [ + { + "data": { + "anonymous_id": "97c46c81-3140-456d-b2a9-690d70aaca35", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.1.11", + "context_c_map_nested_map": "{\"n1\":\"context nested prop 1\"}", + "context_device_id": "id", + "context_device_token": "token", + "context_device_type": "ios", + "context_ip": "[::1]:53708", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.1.11", + "context_locale": "en-US", + "context_os_name": "android", + "context_os_version": "1.12.3", + "context_request_ip": "[::1]:53708", + "context_traits_ct_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "context_traits_email": "user123@email.com", + "context_traits_phone": "+917836362334", + "context_traits_user_id": "user123", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "ct_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "email": "user123@email.com", + "id": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "phone": "+917836362334", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2021-01-03T17:02:53.195Z", + "t_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "timestamp": "2020-01-24T06:29:02.403Z", + "up_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "user_id": "user123" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map": "json", + "context_device_id": "string", + "context_device_token": "string", + "context_device_type": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_os_name": "string", + "context_os_version": "string", + "context_request_ip": "string", + "context_traits_ct_map_nested_map": "json", + "context_traits_email": "string", + "context_traits_phone": "string", + "context_traits_user_id": "string", + "context_user_agent": "string", + "ct_map_nested_map": "json", + "email": "string", + "id": "string", + "original_timestamp": "datetime", + "phone": "string", + "received_at": "datetime", + "sent_at": "datetime", + "t_map_nested_map": "json", + "timestamp": "datetime", + "up_map_nested_map": "json", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "identifies" + } + }, + { + "data": { + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.1.11", + "context_c_map_nested_map": "{\"n1\":\"context nested prop 1\"}", + "context_device_id": "id", + "context_device_token": "token", + "context_device_type": "ios", + "context_ip": "[::1]:53708", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.1.11", + "context_locale": "en-US", + "context_os_name": "android", + "context_os_version": "1.12.3", + "context_request_ip": "[::1]:53708", + "context_traits_ct_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "context_traits_email": "user123@email.com", + "context_traits_phone": "+917836362334", + "context_traits_user_id": "user123", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "ct_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "email": "user123@email.com", + "id": "user123", + "phone": "+917836362334", + "received_at": "2020-01-24T06:29:02.403Z", + "t_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "up_map_nested_map": "{\"n1\":\"nested prop 1\"}" + }, + "metadata": { + "columns": { + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map": "json", + "context_device_id": "string", + "context_device_token": "string", + "context_device_type": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_os_name": "string", + "context_os_version": "string", + "context_request_ip": "string", + "context_traits_ct_map_nested_map": "json", + "context_traits_email": "string", + "context_traits_phone": "string", + "context_traits_user_id": "string", + "context_user_agent": "string", + "ct_map_nested_map": "json", + "email": "string", + "id": "string", + "phone": "string", + "received_at": "datetime", + "t_map_nested_map": "json", + "up_map_nested_map": "json", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "users" + } + } + ], + snowflake: [ + { + "data": { + "ANONYMOUS_ID": "97c46c81-3140-456d-b2a9-690d70aaca35", + "CHANNEL": "web", + "CONTEXT_APP_BUILD": "1.0.0", + "CONTEXT_APP_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_APP_NAMESPACE": "com.rudderlabs.javascript", + "CONTEXT_APP_VERSION": "1.1.11", + "CONTEXT_C_MAP_NESTED_MAP": "{\"n1\":\"context nested prop 1\"}", + "CONTEXT_DEVICE_ID": "id", + "CONTEXT_DEVICE_TOKEN": "token", + "CONTEXT_DEVICE_TYPE": "ios", + "CONTEXT_IP": "[::1]:53708", + "CONTEXT_LIBRARY_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_LIBRARY_VERSION": "1.1.11", + "CONTEXT_LOCALE": "en-US", + "CONTEXT_OS_NAME": "android", + "CONTEXT_OS_VERSION": "1.12.3", + "CONTEXT_REQUEST_IP": "[::1]:53708", + "CONTEXT_TRAITS_CT_MAP_NESTED_MAP": "{\"n1\":\"nested prop 1\"}", + "CONTEXT_TRAITS_EMAIL": "user123@email.com", + "CONTEXT_TRAITS_PHONE": "+917836362334", + "CONTEXT_TRAITS_USER_ID": "user123", + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "CT_MAP_NESTED_MAP": "{\"n1\":\"nested prop 1\"}", + "EMAIL": "user123@email.com", + "ID": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", + "ORIGINAL_TIMESTAMP": "2020-01-24T06:29:02.364Z", + "PHONE": "+917836362334", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "SENT_AT": "2021-01-03T17:02:53.195Z", + "TIMESTAMP": "2020-01-24T06:29:02.403Z", + "T_MAP_NESTED_MAP": "{\"n1\":\"nested prop 1\"}", + "UP_MAP_NESTED_MAP": "{\"n1\":\"nested prop 1\"}", + "USER_ID": "user123" + }, + "metadata": { + "columns": { + "ANONYMOUS_ID": "string", + "CHANNEL": "string", + "CONTEXT_APP_BUILD": "string", + "CONTEXT_APP_NAME": "string", + "CONTEXT_APP_NAMESPACE": "string", + "CONTEXT_APP_VERSION": "string", + "CONTEXT_C_MAP_NESTED_MAP": "json", + "CONTEXT_DEVICE_ID": "string", + "CONTEXT_DEVICE_TOKEN": "string", + "CONTEXT_DEVICE_TYPE": "string", + "CONTEXT_IP": "string", + "CONTEXT_LIBRARY_NAME": "string", + "CONTEXT_LIBRARY_VERSION": "string", + "CONTEXT_LOCALE": "string", + "CONTEXT_OS_NAME": "string", + "CONTEXT_OS_VERSION": "string", + "CONTEXT_REQUEST_IP": "string", + "CONTEXT_TRAITS_CT_MAP_NESTED_MAP": "json", + "CONTEXT_TRAITS_EMAIL": "string", + "CONTEXT_TRAITS_PHONE": "string", + "CONTEXT_TRAITS_USER_ID": "string", + "CONTEXT_USER_AGENT": "string", + "CT_MAP_NESTED_MAP": "json", + "EMAIL": "string", + "ID": "string", + "ORIGINAL_TIMESTAMP": "datetime", + "PHONE": "string", + "RECEIVED_AT": "datetime", + "SENT_AT": "datetime", + "TIMESTAMP": "datetime", + "T_MAP_NESTED_MAP": "json", + "UP_MAP_NESTED_MAP": "json", + "USER_ID": "string", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "IDENTIFIES" + } + }, + { + "data": { + "CONTEXT_APP_BUILD": "1.0.0", + "CONTEXT_APP_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_APP_NAMESPACE": "com.rudderlabs.javascript", + "CONTEXT_APP_VERSION": "1.1.11", + "CONTEXT_C_MAP_NESTED_MAP": "{\"n1\":\"context nested prop 1\"}", + "CONTEXT_DEVICE_ID": "id", + "CONTEXT_DEVICE_TOKEN": "token", + "CONTEXT_DEVICE_TYPE": "ios", + "CONTEXT_IP": "[::1]:53708", + "CONTEXT_LIBRARY_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_LIBRARY_VERSION": "1.1.11", + "CONTEXT_LOCALE": "en-US", + "CONTEXT_OS_NAME": "android", + "CONTEXT_OS_VERSION": "1.12.3", + "CONTEXT_REQUEST_IP": "[::1]:53708", + "CONTEXT_TRAITS_CT_MAP_NESTED_MAP": "{\"n1\":\"nested prop 1\"}", + "CONTEXT_TRAITS_EMAIL": "user123@email.com", + "CONTEXT_TRAITS_PHONE": "+917836362334", + "CONTEXT_TRAITS_USER_ID": "user123", + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0", + "CT_MAP_NESTED_MAP": "{\"n1\":\"nested prop 1\"}", + "EMAIL": "user123@email.com", + "ID": "user123", + "PHONE": "+917836362334", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "T_MAP_NESTED_MAP": "{\"n1\":\"nested prop 1\"}", + "UP_MAP_NESTED_MAP": "{\"n1\":\"nested prop 1\"}" + }, + "metadata": { + "columns": { + "CONTEXT_APP_BUILD": "string", + "CONTEXT_APP_NAME": "string", + "CONTEXT_APP_NAMESPACE": "string", + "CONTEXT_APP_VERSION": "string", + "CONTEXT_C_MAP_NESTED_MAP": "json", + "CONTEXT_DEVICE_ID": "string", + "CONTEXT_DEVICE_TOKEN": "string", + "CONTEXT_DEVICE_TYPE": "string", + "CONTEXT_IP": "string", + "CONTEXT_LIBRARY_NAME": "string", + "CONTEXT_LIBRARY_VERSION": "string", + "CONTEXT_LOCALE": "string", + "CONTEXT_OS_NAME": "string", + "CONTEXT_OS_VERSION": "string", + "CONTEXT_REQUEST_IP": "string", + "CONTEXT_TRAITS_CT_MAP_NESTED_MAP": "json", + "CONTEXT_TRAITS_EMAIL": "string", + "CONTEXT_TRAITS_PHONE": "string", + "CONTEXT_TRAITS_USER_ID": "string", + "CONTEXT_USER_AGENT": "string", + "CT_MAP_NESTED_MAP": "json", + "EMAIL": "string", + "ID": "string", + "PHONE": "string", + "RECEIVED_AT": "datetime", + "T_MAP_NESTED_MAP": "json", + "UP_MAP_NESTED_MAP": "json", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "USERS" + } + } + ], + } +} diff --git a/test/__tests__/data/warehouse/integrations/jsonpaths/new/pages.js b/test/__tests__/data/warehouse/integrations/jsonpaths/new/pages.js new file mode 100644 index 00000000000..136f355b216 --- /dev/null +++ b/test/__tests__/data/warehouse/integrations/jsonpaths/new/pages.js @@ -0,0 +1,393 @@ +module.exports = { + input: { + destination: { + Config: {} + }, + message: { + anonymousId: "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + channel: "web", + context: { + app: { + build: "1.0.0", + name: "RudderLabs JavaScript SDK", + namespace: "com.rudderlabs.javascript", + version: "1.0.5" + }, + ip: "0.0.0.0", + library: { + name: "RudderLabs JavaScript SDK", + version: "1.0.5" + }, + ctestMap: { + cnestedMap: { + n1: "context nested prop 1" + } + }, + locale: "en-GB", + screen: { + density: 2 + }, + userAgent: + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + integrations: { + All: true, + RS: { + options: { + jsonPaths: ["page.properties.testMap.nestedMap", "page.context.ctestMap.cnestedMap"] + } + }, + BQ: { + options: { + jsonPaths: ["page.properties.testMap.nestedMap", "page.context.ctestMap.cnestedMap"] + } + }, + POSTGRES: { + options: { + jsonPaths: ["page.properties.testMap.nestedMap", "page.context.ctestMap.cnestedMap"] + } + }, + SNOWFLAKE: { + options: { + jsonPaths: ["page.properties.testMap.nestedMap", "page.context.ctestMap.cnestedMap"] + } + }, + S3_DATALAKE: { + options: { + skipReservedKeywordsEscaping: true + } + }, + }, + messageId: "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + originalTimestamp: "2020-01-24T06:29:02.364Z", + properties: { + currency: "USD", + revenue: 50, + testMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + receivedAt: "2020-01-24T11:59:02.403+05:30", + request_ip: "[::1]:53708", + sentAt: "2020-01-24T06:29:02.364Z", + timestamp: "2020-01-24T11:59:02.403+05:30", + type: "page", + userId: "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + request: { + query: { + whSchemaVersion: "v1" + } + } + }, + output: { + default: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "currency": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "pages" + } + } + ], + rs: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map": "json", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "currency": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "test_map_nested_map": "json", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "pages" + } + } + ], + bq: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "currency": "string", + "id": "string", + "loaded_at": "datetime", + "original_timestamp": "datetime", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "test_map_nested_map": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "pages" + } + } + ], + postgres: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map": "json", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "currency": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "test_map_nested_map": "json", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "pages" + } + } + ], + snowflake: [ + { + "data": { + "ANONYMOUS_ID": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "CHANNEL": "web", + "CONTEXT_APP_BUILD": "1.0.0", + "CONTEXT_APP_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_APP_NAMESPACE": "com.rudderlabs.javascript", + "CONTEXT_APP_VERSION": "1.0.5", + "CONTEXT_CTEST_MAP_CNESTED_MAP": "{\"n1\":\"context nested prop 1\"}", + "CONTEXT_IP": "0.0.0.0", + "CONTEXT_LIBRARY_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_LIBRARY_VERSION": "1.0.5", + "CONTEXT_LOCALE": "en-GB", + "CONTEXT_PASSED_IP": "0.0.0.0", + "CONTEXT_REQUEST_IP": "[::1]:53708", + "CONTEXT_SCREEN_DENSITY": 2, + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "CURRENCY": "USD", + "ID": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "ORIGINAL_TIMESTAMP": "2020-01-24T06:29:02.364Z", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "REVENUE": 50, + "SENT_AT": "2020-01-24T06:29:02.364Z", + "TEST_MAP_NESTED_MAP": "{\"n1\":\"nested prop 1\"}", + "TIMESTAMP": "2020-01-24T06:29:02.403Z", + "USER_ID": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "ANONYMOUS_ID": "string", + "CHANNEL": "string", + "CONTEXT_APP_BUILD": "string", + "CONTEXT_APP_NAME": "string", + "CONTEXT_APP_NAMESPACE": "string", + "CONTEXT_APP_VERSION": "string", + "CONTEXT_CTEST_MAP_CNESTED_MAP": "json", + "CONTEXT_IP": "string", + "CONTEXT_LIBRARY_NAME": "string", + "CONTEXT_LIBRARY_VERSION": "string", + "CONTEXT_LOCALE": "string", + "CONTEXT_PASSED_IP": "string", + "CONTEXT_REQUEST_IP": "string", + "CONTEXT_SCREEN_DENSITY": "int", + "CONTEXT_USER_AGENT": "string", + "CURRENCY": "string", + "ID": "string", + "ORIGINAL_TIMESTAMP": "datetime", + "RECEIVED_AT": "datetime", + "REVENUE": "int", + "SENT_AT": "datetime", + "TEST_MAP_NESTED_MAP": "json", + "TIMESTAMP": "datetime", + "USER_ID": "string", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "PAGES" + } + } + ], + } +} diff --git a/test/__tests__/data/warehouse/integrations/jsonpaths/new/screens.js b/test/__tests__/data/warehouse/integrations/jsonpaths/new/screens.js new file mode 100644 index 00000000000..b11b311ebbc --- /dev/null +++ b/test/__tests__/data/warehouse/integrations/jsonpaths/new/screens.js @@ -0,0 +1,393 @@ +module.exports = { + input: { + destination: { + Config: {} + }, + message: { + anonymousId: "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + channel: "web", + context: { + app: { + build: "1.0.0", + name: "RudderLabs JavaScript SDK", + namespace: "com.rudderlabs.javascript", + version: "1.0.5" + }, + ip: "0.0.0.0", + library: { + name: "RudderLabs JavaScript SDK", + version: "1.0.5" + }, + ctestMap: { + cnestedMap: { + n1: "context nested prop 1" + } + }, + locale: "en-GB", + screen: { + density: 2 + }, + userAgent: + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + integrations: { + All: true, + RS: { + options: { + jsonPaths: ["screen.properties.testMap.nestedMap", "screen.context.ctestMap.cnestedMap"] + } + }, + BQ: { + options: { + jsonPaths: ["screen.properties.testMap.nestedMap", "screen.context.ctestMap.cnestedMap"] + } + }, + POSTGRES: { + options: { + jsonPaths: ["screen.properties.testMap.nestedMap", "screen.context.ctestMap.cnestedMap"] + } + }, + SNOWFLAKE: { + options: { + jsonPaths: ["screen.properties.testMap.nestedMap", "screen.context.ctestMap.cnestedMap"] + } + }, + S3_DATALAKE: { + options: { + skipReservedKeywordsEscaping: true + } + }, + }, + messageId: "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + originalTimestamp: "2020-01-24T06:29:02.364Z", + properties: { + currency: "USD", + revenue: 50, + testMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + receivedAt: "2020-01-24T11:59:02.403+05:30", + request_ip: "[::1]:53708", + sentAt: "2020-01-24T06:29:02.364Z", + timestamp: "2020-01-24T11:59:02.403+05:30", + type: "screen", + userId: "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + request: { + query: { + whSchemaVersion: "v1" + } + } + }, + output: { + default: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map_n_1": "nested prop 1", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "currency": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "test_map_nested_map_n_1": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "screens" + } + } + ], + rs: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map": "json", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "currency": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "test_map_nested_map": "json", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "screens" + } + } + ], + bq: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "currency": "string", + "id": "string", + "loaded_at": "datetime", + "original_timestamp": "datetime", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "test_map_nested_map": "string", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "screens" + } + } + ], + postgres: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_ctest_map_cnested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "test_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_ctest_map_cnested_map": "json", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_user_agent": "string", + "currency": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "test_map_nested_map": "json", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "screens" + } + } + ], + snowflake: [ + { + "data": { + "ANONYMOUS_ID": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "CHANNEL": "web", + "CONTEXT_APP_BUILD": "1.0.0", + "CONTEXT_APP_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_APP_NAMESPACE": "com.rudderlabs.javascript", + "CONTEXT_APP_VERSION": "1.0.5", + "CONTEXT_CTEST_MAP_CNESTED_MAP": "{\"n1\":\"context nested prop 1\"}", + "CONTEXT_IP": "0.0.0.0", + "CONTEXT_LIBRARY_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_LIBRARY_VERSION": "1.0.5", + "CONTEXT_LOCALE": "en-GB", + "CONTEXT_PASSED_IP": "0.0.0.0", + "CONTEXT_REQUEST_IP": "[::1]:53708", + "CONTEXT_SCREEN_DENSITY": 2, + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "CURRENCY": "USD", + "ID": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "ORIGINAL_TIMESTAMP": "2020-01-24T06:29:02.364Z", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "REVENUE": 50, + "SENT_AT": "2020-01-24T06:29:02.364Z", + "TEST_MAP_NESTED_MAP": "{\"n1\":\"nested prop 1\"}", + "TIMESTAMP": "2020-01-24T06:29:02.403Z", + "USER_ID": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "ANONYMOUS_ID": "string", + "CHANNEL": "string", + "CONTEXT_APP_BUILD": "string", + "CONTEXT_APP_NAME": "string", + "CONTEXT_APP_NAMESPACE": "string", + "CONTEXT_APP_VERSION": "string", + "CONTEXT_CTEST_MAP_CNESTED_MAP": "json", + "CONTEXT_IP": "string", + "CONTEXT_LIBRARY_NAME": "string", + "CONTEXT_LIBRARY_VERSION": "string", + "CONTEXT_LOCALE": "string", + "CONTEXT_PASSED_IP": "string", + "CONTEXT_REQUEST_IP": "string", + "CONTEXT_SCREEN_DENSITY": "int", + "CONTEXT_USER_AGENT": "string", + "CURRENCY": "string", + "ID": "string", + "ORIGINAL_TIMESTAMP": "datetime", + "RECEIVED_AT": "datetime", + "REVENUE": "int", + "SENT_AT": "datetime", + "TEST_MAP_NESTED_MAP": "json", + "TIMESTAMP": "datetime", + "USER_ID": "string", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "SCREENS" + } + } + ], + } +} diff --git a/test/__tests__/data/warehouse/integrations/jsonpaths/new/tracks.js b/test/__tests__/data/warehouse/integrations/jsonpaths/new/tracks.js new file mode 100644 index 00000000000..7ed95685ff2 --- /dev/null +++ b/test/__tests__/data/warehouse/integrations/jsonpaths/new/tracks.js @@ -0,0 +1,830 @@ +module.exports = { + input: { + destination: { + Config: {} + }, + message: { + anonymousId: "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + channel: "web", + context: { + app: { + build: "1.0.0", + name: "RudderLabs JavaScript SDK", + namespace: "com.rudderlabs.javascript", + version: "1.0.5" + }, + ip: "0.0.0.0", + library: { + name: "RudderLabs JavaScript SDK", + version: "1.0.5" + }, + locale: "en-GB", + screen: { + density: 2 + }, + traits: { + city: "Disney", + country: "USA", + email: "mickey@disney.com", + firstname: "Mickey" + }, + CMap: { + nestedMap: { + n1: "context nested prop 1" + } + }, + userAgent: + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" + }, + event: "Product Added", + integrations: { + All: true, + RS: { + options: { + jsonPaths: [ + "track.userProperties.UPMap.nestedMap", + "track.properties.PMap.nestedMap", + "track.context.CMap.nestedMap", + ] + } + }, + BQ: { + options: { + jsonPaths: [ + "track.userProperties.UPMap.nestedMap", + "track.properties.PMap.nestedMap", + "track.context.CMap.nestedMap", + ] + } + }, + POSTGRES: { + options: { + jsonPaths: [ + "track.userProperties.UPMap.nestedMap", + "track.properties.PMap.nestedMap", + "track.context.CMap.nestedMap", + ] + } + }, + SNOWFLAKE: { + options: { + jsonPaths: [ + "track.userProperties.UPMap.nestedMap", + "track.properties.PMap.nestedMap", + "track.context.CMap.nestedMap", + ] + } + }, + S3_DATALAKE: { + options: { + skipReservedKeywordsEscaping: true + } + }, + }, + messageId: "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + originalTimestamp: "2020-01-24T06:29:02.364Z", + userProperties: { + email: "test@gmail.com", + UPMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + properties: { + currency: "USD", + revenue: 50, + PMap: { + nestedMap: { + n1: "nested prop 1" + } + }, + }, + receivedAt: "2020-01-24T11:59:02.403+05:30", + request_ip: "[::1]:53708", + sentAt: "2020-01-24T06:29:02.364Z", + timestamp: "2020-01-24T11:59:02.403+05:30", + type: "track", + userId: "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + request: { + query: { + whSchemaVersion: "v1" + } + } + }, + output: { + default: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_traits_city": "Disney", + "context_traits_country": "USA", + "context_traits_email": "mickey@disney.com", + "context_traits_firstname": "Mickey", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "event": "product_added", + "event_text": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_traits_city": "string", + "context_traits_country": "string", + "context_traits_email": "string", + "context_traits_firstname": "string", + "context_user_agent": "string", + "event": "string", + "event_text": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "tracks" + } + }, + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_c_map_nested_map_n_1": "context nested prop 1", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_traits_city": "Disney", + "context_traits_country": "USA", + "context_traits_email": "mickey@disney.com", + "context_traits_firstname": "Mickey", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "email": "test@gmail.com", + "event": "product_added", + "event_text": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "p_map_nested_map_n_1": "nested prop 1", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "timestamp": "2020-01-24T06:29:02.403Z", + "up_map_nested_map_n_1": "nested prop 1", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map_n_1": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_traits_city": "string", + "context_traits_country": "string", + "context_traits_email": "string", + "context_traits_firstname": "string", + "context_user_agent": "string", + "currency": "string", + "email": "string", + "event": "string", + "event_text": "string", + "id": "string", + "original_timestamp": "datetime", + "p_map_nested_map_n_1": "string", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "timestamp": "datetime", + "up_map_nested_map_n_1": "string", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "product_added" + } + } + ], + rs: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_c_map_nested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_traits_city": "Disney", + "context_traits_country": "USA", + "context_traits_email": "mickey@disney.com", + "context_traits_firstname": "Mickey", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "event": "product_added", + "event_text": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map": "json", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_traits_city": "string", + "context_traits_country": "string", + "context_traits_email": "string", + "context_traits_firstname": "string", + "context_user_agent": "string", + "event": "string", + "event_text": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "tracks" + } + }, + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_c_map_nested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_traits_city": "Disney", + "context_traits_country": "USA", + "context_traits_email": "mickey@disney.com", + "context_traits_firstname": "Mickey", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "email": "test@gmail.com", + "event": "product_added", + "event_text": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "p_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "timestamp": "2020-01-24T06:29:02.403Z", + "up_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map": "json", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_traits_city": "string", + "context_traits_country": "string", + "context_traits_email": "string", + "context_traits_firstname": "string", + "context_user_agent": "string", + "currency": "string", + "email": "string", + "event": "string", + "event_text": "string", + "id": "string", + "original_timestamp": "datetime", + "p_map_nested_map": "json", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "timestamp": "datetime", + "up_map_nested_map": "json", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "product_added" + } + } + ], + bq: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_c_map_nested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_traits_city": "Disney", + "context_traits_country": "USA", + "context_traits_email": "mickey@disney.com", + "context_traits_firstname": "Mickey", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "event": "product_added", + "event_text": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_traits_city": "string", + "context_traits_country": "string", + "context_traits_email": "string", + "context_traits_firstname": "string", + "context_user_agent": "string", + "event": "string", + "event_text": "string", + "id": "string", + "loaded_at": "datetime", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "tracks" + } + }, + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_c_map_nested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_traits_city": "Disney", + "context_traits_country": "USA", + "context_traits_email": "mickey@disney.com", + "context_traits_firstname": "Mickey", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "email": "test@gmail.com", + "event": "product_added", + "event_text": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "p_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "timestamp": "2020-01-24T06:29:02.403Z", + "up_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map": "string", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_traits_city": "string", + "context_traits_country": "string", + "context_traits_email": "string", + "context_traits_firstname": "string", + "context_user_agent": "string", + "currency": "string", + "email": "string", + "event": "string", + "event_text": "string", + "id": "string", + "loaded_at": "datetime", + "original_timestamp": "datetime", + "p_map_nested_map": "string", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "timestamp": "datetime", + "up_map_nested_map": "string", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "product_added" + } + } + ], + postgres: [ + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_c_map_nested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_traits_city": "Disney", + "context_traits_country": "USA", + "context_traits_email": "mickey@disney.com", + "context_traits_firstname": "Mickey", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "event": "product_added", + "event_text": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "received_at": "2020-01-24T06:29:02.403Z", + "sent_at": "2020-01-24T06:29:02.364Z", + "timestamp": "2020-01-24T06:29:02.403Z", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map": "json", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_traits_city": "string", + "context_traits_country": "string", + "context_traits_email": "string", + "context_traits_firstname": "string", + "context_user_agent": "string", + "event": "string", + "event_text": "string", + "id": "string", + "original_timestamp": "datetime", + "received_at": "datetime", + "sent_at": "datetime", + "timestamp": "datetime", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "tracks" + } + }, + { + "data": { + "anonymous_id": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "channel": "web", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.5", + "context_c_map_nested_map": "{\"n1\":\"context nested prop 1\"}", + "context_ip": "0.0.0.0", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.5", + "context_locale": "en-GB", + "context_passed_ip": "0.0.0.0", + "context_request_ip": "[::1]:53708", + "context_screen_density": 2, + "context_traits_city": "Disney", + "context_traits_country": "USA", + "context_traits_email": "mickey@disney.com", + "context_traits_firstname": "Mickey", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "currency": "USD", + "email": "test@gmail.com", + "event": "product_added", + "event_text": "Product Added", + "id": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "original_timestamp": "2020-01-24T06:29:02.364Z", + "p_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "received_at": "2020-01-24T06:29:02.403Z", + "revenue": 50, + "sent_at": "2020-01-24T06:29:02.364Z", + "timestamp": "2020-01-24T06:29:02.403Z", + "up_map_nested_map": "{\"n1\":\"nested prop 1\"}", + "user_id": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "anonymous_id": "string", + "channel": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_c_map_nested_map": "json", + "context_ip": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_locale": "string", + "context_passed_ip": "string", + "context_request_ip": "string", + "context_screen_density": "int", + "context_traits_city": "string", + "context_traits_country": "string", + "context_traits_email": "string", + "context_traits_firstname": "string", + "context_user_agent": "string", + "currency": "string", + "email": "string", + "event": "string", + "event_text": "string", + "id": "string", + "original_timestamp": "datetime", + "p_map_nested_map": "json", + "received_at": "datetime", + "revenue": "int", + "sent_at": "datetime", + "timestamp": "datetime", + "up_map_nested_map": "json", + "user_id": "string", + "uuid_ts": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "product_added" + } + } + ], + snowflake: [ + { + "data": { + "ANONYMOUS_ID": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "CHANNEL": "web", + "CONTEXT_APP_BUILD": "1.0.0", + "CONTEXT_APP_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_APP_NAMESPACE": "com.rudderlabs.javascript", + "CONTEXT_APP_VERSION": "1.0.5", + "CONTEXT_C_MAP_NESTED_MAP": "{\"n1\":\"context nested prop 1\"}", + "CONTEXT_IP": "0.0.0.0", + "CONTEXT_LIBRARY_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_LIBRARY_VERSION": "1.0.5", + "CONTEXT_LOCALE": "en-GB", + "CONTEXT_PASSED_IP": "0.0.0.0", + "CONTEXT_REQUEST_IP": "[::1]:53708", + "CONTEXT_SCREEN_DENSITY": 2, + "CONTEXT_TRAITS_CITY": "Disney", + "CONTEXT_TRAITS_COUNTRY": "USA", + "CONTEXT_TRAITS_EMAIL": "mickey@disney.com", + "CONTEXT_TRAITS_FIRSTNAME": "Mickey", + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "EVENT": "product_added", + "EVENT_TEXT": "Product Added", + "ID": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "ORIGINAL_TIMESTAMP": "2020-01-24T06:29:02.364Z", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "SENT_AT": "2020-01-24T06:29:02.364Z", + "TIMESTAMP": "2020-01-24T06:29:02.403Z", + "USER_ID": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "ANONYMOUS_ID": "string", + "CHANNEL": "string", + "CONTEXT_APP_BUILD": "string", + "CONTEXT_APP_NAME": "string", + "CONTEXT_APP_NAMESPACE": "string", + "CONTEXT_APP_VERSION": "string", + "CONTEXT_C_MAP_NESTED_MAP": "json", + "CONTEXT_IP": "string", + "CONTEXT_LIBRARY_NAME": "string", + "CONTEXT_LIBRARY_VERSION": "string", + "CONTEXT_LOCALE": "string", + "CONTEXT_PASSED_IP": "string", + "CONTEXT_REQUEST_IP": "string", + "CONTEXT_SCREEN_DENSITY": "int", + "CONTEXT_TRAITS_CITY": "string", + "CONTEXT_TRAITS_COUNTRY": "string", + "CONTEXT_TRAITS_EMAIL": "string", + "CONTEXT_TRAITS_FIRSTNAME": "string", + "CONTEXT_USER_AGENT": "string", + "EVENT": "string", + "EVENT_TEXT": "string", + "ID": "string", + "ORIGINAL_TIMESTAMP": "datetime", + "RECEIVED_AT": "datetime", + "SENT_AT": "datetime", + "TIMESTAMP": "datetime", + "USER_ID": "string", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "TRACKS" + } + }, + { + "data": { + "ANONYMOUS_ID": "e6ab2c5e-2cda-44a9-a962-e2f67df78bca", + "CHANNEL": "web", + "CONTEXT_APP_BUILD": "1.0.0", + "CONTEXT_APP_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_APP_NAMESPACE": "com.rudderlabs.javascript", + "CONTEXT_APP_VERSION": "1.0.5", + "CONTEXT_C_MAP_NESTED_MAP": "{\"n1\":\"context nested prop 1\"}", + "CONTEXT_IP": "0.0.0.0", + "CONTEXT_LIBRARY_NAME": "RudderLabs JavaScript SDK", + "CONTEXT_LIBRARY_VERSION": "1.0.5", + "CONTEXT_LOCALE": "en-GB", + "CONTEXT_PASSED_IP": "0.0.0.0", + "CONTEXT_REQUEST_IP": "[::1]:53708", + "CONTEXT_SCREEN_DENSITY": 2, + "CONTEXT_TRAITS_CITY": "Disney", + "CONTEXT_TRAITS_COUNTRY": "USA", + "CONTEXT_TRAITS_EMAIL": "mickey@disney.com", + "CONTEXT_TRAITS_FIRSTNAME": "Mickey", + "CONTEXT_USER_AGENT": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", + "CURRENCY": "USD", + "EMAIL": "test@gmail.com", + "EVENT": "product_added", + "EVENT_TEXT": "Product Added", + "ID": "a6a0ad5a-bd26-4f19-8f75-38484e580fc7", + "ORIGINAL_TIMESTAMP": "2020-01-24T06:29:02.364Z", + "P_MAP_NESTED_MAP": "{\"n1\":\"nested prop 1\"}", + "RECEIVED_AT": "2020-01-24T06:29:02.403Z", + "REVENUE": 50, + "SENT_AT": "2020-01-24T06:29:02.364Z", + "TIMESTAMP": "2020-01-24T06:29:02.403Z", + "UP_MAP_NESTED_MAP": "{\"n1\":\"nested prop 1\"}", + "USER_ID": "9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33" + }, + "metadata": { + "columns": { + "ANONYMOUS_ID": "string", + "CHANNEL": "string", + "CONTEXT_APP_BUILD": "string", + "CONTEXT_APP_NAME": "string", + "CONTEXT_APP_NAMESPACE": "string", + "CONTEXT_APP_VERSION": "string", + "CONTEXT_C_MAP_NESTED_MAP": "json", + "CONTEXT_IP": "string", + "CONTEXT_LIBRARY_NAME": "string", + "CONTEXT_LIBRARY_VERSION": "string", + "CONTEXT_LOCALE": "string", + "CONTEXT_PASSED_IP": "string", + "CONTEXT_REQUEST_IP": "string", + "CONTEXT_SCREEN_DENSITY": "int", + "CONTEXT_TRAITS_CITY": "string", + "CONTEXT_TRAITS_COUNTRY": "string", + "CONTEXT_TRAITS_EMAIL": "string", + "CONTEXT_TRAITS_FIRSTNAME": "string", + "CONTEXT_USER_AGENT": "string", + "CURRENCY": "string", + "EMAIL": "string", + "EVENT": "string", + "EVENT_TEXT": "string", + "ID": "string", + "ORIGINAL_TIMESTAMP": "datetime", + "P_MAP_NESTED_MAP": "json", + "RECEIVED_AT": "datetime", + "REVENUE": "int", + "SENT_AT": "datetime", + "TIMESTAMP": "datetime", + "UP_MAP_NESTED_MAP": "json", + "USER_ID": "string", + "UUID_TS": "datetime" + }, + "receivedAt": "2020-01-24T11:59:02.403+05:30", + "table": "PRODUCT_ADDED" + } + } + ] + } +} diff --git a/test/__tests__/data/webhook_router_input.json b/test/__tests__/data/webhook_router_input.json index 6305fbfe771..c78f30a7cdc 100644 --- a/test/__tests__/data/webhook_router_input.json +++ b/test/__tests__/data/webhook_router_input.json @@ -92,7 +92,7 @@ } }, "metadata": { - "jobId": 2 + "jobId": 1 }, "destination": { "Config": { diff --git a/test/__tests__/data/webhook_router_output.json b/test/__tests__/data/webhook_router_output.json index 716f8f3c76f..c398b289818 100644 --- a/test/__tests__/data/webhook_router_output.json +++ b/test/__tests__/data/webhook_router_output.json @@ -111,7 +111,7 @@ }, "metadata": [ { - "jobId": 2 + "jobId": 1 } ], "batched": false, diff --git a/test/__tests__/data/woopra.json b/test/__tests__/data/woopra.json index f8ed16bac11..5819eba13a6 100644 --- a/test/__tests__/data/woopra.json +++ b/test/__tests__/data/woopra.json @@ -32,8 +32,8 @@ "messageId": "1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb", "originalTimestamp": "2020-09-28T19:53:31.900Z", "traits": { - "name": "Anant jain", - "email": "anant@r.com", + "name": "John Doe", + "email": "test@r.com", "hasPurchased": "yes", "address": "H.No. abc Street PQRS ", "state": "Delhi", @@ -66,8 +66,8 @@ "browser": "Chrome86.0.4240.111", "cookie": "21e13f4bc7ceddad", "Project": "abc.com", - "cv_email": "anant@r.com", - "cv_name": "Anant jain", + "cv_email": "test@r.com", + "cv_name": "John Doe", "cv_state": "Delhi", "cv_title": "Mr", "cv_hasPurchased": "yes", diff --git a/test/__tests__/data/wootric.json b/test/__tests__/data/wootric.json index 35477bfc2f9..c7c63694f1a 100644 --- a/test/__tests__/data/wootric.json +++ b/test/__tests__/data/wootric.json @@ -6,7 +6,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-99999" + "accountToken": "NPS-dummyToken12" }, "ID": "wootric-1234" }, @@ -37,7 +37,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "wootric-1234" }, @@ -139,7 +139,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "wootric-1234" }, @@ -239,7 +239,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "wootric-1234" }, @@ -339,7 +339,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "wootric-1234" }, @@ -411,7 +411,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "wootric-1234" }, @@ -491,7 +491,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "wootric-1234" }, @@ -589,7 +589,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "wootric-1234" }, @@ -681,7 +681,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "wootric-1234" }, @@ -776,7 +776,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "wootric-1234" }, @@ -885,7 +885,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "wootric-1234" }, @@ -965,7 +965,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "wootric-1234" }, @@ -1045,7 +1045,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "wootric-1234" }, @@ -1125,7 +1125,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "wootric-1234" }, @@ -1215,7 +1215,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "wootric-1234" }, @@ -1294,7 +1294,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "wootric-1234" }, @@ -1384,7 +1384,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "wootric-1234" }, diff --git a/test/__tests__/data/wootric_router_input.json b/test/__tests__/data/wootric_router_input.json index 803931150d6..360c07afa53 100644 --- a/test/__tests__/data/wootric_router_input.json +++ b/test/__tests__/data/wootric_router_input.json @@ -4,7 +4,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -77,7 +77,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -149,7 +149,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -221,7 +221,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -284,7 +284,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -355,7 +355,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -421,7 +421,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -487,7 +487,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -557,7 +557,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -637,7 +637,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -708,7 +708,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -779,7 +779,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -849,7 +849,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -919,7 +919,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -1000,7 +1000,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, diff --git a/test/__tests__/data/wootric_router_output.json b/test/__tests__/data/wootric_router_output.json index ec126e2d0e4..4d23a783c8d 100644 --- a/test/__tests__/data/wootric_router_output.json +++ b/test/__tests__/data/wootric_router_output.json @@ -41,7 +41,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" } } }, @@ -86,7 +86,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" } } }, @@ -131,7 +131,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" } } }, @@ -140,7 +140,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -162,7 +162,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -213,7 +213,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" } } }, @@ -251,7 +251,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" } } }, @@ -293,7 +293,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" } } }, @@ -339,7 +339,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" } } }, @@ -353,7 +353,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -370,7 +370,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -420,7 +420,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" } } }, @@ -429,7 +429,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -451,7 +451,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, @@ -478,7 +478,7 @@ "Config": { "username": "wootricfakeuser@example.com", "password": "password@123", - "accountToken": "NPS-1234567" + "accountToken": "NPS-dummyToken" }, "ID": "2D7TqLto9tnkBuR1ciMrbiA4cbG" }, diff --git a/test/__tests__/eloqua-cdk.test.ts b/test/__tests__/eloqua-cdk.test.ts new file mode 100644 index 00000000000..455e738b263 --- /dev/null +++ b/test/__tests__/eloqua-cdk.test.ts @@ -0,0 +1,35 @@ +import fs from 'fs'; +import path from 'path'; +import { processCdkV2Workflow } from '../../src/cdk/v2/handler'; +import tags from '../../src/v0/util/tags'; + +const integration = 'eloqua'; +const destName = 'Eloqua'; + +// Processor Test files +const processorTestDataFile = fs.readFileSync( + path.resolve(__dirname, `./data/${integration}.json`), + { + encoding: 'utf8', + }, +); +const processorTestData = JSON.parse(processorTestDataFile); + +describe(`${destName} Tests`, () => { + describe('Processor Tests', () => { + processorTestData.forEach((dataPoint, index) => { + it(`${destName} processor payload: ${index}`, async () => { + try { + const output = await processCdkV2Workflow( + integration, + dataPoint.input, + tags.FEATURES.PROCESSOR, + ); + expect(output).toEqual(dataPoint.output); + } catch (error: any) { + expect(error.message).toEqual(dataPoint.output.error); + } + }); + }); + }); +}); diff --git a/test/__tests__/facebook.test.js b/test/__tests__/facebook.test.js deleted file mode 100644 index cd82a9058c5..00000000000 --- a/test/__tests__/facebook.test.js +++ /dev/null @@ -1,50 +0,0 @@ -const integration = "fb"; -const name = "Facebook"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -// Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -inputData.forEach((input, index) => { - test(`${name} Tests: payload - ${index}`, () => { - let output, expected; - try { - output = transformer.process(input); - expected = expectedData[index]; - } catch (error) { - output = error.message; - expected = expectedData[index].message; - } - expect(output).toEqual(expected); - }); -}); - -describe(`${name} Tests`, () => { - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/tiktok_ads_offline_events.test.js b/test/__tests__/facebook_conversions.test.js similarity index 88% rename from test/__tests__/tiktok_ads_offline_events.test.js rename to test/__tests__/facebook_conversions.test.js index 849f73befc8..5bb905b5c81 100644 --- a/test/__tests__/tiktok_ads_offline_events.test.js +++ b/test/__tests__/facebook_conversions.test.js @@ -1,5 +1,5 @@ -const integration = "tiktok_ads_offline_events"; -const name = "TikTok Ads Offline Events"; +const integration = "facebook_conversions"; +const name = "facebook_conversions"; const fs = require("fs"); const path = require("path"); @@ -23,6 +23,8 @@ const outputRouterDataFile = fs.readFileSync( const inputRouterData = JSON.parse(inputRouterDataFile); const expectedRouterData = JSON.parse(outputRouterDataFile); +Date.now = jest.fn(() => new Date("2023-11-12T15:46:51.000Z")); // 2023-11-12T15:46:51.693229+05:30 + describe(`${name} Tests`, () => { describe("Processor", () => { testData.forEach((dataPoint, index) => { @@ -36,7 +38,7 @@ describe(`${name} Tests`, () => { }); }); }); - + describe("Router Tests", () => { it("Payload", async () => { const routerOutput = await transformer.processRouterDest(inputRouterData); diff --git a/test/__tests__/facebook_offline_conversions.test.js b/test/__tests__/facebook_offline_conversions.test.js deleted file mode 100644 index aafecc9f960..00000000000 --- a/test/__tests__/facebook_offline_conversions.test.js +++ /dev/null @@ -1,85 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -const integration = "facebook_offline_conversions"; -const name = "facebook_offline_conversions"; -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -const testDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}.json`) -); -const testData = JSON.parse(testDataFile); - -// Router Test files -const routerTestDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router.json`) -); -const routerTestData = JSON.parse(routerTestDataFile); - -describe(`${name} Tests`, () => { - describe("Processor", () => { - testData.forEach((dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, async () => { - let output = []; - let expected; - try { - const payload = transformer.process(dataPoint.input); - payload.forEach(eachPayload => { - const queryParams = eachPayload.endpoint.split("?")[1]; - const queryPramsArray = new URLSearchParams(queryParams); - const response = {}; - for (let pair of queryPramsArray.entries()) { - response[pair[0]] = pair[1]; - } - output.push(response); - }); - expected = dataPoint.output; - } catch (error) { - output = error.message; - expected = dataPoint.output.error; - } - expect(output).toEqual(expected); - }); - }); - }); - - describe("Router Tests", () => { - routerTestData.forEach(async dataPoint => { - it("Payload", async () => { - const batchedResponse = await transformer.processRouterDest( - dataPoint.input - ); - const output = []; - batchedResponse.forEach(response => { - const { statusCode } = response; - if (statusCode === 200) { - const data = []; - const { - batchedRequest, - destination, - batched, - metadata, - statusCode - } = response; - batchedRequest.forEach(request => { - const { endpoint } = request; - const queryParams = endpoint.split("?")[1]; - const queryPramsArray = new URLSearchParams(queryParams); - const batchResponse = {}; - for (let pair of queryPramsArray.entries()) { - batchResponse[pair[0]] = pair[1]; - } - data.push(batchResponse); - }); - output.push({ destination, batched, metadata, statusCode, data }); - } else { - output.push(response); - } - }); - expect(output).toEqual(dataPoint.output); - }); - }); - }); -}); diff --git a/test/__tests__/fb_custom_audience.test.js b/test/__tests__/fb_custom_audience.test.js deleted file mode 100644 index 423e5115261..00000000000 --- a/test/__tests__/fb_custom_audience.test.js +++ /dev/null @@ -1,66 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -const integration = "fb_custom_audience"; -const name = "fb_custom_audience"; -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -const testDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}.json`) -); -const testData = JSON.parse(testDataFile); - -// Router Test files -const routerTestDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router.json`) -); -const routerTestData = JSON.parse(routerTestDataFile); - -describe(`${name} Tests`, () => { - describe("Processor", () => { - testData.forEach(async (dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, async () => { - try { - const output = await transformer.process(dataPoint.input); - expect(output).toEqual(dataPoint.output); - } catch (error) { - expect(error.message).toEqual(dataPoint.output.error); - } - }); - }); - }); - - describe("Router Tests", () => { - routerTestData.forEach(async dataPoint => { - it("Payload", async () => { - const output = await transformer.processRouterDest(dataPoint.input); - expect(output).toEqual(dataPoint.output); - }); - }); - }); -}); - -describe("Router Tests for rETL sources", () => { - it("should send events to dest", async () => { - const input = JSON.parse( - fs.readFileSync( - path.resolve( - __dirname, - `data/${integration}_router_rETL_input.json` - ) - ) - ); - const output = JSON.parse( - fs.readFileSync( - path.resolve( - __dirname, - `data/${integration}_router_rETL_output.json` - ) - ) - ); - const actualOutput = await transformer.processRouterDest(input); - expect(actualOutput).toEqual(output); - }); -}); diff --git a/test/__tests__/fbpixel.test.js b/test/__tests__/fbpixel.test.js deleted file mode 100644 index 6d593ddd1bc..00000000000 --- a/test/__tests__/fbpixel.test.js +++ /dev/null @@ -1,53 +0,0 @@ -const integration = "facebook_pixel"; -const name = "Fbpixel"; - -const fs = require("fs"); -const path = require("path"); -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -// Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -Date.now = jest.fn(() => new Date("2019-09-01T15:46:51.000Z")); //2019-09-01T15:46:51.693229+05:30 - -describe(`${name} Tests`, () => { - describe("Processor Tests", () => { - inputData.forEach((input, index) => { - it(`${name} - payload: ${index}`, async () => { - try { - const output = await transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - if (error.statTags) { - expect(error.statTags).toMatchObject(expectedData[index].statTags); - } - } - }); - }); - }); - - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/firehose.test.js b/test/__tests__/firehose.test.js deleted file mode 100644 index feff4e2f9d9..00000000000 --- a/test/__tests__/firehose.test.js +++ /dev/null @@ -1,29 +0,0 @@ -const integration = "firehose"; -const name = "FIREHOSE"; - -const fs = require("fs"); -const path = require("path"); -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); - -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -inputData.forEach((input, index) => { - it(`${name} Tests: payload: ${index}`, () => { - try { - const output = transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - } - }); -}); diff --git a/test/__tests__/flatten_events.test.js b/test/__tests__/flatten_events.test.js index 2e3f142aca0..502140bccd0 100644 --- a/test/__tests__/flatten_events.test.js +++ b/test/__tests__/flatten_events.test.js @@ -9,7 +9,7 @@ Key aspects covered: 2. Coud source event - same as above for nested property under level 3 - Above level 3 are stringified and considered as string type - 3. Introducing jsonKeys for BQ, PG, RS, SF + 3. Introducing jsonLegacyPathKeys for BQ, PG, RS, SF - data types: int, float, string, json - number, string, array, objects fit under json data type, value is json stringified - in BQ, json type is just a string data type @@ -83,8 +83,8 @@ describe("Flatten event properties", () => { expect(columnTypes).toEqual(expected.columnTypes); }); - it("Should stringify properties of sample event if jsonKeys are present", () => { - options.jsonKeys = { + it("Should stringify properties of sample event if jsonLegacyPathKeys are present", () => { + options.jsonLegacyPathKeys = { arrayProp: 0, objectProp_firstLevelMap_secondLevelMap: 2 }; @@ -98,14 +98,14 @@ describe("Flatten event properties", () => { columnTypes, options ); - delete options.jsonKeys; + delete options.jsonLegacyPathKeys; const expected = fOutput("json_key_event", integrations[index]); expect(output).toEqual(expected.output); expect(columnTypes).toEqual(expected.columnTypes); }); - it("Should stringify properties of sample event and jsonKeys has more priority than cloud source at level 3", () => { - options.jsonKeys = { + it("Should stringify properties of sample event and jsonLegacyPathKeys has more priority than cloud source at level 3", () => { + options.jsonLegacyPathKeys = { objectProp_firstLevelMap_secondLevelMap_thirdLevelMap: 3 }; options.sourceCategory = "cloud"; @@ -119,15 +119,15 @@ describe("Flatten event properties", () => { columnTypes, options ); - delete options.jsonKeys; + delete options.jsonLegacyPathKeys; delete options.sourceCategory; const expected = fOutput("json_key_cloud_event", integrations[index]); expect(output).toEqual(expected.output); expect(columnTypes).toEqual(expected.columnTypes); }); - it("Should stringify properties of nested event and jsonKeys is not applied for cloud source at level > 3", () => { - options.jsonKeys = { + it("Should stringify properties of nested event and jsonLegacyPathKeys is not applied for cloud source at level > 3", () => { + options.jsonLegacyPathKeys = { objectProp_firstLevelMap_secondLevelMap_thirdLevelMap_fourthLevelMap: 4, arrayProp: 0 }; @@ -142,15 +142,15 @@ describe("Flatten event properties", () => { columnTypes, options ); - delete options.jsonKeys; + delete options.jsonLegacyPathKeys; delete options.sourceCategory; const expected = fOutput("cloud_json_key_event", integrations[index]); expect(output).toEqual(expected.output); expect(columnTypes).toEqual(expected.columnTypes); }); - it("Should flatten all properties of sample event and jsonkeys is not applicable other than track events", () => { - options.jsonKeys = { arrayProp: 0 }; + it("Should flatten all properties of sample event and jsonLegacyPathKeys is not applicable other than track events", () => { + options.jsonLegacyPathKeys = { arrayProp: 0 }; const output = {}; const columnTypes = {}; setDataFromInputAndComputeColumnTypes( @@ -161,19 +161,19 @@ describe("Flatten event properties", () => { columnTypes, options ); - delete options.jsonKeys; + delete options.jsonLegacyPathKeys; // Will be same as flattening all properties const expected = fOutput("sample_event", integrations[index]); expect(output).toEqual(expected.output); expect(columnTypes).toEqual(expected.columnTypes); }); - it("Should flatten all properties of sample event and declared jsonKeys get stringified primitive values", () => { + it("Should flatten all properties of sample event and declared jsonLegacyPathKeys get stringified primitive values", () => { i.dateProp = "2022-01-01T00:00:00.000Z"; i.objectProp.firstLevelDateProp = "2022-01-01T01:01:01.111Z"; i.objectProp.firstLevelMap.secondLevelDateProp = "2022-01-01T02:02:02.222Z"; - options.jsonKeys = { + options.jsonLegacyPathKeys = { nullProp: 0, blankProp: 0, floatProp: 0, @@ -195,7 +195,7 @@ describe("Flatten event properties", () => { columnTypes, options ); - delete options.jsonKeys; + delete options.jsonLegacyPathKeys; delete i.dateProp; delete i.objectProp.firstLevelDateProp; delete i.objectProp.firstLevelMap.secondLevelDateProp; @@ -204,12 +204,12 @@ describe("Flatten event properties", () => { expect(columnTypes).toEqual(expected.columnTypes); }); - it("Should ignore rudder reserved columns even though they are set as jsonKeys", () => { + it("Should ignore rudder reserved columns even though they are set as jsonLegacyPathKeys", () => { // setting two reserved columns as map i.anonymous_id = "ignored column"; i.timestamp = "ignored column"; // setting reserved colum paths as json keys - options.jsonKeys = { anonymous_id: 0, timestamp: 0 }; + options.jsonLegacyPathKeys = { anonymous_id: 0, timestamp: 0 }; const output = {}; const columnTypes = {}; setDataFromInputAndComputeColumnTypes( @@ -220,19 +220,19 @@ describe("Flatten event properties", () => { columnTypes, options ); - delete options.jsonKeys; + delete options.jsonLegacyPathKeys; // Will be same as flattening all properties with reserved columns being ignored const expected = fOutput("sample_event", integrations[index]); expect(output).toEqual(expected.output); expect(columnTypes).toEqual(expected.columnTypes); }); - it("Should apply escaping on WH reserved columns even though they are set as jsonKeys", () => { + it("Should apply escaping on WH reserved columns even though they are set as jsonLegacyPathKeys", () => { // setting two reserved columns as map i.between = "escaped column"; i.as = "escaped column"; // setting reserved colum paths as json keys - options.jsonKeys = { between: 0, as: 0 }; + options.jsonLegacyPathKeys = { between: 0, as: 0 }; const output = {}; const columnTypes = {}; setDataFromInputAndComputeColumnTypes( @@ -243,7 +243,7 @@ describe("Flatten event properties", () => { columnTypes, options ); - delete options.jsonKeys; + delete options.jsonLegacyPathKeys; // Escaping is applied as usual for json keys too const expected = fOutput("escape_event", integrations[index]); expect(output).toEqual(expected.output); diff --git a/test/__tests__/fullstory-cdk.test.ts b/test/__tests__/fullstory-cdk.test.ts new file mode 100644 index 00000000000..f7e0491aac9 --- /dev/null +++ b/test/__tests__/fullstory-cdk.test.ts @@ -0,0 +1,32 @@ +import fs from 'fs'; +import path from 'path'; +import { processCdkV2Workflow } from '../../src/cdk/v2/handler'; +import tags from '../../src/v0/util/tags'; + +const integration = 'fullstory'; +const destName = 'Fullstory'; + +// Processor Test files +const testDataFile = fs.readFileSync(path.resolve(__dirname, `./data/${integration}.json`), { + encoding: 'utf8', +}); +const testData = JSON.parse(testDataFile); + +describe(`${destName} Tests`, () => { + describe('Processor Tests', () => { + testData.forEach((dataPoint, index) => { + it(`${destName} - payload: ${index}`, async () => { + try { + const output = await processCdkV2Workflow( + integration, + dataPoint.input, + tags.FEATURES.PROCESSOR, + ); + expect(output).toEqual(dataPoint.output); + } catch (error: any) { + expect(error.message).toEqual(dataPoint.output.error); + } + }); + }); + }); +}); diff --git a/test/__tests__/ga.test.js b/test/__tests__/ga.test.js deleted file mode 100644 index 908cfda4a67..00000000000 --- a/test/__tests__/ga.test.js +++ /dev/null @@ -1,56 +0,0 @@ -const util = require("util"); -const integration = "ga"; -const name = "Google Analytics"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/ga/transform`); - -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); - -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); - -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -Date.now = jest.fn(() => new Date("2022-04-29T05:17:09Z")); - -inputData.forEach((input, index) => { - test(`${name} Tests : payload: ${index}`, () => { - let output, expected; - try { - output = transformer.process(input); - expected = expectedData[index]; - expected.params.qt = output.params.qt; - } catch (error) { - output = error.message; - expected = expectedData[index].message; - } - expect(output).toEqual(expected); - }); -}); - -describe(`${name} Tests`, () => { - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/ga360.test.js b/test/__tests__/ga360.test.js deleted file mode 100644 index fb28d7fe179..00000000000 --- a/test/__tests__/ga360.test.js +++ /dev/null @@ -1,52 +0,0 @@ -const util = require("util"); -const integration = "ga360"; -const name = "Google Analytics 360"; - -const fs = require("fs"); -const path = require("path"); -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); - -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); - -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -inputData.forEach((input, index) => { - test(`${name} Tests : payload: ${index}`, () => { - let output, expected; - try { - output = transformer.process(input); - expected = expectedData[index]; - } catch (error) { - output = error.message; - expected = expectedData[index].message; - } - expect(output).toEqual(expected); - }); -}); - -describe(`${name} Tests`, () => { - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/google_adwords_enhanced_conversions.test.js b/test/__tests__/google_adwords_enhanced_conversions.test.js deleted file mode 100644 index 5da140e5a9b..00000000000 --- a/test/__tests__/google_adwords_enhanced_conversions.test.js +++ /dev/null @@ -1,49 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -const integration = "google_adwords_enhanced_conversions"; -const name = "google_adwords_enhanced_conversions"; -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -// Router Test files -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -describe(`${name} Tests`, () => { - describe("Processor", () => { - inputData.forEach(async (input, index) => { - it(`Payload - ${index}`, async () => { - try { - const output = await transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - } - }); - }); - }); - - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/google_adwords_offline_conversions.test.js b/test/__tests__/google_adwords_offline_conversions.test.js deleted file mode 100644 index d1edec7b585..00000000000 --- a/test/__tests__/google_adwords_offline_conversions.test.js +++ /dev/null @@ -1,246 +0,0 @@ -const integration = "google_adwords_offline_conversions"; -const name = "Google Adwords Offline Conversions"; -const moment = require("moment"); - -const fs = require("fs"); -const path = require("path"); -const version = "v0"; -const responseFile = fs.readFileSync( - path.resolve(__dirname, `../__mocks__/data/google_adwords_offline_conversion/response.json`) -); -// fs.readFileSync("/Users/apple/Desktop/workspace/rudder-transformer/test//data/google_adwords_offline_conversion/response.json"); -const axios = require("axios"); -const { handleProxyRequest } = require("../../src/legacy/router"); - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -jest.mock("axios"); - -// setting timezone in testcase -moment.tz.setDefault("GMT"); - -// Processor test files -const testDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}.json`) -); -const testData = JSON.parse(testDataFile); - -// Router test files -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -// Proxy test files -const proxyInputJson = require("./data/google_adwords_offline_conversions_proxy_input.json"); -const proxyOutputJson = require("./data/google_adwords_offline_conversions_proxy_output.json"); - -// constructor level mocking -// This needs to be used for final requests made to destination -axios.mockImplementation(async config => { - // httpSend() -> inside ProxyRequest for google_adwords_offline - if ( - config.url.includes( - "https://googleads.googleapis.com/v13/customers/1234567891:uploadClickConversions" - ) - ) { - return { - data: [ - { - adjustmentType: "ENHANCEMENT", - conversionAction: "customers/1234567891/conversionActions/874224905", - adjustmentDateTime: "2021-01-01 12:32:45-08:00", - gclidDateTimePair: { - gclid: "1234", - conversionDateTime: "2021-01-01 12:32:45-08:00" - }, - orderId: "12345" - } - ], - status: 200 - }; - } -}); - -// method level mocking -// This needs to be used for requests made during transformation -// This needs to be used for requests made during proxy request (in rare-cases) -axios.post = jest.fn(async (url, data, reqConfig) => { - let axiosResponse; - // This mocking is for calls that make use of httpPOST() - if ( - url.includes( - "https://googleads.googleapis.com/v13/customers/1234567891/googleAds:searchStream" - ) - ) { - // this is for true case - if (data.query.includes("conversion_action")) { - // searchStream for conversion_action - axiosResponse = { - data: [ - { - results: [ - { - conversionAction: { - resourceName: - "customers/1234567891/conversionActions/848898416", - id: "848898416" - } - } - ], - fieldMask: "conversionAction.id", - requestId: "pNnCTCWGP9XOyy3Hmj7yGA" - } - ], - status: 200 - }; - } else if (data.query.includes("conversion_custom_variable")) { - // searchStream for conversion_custom_variable - axiosResponse = { - data: [ - { - results: [ - { - conversionCustomVariable: { - resourceName: - "customers/1234567891/conversionCustomVariables/19131634", - name: "revenue" - } - }, - { - conversionCustomVariable: { - resourceName: - "customers/1234567891/conversionCustomVariables/19134061", - name: "page_value" - } - } - ] - } - ], - status: 200 - }; - } - } else if ( - url.includes( - "https://googleads.googleapis.com/v13/customers/1234567890/googleAds:searchStream" - ) - ) { - // this case is for refresh token expire - axiosResponse = { - data: [ - { - error: { - code: 401, - message: - "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", - status: "UNAUTHENTICATED" - } - } - ], - status: 401 - }; - } else if ( - url.includes( - "https://googleads.googleapis.com/v13/customers/1112223333/googleAds:searchStream" - ) || - url.includes( - "https://googleads.googleapis.com/v13/customers/111-222-3333/googleAds:searchStream" - ) || url.includes( - "https://googleads.googleapis.com/v13/customers/customer-id/googleAds:searchStream" - ) - ) { - // this is for store case - if (data.query.includes("conversion_action")) { - // searchStream for conversion_action - axiosResponse = { - data: [ - { - results: [ - { - conversionAction: { - resourceName: - "customers/111-222-3333/offlineUserDataJobs/conversion_id", - id: "848898416" - } - } - ], - fieldMask: "conversionAction.id", - requestId: "pNnCTCWGP9XOyy3Hmj7yGA" - } - ], - status: 200 - }; - } else if (data.query.includes("conversion_custom_variable")) { - // searchStream for conversion_custom_variable - axiosResponse = { - data: [ - { - results: [ - { - conversionCustomVariable: { - resourceName: - "customers/1234567891/conversionCustomVariables/19131634", - name: "revenue" - } - }, - { - conversionCustomVariable: { - resourceName: - "customers/1234567891/conversionCustomVariables/19134061", - name: "page_value" - } - } - ] - } - ], - status: 200 - }; - } - } else { - // These cases are taken from response.json - const data = JSON.parse(responseFile); - axiosResponse = data[url]; - } - - return axiosResponse; -}); - -describe(`${name} Tests`, () => { - // processor - describe("Processor", () => { - testData.forEach((dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, async () => { - try { - const output = await transformer.process(dataPoint.input); - expect(output).toEqual(dataPoint.output); - } catch (error) { - // match message and statuscode - expect(error.message).toEqual(dataPoint.output.error); - expect(error.status).toEqual(dataPoint.output.statusCode); - } - }); - }); - }); - - // router - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); - - // proxy - describe("Proxy Request Tests", () => { - proxyInputJson.forEach((input, index) => { - it(`${name} Tests: payload - ${index}`, async () => { - const output = await handleProxyRequest(integration, input); - expect(output).toEqual(proxyOutputJson[index]); - }); - }); - }); -}); diff --git a/test/__tests__/google_adwords_remarketing_lists.test.js b/test/__tests__/google_adwords_remarketing_lists.test.js deleted file mode 100644 index 39257bfc6e7..00000000000 --- a/test/__tests__/google_adwords_remarketing_lists.test.js +++ /dev/null @@ -1,50 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -const integration = "google_adwords_remarketing_lists"; -const name = "google_adwords_remarketing_lists"; -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -// Router Test files -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -describe(`${name} Tests`, () => { - describe("Processor", () => { - inputData.forEach(async (input, index) => { - it(`Payload - ${index}`, async () => { - try { - const output = await transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - } - }); - }); - }); - - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - // console.log(JSON.stringify(routerOutput)); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/google_cloud_function.test.js b/test/__tests__/google_cloud_function.test.js deleted file mode 100644 index cec89300aab..00000000000 --- a/test/__tests__/google_cloud_function.test.js +++ /dev/null @@ -1,27 +0,0 @@ -const integration = "google_cloud_function"; -const name = "google_cloud_function"; - -const fs = require("fs"); -const path = require("path"); -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -// Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -describe(`${name} Tests`, () => { - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/googlepubsub.test.js b/test/__tests__/googlepubsub.test.js deleted file mode 100644 index a18f4c34059..00000000000 --- a/test/__tests__/googlepubsub.test.js +++ /dev/null @@ -1,29 +0,0 @@ -const integration = "googlepubsub"; -const name = "GOOGLEPUBSUB"; - -const fs = require("fs"); -const path = require("path"); -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); - -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -inputData.forEach((input, index) => { - it(`${name} Tests: payload: ${index}`, () => { - try { - const output = transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - } - }); -}); diff --git a/test/__tests__/googlesheets.test.js b/test/__tests__/googlesheets.test.js deleted file mode 100644 index 6a39d960730..00000000000 --- a/test/__tests__/googlesheets.test.js +++ /dev/null @@ -1,46 +0,0 @@ -const integration = "googlesheets"; -const name = "Google Sheets"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -// Router Test files -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -inputData.forEach((input, index) => { - it(`${name} - payload: ${index}`, async () => { - try { - const output = await transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - } - }); -}); - -describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - // console.log(JSON.stringify(routerOutput)); - expect(routerOutput).toEqual(expectedRouterData); - }); -}); diff --git a/test/__tests__/heap-cdk.test.ts b/test/__tests__/heap-cdk.test.ts deleted file mode 100644 index 8ba69cb89c4..00000000000 --- a/test/__tests__/heap-cdk.test.ts +++ /dev/null @@ -1,33 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import { processCdkV2Workflow } from '../../src/cdk/v2/handler'; -import tags from '../../src/v0/util/tags'; - -const integration = 'heap'; -const destName = 'Heap'; - -const inputDataFile = fs.readFileSync(path.resolve(__dirname, `./data/${integration}_input.json`), { - encoding: 'utf8', -}); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_cdk_output.json`), - { encoding: 'utf8' }, -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -describe(`${destName} Tests`, () => { - describe('Processor Tests', () => { - inputData.forEach((input, index) => { - it(`${destName} - payload: ${index}`, async () => { - const expected = expectedData[index]; - try { - const output = await processCdkV2Workflow(integration, input, tags.FEATURES.PROCESSOR); - expect(output).toEqual(expected); - } catch (error: any) { - expect(error.message).toEqual(expected.error); - } - }); - }); - }); -}); diff --git a/test/__tests__/heap.test.js b/test/__tests__/heap.test.js deleted file mode 100644 index d2b226aea35..00000000000 --- a/test/__tests__/heap.test.js +++ /dev/null @@ -1,7 +0,0 @@ -const { - getDestFromTestFile, - executeTransformationTest -} = require("./utilities/test-utils"); - -executeTransformationTest(getDestFromTestFile(__filename), "processor"); -executeTransformationTest(getDestFromTestFile(__filename), "router"); diff --git a/test/__tests__/impact.test.js b/test/__tests__/impact.test.js deleted file mode 100644 index 8a741840deb..00000000000 --- a/test/__tests__/impact.test.js +++ /dev/null @@ -1,43 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -const integration = "impact"; -const name = "IMPACT"; -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -const testDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}.json`) -); -const testData = JSON.parse(testDataFile); - -// Router Test files -const routerTestDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router.json`) -); -const routerTestData = JSON.parse(routerTestDataFile); - -describe(`${name} Tests`, () => { - describe("Processor", () => { - testData.forEach((dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, () => { - try { - const output = transformer.process(dataPoint.input); - expect(output).toEqual(dataPoint.output); - } catch (error) { - expect(error.message).toEqual(dataPoint.output.error); - } - }); - }); - }); - - describe("Router Tests", () => { - routerTestData.forEach(dataPoint => { - it("Payload", async () => { - const output = await transformer.processRouterDest(dataPoint.input); - expect(output).toEqual(dataPoint.output); - }); - }); - }); -}); diff --git a/test/__tests__/indicative.test.js b/test/__tests__/indicative.test.js deleted file mode 100644 index cfb0ad462ae..00000000000 --- a/test/__tests__/indicative.test.js +++ /dev/null @@ -1,49 +0,0 @@ -const integration = "indicative"; -const name = "Indicative"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -// Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -describe(`${name} Tests`, () => { - describe("Processor Tests", () => { - inputData.forEach((input, index) => { - it(`${name} - payload: ${index}`, async () => { - try { - const output = await transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - } - }); - }); - }); - - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/iterable.test.js b/test/__tests__/iterable.test.js deleted file mode 100644 index df203bbc671..00000000000 --- a/test/__tests__/iterable.test.js +++ /dev/null @@ -1,54 +0,0 @@ -const integration = "iterable"; -const name = "Iterable"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -const testDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}.json`) -); -const testData = JSON.parse(testDataFile); - -// Router Test files -const routerTestDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router.json`) -); -const routerTestData = JSON.parse(routerTestDataFile); - -// Mocking IDENTIFY_MAX_BODY_SIZE and IDENTIFY_MAX_BATCH_SIZE variable to test batching -jest.mock(`../../src/${version}/destinations/${integration}/config`, () => { - const originalConfig = jest.requireActual(`../../src/${version}/destinations/${integration}/config`); - return { - ...originalConfig, - IDENTIFY_MAX_BATCH_SIZE: 6, - IDENTIFY_MAX_BODY_SIZE_IN_BYTES: 4000 - }; -}); - -describe(`${name} Tests`, () => { - describe("Processor", () => { - testData.forEach((dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, async () => { - try { - const output = await transformer.process(dataPoint.input); - expect(output).toEqual(dataPoint.output); - } catch (error) { - expect(error.message).toEqual(dataPoint.output.message); - } - }); - }); - }); - - describe("Router", () => { - routerTestData.forEach((dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, async () => { - const output = await transformer.processRouterDest(dataPoint.input); - expect(output).toEqual(dataPoint.output); - }); - }); - }); -}); diff --git a/test/__tests__/june.test.js b/test/__tests__/june.test.js deleted file mode 100644 index c8df25945ac..00000000000 --- a/test/__tests__/june.test.js +++ /dev/null @@ -1,46 +0,0 @@ -const integration = "june"; -const name = "JUNE"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -// Processor Test files -const testDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}.json`) -); -const testData = JSON.parse(testDataFile); - -// Router Test files -const routerTestDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router.json`) -); -const routerTestData = JSON.parse(routerTestDataFile); - - -describe(`${name} Tests`, () => { - describe("Processor", () => { - testData.forEach((dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, () => { - try { - const output = transformer.process(dataPoint.input); - expect(output).toEqual(dataPoint.output); - } catch (error) { - expect(error.message).toEqual(dataPoint.output.error); - } - }); - }); - }); - - describe("Router", () => { - routerTestData.forEach(async dataPoint => { - it("Payload", async () => { - const output = await transformer.processRouterDest(dataPoint.input); - expect(output).toEqual(dataPoint.output); - }); - }); - }); -}); \ No newline at end of file diff --git a/test/__tests__/kafka.test.js b/test/__tests__/kafka.test.js deleted file mode 100644 index abd85fadaf8..00000000000 --- a/test/__tests__/kafka.test.js +++ /dev/null @@ -1,57 +0,0 @@ -const integration = "kafka"; -const name = "Kafka"; - -const fs = require("fs"); -const path = require("path"); - -const transformer = require(`../../src/v0/destinations/${integration}/transform`); - -const testDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}.json`) -); -const testData = JSON.parse(testDataFile); - -const batchInputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_batch_input.json`) -); -const batchOutputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_batch_output.json`) -); - -const dataWithMetadata = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_with_metadata.json`) -); - -describe("Tests", () => { - testData.forEach(async (dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, async () => { - try { - const output = await transformer.process(dataPoint.input); - expect(output).toEqual(dataPoint.output); - } catch (error) { - expect(error.message).toEqual(dataPoint.output.error); - } - }); - }); - - test(`${name} Batching Tests`, () => { - const inputData = JSON.parse(batchInputDataFile); - const batchExpectedData = JSON.parse(batchOutputDataFile); - const output = transformer.batch(inputData); - expect(Array.isArray(output)).toEqual(true); - expect(output).toEqual(batchExpectedData); - }); - - test(`${name} Metadata parse test`, done => { - const inputData = JSON.parse(dataWithMetadata); - inputData.forEach(async (data, _) => { - try { - const output = transformer.processMetadata(data.input); - expect(output).toEqual(data.output); - done(); - } catch (error) { - done(error); - } - }); - }); -}); diff --git a/test/__tests__/keen.test.js b/test/__tests__/keen.test.js deleted file mode 100644 index b434829b17d..00000000000 --- a/test/__tests__/keen.test.js +++ /dev/null @@ -1,53 +0,0 @@ -const integration = "keen"; -const name = "keen"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); -// const { compareJSON } = require("./util"); - -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -// Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -inputData.forEach((input, index) => { - test(`${name} Tests - payload: ${index}`, () => { - let output, expected; - try { - output = transformer.process(input); - expected = expectedData[index]; - } catch (error) { - output = error.message; - expected = expectedData[index].message; - } - - expect(output).toEqual(expected); - }); -}); - -describe(`${name} Tests`, () => { - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/kissmetrics.test.js b/test/__tests__/kissmetrics.test.js deleted file mode 100644 index 64ec469d999..00000000000 --- a/test/__tests__/kissmetrics.test.js +++ /dev/null @@ -1,48 +0,0 @@ -const integration = "kissmetrics"; -const name = "kissmetrics"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); -// const { compareJSON } = require("./util"); - -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -// Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -inputData.forEach((input, index) => { - test(`${name} Tests : payload: ${index}`, () => { - const output = transformer.process(input); - const outputLength = output.length; - for (let i = 0; i < outputLength; i++) { - expect(output[i]).toEqual(expectedData[index + i]); - } - }); -}); - -describe(`${name} Tests`, () => { - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/klaviyo.test.js b/test/__tests__/klaviyo.test.js index 871bf1f28c6..209811b0072 100644 --- a/test/__tests__/klaviyo.test.js +++ b/test/__tests__/klaviyo.test.js @@ -5,6 +5,7 @@ const integration = "klaviyo"; const name = "Klaviyo"; const version = "v0"; +const { FEATURE_FILTER_CODE } = require('../../src/v0/util/constant'); const transformer = require(`../../src/${version}/destinations/${integration}/transform`); // Processor Test Data @@ -14,14 +15,10 @@ const testDataFile = fs.readFileSync( const testData = JSON.parse(testDataFile); // Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) +const routerTestDataFile = fs.readFileSync( + path.resolve(__dirname, `./data/${integration}_router.json`) ); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); +const routerTestData = JSON.parse(routerTestDataFile); describe(`${name} Tests`, () => { describe("Processor", () => { @@ -37,10 +34,14 @@ describe(`${name} Tests`, () => { }); }); - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); + describe("Router", () => { + routerTestData.forEach((dataPoint, index) => { + it(`${index}. ${integration} - ${dataPoint.description}`, async () => { + const oldTransformerOutput = await transformer.processRouterDest(dataPoint.input); + const newTransformerOutput = await transformer.processRouterDest(dataPoint.input, { features: { [FEATURE_FILTER_CODE]: true } }); + expect(oldTransformerOutput).toEqual(dataPoint.oldTransformerOutput); + expect(newTransformerOutput).toEqual(dataPoint.newTransformerOutput); + }); }); }); }); diff --git a/test/__tests__/kochava.test.js b/test/__tests__/kochava.test.js index 760b81028d2..85ece5aa427 100644 --- a/test/__tests__/kochava.test.js +++ b/test/__tests__/kochava.test.js @@ -4,4 +4,3 @@ const { } = require("./utilities/test-utils"); executeTransformationTest(getDestFromTestFile(__filename), "processor"); -// executeTransformationTest(getDestFromTestFile(__filename), 'router') diff --git a/test/__tests__/optimizely_fullstack-cdk.test.ts b/test/__tests__/launchdarkly_audience-cdk.test.ts similarity index 51% rename from test/__tests__/optimizely_fullstack-cdk.test.ts rename to test/__tests__/launchdarkly_audience-cdk.test.ts index b51cd18b11b..419b59fbd18 100644 --- a/test/__tests__/optimizely_fullstack-cdk.test.ts +++ b/test/__tests__/launchdarkly_audience-cdk.test.ts @@ -3,16 +3,8 @@ import path from 'path'; import { processCdkV2Workflow } from '../../src/cdk/v2/handler'; import tags from '../../src/v0/util/tags'; -const integration = 'optimizely_fullstack'; -const destName = 'Optimizely Fullstack'; - -jest.mock('../../src/v0/util/index', () => { - const originalModule = jest.requireActual('../../src/v0/util/index'); - return { - ...originalModule, - generateUUID: jest.fn(() => 'generated_uuid'), - }; -}); +const integration = 'launchdarkly_audience'; +const destName = 'LaunchDarkly Audience'; // Processor Test files const testDataFile = fs.readFileSync(path.resolve(__dirname, `./data/${integration}.json`), { @@ -20,12 +12,15 @@ const testDataFile = fs.readFileSync(path.resolve(__dirname, `./data/${integrati }); const testData = JSON.parse(testDataFile); -// Router Test files -const routerTestDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router.json`), - { encoding: 'utf8' }, -); -const routerTestData = JSON.parse(routerTestDataFile); +jest.mock(`../../src/cdk/v2/destinations/launchdarkly_audience/config`, () => { + const originalConfig = jest.requireActual( + `../../src/cdk/v2/destinations/launchdarkly_audience/config`, + ); + return { + ...originalConfig, + MAX_IDENTIFIERS: 2, + }; +}); describe(`${destName} Tests`, () => { describe('Processor Tests', () => { @@ -44,17 +39,4 @@ describe(`${destName} Tests`, () => { }); }); }); - - describe('Router Tests', () => { - routerTestData.forEach((dataPoint) => { - it('Optimizely fullstack router test case', async () => { - const output = await processCdkV2Workflow( - integration, - dataPoint.input, - tags.FEATURES.ROUTER, - ); - expect(output).toEqual(dataPoint.output); - }); - }); - }); }); diff --git a/test/__tests__/legacyRouter.test.ts b/test/__tests__/legacyRouter.test.ts index 768db08ca82..926f6e76d4e 100644 --- a/test/__tests__/legacyRouter.test.ts +++ b/test/__tests__/legacyRouter.test.ts @@ -1,6 +1,6 @@ import fs from 'fs'; import path from 'path'; -import DestinationController from '../../src/controllers/destination'; +import { DestinationController } from '../../src/controllers/destination'; const destArg = process.argv.filter((x) => x.startsWith('--destName='))[0]; // send arguments on which destination const typeArg = process.argv.filter((x) => x.startsWith('--type='))[0]; // send argument on which function diff --git a/test/__tests__/marketo_static_list.test.js b/test/__tests__/marketo_static_list.test.js deleted file mode 100644 index 43300f243ae..00000000000 --- a/test/__tests__/marketo_static_list.test.js +++ /dev/null @@ -1,64 +0,0 @@ -const integration = "marketo_static_list"; -const name = "marketo_static_list"; -const version = "v0"; - -const fs = require("fs"); -const path = require("path"); - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -// Processor Test Data -const testDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}.json`) -); -const testData = JSON.parse(testDataFile); - -// Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -// Router Metadata Test files -const inputRouterMetadataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_metadata_input.json`) -); -const outputRouterMetadataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_metadata_output.json`) -); -const inputRouterMetadata = JSON.parse(inputRouterMetadataFile); -const expectedRouterMetadata = JSON.parse(outputRouterMetadataFile); - -describe(`${name} Tests`, () => { - describe("Processor", () => { - testData.forEach((dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, async () => { - try { - const output = await transformer.process(dataPoint.input); - expect(output).toEqual(dataPoint.output); - } catch (error) { - expect(error.message).toEqual(dataPoint.output.error); - } - }); - }); - }); - - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); - describe("Router Metadata Tests", () => { - it("Payload", async () => { - const routerMetadataOutput = await transformer.processMetadataForRouter( - inputRouterMetadata - ); - expect(routerMetadataOutput).toEqual(expectedRouterMetadata); - }); - }); -}); diff --git a/test/__tests__/mixpanel.test.js b/test/__tests__/mixpanel.test.js deleted file mode 100644 index ee9d067f7e4..00000000000 --- a/test/__tests__/mixpanel.test.js +++ /dev/null @@ -1,62 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -const integration = "mp"; -const name = "Mixpanel"; -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); -// 2020-01-24T06:29:02.358Z -Date.now = jest.fn(() => new Date(Date.UTC(2020, 0, 25)).valueOf()); - -// Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -jest.mock(`../../src/${version}/destinations/${integration}/config`, () => { - const originalConfig = jest.requireActual(`../../src/${version}/destinations/${integration}/config`); - return { - ...originalConfig, - TRACK_MAX_BATCH_SIZE: 1, - IMPORT_MAX_BATCH_SIZE: 2, - ENGAGE_MAX_BATCH_SIZE: 3, - GROUPS_MAX_BATCH_SIZE: 1 - }; -}); - - -describe(`${name} Tests`, () => { - describe("Processor Tests", () => { - inputData.forEach((input, index) => { - it(`${name} - payload: ${index}`, async () => { - try { - const output = await transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].message); - } - }); - }); - }); - - describe("Router", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/mssql.test.js b/test/__tests__/mssql.test.js deleted file mode 100644 index 7e883d2c30f..00000000000 --- a/test/__tests__/mssql.test.js +++ /dev/null @@ -1,50 +0,0 @@ -const { getDataType } = require("../../src/warehouse/index"); -const { - getDataTypeOverride -} = require("../../src/v0/destinations/mssql/transform"); - -var testCases = [ - { - name: "normalInt", - data: 1, - type: "int" - }, - { - name: "normalFloat", - data: 2.01, - type: "float" - }, - { - name: "normalBoolean", - data: true, - type: "boolean" - }, - { - name: "normalString", - data: "mssql transformation[*007}", - type: "string" - }, - { - name: "violationErrors", - data: [ - { - message: - "no schema for eventName : Product Purchased new, eventType : track in trackingPlanID : tp_20dfXJDpotQWHe7hMxfQfgWMZDv::1", - meta: {}, - type: "Unplanned-Event" - } - ], - type: "string" - } -]; - -describe("MSSQL data types testing", () => { - let options = {}; - options.getDataTypeOverride = getDataTypeOverride; - testCases.forEach(testCase => { - it(`should return data type ${testCase.type} for this input data ${testCase.data} everytime`, () => { - var dataType = getDataType(testCase.name, testCase.data, options); - expect(dataType).toEqual(testCase.type); - }); - }); -}); diff --git a/test/__tests__/pardot.test.js b/test/__tests__/pardot.test.js deleted file mode 100644 index d766d3b856d..00000000000 --- a/test/__tests__/pardot.test.js +++ /dev/null @@ -1,28 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -const integration = "pardot"; -const name = "pardot"; - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -//for router test -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -describe(`${name} Router Tests`, () => { - describe("Router Tests", () => { - it(`${name} Payload`, async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/postgres.test.js b/test/__tests__/postgres.test.js deleted file mode 100644 index 354fedba091..00000000000 --- a/test/__tests__/postgres.test.js +++ /dev/null @@ -1,50 +0,0 @@ -const { getDataType } = require("../../src/warehouse/index"); -const { - getDataTypeOverride -} = require("../../src/v0/destinations/postgres/transform"); - -var testCases = [ - { - name: "normalInt", - data: 1, - type: "int" - }, - { - name: "normalFloat", - data: 2.01, - type: "float" - }, - { - name: "normalBoolean", - data: true, - type: "boolean" - }, - { - name: "normalString", - data: "postgres transformation[*007}", - type: "string" - }, - { - name: "violationErrors", - data: [ - { - message: - "no schema for eventName : Product Purchased new, eventType : track in trackingPlanID : tp_20dfXJDpotQWHe7hMxfQfgWMZDv::1", - meta: {}, - type: "Unplanned-Event" - } - ], - type: "json" - } -]; - -describe("Postgres data types testing", () => { - let options = {}; - options.getDataTypeOverride = getDataTypeOverride; - testCases.forEach(testCase => { - it(`should return data type ${testCase.type} for this input data ${testCase.data} everytime`, () => { - var dataType = getDataType(testCase.name, testCase.data, options); - expect(dataType).toEqual(testCase.type); - }); - }); -}); diff --git a/test/__tests__/proxy.test.ts b/test/__tests__/proxy.test.ts deleted file mode 100644 index 2eda94f8b0b..00000000000 --- a/test/__tests__/proxy.test.ts +++ /dev/null @@ -1,93 +0,0 @@ -const name = 'Proxy'; -import fs from 'fs'; -import path from 'path'; -import request from 'supertest'; -import { createHttpTerminator } from 'http-terminator'; -import { mockedAxiosClient } from '../__mocks__/network'; -import Koa from 'koa'; -import bodyParser from 'koa-bodyparser'; -import { applicationRoutes } from '../../src/routes'; - -let server: any; -const OLD_ENV = process.env; - -beforeAll(async () => { - process.env = { ...OLD_ENV }; // Make a copy - const app = new Koa(); - app.use( - bodyParser({ - jsonLimit: '200mb', - }), - ); - applicationRoutes(app); - server = app.listen(9090); -}); - -afterAll(async () => { - process.env = OLD_ENV; // Restore old environment - const httpTerminator = createHttpTerminator({ - server, - }); - await httpTerminator.terminate(); -}); - -jest.mock('axios', () => jest.fn(mockedAxiosClient)); - -const version = '1'; -const destinations = [ - 'marketo', - 'braze', - 'pardot', - 'google_adwords_remarketing_lists', - 'google_adwords_enhanced_conversions', - 'facebook_pixel', - 'fb', - 'snapchat_custom_audience', - 'clevertap', - 'salesforce', - 'marketo_static_list', - 'criteo_audience', - 'tiktok_ads', -]; - -// start of generic tests -const inputDataFile = fs.readFileSync(path.resolve(__dirname, `./data/proxy_input.json`)); -const outputDataFile = fs.readFileSync(path.resolve(__dirname, `./data/proxy_output.json`)); -const inputData = JSON.parse(inputDataFile.toString()); -const expectedData = JSON.parse(outputDataFile.toString()); - -inputData.forEach((input, index) => { - it(`${name} Tests: payload - ${index}`, async () => { - const response = await request(server) - .post(`/${version}/destinations/any/proxy`) - .set('Accept', 'application/json') - .send(input); - expect(response.body).toEqual(expectedData[index]); - }); -}); -// end of generic tests - -// destination tests start -destinations.forEach((destination) => { - const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${destination}_proxy_input.json`), - ); - const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${destination}_proxy_output.json`), - ); - const inputData = JSON.parse(inputDataFile.toString()); - const expectedData = JSON.parse(outputDataFile.toString()); - - describe(`Proxy Test for ${destination}`, () => { - inputData.forEach((input, index) => { - it(`${name} Tests: ${destination} - Payload ${index}`, async () => { - const response = await request(server) - .post(`/${version}/destinations/${destination}/proxy`) - .set('Accept', 'application/json') - .send(input); - expect(response.body).toEqual(expectedData[index]); - }); - }); - }); -}); -// destination tests end diff --git a/test/__tests__/redis.test.js b/test/__tests__/redis.test.js deleted file mode 100644 index be3a1a497f6..00000000000 --- a/test/__tests__/redis.test.js +++ /dev/null @@ -1,28 +0,0 @@ -const integration = "redis"; -const name = "Redis"; - -const fs = require("fs"); -const path = require("path"); -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -inputData.forEach((input, index) => { - it(`${name} Tests: payload - ${index}`, () => { - try { - const output = transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - } - }); -}); diff --git a/test/__tests__/revenue_cat.test.js b/test/__tests__/revenue_cat.test.js deleted file mode 100644 index 8b4487e7644..00000000000 --- a/test/__tests__/revenue_cat.test.js +++ /dev/null @@ -1,33 +0,0 @@ -const integration = "revenue_cat"; -const name = "revenue_cat"; - -const fs = require("fs"); -const path = require("path"); -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -// Processor Test Data -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -describe(`${name} Tests`, () => { - describe("Processor Tests", () => { - inputData.forEach((input, index) => { - it(`${name} - payload: ${index}`, async () => { - try { - const output = await transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - } - }); - }); - }); -}); diff --git a/test/__tests__/salesforce.test.js b/test/__tests__/salesforce.test.js deleted file mode 100644 index 7315017376d..00000000000 --- a/test/__tests__/salesforce.test.js +++ /dev/null @@ -1,70 +0,0 @@ -jest.mock("axios"); -const integration = "salesforce"; -const name = "Salesforce"; -const version = "v0"; - -const fs = require("fs"); -const path = require("path"); - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -// Processor Test files -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -// Router Test files -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -// Router Metadata Test files -const inputRouterMetadataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_metadata_input.json`) -); -const outputRouterMetadataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_metadata_output.json`) -); -const inputRouterMetadata = JSON.parse(inputRouterMetadataFile); -const expectedRouterMetadata = JSON.parse(outputRouterMetadataFile); - -describe(`${name} Tests`, () => { - describe("Processor", () => { - inputData.forEach(async (input, index) => { - it(`Payload - ${index}`, async () => { - try { - const output = await transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - } - }); - }); - }); - - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); - - describe("Router Metadata Tests", () => { - it("Payload", async () => { - const routerMetadataOutput = await transformer.processMetadataForRouter( - inputRouterMetadata - ); - expect(routerMetadataOutput).toEqual(expectedRouterMetadata); - }); - }); -}); diff --git a/test/__tests__/sanity.test.js b/test/__tests__/sanity.test.js deleted file mode 100644 index ae5faa917cb..00000000000 --- a/test/__tests__/sanity.test.js +++ /dev/null @@ -1,204 +0,0 @@ -jest.mock("axios"); -const name = "Sanity"; -const fs = require("fs"); -const path = require("path"); -const version = "v0"; -const { getDirectories } = require("./util"); -const { mockaxios } = require("../__mocks__/network"); - -// ******************************** -// Getting Started -// ******************************** -// sanity-folder-structure -// __tests__ -// | -// |--sanity.test.js -// |--data -// | | -// | |--sanity -// | | -// | {integration(s)}_output.json -// | {integration(s)}_router_output.json -// | sanity_input.json -// | sanity_router_input.json -// | destination_config.json - -// ------ destination_config.json ------ -// JSON to store the destination-config of all the destinations -// Each destination-config object has a config object storing the -// processor/ router (transform-at) configs -// ------------------------------------- -// If transformation is only done at processor -// only use the processor as key and store the -// destination definition as value. -// -// Format : -// { -// "clevertap": { -// "config": { -// "processor": { ...destination_definition }, -// "router": { ...destination_definition } -// } -// } -// .. -// .. -// } - -// ----- sanity_input.json ----- -// JSON to store the sanity input messages which will be -// used to test sanity for all the destination. -// -// Format: -// { -// "messages": [ -// { sanity_input_message_1}, -// { sanity_input_message_2}, -// { sanity_input_message_3} -// ... -// ] -// } - -// ----- sanity_router_input.json ----- -// JSON to store the sanity input messages which will be -// used to test sanity for all the destination. -// These inputs will be used for testing router -// transformation for all destination which support it. -// -// Format: -// { -// "messages": [ -// { router_sanity_input_message_1}, -// { router_sanity_input_message_2}, -// { router_sanity_input_message_3} -// ... -// ] -// } - -// ------ {integration(s)}_output.json ------ -// These are specific output for each of the destinations -// given the sanity input. We are using jest result matcher -// to check if the output is matching with the expected output. -// Example clevertap_output.json -// Format: -// [ -// {sanity_output_for_message_1}, -// {sanity_output_for_message_2}, -// .. -// ] - -// ------ {integration(s)}_router_output.json ------ -// These are specific output for each of the destinations -// given the router sanity input. -// ** CHECK IF THE PARTICULAR DESTINATION SUPPORTS ROUTER TRANSFORMATION ** -// Example clevertap_router_output.json -// Format: -// [ -// {router_sanity_output_for_message_1}, -// {router_sanity_output_for_message_2}, -// .. -// ] - -// Parsing all the destination names from /v0/destinations dir structure -// parsing it into an array of string. This keeping the destinations to test -// dynamic. -// const integrations = getDirectories( -// path.resolve(__dirname, `../${version}/destinations/`) -// ); -// For Testing Current: -// Uncomment this Line and comment the above 3 lines -const integrations = ["marketo"]; - -// Parsing the sanity input JSON which will be used for testing each destination -const processorSanityInput = JSON.parse( - fs.readFileSync(path.resolve(__dirname, `./data/sanity/sanity_input.json`)) -); - -// Parsing the sanity router input JSON which will be used for testing each destination -// which support it -const routerSanityInputRouter = JSON.parse( - fs.readFileSync( - path.resolve(__dirname, `./data/sanity/sanity_router_input.json`) - ) -); -// Parsing the destination config JSON from which we will get the destination definitions -// along with if the destination supports router-transformation -const destinationConfig = JSON.parse( - fs.readFileSync( - path.resolve(__dirname, `./data/sanity/destination_config.json`) - ) -); - -// Iterating each of the destinations -integrations.forEach(intg => { - // Getting the transformation object - const transformer = require(`../../src/${version}/destinations/${intg}/transform`); - // Getting the config for this particular destination - const { config } = destinationConfig[`${intg}`]; - // Where the ransformation is done at (processor, router ..) - Object.keys(config).forEach(processAt => { - // Depending on the case - switch (processAt) { - case "processor": - { - // Parsing the expected data for this particular destination - const expectedData = JSON.parse( - fs.readFileSync( - path.resolve(__dirname, `./data/sanity/${intg}_output.json`) - ) - ); - // For each of the messages we are processing using the transformer - processorSanityInput.messages.forEach((message, index) => { - // Building the event object with specified destination-definition - const event = { - message, - destination: config[`${processAt}`] - }; - // Sending the event to transformer and matching the result with expected output - it(`${name} - integration[Processor]: ${intg} payload:${index}`, async () => { - try { - const output = await transformer.process(event); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - } - }); - }); - } - break; - - case "router": - { - // Parsing the expected router output data for this particular destination - const expectedData = JSON.parse( - fs.readFileSync( - path.resolve( - __dirname, - `./data/sanity/${intg}_router_output.json` - ) - ) - ); - // For each of the messages we are processing using the router transformer - routerSanityInputRouter.messages.forEach((message, index) => { - // Building the event object with specified destination-definition - const events = [ - { - message, - metadata: { - jobId: 1 - }, - destination: config[`${processAt}`] - } - ]; - // Sending the event to router transformer of this destinationand matching the result with expected output - it(`${name} - integration(Router): ${intg} payload:${index}`, async () => { - const routerOutput = await transformer.processRouterDest(events); - expect(routerOutput[0]).toEqual(expectedData[index]); - }); - }); - } - break; - default: - throw new Error("Undefined Transform-At Config"); - } - }); -}); diff --git a/test/__tests__/segment.test.js b/test/__tests__/segment.test.js deleted file mode 100644 index a1f9812f220..00000000000 --- a/test/__tests__/segment.test.js +++ /dev/null @@ -1,33 +0,0 @@ -const integration = "segment"; -const name = "Segment"; - -const fs = require("fs"); -const path = require("path"); -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); -// const { compareJSON } = require("./util"); - -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); - -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -inputData.forEach((input, index) => { - test(`${name} Tests: payload - ${index}`, () => { - let output, expected; - try { - output = transformer.process(input); - expected = expectedData[index]; - } catch (error) { - output = error.message; - expected = expectedData[index].message; - } - expect(output).toEqual(expected); - }); -}); diff --git a/test/__tests__/shynet.test.js b/test/__tests__/shynet.test.js deleted file mode 100644 index b7027d14c34..00000000000 --- a/test/__tests__/shynet.test.js +++ /dev/null @@ -1,29 +0,0 @@ -const integration = "shynet"; -const name = "shynet"; - -const fs = require("fs"); -const path = require("path"); -const version = "v0"; -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -// Processor Test Data -const testDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}.json`) -); -const testData = JSON.parse(testDataFile); - -describe(`${name} Tests`, () => { - describe("Processor", () => { - testData.forEach((dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, async () => { - try { - let output = await transformer.process(dataPoint.input); - delete output.body.JSON.idempotency; - expect(output).toEqual(dataPoint.output); - } catch (error) { - expect(error.message).toEqual(dataPoint.output.error); - } - }); - }); - }); -}); diff --git a/test/__tests__/slack.test.js b/test/__tests__/slack.test.js deleted file mode 100644 index c2b5b91edeb..00000000000 --- a/test/__tests__/slack.test.js +++ /dev/null @@ -1,48 +0,0 @@ -const integration = "slack"; -const name = "Slack"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); -// const { compareJSON } = require("./util"); - -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -// Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -inputData.forEach((input, index) => { - test(`${name} Tests - payload: %{index}`, () => { - try { - const output = transformer.process(input); - expect(output).toEqual([expectedData[index]]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - } - }); -}); -describe(`${name} Tests`, () => { - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/snapchat_conversion.test.js b/test/__tests__/snapchat_conversion.test.js deleted file mode 100644 index 17fd363cc7e..00000000000 --- a/test/__tests__/snapchat_conversion.test.js +++ /dev/null @@ -1,48 +0,0 @@ -const integration = "snapchat_conversion"; -const name = "Snapchat Conversion"; - -const fs = require("fs"); -const path = require("path"); -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -// Processor Test files -const testDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}.json`) -); -const testData = JSON.parse(testDataFile); - -// Router Test files -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -Date.now = jest.fn(() => new Date("2022-04-22T10:57:58Z")); - -describe(`${name} Tests`, () => { - describe("Processor", () => { - testData.forEach((dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, () => { - try { - const output = transformer.process(dataPoint.input); - expect(output).toEqual(dataPoint.output); - } catch (error) { - expect(error.message).toEqual(dataPoint.output.error); - } - }); - }); - }); - - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/snapchat_custom_audience.test.js b/test/__tests__/snapchat_custom_audience.test.js deleted file mode 100644 index 41c42175628..00000000000 --- a/test/__tests__/snapchat_custom_audience.test.js +++ /dev/null @@ -1,51 +0,0 @@ -const integration = "snapchat_custom_audience"; -const name = "Snapchat Custom Audience"; - -const fs = require("fs"); -const path = require("path"); -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -// Processor Test files -const testDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}.json`) -); -const testData = JSON.parse(testDataFile); - -// Router Test files -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -describe(`${name} Tests`, () => { - describe("Processor", () => { - testData.forEach((dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, async () => { - try { - const output = await transformer.process(dataPoint.input); - expect(output).toEqual(dataPoint.output); - } catch (error) { - expect(error.message).toEqual(dataPoint.output.error); - } - }); - }); - }); - describe("Router", () => { - it("Payload", async () => { - try { - const routerOutput = await transformer.processRouterDest( - inputRouterData - ); - expect(routerOutput).toEqual(expectedRouterData); - } catch (error) { - expect(error.message).toEqual(expectedRouterData.error); - } - }); - }); -}); diff --git a/test/__tests__/splitio.test.js b/test/__tests__/splitio.test.js deleted file mode 100644 index d2b226aea35..00000000000 --- a/test/__tests__/splitio.test.js +++ /dev/null @@ -1,7 +0,0 @@ -const { - getDestFromTestFile, - executeTransformationTest -} = require("./utilities/test-utils"); - -executeTransformationTest(getDestFromTestFile(__filename), "processor"); -executeTransformationTest(getDestFromTestFile(__filename), "router"); diff --git a/test/__tests__/statsig-cdk.test.ts b/test/__tests__/statsig-cdk.test.ts deleted file mode 100644 index 79bb3e9fae0..00000000000 --- a/test/__tests__/statsig-cdk.test.ts +++ /dev/null @@ -1,33 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import { processCdkV2Workflow } from '../../src/cdk/v2/handler'; -import tags from '../../src/v0/util/tags'; - -const integration = 'statsig'; -const destName = 'Statsig'; - -const inputDataFile = fs.readFileSync(path.resolve(__dirname, `./data/${integration}_input.json`), { - encoding: 'utf8', -}); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_cdk_output.json`), - { encoding: 'utf8' }, -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -describe(`${destName} Tests`, () => { - describe('Processor Tests', () => { - inputData.forEach((input, index) => { - it(`${destName} - payload: ${index}`, async () => { - const expected = expectedData[index]; - try { - const output = await processCdkV2Workflow(integration, input, tags.FEATURES.PROCESSOR); - expect(output).toEqual(expected); - } catch (error: any) { - expect(error.message).toEqual(expected.error); - } - }); - }); - }); -}); diff --git a/test/__tests__/statsig.test.js b/test/__tests__/statsig.test.js deleted file mode 100644 index 56327264570..00000000000 --- a/test/__tests__/statsig.test.js +++ /dev/null @@ -1,4 +0,0 @@ -const { executeTransformationTest } = require("./utilities/test-utils"); - -executeTransformationTest("statsig", "processor"); -// executeTransformationTest('variance', 'router') diff --git a/test/__tests__/tiktok_ads.test.js b/test/__tests__/tiktok_ads.test.js deleted file mode 100644 index 8b61fabf3d7..00000000000 --- a/test/__tests__/tiktok_ads.test.js +++ /dev/null @@ -1,50 +0,0 @@ -const integration = "tiktok_ads"; -const name = "TikTok"; - -const fs = require("fs"); -const path = require("path"); -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -// Processor Test files -const inputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_input.json`) -); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`) -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -// Router Test files -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -describe(`${name} Tests`, () => { - describe("Processor", () => { - inputData.forEach(async (input, index) => { - it(`Payload - ${index}`, async () => { - try { - const output = await transformer.process(input); - expect(output).toEqual(expectedData[index]); - } catch (error) { - expect(error.message).toEqual(expectedData[index].error); - } - }); - }); - }); - - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/trackingPlan.test.js b/test/__tests__/trackingPlan.test.js index 837bb806dda..19606b38b9f 100644 --- a/test/__tests__/trackingPlan.test.js +++ b/test/__tests__/trackingPlan.test.js @@ -602,7 +602,7 @@ const eventValidationTestCases = [ type: "Datatype-Mismatch", message: "must be integer", meta: { - instacePath: "/properties/revenue", + instancePath: "/properties/revenue", schemaPath: "#/properties/properties/properties/revenue/type" } } @@ -617,7 +617,7 @@ const eventValidationTestCases = [ type: "Unknown-Violation", message: "must be <= 4", meta: { - instacePath: "/properties/revenue", + instancePath: "/properties/revenue", schemaPath: "#/properties/properties/properties/revenue/then/maximum" } }, @@ -625,7 +625,7 @@ const eventValidationTestCases = [ type: "Unknown-Violation", message: 'must match "then" schema', meta: { - instacePath: "/properties/revenue", + instancePath: "/properties/revenue", schemaPath: "#/properties/properties/properties/revenue/if" } } @@ -640,7 +640,7 @@ const eventValidationTestCases = [ type: "Datatype-Mismatch", message: "must be number", meta: { - instacePath: "/properties/props/0", + instancePath: "/properties/props/0", schemaPath: "#/properties/properties/properties/props/contains/type" } }, @@ -648,7 +648,7 @@ const eventValidationTestCases = [ type: "Unknown-Violation", message: "must contain at least 1 and no more than 2 valid item(s)", meta: { - instacePath: "/properties/props", + instancePath: "/properties/props", schemaPath: "#/properties/properties/properties/props/contains" } } @@ -662,7 +662,7 @@ const eventValidationTestCases = [ { message: "must match format \"date-time\"", meta: { - instacePath: "/properties/dateString", + instancePath: "/properties/dateString", schemaPath: "#/properties/properties/properties/dateString/format", }, type: "Unknown-Violation", @@ -697,7 +697,7 @@ const eventValidationTestCases = [ message: "must have required property 'flairs'", property: "flairs", meta: { - instacePath: "/properties", + instancePath: "/properties", schemaPath: "#/properties/properties/required", } } @@ -712,7 +712,7 @@ const eventValidationTestCases = [ "type": "Datatype-Mismatch", "message": "must be string,null", "meta": { - "instacePath": "/properties/post_comment", + "instancePath": "/properties/post_comment", "schemaPath": "#/properties/properties/properties/post_comment/type" } } @@ -728,7 +728,7 @@ const eventValidationTestCases = [ "message": "must NOT have additional properties 'new_property'", "property": "new_property", "meta": { - "instacePath": "/properties", + "instancePath": "/properties", "schemaPath": "#/properties/properties/additionalProperties", } } diff --git a/test/__tests__/twitter_ads.test.js b/test/__tests__/twitter_ads.test.js deleted file mode 100644 index ac580fe6740..00000000000 --- a/test/__tests__/twitter_ads.test.js +++ /dev/null @@ -1,44 +0,0 @@ -const integration = "twitter_ads"; -const name = "twitter_ads"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -// Processor Test Data -const testDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}.json`) -); -const testData = JSON.parse(testDataFile); - -const authHeaderConstant = "OAuth oauth_consumer_key=\"qwe\", oauth_nonce=\"V1kMh028kZLLhfeYozuL0B45Pcx6LvuW\", oauth_signature=\"Di4cuoGv4PnCMMEeqfWTcqhvdwc%3D\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"1685603652\", oauth_token=\"yrdghfvhjvhj\", oauth_version=\"1.0\""; - -jest.mock("../../src/v0/destinations/twitter_ads/util", () => { - const originalModule = jest.requireActual("../../src/v0/destinations/twitter_ads/util"); - return { - ...originalModule, - getAuthHeaderForRequest: jest.fn(() => { - return { - Authorization: authHeaderConstant - } - }) - } -}) - -describe(`${name} Tests`, () => { - describe("Processor", () => { - testData.forEach((dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, async () => { - try { - let output = await transformer.process(dataPoint.input); - delete output.body.JSON.idempotency; - expect(output).toEqual(dataPoint.output); - } catch (error) { - expect(error.message).toEqual(dataPoint.output.error); - } - }); - }); - }); -}); diff --git a/test/__tests__/user_transformation_fetch.test.js b/test/__tests__/user_transformation_fetch.test.js index d5849639d70..e37b42ea1e1 100644 --- a/test/__tests__/user_transformation_fetch.test.js +++ b/test/__tests__/user_transformation_fetch.test.js @@ -4,8 +4,7 @@ jest.mock("dns", () => { promises: { Resolver: function() { return { - resolve: mockResolver, - setServers: () => {}, + resolve4: mockResolver, }; } } @@ -121,7 +120,7 @@ describe("User transformation fetch tests", () => { } ` }; - const errMsg = "localhost requests are not allowed"; + const errMsg = "invalid url, localhost requests are not allowed"; const output = await userTransformHandler(inputData, versionId, [], trRevCode, true); @@ -278,7 +277,7 @@ describe("User transformation fetch tests", () => { } ` }; - const errMsg = "localhost requests are not allowed"; + const errMsg = "invalid url, localhost requests are not allowed"; const output = await userTransformHandler(inputData, versionId, [], trRevCode, true); diff --git a/test/__tests__/user_transformation_ts.test.ts b/test/__tests__/user_transformation_ts.test.ts new file mode 100644 index 00000000000..971476e5135 --- /dev/null +++ b/test/__tests__/user_transformation_ts.test.ts @@ -0,0 +1,43 @@ +import fetch from 'node-fetch'; +import { UserTransformService } from '../../src/services/userTransform'; +import { FeatureFlags, FEATURE_FILTER_CODE } from '../../src/middlewares/featureFlag'; +jest.mock('node-fetch', () => jest.fn()); + +const integration = 'user_transformation_service'; +const name = 'User Transformations'; +const randomID = () => Math.random().toString(36).substring(2, 15); + +describe('User Transform Service', () => { + it(`Filtering ${name} Test`, async () => { + const versionId = '24'; // set in input file + const inputData = require(`./data/${integration}_filter_input.json`); + const expectedData = require(`./data/${integration}_filter_output.json`); + + const respBody = { + codeVersion: '1', + name, + versionId: versionId, + code: `export async function transformEvent(event, metadata) { + const eventType = event.type; + log(eventType); + log(eventType.match(/track/g)); + if(eventType === 'non-standard') throw new Error('non-standard event'); + if(eventType && !eventType.match(/track/g)) return; + return event; + } + `, + }; + (fetch as jest.MockedFunction).mockResolvedValue({ + status: 200, + json: jest.fn().mockResolvedValue(respBody), + }); + const output = await UserTransformService.transformRoutine(inputData, { + [FEATURE_FILTER_CODE]: true, + } as FeatureFlags); + expect(fetch).toHaveBeenCalledWith( + `https://api.rudderlabs.com/transformation/getByVersionId?versionId=${versionId}`, + ); + + expect(output).toEqual(expectedData); + }); +}); diff --git a/test/__tests__/util.utils.test.js b/test/__tests__/util.utils.test.js index edd9cecc551..d9083565d45 100644 --- a/test/__tests__/util.utils.test.js +++ b/test/__tests__/util.utils.test.js @@ -11,7 +11,7 @@ describe('constructValidationErrors', () => { type: 'Datatype-Mismatch', message: 'must be number', meta: { - instacePath: '/properties/price', + instancePath: '/properties/price', schemaPath: '#/properties/properties/properties/price/type', }, }, @@ -19,7 +19,7 @@ describe('constructValidationErrors', () => { type: 'Datatype-Mismatch', message: 'must be string', meta: { - instacePath: '/properties/product_id', + instancePath: '/properties/product_id', schemaPath: '#/properties/properties/properties/product_id/type', }, }, @@ -28,7 +28,7 @@ describe('constructValidationErrors', () => { message: 'must NOT have additional properties : sku_id', property: 'sku_id', meta: { - instacePath: '/properties', + instancePath: '/properties', schemaPath: '#/properties/properties/additionalProperties', }, }, @@ -37,7 +37,7 @@ describe('constructValidationErrors', () => { message: "must have required property 'product_id'", property: 'product_id', meta: { - instacePath: '/properties', + instancePath: '/properties', schemaPath: '#/properties/properties/required', }, }, diff --git a/test/__tests__/variance-cdk.test.ts b/test/__tests__/variance-cdk.test.ts deleted file mode 100644 index 648ddaddbb3..00000000000 --- a/test/__tests__/variance-cdk.test.ts +++ /dev/null @@ -1,33 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import { processCdkV2Workflow } from '../../src/cdk/v2/handler'; -import tags from '../../src/v0/util/tags'; - -const integration = 'variance'; -const destName = 'Variance'; - -const inputDataFile = fs.readFileSync(path.resolve(__dirname, `./data/${integration}_input.json`), { - encoding: 'utf8', -}); -const outputDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_output.json`), - { encoding: 'utf8' }, -); -const inputData = JSON.parse(inputDataFile); -const expectedData = JSON.parse(outputDataFile); - -describe(`${destName} Tests`, () => { - describe('Processor Tests', () => { - inputData.forEach((input, index) => { - it(`${destName} - payload: ${index}`, async () => { - const expected = expectedData[index]; - try { - const output = await processCdkV2Workflow(integration, input, tags.FEATURES.PROCESSOR); - expect(output).toEqual(expected); - } catch (error: any) { - expect(error.message).toEqual(expected.error); - } - }); - }); - }); -}); diff --git a/test/__tests__/variance.test.js b/test/__tests__/variance.test.js deleted file mode 100644 index 687c1f9c122..00000000000 --- a/test/__tests__/variance.test.js +++ /dev/null @@ -1,4 +0,0 @@ -const { executeTransformationTest } = require("./utilities/test-utils"); - -executeTransformationTest("variance", "processor"); -// executeTransformationTest('variance', 'router') diff --git a/test/__tests__/vero.test.js b/test/__tests__/vero.test.js deleted file mode 100644 index b0b1d130ff2..00000000000 --- a/test/__tests__/vero.test.js +++ /dev/null @@ -1,46 +0,0 @@ -const integration = "vero"; -const name = "vero"; - -const fs = require("fs"); -const path = require("path"); - -const version = "v0"; -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -// Processor Test Data -const testDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}.json`) -); -const testData = JSON.parse(testDataFile); - -// Router Test Data -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -describe(`${name} Tests`, () => { - describe("Processor", () => { - testData.forEach((dataPoint, index) => { - it(`${index}. ${integration} - ${dataPoint.description}`, async () => { - try { - const output = await transformer.process(dataPoint.input); - expect(output).toEqual(dataPoint.output); - } catch (error) { - expect(error.message).toEqual(dataPoint.output.error); - } - }); - }); - }); - - describe("Router Tests", () => { - it("Payload", async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/warehouse.test.js b/test/__tests__/warehouse.test.js index 6d8b4902086..045bab35a6b 100644 --- a/test/__tests__/warehouse.test.js +++ b/test/__tests__/warehouse.test.js @@ -30,7 +30,10 @@ const integrations = [ "snowflake", "mssql", "azure_synapse", - "s3_datalake" + "deltalake", + "azure_datalake", + "s3_datalake", + "gcs_datalake", ]; const transformers = integrations.map(integration => require(`../../src/${version}/destinations/${integration}/transform`) @@ -229,7 +232,7 @@ describe("column & table names", () => { ); return; } - if (integrations[index] === "s3_datalake") { + if (integrations[index] === "s3_datalake" || integrations[index] === "gcs_datalake" || integrations[index] === "azure_datalake") { expect(received[1].metadata).toHaveProperty( "table", "a_1_a_2_a_3_a_4_a_5_b_1_b_2_b_3_b_4_b_5_c_1_c_2_c_3_c_4_c_5_d_1_d_2_d_3_d_4_d_5_e_1_e_2_e_3_e_4_e_5_f_1_f_2_f_3_f_4_f_5_g_1_g_2_g_3_g_4_g_5" @@ -943,7 +946,7 @@ describe("Handle no of columns in an event", () => { it("should throw an error if no of columns are more than 200", () => { const i = input("track"); transformers - .filter((transformer, index) => integrations[index] !== "s3_datalake") + .filter((transformer, index) => integrations[index] !== "s3_datalake" && integrations[index] !== "gcs_datalake" && integrations[index] !== "azure_datalake") .forEach((transformer, index) => { i.message.properties = largeNoOfColumnsevent; expect(() => transformer.process(i)).toThrow( @@ -1009,7 +1012,7 @@ describe("Integration options", () => { it("should generate two events for every track call", () => { const i = opInput("track"); transformers.forEach((transformer, index) => { - const { jsonPaths } = i.destination.Config; + const {jsonPaths} = i.destination.Config; if (integrations[index] === "postgres") { delete i.destination.Config.jsonPaths; } @@ -1019,6 +1022,7 @@ describe("Integration options", () => { }); }); }); + describe("users", () => { it("should skip users when skipUsersTable is set", () => { const i = opInput("users"); @@ -1028,6 +1032,65 @@ describe("Integration options", () => { }); }); }); + + describe("json paths", () => { + const output = (config, provider) => { + switch (provider) { + case "rs": + return _.cloneDeep(config.output.rs); + case "bq": + return _.cloneDeep(config.output.bq); + case "postgres": + return _.cloneDeep(config.output.postgres); + case "snowflake": + return _.cloneDeep(config.output.snowflake); + default: + return _.cloneDeep(config.output.default); + } + } + + const testCases = [ + { + eventType: "aliases", + }, + { + eventType: "groups", + }, + { + eventType: "identifies", + }, + { + eventType: "pages", + }, + { + eventType: "screens", + }, + { + eventType: "tracks", + }, + { + eventType: "extract", + }, + ]; + + for (const testCase of testCases) { + transformers.forEach((transformer, index) => { + it(`new ${testCase.eventType} for ${integrations[index]}`, () => { + const config = require("./data/warehouse/integrations/jsonpaths/new/" + testCase.eventType); + const input = _.cloneDeep(config.input); + const received = transformer.process(input); + expect(received).toEqual(output(config, integrations[index])); + }) + + it(`legacy ${testCase.eventType} for ${integrations[index]}`, () => { + const config = require("./data/warehouse/integrations/jsonpaths/legacy/" + testCase.eventType); + const input = _.cloneDeep(config.input); + const received = transformer.process(input); + expect(received).toEqual(output(config, integrations[index])); + }) + }); + } + }); }); describe("validTimestamp", () => { diff --git a/test/apitests/data_scenarios/cdk_v1/failure.json b/test/apitests/data_scenarios/cdk_v1/failure.json index d00e6031122..df45006d840 100644 --- a/test/apitests/data_scenarios/cdk_v1/failure.json +++ b/test/apitests/data_scenarios/cdk_v1/failure.json @@ -6,11 +6,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" } }, "event": "Product Added", diff --git a/test/apitests/data_scenarios/cdk_v1/success.json b/test/apitests/data_scenarios/cdk_v1/success.json index c8505382b16..68d68a2b5fd 100644 --- a/test/apitests/data_scenarios/cdk_v1/success.json +++ b/test/apitests/data_scenarios/cdk_v1/success.json @@ -6,11 +6,11 @@ "channel": "web", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" } }, "event": "Product Added", @@ -132,11 +132,11 @@ "channel": "web", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" } }, "event": "Product Added", diff --git a/test/apitests/data_scenarios/cdk_v2/failure.json b/test/apitests/data_scenarios/cdk_v2/failure.json index a38afbbf638..1635a3f0dbf 100644 --- a/test/apitests/data_scenarios/cdk_v2/failure.json +++ b/test/apitests/data_scenarios/cdk_v2/failure.json @@ -6,11 +6,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" } }, "event": "Product Added", @@ -183,11 +183,11 @@ "channel": "abc", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" } }, "event": "Product Viewed", @@ -360,11 +360,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" } }, "event": "Product Seen", @@ -544,11 +544,11 @@ "app_id": "", "advertiser_id": "549764492980", "user_data": { - "em": ["7e4f504f2f6ec2d363365ec866894c6e2c4c1609889f33535bbfeeec3c33a617"], - "ph": ["6bd20b059b192cded172dfd75d49bd91d6a4ad09b56ace298db8a067cbef310a"], + "em": ["b9ecbd1d999a0f17d442a08971caeea92d770dba89ac900688ecede233d652df"], + "ph": ["92b5072176e723878b5e06ff3ca61898e4eb74e8c46642a0f2db800b17364ab0"], "ge": ["62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a"], - "ln": ["b0e6036f293e37324425377b579507ee4455a3bdf74447e5fd0ba1b512e739c2"], - "fn": ["a4371f70c2cc620598bdd98dca42c1cfb2d57da40886fc19c10491cd7f666cd7"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "client_ip_address": "[::1]" }, "custom_data": { @@ -646,7 +646,8 @@ "statusCode": 400, "error": "Action source must be one of app_android, app_ios, web, offline: Workflow: procWorkflow, Step: validateCommonFields, ChildStep: undefined, OriginalError: Action source must be one of app_android, app_ios, web, offline", "statTags": { - "errorCategory": "platform", + "errorCategory": "dataValidation", + "errorType": "instrumentation", "implementation": "cdkV2", "destType": "PINTEREST_TAG", "module": "destination", @@ -666,11 +667,11 @@ "app_id": "", "advertiser_id": "549764492980", "user_data": { - "em": ["7e4f504f2f6ec2d363365ec866894c6e2c4c1609889f33535bbfeeec3c33a617"], - "ph": ["6bd20b059b192cded172dfd75d49bd91d6a4ad09b56ace298db8a067cbef310a"], + "em": ["b9ecbd1d999a0f17d442a08971caeea92d770dba89ac900688ecede233d652df"], + "ph": ["92b5072176e723878b5e06ff3ca61898e4eb74e8c46642a0f2db800b17364ab0"], "ge": ["62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a"], - "ln": ["b0e6036f293e37324425377b579507ee4455a3bdf74447e5fd0ba1b512e739c2"], - "fn": ["a4371f70c2cc620598bdd98dca42c1cfb2d57da40886fc19c10491cd7f666cd7"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "client_ip_address": "[::1]" }, "custom_data": { diff --git a/test/apitests/data_scenarios/cdk_v2/success.json b/test/apitests/data_scenarios/cdk_v2/success.json index 683587ab929..ced7433a282 100644 --- a/test/apitests/data_scenarios/cdk_v2/success.json +++ b/test/apitests/data_scenarios/cdk_v2/success.json @@ -6,11 +6,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" } }, "event": "Product Added", @@ -183,11 +183,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" } }, "event": "Product Viewed", @@ -360,11 +360,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" } }, "event": "Product Seen", @@ -544,11 +544,11 @@ "app_id": "", "advertiser_id": "549764492980", "user_data": { - "em": ["7e4f504f2f6ec2d363365ec866894c6e2c4c1609889f33535bbfeeec3c33a617"], - "ph": ["6bd20b059b192cded172dfd75d49bd91d6a4ad09b56ace298db8a067cbef310a"], + "em": ["b9ecbd1d999a0f17d442a08971caeea92d770dba89ac900688ecede233d652df"], + "ph": ["92b5072176e723878b5e06ff3ca61898e4eb74e8c46642a0f2db800b17364ab0"], "ge": ["62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a"], - "ln": ["b0e6036f293e37324425377b579507ee4455a3bdf74447e5fd0ba1b512e739c2"], - "fn": ["a4371f70c2cc620598bdd98dca42c1cfb2d57da40886fc19c10491cd7f666cd7"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "client_ip_address": "[::1]" }, "custom_data": { @@ -622,11 +622,11 @@ "app_id": "", "advertiser_id": "549764492980", "user_data": { - "em": ["7e4f504f2f6ec2d363365ec866894c6e2c4c1609889f33535bbfeeec3c33a617"], - "ph": ["6bd20b059b192cded172dfd75d49bd91d6a4ad09b56ace298db8a067cbef310a"], + "em": ["b9ecbd1d999a0f17d442a08971caeea92d770dba89ac900688ecede233d652df"], + "ph": ["92b5072176e723878b5e06ff3ca61898e4eb74e8c46642a0f2db800b17364ab0"], "ge": ["62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a"], - "ln": ["b0e6036f293e37324425377b579507ee4455a3bdf74447e5fd0ba1b512e739c2"], - "fn": ["a4371f70c2cc620598bdd98dca42c1cfb2d57da40886fc19c10491cd7f666cd7"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "client_ip_address": "[::1]" }, "custom_data": { @@ -700,11 +700,11 @@ "app_id": "", "advertiser_id": "549764492980", "user_data": { - "em": ["7e4f504f2f6ec2d363365ec866894c6e2c4c1609889f33535bbfeeec3c33a617"], - "ph": ["6bd20b059b192cded172dfd75d49bd91d6a4ad09b56ace298db8a067cbef310a"], + "em": ["b9ecbd1d999a0f17d442a08971caeea92d770dba89ac900688ecede233d652df"], + "ph": ["92b5072176e723878b5e06ff3ca61898e4eb74e8c46642a0f2db800b17364ab0"], "ge": ["62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a"], - "ln": ["b0e6036f293e37324425377b579507ee4455a3bdf74447e5fd0ba1b512e739c2"], - "fn": ["a4371f70c2cc620598bdd98dca42c1cfb2d57da40886fc19c10491cd7f666cd7"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "client_ip_address": "[::1]" }, "custom_data": { diff --git a/test/apitests/data_scenarios/destination/batch/failure_batch.json b/test/apitests/data_scenarios/destination/batch/failure_batch.json index eb15d0be6d6..8063bc74a12 100644 --- a/test/apitests/data_scenarios/destination/batch/failure_batch.json +++ b/test/apitests/data_scenarios/destination/batch/failure_batch.json @@ -28,7 +28,7 @@ } } ], - "api_key": "Techno@2020", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -92,7 +92,7 @@ } } ], - "api_key": "Techno@2020", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -283,7 +283,7 @@ "ResponseRules": null }, "Config": { - "apiKey": "Techno@2020", + "apiKey": "dummyApiKey", "apiSecret": "", "blacklistedEvents": [ { @@ -349,11 +349,11 @@ "event_type": "Product Added", "session_id": -1, "user_properties": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "event_properties": { "sku": "F15", @@ -371,7 +371,7 @@ } } ], - "api_key": "Techno@2020", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -425,11 +425,11 @@ "event_type": "Product Added", "session_id": -1, "user_properties": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "event_properties": { "sku": "F15", @@ -447,7 +447,7 @@ } } ], - "api_key": "Techno@2020", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -638,7 +638,7 @@ "ResponseRules": null }, "Config": { - "apiKey": "Techno@2020", + "apiKey": "dummyApiKey", "apiSecret": "", "blacklistedEvents": [ { @@ -706,11 +706,11 @@ "event_type": "Product Viewed", "session_id": -1, "user_properties": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "event_properties": { "sku": "F15", @@ -728,7 +728,7 @@ } } ], - "api_key": "Techno@2020", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -782,11 +782,11 @@ "event_type": "Product Viewed", "session_id": -1, "user_properties": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "event_properties": { "sku": "F15", @@ -804,7 +804,7 @@ } } ], - "api_key": "Techno@2020", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -995,7 +995,7 @@ "ResponseRules": null }, "Config": { - "apiKey": "Techno@2020", + "apiKey": "dummyApiKey", "apiSecret": "", "blacklistedEvents": [ { @@ -1087,11 +1087,11 @@ "event_type": "Product Added", "session_id": -1, "user_properties": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "event_properties": { "sku": "F15", @@ -1109,7 +1109,7 @@ } } ], - "api_key": "Techno@2020", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -1207,11 +1207,11 @@ "event_type": "Product Viewed", "session_id": -1, "user_properties": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "event_properties": { "sku": "F15", @@ -1229,7 +1229,7 @@ } } ], - "api_key": "Techno@2020" + "api_key": "dummyApiKey" }, "JSON_ARRAY": {} }, @@ -1291,7 +1291,7 @@ } } ], - "api_key": "Techno@2020", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -1381,11 +1381,11 @@ "event_type": "Product Viewed", "session_id": -1, "user_properties": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "event_properties": { "sku": "F15", @@ -1403,7 +1403,7 @@ } } ], - "api_key": "Techno@2020", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -1595,7 +1595,7 @@ "ResponseRules": null }, "Config": { - "apiKey": "Techno@2020", + "apiKey": "dummyApiKey", "apiSecret": "", "blacklistedEvents": [ { diff --git a/test/apitests/data_scenarios/destination/batch/successful_batch.json b/test/apitests/data_scenarios/destination/batch/successful_batch.json index bec5bdb26ef..32745f49d51 100644 --- a/test/apitests/data_scenarios/destination/batch/successful_batch.json +++ b/test/apitests/data_scenarios/destination/batch/successful_batch.json @@ -28,7 +28,7 @@ } } ], - "api_key": "a99702eb473e89c1352300172c142c77", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -92,7 +92,7 @@ } } ], - "api_key": "a99702eb473e89c1352300172c142c77", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -283,7 +283,7 @@ "ResponseRules": null }, "Config": { - "apiKey": "a99702eb473e89c1352300172c142c77", + "apiKey": "dummyApiKey", "apiSecret": "", "blacklistedEvents": [ { @@ -351,11 +351,11 @@ "event_type": "Product Added", "session_id": -1, "user_properties": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "event_properties": { "sku": "F15", @@ -373,7 +373,7 @@ } } ], - "api_key": "a99702eb473e89c1352300172c142c77", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -427,11 +427,11 @@ "event_type": "Product Added", "session_id": -1, "user_properties": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "event_properties": { "sku": "F15", @@ -449,7 +449,7 @@ } } ], - "api_key": "a99702eb473e89c1352300172c142c77", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -640,7 +640,7 @@ "ResponseRules": null }, "Config": { - "apiKey": "a99702eb473e89c1352300172c142c77", + "apiKey": "dummyApiKey", "apiSecret": "", "blacklistedEvents": [ { @@ -708,11 +708,11 @@ "event_type": "Product Viewed", "session_id": -1, "user_properties": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "event_properties": { "sku": "F15", @@ -730,7 +730,7 @@ } } ], - "api_key": "a99702eb473e89c1352300172c142c77", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -784,11 +784,11 @@ "event_type": "Product Viewed", "session_id": -1, "user_properties": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "event_properties": { "sku": "F15", @@ -806,7 +806,7 @@ } } ], - "api_key": "a99702eb473e89c1352300172c142c77", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -997,7 +997,7 @@ "ResponseRules": null }, "Config": { - "apiKey": "a99702eb473e89c1352300172c142c77", + "apiKey": "dummyApiKey", "apiSecret": "", "blacklistedEvents": [ { @@ -1088,11 +1088,11 @@ "event_type": "Product Added", "session_id": -1, "user_properties": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "event_properties": { "sku": "F15", @@ -1119,11 +1119,11 @@ "event_type": "Product Viewed", "session_id": -1, "user_properties": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "event_properties": { "sku": "F15", @@ -1141,7 +1141,7 @@ } } ], - "api_key": "a99702eb473e89c1352300172c142c77" + "api_key": "dummyApiKey" }, "JSON_ARRAY": {} }, @@ -1203,7 +1203,7 @@ } } ], - "api_key": "a99702eb473e89c1352300172c142c77", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -1293,11 +1293,11 @@ "event_type": "Product Added", "session_id": -1, "user_properties": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "event_properties": { "sku": "F15", @@ -1315,7 +1315,7 @@ } } ], - "api_key": "a99702eb473e89c1352300172c142c77", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -1405,11 +1405,11 @@ "event_type": "Product Viewed", "session_id": -1, "user_properties": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "event_properties": { "sku": "F15", @@ -1427,7 +1427,7 @@ } } ], - "api_key": "a99702eb473e89c1352300172c142c77", + "api_key": "dummyApiKey", "options": { "min_id_length": 1 } @@ -1619,7 +1619,7 @@ "ResponseRules": null }, "Config": { - "apiKey": "a99702eb473e89c1352300172c142c77", + "apiKey": "dummyApiKey", "apiSecret": "", "blacklistedEvents": [ { diff --git a/test/apitests/data_scenarios/destination/proc/batch_input.json b/test/apitests/data_scenarios/destination/proc/batch_input.json index fbb89abed22..d5a9d85a3f4 100644 --- a/test/apitests/data_scenarios/destination/proc/batch_input.json +++ b/test/apitests/data_scenarios/destination/proc/batch_input.json @@ -6,11 +6,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" } }, "event": "Product Added", @@ -214,11 +214,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" } }, "event": "Product Viewed", @@ -339,11 +339,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" }, "ip": "[::1]" }, @@ -499,11 +499,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" }, "ip": "[::1]" }, diff --git a/test/apitests/data_scenarios/destination/proc/batch_input_multiplex.json b/test/apitests/data_scenarios/destination/proc/batch_input_multiplex.json index e7a39775ff6..7dd8984f282 100644 --- a/test/apitests/data_scenarios/destination/proc/batch_input_multiplex.json +++ b/test/apitests/data_scenarios/destination/proc/batch_input_multiplex.json @@ -6,11 +6,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" } }, "event": "Product Added", @@ -182,11 +182,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" } }, "event": "Product Viewed", @@ -374,11 +374,11 @@ "app_id": "", "advertiser_id": "549764492980", "user_data": { - "em": ["7e4f504f2f6ec2d363365ec866894c6e2c4c1609889f33535bbfeeec3c33a617"], - "ph": ["6bd20b059b192cded172dfd75d49bd91d6a4ad09b56ace298db8a067cbef310a"], + "em": ["b9ecbd1d999a0f17d442a08971caeea92d770dba89ac900688ecede233d652df"], + "ph": ["92b5072176e723878b5e06ff3ca61898e4eb74e8c46642a0f2db800b17364ab0"], "ge": ["62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a"], - "ln": ["b0e6036f293e37324425377b579507ee4455a3bdf74447e5fd0ba1b512e739c2"], - "fn": ["a4371f70c2cc620598bdd98dca42c1cfb2d57da40886fc19c10491cd7f666cd7"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "client_ip_address": "[::1]" }, "custom_data": { @@ -452,11 +452,11 @@ "app_id": "", "advertiser_id": "549764492980", "user_data": { - "em": ["7e4f504f2f6ec2d363365ec866894c6e2c4c1609889f33535bbfeeec3c33a617"], - "ph": ["6bd20b059b192cded172dfd75d49bd91d6a4ad09b56ace298db8a067cbef310a"], + "em": ["b9ecbd1d999a0f17d442a08971caeea92d770dba89ac900688ecede233d652df"], + "ph": ["92b5072176e723878b5e06ff3ca61898e4eb74e8c46642a0f2db800b17364ab0"], "ge": ["62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a"], - "ln": ["b0e6036f293e37324425377b579507ee4455a3bdf74447e5fd0ba1b512e739c2"], - "fn": ["a4371f70c2cc620598bdd98dca42c1cfb2d57da40886fc19c10491cd7f666cd7"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "client_ip_address": "[::1]" }, "custom_data": { @@ -530,11 +530,11 @@ "app_id": "", "advertiser_id": "549764492980", "user_data": { - "em": ["7e4f504f2f6ec2d363365ec866894c6e2c4c1609889f33535bbfeeec3c33a617"], - "ph": ["6bd20b059b192cded172dfd75d49bd91d6a4ad09b56ace298db8a067cbef310a"], + "em": ["b9ecbd1d999a0f17d442a08971caeea92d770dba89ac900688ecede233d652df"], + "ph": ["92b5072176e723878b5e06ff3ca61898e4eb74e8c46642a0f2db800b17364ab0"], "ge": ["62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a"], - "ln": ["b0e6036f293e37324425377b579507ee4455a3bdf74447e5fd0ba1b512e739c2"], - "fn": ["a4371f70c2cc620598bdd98dca42c1cfb2d57da40886fc19c10491cd7f666cd7"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "client_ip_address": "[::1]" }, "custom_data": { diff --git a/test/apitests/data_scenarios/destination/proc/multiplex_failure.json b/test/apitests/data_scenarios/destination/proc/multiplex_failure.json index 4717d85fbc9..dc9919fb1a5 100644 --- a/test/apitests/data_scenarios/destination/proc/multiplex_failure.json +++ b/test/apitests/data_scenarios/destination/proc/multiplex_failure.json @@ -5,11 +5,11 @@ "anonymousId": "2073230", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" } }, "event": "Product Added", diff --git a/test/apitests/data_scenarios/destination/proc/multiplex_partial_failure.json b/test/apitests/data_scenarios/destination/proc/multiplex_partial_failure.json index b973b5c509d..63194f1b87a 100644 --- a/test/apitests/data_scenarios/destination/proc/multiplex_partial_failure.json +++ b/test/apitests/data_scenarios/destination/proc/multiplex_partial_failure.json @@ -6,11 +6,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" } }, "event": "Product Added", @@ -182,11 +182,11 @@ "channel": "abc", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" } }, "event": "Product Viewed", @@ -374,11 +374,11 @@ "app_id": "", "advertiser_id": "549764492980", "user_data": { - "em": ["7e4f504f2f6ec2d363365ec866894c6e2c4c1609889f33535bbfeeec3c33a617"], - "ph": ["6bd20b059b192cded172dfd75d49bd91d6a4ad09b56ace298db8a067cbef310a"], + "em": ["b9ecbd1d999a0f17d442a08971caeea92d770dba89ac900688ecede233d652df"], + "ph": ["92b5072176e723878b5e06ff3ca61898e4eb74e8c46642a0f2db800b17364ab0"], "ge": ["62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a"], - "ln": ["b0e6036f293e37324425377b579507ee4455a3bdf74447e5fd0ba1b512e739c2"], - "fn": ["a4371f70c2cc620598bdd98dca42c1cfb2d57da40886fc19c10491cd7f666cd7"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "client_ip_address": "[::1]" }, "custom_data": { @@ -452,11 +452,11 @@ "app_id": "", "advertiser_id": "549764492980", "user_data": { - "em": ["7e4f504f2f6ec2d363365ec866894c6e2c4c1609889f33535bbfeeec3c33a617"], - "ph": ["6bd20b059b192cded172dfd75d49bd91d6a4ad09b56ace298db8a067cbef310a"], + "em": ["b9ecbd1d999a0f17d442a08971caeea92d770dba89ac900688ecede233d652df"], + "ph": ["92b5072176e723878b5e06ff3ca61898e4eb74e8c46642a0f2db800b17364ab0"], "ge": ["62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a"], - "ln": ["b0e6036f293e37324425377b579507ee4455a3bdf74447e5fd0ba1b512e739c2"], - "fn": ["a4371f70c2cc620598bdd98dca42c1cfb2d57da40886fc19c10491cd7f666cd7"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "client_ip_address": "[::1]" }, "custom_data": { diff --git a/test/apitests/data_scenarios/destination/proc/multiplex_success.json b/test/apitests/data_scenarios/destination/proc/multiplex_success.json index d18dbf1df56..bf1b1aae81c 100644 --- a/test/apitests/data_scenarios/destination/proc/multiplex_success.json +++ b/test/apitests/data_scenarios/destination/proc/multiplex_success.json @@ -6,11 +6,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "firstName": "utsab", + "email": "test.c97@gmail.com", + "firstName": "test", "gender": "Male", - "lastName": "chowdhury", - "phone": "+919830311522" + "lastName": "Rudderlabs", + "phone": "+919876543210" } }, "event": "Product Added", @@ -194,11 +194,11 @@ "app_id": "", "advertiser_id": "549764492980", "user_data": { - "em": ["7e4f504f2f6ec2d363365ec866894c6e2c4c1609889f33535bbfeeec3c33a617"], - "ph": ["6bd20b059b192cded172dfd75d49bd91d6a4ad09b56ace298db8a067cbef310a"], + "em": ["b9ecbd1d999a0f17d442a08971caeea92d770dba89ac900688ecede233d652df"], + "ph": ["92b5072176e723878b5e06ff3ca61898e4eb74e8c46642a0f2db800b17364ab0"], "ge": ["62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a"], - "ln": ["b0e6036f293e37324425377b579507ee4455a3bdf74447e5fd0ba1b512e739c2"], - "fn": ["a4371f70c2cc620598bdd98dca42c1cfb2d57da40886fc19c10491cd7f666cd7"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "client_ip_address": "[::1]" }, "custom_data": { @@ -272,11 +272,11 @@ "app_id": "", "advertiser_id": "549764492980", "user_data": { - "em": ["7e4f504f2f6ec2d363365ec866894c6e2c4c1609889f33535bbfeeec3c33a617"], - "ph": ["6bd20b059b192cded172dfd75d49bd91d6a4ad09b56ace298db8a067cbef310a"], + "em": ["b9ecbd1d999a0f17d442a08971caeea92d770dba89ac900688ecede233d652df"], + "ph": ["92b5072176e723878b5e06ff3ca61898e4eb74e8c46642a0f2db800b17364ab0"], "ge": ["62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a"], - "ln": ["b0e6036f293e37324425377b579507ee4455a3bdf74447e5fd0ba1b512e739c2"], - "fn": ["a4371f70c2cc620598bdd98dca42c1cfb2d57da40886fc19c10491cd7f666cd7"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "client_ip_address": "[::1]" }, "custom_data": { diff --git a/test/apitests/data_scenarios/destination/router/failure_test.json b/test/apitests/data_scenarios/destination/router/failure_test.json index 917a92ca00d..96c5cff54fe 100644 --- a/test/apitests/data_scenarios/destination/router/failure_test.json +++ b/test/apitests/data_scenarios/destination/router/failure_test.json @@ -10,11 +10,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -67,11 +67,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -247,11 +247,11 @@ "channel": "random", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -304,11 +304,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -484,11 +484,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -541,11 +541,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -739,11 +739,11 @@ "app_id": "", "advertiser_id": "549764492980", "user_data": { - "em": ["7e4f504f2f6ec2d363365ec866894c6e2c4c1609889f33535bbfeeec3c33a617"], - "ph": ["6bd20b059b192cded172dfd75d49bd91d6a4ad09b56ace298db8a067cbef310a"], + "em": ["b9ecbd1d999a0f17d442a08971caeea92d770dba89ac900688ecede233d652df"], + "ph": ["92b5072176e723878b5e06ff3ca61898e4eb74e8c46642a0f2db800b17364ab0"], "ge": ["62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a"], - "ln": ["b0e6036f293e37324425377b579507ee4455a3bdf74447e5fd0ba1b512e739c2"], - "fn": ["a4371f70c2cc620598bdd98dca42c1cfb2d57da40886fc19c10491cd7f666cd7"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "client_ip_address": "[::1]" }, "custom_data": { @@ -766,11 +766,11 @@ "app_id": "", "advertiser_id": "549764492980", "user_data": { - "em": ["7e4f504f2f6ec2d363365ec866894c6e2c4c1609889f33535bbfeeec3c33a617"], - "ph": ["6bd20b059b192cded172dfd75d49bd91d6a4ad09b56ace298db8a067cbef310a"], + "em": ["b9ecbd1d999a0f17d442a08971caeea92d770dba89ac900688ecede233d652df"], + "ph": ["92b5072176e723878b5e06ff3ca61898e4eb74e8c46642a0f2db800b17364ab0"], "ge": ["62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a"], - "ln": ["b0e6036f293e37324425377b579507ee4455a3bdf74447e5fd0ba1b512e739c2"], - "fn": ["a4371f70c2cc620598bdd98dca42c1cfb2d57da40886fc19c10491cd7f666cd7"], + "ln": ["dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251"], + "fn": ["9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"], "client_ip_address": "[::1]" }, "custom_data": { @@ -821,11 +821,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -914,11 +914,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -1118,11 +1118,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", diff --git a/test/apitests/data_scenarios/destination/router/successful_test.json b/test/apitests/data_scenarios/destination/router/successful_test.json index e24d5724596..3b0b89bd47a 100644 --- a/test/apitests/data_scenarios/destination/router/successful_test.json +++ b/test/apitests/data_scenarios/destination/router/successful_test.json @@ -148,11 +148,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -205,11 +205,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -322,11 +322,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -379,11 +379,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -670,11 +670,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "ip": "[::1]" }, @@ -736,11 +736,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -866,11 +866,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "ip": "[::1]" }, @@ -932,11 +932,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", diff --git a/test/apitests/data_scenarios/destination/router/two_destination_test.json b/test/apitests/data_scenarios/destination/router/two_destination_test.json index e038153f75e..92191a3637c 100644 --- a/test/apitests/data_scenarios/destination/router/two_destination_test.json +++ b/test/apitests/data_scenarios/destination/router/two_destination_test.json @@ -148,11 +148,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -205,11 +205,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -322,11 +322,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -379,11 +379,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -634,11 +634,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -691,11 +691,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -808,11 +808,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -865,11 +865,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -1156,11 +1156,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "ip": "[::1]" }, @@ -1222,11 +1222,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -1352,11 +1352,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "ip": "[::1]" }, @@ -1418,11 +1418,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -1707,11 +1707,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "ip": "[::1]" }, @@ -1773,11 +1773,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", @@ -1903,11 +1903,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" }, "ip": "[::1]" }, @@ -1969,11 +1969,11 @@ "channel": "offline", "context": { "traits": { - "email": "utsab.c97@gmail.com", - "phone": "+919830311522", + "email": "test.c97@gmail.com", + "phone": "+919876543210", "gender": "Male", - "lastName": "chowdhury", - "firstName": "utsab" + "lastName": "Rudderlabs", + "firstName": "test" } }, "rudderId": "4b68d6ea-57ad-4f2c-8b1d-8e037ee7becf", diff --git a/test/apitests/data_scenarios/source/failure.json b/test/apitests/data_scenarios/source/v0/failure.json similarity index 100% rename from test/apitests/data_scenarios/source/failure.json rename to test/apitests/data_scenarios/source/v0/failure.json diff --git a/test/apitests/data_scenarios/source/response_to_caller.json b/test/apitests/data_scenarios/source/v0/response_to_caller.json similarity index 100% rename from test/apitests/data_scenarios/source/response_to_caller.json rename to test/apitests/data_scenarios/source/v0/response_to_caller.json diff --git a/test/apitests/data_scenarios/source/successful.json b/test/apitests/data_scenarios/source/v0/successful.json similarity index 95% rename from test/apitests/data_scenarios/source/successful.json rename to test/apitests/data_scenarios/source/v0/successful.json index 74af44932b5..7663364d7a0 100644 --- a/test/apitests/data_scenarios/source/successful.json +++ b/test/apitests/data_scenarios/source/v0/successful.json @@ -98,11 +98,11 @@ "company": null, "country": "India", "country_code": "IN", - "first_name": "Utsab", - "last_name": "Chowdhury", + "first_name": "test", + "last_name": "Rudderlabs", "latitude": null, "longitude": null, - "name": "Utsab Chowdhury", + "name": "test Rudderlabs", "phone": null, "province": "West Bengal", "province_code": "WB", @@ -115,11 +115,11 @@ "company": null, "country": "India", "country_code": "IN", - "first_name": "Utsab", - "last_name": "Chowdhury", + "first_name": "test", + "last_name": "Rudderlabs", "latitude": null, "longitude": null, - "name": "Utsab Chowdhury", + "name": "test Rudderlabs", "phone": null, "province": "West Bengal", "province_code": "WB", @@ -269,11 +269,11 @@ "company": null, "country": "India", "country_code": "IN", - "first_name": "Utsab", - "last_name": "Chowdhury", + "first_name": "test", + "last_name": "Rudderlabs", "latitude": null, "longitude": null, - "name": "Utsab Chowdhury", + "name": "test Rudderlabs", "phone": null, "province": "West Bengal", "province_code": "WB", @@ -286,11 +286,11 @@ "company": null, "country": "India", "country_code": "IN", - "first_name": "Utsab", - "last_name": "Chowdhury", + "first_name": "test", + "last_name": "Rudderlabs", "latitude": null, "longitude": null, - "name": "Utsab Chowdhury", + "name": "test Rudderlabs", "phone": null, "province": "West Bengal", "province_code": "WB", diff --git a/test/apitests/data_scenarios/source/v1/failure.json b/test/apitests/data_scenarios/source/v1/failure.json new file mode 100644 index 00000000000..9bf77f9b537 --- /dev/null +++ b/test/apitests/data_scenarios/source/v1/failure.json @@ -0,0 +1,27 @@ +{ + "input": [ + { + "event": { + "anonymousId": "63767499ca6fb1b7c988d5bb", + "artist": "Gautam", + "genre": "Jazz", + "song": "Take Five" + }, + "source": { + "id": "source_id", + "config": { + "configField1": "configVal1" + } + } + } + ], + "output": [ + { + "statusCode": 500, + "error": "Cannot find module '../undefined/sources/NA_SOURCE/transform' from 'src/services/misc.ts'", + "statTags": { + "errorCategory": "transformation" + } + } + ] +} diff --git a/test/apitests/data_scenarios/source/v1/pipedream.json b/test/apitests/data_scenarios/source/v1/pipedream.json new file mode 100644 index 00000000000..1496471066e --- /dev/null +++ b/test/apitests/data_scenarios/source/v1/pipedream.json @@ -0,0 +1,49 @@ +{ + "input": [ + { + "event": { + "anonymousId": "63767499ca6fb1b7c988d5bb", + "artist": "Gautam", + "genre": "Jazz", + "song": "Take Five" + }, + "source": { + "id": "source_id", + "config": { + "configField1": "configVal1" + } + } + } + ], + "output": [ + { + "output": { + "batch": [ + { + "event": "pipedream_source_event", + "anonymousId": "63767499ca6fb1b7c988d5bb", + "context": { + "integration": { + "name": "PIPEDREAM" + }, + "library": { + "name": "unknown", + "version": "unknown" + } + }, + "integrations": { + "PIPEDREAM": false + }, + "type": "track", + "properties": { + "anonymousId": "63767499ca6fb1b7c988d5bb", + "artist": "Gautam", + "genre": "Jazz", + "song": "Take Five" + } + } + ] + } + } + ] +} diff --git a/test/apitests/data_scenarios/source/v1/successful.json b/test/apitests/data_scenarios/source/v1/successful.json new file mode 100644 index 00000000000..c42d723800a --- /dev/null +++ b/test/apitests/data_scenarios/source/v1/successful.json @@ -0,0 +1,38 @@ +{ + "input": [ + { + "event": { + "event": "Fulfillments Update", + "data": { + "fulfillment_id": "1234567890", + "status": "pending" + } + }, + "source": { + "id": "source_id", + "config": { + "configField1": "configVal1" + } + } + } + ], + "output": [ + { + "output": { + "batch": [ + { + "type": "track", + "event": "webhook_source_event", + "properties": { + "event": "Fulfillments Update", + "data": { + "fulfillment_id": "1234567890", + "status": "pending" + } + } + } + ] + } + } + ] +} diff --git a/test/apitests/service.api.test.ts b/test/apitests/service.api.test.ts index dfe7e10dd61..ee534d7b371 100644 --- a/test/apitests/service.api.test.ts +++ b/test/apitests/service.api.test.ts @@ -177,7 +177,7 @@ describe('Destination api tests', () => { describe('Source api tests', () => { test('(shopify) successful source transform', async () => { - const data = getDataFromPath('./data_scenarios/source/successful.json'); + const data = getDataFromPath('./data_scenarios/source/v0/successful.json'); const response = await request(server) .post('/v0/sources/shopify') .set('Accept', 'application/json') @@ -189,7 +189,7 @@ describe('Source api tests', () => { }); test('(shopify) failure source transform (shopify)', async () => { - const data = getDataFromPath('./data_scenarios/source/failure.json'); + const data = getDataFromPath('./data_scenarios/source/v0/failure.json'); const response = await request(server) .post('/v0/sources/shopify') .set('Accept', 'application/json') @@ -199,7 +199,7 @@ describe('Source api tests', () => { }); test('(shopify) success source transform (monday)', async () => { - const data = getDataFromPath('./data_scenarios/source/response_to_caller.json'); + const data = getDataFromPath('./data_scenarios/source/v0/response_to_caller.json'); const response = await request(server) .post('/v0/sources/monday') .set('Accept', 'application/json') @@ -207,6 +207,38 @@ describe('Source api tests', () => { expect(response.status).toEqual(200); expect(JSON.parse(response.text)).toEqual(data.output); }); + + test('(webhook) successful source transform for source present in v1 and server providing v0 endpoint', async () => { + const data = getDataFromPath('./data_scenarios/source/v1/successful.json'); + const response = await request(server) + .post('/v1/sources/webhook') + .set('Accept', 'application/json') + .send(data.input); + const parsedResp = JSON.parse(response.text); + delete parsedResp[0].output.batch[0].anonymousId; + expect(response.status).toEqual(200); + expect(parsedResp).toEqual(data.output); + }); + + test('(NA_SOURCE) failure source transform ', async () => { + const data = getDataFromPath('./data_scenarios/source/v1/failure.json'); + const response = await request(server) + .post('/v0/sources/NA_SOURCE') + .set('Accept', 'application/json') + .send(data.input); + expect(response.status).toEqual(200); + expect(JSON.parse(response.text)).toEqual(data.output); + }); + + test('(pipedream) success source transform for source present in v0 and server providing v1 endpoint', async () => { + const data = getDataFromPath('./data_scenarios/source/v1/pipedream.json'); + const response = await request(server) + .post('/v1/sources/pipedream') + .set('Accept', 'application/json') + .send(data.input); + expect(response.status).toEqual(200); + expect(JSON.parse(response.text)).toEqual(data.output); + }); }); describe('CDK V1 api tests', () => { diff --git a/test/controllerUtility/ctrl-utility.test.ts b/test/controllerUtility/ctrl-utility.test.ts index 63bdcd3ddf6..bf9eef1846f 100644 --- a/test/controllerUtility/ctrl-utility.test.ts +++ b/test/controllerUtility/ctrl-utility.test.ts @@ -1,5 +1,5 @@ import { ProcessorTransformationRequest, RouterTransformationRequestData } from '../../src/types'; -import ControllerUtility from '../../src/controllers/util'; +import { ControllerUtility } from '../../src/controllers/util'; type timestampTestCases = { caseName: string; @@ -56,6 +56,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -119,6 +120,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -186,6 +188,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -249,6 +252,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -316,6 +320,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -379,6 +384,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -448,6 +454,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -509,6 +516,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -570,6 +578,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -631,6 +640,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -696,6 +706,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -757,6 +768,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -818,6 +830,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -879,6 +892,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -912,7 +926,7 @@ const timestampEventsCases: timestampTestCases[] = [ traits: { timestamp: '2023-01-22T00:29:12.117+05:30', }, - mappedToDestination: true + mappedToDestination: true, }, sentAt: '2022-12-23T00:29:12.117+05:30', timestamp: '2022-11-22T00:29:10.188+05:30', @@ -949,6 +963,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -1010,6 +1025,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string-2', @@ -1034,7 +1050,7 @@ const timestampEventsCases: timestampTestCases[] = [ originalTimestamp: '2022-12-23T00:29:12.117+05:30', channel: 'sources', context: { - mappedToDestination: true + mappedToDestination: true, }, properties: { timestamp: '2023-01-13T00:29:12.117+05:30', @@ -1074,6 +1090,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -1095,7 +1112,7 @@ const timestampEventsCases: timestampTestCases[] = [ anonymousId: '2073232', event: 'Test', context: { - mappedToDestination: true + mappedToDestination: true, }, messageId: 'e3a51e9a-6313-4389-ae73-07e487c8d9d0', originalTimestamp: '2022-12-23T00:29:12.117+05:30', @@ -1138,6 +1155,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -1167,7 +1185,7 @@ const timestampEventsCases: timestampTestCases[] = [ traits: { timestamp: '2023-01-22T00:29:12.117+05:30', }, - mappedToDestination: true + mappedToDestination: true, }, sentAt: '2022-12-23T00:29:12.117+05:30', timestamp: '2022-11-22T00:29:10.188+05:30', @@ -1204,6 +1222,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -1265,6 +1284,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string-2', @@ -1289,7 +1309,7 @@ const timestampEventsCases: timestampTestCases[] = [ originalTimestamp: '2022-12-23T00:29:12.117+05:30', channel: 'sources', context: { - mappedToDestination: true + mappedToDestination: true, }, properties: { timestamp: '2023-01-13T00:29:12.117+05:30', @@ -1329,6 +1349,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', @@ -1353,7 +1374,7 @@ const timestampEventsCases: timestampTestCases[] = [ originalTimestamp: '2022-12-23T00:29:12.117+05:30', channel: 'sources', context: { - mappedToDestination: true + mappedToDestination: true, }, properties: { timestamp: '2023-01-13T00:29:12.117+05:30', @@ -1393,6 +1414,7 @@ const timestampEventsCases: timestampTestCases[] = [ eventType: 'track', sourceDefinitionId: '1b6gJdqOPOCadT3cddw8eidV591', destinationDefinitionId: '', + transformationId: '', }, destination: { ID: 'string', diff --git a/test/deleteUsers/README.md b/test/deleteUsers/README.md deleted file mode 100644 index c3170f3a8c1..00000000000 --- a/test/deleteUsers/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# DeleteUsers Tests - -All the tests data for deleteUsers are to be present in **tests**/data/deleteUsers/${destination}/ - -### Files and their significance - -- **`handler_input.json`** - Input data for `handleDeletionOfUsers` function in `versionedRouter.js`(alias for `_deleteUsers_proxy_input.json`) -- **`handler_output.json`** - Output of `handleDeletionOfUsers` function in `versionedRouter.js`(alias for `_deleteUsers_proxy_output.json`) -- **`nw_client_data.json`** - the mock http responses(An example can be seen in the case of `ga`) - -### Fields in new files - -#### nw_client_data.json - -- Type: Array> -- The array of object is how many responses have to be sent back -- Each of the object contains below mentioned fields - - type: - - Indicates what type of http client invocation it is - - Recommended to be sent - - Supported values: - - post - - get - - delete - - constructor - - if nothing is mentioned, `post` is considered by default - - reqParams: - - Type: Array - - Optional - - Indicates the expected arguments that are to be sent to the http client instance - - We would `recommend` to also add this as part of your `nw_client_data.json` - - response: - - Type: object - - Required - - The response that needs to be returned from the http client diff --git a/test/deleteUsers/data/af/handler_input.json b/test/deleteUsers/data/af/handler_input.json deleted file mode 100644 index 0cb6f928f9b..00000000000 --- a/test/deleteUsers/data/af/handler_input.json +++ /dev/null @@ -1,177 +0,0 @@ -[ - { - "request": { - "body": [ - { - "destType": "AF", - "userAttributes": [ - { - "userId": "test_user_id", - "android_advertising_id": "1665148898336-5539842602053895577" - } - ], - "config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "appleAppId": "123456789", - "androidAppId": "AnAID", - "apiToken": "c81aaf36-8323-4bb6-b5a8-06b310e34f3c" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "AF", - "userAttributes": [ - { - "userId": "test_user_id", - "ios_advertising_id": "1665148898336-5539842602053895577" - } - ], - "config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "appleAppId": "123456789", - "androidAppId": "AnAID", - "apiToken": "c81aaf36-8323-4bb6-b5a8-06b310e34f3c", - "statusCallbackUrls": "https://examplecontroller.com/opengdpr_callbacks" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "AF", - "userAttributes": [ - { - "userId": "test_user_id", - "appsflyer_id": "jklhajksfh" - }, - { - "userId": "user_sdk2", - "appsflyer_id": "jklhajksfh" - } - ], - "config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "apiToken": "c81aaf36-8323-4bb6-b5a8-06b310e34f3c" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "AF", - "userAttributes": [ - { - "userId": "test_user_id", - "appsflyer_id": "jklhajksfh" - }, - { - "userId": "user_sdk2", - "appsflyer_id": "jklhajksfh" - } - ], - "config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "appleAppId": "123456789", - "statusCallbackUrls": "https://examplecontroller.com/opengdpr_callbacks,https://examplecontroller.com/opengdpr_callbacks,https://examplecontroller.com/opengdpr_callbacks,https://examplecontroller.com/opengdpr_callbacks", - "apiToken": "c81aaf36-8323-4bb6-b5a8-06b310e34f3c" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "AF", - "userAttributes": [ - { - "email": "testUser@testMail.com", - "android_advertising_id": "1234" - }, - { - "userId": "user_sdk2", - "android_advertising_id": "1234" - } - ], - "config": { - "devKey": "abcde", - "appleAppId": "asdfasdf", - "groupTypeTrait": "email", - "groupValueTrait": "age", - "trackProductsOnce": false, - "trackRevenuePerProduct": false, - "apiToken": "c81aaf36-8323-4bb6-b5a8-06b310e34f3c" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "AF", - "userAttributes": [ - { - "email": "testUser@testMail.com", - "ios_advertising_id": "1234" - }, - { - "userId": "user_sdk2", - "ios_advertising_id": "1234" - } - ], - "config": { - "devKey": "abcde", - "androidAppId": "com.rudder.rs", - "groupTypeTrait": "email", - "groupValueTrait": "age", - "trackProductsOnce": false, - "trackRevenuePerProduct": false, - "apiToken": "c81aaf36-8323-4bb6-b5a8-06b310e34f3c" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "AF", - "userAttributes": [ - { - "email": "testUser@testMail.com", - "userId": "user1234" - }, - { - "userId": "user_sdk2", - "ios_advertising_id": "1234" - } - ], - "config": { - "devKey": "abcde", - "androidAppId": "com.rudder.rs", - "groupTypeTrait": "email", - "groupValueTrait": "age", - "trackProductsOnce": false, - "trackRevenuePerProduct": false, - "apiToken": "c81aaf36-8323-4bb6-b5a8-06b310e34f3c" - } - } - ] - } - } -] diff --git a/test/deleteUsers/data/af/handler_output.json b/test/deleteUsers/data/af/handler_output.json deleted file mode 100644 index 33363c69d3e..00000000000 --- a/test/deleteUsers/data/af/handler_output.json +++ /dev/null @@ -1,44 +0,0 @@ -[ - [ - { - "statusCode": 400, - "error": "User deletion request failed" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ], - [ - { - "statusCode": 400, - "error": "API Token and one of Apple ID or Android App Id are required fields for user deletion" - } - ], - [ - { - "statusCode": 400, - "error": "You can send utmost 3 callBackUrls" - } - ], - [ - { - "statusCode": 400, - "error": "androidAppId is required for android_advertising_id type identifier" - } - ], - [ - { - "statusCode": 400, - "error": "appleAppId is required for ios_advertising_id type identifier" - } - ], - [ - { - "statusCode": 400, - "error": "none of the possible identityTypes i.e.(ios_advertising_id, android_advertising_id, appsflyer_id) is provided for deletion" - } - ] -] diff --git a/test/deleteUsers/data/af/nw_client_data.json b/test/deleteUsers/data/af/nw_client_data.json deleted file mode 100644 index 08e08d07166..00000000000 --- a/test/deleteUsers/data/af/nw_client_data.json +++ /dev/null @@ -1,58 +0,0 @@ -[ - [ - { - "type": "post", - "reqParams": [ - "https://hq1.appsflyer.com/gdpr/opengdpr_requests?api_token=c81aaf36-8323-4bb6-b5a8-06b310e34f3c", - { - "subject_request_type": "erasure", - "subject_identities": { - "identity_format": "raw", - "identity_type": "android_advertising_id", - "identity_value": "1665148898336-5539842602053895577" - }, - "property_id": "AnAID", - "subject_request_id": "f31a16f4-2357-47b5-aba0-d83742f2fd66", - "submitted_time": "2022-12-26T12:51:27.570Z" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "error": { - "code": 400, - "af_gdpr_code": "e411", - "message": "AppID given in 'property_id' is incorrect or does not belong to your account" - } - }, - "status": 400 - } - } - } - ], - [ - { - "type": "post", - "reqParams": [ - "https://hq1.appsflyer.com/gdpr/opengdpr_requests?api_token=c81aaf36-8323-4bb6-b5a8-06b310e34f3c", - { - "subject_request_type": "erasure", - "subject_identities": { - "identity_format": "raw", - "identity_type": "ios_advertising_id", - "identity_value": "1665148898336-5539842602053895577" - }, - "property_id": "123456789", - "subject_request_id": "f31a16f4-2357-47b5-aba0-d83742f2fd66", - "submitted_time": "2022-12-26T12:51:27.570Z" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - } - ] -] diff --git a/test/deleteUsers/data/am/handler_input.json b/test/deleteUsers/data/am/handler_input.json deleted file mode 100644 index 66b97d4a4d6..00000000000 --- a/test/deleteUsers/data/am/handler_input.json +++ /dev/null @@ -1,380 +0,0 @@ -[ - { - "request": { - "body": [ - { - "jobId": "423451324652346", - "destType": "AM", - "userAttributes": [ - { - "userIderror": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - } - ], - "config": { - "apiKey": "1234", - "apiSecret": "abcd" - } - } - ] - } - } -] - - diff --git a/test/deleteUsers/data/am/handler_output.json b/test/deleteUsers/data/am/handler_output.json deleted file mode 100644 index c453a831d9a..00000000000 --- a/test/deleteUsers/data/am/handler_output.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - [ - { - "statusCode": 400, - "error": "User deletion request failed" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ], - [ - { - "statusCode": 400, - "error": "Config for deletion not present" - } - ], - [ - { - "statusCode": 400, - "error": "api key/secret for deletion not present" - } - ] -] diff --git a/test/deleteUsers/data/am/nw_client_data.json b/test/deleteUsers/data/am/nw_client_data.json deleted file mode 100644 index 3abf39691a7..00000000000 --- a/test/deleteUsers/data/am/nw_client_data.json +++ /dev/null @@ -1,91 +0,0 @@ -[ - [ - { - "type": "post", - "reqParams": [ - "https://amplitude.com/api/2/deletions/users", - { - "userIds": ["Batch1"] - }, - { - "Content-Type": "application/json", - "Authorization": "Basic MTIzNDphYmNk" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "code": 403, - "message": "HTTP 403: Forbidden (Invalid API Key)", - "status": "Forbidden" - }, - "status": 400 - } - } - }, - { - "type": "post", - "reqParams": [ - "https://amplitude.com/api/2/deletions/users", - { - "userIds": ["Batch2"] - }, - { - "Content-Type": "application/json", - "Authorization": "Basic MTIzNDphYmNk" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "Nothing scheduled due to invalid amplitude/user ids for app XXXXX" - } - } - } - ], - [ - { - "type": "post", - "reqParams": [ - "https://amplitude.com/api/2/deletions/users", - { - "userIds": ["Batch1"] - }, - { - "Content-Type": "application/json", - "Authorization": "Basic MTIzNDphYmNk" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "Mocking" - } - } - }, - { - "type": "post", - "reqParams": [ - "https://amplitude.com/api/2/deletions/users", - { - "userIds": ["Batch2"] - }, - { - "Content-Type": "application/json", - "Authorization": "Basic MTIzNDphYmNk" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "Mocking" - } - } - } - ] -] diff --git a/test/deleteUsers/data/braze/handler_input.json b/test/deleteUsers/data/braze/handler_input.json deleted file mode 100644 index 6a8ad60f4d0..00000000000 --- a/test/deleteUsers/data/braze/handler_input.json +++ /dev/null @@ -1,393 +0,0 @@ -[ - { - "request": { - "body": [ - { - "destType": "BRAZE", - "userAttributes": [ - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - } - ], - "config": { - "dataCenter": "US-03", - "restApiKey": "1234" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "BRAZE", - "userAttributes": [ - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - } - ], - "config": { - "dataCenter": "US-03", - "restApiKey": "1234" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "BRAZE", - "userAttributes": [ - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - } - ] - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "BRAZE", - "userAttributes": [ - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - } - ], - "config": { - "dataCenter": "US-03" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "BRAZE", - "userAttributes": [ - { - "name": "a" - } - ], - "config": { - "restApiKey": "b1bd90e2-d203-480a-962c-f7bb03ea0afe", - "dataCenter": "US-03" - } - } - ] - } - } -] diff --git a/test/deleteUsers/data/braze/handler_output.json b/test/deleteUsers/data/braze/handler_output.json deleted file mode 100644 index 7df562646af..00000000000 --- a/test/deleteUsers/data/braze/handler_output.json +++ /dev/null @@ -1,32 +0,0 @@ -[ - [ - { - "statusCode": 400, - "error": "User deletion request failed" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ], - [ - { - "statusCode": 400, - "error": "Config for deletion not present" - } - ], - [ - { - "statusCode": 400, - "error": "data center / api key for deletion not present" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ] -] diff --git a/test/deleteUsers/data/braze/nw_client_data.json b/test/deleteUsers/data/braze/nw_client_data.json deleted file mode 100644 index 34b2d488da3..00000000000 --- a/test/deleteUsers/data/braze/nw_client_data.json +++ /dev/null @@ -1,97 +0,0 @@ -[ - [ - { - "type": "post", - "reqParams": [ - "https://rest.iad-03.braze.com/users/delete", - { - "externalIds": ["Batch1"] - }, - { - "Content-Type": "application/json", - "Authorization": "Bearer ${restApiKey}" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "code": 400, - "message": "Bad Req", - "status": "Fail Case" - }, - "status": 400 - } - } - }, - { - "type": "post", - "reqParams": [ - "https://rest.iad-03.braze.com/users/delete", - { - "externalIds": ["Batch2"] - }, - { - "Content-Type": "application/json", - "Authorization": "Bearer ${restApiKey}" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "1" - } - } - } - ], - [ - { - "type": "post", - "reqParams": [ - "https://rest.iad-03.braze.com/users/delete", - { - "externalIds": ["Batch4"] - }, - { - "Content-Type": "application/json", - "Authorization": "Bearer ${restApiKey}" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": { - "deleted": 50, - "message": "success" - } - } - } - }, - { - "type": "post", - "reqParams": [ - "https://rest.iad-03.braze.com/users/delete", - { - "externalIds": ["Batch"] - }, - { - "Content-Type": "application/json", - "Authorization": "Bearer ${restApiKey}" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": { - "deleted": 50, - "message": "success" - } - } - } - } - ] -] diff --git a/test/deleteUsers/data/clevertap/handler_input.json b/test/deleteUsers/data/clevertap/handler_input.json deleted file mode 100644 index 61c9446cf71..00000000000 --- a/test/deleteUsers/data/clevertap/handler_input.json +++ /dev/null @@ -1,441 +0,0 @@ -[ - { - "request": { - "body": [ - { - "destType": "CLEVERTAP", - "userAttributes": [ - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - } - ], - "config": { - "accountId": "476550467", - "trackAnonymous": true, - "enableObjectIdMapping": false - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "CLEVERTAP", - "userAttributes": [ - { - "email": "testUser@testMail.com" - }, - { - "userId": "user_sdk2" - } - ], - "config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", - "trackAnonymous": true, - "enableObjectIdMapping": false - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "CLEVERTAP", - "userAttributes": [ - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - } - ], - "config": { - "accountId": "testFail", - "passcode": "tofail", - "trackAnonymous": true, - "enableObjectIdMapping": false - } - } - ] - } - } -] diff --git a/test/deleteUsers/data/clevertap/handler_output.json b/test/deleteUsers/data/clevertap/handler_output.json deleted file mode 100644 index cff9494cef7..00000000000 --- a/test/deleteUsers/data/clevertap/handler_output.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - [ - { - "statusCode": 400, - "error": "Project ID and Passcode is required for delete user" - } - ], - [ - { - "statusCode": 400, - "error": "Project ID and Passcode is required for delete user" - } - ], - [ - { - "statusCode": 400, - "error": "User deletion request failed" - } - ] -] diff --git a/test/deleteUsers/data/clevertap/nw_client_data.json b/test/deleteUsers/data/clevertap/nw_client_data.json deleted file mode 100644 index 75a4f4550fc..00000000000 --- a/test/deleteUsers/data/clevertap/nw_client_data.json +++ /dev/null @@ -1,177 +0,0 @@ -[ - [ - { - "type": "post", - "reqParams": [ - "https://api.clevertap.com/1/delete/profiles.json", - { - "identity": [ - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "user_sdk2" - ] - }, - { - "X-CleverTap-Account-Id": "testFail", - "X-CleverTap-Passcode": "tofail" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "code": 400, - "message": "Bad Req", - "status": "Fail Case" - }, - "status": 400 - } - } - }, - { - "type": "post", - "reqParams": [ - "https://api.clevertap.com/1/delete/profiles.json", - { - "identity": [ - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2" - ] - }, - { - "X-CleverTap-Account-Id": "testFail", - "X-CleverTap-Passcode": "tofail" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "rpoxy" - } - } - } - ] -] diff --git a/test/deleteUsers/data/engage/handler_input.json b/test/deleteUsers/data/engage/handler_input.json deleted file mode 100644 index c999787e607..00000000000 --- a/test/deleteUsers/data/engage/handler_input.json +++ /dev/null @@ -1,133 +0,0 @@ -[ - { - "request": { - "body": [ - { - "destType": "ENGAGE", - "userAttributes": [ - { - "userId": "1" - }, - { - "userId": "2" - }, - { - "userId": "3" - } - ], - "config": { - "publicKey": "abcd", - "privateKey": "efgh" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "ENGAGE", - "userAttributes": [ - { - "userId": "4" - }, - { - "userId": "5" - }, - { - "userId": "6" - } - ], - "config": { - "publicKey": "abcd", - "privateKey": "efgh" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "ENGAGE", - "userAttributes": [ - { - "userId": "7" - }, - { - "userId": "8" - }, - { - "userId": "9" - } - ], - "config": { - "publicKey": "abcd", - "privateKey": "efgh" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "ENGAGE", - "userAttributes": [ - { - "userId": "1" - } - ], - "config": { - "publicKey": "abcd", - "privateKey": "efgh" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "ENGAGE", - "userAttributes": [ - { - "userId": "userid1" - }, - { - "userId": "user_sdk2" - } - ], - "config": { - "privateKey": "abcd" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "ENGAGE", - "userAttributes": [ - { - "email": "testUser@testMail.com" - }, - { - "userId": "user_sdk2" - } - ], - "config": { - "publicKey": "abcd", - "privateKey": "efgh" - } - } - ] - } - } -] diff --git a/test/deleteUsers/data/engage/handler_output.json b/test/deleteUsers/data/engage/handler_output.json deleted file mode 100644 index 1c3f854391b..00000000000 --- a/test/deleteUsers/data/engage/handler_output.json +++ /dev/null @@ -1,39 +0,0 @@ -[ - [ - { - "statusCode": 400, - "error": "User deletion request failed" - } - ], - [ - { - "statusCode": 400, - "error": "User deletion request failed" - } - ], - [ - { - "statusCode": 400, - "error": "User deletion request failed" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ], - - [ - { - "statusCode": 400, - "error": "Public key is a required field for user deletion" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ] -] diff --git a/test/deleteUsers/data/engage/nw_client_data.json b/test/deleteUsers/data/engage/nw_client_data.json deleted file mode 100644 index 833b440766b..00000000000 --- a/test/deleteUsers/data/engage/nw_client_data.json +++ /dev/null @@ -1,197 +0,0 @@ -[ - [ - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/1", - {}, - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "code": 400, - "message": "Bad Req", - "status": "Fail first" - }, - "status": 400 - } - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/2", - {}, - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/3", - {}, - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - } - ], - [ - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/4", - {}, - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/5", - {}, - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/6", - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "code": 400, - "message": "Bad Req", - "status": "fail 6 " - }, - "status": 400 - } - } - } - ], - [ - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/7", - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/8", - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "code": 400, - "message": "Bad Req", - "status": "fail mid case 8" - }, - "status": 400 - } - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/9", - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - } - ], - [ - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/1", - {}, - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - } - ], - [ - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/user_sdk2", - {}, - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - } - ] -] diff --git a/test/deleteUsers/data/ga/handler_input.json b/test/deleteUsers/data/ga/handler_input.json deleted file mode 100644 index 7470e3cc297..00000000000 --- a/test/deleteUsers/data/ga/handler_input.json +++ /dev/null @@ -1,83 +0,0 @@ -[ - { - "getValue": { - "x-rudder-dest-info": "{\"secret\": { \"access_token\": \"valid_token\" }}" - }, - "request": { - "body": [ - { - "destType": "GA", - "userAttributes": [ - { - "userId": "test_user_1" - }, - { - "userId": "test_user_2" - } - ], - "config": { - "trackingID": "UA-123456789-5", - "useNativeSDK": false - } - } - ] - } - }, - { - "getValue": { - "x-rudder-dest-info": "{\"secret\": { \"access_token\": \"expired_token\" }}" - }, - "request": { - "body": [ - { - "destType": "GA", - "userAttributes": [ - { - "userId": "test_user_3" - }, - { - "userId": "test_user_4" - } - ], - "config": { - "trackingID": "UA-123456789-6", - "useNativeSDK": false - } - } - ] - } - }, - { - "getValue": { - "x-rudder-dest-info": "{\"secret\": { \"access_token\": \"valid_token_1\" }}" - }, - "request": { - "body": [ - { - "destType": "GA", - "userAttributes": [ - { - "userId": "test_user_5" - }, - { - "userId": "test_user_6" - }, - { - "userId": "test_user_7" - }, - { - "userId": "test_user_8" - }, - { - "userId": "test_user_9" - } - ], - "config": { - "trackingID": "UA-123456789-7", - "useNativeSDK": false - } - } - ] - } - } -] diff --git a/test/deleteUsers/data/ga/handler_output.json b/test/deleteUsers/data/ga/handler_output.json deleted file mode 100644 index db31670781f..00000000000 --- a/test/deleteUsers/data/ga/handler_output.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - [ - { - "statusCode": 200, - "status": "successful" - } - ], - [ - { - "statusCode": 500, - "authErrorCategory": "REFRESH_TOKEN", - "error": "invalid credentials" - } - ], - [ - { - "statusCode": 403, - "error": "Error occurred while completing deletion request: [dummy response] The parameter used to query is not correct" - } - ] -] diff --git a/test/deleteUsers/data/ga/nw_client_data.json b/test/deleteUsers/data/ga/nw_client_data.json deleted file mode 100644 index 7cbeaf726c4..00000000000 --- a/test/deleteUsers/data/ga/nw_client_data.json +++ /dev/null @@ -1,316 +0,0 @@ -[ - [ - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_1" - }, - "webPropertyId": "UA-123456789-5" - }, - { - "headers": { - "Authorization": "Bearer valid_token", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "data": { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_1" - }, - "webPropertyId": "UA-123456789-5", - "deletionRequestTime": "2022-11-04T10:39:57.933Z" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_1" - }, - "webPropertyId": "UA-123456789-5" - }, - { - "headers": { - "Authorization": "Bearer valid_token", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "data": { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_2" - }, - "webPropertyId": "UA-123456789-5", - "deletionRequestTime": "2022-11-04T10:39:57.933Z" - }, - "status": 200, - "statusText": "OK" - } - } - ], - [ - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_3" - }, - "webPropertyId": "UA-123456789-6" - }, - { - "headers": { - "Authorization": "Bearer expired_token", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "data": { - "error": { - "code": 401, - "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", - "status": "UNAUTHENTICATED" - } - }, - "status": 200, - "statusText": "OK" - } - }, - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_4" - }, - "webPropertyId": "UA-123456789-6" - }, - { - "headers": { - "Authorization": "Bearer expired_token", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "data": { - "error": { - "code": 401, - "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", - "status": "UNAUTHENTICATED" - } - }, - "status": 200, - "statusText": "OK" - } - } - ], - [ - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_5" - }, - "webPropertyId": "UA-123456789-7" - }, - { - "headers": { - "Authorization": "Bearer valid_token_1", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "data": { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_5" - }, - "webPropertyId": "UA-123456789-7", - "deletionRequestTime": "2022-11-04T10:39:57.933Z" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_6" - }, - "webPropertyId": "UA-123456789-7" - }, - { - "headers": { - "Authorization": "Bearer valid_token_1", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "data": { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_6" - }, - "webPropertyId": "UA-123456789-7", - "deletionRequestTime": "2022-11-04T10:39:57.933Z" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_7" - }, - "webPropertyId": "UA-123456789-7" - }, - { - "headers": { - "Authorization": "Bearer valid_token_1", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "response": { - "data": { - "error": { - "errors": [ - { - "domain": "global", - "reason": "invalidParameter", - "message": "[dummy response] The parameter used to query is not correct" - } - ], - "code": 403, - "message": "[dummy response] The parameter used to query is not correct" - } - }, - "status": 403, - "statusText": "Bad Request" - } - } - }, - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_8" - }, - "webPropertyId": "UA-123456789-7" - }, - { - "headers": { - "Authorization": "Bearer valid_token_1", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "data": { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_8" - }, - "webPropertyId": "UA-123456789-7", - "deletionRequestTime": "2022-11-04T10:39:57.933Z" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_9" - }, - "webPropertyId": "UA-123456789-7" - }, - { - "headers": { - "Authorization": "Bearer valid_token_1", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "data": { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_9" - }, - "webPropertyId": "UA-123456789-7", - "deletionRequestTime": "2022-11-04T10:39:57.933Z" - }, - "status": 200, - "statusText": "OK" - } - } - ] -] diff --git a/test/deleteUsers/data/intercom/nw_client_data.json b/test/deleteUsers/data/intercom/nw_client_data.json deleted file mode 100644 index 462a68cbfd8..00000000000 --- a/test/deleteUsers/data/intercom/nw_client_data.json +++ /dev/null @@ -1,96 +0,0 @@ -[ - [ - { - "type": "post", - "reqParams": [ - "https://api.intercom.io/users/1", - { - "intercom_user_id": 1 - }, - { - "Accept": "application/json", - "Authorization": "Bearer API_KEY" - } - ], - "response": { - "code": 401, - "statusText": "Unauthorized", - "response": { - "data": { - "type": "error.list", - "request_id": "0022e6v5qc7m04jeu5pg", - "errors": [ - { - "code": "unauthorized", - "message": "Access Token Invalid" - } - ] - }, - "status": 400 - } - } - }, - { - "type": "post", - "reqParams": [ - "https://api.intercom.io/user_delete_requests", - { - "intercom_user_id": 12 - }, - { - "Accept": "application/json", - "Authorization": "Bearer API_KEY" - } - ], - "response": { - "status": 200, - "statusText": "ok", - "data": { - "id": 12 - } - } - } - ], - [ - { - "type": "post", - "reqParams": [ - "https://api.intercom.io/user_delete_requests", - { - "intercom_user_id": 7 - }, - { - "Accept": "application/json", - "Authorization": "Bearer API_KEY" - } - ], - "response": { - "status": 200, - "statusText": "ok", - "data": { - "id": 7 - } - } - }, - { - "type": "post", - "reqParams": [ - "https://api.intercom.io/user_delete_requests", - { - "intercom_user_id": 9 - }, - { - "Accept": "application/json", - "Authorization": "Bearer API_KEY" - } - ], - "response": { - "status": 200, - "statusText": "ok", - "data": { - "id": 9 - } - } - } - ] -] diff --git a/test/deleteUsers/data/intercom/handler_input.json b/test/deleteUsers/data/iterable/handler_input.json similarity index 56% rename from test/deleteUsers/data/intercom/handler_input.json rename to test/deleteUsers/data/iterable/handler_input.json index d843db83bc9..8ebc859089a 100644 --- a/test/deleteUsers/data/intercom/handler_input.json +++ b/test/deleteUsers/data/iterable/handler_input.json @@ -3,18 +3,12 @@ "request": { "body": [ { - "destType": "INTERCOM", + "destType": "ITERABLE", "userAttributes": [ { - "userId": "1" - }, - { - "userId": "12" + "userId": "rudder1" } - ], - "config": { - "apiKey": "API_KEY" - } + ] } ] } @@ -23,17 +17,14 @@ "request": { "body": [ { - "destType": "INTERCOM", + "destType": "ITERABLE", "userAttributes": [ { - "userId": "7" - }, - { - "userId": "9" + "userId": "rudder2" } ], "config": { - "apiKey": "API_KEY" + "apiToken": "dummyApiKey" } } ] @@ -43,15 +34,18 @@ "request": { "body": [ { - "destType": "INTERCOM", + "destType": "ITERABLE", "userAttributes": [ { - "userId": "6188c2c5f47e464b4abf3235" + "userId": "rudder1" }, { - "userId": "user_sdk2" + "userId": "rudder2" } - ] + ], + "config": { + "apiKey": "dummyApiKey" + } } ] } @@ -60,16 +54,18 @@ "request": { "body": [ { - "destType": "INTERCOM", + "destType": "ITERABLE", "userAttributes": [ { - "userId": "6188c2c5f47e464b4abf3235" + "userId": "rudder3" }, { - "userId": "user_sdk2" + "userId": "rudder4" } ], - "config": {} + "config": { + "apiKey": "invalidKey" + } } ] } @@ -78,10 +74,17 @@ "request": { "body": [ { - "destType": "INTERCOM", - "userAttributes": [{}], + "destType": "ITERABLE", + "userAttributes": [ + { + "userId": "rudder5" + }, + { + "userId": "rudder6" + } + ], "config": { - "apiKey": "a=" + "apiKey": "dummyApiKey" } } ] diff --git a/test/deleteUsers/data/intercom/handler_output.json b/test/deleteUsers/data/iterable/handler_output.json similarity index 58% rename from test/deleteUsers/data/intercom/handler_output.json rename to test/deleteUsers/data/iterable/handler_output.json index 156c6ec114b..b053d04df4a 100644 --- a/test/deleteUsers/data/intercom/handler_output.json +++ b/test/deleteUsers/data/iterable/handler_output.json @@ -2,25 +2,25 @@ [ { "statusCode": 400, - "error": "User deletion request failed" + "error": "Config for deletion not present" } ], [ { - "statusCode": 200, - "status": "successful" + "statusCode": 400, + "error": "api key for deletion not present" } ], [ { "statusCode": 400, - "error": "Config for deletion not present" + "error": "User deletion request failed for userIds : [{\"userId\":\"rudder2\",\"Reason\":\"User does not exist. Email: UserId: rudder2\"}]" } ], [ { - "statusCode": 400, - "error": "api key for deletion not present" + "error": "User deletion request failed : Invalid API key", + "statusCode": 401 } ], [ diff --git a/test/deleteUsers/data/iterable/nw_client_data.json b/test/deleteUsers/data/iterable/nw_client_data.json new file mode 100644 index 00000000000..159c301b115 --- /dev/null +++ b/test/deleteUsers/data/iterable/nw_client_data.json @@ -0,0 +1,138 @@ +[ + [ + { + "type": "delete", + "reqParams": [ + "https://api.iterable.com/api/users/byUserId/rudder1", + {}, + { + "Accept": "application/json", + "api_key": "dummyApiKey" + } + ], + "response": { + "response": { + "data": { + "msg": "All users associated with rudder1 were successfully deleted", + "code": "Success", + "params": null + }, + "status": 200 + } + } + }, + { + "type": "delete", + "reqParams": [ + "https://api.iterable.com/api/users/byUserId/rudder2", + {}, + { + "Accept": "application/json", + "api_key": "dummyApiKey" + } + ], + "response": { + "response": { + "data": { + "msg": "User does not exist. Email: UserId: rudder2", + "code": "BadParams", + "params": null + }, + "status": 400 + } + } + } + ], + [ + { + "type": "delete", + "reqParams": [ + "https://api.iterable.com/api/users/byUserId/rudder3", + {}, + { + "Accept": "application/json", + "api_key": "invalidKey" + } + ], + "response": { + "response": { + "data": { + "msg": "Invalid API key", + "code": "Success", + "params": { + "endpoint": "/api/users/byUserId/rudder3" + } + }, + "status": 401 + } + } + }, + { + "type": "delete", + "reqParams": [ + "https://api.iterable.com/api/users/byUserId/rudder4", + {}, + { + "Accept": "application/json", + "api_key": "invalidKey" + } + ], + "response": { + "response": { + "data": { + "msg": "Invalid API key", + "code": "Success", + "params": { + "endpoint": "/api/users/byUserId/rudder3" + } + }, + "status": 401 + } + } + } + ], + [ + { + "type": "delete", + "reqParams": [ + "https://api.iterable.com/api/users/byUserId/rudder5", + {}, + { + "Accept": "application/json", + "api_key": "dummyApiKey" + } + ], + "response": { + "response": { + "data": { + "msg": "All users associated with rudder5 were successfully deleted", + "code": "Success", + "params": null + }, + "status": 200 + } + } + }, + { + "type": "delete", + "reqParams": [ + "https://api.iterable.com/api/users/byUserId/rudder6", + {}, + { + "Accept": "application/json", + "api_key": "dummyApiKey" + } + ], + "response": { + "response": { + "data": { + "msg": "All users associated with rudder6 were successfully deleted", + "code": "Success", + "params": null + }, + "status": 200 + } + } + } + ] +] diff --git a/test/deleteUsers/data/mp/handler_input.json b/test/deleteUsers/data/mp/handler_input.json deleted file mode 100644 index b506e9dabd9..00000000000 --- a/test/deleteUsers/data/mp/handler_input.json +++ /dev/null @@ -1,3155 +0,0 @@ -[ - { - "request": { - "body": [ - { - "destType": "MP", - "userAttributes": [ - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - } - ], - "config": { - "token": "651c8d62a01c28e5283288ce8a9cdc4c", - "prefixProperties": true, - "useNativeSDK": false - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "MP", - "userAttributes": [ - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - } - ], - "config": { - "token": "651c8d62a01c28e5283288ce8a9cdc4c", - "prefixProperties": true, - "useNativeSDK": false - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "MP", - "userAttributes": [ - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - } - ], - "config": { - "apiKey": "9432f11f70f8ce386f5110c8c924b3ec4f825256", - "prefixProperties": true, - "useNativeSDK": false - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "MP", - "userAttributes": [ - { - "name": "test1" - } - ], - "config": { - "token": "651c8d62a01c28e5283288ce8a9cdc4c", - "prefixProperties": true, - "useNativeSDK": false - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "MP", - "userAttributes": [ - { - "userId": "rudder1" - }, - { - "userId": "rudder2" - }, - { - "userId": "rudder3" - } - ], - "config": { - "token": "test_token", - "prefixProperties": true, - "useNativeSDK": false, - "userDeletionApi": "task", - "gdprApiToken": "test_gdpr_token" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "MP", - "userAttributes": [ - { - "userId": "rudder1" - } - ], - "config": { - "token": "test_token", - "prefixProperties": true, - "useNativeSDK": false, - "userDeletionApi": "task", - "dataResidency": "eu" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "MP", - "userAttributes": [ - { - "userId": "rudder1" - } - ], - "config": { - "token": "test_token", - "prefixProperties": true, - "useNativeSDK": false, - "dataResidency": "eu" - } - } - ] - } - } -] diff --git a/test/deleteUsers/data/mp/handler_output.json b/test/deleteUsers/data/mp/handler_output.json deleted file mode 100644 index ddf83873750..00000000000 --- a/test/deleteUsers/data/mp/handler_output.json +++ /dev/null @@ -1,44 +0,0 @@ -[ - [ - { - "statusCode": 400, - "error": "User deletion request failed for `delete profile` api" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ], - [ - { - "statusCode": 400, - "error": "API Token is a required field for user deletion" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ], - [ - { - "statusCode": 400, - "error": "GDPR API Token is a required field for creating deletion task in mixpanel" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ] -] diff --git a/test/deleteUsers/data/mp/nw_client_data.json b/test/deleteUsers/data/mp/nw_client_data.json deleted file mode 100644 index 30f9f0e41fd..00000000000 --- a/test/deleteUsers/data/mp/nw_client_data.json +++ /dev/null @@ -1,6159 +0,0 @@ -[ - [ - { - "type": "post", - "reqParams": [ - "https://api.mixpanel.com/engage", - [ - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - } - ], - { - "Content-Type": "application/json", - "Accept": "text/plain" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "code": 400, - "message": "Bad Req", - "status": "Fail Case" - }, - "status": 400 - } - } - }, - { - "type": "post", - "reqParams": [ - "https://api.mixpanel.com/engage", - [ - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - } - ], - { - "Content-Type": "application/json", - "Accept": "text/plain" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "1" - } - } - } - ], - { - "type": "post", - "reqParams": [ - "https://api.mixpanel.com/engage", - [ - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - } - ], - { - "Content-Type": "application/json", - "Accept": "text/plain" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "1" - } - } - }, - [ - { - "type": "post", - "reqParams": [ - "https://mixpanel.com/api/app/data-deletions/v3.0/?token=test_token", - { - "distinct_ids": ["rudder1", "rudder3"], - "compliance_type": "CCPA" - }, - { - "Content-Type": "application/json", - "Authorization": "Bearer test_gdpr_token" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "1" - } - } - }, - { - "type": "post", - "reqParams": [ - "https://mixpanel.com/api/app/data-deletions/v3.0/?token=test_token", - { - "distinct_ids": ["rudder2"], - "compliance_type": "GDPR" - }, - { - "Content-Type": "application/json", - "Authorization": "Bearer test_gdpr_token" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "1" - } - } - } - ], - { - "type": "post", - "reqParams": [ - "https://api-eu.mixpanel.com/engage", - [ - { - "$distinct_id": "rudder1", - "$token": "651c8d62a01c28e5283288ce8a9cdc4c", - "$delete": null, - "$ignore_alias": true - } - ], - { - "Content-Type": "application/json", - "Accept": "text/plain" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "1" - } - } - } -] diff --git a/test/deleteUsers/data/sendgrid/handler_input.json b/test/deleteUsers/data/sendgrid/handler_input.json deleted file mode 100644 index 253657dbde1..00000000000 --- a/test/deleteUsers/data/sendgrid/handler_input.json +++ /dev/null @@ -1,921 +0,0 @@ -[ - { - "request": { - "body": [ - { - "destType": "SENDGRID", - "userAttributes": [ - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - } - ], - "config": { - "apiKey": "1234" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "SENDGRID", - "userAttributes": [ - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - } - ], - "config": { - "apiKey": "1234" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "SENDGRID", - "userAttributes": [ - { - "userId": "eab57ccf-6322-498e-9338-7761c6dc0656" - }, - { - "userId": "47983ca9-7cc6-4942-8ff0-ac443g95658d" - } - ], - "config": {} - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "SENDGRID", - "userAttributes": { - "userId": "eab57ccf-6322-498e-9338-7761c6dc0656" - }, - "config": { - "apiKey": "1234" - } - } - ] - } - } -] diff --git a/test/deleteUsers/data/sendgrid/handler_output.json b/test/deleteUsers/data/sendgrid/handler_output.json deleted file mode 100644 index 201821f50ab..00000000000 --- a/test/deleteUsers/data/sendgrid/handler_output.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - [ - { - "statusCode": 400, - "error": "User deletion request failed" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ], - [ - { - "statusCode": 400, - "error": "apiKey is required for deleting user" - } - ], - [ - { - "statusCode": 400, - "error": "userAttributes is not an array" - } - ] -] diff --git a/test/deleteUsers/data/sendgrid/nw_client_data.json b/test/deleteUsers/data/sendgrid/nw_client_data.json deleted file mode 100644 index e6bc96bb7f8..00000000000 --- a/test/deleteUsers/data/sendgrid/nw_client_data.json +++ /dev/null @@ -1,117 +0,0 @@ -[ - [ - { - "type": "delete", - "reqParams": [ - "https://api.sendgrid.com/v3/marketing/contacts?ids=[batch1]", - { - "Authorization": "Bearer 1234" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - "message": { - "job_id": "bb33b1f9-e7d6-4a6c-bf1c-a2143275e257" - } - } - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.sendgrid.com/v3/marketing/contacts?ids=[batch2]", - { - "Authorization": "Bearer 1234" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "code": 400, - "message": "Bad Req", - "status": "Fail Case" - }, - "status": 400 - } - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.sendgrid.com/v3/marketing/contacts?ids=[batch3]", - { - "Authorization": "Bearer 1234" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": { - "job_id": "bb33b1f9-e7d6-4a6c-bf1c-a2143275e257" - } - } - } - } - ], - [ - { - "type": "delete", - "reqParams": [ - "https://api.sendgrid.com/v3/marketing/contacts?ids=[batch1]", - { - "Authorization": "Bearer 1234" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - "message": { - "job_id": "bb33b1f9-e7d6-4a6c-bf1c-a2143275e257" - } - } - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.sendgrid.com/v3/marketing/contacts?ids=[batch2]", - { - "Authorization": "Bearer 1234" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": { - "job_id": "bb33b1f9-e7d6-4a6c-bf1c-a2143275e257" - } - } - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.sendgrid.com/v3/marketing/contacts?ids=[batch3]", - { - "Authorization": "Bearer 1234" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": { - "job_id": "bb33b1f9-e7d6-4a6c-bf1c-a2143275e257" - } - } - } - } - ] -] diff --git a/test/deleteUsers/deleteUsers.test.ts b/test/deleteUsers/deleteUsers.test.ts deleted file mode 100644 index 18cebc70851..00000000000 --- a/test/deleteUsers/deleteUsers.test.ts +++ /dev/null @@ -1,67 +0,0 @@ -const name = 'DeleteUsers'; -import logger from '../../src/logger'; -import { formAxiosMock, validateMockAxiosClientReqParams } from '../__mocks__/gen-axios.mock'; -const deleteUserDestinations = [ - 'am', - 'braze', - 'intercom', - 'mp', - 'af', - 'clevertap', - 'engage', - 'ga', - 'sendgrid', -]; -// Note: Useful for troubleshooting not to be used in production -const exclusionDestList: string[] = []; -import RegulationController from '../../src/controllers/regulation'; - -// delete user tests -deleteUserDestinations - .filter((d) => !exclusionDestList.includes(d)) - .forEach((destination) => { - const inputData = require(`./data/${destination}/handler_input.json`); - const expectedData = require(`./data/${destination}/handler_output.json`); - - let axiosResponses; - describe(`${name} Tests: ${destination}`, () => { - jest.unmock('axios'); - beforeAll(() => { - try { - axiosResponses = require(`./data/${destination}/nw_client_data.json`); - } catch (error) { - // Do nothing - logger.error(`Error while reading /${destination}/nw_client_data.json: ${error}`); - } - if (Array.isArray(axiosResponses)) { - formAxiosMock(axiosResponses); - } else { - // backward compatibility - jest.mock('axios'); - } - }); - - inputData.forEach((input, index) => { - it(`Payload - ${index}`, async () => { - try { - input.get = jest.fn((destInfoKey) => { - return input.getValue && input.getValue[destInfoKey]; - }); - - const output = await RegulationController.deleteUsers(input); - // validate the axios arguments - if (Array.isArray(axiosResponses) && Array.isArray(axiosResponses[index])) { - axiosResponses[index].forEach((axsRsp) => { - validateMockAxiosClientReqParams({ - resp: axsRsp, - }); - }); - } - expect(output.body).toEqual(expectedData[index]); - } catch (error: any) { - expect(error.message).toEqual(expectedData[index].error); - } - }); - }); - }); - }); diff --git a/test/integrations/component.test.ts b/test/integrations/component.test.ts index 374649dfad6..847dd4c91fc 100644 --- a/test/integrations/component.test.ts +++ b/test/integrations/component.test.ts @@ -1,21 +1,52 @@ import { join } from 'path'; import Koa from 'koa'; import request from 'supertest'; +// Mocking of axios calls +import axios from 'axios'; +// new-library we are using import bodyParser from 'koa-bodyparser'; import { Command } from 'commander'; import { createHttpTerminator } from 'http-terminator'; -import { TestCaseData } from './testTypes'; +import { MockHttpCallsData, TestCaseData } from './testTypes'; import { applicationRoutes } from '../../src/routes/index'; -import { getTestDataFilePaths, getTestData } from './testUtils'; +import MockAxiosAdapter from 'axios-mock-adapter'; +import { + getTestDataFilePaths, + getTestData, + getMockHttpCallsData, + getAllTestMockDataFilePaths, + addMock, +} from './testUtils'; import tags from '../../src/v0/util/tags'; import { Server } from 'http'; +import { appendFileSync } from 'fs'; +import { responses } from '../testHelper'; // To run single destination test cases // npm run test:ts -- component --destination=adobe_analytics +// npm run test:ts -- component --destination=adobe_analytics --feature=router +// npm run test:ts -- component --destination=adobe_analytics --feature=router --index=0 + +// Use below command to generate mocks +// npm run test:ts -- component --destination=zendesk --generate=true +// npm run test:ts:component:generateNwMocks -- --destination=zendesk const command = new Command(); -command.allowUnknownOption().option('-d, --destination ', 'Enter Destination Name').parse(); +command + .allowUnknownOption() + .option('-d, --destination ', 'Enter Destination Name') + .option('-f, --feature ', 'Enter Feature Name(processor, router)') + .option('-i, --index ', 'Enter Test index') + .option('-g, --generate ', 'Enter "true" If you want to generate network file') + .parse(); const opts = command.opts(); +if (opts.generate === 'true' && !opts.destination) { + throw new Error('Invalid option, generate should be true for a destination'); +} + +if (opts.generate === 'true') { + process.env.GEN_AXIOS_FOR_TESTS = 'true'; +} let server: Server; @@ -31,11 +62,39 @@ beforeAll(async () => { }); afterAll(async () => { + if (opts.generate === 'true') { + const callsDataStr = responses.join('\n'); + const calls = ` + export const networkCallsData = [ + ${callsDataStr} + ] + `; + appendFileSync(join(__dirname, 'destinations', opts.destination, 'network.ts'), calls); + } await createHttpTerminator({ server }).terminate(); }); +let mockAdapter; +if (!opts.generate || opts.generate === 'false') { + // unmock already existing axios-mocking + mockAdapter = new MockAxiosAdapter(axios, { onNoMatch: 'throwException' }); + const registerAxiosMocks = (axiosMocks: MockHttpCallsData[]) => { + axiosMocks.forEach((axiosMock) => addMock(mockAdapter, axiosMock)); + }; + + // // all the axios requests will be stored in this map + const allTestMockDataFilePaths = getAllTestMockDataFilePaths(__dirname, opts.destination); + const allAxiosRequests = allTestMockDataFilePaths + .map((currPath) => { + const mockNetworkCallsData: MockHttpCallsData[] = getMockHttpCallsData(currPath); + return mockNetworkCallsData; + }) + .flat(); + registerAxiosMocks(allAxiosRequests); +} +// END const rootDir = __dirname; -const allTestDataFilePaths = getTestDataFilePaths(rootDir, opts.destination); +const allTestDataFilePaths = getTestDataFilePaths(rootDir, opts); const DEFAULT_VERSION = 'v0'; const testRoute = async (route, tcData: TestCaseData) => { @@ -65,7 +124,7 @@ const testRoute = async (route, tcData: TestCaseData) => { const outputResp = tcData.output.response || ({} as any); expect(response.status).toEqual(outputResp.status); - if (outputResp && outputResp.body) { + if (outputResp?.body) { expect(response.body).toEqual(outputResp.body); } @@ -87,7 +146,7 @@ const destinationTestHandler = async (tcData: TestCaseData) => { route = `/${join(tcData.version || DEFAULT_VERSION, 'destinations', tcData.name, 'proxy')}`; break; case tags.FEATURES.USER_DELETION: - route = 'deleteUsers'; + route = '/deleteUsers'; break; case tags.FEATURES.PROCESSOR: // Processor transformation @@ -114,20 +173,31 @@ const sourceTestHandler = async (tcData) => { // Trigger the test suites describe.each(allTestDataFilePaths)('%s Tests', (testDataPath) => { - const testData: TestCaseData[] = getTestData(testDataPath); - test.each(testData)('$name - $module - $feature -> $description', async (tcData) => { - switch (tcData.module) { - case tags.MODULES.DESTINATION: - await destinationTestHandler(tcData); - break; - case tags.MODULES.SOURCE: - await sourceTestHandler(tcData); - break; - default: - console.log('Invalid module'); - // Intentionally fail the test case - expect(true).toEqual(false); - break; - } + beforeEach(() => { + jest.clearAllMocks(); + }); + // add special mocks for specific destinations + let testData: TestCaseData[] = getTestData(testDataPath); + if (opts.index !== undefined) { + testData = [testData[parseInt(opts.index)]]; + } + describe(`${testData[0].name} ${testData[0].module}`, () => { + test.each(testData)('$feature -> $description', async (tcData) => { + tcData?.mockFns?.(mockAdapter); + + switch (tcData.module) { + case tags.MODULES.DESTINATION: + await destinationTestHandler(tcData); + break; + case tags.MODULES.SOURCE: + await sourceTestHandler(tcData); + break; + default: + console.log('Invalid module'); + // Intentionally fail the test case + expect(true).toEqual(false); + break; + } + }); }); }); diff --git a/test/integrations/destinations/active_campaign/network.ts b/test/integrations/destinations/active_campaign/network.ts new file mode 100644 index 00000000000..34834096b19 --- /dev/null +++ b/test/integrations/destinations/active_campaign/network.ts @@ -0,0 +1,1966 @@ +export const networkCallsData = [ + { + httpReq: { + data: { + contact: { + email: 'jamesDoe@gmail.com', + firstName: 'James', + lastName: 'Doe', + phone: '92374162212', + }, + }, + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contact/sync', + }, + httpRes: { + data: { + contact: { + cdate: '2018-09-28T13:50:41-05:00', + email: 'jamesDoe@gmail.com', + id: '2', + links: { + bounceLogs: 'https://:account.api-us1.com/api/:version/contacts/113/bounceLogs', + contactAutomations: + 'https://:account.api-us1.com/api/:version/contacts/113/contactAutomations', + contactData: 'https://:account.api-us1.com/api/:version/contacts/113/contactData', + contactDeals: 'https://:account.api-us1.com/api/:version/contacts/113/contactDeals', + contactGoals: 'https://:account.api-us1.com/api/:version/contacts/113/contactGoals', + contactLists: 'https://:account.api-us1.com/api/:version/contacts/113/contactLists', + contactLogs: 'https://:account.api-us1.com/api/:version/contacts/113/contactLogs', + contactTags: 'https://:account.api-us1.com/api/:version/contacts/113/contactTags', + deals: 'https://:account.api-us1.com/api/:version/contacts/113/deals', + fieldValues: 'https://:account.api-us1.com/api/:version/contacts/113/fieldValues', + geoIps: 'https://:account.api-us1.com/api/:version/contacts/113/geoIps', + notes: 'https://:account.api-us1.com/api/:version/contacts/113/notes', + organization: 'https://:account.api-us1.com/api/:version/contacts/113/organization', + plusAppend: 'https://:account.api-us1.com/api/:version/contacts/113/plusAppend', + scoreValues: 'https://:account.api-us1.com/api/:version/contacts/113/scoreValues', + trackingLogs: 'https://:account.api-us1.com/api/:version/contacts/113/trackingLogs', + }, + organization: '', + orgid: '', + udate: '2018-09-28T13:50:41-05:00', + }, + fieldValues: [ + { + cdate: '2020-08-01T10:54:59-05:00', + contact: '113', + field: '1', + id: '11797', + links: { + field: 'https://:account.api-us1.com/api/3/fieldValues/11797/field', + owner: 'https://:account.api-us1.com/api/3/fieldValues/11797/owner', + }, + owner: '113', + udate: '2020-08-01T14:13:34-05:00', + value: 'The Value for First Field', + }, + { + cdate: '2020-08-01T10:54:59-05:00', + contact: '113', + field: '6', + id: '11798', + links: { + field: 'https://:account.api-us1.com/api/3/fieldValues/11798/field', + owner: 'https://:account.api-us1.com/api/3/fieldValues/11798/owner', + }, + owner: '113', + udate: '2020-08-01T14:13:34-05:00', + value: '2008-01-20', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/tags?limit=100', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + data: { tag: { description: '', tag: 'Test_User', tagType: 'contact' } }, + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/tags', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + description: '', + id: 1, + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + tag: 'Test_User', + tagType: 'contact', + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + data: { tag: { description: '', tag: 'Interested_User', tagType: 'contact' } }, + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/tags', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + description: '', + id: 2, + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + tag: 'Interested_User', + tagType: 'contact', + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: '5' } }, + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 3, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: '5', + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: 1 } }, + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 4, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: 1, + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: 2 } }, + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 5, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: 2, + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactList: { contact: '2', list: 2, status: '1' } }, + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactLists', + }, + httpRes: { data: { contactList: { contact: '2', list: 2, status: '1' } }, status: 200 }, + }, + { + httpReq: { + data: { contactList: { contact: '2', list: 3, status: '2' } }, + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactLists', + }, + httpRes: { data: { contactList: { contact: '2', list: 3, status: '2' } }, status: 200 }, + }, + { + httpReq: { + headers: { Accept: 'application/json, text/plain, */*', 'Api-Token': 'dummyApiToken' }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/fields?limit=100', + }, + httpRes: { + data: { + fieldOptions: [], + fieldRels: [], + fields: [ + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Random description', + id: '4', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Random', + type: 'multivalue', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Likes description', + id: '3', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Likes', + type: 'multivalue', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:43:38-06:00', + cols: '0', + defval: null, + descript: null, + id: '2', + isrequired: '0', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/2/options', + relations: 'https://:account.api-us1.com/api/:version/fields/2/relations', + }, + options: [], + ordernum: '2', + perstag: 'ANOTHER_TEST_TITLE', + relations: [], + rows: '0', + service: '', + show_in_list: '0', + title: 'Another Test Title', + type: '', + udate: '2018-11-15T21:43:38-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Country description', + id: '1', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Country', + type: 'textarea', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Office description', + id: '0', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Office', + type: 'textarea', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + ], + meta: { total: '4' }, + }, + status: 200, + }, + }, + { + httpReq: { + data: { + contact: { + email: 'jamesDoe@gmail.com', + firstName: 'James', + lastName: 'Doe', + phone: '92374162212', + }, + }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contact/sync', + }, + httpRes: { + data: { + contact: { + cdate: '2018-09-28T13:50:41-05:00', + email: 'jamesDoe@gmail.com', + id: '2', + links: { + bounceLogs: 'https://:account.api-us1.com/api/:version/contacts/113/bounceLogs', + contactAutomations: + 'https://:account.api-us1.com/api/:version/contacts/113/contactAutomations', + contactData: 'https://:account.api-us1.com/api/:version/contacts/113/contactData', + contactDeals: 'https://:account.api-us1.com/api/:version/contacts/113/contactDeals', + contactGoals: 'https://:account.api-us1.com/api/:version/contacts/113/contactGoals', + contactLists: 'https://:account.api-us1.com/api/:version/contacts/113/contactLists', + contactLogs: 'https://:account.api-us1.com/api/:version/contacts/113/contactLogs', + contactTags: 'https://:account.api-us1.com/api/:version/contacts/113/contactTags', + deals: 'https://:account.api-us1.com/api/:version/contacts/113/deals', + fieldValues: 'https://:account.api-us1.com/api/:version/contacts/113/fieldValues', + geoIps: 'https://:account.api-us1.com/api/:version/contacts/113/geoIps', + notes: 'https://:account.api-us1.com/api/:version/contacts/113/notes', + organization: 'https://:account.api-us1.com/api/:version/contacts/113/organization', + plusAppend: 'https://:account.api-us1.com/api/:version/contacts/113/plusAppend', + scoreValues: 'https://:account.api-us1.com/api/:version/contacts/113/scoreValues', + trackingLogs: 'https://:account.api-us1.com/api/:version/contacts/113/trackingLogs', + }, + organization: '', + orgid: '', + udate: '2018-09-28T13:50:41-05:00', + }, + fieldValues: [ + { + cdate: '2020-08-01T10:54:59-05:00', + contact: '113', + field: '1', + id: '11797', + links: { + field: 'https://:account.api-us1.com/api/3/fieldValues/11797/field', + owner: 'https://:account.api-us1.com/api/3/fieldValues/11797/owner', + }, + owner: '113', + udate: '2020-08-01T14:13:34-05:00', + value: 'The Value for First Field', + }, + { + cdate: '2020-08-01T10:54:59-05:00', + contact: '113', + field: '6', + id: '11798', + links: { + field: 'https://:account.api-us1.com/api/3/fieldValues/11798/field', + owner: 'https://:account.api-us1.com/api/3/fieldValues/11798/owner', + }, + owner: '113', + udate: '2020-08-01T14:13:34-05:00', + value: '2008-01-20', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactList: { contact: '2', list: 2, status: '1' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactLists', + }, + httpRes: { data: { contactList: { contact: '2', list: 2, status: '1' } }, status: 200 }, + }, + { + httpReq: { + data: { contactList: { contact: '2', list: 3, status: '2' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactLists', + }, + httpRes: { data: { contactList: { contact: '2', list: 3, status: '2' } }, status: 200 }, + }, + { + httpReq: { + headers: { Accept: 'application/json, text/plain, */*', 'Api-Token': 'dummyApiKey' }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/fields?limit=100', + }, + httpRes: { + data: { + fieldOptions: [], + fieldRels: [], + fields: [ + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Random description', + id: '4', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Random', + type: 'multivalue', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Likes description', + id: '3', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Likes', + type: 'multivalue', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:43:38-06:00', + cols: '0', + defval: null, + descript: null, + id: '2', + isrequired: '0', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/2/options', + relations: 'https://:account.api-us1.com/api/:version/fields/2/relations', + }, + options: [], + ordernum: '2', + perstag: 'ANOTHER_TEST_TITLE', + relations: [], + rows: '0', + service: '', + show_in_list: '0', + title: 'Another Test Title', + type: '', + udate: '2018-11-15T21:43:38-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Country description', + id: '1', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Country', + type: 'textarea', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Office description', + id: '0', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Office', + type: 'textarea', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + ], + meta: { total: '4' }, + }, + status: 200, + }, + }, + { + httpReq: { + data: { + contact: { + email: 'jamesDoe@gmail.com', + firstName: 'James', + lastName: 'Doe', + phone: '92374162212', + }, + }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contact/sync', + }, + httpRes: { + data: { + contact: { + cdate: '2018-09-28T13:50:41-05:00', + email: 'jamesDoe@gmail.com', + id: '2', + links: { + bounceLogs: 'https://:account.api-us1.com/api/:version/contacts/113/bounceLogs', + contactAutomations: + 'https://:account.api-us1.com/api/:version/contacts/113/contactAutomations', + contactData: 'https://:account.api-us1.com/api/:version/contacts/113/contactData', + contactDeals: 'https://:account.api-us1.com/api/:version/contacts/113/contactDeals', + contactGoals: 'https://:account.api-us1.com/api/:version/contacts/113/contactGoals', + contactLists: 'https://:account.api-us1.com/api/:version/contacts/113/contactLists', + contactLogs: 'https://:account.api-us1.com/api/:version/contacts/113/contactLogs', + contactTags: 'https://:account.api-us1.com/api/:version/contacts/113/contactTags', + deals: 'https://:account.api-us1.com/api/:version/contacts/113/deals', + fieldValues: 'https://:account.api-us1.com/api/:version/contacts/113/fieldValues', + geoIps: 'https://:account.api-us1.com/api/:version/contacts/113/geoIps', + notes: 'https://:account.api-us1.com/api/:version/contacts/113/notes', + organization: 'https://:account.api-us1.com/api/:version/contacts/113/organization', + plusAppend: 'https://:account.api-us1.com/api/:version/contacts/113/plusAppend', + scoreValues: 'https://:account.api-us1.com/api/:version/contacts/113/scoreValues', + trackingLogs: 'https://:account.api-us1.com/api/:version/contacts/113/trackingLogs', + }, + organization: '', + orgid: '', + udate: '2018-09-28T13:50:41-05:00', + }, + fieldValues: [ + { + cdate: '2020-08-01T10:54:59-05:00', + contact: '113', + field: '1', + id: '11797', + links: { + field: 'https://:account.api-us1.com/api/3/fieldValues/11797/field', + owner: 'https://:account.api-us1.com/api/3/fieldValues/11797/owner', + }, + owner: '113', + udate: '2020-08-01T14:13:34-05:00', + value: 'The Value for First Field', + }, + { + cdate: '2020-08-01T10:54:59-05:00', + contact: '113', + field: '6', + id: '11798', + links: { + field: 'https://:account.api-us1.com/api/3/fieldValues/11798/field', + owner: 'https://:account.api-us1.com/api/3/fieldValues/11798/owner', + }, + owner: '113', + udate: '2020-08-01T14:13:34-05:00', + value: '2008-01-20', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/tags?limit=100', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + data: { tag: { description: '', tag: 'Test_User', tagType: 'contact' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/tags', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + description: '', + id: 6, + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + tag: 'Test_User', + tagType: 'contact', + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + data: { tag: { description: '', tag: 'Interested_User', tagType: 'contact' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/tags', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + description: '', + id: 7, + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + tag: 'Interested_User', + tagType: 'contact', + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: '5' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 8, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: '5', + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: 6 } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 9, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: 6, + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: 7 } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 10, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: 7, + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactList: { contact: '2', list: 2, status: '1' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactLists', + }, + httpRes: { data: { contactList: { contact: '2', list: 2, status: '1' } }, status: 200 }, + }, + { + httpReq: { + data: { contactList: { contact: '2', list: 3, status: '2' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactLists', + }, + httpRes: { data: { contactList: { contact: '2', list: 3, status: '2' } }, status: 200 }, + }, + { + httpReq: { + headers: { Accept: 'application/json, text/plain, */*', 'Api-Token': 'dummyApiKey' }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/fields?limit=100', + }, + httpRes: { + data: { + fieldOptions: [], + fieldRels: [], + fields: [ + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Random description', + id: '4', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Random', + type: 'multivalue', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Likes description', + id: '3', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Likes', + type: 'multivalue', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:43:38-06:00', + cols: '0', + defval: null, + descript: null, + id: '2', + isrequired: '0', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/2/options', + relations: 'https://:account.api-us1.com/api/:version/fields/2/relations', + }, + options: [], + ordernum: '2', + perstag: 'ANOTHER_TEST_TITLE', + relations: [], + rows: '0', + service: '', + show_in_list: '0', + title: 'Another Test Title', + type: '', + udate: '2018-11-15T21:43:38-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Country description', + id: '1', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Country', + type: 'textarea', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Office description', + id: '0', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Office', + type: 'textarea', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + ], + meta: { total: '4' }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + 'Api-Token': 'dummyApiKey', + + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/eventTrackingEvents', + }, + httpRes: { + data: { + eventTrackingEvents: [{ name: '__pagevisit' }, { name: '__redir' }], + meta: { total: 2 }, + }, + status: 200, + }, + }, + { + httpReq: { + data: { eventTrackingEvent: { name: 'ScreenViewed' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/eventTrackingEvents', + }, + httpRes: { data: { eventTrackingEvent: { name: 'ScreenViewed' } }, status: 201 }, + }, + { + httpReq: { + headers: { 'Api-Token': 'dummyApiKey', Accept: 'application/json, text/plain, */*' }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/eventTrackingEvents', + }, + httpRes: { + data: { + eventTrackingEvents: [{ name: '__pagevisit' }, { name: '__redir' }], + meta: { total: 2 }, + }, + status: 200, + }, + }, + { + httpReq: { + data: { eventTrackingEvent: { name: 'Tracking Action' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/eventTrackingEvents', + }, + httpRes: { data: { eventTrackingEvent: { name: 'Tracking Action' } }, status: 201 }, + }, + { + httpReq: { + data: { contact: { email: 'jamesDoe@gmail.com', phone: '92374162212' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contact/sync', + }, + httpRes: { + data: { + contact: { + cdate: '2018-09-28T13:50:41-05:00', + email: 'jamesDoe@gmail.com', + id: '2', + links: { + bounceLogs: 'https://:account.api-us1.com/api/:version/contacts/113/bounceLogs', + contactAutomations: + 'https://:account.api-us1.com/api/:version/contacts/113/contactAutomations', + contactData: 'https://:account.api-us1.com/api/:version/contacts/113/contactData', + contactDeals: 'https://:account.api-us1.com/api/:version/contacts/113/contactDeals', + contactGoals: 'https://:account.api-us1.com/api/:version/contacts/113/contactGoals', + contactLists: 'https://:account.api-us1.com/api/:version/contacts/113/contactLists', + contactLogs: 'https://:account.api-us1.com/api/:version/contacts/113/contactLogs', + contactTags: 'https://:account.api-us1.com/api/:version/contacts/113/contactTags', + deals: 'https://:account.api-us1.com/api/:version/contacts/113/deals', + fieldValues: 'https://:account.api-us1.com/api/:version/contacts/113/fieldValues', + geoIps: 'https://:account.api-us1.com/api/:version/contacts/113/geoIps', + notes: 'https://:account.api-us1.com/api/:version/contacts/113/notes', + organization: 'https://:account.api-us1.com/api/:version/contacts/113/organization', + plusAppend: 'https://:account.api-us1.com/api/:version/contacts/113/plusAppend', + scoreValues: 'https://:account.api-us1.com/api/:version/contacts/113/scoreValues', + trackingLogs: 'https://:account.api-us1.com/api/:version/contacts/113/trackingLogs', + }, + organization: '', + orgid: '', + udate: '2018-09-28T13:50:41-05:00', + }, + fieldValues: [ + { + cdate: '2020-08-01T10:54:59-05:00', + contact: '113', + field: '1', + id: '11797', + links: { + field: 'https://:account.api-us1.com/api/3/fieldValues/11797/field', + owner: 'https://:account.api-us1.com/api/3/fieldValues/11797/owner', + }, + owner: '113', + udate: '2020-08-01T14:13:34-05:00', + value: 'The Value for First Field', + }, + { + cdate: '2020-08-01T10:54:59-05:00', + contact: '113', + field: '6', + id: '11798', + links: { + field: 'https://:account.api-us1.com/api/3/fieldValues/11798/field', + owner: 'https://:account.api-us1.com/api/3/fieldValues/11798/owner', + }, + owner: '113', + udate: '2020-08-01T14:13:34-05:00', + value: '2008-01-20', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/tags?limit=100', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + data: { tag: { description: '', tag: 'Test_User', tagType: 'contact' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/tags', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + description: '', + id: 11, + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + tag: 'Test_User', + tagType: 'contact', + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + data: { tag: { description: '', tag: 'Interested_User', tagType: 'contact' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/tags', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + description: '', + id: 12, + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + tag: 'Interested_User', + tagType: 'contact', + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: '5' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 13, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: '5', + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: 11 } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 14, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: 11, + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: 12 } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 15, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: 12, + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactList: { contact: '2', list: 2, status: '1' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactLists', + }, + httpRes: { data: { contactList: { contact: '2', list: 2, status: '1' } }, status: 200 }, + }, + { + httpReq: { + data: { contactList: { contact: '2', list: 3, status: '2' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactLists', + }, + httpRes: { data: { contactList: { contact: '2', list: 3, status: '2' } }, status: 200 }, + }, + { + httpReq: { + headers: { Accept: 'application/json, text/plain, */*', 'Api-Token': 'dummyApiKey' }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/fields?limit=100', + }, + httpRes: { + data: { + fieldOptions: [], + fieldRels: [], + fields: [ + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Random description', + id: '4', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Random', + type: 'multivalue', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Likes description', + id: '3', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Likes', + type: 'multivalue', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:43:38-06:00', + cols: '0', + defval: null, + descript: null, + id: '2', + isrequired: '0', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/2/options', + relations: 'https://:account.api-us1.com/api/:version/fields/2/relations', + }, + options: [], + ordernum: '2', + perstag: 'ANOTHER_TEST_TITLE', + relations: [], + rows: '0', + service: '', + show_in_list: '0', + title: 'Another Test Title', + type: '', + udate: '2018-11-15T21:43:38-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Country description', + id: '1', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Country', + type: 'textarea', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Office description', + id: '0', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Office', + type: 'textarea', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + ], + meta: { total: '4' }, + }, + status: 200, + }, + }, +]; diff --git a/test/integrations/destinations/active_campaign/processor/data.ts b/test/integrations/destinations/active_campaign/processor/data.ts index 267e78f2d3c..cef8c2a3a80 100644 --- a/test/integrations/destinations/active_campaign/processor/data.ts +++ b/test/integrations/destinations/active_campaign/processor/data.ts @@ -1,3 +1,6 @@ +import MockAdapter from 'axios-mock-adapter'; +import { isMatch } from 'lodash'; + export const data = [ { name: 'active_campaign', @@ -11,7 +14,7 @@ export const data = [ { destination: { Config: { - apiKey: 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + apiKey: 'dummyApiKey', apiUrl: 'https://active.campaigns.rudder.com', actid: '476550467', eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', @@ -71,8 +74,7 @@ export const data = [ endpoint: 'https://active.campaigns.rudder.com/api/3/contact/sync', headers: { 'Content-Type': 'application/json', - 'Api-Token': - 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + 'Api-Token': 'dummyApiKey', }, params: {}, body: { @@ -115,7 +117,7 @@ export const data = [ { destination: { Config: { - apiKey: 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + apiKey: 'dummyApiKey', apiUrl: 'https://active.campaigns.rudder.com', actid: '476550467', eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', @@ -175,8 +177,7 @@ export const data = [ endpoint: 'https://active.campaigns.rudder.com/api/3/contact/sync', headers: { 'Content-Type': 'application/json', - 'Api-Token': - 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + 'Api-Token': 'dummyApiKey', }, params: {}, body: { @@ -219,7 +220,7 @@ export const data = [ { destination: { Config: { - apiKey: 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + apiKey: 'dummyApiKey', apiUrl: 'https://active.campaigns.rudder.com', actid: '476550467', eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', @@ -283,8 +284,7 @@ export const data = [ method: 'POST', params: {}, headers: { - 'Api-Token': - 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + 'Api-Token': 'dummyApiKey', 'Content-Type': 'application/json', }, version: '1', @@ -309,7 +309,7 @@ export const data = [ { destination: { Config: { - apiKey: 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + apiKey: 'dummyApiKey', apiUrl: 'https://active.campaigns.rudder.com', actid: '476550467', eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', @@ -372,8 +372,7 @@ export const data = [ method: 'POST', params: {}, headers: { - 'Api-Token': - 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + 'Api-Token': 'dummyApiKey', 'Content-Type': 'application/json', }, version: '1', @@ -398,7 +397,7 @@ export const data = [ { destination: { Config: { - apiKey: 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + apiKey: 'dummyApiKey', apiUrl: 'https://active.campaigns.rudder.com', actid: '476550467', eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', @@ -462,8 +461,7 @@ export const data = [ method: 'POST', params: {}, headers: { - 'Api-Token': - 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + 'Api-Token': 'dummyApiKey', 'Content-Type': 'application/json', }, version: '1', @@ -488,7 +486,7 @@ export const data = [ { destination: { Config: { - apiKey: 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + apiKey: 'dummyApiKey', apiUrl: 'https://active.campaigns.rudder.com', actid: '476550467', eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', @@ -558,8 +556,7 @@ export const data = [ method: 'POST', params: {}, headers: { - 'Api-Token': - 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + 'Api-Token': 'dummyApiKey', 'Content-Type': 'application/x-www-form-urlencoded', }, version: '1', @@ -584,7 +581,7 @@ export const data = [ { destination: { Config: { - apiKey: 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + apiKey: 'dummyApiKey', apiUrl: 'https://active.campaigns.rudder.com', actid: '476550467', eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', @@ -644,8 +641,7 @@ export const data = [ method: 'POST', params: {}, headers: { - 'Api-Token': - 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + 'Api-Token': 'dummyApiKey', 'Content-Type': 'application/x-www-form-urlencoded', }, version: '1', @@ -670,7 +666,7 @@ export const data = [ { destination: { Config: { - apiKey: 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + apiKey: 'dummyApiKey', apiUrl: 'https://active.campaigns.rudder.com', actid: '476550467', eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', @@ -759,8 +755,7 @@ export const data = [ method: 'POST', params: {}, headers: { - 'Api-Token': - 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + 'Api-Token': 'dummyApiKey', 'Content-Type': 'application/json', }, version: '1', @@ -773,4 +768,389 @@ export const data = [ }, }, }, + + { + name: 'active_campaign', + description: + 'Test 7: node error(ECONNABORTED) where there is no response coming from dest. server', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + apiUrl: 'https://active.campaigns.dumber.com', + actid: '476550467', + eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + userId: '123456', + type: 'identify', + traits: { + anonymousId: 'anon_id', + email: 'patjane@gmail.com', + phone: '92374162213', + tags: ['Test_User', 'Interested_User', 'DIY_Hobby'], + fieldInfo: { + Office: 'Trastkiv', + Country: 'Russia', + Likes: ['Potato', 'Onion'], + Random: 'random', + }, + lists: [ + { id: 2, status: 'subscribe' }, + { id: 3, status: 'unsubscribe' }, + { id: 3, status: 'unsubscribexyz' }, + ], + address: { + city: 'kolkata', + country: 'India', + postalCode: 789223, + state: 'WB', + street: '', + }, + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + '{"message":"Failed to create new contact (undefined,\\"[ECONNABORTED] :: Connection aborted\\")","destinationResponse":"[ECONNABORTED] :: Connection aborted"}', + statTags: { + destType: 'ACTIVE_CAMPAIGN', + errorCategory: 'network', + errorType: 'retryable', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 500, + }, + ], + }, + }, + mockFns: (mockAdapter: MockAdapter) => { + mockAdapter + .onPost( + 'https://active.campaigns.dumber.com/api/3/contact/sync', + { + asymmetricMatch: (actual) => { + return isMatch(actual, { + contact: { + email: 'patjane@gmail.com', + phone: '92374162213', + }, + }); + }, + }, + { + asymmetricMatch: (actual) => { + return isMatch(actual, { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }); + }, + }, + ) + .abortRequest(); + }, + }, + { + name: 'active_campaign', + description: 'Test 8: erreneous response from active_campaign server(5xx)', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + apiUrl: 'https://active.campaigns.dumber2.com', + actid: '476550467', + eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + userId: '123456', + type: 'identify', + traits: { + anonymousId: 'anon_id', + email: 'patjane1@gmail.com', + phone: '92374162213', + tags: ['Test_User', 'Interested_User', 'DIY_Hobby'], + fieldInfo: { + Office: 'Trastkiv', + Country: 'Russia', + Likes: ['Potato', 'Onion'], + Random: 'random', + }, + lists: [ + { id: 2, status: 'subscribe' }, + { id: 3, status: 'unsubscribe' }, + { id: 3, status: 'unsubscribexyz' }, + ], + address: { + city: 'kolkata', + country: 'India', + postalCode: 789223, + state: 'WB', + street: '', + }, + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + '{"message":"Failed to create new contact (undefined,\\"\\\\\\\\n\\\\\\\\n\\\\\\\\n\\\\\\\\n \\\\\\\\n\\\\\\\\n\\\\\\\\n\\\\\\\\naccurx.api-us1.com | 504: Gateway time-out\\\\\\\\n\\\\\\\\n\\\\\\\\n\\\\\\\\n\\\\\\\\n\\\\\\\\n\\\\\\\\n\\\\\\\\n\\\\\\\\n\\\\\\\\n\\\\\\\\n
\\\\\\\\n
\\\\\\\\n
\\\\\\\\n

\\\\\\\\n Gateway time-out\\\\\\\\n Error code 504\\\\\\\\n

\\\\\\\\n
\\\\\\\\n Visit cloudflare.com for more information.\\\\\\\\n
\\\\\\\\n
2023-12-06 10:33:27 UTC
\\\\\\\\n
\\\\\\\\n
\\\\\\\\n
\\\\\\\\n
\\\\\\\\n \\\\\\\\n
\\\\\\\\n
\\\\\\\\n \\\\\\\\n \\\\\\\\n \\\\\\\\n \\\\\\\\n
\\\\\\\\n You\\\\\\\\n

\\\\\\\\n \\\\\\\\n Browser\\\\\\\\n \\\\\\\\n

\\\\\\\\n Working\\\\\\\\n
\\\\\\\\n\\\\\\\\n
\\\\\\\\n
\\\\\\\\n \\\\\\\\n \\\\\\\\n \\\\\\\\n \\\\\\\\n
\\\\\\\\n Frankfurt\\\\\\\\n

\\\\\\\\n \\\\\\\\n Cloudflare\\\\\\\\n \\\\\\\\n

\\\\\\\\n Working\\\\\\\\n
\\\\\\\\n\\\\\\\\n
\\\\\\\\n
\\\\\\\\n \\\\\\\\n \\\\\\\\n \\\\\\\\n \\\\\\\\n
\\\\\\\\n accurx.api-us1.com\\\\\\\\n

\\\\\\\\n \\\\\\\\n Host\\\\\\\\n \\\\\\\\n

\\\\\\\\n Error\\\\\\\\n
\\\\\\\\n\\\\\\\\n
\\\\\\\\n
\\\\\\\\n
\\\\\\\\n\\\\\\\\n
\\\\\\\\n
\\\\\\\\n
\\\\\\\\n

What happened?

\\\\\\\\n

The web server reported a gateway time-out error.

\\\\\\\\n
\\\\\\\\n
\\\\\\\\n

What can I do?

\\\\\\\\n

Please try again in a few minutes.

\\\\\\\\n
\\\\\\\\n
\\\\\\\\n
\\\\\\\\n\\\\\\\\n \\\\\\\\n\\\\\\\\n\\\\\\\\n
\\\\\\\\n
\\\\\\\\n\\\\\\\\n\\\\\\\\n\\\\\\")\\")","destinationResponse":"\\\\n\\\\n\\\\n\\\\n \\\\n\\\\n\\\\n\\\\naccurx.api-us1.com | 504: Gateway time-out\\\\n\\\\n\\\\n\\\\n\\\\n\\\\n\\\\n\\\\n\\\\n\\\\n\\\\n
\\\\n
\\\\n
\\\\n

\\\\n Gateway time-out\\\\n Error code 504\\\\n

\\\\n
\\\\n Visit cloudflare.com for more information.\\\\n
\\\\n
2023-12-06 10:33:27 UTC
\\\\n
\\\\n
\\\\n
\\\\n
\\\\n \\\\n
\\\\n
\\\\n \\\\n \\\\n \\\\n \\\\n
\\\\n You\\\\n

\\\\n \\\\n Browser\\\\n \\\\n

\\\\n Working\\\\n
\\\\n\\\\n
\\\\n
\\\\n \\\\n \\\\n \\\\n \\\\n
\\\\n Frankfurt\\\\n

\\\\n \\\\n Cloudflare\\\\n \\\\n

\\\\n Working\\\\n
\\\\n\\\\n
\\\\n
\\\\n \\\\n \\\\n \\\\n \\\\n
\\\\n accurx.api-us1.com\\\\n

\\\\n \\\\n Host\\\\n \\\\n

\\\\n Error\\\\n
\\\\n\\\\n
\\\\n
\\\\n
\\\\n\\\\n
\\\\n
\\\\n
\\\\n

What happened?

\\\\n

The web server reported a gateway time-out error.

\\\\n
\\\\n
\\\\n

What can I do?

\\\\n

Please try again in a few minutes.

\\\\n
\\\\n
\\\\n
\\\\n\\\\n \\\\n\\\\n\\\\n
\\\\n
\\\\n\\\\n\\\\n\\")"}', + statTags: { + destType: 'ACTIVE_CAMPAIGN', + errorCategory: 'network', + errorType: 'retryable', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 504, + }, + ], + }, + }, + mockFns: (mockAdapter: MockAdapter) => { + mockAdapter + .onPost( + 'https://active.campaigns.dumber2.com/api/3/contact/sync', + { + asymmetricMatch: (actual) => { + return isMatch(actual, { + contact: { + email: 'patjane1@gmail.com', + phone: '92374162213', + }, + }); + }, + }, + { + asymmetricMatch: (actual) => { + return isMatch(actual, { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }); + }, + }, + ) + .replyOnce( + 504, + '\\n\\n\\n\\n \\n\\n\\n\\naccurx.api-us1.com | 504: Gateway time-out\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
\\n
\\n
\\n

\\n Gateway time-out\\n Error code 504\\n

\\n
\\n Visit cloudflare.com for more information.\\n
\\n
2023-12-06 10:33:27 UTC
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n \\n \\n \\n
\\n You\\n

\\n \\n Browser\\n \\n

\\n Working\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n
\\n Frankfurt\\n

\\n \\n Cloudflare\\n \\n

\\n Working\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n
\\n accurx.api-us1.com\\n

\\n \\n Host\\n \\n

\\n Error\\n
\\n\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n

What happened?

\\n

The web server reported a gateway time-out error.

\\n
\\n
\\n

What can I do?

\\n

Please try again in a few minutes.

\\n
\\n
\\n
\\n\\n \\n\\n\\n
\\n
\\n\\n\\n")', + { + Accept: 'application/json, text/plain, */*', + 'Api-Token': 'dummyApiKey', + }, + ); + }, + }, + { + name: 'active_campaign', + description: 'Test 9: erreneous response from active_campaign server(4xx)', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + apiUrl: 'https://active.campaigns.dumber2.com', + actid: '476550467', + eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + userId: '123456', + type: 'identify', + traits: { + anonymousId: 'anon_id', + email: 'patjane2@gmail.com', + phone: '92374162213', + tags: ['Test_User', 'Interested_User', 'DIY_Hobby'], + fieldInfo: { + Office: 'Trastkiv', + Country: 'Russia', + Likes: ['Potato', 'Onion'], + Random: 'random', + }, + lists: [ + { id: 2, status: 'subscribe' }, + { id: 3, status: 'unsubscribe' }, + { id: 3, status: 'unsubscribexyz' }, + ], + address: { + city: 'kolkata', + country: 'India', + postalCode: 789223, + state: 'WB', + street: '', + }, + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + '{"message":"Failed to create new contact (undefined,{\\"errors\\":[{\\"title\\":\\"Contact Email Address is not valid.\\",\\"detail\\":\\"\\",\\"code\\":\\"email_invalid\\",\\"error\\":\\"must_be_valid_email_address\\",\\"source\\":{\\"pointer\\":\\"/data/attributes/email\\"}}]})","destinationResponse":{"errors":[{"title":"Contact Email Address is not valid.","detail":"","code":"email_invalid","error":"must_be_valid_email_address","source":{"pointer":"/data/attributes/email"}}]}}', + statTags: { + destType: 'ACTIVE_CAMPAIGN', + errorCategory: 'network', + errorType: 'aborted', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 422, + }, + ], + }, + }, + mockFns: (mockAdapter: MockAdapter) => { + mockAdapter + .onPost( + 'https://active.campaigns.dumber2.com/api/3/contact/sync', + { + asymmetricMatch: (actual) => { + return isMatch(actual, { + contact: { + email: 'patjane2@gmail.com', + phone: '92374162213', + }, + }); + }, + }, + { + asymmetricMatch: (actual) => { + return isMatch(actual, { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }); + }, + }, + ) + .replyOnce( + 422, + { + errors: [ + { + title: 'Contact Email Address is not valid.', + detail: '', + code: 'email_invalid', + error: 'must_be_valid_email_address', + source: { + pointer: '/data/attributes/email', + }, + }, + ], + }, + { + Accept: 'application/json, text/plain, */*', + 'Api-Token': 'dummyApiKey', + }, + ); + }, + }, ]; diff --git a/test/integrations/destinations/active_campaign/router/data.ts b/test/integrations/destinations/active_campaign/router/data.ts index 0639c053a00..782d1e33799 100644 --- a/test/integrations/destinations/active_campaign/router/data.ts +++ b/test/integrations/destinations/active_campaign/router/data.ts @@ -12,8 +12,7 @@ export const data = [ { destination: { Config: { - apiKey: - 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + apiKey: 'dummyApiToken', apiUrl: 'https://active.campaigns.rudder.com', actid: '476550467', eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', @@ -143,8 +142,7 @@ export const data = [ method: 'POST', params: {}, headers: { - 'Api-Token': - 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + 'Api-Token': 'dummyApiToken', 'Content-Type': 'application/json', }, version: '1', @@ -159,8 +157,7 @@ export const data = [ statusCode: 200, destination: { Config: { - apiKey: - 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + apiKey: 'dummyApiToken', apiUrl: 'https://active.campaigns.rudder.com', actid: '476550467', eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', @@ -185,8 +182,7 @@ export const data = [ { destination: { Config: { - apiKey: - 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + apiKey: 'dummyApiToken', apiUrl: 'https://active.campaigns.rudder.com', actid: '476550467', eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', @@ -272,8 +268,7 @@ export const data = [ method: 'POST', params: {}, headers: { - 'Api-Token': - 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + 'Api-Token': 'dummyApiToken', 'Content-Type': 'application/json', }, version: '1', @@ -288,8 +283,7 @@ export const data = [ statusCode: 200, destination: { Config: { - apiKey: - 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + apiKey: 'dummyApiToken', apiUrl: 'https://active.campaigns.rudder.com', actid: '476550467', eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', @@ -382,8 +376,7 @@ export const data = [ }, destination: { Config: { - apiKey: - 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + apiKey: 'dummyApiToken', apiUrl: 'https://active.campaigns.rudder.com', actid: '476550467', eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', @@ -423,8 +416,7 @@ export const data = [ batched: false, destination: { Config: { - apiKey: - 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + apiKey: 'dummyApiToken', apiUrl: 'https://active.campaigns.rudder.com', actid: '476550467', eventKey: 'f8a866fddc721350fdc2fbbd2e5c43a6dddaaa03', diff --git a/test/integrations/destinations/adj/processor/data.ts b/test/integrations/destinations/adj/processor/data.ts index 333a14b4b97..2c208d0d084 100644 --- a/test/integrations/destinations/adj/processor/data.ts +++ b/test/integrations/destinations/adj/processor/data.ts @@ -77,10 +77,10 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, @@ -115,8 +115,8 @@ export const data = [ currency: 'EUR', ip_address: '[::1]', s2s: 1, - app_token: 't1yurrb968zk', - event_token: 'tf4gm5', + app_token: 'testAppToken', + event_token: 'testEventToken', environment: 'production', }, body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, @@ -206,10 +206,10 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, @@ -320,10 +320,10 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, @@ -434,10 +434,10 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, @@ -472,8 +472,8 @@ export const data = [ currency: 'EUR', s2s: 1, ip_address: '[::1]', - app_token: 't1yurrb968zk', - event_token: 'tf4gm5', + app_token: 'testAppToken', + event_token: 'testEventToken', environment: 'production', }, body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, @@ -564,10 +564,10 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, @@ -678,10 +678,10 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, @@ -791,10 +791,10 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, @@ -905,10 +905,10 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, @@ -943,8 +943,8 @@ export const data = [ currency: 'EUR', s2s: 1, ip_address: '[::1]', - app_token: 't1yurrb968zk', - event_token: 'tf4gm5', + app_token: 'testAppToken', + event_token: 'testEventToken', environment: 'production', }, body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, @@ -1034,10 +1034,10 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, @@ -1072,8 +1072,8 @@ export const data = [ currency: 'USD', s2s: 1, ip_address: '[::1]', - app_token: 't1yurrb968zk', - event_token: 'tf4gm5', + app_token: 'testAppToken', + event_token: 'testEventToken', environment: 'production', }, body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, @@ -1163,10 +1163,10 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, @@ -1201,8 +1201,8 @@ export const data = [ currency: 'USD', s2s: 1, ip_address: '[::1]', - app_token: 't1yurrb968zk', - event_token: 'tf4gm5', + app_token: 'testAppToken', + event_token: 'testEventToken', environment: 'production', }, body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, @@ -1292,10 +1292,10 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, @@ -1405,10 +1405,10 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: false, }, @@ -1443,8 +1443,8 @@ export const data = [ currency: 'USD', s2s: 1, ip_address: '[::1]', - app_token: 't1yurrb968zk', - event_token: 'tf4gm5', + app_token: 'testAppToken', + event_token: 'testEventToken', environment: 'sandbox', }, body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, @@ -1527,10 +1527,10 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: false, }, @@ -1561,8 +1561,8 @@ export const data = [ tracking_enabled: true, s2s: 1, ip_address: '[::1]', - app_token: 't1yurrb968zk', - event_token: 'tf4gm5', + app_token: 'testAppToken', + event_token: 'testEventToken', environment: 'sandbox', }, body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, @@ -1653,10 +1653,10 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, @@ -1691,8 +1691,8 @@ export const data = [ currency: 'EUR', s2s: 1, ip_address: '[::1]', - app_token: 't1yurrb968zk', - event_token: 'tf4gm5', + app_token: 'testAppToken', + event_token: 'testEventToken', environment: 'production', }, body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, @@ -1775,10 +1775,10 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, @@ -1809,8 +1809,8 @@ export const data = [ tracking_enabled: true, s2s: 1, ip_address: '[::1]', - app_token: 't1yurrb968zk', - event_token: 'tf4gm5', + app_token: 'testAppToken', + event_token: 'testEventToken', environment: 'production', }, body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, @@ -1893,10 +1893,10 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, ], environment: true, }, @@ -1927,8 +1927,8 @@ export const data = [ tracking_enabled: true, s2s: 1, ip_address: '[::1]', - app_token: 't1yurrb968zk', - event_token: 'tf4gm5', + app_token: 'testAppToken', + event_token: 'testEventToken', environment: 'production', }, body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, @@ -2019,10 +2019,10 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, ], partnerParamsKeys: [ { from: 'key1', to: 'partnerParamKey-1' }, @@ -2068,8 +2068,8 @@ export const data = [ currency: 'EUR', ip_address: '[::1]', s2s: 1, - app_token: 't1yurrb968zk', - event_token: 'tf4gm5', + app_token: 'testAppToken', + event_token: 'testEventToken', environment: 'production', }, body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, @@ -2084,7 +2084,7 @@ export const data = [ }, { name: 'adj', - description: 'Test 17', + description: 'Test 18 -> No adverstisingId present', feature: 'processor', module: 'destination', version: 'v0', @@ -2104,7 +2104,6 @@ export const data = [ }, device: { adTrackingEnabled: true, - advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', manufacturer: 'Google', model: 'AOSP on IA Emulator', @@ -2160,12 +2159,101 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, - { from: 'First Investment', to: 'tf4gm5' }, + { from: 'First Investment', to: 'testEventToken' }, + ], + environment: true, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'App Token is not present. Please configure your app token from config dashbaord', + statTags: { + destType: 'ADJ', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'adj', + description: 'Test 19 -> No properties object in message body', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + "type": "track", + "event": "Application Installed", + "sentAt": "2022-09-28T20:14:44.995Z", + "userId": "sample_user_id", + "context": { + "device": { + "id": "sample_device_id", + "type": "android", + "advertisingId": "_sample" + }, + "traits": { + "userId": "_sample_uid", + "anonymousId": "_sample_anonid" + } + }, + "timestamp": "2022-09-28T20:14:43.314Z", + "request_ip": "71.189.106.156", + "originalTimestamp": "2022-09-28T20:14:44.995Z" + }, + destination: { + ID: '1i3Em7GMU9xVEiDlZUN8c88BMS9', + Name: 'ADJ', + DestinationDefinition: { + ID: '1i3DeZo6eSUKrS3KzDUqjbBPCDJ', + Name: 'ADJ', + DisplayName: 'Adjust', + Config: { + destConfig: { + android: ['useNativeSDK'], + defaultConfig: ['appToken', 'customMappings', 'delay', 'environment'], + ios: ['useNativeSDK'], + reactnative: ['useNativeSDK'], + }, + excludeKeys: [], + includeKeys: ['appToken', 'customMappings', 'delay'], + supportedSourceTypes: ['android', 'ios', 'reactnative', 'cloud'], + }, + }, + Config: { + appToken: 'testAppToken', + customMappings: [ + { from: 'Application Installed', to: '3fdmll' }], + partnerParamsKeys: [ + { from: 'key1', to: 'partnerParamKey-1' }, + { from: 'key2', to: 'partnerParamKey-2' }, + { from: 'revenue', to: 'price' }, + { from: 'novalue', to: 'check' }, + { from: 'Custom_Val_NA', to: 'Custom_dest' }, ], - partnerParamsKeys: [], environment: true, }, Enabled: true, @@ -2189,28 +2277,21 @@ export const data = [ endpoint: 'https://s2s.adjust.com/event', headers: { Accept: '*/*' }, params: { - callback_params: - '{"key1":"value1","key2":"value2","key3.k4":"v4","key3.k5.k6":"v6","key5[0].k":"v1","key5[1].k":"v2"}', - revenue: 20.38, - android_id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', - gps_adid: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', - att_status: 3, - tracking_enabled: true, - currency: 'EUR', - ip_address: '[::1]', + event_token: "3fdmll", + ip_address: "71.189.106.156", + android_id: 'sample_device_id', + gps_adid: "_sample", s2s: 1, - app_token: 't1yurrb968zk', - event_token: 'tf4gm5', + app_token: 'testAppToken', environment: 'production', }, body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, files: {}, - userId: '21e13f4bc7ceddad', + userId: '', }, statusCode: 200, }, ], }, }, - }, -]; + },]; diff --git a/test/integrations/destinations/adj/router/data.ts b/test/integrations/destinations/adj/router/data.ts index 97d86468192..c662d7b5570 100644 --- a/test/integrations/destinations/adj/router/data.ts +++ b/test/integrations/destinations/adj/router/data.ts @@ -112,7 +112,7 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', @@ -120,7 +120,7 @@ export const data = [ }, { from: 'First Investment', - to: 'tf4gm5', + to: 'testEventToken', }, ], environment: true, @@ -161,8 +161,8 @@ export const data = [ currency: 'EUR', s2s: 1, ip_address: '[::1]', - app_token: 't1yurrb968zk', - event_token: 'tf4gm5', + app_token: 'testAppToken', + event_token: 'testEventToken', environment: 'production', }, body: { @@ -201,7 +201,7 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', @@ -209,7 +209,7 @@ export const data = [ }, { from: 'First Investment', - to: 'tf4gm5', + to: 'testEventToken', }, ], environment: true, @@ -337,7 +337,7 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', @@ -345,7 +345,7 @@ export const data = [ }, { from: 'First Investment', - to: 'tf4gm5', + to: 'testEventToken', }, ], environment: true, @@ -386,8 +386,8 @@ export const data = [ currency: 'EUR', s2s: 1, ip_address: '[::1]', - app_token: 't1yurrb968zk', - event_token: 'tf4gm5', + app_token: 'testAppToken', + event_token: 'testEventToken', environment: 'production', }, body: { @@ -426,7 +426,7 @@ export const data = [ }, }, Config: { - appToken: 't1yurrb968zk', + appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', @@ -434,7 +434,7 @@ export const data = [ }, { from: 'First Investment', - to: 'tf4gm5', + to: 'testEventToken', }, ], environment: true, diff --git a/test/integrations/destinations/adobe_analytics/dataDelivery/data.ts b/test/integrations/destinations/adobe_analytics/dataDelivery/data.ts new file mode 100644 index 00000000000..182969da73d --- /dev/null +++ b/test/integrations/destinations/adobe_analytics/dataDelivery/data.ts @@ -0,0 +1,142 @@ +export const data = [ + { + name: 'adobe_analytics', + description: 'Test 0: Failure response from Adobe Analytics with reason', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://adobe.failure.omtrdc.net/b/ss//6', + headers: { + 'Content-type': 'application/xml', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: { + payload: + '17941080sales campaignwebUSD127.0.0.1en-USDalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)https://www.google.com/search?q=estore+bestsellerprodViewGames;;11;148.39failureReport', + }, + FORM: {}, + }, + files: {}, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'ADOBE_ANALYTICS', + module: 'destination', + implementation: 'native', + feature: 'dataDelivery', + destinationId: '2S3s0dXXXXXX7m0UfBwyblDrzs', + workspaceId: '1pKWrE6GXXXXXKBikka1SbRgrSN', + }, + destinationResponse: '', + authErrorCategory: '', + message: + '[ADOBE_ANALYTICS Response Handler] Request failed for destination adobe_analytics : NO pagename OR pageurl', + }, + }, + }, + { + name: 'adobe_analytics', + description: 'Test 1: Failure response from Adobe Analytics without reason (Generic error)', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://adobe.failure2.omtrdc.net/b/ss//6', + headers: { + 'Content-type': 'application/xml', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: { + payload: + '17941080sales campaignwebUSD127.0.0.1en-USDalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)https://www.google.com/search?q=estore+bestsellerprodViewGames;;11;148.39failureReportgeneric', + }, + FORM: {}, + }, + files: {}, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'ADOBE_ANALYTICS', + module: 'destination', + implementation: 'native', + feature: 'dataDelivery', + destinationId: '2S3s0dXXXXXX7m0UfBwyblDrzs', + workspaceId: '1pKWrE6GXXXXXKBikka1SbRgrSN', + }, + destinationResponse: '', + authErrorCategory: '', + message: + '[ADOBE_ANALYTICS Response Handler] Request failed for destination adobe_analytics with a general error', + }, + }, + }, + { + name: 'adobe_analytics', + description: 'Test 2: Success response from Adobe Analytics', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://adobe.success.omtrdc.net/b/ss//6', + headers: { + 'Content-type': 'application/xml', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: { + payload: + '127.0.1.0www.google.co.inGoogleid1110011prodViewGames;Monopoly;1;14.00,Games;UNO;2;6.90successreport', + }, + FORM: {}, + }, + files: {}, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + destinationResponse: 'SUCCESS', + }, + }, + }, +]; diff --git a/test/integrations/destinations/adobe_analytics/network.ts b/test/integrations/destinations/adobe_analytics/network.ts new file mode 100644 index 00000000000..2fe4f0204ed --- /dev/null +++ b/test/integrations/destinations/adobe_analytics/network.ts @@ -0,0 +1,47 @@ +export const networkCallsData = [ + { + httpReq: { + url: 'https://adobe.failure.omtrdc.net/b/ss//6', + data: '17941080sales campaignwebUSD127.0.0.1en-USDalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)https://www.google.com/search?q=estore+bestsellerprodViewGames;;11;148.39failureReport', + params: {}, + headers: { + 'Content-Type': 'application/xml', + }, + method: 'POST', + }, + httpRes: { + status: 200, + data: 'FAILURENO pagename OR pageurl', + }, + }, + { + httpReq: { + url: 'https://adobe.failure2.omtrdc.net/b/ss//6', + data: '17941080sales campaignwebUSD127.0.0.1en-USDalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)https://www.google.com/search?q=estore+bestsellerprodViewGames;;11;148.39failureReportgeneric', + params: {}, + headers: { + 'Content-Type': 'application/xml', + }, + method: 'POST', + }, + httpRes: { + status: 200, + data: 'FAILURE', + }, + }, + { + httpReq: { + url: 'https://adobe.success.omtrdc.net/b/ss//6', + data: '127.0.1.0www.google.co.inGoogleid1110011prodViewGames;Monopoly;1;14.00,Games;UNO;2;6.90successreport', + params: {}, + headers: { + 'Content-Type': 'application/xml', + }, + method: 'POST', + }, + httpRes: { + status: 200, + data: 'SUCCESS', + }, + }, +]; diff --git a/test/integrations/destinations/adobe_analytics/processor/data.ts b/test/integrations/destinations/adobe_analytics/processor/data.ts index 64c167b40d2..fa050897c95 100644 --- a/test/integrations/destinations/adobe_analytics/processor/data.ts +++ b/test/integrations/destinations/adobe_analytics/processor/data.ts @@ -1,7 +1,7 @@ export const data = [ { name: 'adobe_analytics', - description: 'Test 0', + description: 'Test 0: [ECom]: Product Viewed', feature: 'processor', module: 'destination', version: 'v0', @@ -31,7 +31,7 @@ export const data = [ referring_domain: 'google.com', search: 'estore bestseller', title: 'The best sellers offered by EStore', - url: 'https://www.estore.com/best-seller/1', + url: 'https://www.estore.com/best-seller/News & Sports?ik=123&ij=456', name: 'Best Seller', }, screen: { @@ -61,7 +61,7 @@ export const data = [ coupon: 'DISC21', currency: 'USD', position: 1, - url: 'https://www.website.com/product/path', + url: 'https://www.website.com/product/path?ik=123&ij=456', image_url: 'https://www.website.com/product/path.png', currencyMerch: 25, addressMerch: 'Delhi', @@ -170,7 +170,7 @@ export const data = [ JSON_ARRAY: {}, XML: { payload: - '17941080sales campaignwebUSD127.0.0.1en-USDalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)https://www.google.com/search?q=estore+bestsellert01t02roottval001Kolkata9935400932RudderLabs JavaScript SDKr15,faze90Rciaz,hummer,tharhttps://www.estore.com/best-seller/1Best Sellercustompropval1custompropval22020-01-09T10:01:53.558Zmktcloudid001prodViewGames;Game;11;148.39footlockerrudderstackpoc', + '17941080sales campaignwebUSD127.0.0.1en-USDalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)https://www.google.com/search?q=estore+bestsellert01t02roottval001Kolkata9935400932RudderLabs JavaScript SDKr15,faze90Rciaz,hummer,tharhttps://www.estore.com/best-seller/News%20&%20Sports?ik=123&ij=456Best Sellercustompropval1custompropval22020-01-09T10:01:53.558Zmktcloudid001prodViewGames;Game;11;148.39footlockerrudderstackpoc', }, FORM: {}, }, @@ -185,7 +185,7 @@ export const data = [ }, { name: 'adobe_analytics', - description: 'Test 1', + description: 'Test 1: [ECom]: Product Added', feature: 'processor', module: 'destination', version: 'v0', @@ -356,7 +356,7 @@ export const data = [ }, { name: 'adobe_analytics', - description: 'Test 2', + description: 'Test 2: [ECom]: Product Removed', feature: 'processor', module: 'destination', version: 'v0', @@ -527,7 +527,7 @@ export const data = [ }, { name: 'adobe_analytics', - description: 'Test 3', + description: 'Test 3: [ECom]: Cart Viewed', feature: 'processor', module: 'destination', version: 'v0', @@ -708,7 +708,7 @@ export const data = [ }, { name: 'adobe_analytics', - description: 'Test 4', + description: 'Test 4: [ECom]: Checkout started', feature: 'processor', module: 'destination', version: 'v0', @@ -896,7 +896,7 @@ export const data = [ }, { name: 'adobe_analytics', - description: 'Test 5', + description: 'Test 5: [ECom]: Order Completed', feature: 'processor', module: 'destination', version: 'v0', @@ -1085,7 +1085,7 @@ export const data = [ }, { name: 'adobe_analytics', - description: 'Test 6', + description: 'Test 6: Cart Opened', feature: 'processor', module: 'destination', version: 'v0', @@ -1265,7 +1265,7 @@ export const data = [ }, { name: 'adobe_analytics', - description: 'Test 7', + description: 'Test 7: [Custom] Watched Video', feature: 'processor', module: 'destination', version: 'v0', @@ -1285,7 +1285,7 @@ export const data = [ term: 'event data', content: 'Make sense of the modern data stack', }, - library: { name: 'RudderLabs JavaScript SDK', version: '2.9.1' }, + library: { name: 'RudderLabs JavaScript SDK ', version: '2.9.1' }, locale: 'en-US', page: { path: '/best-seller/1', @@ -1311,7 +1311,7 @@ export const data = [ traits: { roott01: 'roottval001' }, event: 'Watched Video', integrations: { All: true }, - properties: { plan: 'growth', video: 'TEDxGROWTH' }, + properties: { plan: 'growth', video: 'TEDxGROWTH&MARKETING' }, originalTimestamp: '2020-01-09T10:01:53.558Z', type: 'track', sentAt: '2020-01-09T10:02:03.257Z', @@ -1412,7 +1412,7 @@ export const data = [ JSON_ARRAY: {}, XML: { payload: - '17941080sales campaignweb127.0.0.1en-USDalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)https://www.google.com/search?q=estore+bestsellerroottval001RudderLabs JavaScript SDKTEDxGROWTHoWatched Videohttps://www.estore.com/best-seller/1growth2020-01-09T10:01:53.558Zmktcloudid001event1footlockerrudderstackpoc', + '17941080sales campaignweb127.0.0.1en-USDalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)https://www.google.com/search?q=estore+bestsellerroottval001RudderLabs JavaScript SDK <Custom>TEDxGROWTH&MARKETINGoWatched Videohttps://www.estore.com/best-seller/1growth2020-01-09T10:01:53.558Zmktcloudid001event1footlockerrudderstackpoc', }, FORM: {}, }, @@ -1427,7 +1427,7 @@ export const data = [ }, { name: 'adobe_analytics', - description: 'Test 8', + description: 'Test 8: Common Page Call', feature: 'processor', module: 'destination', version: 'v0', @@ -1597,7 +1597,7 @@ export const data = [ }, { name: 'adobe_analytics', - description: 'Test 9', + description: 'Test 9: Currency test event', feature: 'processor', module: 'destination', version: 'v0', @@ -1626,7 +1626,7 @@ export const data = [ attStatus: true, id: 'fc8d449516de0dfb', adTrackingEnabled: true, - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', @@ -1789,7 +1789,7 @@ export const data = [ }, { name: 'adobe_analytics', - description: 'Test 10', + description: 'Test 10: Override feature test', feature: 'processor', module: 'destination', version: 'v0', @@ -1988,7 +1988,7 @@ export const data = [ }, { name: 'adobe_analytics', - description: 'Test 11', + description: 'Test 11: Override hiers test', feature: 'processor', module: 'destination', version: 'v0', @@ -2188,7 +2188,7 @@ export const data = [ }, { name: 'adobe_analytics', - description: 'Test 12', + description: 'Test 12: product level eVaR', feature: 'processor', module: 'destination', version: 'v0', @@ -2390,7 +2390,7 @@ export const data = [ }, { name: 'adobe_analytics', - description: 'Test 13', + description: 'Test 13: [ERROR]: Invalid message type: Identify', feature: 'processor', module: 'destination', version: 'v0', @@ -2523,7 +2523,7 @@ export const data = [ }, { name: 'adobe_analytics', - description: 'Test 14', + description: 'Test 14: [ERROR]: Message Type is not present.', feature: 'processor', module: 'destination', version: 'v0', @@ -2697,7 +2697,8 @@ export const data = [ }, { name: 'adobe_analytics', - description: 'Test 15', + description: + 'Test 15: [ERROR]: The event is not a supported ECOM event or a mapped custom event.', feature: 'processor', module: 'destination', version: 'v0', @@ -2872,7 +2873,7 @@ export const data = [ }, { name: 'adobe_analytics', - description: 'Test 16', + description: 'Test 16: Test overrideEventName property', feature: 'processor', module: 'destination', version: 'v0', @@ -3056,4 +3057,49 @@ export const data = [ }, }, }, + { + name: 'adobe_analytics', + description: 'Test 17: Event is missing for track', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '78c53c15-32a1-4b65-adac-bec2d7bb8fab', + channel: 'web', + originalTimestamp: '2020-01-09T10:01:53.558Z', + type: 'track', + sentAt: '2020-01-09T10:02:03.257Z', + }, + destination: { + Config: {}, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event name is not present. Aborting message.', + statTags: { + destType: 'ADOBE_ANALYTICS', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, ]; diff --git a/test/integrations/destinations/af/deleteUsers/data.ts b/test/integrations/destinations/af/deleteUsers/data.ts new file mode 100644 index 00000000000..c552b79f679 --- /dev/null +++ b/test/integrations/destinations/af/deleteUsers/data.ts @@ -0,0 +1,302 @@ +import { cloneDeep } from 'lodash'; +import { FEATURES } from '../../../../../src/v0/util/tags'; +import { networkCallsData } from '../network'; +import { addMock } from '../../../testUtils'; +import MockAdapter from 'axios-mock-adapter'; +import utils from '../../../../../src/v0/util'; + +const defaultMockFns = () => { + jest.spyOn(Date.prototype, 'toISOString').mockReturnValue('2023-09-24T11:22:24.018Z'); + jest.spyOn(utils, 'generateUUID').mockReturnValue('97fcd7b2-cc24-47d7-b776-057b7b199513'); +}; + +const requests = [ + { + request: { + body: [ + { + destType: 'AF', + userAttributes: [ + { + userId: 'test_user_id', + appsflyer_id: 'jklhajksfh', + }, + { + userId: 'user_sdk2', + appsflyer_id: 'jklhajksfh', + }, + ], + config: { + devKey: 'ef1d42390426e3f7c90ac78272e74344', + apiToken: 'dummyApiToken', + }, + }, + ], + }, + }, + { + request: { + body: [ + { + destType: 'AF', + userAttributes: [ + { + userId: 'test_user_id', + appsflyer_id: 'jklhajksfh', + }, + { + userId: 'user_sdk2', + appsflyer_id: 'jklhajksfh', + }, + ], + config: { + devKey: 'ef1d42390426e3f7c90ac78272e74344', + appleAppId: '123456789', + statusCallbackUrls: + 'https://examplecontroller.com/opengdpr_callbacks,https://examplecontroller.com/opengdpr_callbacks,https://examplecontroller.com/opengdpr_callbacks,https://examplecontroller.com/opengdpr_callbacks', + apiToken: 'dummyApiToken', + }, + }, + ], + }, + }, + { + request: { + body: [ + { + destType: 'AF', + userAttributes: [ + { + email: 'testUser@testMail.com', + android_advertising_id: '1234', + }, + { + userId: 'user_sdk2', + android_advertising_id: '1234', + }, + ], + config: { + devKey: 'abcde', + appleAppId: 'asdfasdf', + groupTypeTrait: 'email', + groupValueTrait: 'age', + trackProductsOnce: false, + trackRevenuePerProduct: false, + apiToken: 'dummyApiToken', + }, + }, + ], + }, + }, + { + request: { + body: [ + { + destType: 'AF', + userAttributes: [ + { + email: 'testUser@testMail.com', + ios_advertising_id: '1234', + }, + { + userId: 'user_sdk2', + ios_advertising_id: '1234', + }, + ], + config: { + devKey: 'abcde', + androidAppId: 'com.rudder.rs', + groupTypeTrait: 'email', + groupValueTrait: 'age', + trackProductsOnce: false, + trackRevenuePerProduct: false, + apiToken: 'dummyApiToken', + }, + }, + ], + }, + }, + { + request: { + body: [ + { + destType: 'AF', + userAttributes: [ + { + email: 'testUser@testMail.com', + userId: 'user1234', + }, + { + userId: 'user_sdk2', + ios_advertising_id: '1234', + }, + ], + config: { + devKey: 'abcde', + androidAppId: 'com.rudder.rs', + groupTypeTrait: 'email', + groupValueTrait: 'age', + trackProductsOnce: false, + trackRevenuePerProduct: false, + apiToken: 'dummyApiToken', + }, + }, + ], + }, + }, +]; +const resultBodies = [ + [ + { + statusCode: 400, + error: + 'API Token and one of Apple ID or Android App Id are required fields for user deletion', + }, + ], + [ + { + statusCode: 400, + error: 'You can send utmost 3 callBackUrls', + }, + ], + [ + { + statusCode: 400, + error: 'androidAppId is required for android_advertising_id type identifier', + }, + ], + [ + { + statusCode: 400, + error: 'appleAppId is required for ios_advertising_id type identifier', + }, + ], + [ + { + statusCode: 400, + error: + 'none of the possible identityTypes i.e.(ios_advertising_id, android_advertising_id, appsflyer_id) is provided for deletion', + }, + ], +]; +const parentCaseVars = { + name: 'af', + description: 'Test ', + feature: FEATURES.USER_DELETION, + module: 'destination', + version: 'v0', + input: {}, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, +}; +const nonNetworkCases = requests.map((req, index) => { + const testCase = cloneDeep(parentCaseVars); + testCase.description = `Test ${2 + index}`; + testCase.input = req; + testCase.output.response.status = resultBodies[index][0].statusCode; + //@ts-ignore + testCase.output.response.body = resultBodies[index]; + return testCase; +}); + +export const data = [ + { + name: 'af', + description: 'Test 0', + feature: FEATURES.USER_DELETION, + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'AF', + userAttributes: [ + { + userId: 'test_user_id', + android_advertising_id: '1665148898336-5539842602053895577', + }, + ], + config: { + devKey: 'ef1d42390426e3f7c90ac78272e74344', + appleAppId: '123456789', + androidAppId: 'AnAID', + apiToken: 'dummyApiToken', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + mockFns: (mockAdapter: MockAdapter) => { + const nwData = networkCallsData[0]; + addMock(mockAdapter, nwData); + defaultMockFns(); + }, + }, + { + name: 'af', + description: 'Test 1', + feature: FEATURES.USER_DELETION, + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'AF', + userAttributes: [ + { + userId: 'test_user_id', + ios_advertising_id: '1665148898336-5539842602053895577', + }, + ], + config: { + devKey: 'ef1d42390426e3f7c90ac78272e74344', + appleAppId: '123456789', + androidAppId: 'AnAID', + apiToken: 'dummyApiToken', + statusCallbackUrls: 'https://examplecontroller.com/opengdpr_callbacks', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + mockFns: (mockAdapter: MockAdapter) => { + const nwData = networkCallsData[1]; + addMock(mockAdapter, nwData); + defaultMockFns(); + }, + }, + ...nonNetworkCases, +]; diff --git a/test/integrations/destinations/af/network.ts b/test/integrations/destinations/af/network.ts new file mode 100644 index 00000000000..2e9557539e1 --- /dev/null +++ b/test/integrations/destinations/af/network.ts @@ -0,0 +1,67 @@ +import { JSON_MIME_TYPE } from '../../../../src/v0/util/constant'; + +export const networkCallsData = [ + { + httpReq: { + method: 'post', + url: 'https://hq1.appsflyer.com/api/gdpr/v1/opendsr_request', + headers: { + 'Content-Type': JSON_MIME_TYPE, + + Authorization: 'Bearer dummyApiToken', + }, + data: { + subject_request_type: 'erasure', + subject_identities: [ + { + identity_format: 'raw', + identity_type: 'android_advertising_id', + identity_value: '1665148898336-5539842602053895577', + }, + ], + property_id: 'AnAID', + subject_request_id: '97fcd7b2-cc24-47d7-b776-057b7b199513', + submitted_time: '2023-09-24T11:22:24.018Z', + }, + }, + httpRes: { + data: { + error: { + code: 400, + af_gdpr_code: 'e411', + message: "AppID given in 'property_id' is incorrect or does not belong to your account", + }, + }, + status: 400, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://hq1.appsflyer.com/api/gdpr/v1/opendsr_request', + data: { + subject_request_type: 'erasure', + subject_identities: [ + { + identity_format: 'raw', + identity_type: 'ios_advertising_id', + identity_value: '1665148898336-5539842602053895577', + }, + ], + status_callback_urls: ['https://examplecontroller.com/opengdpr_callbacks'], + property_id: '123456789', + subject_request_id: '97fcd7b2-cc24-47d7-b776-057b7b199513', + submitted_time: '2023-09-24T11:22:24.018Z', + }, + headers: { + 'Content-Type': JSON_MIME_TYPE, + + Authorization: 'Bearer dummyApiToken', + }, + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, +]; diff --git a/test/integrations/destinations/af/processor/data.ts b/test/integrations/destinations/af/processor/data.ts index 10a8f03e76e..8b639f45c02 100644 --- a/test/integrations/destinations/af/processor/data.ts +++ b/test/integrations/destinations/af/processor/data.ts @@ -352,7 +352,7 @@ export const data = [ namespace: 'com.rudderlabs.javascript', version: '1.0.0', }, - traits: { email: 'sayan@gmail.com' }, + traits: { email: 'test@rudderstack.com' }, library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', diff --git a/test/integrations/destinations/airship/processor/data.ts b/test/integrations/destinations/airship/processor/data.ts index 66e21842966..cafbd02e740 100644 --- a/test/integrations/destinations/airship/processor/data.ts +++ b/test/integrations/destinations/airship/processor/data.ts @@ -51,7 +51,7 @@ export const data = [ }, destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', appKey: 'O2YARRI15I', dataCenter: false, }, @@ -75,7 +75,7 @@ export const data = [ 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', 'X-UA-Appkey': 'O2YARRI15I', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -162,7 +162,7 @@ export const data = [ }, destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', appKey: 'O2YARRI15I', dataCenter: false, }, @@ -243,7 +243,7 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, destination: { - Config: { apiKey: '34d8efa09c5b048bbacc6af157f2e687', dataCenter: false }, + Config: { apiKey: 'dummyApiKey', dataCenter: false }, }, }, ], @@ -322,7 +322,7 @@ export const data = [ }, destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', appKey: 'O2YARRI15I', dataCenter: true, }, @@ -346,7 +346,7 @@ export const data = [ 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', 'X-UA-Appkey': 'O2YARRI15I', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -425,7 +425,7 @@ export const data = [ }, destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', appKey: 'O2YARRI15I', dataCenter: false, }, @@ -448,7 +448,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -549,7 +549,7 @@ export const data = [ }, destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', appKey: 'O2YARRI15I', dataCenter: false, }, @@ -572,7 +572,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -640,7 +640,7 @@ export const data = [ }, destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', appKey: 'O2YARRI15I', dataCenter: false, }, @@ -663,7 +663,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -690,7 +690,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -806,7 +806,7 @@ export const data = [ version: '1', }, destination: { - Config: { apiKey: '34d8efa09c5b048bbacc6af157f2e687', dataCenter: true }, + Config: { apiKey: 'dummyApiKey', dataCenter: true }, }, }, ], @@ -826,7 +826,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -853,7 +853,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -954,7 +954,7 @@ export const data = [ }, destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', appKey: 'O2YARRI15I', appSecret: 'fhf', dataCenter: true, @@ -1027,7 +1027,7 @@ export const data = [ version: '1', }, destination: { - Config: { apiKey: '34d8efa09c5b048bbacc6af157f2e687', dataCenter: false }, + Config: { apiKey: 'dummyApiKey', dataCenter: false }, }, }, ], @@ -1047,7 +1047,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -1147,7 +1147,7 @@ export const data = [ version: '1', }, destination: { - Config: { apiKey: '34d8efa09c5b048bbacc6af157f2e687', dataCenter: false }, + Config: { apiKey: 'dummyApiKey', dataCenter: false }, }, }, ], @@ -1167,7 +1167,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -1234,7 +1234,7 @@ export const data = [ version: '1', }, destination: { - Config: { apiKey: '34d8efa09c5b048bbacc6af157f2e687', dataCenter: false }, + Config: { apiKey: 'dummyApiKey', dataCenter: false }, }, }, ], @@ -1254,7 +1254,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -1281,7 +1281,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -1397,7 +1397,7 @@ export const data = [ version: '1', }, destination: { - Config: { apiKey: '34d8efa09c5b048bbacc6af157f2e687', dataCenter: true }, + Config: { apiKey: 'dummyApiKey', dataCenter: true }, }, }, ], @@ -1417,7 +1417,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -1444,7 +1444,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -1545,7 +1545,7 @@ export const data = [ }, destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', appKey: 'O2YARRI15I', appSecret: 'fhf', dataCenter: true, @@ -1621,7 +1621,7 @@ export const data = [ version: '1', }, destination: { - Config: { apiKey: '34d8efa09c5b048bbacc6af157f2e687', dataCenter: false }, + Config: { apiKey: 'dummyApiKey', dataCenter: false }, }, }, ], @@ -1641,7 +1641,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -1668,7 +1668,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -1751,7 +1751,7 @@ export const data = [ { destination: { ID: '1Tdi0lpXwSVwXG1lcdP2pXHKrJ6', - Name: 'Titli Ganguly', + Name: 'Titli Test', DestinationDefinition: { ID: '1SujZGrVEPqYmpUJcV4vSl9tfxn', Name: 'MC', @@ -1887,7 +1887,7 @@ export const data = [ }, destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', appKey: 'ffdf', appSecret: 'fhf', dataCenter: false, @@ -1912,7 +1912,7 @@ export const data = [ 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', 'X-UA-Appkey': 'ffdf', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -1975,7 +1975,7 @@ export const data = [ }, destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', appKey: 'ffdf', dataCenter: false, }, @@ -1999,7 +1999,7 @@ export const data = [ 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', 'X-UA-Appkey': 'ffdf', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -2062,7 +2062,7 @@ export const data = [ }, destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', appKey: 'ffdf', dataCenter: false, }, @@ -2086,7 +2086,7 @@ export const data = [ 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', 'X-UA-Appkey': 'ffdf', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -2267,7 +2267,7 @@ export const data = [ sentAt: '2019-10-14T09:03:22.563Z', }, destination: { - Config: { appKey: '34d8efa09c5b048bbacc6af157f2e687', dataCenter: false }, + Config: { appKey: 'dummyApiKey', dataCenter: false }, }, }, ], @@ -2333,7 +2333,7 @@ export const data = [ }, destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', appKey: 'ffdf', dataCenter: false, }, @@ -2357,7 +2357,7 @@ export const data = [ 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', 'X-UA-Appkey': 'ffdf', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { diff --git a/test/integrations/destinations/airship/router/data.ts b/test/integrations/destinations/airship/router/data.ts index cc7f29fdfee..bc11bc2cfc8 100644 --- a/test/integrations/destinations/airship/router/data.ts +++ b/test/integrations/destinations/airship/router/data.ts @@ -12,7 +12,7 @@ export const data = [ { destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', appKey: 'O2YARRI15I', dataCenter: false, }, @@ -108,7 +108,7 @@ export const data = [ 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', 'X-UA-Appkey': 'O2YARRI15I', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -160,7 +160,7 @@ export const data = [ statusCode: 200, destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', appKey: 'O2YARRI15I', dataCenter: false, }, @@ -184,7 +184,7 @@ export const data = [ { destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', appKey: 'O2YARRI15I', dataCenter: false, }, @@ -250,7 +250,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -279,7 +279,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -363,7 +363,7 @@ export const data = [ statusCode: 200, destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', appKey: 'O2YARRI15I', dataCenter: false, }, @@ -387,7 +387,7 @@ export const data = [ { destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', dataCenter: false, }, }, @@ -452,7 +452,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -481,7 +481,7 @@ export const data = [ headers: { 'Content-Type': 'application/json', Accept: 'application/vnd.urbanairship+json; version=3', - Authorization: 'Bearer 34d8efa09c5b048bbacc6af157f2e687', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -565,7 +565,7 @@ export const data = [ statusCode: 200, destination: { Config: { - apiKey: '34d8efa09c5b048bbacc6af157f2e687', + apiKey: 'dummyApiKey', dataCenter: false, }, }, diff --git a/test/integrations/destinations/algolia/processor/data.ts b/test/integrations/destinations/algolia/processor/data.ts new file mode 100644 index 00000000000..0cbdd8b31b2 --- /dev/null +++ b/test/integrations/destinations/algolia/processor/data.ts @@ -0,0 +1,1420 @@ +export const data = [ + { + name: 'algolia', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'testone@gmail.com', + firstName: 'test', + lastName: 'one', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'product clicked', + userId: 'testuserId1', + properties: { + index: 'products', + filters: ['field1:hello', 'val1:val2'], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + applicationId: 'O2YARRI15I', + eventTypeSettings: [ + { + from: 'product clicked', + to: 'cLick ', + }, + ], + }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + FORM: {}, + JSON_ARRAY: {}, + JSON: { + events: [ + { + eventName: 'product clicked', + eventType: 'click', + filters: ['field1:hello', 'val1:val2'], + index: 'products', + userToken: 'testuserId1', + }, + ], + }, + XML: {}, + }, + endpoint: 'https://insights.algolia.io/1/events', + files: {}, + headers: { + 'X-Algolia-API-Key': 'dummyApiKey', + 'X-Algolia-Application-Id': 'O2YARRI15I', + }, + method: 'POST', + params: {}, + type: 'REST', + userId: '', + version: '1', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'algolia', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'testone@gmail.com', + firstName: 'test', + lastName: 'one', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'product list viewed', + userId: 'testuserId1', + properties: { + index: 'products', + products: [ + { + objectId: 'ecommerce-sample-data-919', + position: 7, + }, + { + objectId: '9780439784542', + position: 8, + }, + ], + queryId: '43b15df305339e827f0ac0bdc5ebcaa7', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + applicationId: 'O2YARRI15I', + eventTypeSettings: [ + { + from: 'product list viewed', + to: 'click', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + FORM: {}, + JSON_ARRAY: {}, + JSON: { + events: [ + { + eventName: 'product list viewed', + eventType: 'click', + objectIDs: ['ecommerce-sample-data-919', '9780439784542'], + positions: [7, 8], + index: 'products', + userToken: 'testuserId1', + queryID: '43b15df305339e827f0ac0bdc5ebcaa7', + }, + ], + }, + XML: {}, + }, + endpoint: 'https://insights.algolia.io/1/events', + files: {}, + headers: { + 'X-Algolia-API-Key': 'dummyApiKey', + 'X-Algolia-Application-Id': 'O2YARRI15I', + }, + method: 'POST', + params: {}, + type: 'REST', + userId: '', + version: '1', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'algolia', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'testone@gmail.com', + firstName: 'test', + lastName: 'one', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'product clicked', + userId: 'testuserId1', + properties: { + eventType: 'click', + index: 'products', + queryId: '43b15df305339e827f0ac0bdc5ebcaa8', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + applicationId: 'O2YARRI15I', + eventTypeSettings: [], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Either filters or objectIds is required.: Workflow: procWorkflow, Step: validateDestPayload, ChildStep: undefined, OriginalError: Either filters or objectIds is required.', + statTags: { + destType: 'ALGOLIA', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'algolia', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'testone@gmail.com', + firstName: 'test', + lastName: 'one', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: 'testuserId1', + event: 'product clicked', + properties: { + index: 'products', + queryId: '43b15df305339e827f0ac0bdc5ebcaa7', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + applicationId: 'O2YARRI15I', + eventTypeSettings: [], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'eventType is mandatory for track call: Workflow: procWorkflow, Step: preparePayload, ChildStep: undefined, OriginalError: eventType is mandatory for track call', + statTags: { + destType: 'ALGOLIA', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'algolia', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'testone@gmail.com', + firstName: 'test', + lastName: 'one', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'product list viewed', + userId: 'testuserId1', + properties: { + index: 'products', + products: [ + { + objectId: 'ecommerce-sample-data-919', + position: 7, + }, + { + objectId: '9780439784542', + position: 8, + }, + ], + queryId: '', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + applicationId: 'O2YARRI15I', + eventTypeSettings: [ + { + from: 'product list viewed', + to: 'click', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'for click eventType either both positions and queryId should be present or none: Workflow: procWorkflow, Step: validatePayloadForClickEvent, ChildStep: undefined, OriginalError: for click eventType either both positions and queryId should be present or none', + statTags: { + destType: 'ALGOLIA', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'algolia', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'testone@gmail.com', + firstName: 'test', + lastName: 'one', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'product list viewed', + userId: 'testuserId1', + properties: { + index: 'products', + products: [ + { + objectId: 'ecommerce-sample-data-919', + position: 7, + }, + { + objectId: '9780439784542', + position: 8, + }, + ], + queryId: '43b15df305339e827f0ac0bdc5ebcaa7', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + applicationId: 'O2YARRI15I', + eventTypeSettings: [ + { + from: 'product list viewed', + to: 'view', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + FORM: {}, + JSON_ARRAY: {}, + JSON: { + events: [ + { + eventName: 'product list viewed', + eventType: 'view', + index: 'products', + objectIDs: ['ecommerce-sample-data-919', '9780439784542'], + userToken: 'testuserId1', + queryID: '43b15df305339e827f0ac0bdc5ebcaa7', + }, + ], + }, + XML: {}, + }, + endpoint: 'https://insights.algolia.io/1/events', + files: {}, + headers: { + 'X-Algolia-API-Key': 'dummyApiKey', + 'X-Algolia-Application-Id': 'O2YARRI15I', + }, + method: 'POST', + params: {}, + type: 'REST', + userId: '', + version: '1', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'algolia', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'testone@gmail.com', + firstName: 'test', + lastName: 'one', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'product list viewed', + userId: 'testuserId1', + properties: { + index: 'products', + products: [ + { + objectId: 'ecommerce-sample-data-919', + position: '7', + }, + { + objectId: '9780439784542', + position: 'a', + }, + ], + queryId: '43b15df305339e827f0ac0bdc5ebcaa7', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + applicationId: 'O2YARRI15I', + eventTypeSettings: [ + { + from: 'product list viewed', + to: 'click', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'for click eventType either both positions and queryId should be present or none: Workflow: procWorkflow, Step: validatePayloadForClickEvent, ChildStep: undefined, OriginalError: for click eventType either both positions and queryId should be present or none', + statTags: { + destType: 'ALGOLIA', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'algolia', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'testone@gmail.com', + firstName: 'test', + lastName: 'one', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'product list viewed', + userId: 'testuserId1', + properties: { + index: 'products', + products: [ + { + objectId: 'ecommerce-sample-data-919', + position: '7', + }, + { + objectId: '9780439784542', + position: 'a', + }, + ], + queryId: '43b15df305339e827f0ac0bdc5ebcaa7', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + applicationId: 'O2YARRI15I', + eventTypeSettings: [ + { + from: 'product list viewed', + to: 'check', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'eventType can be either click, view or conversion: Workflow: procWorkflow, Step: preparePayload, ChildStep: undefined, OriginalError: eventType can be either click, view or conversion', + statTags: { + destType: 'ALGOLIA', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'algolia', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'testone@gmail.com', + firstName: 'test', + lastName: 'one', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'product list viewed', + userId: 'testuserId1', + properties: { + index: 'products', + products: [ + { + objectId: 'ecommerce-sample-data-919', + position: '7', + }, + { + objectId: '9780439784542', + position: 'a', + }, + ], + queryId: '43b15df305339e827f0ac0bdc5ebcaa7', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + applicationId: 'O2YARRI15I', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'eventType is mandatory for track call: Workflow: procWorkflow, Step: preparePayload, ChildStep: undefined, OriginalError: eventType is mandatory for track call', + statTags: { + destType: 'ALGOLIA', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'algolia', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'testone@gmail.com', + firstName: 'test', + lastName: 'one', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'product clicked', + userId: 'testuserId1', + properties: { + filters: ['field1:hello', 'val1:val2'], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + applicationId: 'O2YARRI15I', + eventTypeSettings: [ + { + from: 'product clicked', + to: 'cLick ', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Missing required value from "properties.index": Workflow: procWorkflow, Step: preparePayload, ChildStep: undefined, OriginalError: Missing required value from "properties.index"', + statTags: { + destType: 'ALGOLIA', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'algolia', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'testone@gmail.com', + firstName: 'test', + lastName: 'one', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: ['abc', 'def'], + userId: 'testuserId1', + properties: { + filters: ['field1:hello', 'val1:val2'], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + applicationId: 'O2YARRI15I', + eventTypeSettings: [ + { + from: 'product clicked', + to: 'cLick ', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'event name should be a string: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: event name should be a string', + statTags: { + destType: 'ALGOLIA', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/algolia/router/data.ts b/test/integrations/destinations/algolia/router/data.ts new file mode 100644 index 00000000000..aaf3e224e32 --- /dev/null +++ b/test/integrations/destinations/algolia/router/data.ts @@ -0,0 +1,2363 @@ +export const data = [ + { + name: 'algolia', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'track', + event: 'product list viewed', + sentAt: '2021-10-25T09:40:08.880Z', + userId: 'test-user-id1', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.1', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:5500/index.html', + path: '/index.html', + title: 'Test', + search: '', + tab_url: 'http://127.0.0.1:5500/index.html', + referrer: 'http://127.0.0.1:5500/index.html', + initial_referrer: 'http://127.0.0.1:5500/index.html', + referring_domain: '127.0.0.1:5500', + initial_referring_domain: '127.0.0.1:5500', + }, + locale: 'en-GB', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 1440, + innerHeight: 335, + }, + traits: { + city: 'Brussels', + email: 'testemail@email.com', + phone: '1234567890', + country: 'Belgium', + firstName: 'Tintin', + custom_date: 1574769933368, + custom_date1: '2019-10-14T11:15:53.296Z', + custom_flavor: 'chocolate', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.1', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36', + }, + rudderId: 'e3e907f1-f79a-444b-b91d-da47488f8273', + messageId: '8cdd3d2e-5e07-42ec-abdc-9b6bd4333840', + timestamp: '2021-10-25T15:10:08.888+05:30', + properties: { + index: 'products', + queryId: '43b15df305339e827f0ac0bdc5ebcaa7', + products: [ + { + objectId: 'ecommerce-sample-data-919', + position: 7, + }, + { + objectId: '9780439784542', + position: 8, + }, + ], + }, + receivedAt: '2021-10-25T15:10:08.889+05:30', + request_ip: '[::1]', + anonymousId: '7138f7d9-5dd2-4337-805d-ca17be59dc8e', + integrations: { + All: true, + }, + originalTimestamp: '2021-10-25T09:40:08.879Z', + }, + metadata: { + jobId: 1, + }, + destination: { + ID: '1zzHtStW2ZPlullmz6L7DGnmk9V', + Name: 'algolia-dev', + DestinationDefinition: { + ID: '1zgVZhcj1Tij4qlKg7B1Jp16IrH', + Name: 'ALGOLIA', + DisplayName: 'Algolia', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'applicationId', 'eventTypeSettings'], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['apiKey', 'applicationId'], + supportedMessageTypes: ['track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'apiKey', + applicationId: 'appId', + eventTypeSettings: [ + { + from: 'product clicked', + to: 'click', + }, + { + from: 'product list viewed', + to: 'view', + }, + ], + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + message: { + type: 'track', + event: 'product clicked', + sentAt: '2021-10-25T09:40:08.886Z', + userId: 'test-user-id1', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.1', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:5500/index.html', + path: '/index.html', + title: 'Test', + search: '', + tab_url: 'http://127.0.0.1:5500/index.html', + referrer: 'http://127.0.0.1:5500/index.html', + initial_referrer: 'http://127.0.0.1:5500/index.html', + referring_domain: '127.0.0.1:5500', + initial_referring_domain: '127.0.0.1:5500', + }, + locale: 'en-GB', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 1440, + innerHeight: 335, + }, + traits: { + city: 'Brussels', + email: 'testemail@email.com', + phone: '1234567890', + country: 'Belgium', + firstName: 'Tintin', + custom_date: 1574769933368, + custom_date1: '2019-10-14T11:15:53.296Z', + custom_flavor: 'chocolate', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.1', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36', + }, + rudderId: 'e3e907f1-f79a-444b-b91d-da47488f8273', + messageId: '7b58e140-b66b-4e88-a5ec-bd6811fc3836', + timestamp: '2021-10-25T15:10:08.943+05:30', + properties: { + index: 'products', + filters: ['field1:hello', 'val1:val2'], + }, + receivedAt: '2021-10-25T15:10:08.943+05:30', + request_ip: '[::1]', + anonymousId: '7138f7d9-5dd2-4337-805d-ca17be59dc8e', + integrations: { + All: true, + }, + originalTimestamp: '2021-10-25T09:40:08.886Z', + }, + metadata: { + jobId: 2, + }, + destination: { + ID: '1zzHtStW2ZPlullmz6L7DGnmk9V', + Name: 'algolia-dev', + DestinationDefinition: { + ID: '1zgVZhcj1Tij4qlKg7B1Jp16IrH', + Name: 'ALGOLIA', + DisplayName: 'Algolia', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'applicationId', 'eventTypeSettings'], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['apiKey', 'applicationId'], + supportedMessageTypes: ['track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'apiKey-2', + applicationId: 'appId-2', + eventTypeSettings: [ + { + from: 'product clicked', + to: 'click', + }, + { + from: 'product list viewed', + to: 'view', + }, + ], + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'testone@gmail.com', + firstName: 'test', + lastName: 'one', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'product clicked', + userId: 'testuserId1', + properties: { + filters: ['field1:hello', 'val1:val2'], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 3, + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + applicationId: 'O2YARRI15I', + eventTypeSettings: [ + { + from: 'product clicked', + to: 'cLick ', + }, + ], + }, + }, + }, + ], + destType: 'algolia', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insights.algolia.io/1/events', + headers: { + 'X-Algolia-Application-Id': 'appId', + 'X-Algolia-API-Key': 'apiKey', + }, + params: {}, + body: { + JSON: { + events: [ + { + index: 'products', + userToken: 'test-user-id1', + queryID: '43b15df305339e827f0ac0bdc5ebcaa7', + eventName: 'product list viewed', + eventType: 'view', + objectIDs: ['ecommerce-sample-data-919', '9780439784542'], + }, + { + index: 'products', + userToken: 'test-user-id1', + filters: ['field1:hello', 'val1:val2'], + eventName: 'product clicked', + eventType: 'click', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 1, + }, + { + jobId: 2, + }, + ], + batched: true, + statusCode: 200, + destination: { + ID: '1zzHtStW2ZPlullmz6L7DGnmk9V', + Name: 'algolia-dev', + DestinationDefinition: { + ID: '1zgVZhcj1Tij4qlKg7B1Jp16IrH', + Name: 'ALGOLIA', + DisplayName: 'Algolia', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'applicationId', 'eventTypeSettings'], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['apiKey', 'applicationId'], + supportedMessageTypes: ['track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'apiKey', + applicationId: 'appId', + eventTypeSettings: [ + { + from: 'product clicked', + to: 'click', + }, + { + from: 'product list viewed', + to: 'view', + }, + ], + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + batched: false, + destination: { + Config: { + apiKey: 'dummyApiKey', + applicationId: 'O2YARRI15I', + eventTypeSettings: [ + { + from: 'product clicked', + to: 'cLick ', + }, + ], + }, + }, + error: 'Missing required value from "properties.index"', + metadata: [ + { + jobId: 3, + }, + ], + statTags: { + destType: 'ALGOLIA', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + }, + { + name: 'algolia', + description: 'Test 1', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'track', + event: 'Product List Viewed', + sentAt: '2023-06-19T22:22:34.928Z', + userId: 'anonymous', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + version: '2.35.0', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'https://m2-staging.ecmdi.com/supplies/air-distribution/grilles', + path: '/supplies/air-distribution/grilles/', + title: 'Grilles - Air Distribution - Supplies | East Coast Metal Distributors', + search: '', + tab_url: 'https://m2-staging.ecmdi.com/supplies/air-distribution/grilles', + referrer: 'https://m2-staging.ecmdi.com/', + initial_referrer: 'https://m2-staging.ecmdi.com/', + referring_domain: 'm2-staging.ecmdi.com', + initial_referring_domain: 'm2-staging.ecmdi.com', + }, + locale: 'en', + screen: { + width: 2560, + height: 1440, + density: 1, + innerWidth: 2514, + innerHeight: 567, + }, + traits: { + loggedIn: false, + customerId: 'anonymous', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '2.35.0', + }, + campaign: {}, + sessionId: 1687204412379, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/114.0', + trackingPlanId: 'tp_2P3vmVzstHPms8hwcqHYwgBjIC7', + violationErrors: [ + { + meta: { + schemaPath: '#/properties/properties/properties/list_id/type', + instacePath: '/properties/list_id', + }, + type: 'Datatype-Mismatch', + message: 'must be string', + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/0', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/0', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/0', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/0', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/0', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/0', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/0', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/1', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/1', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/1', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/1', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/1', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/1', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/1', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/2', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/2', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/2', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/2', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/2', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/2', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/2', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/3', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/3', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/3', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/3', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/3', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/3', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/3', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/4', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/4', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/4', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/4', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/4', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/4', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/4', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/5', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/5', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/5', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/5', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/5', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/5', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/5', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/6', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/6', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/6', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/6', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/6', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/6', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/6', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/7', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/7', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/7', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/7', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/7', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/7', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/7', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/8', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/8', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/8', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/8', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/8', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/8', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/8', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/9', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/9', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/9', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/9', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/9', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/9', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/9', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/10', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/10', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/10', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/10', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/10', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/10', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/10', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/11', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/11', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/11', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/11', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/11', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/11', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/11', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/12', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/12', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/12', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/12', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/12', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/12', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/12', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/13', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/13', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/13', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/13', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/13', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/13', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/13', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/14', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/14', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/14', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/14', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/14', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/14', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/14', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/15', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/15', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/15', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/15', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/15', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/15', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/15', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/16', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/16', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/16', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/16', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/16', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/16', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/16', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/17', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/17', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/17', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/17', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/17', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/17', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/17', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/18', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'bu_product_num'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/18', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'erp_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/18', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/18', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'list_name'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/18', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'location_id'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/18', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'mpn'", + }, + { + meta: { + schemaPath: + '#/properties/properties/properties/products/items/additionalProperties', + instacePath: '/properties/products/18', + }, + type: 'Additional-Properties', + message: "must NOT have additional properties 'pim_id'", + }, + ], + trackingPlanVersion: 2, + }, + rudderId: '0d1f77df-5882-402a-a69f-d2dfe3175ebc', + timestamp: '2023-06-19T19:54:39.188Z', + properties: { + index: 'ecm_stg_product', + list_id: 1100000063100, + queryId: 'eafb6ef1081263626abce46671147dc0', + products: [ + { + mpn: '190RF14X20', + sku: '1367585787601', + name: '14" x 20" Stamped Face Return Air Filter Grille with Removable Face - White', + brand: 'TRUaire', + price: 0, + erp_id: '168782', + pim_id: '1367585787601', + list_id: 1100000063100, + category: 'Grilles', + position: 1, + list_name: 'Grilles', + product_id: '49765', + location_id: 1, + bu_product_num: '49765', + }, + { + mpn: '190RF20X20', + sku: '1367585788656', + name: '20" x 20" Stamped Face Return Air Filter Grille with Removable Face - White', + brand: 'TRUaire', + price: 0, + erp_id: '168790', + pim_id: '1367585788656', + list_id: 1100000063100, + category: 'Grilles', + position: 2, + list_name: 'Grilles', + product_id: '49773', + location_id: 1, + bu_product_num: '49773', + }, + { + mpn: '210VM10X04', + sku: '1367585790735', + name: '10" x 4" Bar Type Supply Sidewall/Ceiling Register - White', + brand: 'TRUaire', + price: 0, + erp_id: '300529', + pim_id: '1367585790735', + list_id: 1100000063100, + category: 'Grilles', + position: 3, + list_name: 'Grilles', + product_id: '300529A', + location_id: 1, + bu_product_num: '300529A', + }, + { + mpn: '17014X06', + sku: '1367585782036', + name: '14" x 6" Stamped Face Return Air Grille - White', + brand: 'TRUaire', + price: 0, + erp_id: '168752', + pim_id: '1367585782036', + list_id: 1100000063100, + category: 'Grilles', + position: 4, + list_name: 'Grilles', + product_id: '49741', + location_id: 1, + bu_product_num: '49741', + }, + { + mpn: '17014X04', + sku: '1367585782285', + name: '14" x 4" Stamped Face Return Air Grille - White', + brand: 'TRUaire', + price: 0, + erp_id: '168751', + pim_id: '1367585782285', + list_id: 1100000063100, + category: 'Grilles', + position: 5, + list_name: 'Grilles', + product_id: '49740', + location_id: 1, + bu_product_num: '49740', + }, + { + mpn: '190RF14X14', + sku: '1367585790111', + name: '14" x 14" Stamped Face Return Air Filter Grille with Removable Face - White', + brand: 'TRUaire', + price: 0, + erp_id: '168781', + pim_id: '1367585790111', + list_id: 1100000063100, + category: 'Grilles', + position: 6, + list_name: 'Grilles', + product_id: '49764', + location_id: 1, + bu_product_num: '49764', + }, + { + mpn: '17014X10', + sku: '1367585783304', + name: '14" x 10" Stamped Face Return Air Grille - White', + brand: 'TRUaire', + price: 0, + erp_id: '168755', + pim_id: '1367585783304', + list_id: 1100000063100, + category: 'Grilles', + position: 7, + list_name: 'Grilles', + product_id: '49743', + location_id: 1, + bu_product_num: '49743', + }, + { + mpn: '210VM12X04', + sku: '1367585791531', + name: '12" x 4" Bar Type Supply Sidewall/Ceiling Register - White', + brand: 'TRUaire', + price: 0, + erp_id: '240862', + pim_id: '1367585791531', + list_id: 1100000063100, + category: 'Grilles', + position: 8, + list_name: 'Grilles', + product_id: '49934', + location_id: 1, + bu_product_num: '49934', + }, + { + mpn: '190RF20X25', + sku: '1367585788307', + name: '20" x 25" Stamped Face Return Air Filter Grille with Removable Face - White', + brand: 'TRUaire', + price: 0, + erp_id: '168791', + pim_id: '1367585788307', + list_id: 1100000063100, + category: 'Grilles', + position: 9, + list_name: 'Grilles', + product_id: '49774', + location_id: 1, + bu_product_num: '49774', + }, + { + mpn: '190RF20X14', + sku: '1367585789457', + name: '20" x 14" Stamped Face Return Air Filter Grille with Removable Face - White', + brand: 'TRUaire', + price: 0, + erp_id: '168788', + pim_id: '1367585789457', + list_id: 1100000063100, + category: 'Grilles', + position: 10, + list_name: 'Grilles', + product_id: '49771', + location_id: 1, + bu_product_num: '49771', + }, + { + mpn: '401M10X04', + sku: '1367585800344', + name: '10" x 4" Stamped Curved Blade Supply Sidewall/Ceiling Register', + brand: 'TRUaire', + price: 0, + erp_id: '300734', + pim_id: '1367585800344', + list_id: 1100000063100, + category: 'Grilles', + position: 11, + list_name: 'Grilles', + product_id: '300734A', + location_id: 1, + bu_product_num: '300734A', + }, + { + mpn: '190RF14X25', + sku: '1367585787467', + name: '14" x 25" Stamped Face Return Air Filter Grille with Removable Face - White', + brand: 'TRUaire', + price: 0, + erp_id: '168783', + pim_id: '1367585787467', + list_id: 1100000063100, + category: 'Grilles', + position: 12, + list_name: 'Grilles', + product_id: '49766', + location_id: 1, + bu_product_num: '49766', + }, + { + mpn: '17020X10', + sku: '1367585783058', + name: '20" x 10" Stamped Face Return Air Grille - White', + brand: 'TRUaire', + price: 0, + erp_id: '219506', + pim_id: '1367585783058', + list_id: 1100000063100, + category: 'Grilles', + position: 13, + list_name: 'Grilles', + product_id: '49881', + location_id: 1, + bu_product_num: '49881', + }, + { + mpn: '17020X08', + sku: '1367585783494', + name: '20" x 8" Stamped Face Return Air Grille - White', + brand: 'TRUaire', + price: 0, + erp_id: '210374', + pim_id: '1367585783494', + list_id: 1100000063100, + category: 'Grilles', + position: 14, + list_name: 'Grilles', + product_id: '210374A', + location_id: 1, + bu_product_num: '210374A', + }, + { + mpn: '190RF12X12', + sku: '1367585787042', + name: '12" x 12" Stamped Face Return Air Filter Grille with Removable Face - White', + brand: 'TRUaire', + price: 0, + erp_id: '168777', + pim_id: '1367585787042', + list_id: 1100000063100, + category: 'Grilles', + position: 15, + list_name: 'Grilles', + product_id: '49761', + location_id: 1, + bu_product_num: '49761', + }, + { + mpn: '210VM14X04', + sku: '1367585793228', + name: '14" x 4" Bar Type Supply Sidewall/Ceiling Register - White', + brand: 'TRUaire', + price: 0, + erp_id: '232771', + pim_id: '1367585793228', + list_id: 1100000063100, + category: 'Grilles', + position: 16, + list_name: 'Grilles', + product_id: '49907', + location_id: 1, + bu_product_num: '49907', + }, + { + mpn: '17014X144', + sku: '1367585783124', + name: '14" x 14" Stamped Face Return Air Grille - White - 4 Holes', + brand: 'TRUaire', + price: 0, + erp_id: '168757', + pim_id: '1367585783124', + list_id: 1100000063100, + category: 'Grilles', + position: 17, + list_name: 'Grilles', + product_id: '49744', + location_id: 1, + bu_product_num: '49744', + }, + { + mpn: '190RF20X30', + sku: '1367585788366', + name: '20" x 30" Stamped Face Return Air Filter Grille with Removable Face - White', + brand: 'TRUaire', + price: 0, + erp_id: '168792', + pim_id: '1367585788366', + list_id: 1100000063100, + category: 'Grilles', + position: 18, + list_name: 'Grilles', + product_id: '49775', + location_id: 1, + bu_product_num: '49775', + }, + { + mpn: '190RF16X25', + sku: '1367585788996', + name: '16" x 25" Stamped Face Return Air Filter Grille with Removable Face - White', + brand: 'TRUaire', + price: 0, + erp_id: '168786', + pim_id: '1367585788996', + list_id: 1100000063100, + category: 'Grilles', + position: 19, + list_name: 'Grilles', + product_id: '49769', + location_id: 1, + bu_product_num: '49769', + }, + ], + eventName: 'productListView', + eventType: 'view', + list_name: 'Grilles', + objectIds: [ + '1367585787601', + '1367585788656', + '1367585790735', + '1367585782036', + '1367585782285', + '1367585790111', + '1367585783304', + '1367585791531', + '1367585788307', + '1367585789457', + '1367585800344', + '1367585787467', + '1367585783058', + '1367585783494', + '1367585787042', + '1367585793228', + '1367585783124', + '1367585788366', + '1367585788996', + ], + positions: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], + userToken: 'anonymous', + }, + receivedAt: '2023-06-19T22:22:32.431Z', + request_ip: '104.205.211.60', + anonymousId: '7b701174-5998-480e-a4df-b322d0ec9d1c', + integrations: { + All: true, + }, + originalTimestamp: '2023-06-19T19:54:41.686Z', + }, + destination: { + secretConfig: {}, + Config: { + apiKey: 'apiKey', + applicationId: 'appId', + eventTypeSettings: [ + { + from: 'productClicked', + to: 'click', + }, + { + from: 'product list filtered', + to: 'click', + }, + { + from: 'Product List Viewed', + to: 'view', + }, + { + from: 'Order Completed', + to: 'conversion', + }, + { + from: 'Product Added', + to: 'click', + }, + ], + oneTrustCookieCategories: [], + eventDelivery: false, + eventDeliveryTS: 1687213909459, + }, + liveEventsConfig: { + eventDelivery: false, + eventDeliveryTS: 1687213909459, + }, + id: 'destId', + workspaceId: 'wspId', + DestinationDefinition: { + Config: { + destConfig: { + defaultConfig: [ + 'apiKey', + 'applicationId', + 'eventTypeSettings', + 'oneTrustCookieCategories', + ], + }, + secretKeys: ['apiKey', 'applicationId'], + excludeKeys: [], + includeKeys: ['oneTrustCookieCategories'], + transformAt: 'router', + cdkV2Enabled: true, + transformAtV1: 'router', + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + 'warehouse', + ], + supportedMessageTypes: ['track'], + saveDestinationResponse: true, + }, + configSchema: {}, + responseRules: {}, + options: null, + id: '1xrHTzX8VrnvL6FTGOrBBgT687S', + name: 'ALGOLIA', + displayName: 'Algolia', + category: null, + createdAt: '2021-09-08T13:04:58.041Z', + updatedAt: '2023-06-13T13:18:08.335Z', + }, + transformations: [], + isConnectionEnabled: true, + isProcessorEnabled: true, + name: 'my_algolia', + enabled: true, + deleted: false, + createdAt: '2023-05-26T14:18:01.205Z', + updatedAt: '2023-06-19T22:31:49.460Z', + revisionId: 'revisionId1', + secretVersion: 7, + }, + metadata: { + sourceId: 'srcId', + workspaceId: 'wspId', + destinationId: 'destId', + jobId: 12, + }, + }, + ], + destType: 'algolia', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: true, + batchedRequest: { + body: { + FORM: {}, + JSON: { + events: [ + { + eventName: 'product list viewed', + eventType: 'view', + index: 'ecm_stg_product', + objectIDs: [ + '1367585787601', + '1367585788656', + '1367585790735', + '1367585782036', + '1367585782285', + '1367585790111', + '1367585783304', + '1367585791531', + '1367585788307', + '1367585789457', + '1367585800344', + '1367585787467', + '1367585783058', + '1367585783494', + '1367585787042', + '1367585793228', + '1367585783124', + '1367585788366', + '1367585788996', + ], + queryID: 'eafb6ef1081263626abce46671147dc0', + userToken: 'anonymous', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://insights.algolia.io/1/events', + files: {}, + headers: { + 'X-Algolia-API-Key': 'apiKey', + 'X-Algolia-Application-Id': 'appId', + }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + destination: { + Config: { + apiKey: 'apiKey', + applicationId: 'appId', + eventDelivery: false, + eventDeliveryTS: 1687213909459, + eventTypeSettings: [ + { + from: 'productClicked', + to: 'click', + }, + { + from: 'product list filtered', + to: 'click', + }, + { + from: 'Product List Viewed', + to: 'view', + }, + { + from: 'Order Completed', + to: 'conversion', + }, + { + from: 'Product Added', + to: 'click', + }, + ], + oneTrustCookieCategories: [], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + destConfig: { + defaultConfig: [ + 'apiKey', + 'applicationId', + 'eventTypeSettings', + 'oneTrustCookieCategories', + ], + }, + excludeKeys: [], + includeKeys: ['oneTrustCookieCategories'], + saveDestinationResponse: true, + secretKeys: ['apiKey', 'applicationId'], + supportedMessageTypes: ['track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + 'warehouse', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + category: null, + configSchema: {}, + createdAt: '2021-09-08T13:04:58.041Z', + displayName: 'Algolia', + id: '1xrHTzX8VrnvL6FTGOrBBgT687S', + name: 'ALGOLIA', + options: null, + responseRules: {}, + updatedAt: '2023-06-13T13:18:08.335Z', + }, + createdAt: '2023-05-26T14:18:01.205Z', + deleted: false, + enabled: true, + id: 'destId', + isConnectionEnabled: true, + isProcessorEnabled: true, + liveEventsConfig: { + eventDelivery: false, + eventDeliveryTS: 1687213909459, + }, + name: 'my_algolia', + revisionId: 'revisionId1', + secretConfig: {}, + secretVersion: 7, + transformations: [], + updatedAt: '2023-06-19T22:31:49.460Z', + workspaceId: 'wspId', + }, + metadata: [ + { + sourceId: 'srcId', + workspaceId: 'wspId', + destinationId: 'destId', + jobId: 12, + }, + ], + statusCode: 200, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/am/dataDelivery/data.ts b/test/integrations/destinations/am/dataDelivery/data.ts new file mode 100644 index 00000000000..a4faa7e60c5 --- /dev/null +++ b/test/integrations/destinations/am/dataDelivery/data.ts @@ -0,0 +1,547 @@ +import { AxiosError } from 'axios'; +import MockAdapter from 'axios-mock-adapter'; +import { isMatch } from 'lodash'; + +// Note: This destination makes use of generic network handler +export const data = [ + { + name: 'am', + description: 'Test 0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://api.amplitude.com/2/httpapi/test1', + method: 'POST', + userId: 'gabi_anonId_45', + headers: { + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + api_key: 'c9d8a13b8bcab46a547f7be5200c483d', + events: [ + { + app_name: 'Rudder-CleverTap_Example', + app_version: '1.0', + time: 1619006730330, + user_id: 'gabi_userId_45', + user_properties: { + Residence: 'Shibuya', + city: 'Tokyo', + country: 'JP', + email: 'gabi29@gmail.com', + gender: 'M', + name: 'User2 Gabi2', + organization: 'Company', + region: 'ABC', + title: 'Owner', + zip: '100-0001', + }, + }, + ], + options: { + min_id_length: 1, + }, + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'am', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + status: 200, + message: + '[Generic Response Handler] Request for destination: am Processed Successfully', + destinationResponse: { + response: { + code: 200, + server_upload_time: 1639235302252, + payload_size_bytes: 863, + events_ingested: 1, + }, + status: 200, + }, + }, + }, + }, + }, + }, + { + name: 'am', + description: 'Test 1', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://api.amplitude.com/2/httpapi/test2', + method: 'POST', + userId: 'gabi_anonId_45', + headers: { + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + api_key: 'c9d8a13b8bcab46a547f7be5200c483d', + events: [ + { + app_name: 'Rudder-CleverTap_Example', + app_version: '1.0', + time: 1619006730330, + user_id: 'gabi_userId_45', + user_properties: { + Residence: 'Shibuya', + city: 'Tokyo', + country: 'JP', + email: 'gabi29@gmail.com', + gender: 'M', + name: 'User2 Gabi2', + organization: 'Company', + region: 'ABC', + title: 'Owner', + zip: '100-0001', + }, + }, + ], + options: { + min_id_length: 1, + }, + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'am', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: + '[Generic Response Handler] Request failed for destination am with status: 400', + destinationResponse: { + response: { + code: 400, + server_upload_time: 1639235302252, + payload_size_bytes: 863, + events_ingested: 0, + }, + status: 400, + }, + statTags: { + destType: 'AM', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'am', + description: 'Test 2', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://api.amplitude.com/2/httpapi/test3', + method: 'POST', + userId: 'gabi_anonId_45', + headers: { + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + api_key: 'c9d8a13b8bcab46a547f7be5200c483d', + events: [ + { + app_name: 'Rudder-CleverTap_Example', + app_version: '1.0', + time: 1619006730330, + user_id: 'gabi_userId_45', + user_properties: { + Residence: 'Shibuya', + city: 'Tokyo', + country: 'JP', + email: 'gabi29@gmail.com', + gender: 'M', + name: 'User2 Gabi2', + organization: 'Company', + region: 'ABC', + title: 'Owner', + zip: '100-0001', + }, + }, + ], + options: { + min_id_length: 1, + }, + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'am', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: + '[Generic Response Handler] Request failed for destination am with status: 400', + destinationResponse: { + response: '[ENOTFOUND] :: DNS lookup failed', + status: 400, + }, + statTags: { + destType: 'AM', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + mockFns: (mockAdapter: MockAdapter) => { + mockAdapter + .onPost( + 'https://api.amplitude.com/2/httpapi/test3', + { + asymmetricMatch: (actual) => { + const expected = { + api_key: 'c9d8a13b8bcab46a547f7be5200c483d', + events: [ + { + app_name: 'Rudder-CleverTap_Example', + app_version: '1.0', + time: 1619006730330, + user_id: 'gabi_userId_45', + user_properties: { + Residence: 'Shibuya', + city: 'Tokyo', + country: 'JP', + email: 'gabi29@gmail.com', + gender: 'M', + name: 'User2 Gabi2', + organization: 'Company', + region: 'ABC', + title: 'Owner', + zip: '100-0001', + }, + }, + ], + options: { min_id_length: 1 }, + }; + const isMatched = isMatch(actual, expected); + return isMatched; + }, + }, + { + asymmetricMatch: (actual) => { + const expected = { 'Content-Type': 'application/json', 'User-Agent': 'RudderLabs' }; + const isMatched = isMatch(actual, expected); + return isMatched; + }, + }, + ) + .replyOnce((config) => { + // @ts-ignore + const err = AxiosError.from('DNS not found', 'ENOTFOUND', config); + return Promise.reject(err); + }); + }, + }, + { + name: 'am', + description: 'Test 3', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://api.amplitude.com/2/httpapi/test4', + method: 'POST', + userId: 'gabi_anonId_45', + headers: { + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + api_key: 'c9d8a13b8bcab46a547f7be5200c483d', + events: [ + { + app_name: 'Rudder-CleverTap_Example', + app_version: '1.0', + time: 1619006730330, + user_id: 'gabi_userId_45', + user_properties: { + Residence: 'Shibuya', + city: 'Tokyo', + country: 'JP', + email: 'gabi29@gmail.com', + gender: 'M', + name: 'User2 Gabi2', + organization: 'Company', + region: 'ABC', + title: 'Owner', + zip: '100-0001', + }, + }, + ], + options: { + min_id_length: 1, + }, + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'am', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: + '[Generic Response Handler] Request failed for destination am with status: 400', + destinationResponse: { + response: '', + status: 400, + }, + statTags: { + destType: 'AM', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'am', + description: 'Test 4', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://api.amplitude.com/2/httpapi/test5', + method: 'POST', + userId: 'gabi_anonId_45', + headers: { + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + api_key: 'c9d8a13b8bcab46a547f7be5200c483d', + events: [ + { + app_name: 'Rudder-CleverTap_Example', + app_version: '1.0', + time: 1619006730330, + user_id: 'gabi_userId_45', + user_properties: { + Residence: 'Shibuya', + city: 'Tokyo', + country: 'JP', + email: 'gabi29@gmail.com', + gender: 'M', + name: 'User2 Gabi2', + organization: 'Company', + region: 'ABC', + title: 'Owner', + zip: '100-0001', + }, + }, + ], + options: { + min_id_length: 1, + }, + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'am', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + body: { + output: { + status: 500, + message: + '[Generic Response Handler] Request failed for destination am with status: 500', + destinationResponse: { + response: '', + status: 500, + }, + statTags: { + destType: 'AM', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'am', + description: 'Test 5', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://api.amplitude.com/2/httpapi/test6', + method: 'POST', + userId: 'gabi_anonId_45', + headers: { + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + api_key: 'c9d8a13b8bcab46a547f7be5200c483d', + events: [ + { + app_name: 'Rudder-CleverTap_Example', + app_version: '1.0', + time: 1619006730330, + user_id: 'gabi_userId_45', + user_properties: { + Residence: 'Shibuya', + city: 'Tokyo', + country: 'JP', + email: 'gabi29@gmail.com', + gender: 'M', + name: 'User2 Gabi2', + organization: 'Company', + region: 'ABC', + title: 'Owner', + zip: '100-0001', + }, + }, + ], + options: { + min_id_length: 1, + }, + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'am', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + body: { + output: { + status: 500, + message: + '[Generic Response Handler] Request failed for destination am with status: 500', + destinationResponse: { + response: '', + status: 500, + }, + statTags: { + destType: 'AM', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/am/deleteUsers/data.ts b/test/integrations/destinations/am/deleteUsers/data.ts new file mode 100644 index 00000000000..bd10a4d7e05 --- /dev/null +++ b/test/integrations/destinations/am/deleteUsers/data.ts @@ -0,0 +1,396 @@ +export const data = [ + { + name: 'am', + description: 'Test 0', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + jobId: '423451324652346', + destType: 'AM', + userAttributes: [ + { + userIderror: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + ], + config: { + apiKey: '1234', + apiSecret: 'abcd', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/am/network.ts b/test/integrations/destinations/am/network.ts new file mode 100644 index 00000000000..5cd016069c7 --- /dev/null +++ b/test/integrations/destinations/am/network.ts @@ -0,0 +1,416 @@ +const deleteNwData = [ + { + httpReq: { + method: 'post', + url: 'https://amplitude.com/api/2/deletions/users', + data: { + user_ids: [ + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + ], + requester: 'RudderStack', + ignore_invalid_id: 'true', + }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic MTIzNDphYmNk', + }, + }, + httpRes: { + data: { + code: 403, + message: 'HTTP 403: Forbidden (Invalid API Key)', + status: 'Forbidden', + }, + status: 400, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://amplitude.com/api/2/deletions/users', + data: { + user_ids: [ + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + ], + requester: 'RudderStack', + ignore_invalid_id: 'true', + }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic MTIzNDphYmNk', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': 'Nothing scheduled due to invalid amplitude/user ids for app XXXXX', + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://amplitude.com/api/2/deletions/users', + data: { + userIds: ['Batch1'], + }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic MTIzNDphYmNk', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': 'Mocking', + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://amplitude.com/api/2/deletions/users', + data: { + userIds: ['Batch2'], + }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic MTIzNDphYmNk', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': 'Mocking', + }, + }, + }, +]; + +const deliveryNwData = [ + { + httpReq: { + url: 'https://api.amplitude.com/2/httpapi/test1', + data: { + api_key: 'c9d8a13b8bcab46a547f7be5200c483d', + events: [ + { + app_name: 'Rudder-CleverTap_Example', + app_version: '1.0', + time: 1619006730330, + user_id: 'gabi_userId_45', + user_properties: { + Residence: 'Shibuya', + city: 'Tokyo', + country: 'JP', + email: 'gabi29@gmail.com', + gender: 'M', + name: 'User2 Gabi2', + organization: 'Company', + region: 'ABC', + title: 'Owner', + zip: '100-0001', + }, + }, + ], + options: { min_id_length: 1 }, + }, + params: { destination: 'am' }, + headers: { 'Content-Type': 'application/json', 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: { + data: { + code: 200, + server_upload_time: 1639235302252, + payload_size_bytes: 863, + events_ingested: 1, + }, + status: 200, + statusText: 'OK', + headers: { + date: 'Sat, 11 Dec 2021 15:08:22 GMT', + 'content-type': 'application/json', + 'content-length': '93', + connection: 'keep-alive', + 'access-control-allow-origin': '*', + 'access-control-allow-methods': 'GET, POST', + 'strict-transport-security': 'max-age=15768000', + }, + }, + }, + { + httpReq: { + url: 'https://api.amplitude.com/2/httpapi/test2', + data: { + api_key: 'c9d8a13b8bcab46a547f7be5200c483d', + events: [ + { + app_name: 'Rudder-CleverTap_Example', + app_version: '1.0', + time: 1619006730330, + user_id: 'gabi_userId_45', + user_properties: { + Residence: 'Shibuya', + city: 'Tokyo', + country: 'JP', + email: 'gabi29@gmail.com', + gender: 'M', + name: 'User2 Gabi2', + organization: 'Company', + region: 'ABC', + title: 'Owner', + zip: '100-0001', + }, + }, + ], + options: { + min_id_length: 1, + }, + }, + params: { destination: 'am' }, + headers: { 'Content-Type': 'application/json', 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: { + data: { + code: 400, + server_upload_time: 1639235302252, + payload_size_bytes: 863, + events_ingested: 0, + }, + status: 400, + statusText: 'Bad Request', + headers: { + date: 'Sat, 11 Dec 2021 15:08:22 GMT', + 'content-type': 'application/json', + 'content-length': '93', + connection: 'keep-alive', + 'access-control-allow-origin': '*', + 'access-control-allow-methods': 'GET, POST', + 'strict-transport-security': 'max-age=15768000', + }, + }, + }, + { + httpReq: { + url: 'https://api.amplitude.com/2/httpapi/test4', + data: { + api_key: 'c9d8a13b8bcab46a547f7be5200c483d', + events: [ + { + app_name: 'Rudder-CleverTap_Example', + app_version: '1.0', + time: 1619006730330, + user_id: 'gabi_userId_45', + user_properties: { + Residence: 'Shibuya', + city: 'Tokyo', + country: 'JP', + email: 'gabi29@gmail.com', + gender: 'M', + name: 'User2 Gabi2', + organization: 'Company', + region: 'ABC', + title: 'Owner', + zip: '100-0001', + }, + }, + ], + options: { min_id_length: 1 }, + }, + params: { destination: 'am' }, + headers: { 'Content-Type': 'application/json', 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: { status: 400, statusText: 'Bad Request' }, + }, + { + httpReq: { + url: 'https://api.amplitude.com/2/httpapi/test5', + data: { + api_key: 'c9d8a13b8bcab46a547f7be5200c483d', + events: [ + { + app_name: 'Rudder-CleverTap_Example', + app_version: '1.0', + time: 1619006730330, + user_id: 'gabi_userId_45', + user_properties: { + Residence: 'Shibuya', + city: 'Tokyo', + country: 'JP', + email: 'gabi29@gmail.com', + gender: 'M', + name: 'User2 Gabi2', + organization: 'Company', + region: 'ABC', + title: 'Owner', + zip: '100-0001', + }, + }, + ], + options: { min_id_length: 1 }, + }, + params: { destination: 'am' }, + headers: { 'Content-Type': 'application/json', 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: {}, + }, + { + httpReq: { + url: 'https://api.amplitude.com/2/httpapi/test6', + data: { + api_key: 'c9d8a13b8bcab46a547f7be5200c483d', + events: [ + { + app_name: 'Rudder-CleverTap_Example', + app_version: '1.0', + time: 1619006730330, + user_id: 'gabi_userId_45', + user_properties: { + Residence: 'Shibuya', + city: 'Tokyo', + country: 'JP', + email: 'gabi29@gmail.com', + gender: 'M', + name: 'User2 Gabi2', + organization: 'Company', + region: 'ABC', + title: 'Owner', + zip: '100-0001', + }, + }, + ], + options: { min_id_length: 1 }, + }, + params: { destination: 'am' }, + headers: { 'Content-Type': 'application/json', 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: {}, + }, +]; + +export const networkCallsData = [...deleteNwData, ...deliveryNwData]; diff --git a/test/integrations/destinations/appcues/processor/data.ts b/test/integrations/destinations/appcues/processor/data.ts new file mode 100644 index 00000000000..ab47e5c857f --- /dev/null +++ b/test/integrations/destinations/appcues/processor/data.ts @@ -0,0 +1,1387 @@ +export const data = [ + { + name: 'appcues', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '33787665-4168-4acc-8df7-17ba79325332', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.9', + }, + campaign: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.9', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/rudder-sdk-js/tests/html/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:4321/rudder-sdk-js/tests/html/script-test.html', + }, + screen: { + density: 2, + }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '6a5f38c0-4e75-4268-a066-2b73fbcad01f', + originalTimestamp: '2021-01-04T08:25:04.780Z', + receivedAt: '2021-01-04T13:55:04.799+05:30', + request_ip: '[::1]', + rudderId: '79881a62-980a-4d76-89ca-7099440f8c13', + sentAt: '2021-01-04T08:25:04.781Z', + timestamp: '2021-01-04T13:55:04.798+05:30', + type: 'identify', + userId: 'onlyUserId', + }, + destination: { + Config: { + accountId: '86086', + useNativeSDK: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + request_id: '6a5f38c0-4e75-4268-a066-2b73fbcad01f', + profile_update: {}, + }, + }, + type: 'REST', + files: {}, + method: 'POST', + userId: '', + params: {}, + headers: { + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.appcues.com/v1/accounts/86086/users/onlyUserId/activity', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'appcues', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '33787665-4168-4acc-8df7-17ba79325332', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.9', + }, + campaign: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.9', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/rudder-sdk-js/tests/html/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:4321/rudder-sdk-js/tests/html/script-test.html', + }, + screen: { + density: 2, + }, + traits: { + 'first name': 'John', + 'last name': 'Abraham', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '57494c6a-3c62-4b30-83aa-6e821d37ac75', + originalTimestamp: '2021-01-04T08:25:04.786Z', + receivedAt: '2021-01-04T13:55:04.799+05:30', + request_ip: '[::1]', + rudderId: 'ed2ed08a-3cd9-4b2c-9b04-7e3d3501fab7', + sentAt: '2021-01-04T08:25:04.787Z', + timestamp: '2021-01-04T13:55:04.798+05:30', + type: 'identify', + userId: 'userIdWithProperties', + }, + destination: { + Config: { + accountId: '86086', + useNativeSDK: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + request_id: '57494c6a-3c62-4b30-83aa-6e821d37ac75', + profile_update: { + 'last name': 'Abraham', + 'first name': 'John', + }, + }, + }, + type: 'REST', + files: {}, + method: 'POST', + userId: '', + params: {}, + headers: { + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: + 'https://api.appcues.com/v1/accounts/86086/users/userIdWithProperties/activity', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'appcues', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '59f2911c-f050-497d-9f80-e1696a3c56aa', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.9', + }, + campaign: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.9', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/rudder-sdk-js/tests/html/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:4321/rudder-sdk-js/tests/html/script-test.html', + }, + screen: { + density: 2, + }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', + }, + event: 'eventWithoutProperties', + integrations: { + All: true, + }, + messageId: '045f5107-6036-4557-ae17-6ddf5ee57eb6', + originalTimestamp: '2021-01-04T08:33:07.004Z', + properties: {}, + receivedAt: '2021-01-04T14:03:07.009+05:30', + request_ip: '[::1]', + rudderId: '9b6b8204-292c-493b-9c08-2c3ec0ade688', + sentAt: '2021-01-04T08:33:07.005Z', + timestamp: '2021-01-04T14:03:07.008+05:30', + type: 'track', + userId: 'sampleId', + }, + destination: { + Config: { + accountId: '86086', + useNativeSDK: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + events: [ + { + name: 'eventWithoutProperties', + timestamp: 1609749187, + attributes: {}, + }, + ], + request_id: '045f5107-6036-4557-ae17-6ddf5ee57eb6', + }, + }, + type: 'REST', + files: {}, + method: 'POST', + userId: '', + params: {}, + headers: { + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.appcues.com/v1/accounts/86086/users/sampleId/activity', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'appcues', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '59f2911c-f050-497d-9f80-e1696a3c56aa', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.9', + }, + campaign: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.9', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/rudder-sdk-js/tests/html/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:4321/rudder-sdk-js/tests/html/script-test.html', + }, + screen: { + density: 2, + }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', + }, + event: 'eventWithProperties', + integrations: { + All: true, + }, + messageId: '4b99c45d-8591-473c-b79d-abd466f6f4d5', + originalTimestamp: '2021-01-04T08:33:07.006Z', + properties: { + category: 'blah', + }, + receivedAt: '2021-01-04T14:03:07.026+05:30', + request_ip: '[::1]', + rudderId: '9b6b8204-292c-493b-9c08-2c3ec0ade688', + sentAt: '2021-01-04T08:33:07.006Z', + timestamp: '2021-01-04T14:03:07.026+05:30', + type: 'track', + userId: 'sampleId', + }, + destination: { + Config: { + accountId: '86086', + useNativeSDK: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + events: [ + { + name: 'eventWithProperties', + timestamp: 1609749187, + attributes: { + category: 'blah', + }, + }, + ], + request_id: '4b99c45d-8591-473c-b79d-abd466f6f4d5', + }, + }, + type: 'REST', + files: {}, + method: 'POST', + userId: '', + params: {}, + headers: { + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.appcues.com/v1/accounts/86086/users/sampleId/activity', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'appcues', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'a4a6304a-df41-4ca9-b2b7-4b0009dfddaa', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.9', + }, + campaign: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.9', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/rudder-sdk-js/tests/html/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:4321/rudder-sdk-js/tests/html/script-test.html', + }, + screen: { + density: 2, + }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '75a9e08b-955a-4dc7-8a39-3f6fba9d7497', + originalTimestamp: '2021-01-04T08:43:05.783Z', + properties: { + path: '/rudder-sdk-js/tests/html/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:4321/rudder-sdk-js/tests/html/script-test.html', + }, + receivedAt: '2021-01-04T14:13:05.800+05:30', + request_ip: '[::1]', + rudderId: '2d03081c-8053-4cce-9abf-bb024f747900', + sentAt: '2021-01-04T08:43:05.783Z', + timestamp: '2021-01-04T14:13:05.799+05:30', + type: 'page', + userId: 'sampleId', + }, + destination: { + Config: { + accountId: '86086', + useNativeSDK: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + events: [ + { + name: 'Visited a Page', + context: { + url: 'http://localhost:4321/rudder-sdk-js/tests/html/script-test.html', + }, + timestamp: 1609749785, + attributes: { + url: 'http://localhost:4321/rudder-sdk-js/tests/html/script-test.html', + path: '/rudder-sdk-js/tests/html/script-test.html', + _identity: { + userId: 'sampleId', + }, + }, + }, + ], + request_id: '75a9e08b-955a-4dc7-8a39-3f6fba9d7497', + profile_update: { + _appcuesId: '86086', + _updatedAt: '2021-01-04T14:13:05.799+05:30', + _userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', + _currentPageUrl: + 'http://localhost:4321/rudder-sdk-js/tests/html/script-test.html', + _lastBrowserLanguage: 'en-GB', + userId: 'sampleId', + }, + }, + }, + type: 'REST', + files: {}, + method: 'POST', + userId: '', + params: {}, + headers: { + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.appcues.com/v1/accounts/86086/users/sampleId/activity', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'appcues', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'a4a6304a-df41-4ca9-b2b7-4b0009dfddaa', + category: 'page category', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.9', + }, + campaign: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.9', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/testing', + referrer: '', + search: '', + title: '', + url: 'https://pagecall.com/testing', + }, + screen: { + density: 2, + }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '397fdf96-daee-46c8-ac38-5d717cd8cabd', + name: 'page name', + originalTimestamp: '2021-01-04T08:43:05.784Z', + properties: { + category: 'page category', + name: 'page name', + path: '/testing', + referrer: '', + search: '', + title: '', + url: 'https://pagecall.com/testing', + }, + receivedAt: '2021-01-04T14:13:05.801+05:30', + request_ip: '[::1]', + rudderId: '2d03081c-8053-4cce-9abf-bb024f747900', + sentAt: '2021-01-04T08:43:05.784Z', + timestamp: '2021-01-04T14:13:05.801+05:30', + type: 'page', + userId: 'sampleId', + }, + destination: { + Config: { + accountId: '86086', + useNativeSDK: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + events: [ + { + name: 'Visited a Page', + context: { + url: 'https://pagecall.com/testing', + }, + timestamp: 1609749785, + attributes: { + url: 'https://pagecall.com/testing', + name: 'page name', + path: '/testing', + category: 'page category', + _identity: { + userId: 'sampleId', + }, + }, + }, + ], + request_id: '397fdf96-daee-46c8-ac38-5d717cd8cabd', + profile_update: { + _appcuesId: '86086', + _updatedAt: '2021-01-04T14:13:05.801+05:30', + _userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', + _currentPageUrl: 'https://pagecall.com/testing', + _lastBrowserLanguage: 'en-GB', + userId: 'sampleId', + }, + }, + }, + type: 'REST', + files: {}, + method: 'POST', + userId: '', + params: {}, + headers: { + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.appcues.com/v1/accounts/86086/users/sampleId/activity', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'appcues', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'a4a6304a-df41-4ca9-b2b7-4b0009dfddaa', + category: 'page category', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.9', + }, + campaign: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.9', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/testing', + referrer: '', + search: '', + }, + screen: { + density: 2, + }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '397fdf96-daee-46c8-ac38-5d717cd8cabd', + name: 'page name', + originalTimestamp: '2021-01-04T08:43:05.784Z', + properties: { + category: 'page category', + name: 'page name', + path: '/testing', + referrer: '', + search: '', + title: 'properties title', + url: 'https://pagecall.com/properties_url', + }, + receivedAt: '2021-01-04T14:13:05.801+05:30', + request_ip: '[::1]', + rudderId: '2d03081c-8053-4cce-9abf-bb024f747900', + sentAt: '2021-01-04T08:43:05.784Z', + timestamp: '2021-01-04T14:13:05.801+05:30', + type: 'page', + userId: 'sampleId', + }, + destination: { + Config: { + accountId: '86086', + useNativeSDK: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '', + method: 'POST', + endpoint: 'https://api.appcues.com/v1/accounts/86086/users/sampleId/activity', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + request_id: '397fdf96-daee-46c8-ac38-5d717cd8cabd', + profile_update: { + userId: 'sampleId', + _lastBrowserLanguage: 'en-GB', + _updatedAt: '2021-01-04T14:13:05.801+05:30', + _userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', + _currentPageTitle: 'properties title', + _currentPageUrl: 'https://pagecall.com/properties_url', + _appcuesId: '86086', + }, + events: [ + { + timestamp: 1609749785, + attributes: { + category: 'page category', + name: 'page name', + path: '/testing', + title: 'properties title', + url: 'https://pagecall.com/properties_url', + _identity: { + userId: 'sampleId', + }, + }, + name: 'Visited a Page', + context: { + url: 'https://pagecall.com/properties_url', + }, + }, + ], + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'appcues', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'a4a6304a-df41-4ca9-b2b7-4b0009dfddaa', + category: 'page category', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.9', + }, + campaign: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.9', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/testing', + referrer: '', + search: '', + title: 'context title', + url: 'https://pagecall.com/context_url', + }, + screen: { + density: 2, + }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '397fdf96-daee-46c8-ac38-5d717cd8cabd', + name: 'page name', + originalTimestamp: '2021-01-04T08:43:05.784Z', + properties: { + category: 'page category', + name: 'page name', + path: '/testing', + referrer: '', + search: '', + }, + receivedAt: '2021-01-04T14:13:05.801+05:30', + request_ip: '[::1]', + rudderId: '2d03081c-8053-4cce-9abf-bb024f747900', + sentAt: '2021-01-04T08:43:05.784Z', + timestamp: '2021-01-04T14:13:05.801+05:30', + type: 'page', + userId: 'sampleId', + }, + destination: { + Config: { + accountId: '86086', + useNativeSDK: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + userId: '', + endpoint: 'https://api.appcues.com/v1/accounts/86086/users/sampleId/activity', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + request_id: '397fdf96-daee-46c8-ac38-5d717cd8cabd', + profile_update: { + userId: 'sampleId', + _lastBrowserLanguage: 'en-GB', + _updatedAt: '2021-01-04T14:13:05.801+05:30', + _userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', + _currentPageTitle: 'context title', + _currentPageUrl: 'https://pagecall.com/context_url', + _appcuesId: '86086', + }, + events: [ + { + timestamp: 1609749785, + attributes: { + category: 'page category', + name: 'page name', + path: '/testing', + _identity: { + userId: 'sampleId', + }, + }, + name: 'Visited a Page', + context: { + url: 'https://pagecall.com/context_url', + }, + }, + ], + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'appcues', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AppcuesIntegration', + namespace: 'com.Appcues', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.1-beta.1', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '8.1.0', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5094f5704b9cf2b3', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { + All: true, + }, + messageId: 'id1', + properties: { + name: 'MainActivity', + automatic: true, + }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + userId: 'sampleId', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { + accountId: '86086', + useNativeSDK: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + userId: '', + endpoint: 'https://api.appcues.com/v1/accounts/86086/users/sampleId/activity', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + request_id: 'id1', + events: [ + { + name: 'Viewed a Screen', + timestamp: 1584003903, + attributes: { + name: 'MainActivity', + automatic: true, + }, + }, + ], + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'appcues', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AppcuesIntegration', + namespace: 'com.Appcues', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.1-beta.1', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '8.1.0', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5094f5704b9cf2b3', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { + All: true, + }, + messageId: 'id1', + properties: { + name: 'MainActivity', + automatic: true, + }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { + accountId: '86086', + useNativeSDK: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'User id is absent. Aborting event as userId is mandatory for Appcues', + statTags: { + destType: 'APPCUES', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'appcues', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AppcuesIntegration', + namespace: 'com.Appcues', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.1-beta.1', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '8.1.0', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5094f5704b9cf2b3', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { + All: true, + }, + messageId: 'id1', + properties: { + name: 'MainActivity', + automatic: true, + }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: '', + userId: 'sampleId', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { + accountId: '86086', + useNativeSDK: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Message Type is not present. Aborting message.', + statTags: { + destType: 'APPCUES', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'appcues', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/html/sajal.html', + referrer: '', + search: + '?utm_source=google&utm_medium=medium&utm_term=keyword&utm_content=some%20content&utm_campaign=some%20campaign&utm_test=other%20value', + title: '', + url: 'http://localhost:9116/html/sajal.html?utm_source=google&utm_medium=medium&utm_term=keyword&utm_content=some%20content&utm_campaign=some%20campaign&utm_test=other%20value', + }, + }, + type: 'group', + messageId: 'e5034df0-a404-47b4-a463-76df99934fea', + originalTimestamp: '2020-10-20T07:54:58.983Z', + anonymousId: 'my-anonymous-id-new', + userId: 'sampleusrRudder3', + integrations: { + All: true, + }, + groupId: 'Sample_groupId23', + traits: { + KEY_3: { + CHILD_KEY_92: 'value_95', + CHILD_KEY_102: 'value_103', + }, + KEY_2: { + CHILD_KEY_92: 'value_95', + CHILD_KEY_102: 'value_103', + }, + name_trait: 'Company', + value_trait: 'Comapny-ABC', + }, + sentAt: '2020-10-20T07:54:58.983Z', + }, + destination: { + Config: { + accountId: '86086', + useNativeSDK: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Message type is not supported', + statTags: { + destType: 'APPCUES', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/appcues/router/data.ts b/test/integrations/destinations/appcues/router/data.ts new file mode 100644 index 00000000000..ddc8dddf57c --- /dev/null +++ b/test/integrations/destinations/appcues/router/data.ts @@ -0,0 +1,221 @@ +export const data = [ + { + name: 'appcues', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: '33787665-4168-4acc-8df7-17ba79325332', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.9', + }, + campaign: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.9', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/rudder-sdk-js/tests/html/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:4321/rudder-sdk-js/tests/html/script-test.html', + }, + screen: { + density: 2, + }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '6a5f38c0-4e75-4268-a066-2b73fbcad01f', + originalTimestamp: '2021-01-04T08:25:04.780Z', + receivedAt: '2021-01-04T13:55:04.799+05:30', + request_ip: '[::1]', + rudderId: '79881a62-980a-4d76-89ca-7099440f8c13', + sentAt: '2021-01-04T08:25:04.781Z', + timestamp: '2021-01-04T13:55:04.798+05:30', + type: 'identify', + userId: 'onlyUserId', + }, + metadata: { + jobId: 1, + }, + destination: { + Config: { + accountId: '86086', + useNativeSDK: false, + }, + }, + }, + { + message: { + anonymousId: '33787665-4168-4acc-8df7-17ba79325332', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.9', + }, + campaign: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.9', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/rudder-sdk-js/tests/html/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:4321/rudder-sdk-js/tests/html/script-test.html', + }, + screen: { + density: 2, + }, + traits: { + 'first name': 'John', + 'last name': 'Abraham', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '57494c6a-3c62-4b30-83aa-6e821d37ac75', + originalTimestamp: '2021-01-04T08:25:04.786Z', + receivedAt: '2021-01-04T13:55:04.799+05:30', + request_ip: '[::1]', + rudderId: 'ed2ed08a-3cd9-4b2c-9b04-7e3d3501fab7', + sentAt: '2021-01-04T08:25:04.787Z', + timestamp: '2021-01-04T13:55:04.798+05:30', + type: 'identify', + userId: 'userIdWithProperties', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + accountId: '86086', + useNativeSDK: false, + }, + }, + }, + ], + destType: 'appcues', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + request_id: '6a5f38c0-4e75-4268-a066-2b73fbcad01f', + profile_update: {}, + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.appcues.com/v1/accounts/86086/users/onlyUserId/activity', + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + accountId: '86086', + useNativeSDK: false, + }, + }, + }, + { + batchedRequest: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + request_id: '57494c6a-3c62-4b30-83aa-6e821d37ac75', + profile_update: { + 'last name': 'Abraham', + 'first name': 'John', + }, + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: + 'https://api.appcues.com/v1/accounts/86086/users/userIdWithProperties/activity', + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + accountId: '86086', + useNativeSDK: false, + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/attentive_tag/processor/data.ts b/test/integrations/destinations/attentive_tag/processor/data.ts new file mode 100644 index 00000000000..f585fb58d8c --- /dev/null +++ b/test/integrations/destinations/attentive_tag/processor/data.ts @@ -0,0 +1,1681 @@ +export const mockFns = (_) => { + jest.useFakeTimers().setSystemTime(new Date('2023-10-14')); +}; + +export const data = [ + { + name: 'attentive_tag', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + locale: 'en-GB', + traits: { + email: 'a@gmail.com', + phone: '+16405273911', + customIdentifiers: [ + { + name: 'string', + value: 'string', + }, + ], + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'e108eb05-f6cd-4624-ba8c-568f2e2b3f92', + receivedAt: '2023-10-14T09:03:17.562Z', + type: 'identify', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '241654', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '', + method: 'POST', + endpoint: 'https://api.attentivemobile.com/v1/subscriptions', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + user: { + phone: '+16405273911', + email: 'a@gmail.com', + }, + signUpSourceId: '241654', + externalIdentifiers: { + customIdentifiers: [ + { + name: 'string', + value: 'string', + }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'attentive_tag', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + phone: '+16465053911', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'clientUserId', + id: '144', + }, + { + type: 'shopifyId', + id: '224', + }, + { + type: 'klaviyoId', + id: '132', + }, + ], + }, + type: 'track', + properties: { + price: '12', + currency: 'USD', + 'product,id': 'r494', + quantity: '34', + variant: 'f', + }, + event: 'Order Shipped', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2023-10-14T09:03:17.562Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '240654', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: '[Attentive_Tag]: Events must be sent within 12 hours of their occurrence.', + statTags: { + destType: 'ATTENTIVE_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'attentive_tag', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + locale: 'en-GB', + os: { + name: '', + version: '', + }, + traits: { + company: { + id: 'abc123', + }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + phone: '+16465453911', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { + All: true, + attentive_tag: { + signUpSourceId: '241654', + identifyOperation: 'unsubscribe', + }, + }, + messageId: 'e108eb05-f6cd-4624-ba8c-568f2e2b3f92', + receivedAt: '2020-10-16T13:56:14.945+05:30', + type: 'identify', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '241654', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '', + method: 'POST', + endpoint: 'https://api.attentivemobile.com/v1/subscriptions/unsubscribe', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + user: { + phone: '+16465453911', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'attentive_tag', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'clientUserId', + id: '144', + }, + { + type: 'shopifyId', + id: '143', + }, + { + type: 'klaviyoId', + id: '142', + }, + ], + }, + type: 'track', + properties: { + price: '12', + currency: 'USD', + product_id: 'r494', + quantity: '34', + products: [ + { + product_id: '507f1f77bcf86cd799439011', + name: 'MOBILE', + variant: 'green', + price: '19', + quantity: '2', + currency: 'USD', + }, + ], + }, + event: 'Order Completed', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '240654', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: '[Attentive_Tag]: Events must be sent within 12 hours of their occurrence.', + statTags: { + destType: 'ATTENTIVE_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'attentive_tag', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + phone: '+16465053911', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'clientUserId', + id: 1, + }, + { + type: 'shopifyId', + id: 1, + }, + { + type: 'klaviyoId', + id: 1, + }, + ], + }, + type: 'track', + properties: { + price: '12', + currency: 'USD', + product_id: 'r494', + quantity: '34', + products: [ + { + product_id: '507f1f77bcf86cd799439011', + name: 'MOBILE', + variant: 'green', + price: '19', + quantity: '2', + currency: 'USD', + }, + ], + }, + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '240654', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: '[Attentive Tag] :: Event name is not present', + statTags: { + destType: 'ATTENTIVE_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'attentive_tag', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + phone: '+16465053911', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'clientUserId', + id: '144', + }, + { + type: 'shopifyId', + id: '143', + }, + { + type: 'klaviyoId', + id: '142', + }, + ], + }, + type: 'track', + properties: { + price: '12', + currency: 'USD', + product_id: 'r494', + quantity: '34', + products: [ + { + product_id: '507f1f77bcf86cd799439011', + name: 'MOBILE', + variant: 'green', + price: '19', + quantity: '2', + currency: 'USD', + }, + ], + }, + event: 'Product List Viewed', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '240654', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: '[Attentive_Tag]: Events must be sent within 12 hours of their occurrence.', + statTags: { + destType: 'ATTENTIVE_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'attentive_tag', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + phone: '+16465053911', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'clientUserId', + id: '144', + }, + { + type: 'shopifyId', + id: '143', + }, + { + type: 'klaviyoId', + id: '142', + }, + ], + }, + type: 'track', + properties: { + price: '12', + currency: 'USD', + product_id: 'r494', + quantity: '34', + products: [ + { + product_id: '507f1f77bcf86cd799439011', + name: 'MOBILE', + variant: 'green', + price: '19', + quantity: '2', + currency: 'USD', + }, + ], + }, + event: 'Product Viewed', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '240654', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: '[Attentive_Tag]: Events must be sent within 12 hours of their occurrence.', + statTags: { + destType: 'ATTENTIVE_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'attentive_tag', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + phone: '+16465053911', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'clientUserId', + id: '144', + }, + { + type: 'shopifyId', + id: '224', + }, + { + type: 'klaviyoId', + id: '132', + }, + ], + }, + type: 'track', + properties: { + price: '12', + currency: 'USD', + product_id: 'r494', + quantity: '34', + }, + event: 'Order Shipped', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '240654', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: '[Attentive_Tag]: Events must be sent within 12 hours of their occurrence.', + statTags: { + destType: 'ATTENTIVE_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'attentive_tag', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + phone: '+16465053911', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'clientUserId', + id: 1, + }, + { + type: 'shopifyId', + id: 1, + }, + { + type: 'klaviyoId', + id: 1, + }, + ], + }, + properties: { + price: '12', + currency: 'USD', + product_id: 'r494', + quantity: '34', + products: [ + { + product_id: '507f1f77bcf86cd799439011', + name: 'MOBILE', + variant: 'green', + price: '19', + quantity: '2', + currency: 'USD', + }, + ], + }, + event: 'Order Completed', + originalTimestamp: '2023-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2023-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '240654', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Message Type is not present. Aborting message.', + statTags: { + destType: 'ATTENTIVE_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'attentive_tag', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + locale: 'en-GB', + os: { + name: '', + version: '', + }, + traits: { + company: { + id: 'abc123', + }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'test0@gmail.com', + phone: '+16465453911', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { + All: true, + attentive_tag: { + signUpSourceId: '241654', + identifyOperation: 'subscribe', + }, + }, + messageId: 'e108eb05-f6cd-4624-ba8c-568f2e2b3f92', + receivedAt: '2023-10-14T13:56:14.945+05:30', + type: 'identify', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '241654', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '', + method: 'POST', + endpoint: 'https://api.attentivemobile.com/v1/subscriptions', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + user: { + phone: '+16465453911', + email: 'test0@gmail.com', + }, + signUpSourceId: '241654', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'attentive_tag', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'clientUserId', + id: '144', + }, + { + type: 'shopifyId', + id: '143', + }, + { + type: 'klaviyoId', + id: '142', + }, + ], + }, + type: 'track', + properties: { + price: '12', + currency: 'USD', + product_id: 'r494', + quantity: '34', + products: [ + { + product_id: '507f1f77bcf86cd799439011', + name: 'MOBILE', + variant: 'green', + price: '19', + quantity: '2', + currency: 'USD', + }, + ], + }, + event: 'Product Viewed', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '240654', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: '[Attentive_Tag]: Events must be sent within 12 hours of their occurrence.', + statTags: { + destType: 'ATTENTIVE_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'attentive_tag', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + phone: '+16465053911', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'clientUserId', + id: '144', + }, + { + type: 'shopifyId', + id: '143', + }, + { + type: 'klaviyoId', + id: '142', + }, + ], + }, + type: 'track', + properties: { + price: '12', + currency: 'USD', + quantity: '34', + products: [ + { + name: 'MOBILE', + variant: 'green', + price: '19', + quantity: '2', + currency: 'USD', + }, + ], + }, + event: 'Product Viewed', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '240654', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from "product_id"', + statTags: { + destType: 'ATTENTIVE_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'attentive_tag', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + phone: '+16465053911', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'clientUserId', + id: '144', + }, + { + type: 'shopifyId', + id: '143', + }, + { + type: 'klaviyoId', + id: '142', + }, + ], + }, + type: 'track', + properties: { + price: '12', + currency: 'USD', + product_id: 'r494', + quantity: '34', + products: [ + { + product_id: '507f1f77bcf86cd799439011', + name: 'MOBILE', + price: '19', + quantity: '2', + currency: 'USD', + }, + ], + }, + event: 'Product Viewed', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '240654', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Missing required value from "variant"', + statTags: { + destType: 'ATTENTIVE_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + }, + ], + }, + }, + }, + { + name: 'attentive_tag', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + phone: '+16465053911', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'clientUserId', + id: '144', + }, + { + type: 'shopifyId', + id: '143', + }, + { + type: 'klaviyoId', + id: '142', + }, + ], + }, + type: 'track', + properties: { + price: '12', + 'curre,ncy': 'USD', + product_id: 'r494', + quantity: '34', + products: [ + { + product_id: '507f1f77bcf86cd799439011', + name: 'MOBILE', + variant: 'green', + price: '19', + quantity: '2', + currency: 'USD', + }, + ], + }, + event: 'Order Shipped', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '240654', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: '[Attentive Tag]:The event name contains characters which is not allowed', + statTags: { + destType: 'ATTENTIVE_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + }, + ], + }, + }, + }, + { + name: 'attentive_tag', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + locale: 'en-GB', + os: { + name: '', + version: '', + }, + traits: { + company: { + id: 'abc123', + }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'test0@gmail.com', + phone: '+16465453911', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { + All: true, + attentive_tag: { + signUpSourceId: '241654', + }, + }, + messageId: 'e108eb05-f6cd-4624-ba8c-568f2e2b3f92', + receivedAt: '2020-10-16T13:56:14.945+05:30', + type: 'identify', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '241654', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '', + method: 'POST', + endpoint: 'https://api.attentivemobile.com/v1/subscriptions', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + user: { + phone: '+16465453911', + email: 'test0@gmail.com', + }, + signUpSourceId: '241654', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'attentive_tag', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + properties: { + price: '12', + currency: 'USD', + product_id: 'r494', + quantity: '34', + products: [ + { + product_id: '507f1f77bcf86cd799439011', + name: 'MOBILE', + variant: 'green', + price: '19', + quantity: '2', + currency: 'USD', + }, + ], + }, + event: 'Product Viewed', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '240654', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + userId: '', + endpoint: 'https://api.attentivemobile.com/v1/events/ecommerce/product-view', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + user: {}, + items: [ + { + productId: '507f1f77bcf86cd799439011', + name: 'MOBILE', + productVariantId: 'green', + quantity: '2', + price: [ + { + value: 19, + currency: 'USD', + }, + ], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/attentive_tag/router/data.ts b/test/integrations/destinations/attentive_tag/router/data.ts new file mode 100644 index 00000000000..c52a6ed2e3d --- /dev/null +++ b/test/integrations/destinations/attentive_tag/router/data.ts @@ -0,0 +1,122 @@ +export const data = [ + { + name: 'attentive_tag', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '241654', + }, + }, + metadata: { + jobId: 1, + }, + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + locale: 'en-GB', + os: { + name: '', + version: '', + }, + traits: { + company: { + id: 'abc123', + }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'test0@gmail.com', + phone: '+16465453911', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + externalId: [ + { + type: 'clientUsrId', + id: 1, + }, + { + type: 'shopifyId', + id: 1, + }, + { + type: 'klaviyoId', + id: 1, + }, + ], + }, + integrations: { + All: true, + attentive_tag: { + signUpSourceId: '241654', + identifyOperation: 'unsubscribe', + }, + }, + messageId: 'e108eb05-f6cd-4624-ba8c-568f2e2b3f92', + receivedAt: '2020-10-16T13:56:14.945+05:30', + type: 'identify', + }, + }, + ], + destType: 'attentive_tag', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.attentivemobile.com/v1/subscriptions/unsubscribe', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + user: { + phone: '+16465453911', + email: 'test0@gmail.com', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + signUpSourceId: '241654', + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/autopilot/processor/data.ts b/test/integrations/destinations/autopilot/processor/data.ts new file mode 100644 index 00000000000..135e3e22f74 --- /dev/null +++ b/test/integrations/destinations/autopilot/processor/data.ts @@ -0,0 +1,1275 @@ +export const data = [ + { + name: 'autopilot', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1afjtc6chkhdeKsXYrNFOzR5D9v', + Name: 'Autopilot', + DestinationDefinition: { + ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', + Name: 'AUTOPILOT', + DisplayName: 'Autopilot', + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + customMappings: [ + { + from: '0001', + to: 'Signup', + }, + ], + triggerId: '00XX', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'fad9b3fb-5778-4db3-9fb6-7168b554191f', + originalTimestamp: '2020-04-17T14:42:44.722Z', + receivedAt: '2020-04-17T20:12:44.758+05:30', + request_ip: '[::1]:53513', + sentAt: '2020-04-17T14:42:44.722Z', + traits: { + age: 23, + email: 'testmp@rudderstack.com', + firstname: 'Test Kafka', + }, + timestamp: '2020-04-17T20:12:44.758+05:30', + type: 'identify', + userId: 'user12345', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api2.autopilothq.com/v1/contact', + headers: { + Accept: 'application/json', + autopilotapikey: 'dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + contact: { + Email: 'testmp@rudderstack.com', + FirstName: 'Test Kafka', + custom: { + age: 23, + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'autopilot', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1afjtc6chkhdeKsXYrNFOzR5D9v', + Name: 'Autopilot', + DestinationDefinition: { + ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', + Name: 'AUTOPILOT', + DisplayName: 'Autopilot', + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + customMappings: [ + { + from: '0001', + to: 'Signup', + }, + ], + triggerId: '00XX', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'testmp@rudderstack.com', + firstname: 'Test Kafka', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + event: 'test track with property', + integrations: { + All: true, + }, + messageId: '37b75e61-9bd2-4fb8-91ed-e3a064905f3a', + originalTimestamp: '2020-04-17T14:42:44.724Z', + properties: { + test_prop_1: 'test prop', + test_prop_2: 1232, + }, + receivedAt: '2020-04-17T20:12:44.758+05:30', + request_ip: '[::1]:53512', + sentAt: '2020-04-17T14:42:44.725Z', + timestamp: '2020-04-17T20:12:44.757+05:30', + type: 'track', + userId: 'user12345', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://api2.autopilothq.com/v1/trigger/00XX/contact/testmp@rudderstack.com', + headers: { + Accept: 'application/json', + autopilotapikey: 'dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + property: { + test_prop_1: 'test prop', + test_prop_2: 1232, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'autopilot', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1afjtc6chkhdeKsXYrNFOzR5D9v', + Name: 'Autopilot', + DestinationDefinition: { + ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', + Name: 'AUTOPILOT', + DisplayName: 'Autopilot', + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + customMappings: [ + { + from: '0001', + to: 'Signup', + }, + ], + triggerId: '00XX', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'testmp@rudderstack.com', + firstname: 'Test Kafka', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + event: 'test track with property', + integrations: { + All: true, + }, + messageId: '37b75e61-9bd2-4fb8-91ed-e3a064905f3a', + originalTimestamp: '2020-04-17T14:42:44.724Z', + properties: { + test_prop_1: 'test prop', + test_prop_2: 1232, + }, + receivedAt: '2020-04-17T20:12:44.758+05:30', + request_ip: '[::1]:53512', + sentAt: '2020-04-17T14:42:44.725Z', + timestamp: '2020-04-17T20:12:44.757+05:30', + type: 'page', + userId: 'user12345', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'message type page is not supported: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message type page is not supported', + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'AUTOPILOT', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'autopilot', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1afjtc6chkhdeKsXYrNFOzR5D9v', + Name: 'Autopilot', + DestinationDefinition: { + ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', + Name: 'AUTOPILOT', + DisplayName: 'Autopilot', + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + customMappings: [ + { + from: '0001', + to: 'Signup', + }, + ], + triggerId: '00XX', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + firstname: 'Test Kafka', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + event: 'test track with property', + integrations: { + All: true, + }, + messageId: '37b75e61-9bd2-4fb8-91ed-e3a064905f3a', + originalTimestamp: '2020-04-17T14:42:44.724Z', + properties: { + test_prop_1: 'test prop', + test_prop_2: 1232, + }, + receivedAt: '2020-04-17T20:12:44.758+05:30', + request_ip: '[::1]:53512', + sentAt: '2020-04-17T14:42:44.725Z', + timestamp: '2020-04-17T20:12:44.757+05:30', + type: 'track', + userId: 'user12345', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'Email is required for track calls: Workflow: procWorkflow, Step: preparePayloadForTrack, ChildStep: undefined, OriginalError: Email is required for track calls', + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'AUTOPILOT', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'autopilot', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1afjtc6chkhdeKsXYrNFOzR5D9v', + Name: 'Autopilot', + DestinationDefinition: { + ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', + Name: 'AUTOPILOT', + DisplayName: 'Autopilot', + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + customMappings: [ + { + from: '0001', + to: 'Signup', + }, + ], + triggerId: '00XX', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + firstname: 'Test Kafka', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + event: 'test track with property', + integrations: { + All: true, + }, + messageId: '37b75e61-9bd2-4fb8-91ed-e3a064905f3a', + originalTimestamp: '2020-04-17T14:42:44.724Z', + properties: { + test_prop_1: 'test prop', + test_prop_2: 1232, + }, + receivedAt: '2020-04-17T20:12:44.758+05:30', + request_ip: '[::1]:53512', + sentAt: '2020-04-17T14:42:44.725Z', + timestamp: '2020-04-17T20:12:44.757+05:30', + userId: 'user12345', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'message Type is not present. Aborting message.: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message Type is not present. Aborting message.', + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'AUTOPILOT', + module: 'destination', + implementation: 'cdkV2', + destinationId: 'destId', + workspaceId: 'wspId', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'autopilot', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1afjtc6chkhdeKsXYrNFOzR5D9v', + Name: 'Autopilot', + DestinationDefinition: { + ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', + Name: 'AUTOPILOT', + DisplayName: 'Autopilot', + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + customMappings: [ + { + from: '0001', + to: 'Signup', + }, + ], + triggerId: '00XX', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'testmp@rudderstack.com', + firstname: 'Test Kafka', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + event: 'test track with property', + integrations: { + All: true, + }, + messageId: '37b75e61-9bd2-4fb8-91ed-e3a064905f3a', + originalTimestamp: '2020-04-17T14:42:44.724Z', + properties: { + test_prop_1: 'test prop', + test_prop_2: 1232, + }, + receivedAt: '2020-04-17T20:12:44.758+05:30', + request_ip: '[::1]:53512', + sentAt: '2020-04-17T14:42:44.725Z', + timestamp: '2020-04-17T20:12:44.757+05:30', + type: 'group', + userId: 'user12345', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'message type group is not supported: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message type group is not supported', + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'AUTOPILOT', + module: 'destination', + implementation: 'cdkV2', + destinationId: 'destId', + workspaceId: 'wspId', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'autopilot', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1afjtc6chkhdeKsXYrNFOzR5D9v', + Name: 'Autopilot', + DestinationDefinition: { + ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', + Name: 'AUTOPILOT', + DisplayName: 'Autopilot', + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + customMappings: [ + { + from: '0001', + to: 'Signup', + }, + ], + triggerId: '00XX', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + traits: { + email: 'abc@rudderstack.com', + firstname: 'Anuraj', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + integrations: { + All: true, + }, + originalTimestamp: '2020-04-17T14:42:44.722Z', + receivedAt: '2020-04-17T20:12:44.758+05:30', + request_ip: '[::1]:53513', + sentAt: '2020-04-17T14:42:44.722Z', + timestamp: '2020-04-17T20:12:44.758+05:30', + type: 'identify', + userId: 'user12345', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api2.autopilothq.com/v1/contact', + headers: { + Accept: 'application/json', + autopilotapikey: 'dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + contact: { + Email: 'abc@rudderstack.com', + FirstName: 'Anuraj', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'autopilot', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1afjtc6chkhdeKsXYrNFOzR5D9v', + Name: 'Autopilot', + DestinationDefinition: { + ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', + Name: 'AUTOPILOT', + DisplayName: 'Autopilot', + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + customMappings: [ + { + from: '0001', + to: 'Signup', + }, + ], + triggerId: '00XX', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'testmp@rudderstack.com', + firstname: 'Test Kafka', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + event: 'test track with property', + integrations: { + All: true, + }, + messageId: '37b75e61-9bd2-4fb8-91ed-e3a064905f3a', + originalTimestamp: '2020-04-17T14:42:44.724Z', + properties: { + test_prop_1: 'test prop', + test_prop_2: 1232, + }, + receivedAt: '2020-04-17T20:12:44.758+05:30', + request_ip: '[::1]:53512', + sentAt: '2020-04-17T14:42:44.725Z', + timestamp: '2020-04-17T20:12:44.757+05:30', + userId: 'user12345', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'message Type is not present. Aborting message.: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message Type is not present. Aborting message.', + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'AUTOPILOT', + module: 'destination', + implementation: 'cdkV2', + destinationId: 'destId', + workspaceId: 'wspId', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'autopilot', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1afjtc6chkhdeKsXYrNFOzR5D9v', + Name: 'Autopilot', + DestinationDefinition: { + ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', + Name: 'AUTOPILOT', + DisplayName: 'Autopilot', + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + customMappings: [ + { + from: '0001', + to: 'Signup', + }, + ], + triggerId: '00XX', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + traits: { + email: 'abc@rudderstack.com', + firstname: 'Anuraj', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + integrations: { + All: true, + }, + originalTimestamp: '2020-04-17T14:42:44.722Z', + receivedAt: '2020-04-17T20:12:44.758+05:30', + request_ip: '[::1]:53513', + sentAt: '2020-04-17T14:42:44.722Z', + timestamp: '2020-04-17T20:12:44.758+05:30', + type: 'group', + userId: 'user12345', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'message type group is not supported: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message type group is not supported', + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'AUTOPILOT', + module: 'destination', + implementation: 'cdkV2', + destinationId: 'destId', + workspaceId: 'wspId', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'autopilot', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1afjtc6chkhdeKsXYrNFOzR5D9v', + Name: 'Autopilot', + DestinationDefinition: { + ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', + Name: 'AUTOPILOT', + DisplayName: 'Autopilot', + Config: { + cdkV2Enabled: true, + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + customMappings: [ + { + from: '0001', + to: 'Signup', + }, + ], + triggerId: '00XX', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + traits: { + email: 'abc@rudderstack.com', + firstname: 'Anuraj', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + integrations: { + All: true, + }, + originalTimestamp: '2020-04-17T14:42:44.722Z', + receivedAt: '2020-04-17T20:12:44.758+05:30', + request_ip: '[::1]:53513', + sentAt: '2020-04-17T14:42:44.722Z', + timestamp: '2020-04-17T20:12:44.758+05:30', + type: 'Tals', + userId: 'user12345', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'message type Tals is not supported: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message type Tals is not supported', + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'AUTOPILOT', + module: 'destination', + implementation: 'cdkV2', + destinationId: 'destId', + workspaceId: 'wspId', + feature: 'processor', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/autopilot/router/data.ts b/test/integrations/destinations/autopilot/router/data.ts new file mode 100644 index 00000000000..cbfe0c42075 --- /dev/null +++ b/test/integrations/destinations/autopilot/router/data.ts @@ -0,0 +1,317 @@ +export const data = [ + { + name: 'autopilot', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + ID: '1afjtc6chkhdeKsXYrNFOzR5D9v', + Name: 'Autopilot', + DestinationDefinition: { + ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', + Name: 'AUTOPILOT', + DisplayName: 'Autopilot', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + customMappings: [ + { + from: '0001', + to: 'Signup', + }, + ], + triggerId: '00XX', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + jobId: 1, + }, + message: { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'fad9b3fb-5778-4db3-9fb6-7168b554191f', + originalTimestamp: '2020-04-17T14:42:44.722Z', + receivedAt: '2020-04-17T20:12:44.758+05:30', + request_ip: '[::1]:53513', + sentAt: '2020-04-17T14:42:44.722Z', + traits: { + age: 23, + email: 'testmp@rudderstack.com', + firstname: 'Test Kafka', + }, + timestamp: '2020-04-17T20:12:44.758+05:30', + type: 'identify', + userId: 'user12345', + }, + }, + { + destination: { + ID: '1afjtc6chkhdeKsXYrNFOzR5D9v', + Name: 'Autopilot', + DestinationDefinition: { + ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', + Name: 'AUTOPILOT', + DisplayName: 'Autopilot', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + customMappings: [ + { + from: '0001', + to: 'Signup', + }, + ], + triggerId: '00XX', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + jobId: 2, + }, + message: { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'testmp@rudderstack.com', + firstname: 'Test Kafka', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + event: 'test track with property', + integrations: { + All: true, + }, + messageId: '37b75e61-9bd2-4fb8-91ed-e3a064905f3a', + originalTimestamp: '2020-04-17T14:42:44.724Z', + properties: { + test_prop_1: 'test prop', + test_prop_2: 1232, + }, + receivedAt: '2020-04-17T20:12:44.758+05:30', + request_ip: '[::1]:53512', + sentAt: '2020-04-17T14:42:44.725Z', + timestamp: '2020-04-17T20:12:44.757+05:30', + type: 'track', + userId: 'user12345', + }, + }, + ], + destType: 'autopilot', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api2.autopilothq.com/v1/contact', + headers: { + autopilotapikey: 'dummyApiKey', + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + contact: { + Email: 'testmp@rudderstack.com', + FirstName: 'Test Kafka', + custom: { + age: 23, + }, + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + ID: '1afjtc6chkhdeKsXYrNFOzR5D9v', + Name: 'Autopilot', + DestinationDefinition: { + ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', + Name: 'AUTOPILOT', + DisplayName: 'Autopilot', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + customMappings: [ + { + from: '0001', + to: 'Signup', + }, + ], + triggerId: '00XX', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://api2.autopilothq.com/v1/trigger/00XX/contact/testmp@rudderstack.com', + headers: { + autopilotapikey: 'dummyApiKey', + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + property: { + test_prop_1: 'test prop', + test_prop_2: 1232, + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + ID: '1afjtc6chkhdeKsXYrNFOzR5D9v', + Name: 'Autopilot', + DestinationDefinition: { + ID: '1afjX4MlAucK57Q0ctTVlD27Tvo', + Name: 'AUTOPILOT', + DisplayName: 'Autopilot', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + apiKey: 'dummyApiKey', + customMappings: [ + { + from: '0001', + to: 'Signup', + }, + ], + triggerId: '00XX', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/azure_event_hub/processor/data.ts b/test/integrations/destinations/azure_event_hub/processor/data.ts new file mode 100644 index 00000000000..2f7acf742e6 --- /dev/null +++ b/test/integrations/destinations/azure_event_hub/processor/data.ts @@ -0,0 +1,835 @@ +export const data = [ + { + name: 'azure_event_hub', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1cCz8hts5rp3YWglzhU1GPmVdjE', + Name: 'Azure Event Hub', + DestinationDefinition: { + ID: '1cCs4qQ72QY8vovP7BlJ47mkjBh', + Name: 'AZURE_EVENT_HUB', + DisplayName: 'Azure Event Hub', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: null, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + event: 'Purchase', + integrations: { + All: true, + }, + messageId: 'ce46866c-6f19-42f0-86cb-18c51863b817', + originalTimestamp: '2020-05-21T10:23:15.984Z', + properties: { + currency: 'USD', + revenue: 100, + }, + receivedAt: '2020-05-21T15:53:16.013+05:30', + request_ip: '[::1]:59371', + sentAt: '2020-05-21T10:23:15.985Z', + timestamp: '2020-05-21T15:53:16.012+05:30', + type: 'track', + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 46, + messageId: 'ce46866c-6f19-42f0-86cb-18c51863b817', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + event: 'Purchase', + integrations: { + All: true, + }, + messageId: 'ce46866c-6f19-42f0-86cb-18c51863b817', + originalTimestamp: '2020-05-21T10:23:15.984Z', + properties: { + currency: 'USD', + revenue: 100, + }, + receivedAt: '2020-05-21T15:53:16.013+05:30', + request_ip: '[::1]:59371', + sentAt: '2020-05-21T10:23:15.985Z', + timestamp: '2020-05-21T15:53:16.012+05:30', + type: 'track', + userId: 'user-12345', + }, + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 46, + messageId: 'ce46866c-6f19-42f0-86cb-18c51863b817', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'azure_event_hub', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1cCz8hts5rp3YWglzhU1GPmVdjE', + Name: 'Azure Event Hub', + DestinationDefinition: { + ID: '1cCs4qQ72QY8vovP7BlJ47mkjBh', + Name: 'AZURE_EVENT_HUB', + DisplayName: 'Azure Event Hub', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: null, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'e02dafb0-9df8-4fa2-becd-f4d8617956a4', + originalTimestamp: '2020-05-21T10:23:15.975Z', + properties: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + receivedAt: '2020-05-21T15:53:16.014+05:30', + request_ip: '[::1]:58616', + sentAt: '2020-05-21T10:23:15.975Z', + timestamp: '2020-05-21T15:53:16.014+05:30', + type: 'page', + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 47, + messageId: 'e02dafb0-9df8-4fa2-becd-f4d8617956a4', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'e02dafb0-9df8-4fa2-becd-f4d8617956a4', + originalTimestamp: '2020-05-21T10:23:15.975Z', + properties: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + receivedAt: '2020-05-21T15:53:16.014+05:30', + request_ip: '[::1]:58616', + sentAt: '2020-05-21T10:23:15.975Z', + timestamp: '2020-05-21T15:53:16.014+05:30', + type: 'page', + userId: 'user-12345', + }, + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 47, + messageId: 'e02dafb0-9df8-4fa2-becd-f4d8617956a4', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'azure_event_hub', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1cCz8hts5rp3YWglzhU1GPmVdjE', + Name: 'Azure Event Hub', + DestinationDefinition: { + ID: '1cCs4qQ72QY8vovP7BlJ47mkjBh', + Name: 'AZURE_EVENT_HUB', + DisplayName: 'Azure Event Hub', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: null, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '41b62b30-db5d-450c-98ed-cec14ead27cc', + originalTimestamp: '2020-05-21T10:23:15.979Z', + receivedAt: '2020-05-21T15:53:16.014+05:30', + request_ip: '[::1]:59372', + sentAt: '2020-05-21T10:23:15.979Z', + timestamp: '2020-05-21T15:53:16.014+05:30', + type: 'identify', + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 48, + messageId: '41b62b30-db5d-450c-98ed-cec14ead27cc', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '41b62b30-db5d-450c-98ed-cec14ead27cc', + originalTimestamp: '2020-05-21T10:23:15.979Z', + receivedAt: '2020-05-21T15:53:16.014+05:30', + request_ip: '[::1]:59372', + sentAt: '2020-05-21T10:23:15.979Z', + timestamp: '2020-05-21T15:53:16.014+05:30', + type: 'identify', + userId: 'user-12345', + }, + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 48, + messageId: '41b62b30-db5d-450c-98ed-cec14ead27cc', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'azure_event_hub', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1cCz8hts5rp3YWglzhU1GPmVdjE', + Name: 'Azure Event Hub', + DestinationDefinition: { + ID: '1cCs4qQ72QY8vovP7BlJ47mkjBh', + Name: 'AZURE_EVENT_HUB', + DisplayName: 'Azure Event Hub', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: null, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + event: 'test track without property', + integrations: { + All: true, + }, + messageId: 'c409577d-5dd4-430a-8965-a20aed7b9c9e', + originalTimestamp: '2020-05-21T10:23:15.981Z', + properties: {}, + receivedAt: '2020-05-21T15:53:16.014+05:30', + request_ip: '[::1]:59374', + sentAt: '2020-05-21T10:23:15.981Z', + timestamp: '2020-05-21T15:53:16.014+05:30', + type: 'track', + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 49, + messageId: 'c409577d-5dd4-430a-8965-a20aed7b9c9e', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + event: 'test track without property', + integrations: { + All: true, + }, + messageId: 'c409577d-5dd4-430a-8965-a20aed7b9c9e', + originalTimestamp: '2020-05-21T10:23:15.981Z', + properties: {}, + receivedAt: '2020-05-21T15:53:16.014+05:30', + request_ip: '[::1]:59374', + sentAt: '2020-05-21T10:23:15.981Z', + timestamp: '2020-05-21T15:53:16.014+05:30', + type: 'track', + userId: 'user-12345', + }, + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 49, + messageId: 'c409577d-5dd4-430a-8965-a20aed7b9c9e', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'azure_event_hub', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1cCz8hts5rp3YWglzhU1GPmVdjE', + Name: 'Azure Event Hub', + DestinationDefinition: { + ID: '1cCs4qQ72QY8vovP7BlJ47mkjBh', + Name: 'AZURE_EVENT_HUB', + DisplayName: 'Azure Event Hub', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: null, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + event: 'test track with property', + integrations: { + All: true, + }, + messageId: 'f8b6e882-3186-446a-b589-51eba60930d7', + originalTimestamp: '2020-05-21T10:23:15.982Z', + properties: { + test_prop_1: 'test prop', + test_prop_2: 1232, + }, + receivedAt: '2020-05-21T15:53:16.014+05:30', + request_ip: '[::1]:59373', + sentAt: '2020-05-21T10:23:15.983Z', + timestamp: '2020-05-21T15:53:16.013+05:30', + type: 'track', + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 50, + messageId: 'f8b6e882-3186-446a-b589-51eba60930d7', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + event: 'test track with property', + integrations: { + All: true, + }, + messageId: 'f8b6e882-3186-446a-b589-51eba60930d7', + originalTimestamp: '2020-05-21T10:23:15.982Z', + properties: { + test_prop_1: 'test prop', + test_prop_2: 1232, + }, + receivedAt: '2020-05-21T15:53:16.014+05:30', + request_ip: '[::1]:59373', + sentAt: '2020-05-21T10:23:15.983Z', + timestamp: '2020-05-21T15:53:16.013+05:30', + type: 'track', + userId: 'user-12345', + }, + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 50, + messageId: 'f8b6e882-3186-446a-b589-51eba60930d7', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/blueshift/processor/data.ts b/test/integrations/destinations/blueshift/processor/data.ts new file mode 100644 index 00000000000..d489a38bd68 --- /dev/null +++ b/test/integrations/destinations/blueshift/processor/data.ts @@ -0,0 +1,1991 @@ +export const data = [ + { + name: 'blueshift', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + eventApiKey: 'efeb4a29aba5e75d99c8a18acd620ec1', + dataCenter: 'standard', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'hardik', + email: 'hardik@rudderstack.com', + cookie: '1234abcd-efghklkj-1234kfjadslk-34iu123', + industry: 'Education', + employees: 399, + plan: 'enterprise', + 'total billed': 830, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + }, + type: 'group', + messageId: 'e5034df0-a404-47b4-a463-76df99934fea', + anonymousId: 'my-anonymous-id-new', + userId: 'sampleusrRudder7', + traits: { + groupType: 'company', + name_trait: 'Company', + value_trait: 'Comapny-ABC', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Missing required value from "groupId"', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'BLUESHIFT', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'blueshift', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + eventApiKey: 'efeb4a29aba5e75d99c8a18acd620ec1', + usersApiKey: 'b4a29aba5e75duic8a18acd920ec1e2e', + dataCenter: 'standard', + }, + }, + message: { + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'hardik', + email: 'hardik@rudderstack.com', + cookie: '1234abcd-efghklkj-1234kfjadslk-34iu123', + industry: 'Education', + employees: 399, + plan: 'enterprise', + 'total billed': 830, + }, + }, + type: 'group', + userId: 'rudderstack8', + groupId: '35838', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getblueshift.com/api/v1/event', + headers: { + Authorization: 'Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + group_id: '35838', + customer_id: 'rudderstack8', + email: 'hardik@rudderstack.com', + event: 'identify', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'blueshift', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + eventApiKey: 'efeb4a29aba5e75d99c8a18acd620ec1', + usersApiKey: 'b4a29aba5e75d99c8a18acd920ec1e2e', + dataCenter: 'standard', + }, + }, + message: { + context: { + ip: '14.5.67.21', + device: { + adTrackingEnabled: true, + advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'Android', + attTrackingStatus: 3, + }, + os: { + name: 'Android', + version: '9', + }, + network: { + bluetooth: false, + carrier: 'Android', + cellular: true, + wifi: true, + }, + address: { + city: 'kolkata', + country: 'India', + postalCode: 789223, + latitude: '37.7672319', + longitude: '-122.4021353', + state: 'WB', + street: 'rajnagar', + }, + }, + properties: { + cookie: '1234abcd-efghijkj-1234kfjadslk-34iu123', + }, + messageId: '34abcd-efghijkj-1234kf', + type: 'track', + event: 'identify', + userId: 'sampleusrRudder7', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getblueshift.com/api/v1/event', + headers: { + Authorization: 'Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + customer_id: 'sampleusrRudder7', + event: 'identify', + device_type: 'Android', + device_id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + device_idfa: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + device_idfv: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + device_manufacturer: 'Google', + os_name: 'Android', + network_carrier: 'Android', + ip: '14.5.67.21', + latitude: '37.7672319', + longitude: '-122.4021353', + event_uuid: '34abcd-efghijkj-1234kf', + cookie: '1234abcd-efghijkj-1234kfjadslk-34iu123', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'blueshift', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + eventApiKey: 'efeb4a29aba5e75d99c8a18acd620ec1', + usersApiKey: 'b4a29aba5e75duic8a18acd920ec1e2e', + dataCenter: 'standard', + }, + }, + message: { + type: 'track', + event: 'Product Viewed', + properties: { + cookie: '1234abcd-efghijkj-1234kfjadslk-34iu123', + checkout_id: 'C324532', + order_id: 'T1230', + value: 15.98, + revenue: 16.98, + shipping: 3, + coupon: 'FY21', + currency: 'INR', + products: [ + { + product_id: 'product-mixedfruit-jam', + sku: 'sku-1', + category: 'Food', + name: 'Food/Drink', + brand: 'Sample', + variant: 'None', + price: 10, + quantity: 2, + currency: 'INR', + position: 1, + value: 6, + typeOfProduct: 'Food', + url: 'https://www.example.com/product/bacon-jam', + image_url: 'https://www.example.com/product/bacon-jam.jpg', + }, + ], + }, + context: { + app: { + build: '1', + name: 'RudderAndroidClient', + namespace: 'com.rudderstack.demo.android', + version: '1.0', + }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '0.1.4', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Mumbai', + traits: { + anonymousId: '7e32188a4dab669f', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + }, + }, + messageId: '34abcd-efghijkj-1234kf', + userId: 'sampleRudderstack9', + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getblueshift.com/api/v1/event', + headers: { + Authorization: 'Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event: 'view', + device_type: 'android', + device_id: '7e32188a4dab669f', + device_idfv: '7e32188a4dab669f', + device_manufacturer: 'Google', + os_name: 'Android', + network_carrier: 'Android', + cookie: '1234abcd-efghijkj-1234kfjadslk-34iu123', + checkout_id: 'C324532', + order_id: 'T1230', + value: 15.98, + revenue: 16.98, + shipping: 3, + coupon: 'FY21', + currency: 'INR', + products: [ + { + product_id: 'product-mixedfruit-jam', + sku: 'sku-1', + category: 'Food', + name: 'Food/Drink', + brand: 'Sample', + variant: 'None', + price: 10, + quantity: 2, + currency: 'INR', + position: 1, + value: 6, + typeOfProduct: 'Food', + url: 'https://www.example.com/product/bacon-jam', + image_url: 'https://www.example.com/product/bacon-jam.jpg', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'blueshift', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + eventApiKey: 'efeb4a29aba5e75d99c8a18acd620ec1', + usersApiKey: 'b4a29aba5e75duic8a18acd920ec1e2e', + dataCenter: 'eu', + }, + }, + message: { + type: 'track', + event: 'Products Searched', + properties: { + description: 'Sneaker purchase', + brand: 'Victory Sneakers', + colors: ['red', 'blue'], + items: [ + { + text: 'New Line Sneakers', + price: '$ 79.95', + }, + { + text: 'Old Line Sneakers', + price: '$ 79.95', + }, + { + text: 'Blue Line Sneakers', + price: '$ 79.95', + }, + ], + name: 'Hugh Manbeing', + userLocation: { + state: 'CO', + zip: '80202', + }, + }, + context: { + app: { + build: '1', + name: 'RudderAndroidClient', + namespace: 'com.rudderstack.demo.android', + version: '1.0', + }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '0.1.4', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Mumbai', + traits: { + anonymousId: '7e32188a4dab669f', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + }, + }, + messageId: '34abcd-efghijkj-1234kf', + userId: 'sampleRudderstack9', + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.eu.getblueshift.com/api/v1/event', + headers: { + Authorization: 'Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event: 'search', + device_type: 'android', + device_id: '7e32188a4dab669f', + device_idfv: '7e32188a4dab669f', + device_manufacturer: 'Google', + os_name: 'Android', + network_carrier: 'Android', + description: 'Sneaker purchase', + brand: 'Victory Sneakers', + colors: ['red', 'blue'], + items: [ + { + text: 'New Line Sneakers', + price: '$ 79.95', + }, + { + text: 'Old Line Sneakers', + price: '$ 79.95', + }, + { + text: 'Blue Line Sneakers', + price: '$ 79.95', + }, + ], + name: 'Hugh Manbeing', + userLocation: { + state: 'CO', + zip: '80202', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'blueshift', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + usersApiKey: 'b4a29aba5e75d99c8a18acd920ec1e2e', + dataCenter: 'standard', + }, + }, + message: { + type: 'track', + event: 'Product_purchased', + properties: { + cookie: '1234abcd-efghijkj-1234kfjadslk-34iu123', + }, + messageId: '34abcd-efghijkj-1234kf', + context: { + ip: '14.5.67.21', + device: { + adTrackingEnabled: true, + advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'Android', + attTrackingStatus: 3, + }, + os: { + name: 'Android', + version: '9', + }, + network: { + bluetooth: false, + carrier: 'Android', + cellular: true, + wifi: true, + }, + address: { + city: 'kolkata', + country: 'India', + postalCode: 789223, + latitude: '37.7672319', + longitude: '-122.4021353', + state: 'WB', + street: 'rajnagar', + }, + }, + userId: 'sampleRudderstack9', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: '[BLUESHIFT] event Api Keys required for Authentication.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'BLUESHIFT', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'blueshift', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + eventApiKey: 'a5e75d99c8a18acb4a29abd920ec1e2e', + usersApiKey: 'b4a29aba5e75d99c8a18acd920ec1e2e', + dataCenter: 'standard', + }, + }, + message: { + type: 'identify', + event: 'Product_purchased', + properties: { + cookie: '1234abcd-efghijkj-1234kfjadslk-34iu123', + }, + messageId: '34abcd-efghijkj-1234kf', + context: { + ip: '14.5.67.21', + device: { + adTrackingEnabled: true, + advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'Android', + attTrackingStatus: 3, + }, + os: { + name: 'Android', + version: '9', + }, + network: { + bluetooth: false, + carrier: 'Android', + cellular: true, + wifi: true, + }, + address: { + city: 'kolkata', + country: 'India', + postalCode: 789223, + latitude: '37.7672319', + longitude: '-122.4021353', + state: 'WB', + street: 'rajnagar', + }, + }, + userId: 'sampleRudderstack9', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Missing required value from "email"', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'BLUESHIFT', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'blueshift', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + eventApiKey: 'a5e75d99c8a18acb4a29abd920ec1e2e', + usersApiKey: 'b4a29aba5e75d99c8a18acd920ec1e2e', + dataCenter: 'standard', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'chandan@companyname.com', + userId: 'rudder123', + anonymousId: 'anon_id', + name: 'James Doe', + phone: '92374162212', + gender: 'M', + firstname: 'James', + lastname: 'Doe', + employed: true, + birthday: '1614775793', + education: 'Science', + graduate: true, + married: true, + customerType: 'Prime', + msg_push: true, + msgSms: true, + msgemail: true, + msgwhatsapp: false, + custom_tags: ['Test_User', 'Interested_User', 'DIY_Hobby'], + custom_mappings: { + Office: 'Trastkiv', + Country: 'Russia', + }, + address: { + city: 'kolkata', + country: 'India', + postalCode: 789223, + state: 'WB', + street: '', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getblueshift.com/api/v1/customers', + headers: { + Authorization: 'Basic YjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q5MjBlYzFlMmU=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + email: 'chandan@companyname.com', + customer_id: 'rudder123', + phone_number: '92374162212', + firstname: 'James', + lastname: 'Doe', + gender: 'M', + userId: 'rudder123', + anonymousId: 'anon_id', + name: 'James Doe', + employed: true, + birthday: '1614775793', + education: 'Science', + graduate: true, + married: true, + customerType: 'Prime', + msg_push: true, + msgSms: true, + msgemail: true, + msgwhatsapp: false, + custom_tags: ['Test_User', 'Interested_User', 'DIY_Hobby'], + custom_mappings: { + Office: 'Trastkiv', + Country: 'Russia', + }, + address: { + city: 'kolkata', + country: 'India', + postalCode: 789223, + state: 'WB', + street: '', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'blueshift', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + eventApiKey: 'a5e75d99c8a18acb4a29abd920ec1e2e', + dataCenter: 'eu', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'chandan@companyname.com', + userId: 'rudder123', + anonymousId: 'anon_id', + name: 'James Doe', + phone: '92374162212', + gender: 'M', + firstname: 'James', + lastname: 'Doe', + employed: true, + birthday: '1614775793', + education: 'Science', + graduate: true, + married: true, + customerType: 'Prime', + msg_push: true, + msgSms: true, + msgemail: true, + msgwhatsapp: false, + custom_tags: ['Test_User', 'Interested_User', 'DIY_Hobby'], + custom_mappings: { + Office: 'Trastkiv', + Country: 'Russia', + }, + address: { + city: 'kolkata', + country: 'India', + postalCode: 789223, + state: 'WB', + street: '', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: '[BLUESHIFT] User API Key required for Authentication.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'BLUESHIFT', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'blueshift', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + eventApiKey: 'a5e75d99c8a18acb4a29abd920ec1e2e', + usersApiKey: 'b4a29aba5e75d99c8a18acd920ec1e2e', + dataCenter: 'eu', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + ip: '0.0.0.0', + }, + type: 'identify', + traits: { + email: 'chandan@companyname.com', + userId: 'rudder123', + anonymousId: 'anon_id', + name: 'James Doe', + phone: '92374162212', + gender: 'M', + firstname: 'James', + lastname: 'Doe', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.eu.getblueshift.com/api/v1/customers', + headers: { + Authorization: 'Basic YjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q5MjBlYzFlMmU=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + email: 'chandan@companyname.com', + customer_id: 'rudder123', + phone_number: '92374162212', + firstname: 'James', + lastname: 'Doe', + gender: 'M', + userId: 'rudder123', + anonymousId: 'anon_id', + name: 'James Doe', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'blueshift', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + eventApiKey: 'a5e75d99c8a18acb4a29abd920ec1e2e', + usersApiKey: 'b4a29aba5e75d99c8a18acd920ec1e2e', + dataCenter: 'eu', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + ip: '0.0.0.0', + }, + traits: { + email: 'chandan@companyname.com', + userId: 'rudder123', + anonymousId: 'anon_id', + name: 'James Doe', + phone: '92374162212', + gender: 'M', + firstname: 'James', + lastname: 'Doe', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Message Type is not present. Aborting message.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'BLUESHIFT', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'blueshift', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + eventApiKey: 'a5e75d99c8a18acb4a29abd920ec1e2e', + usersApiKey: 'b4a29aba5e75d99c8a18acd920ec1e2e', + dataCenter: 'eu', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + ip: '0.0.0.0', + }, + type: 'page', + traits: { + email: 'chandan@companyname.com', + userId: 'rudder123', + anonymousId: 'anon_id', + name: 'James Doe', + phone: '92374162212', + gender: 'M', + firstname: 'James', + lastname: 'Doe', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Message type page not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'BLUESHIFT', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'blueshift', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + eventApiKey: 'efeb4a29aba5e75d99c8a18acd620ec1', + usersApiKey: 'b4a29aba5e75duic8a18acd920ec1e2e', + dataCenter: 'eu', + }, + }, + message: { + type: 'track', + event: 'Order Completed', + properties: { + total: 1000, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + price: '19', + position: '1', + category: 'Games,Gifts,Entertainment,Toys', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + { + product_id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + price: '19', + quantity: '2', + position: '1', + category: 'Games,Gifts,Entertainment,Toys', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + }, + context: { + app: { + build: '1', + name: 'RudderAndroidClient', + namespace: 'com.rudderstack.demo.android', + version: '1.0', + }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '0.1.4', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Mumbai', + traits: { + anonymousId: '7e32188a4dab669f', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + }, + userId: 'sampleRudderstack11', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.eu.getblueshift.com/api/v1/event', + headers: { + Authorization: 'Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + customer_id: 'sampleRudderstack11', + event: 'purchase', + device_type: 'android', + device_id: '7e32188a4dab669f', + device_idfv: '7e32188a4dab669f', + device_manufacturer: 'Google', + os_name: 'Android', + network_carrier: 'Android', + total: 1000, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + price: '19', + position: '1', + category: 'Games,Gifts,Entertainment,Toys', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + { + product_id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + price: '19', + quantity: '2', + position: '1', + category: 'Games,Gifts,Entertainment,Toys', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'blueshift', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + eventApiKey: 'efeb4a29aba5e75d99c8a18acd620ec1', + usersApiKey: 'b4a29aba5e75d99c8a18acd920ec1e2e', + dataCenter: 'eu', + }, + }, + message: { + context: { + ip: '14.5.67.21', + device: { + adTrackingEnabled: true, + advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'Android', + attTrackingStatus: 3, + }, + os: { + name: 'Android', + version: '9', + }, + network: { + bluetooth: false, + carrier: 'Android', + cellular: true, + wifi: true, + }, + address: { + city: 'kolkata', + country: 'India', + postalCode: 789223, + latitude: '37.7672319', + longitude: '-122.4021353', + state: 'WB', + street: 'rajnagar', + }, + }, + properties: { + cookie: '1234abcd-efghijkj-1234kfjadslk-34iu123', + }, + messageId: '34abcd-efghijkj-1234kf', + type: 'track', + event: 'Custom Events', + userId: 'sampleusrRudder7', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.eu.getblueshift.com/api/v1/event', + headers: { + Authorization: 'Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + customer_id: 'sampleusrRudder7', + event: 'Custom_Events', + device_type: 'Android', + device_id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + device_idfa: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + device_idfv: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + device_manufacturer: 'Google', + os_name: 'Android', + network_carrier: 'Android', + ip: '14.5.67.21', + latitude: '37.7672319', + longitude: '-122.4021353', + event_uuid: '34abcd-efghijkj-1234kf', + cookie: '1234abcd-efghijkj-1234kfjadslk-34iu123', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'blueshift', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + eventApiKey: 'efeb4a29aba5e75d99c8a18acd620ec1', + usersApiKey: 'b4a29aba5e75duic8a18acd920ec1e2e', + dataCenter: 'eu', + }, + }, + message: { + type: 'track', + event: 'Order 9Completed', + properties: { + total: 1000, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + price: '19', + position: '1', + category: 'Games,Gifts,Entertainment,Toys', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + { + product_id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + price: '19', + quantity: '2', + position: '1', + category: 'Games,Gifts,Entertainment,Toys', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + }, + context: { + app: { + build: '1', + name: 'RudderAndroidClient', + namespace: 'com.rudderstack.demo.android', + version: '1.0', + }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '0.1.4', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Mumbai', + traits: { + anonymousId: '7e32188a4dab669f', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + }, + userId: 'sampleRudderstack11', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + "[Blueshift] Event shouldn't contain period(.), numeric value and contains not more than 64 characters", + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'BLUESHIFT', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'blueshift', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + eventApiKey: 'efeb4a29aba5e75d99c8a18acd620ec1', + usersApiKey: 'b4a29aba5e75duic8a18acd920ec1e2e', + dataCenter: 'eu', + }, + }, + message: { + type: 'track', + event: 'Order.Completed', + properties: { + total: 1000, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + price: '19', + position: '1', + category: 'Games,Gifts,Entertainment,Toys', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + { + product_id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + price: '19', + quantity: '2', + position: '1', + category: 'Games,Gifts,Entertainment,Toys', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + }, + context: { + app: { + build: '1', + name: 'RudderAndroidClient', + namespace: 'com.rudderstack.demo.android', + version: '1.0', + }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '0.1.4', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Mumbai', + traits: { + anonymousId: '7e32188a4dab669f', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + }, + userId: 'sampleRudderstack11', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + "[Blueshift] Event shouldn't contain period(.), numeric value and contains not more than 64 characters", + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'BLUESHIFT', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'blueshift', + description: 'Test 16', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + eventApiKey: 'efeb4a29aba5e75d99c8a18acd620ec1', + usersApiKey: 'b4a29aba5e75duic8a18acd920ec1e2e', + dataCenter: 'standard', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1', + name: 'RudderAndroidClient', + namespace: 'com.rudderstack.demo.android', + version: '1.0', + }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '0.1.4', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Mumbai', + traits: { + anonymousId: '7e32188a4dab669f', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + }, + type: 'group', + messageId: 'e5034jh0-a404-47b4-a463-76df99934kl2', + userId: 'sampleusrRudder1', + groupId: 'group22222', + traits: { + name: 'hardik', + email: 'hardik@rudderstack.com', + cookie: '1234abcd-efghklkj-1234kfjadslk-34iu123', + industry: 'Education', + employees: 399, + plan: 'enterprise', + 'total billed': 830, + gender: 'male', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getblueshift.com/api/v1/event', + headers: { + Authorization: 'Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + group_id: 'group22222', + customer_id: 'sampleusrRudder1', + email: 'hardik@rudderstack.com', + device_type: 'android', + device_id: '7e32188a4dab669f', + device_idfv: '7e32188a4dab669f', + device_manufacturer: 'Google', + os_name: 'Android', + network_carrier: 'Android', + event_uuid: 'e5034jh0-a404-47b4-a463-76df99934kl2', + event: 'identify', + name: 'hardik', + cookie: '1234abcd-efghklkj-1234kfjadslk-34iu123', + industry: 'Education', + employees: 399, + plan: 'enterprise', + 'total billed': 830, + gender: 'male', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'blueshift', + description: 'Test 17', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + usersApiKey: 'b4a29aba5e75duic8a18acd920ec1e2e', + dataCenter: 'eu', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1', + name: 'RudderAndroidClient', + namespace: 'com.rudderstack.demo.android', + version: '1.0', + }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '0.1.4', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Mumbai', + traits: { + anonymousId: '7e32188a4dab669f', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + }, + type: 'group', + messageId: 'e5034jh0-a404-47b4-a463-76df99934kl2', + userId: 'sampleusrRudder1', + groupId: 'group22222', + traits: { + name: 'hardik', + email: 'hardik@rudderstack.com', + cookie: '1234abcd-efghklkj-1234kfjadslk-34iu123', + industry: 'Education', + employees: 399, + plan: 'enterprise', + 'total billed': 830, + gender: 'male', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: '[BLUESHIFT] event API Key required for Authentication.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'BLUESHIFT', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/blueshift/router/data.ts b/test/integrations/destinations/blueshift/router/data.ts new file mode 100644 index 00000000000..7c92ff1d748 --- /dev/null +++ b/test/integrations/destinations/blueshift/router/data.ts @@ -0,0 +1,348 @@ +export const data = [ + { + name: 'blueshift', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + eventApiKey: 'efeb4a29aba5e75d99c8a18acd620ec1', + usersApiKey: 'b4a29aba5e75duic8a18acd920ec1e2e', + datacenterEU: false, + }, + }, + metadata: { + jobId: 1, + }, + message: { + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'hardik', + email: 'hardik@rudderstack.com', + cookie: '1234abcd-efghklkj-1234kfjadslk-34iu123', + industry: 'Education', + employees: 399, + plan: 'enterprise', + 'total billed': 830, + }, + }, + type: 'group', + userId: 'rudderstack8', + groupId: '35838', + }, + }, + { + destination: { + Config: { + eventApiKey: 'efeb4a29aba5e75d99c8a18acd620ec1', + usersApiKey: 'b4a29aba5e75duic8a18acd920ec1e2e', + datacenterEU: false, + }, + }, + metadata: { + jobId: 2, + }, + message: { + context: { + ip: '14.5.67.21', + device: { + adTrackingEnabled: true, + advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'Android', + attTrackingStatus: 3, + }, + os: { + name: 'Android', + version: '9', + }, + network: { + bluetooth: false, + carrier: 'Android', + cellular: true, + wifi: true, + }, + address: { + city: 'kolkata', + country: 'India', + postalCode: 789223, + latitude: '37.7672319', + longitude: '-122.4021353', + state: 'WB', + street: 'rajnagar', + }, + }, + properties: { + cookie: '1234abcd-efghijkj-1234kfjadslk-34iu123', + }, + messageId: '34abcd-efghijkj-1234kf', + type: 'track', + event: 'identify', + userId: 'sampleusrRudder7', + }, + }, + { + destination: { + Config: { + eventApiKey: 'a5e75d99c8a18acb4a29abd920ec1e2e', + usersApiKey: 'b4a29aba5e75d99c8a18acd920ec1e2e', + datacenterEU: false, + }, + }, + metadata: { + jobId: 3, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'chandan@companyname.com', + userId: 'rudder123', + anonymousId: 'anon_id', + name: 'James Doe', + phone: '92374162212', + gender: 'M', + firstname: 'James', + lastname: 'Doe', + employed: true, + birthday: '1614775793', + education: 'Science', + graduate: true, + married: true, + customerType: 'Prime', + msg_push: true, + msgSms: true, + msgemail: true, + msgwhatsapp: false, + custom_tags: ['Test_User', 'Interested_User', 'DIY_Hobby'], + custom_mappings: { + Office: 'Trastkiv', + Country: 'Russia', + }, + address: { + city: 'kolkata', + country: 'India', + postalCode: 789223, + state: 'WB', + street: '', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + destType: 'blueshift', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getblueshift.com/api/v1/event', + headers: { + Authorization: 'Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + group_id: '35838', + customer_id: 'rudderstack8', + email: 'hardik@rudderstack.com', + event: 'identify', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + eventApiKey: 'efeb4a29aba5e75d99c8a18acd620ec1', + usersApiKey: 'b4a29aba5e75duic8a18acd920ec1e2e', + datacenterEU: false, + }, + }, + }, + { + batchedRequest: { + body: { + XML: {}, + FORM: {}, + JSON: { + ip: '14.5.67.21', + event: 'identify', + cookie: '1234abcd-efghijkj-1234kfjadslk-34iu123', + os_name: 'Android', + latitude: '37.7672319', + device_id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + longitude: '-122.4021353', + event_uuid: '34abcd-efghijkj-1234kf', + customer_id: 'sampleusrRudder7', + device_idfa: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + device_idfv: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + device_type: 'Android', + network_carrier: 'Android', + device_manufacturer: 'Google', + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic ZWZlYjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q2MjBlYzE=', + }, + version: '1', + endpoint: 'https://api.getblueshift.com/api/v1/event', + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + eventApiKey: 'efeb4a29aba5e75d99c8a18acd620ec1', + usersApiKey: 'b4a29aba5e75duic8a18acd920ec1e2e', + datacenterEU: false, + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getblueshift.com/api/v1/customers', + headers: { + Authorization: 'Basic YjRhMjlhYmE1ZTc1ZDk5YzhhMThhY2Q5MjBlYzFlMmU=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + email: 'chandan@companyname.com', + customer_id: 'rudder123', + phone_number: '92374162212', + firstname: 'James', + lastname: 'Doe', + gender: 'M', + userId: 'rudder123', + anonymousId: 'anon_id', + name: 'James Doe', + employed: true, + birthday: '1614775793', + education: 'Science', + graduate: true, + married: true, + customerType: 'Prime', + msg_push: true, + msgSms: true, + msgemail: true, + msgwhatsapp: false, + custom_tags: ['Test_User', 'Interested_User', 'DIY_Hobby'], + custom_mappings: { + Office: 'Trastkiv', + Country: 'Russia', + }, + address: { + city: 'kolkata', + country: 'India', + postalCode: 789223, + state: 'WB', + street: '', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 3, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + eventApiKey: 'a5e75d99c8a18acb4a29abd920ec1e2e', + usersApiKey: 'b4a29aba5e75d99c8a18acd920ec1e2e', + datacenterEU: false, + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/bqstream/router/data.ts b/test/integrations/destinations/bqstream/router/data.ts index 0f6e663ad03..e44ce4af15f 100644 --- a/test/integrations/destinations/bqstream/router/data.ts +++ b/test/integrations/destinations/bqstream/router/data.ts @@ -13,66 +13,141 @@ export const data = [ message: { type: 'track', event: 'insert product', - sentAt: '2021-09-08T11:10:45.466Z', userId: 'user12345', - channel: 'web', - context: { - os: { - name: '', - version: '', - }, - app: { - name: 'RudderLabs JavaScript SDK', - build: '1.0.0', - version: '1.1.18', - namespace: 'com.rudderlabs.javascript', - }, - page: { - url: 'http://127.0.0.1:5500/index.html', - path: '/index.html', - title: 'Document', - search: '', - tab_url: 'http://127.0.0.1:5500/index.html', - referrer: '$direct', - initial_referrer: '$direct', - referring_domain: '', - initial_referring_domain: '', - }, - locale: 'en-GB', - screen: { - width: 1536, - height: 960, - density: 2, - innerWidth: 1536, - innerHeight: 776, - }, - traits: {}, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.18', - }, - campaign: {}, - userAgent: - 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', - }, - rudderId: 'fa2994a5-2a81-45fd-9919-fcf5596ad380', - messageId: 'e2d1a383-d9a2-4e03-a9dc-131d153c4d95', - timestamp: '2021-11-15T14:06:42.497+05:30', + properties: { count: 10, productId: 10, productName: 'Product-10', }, - receivedAt: '2021-11-15T14:06:42.497+05:30', - request_ip: '[::1]', anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', - integrations: { - All: true, - }, - originalTimestamp: '2021-09-08T11:10:45.466Z', }, metadata: { jobId: 1, + userId: 'user12345', + }, + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + projectId: 'gc-project-id', + datasetId: 'gc_dataset', + tableId: 'gc_table', + insertId: 'productId', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'bqstream test', + }, + }, + { + message: { + type: 'track', + event: 'insert product', + userId: 'user12345', + properties: { + count: 20, + productId: 20, + productName: 'Product-20', + }, + }, + metadata: { + jobId: 2, + userId: 'user12345', + }, + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + projectId: 'gc-project-id', + datasetId: 'gc_dataset', + tableId: 'gc_table', + insertId: 'productId', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'bqstream test', + }, + }, + { + message: { + type: 'identify', + event: 'insert product', + userId: 'user12345', + traits: { + count: 20, + productId: 20, + productName: 'Product-20', + }, + anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', + }, + metadata: { + jobId: 3, + userId: 'user12345', + }, + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + projectId: 'gc-project-id', + datasetId: 'gc_dataset', + tableId: 'gc_table', + insertId: 'productId', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'bqstream test', + }, + }, + { + message: { + type: 'track', + event: 'insert product', + userId: 'user12345', + properties: { + count: 20, + productId: 20, + productName: 'Product-20', + }, + anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', + }, + metadata: { + jobId: 5, + userId: 'user123', + }, + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + projectId: 'gc-project-id', + datasetId: 'gc_dataset', + tableId: 'gc_table', + insertId: 'productId', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'bqstream test', + }, + }, + { + message: { + type: 'track', + event: 'insert product', + userId: 'user12345', + properties: { + count: 20, + productId: 20, + productName: 'Product-20', + }, + anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', + }, + metadata: { + jobId: 6, + userId: 'user124', }, destination: { Config: { @@ -84,7 +159,7 @@ export const data = [ eventDelivery: true, eventDeliveryTS: 1636965406397, }, - Enabled: true, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', Name: 'bqstream test', }, @@ -93,19 +168,70 @@ export const data = [ message: { type: 'track', event: 'insert product', - sentAt: '2021-09-08T11:10:45.466Z', + userId: 'user12345', - channel: 'web', + }, + metadata: { + jobId: 7, + userId: 'user124', + }, + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + projectId: 'gc-project-id', + datasetId: 'gc_dataset', + tableId: 'gc_table', + insertId: 'productId', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'bqstream test', + }, + }, + { + message: { + type: 'track', + event: 'insert product', + userId: 'user12345', + }, + metadata: { + jobId: 8, + userId: 'user125', + }, + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + projectId: 'gc-project-id', + datasetId: 'gc_dataset', + tableId: 'gc_table', + insertId: 'productId', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'bqstream test', + }, + }, + { + message: { + type: 'identify', + event: 'insert product', + + userId: 'user12345', + context: { os: { - name: '', + Name: '', version: '', }, app: { - name: 'RudderLabs JavaScript SDK', + Name: 'RudderLabs JavaScript SDK', build: '1.0.0', version: '1.1.18', - namespace: 'com.rudderlabs.javascript', + Namespace: 'com.rudderlabs.javascript', }, page: { url: 'http://127.0.0.1:5500/index.html', @@ -128,31 +254,25 @@ export const data = [ }, traits: {}, library: { - name: 'RudderLabs JavaScript SDK', + Name: 'RudderLabs JavaScript SDK', version: '1.1.18', }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', }, - rudderId: 'fa2994a5-2a81-45fd-9919-fcf5596ad380', - messageId: 'e2d1a383-d9a2-4e03-a9dc-131d153c4d95', - timestamp: '2021-11-15T14:06:42.497+05:30', - properties: { + + traits: { count: 20, productId: 20, productName: 'Product-20', }, receivedAt: '2021-11-15T14:06:42.497+05:30', - request_ip: '[::1]', anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', - integrations: { - All: true, - }, - originalTimestamp: '2021-09-08T11:10:45.466Z', }, metadata: { - jobId: 2, + jobId: 9, + userId: 'user125', }, destination: { Config: { @@ -164,7 +284,7 @@ export const data = [ eventDelivery: true, eventDeliveryTS: 1636965406397, }, - Enabled: true, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', Name: 'bqstream test', }, @@ -181,49 +301,143 @@ export const data = [ body: { output: [ { + batched: true, batchedRequest: { datasetId: 'gc_dataset', projectId: 'gc-project-id', properties: [ { count: 10, + insertId: '10', productId: 10, productName: 'Product-10', - insertId: '10', }, { count: 20, + insertId: '20', productId: 20, productName: 'Product-20', + }, + { + count: 20, insertId: '20', + productId: 20, + productName: 'Product-20', + }, + { + count: 20, + insertId: '20', + productId: 20, + productName: 'Product-20', }, ], tableId: 'gc_table', }, + destination: { + Config: { + datasetId: 'gc_dataset', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + insertId: 'productId', + projectId: 'gc-project-id', + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + tableId: 'gc_table', + }, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'bqstream test', + }, metadata: [ { jobId: 1, + userId: 'user12345', }, { jobId: 2, + userId: 'user12345', + }, + { + jobId: 5, + userId: 'user123', + }, + { + jobId: 6, + userId: 'user124', }, ], - batched: true, statusCode: 200, + }, + { + batched: false, destination: { Config: { - rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', - projectId: 'gc-project-id', datasetId: 'gc_dataset', - tableId: 'gc_table', + eventDelivery: true, + eventDeliveryTS: 1636965406397, insertId: 'productId', + projectId: 'gc-project-id', + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + tableId: 'gc_table', + }, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'bqstream test', + }, + error: 'Invalid payload for the destination', + metadata: [ + { + jobId: 7, + userId: 'user124', + }, + { + jobId: 8, + userId: 'user125', + }, + ], + statTags: { + destType: 'BQSTREAM', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + { + batched: false, + destination: { + Config: { + datasetId: 'gc_dataset', eventDelivery: true, eventDeliveryTS: 1636965406397, + insertId: 'productId', + projectId: 'gc-project-id', + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + tableId: 'gc_table', }, - Enabled: true, ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', Name: 'bqstream test', }, + + error: 'Message Type not supported: identify', + metadata: [ + { + jobId: 3, + userId: 'user12345', + }, + { + jobId: 9, + userId: 'user125', + }, + ], + statTags: { + destType: 'BQSTREAM', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, }, ], }, diff --git a/test/integrations/destinations/branch/processor/data.ts b/test/integrations/destinations/branch/processor/data.ts new file mode 100644 index 00000000000..9fed3542358 --- /dev/null +++ b/test/integrations/destinations/branch/processor/data.ts @@ -0,0 +1,1493 @@ +export const data = [ + { + name: 'branch', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + branchKey: '', + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Branch Metrics', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'BRANCH', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'branch test', + Transformations: [], + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: true, + advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'product added', + integrations: { + All: true, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + properties: { + name: 'sampath', + }, + receivedAt: '2020-01-17T10:23:52.688+05:30', + request_ip: '[::1]:64059', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + type: 'track', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api2.branch.io/v2/event/standard', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + branch_key: '', + name: 'ADD_TO_CART', + content_items: [ + { + $product_name: 'sampath', + }, + ], + user_data: { + os: 'iOS', + os_version: '14.4.1', + app_version: '1.0.0', + screen_dpi: 2, + developer_identity: 'sampath', + idfa: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + idfv: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + limit_ad_tracking: false, + model: 'AOSP on IA Emulator', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'branch', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + branchKey: '', + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Branch Metrics', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'BRANCH', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'branch test', + Transformations: [], + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: true, + advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'Android', + attTrackingStatus: 2, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + request_ip: '[::1]:64059', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + type: 'identify', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api2.branch.io/v2/event/custom', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + branch_key: '', + name: 'sampath', + custom_data: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + content_items: [{}], + user_data: { + os: 'Android', + os_version: '9', + app_version: '1.0.0', + screen_dpi: 2, + developer_identity: 'sampath', + android_id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + aaid: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + limit_ad_tracking: true, + model: 'AOSP on IA Emulator', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'branch', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + branchKey: '', + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Branch Metrics', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'BRANCH', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'branch test', + Transformations: [], + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + request_ip: '[::1]:64059', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + type: 'page', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + statTags: { + destType: 'BRANCH', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + error: 'Message type is not supported', + }, + ], + }, + }, + }, + { + name: 'branch', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + branchKey: '', + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Branch Metrics', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'BRANCH', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'branch test', + Transformations: [], + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: true, + advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'watchos', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'product added', + integrations: { + All: true, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + properties: { + name: 'sampath', + }, + receivedAt: '2020-01-17T10:23:52.688+05:30', + request_ip: '[::1]:64059', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + type: 'track', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api2.branch.io/v2/event/standard', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + content_items: [ + { + $product_name: 'sampath', + }, + ], + user_data: { + os: 'watchos', + app_version: '1.0.0', + screen_dpi: 2, + developer_identity: 'sampath', + idfa: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + idfv: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + limit_ad_tracking: false, + model: 'AOSP on IA Emulator', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + name: 'ADD_TO_CART', + branch_key: '', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'branch', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + branchKey: '', + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Branch Metrics', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'BRANCH', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'branch test', + Transformations: [], + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: true, + advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'ipados', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'product added', + integrations: { + All: true, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + properties: { + name: 'sampath', + }, + receivedAt: '2020-01-17T10:23:52.688+05:30', + request_ip: '[::1]:64059', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + type: 'track', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api2.branch.io/v2/event/standard', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + content_items: [ + { + $product_name: 'sampath', + }, + ], + user_data: { + os: 'ipados', + app_version: '1.0.0', + screen_dpi: 2, + developer_identity: 'sampath', + idfa: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + idfv: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + limit_ad_tracking: false, + model: 'AOSP on IA Emulator', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + name: 'ADD_TO_CART', + branch_key: '', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'branch', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + branchKey: '', + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Branch Metrics', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'BRANCH', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'branch test', + Transformations: [], + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: true, + advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'tvos', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'product added', + integrations: { + All: true, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + properties: { + name: 'sampath', + }, + receivedAt: '2020-01-17T10:23:52.688+05:30', + request_ip: '[::1]:64059', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + type: 'track', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api2.branch.io/v2/event/standard', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + content_items: [ + { + $product_name: 'sampath', + }, + ], + user_data: { + os: 'tvos', + app_version: '1.0.0', + screen_dpi: 2, + developer_identity: 'sampath', + idfa: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + idfv: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + limit_ad_tracking: false, + model: 'AOSP on IA Emulator', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + name: 'ADD_TO_CART', + branch_key: '', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'branch', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + branchKey: '', + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Branch Metrics', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'BRANCH', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'branch test', + Transformations: [], + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: true, + advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'product added', + integrations: { + All: true, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + request_ip: '[::1]:64059', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + type: 'track', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api2.branch.io/v2/event/standard', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + user_data: { + os: 'iOS', + os_version: '14.4.1', + app_version: '1.0.0', + screen_dpi: 2, + developer_identity: 'sampath', + idfa: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + idfv: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + limit_ad_tracking: false, + model: 'AOSP on IA Emulator', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + name: 'ADD_TO_CART', + branch_key: '', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'branch', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + branchKey: '', + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Branch Metrics', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'BRANCH', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'branch test', + Transformations: [], + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: true, + advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + screen: { + density: 2, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'product added', + integrations: { + All: true, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + request_ip: '[::1]:64059', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + type: 'track', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api2.branch.io/v2/event/standard', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + user_data: { + app_version: '1.0.0', + screen_dpi: 2, + developer_identity: 'sampath', + limit_ad_tracking: false, + model: 'AOSP on IA Emulator', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + name: 'ADD_TO_CART', + branch_key: '', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'branch', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + branchKey: '', + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Branch Metrics', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'BRANCH', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'branch test', + Transformations: [], + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + device: { + adTrackingEnabled: true, + advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'product added', + integrations: { + All: true, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + request_ip: '[::1]:64059', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + type: 'track', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api2.branch.io/v2/event/standard', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + user_data: { + os: 'iOS', + os_version: '14.4.1', + developer_identity: 'sampath', + idfa: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + idfv: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + limit_ad_tracking: false, + model: 'AOSP on IA Emulator', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + name: 'ADD_TO_CART', + branch_key: '', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'branch', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + branchKey: '', + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Branch Metrics', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'BRANCH', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'branch test', + Transformations: [], + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + device: { + adTrackingEnabled: true, + advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + request_ip: '[::1]:64059', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + type: 'track', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Event name is required', + statTags: { + destType: 'BRANCH', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + }, + ], + }, + }, + }, + { + name: 'branch', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + branchKey: '', + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Branch Metrics', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'BRANCH', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'branch test', + Transformations: [], + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: true, + advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'Android', + attTrackingStatus: 2, + brand: 'testBrand', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 2, + height: 1794, + width: 1080, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + request_ip: '[::1]:64059', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + type: 'identify', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api2.branch.io/v2/event/custom', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + custom_data: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + content_items: [{}], + user_data: { + os: 'Android', + os_version: '9', + app_version: '1.0.0', + model: 'AOSP on IA Emulator', + brand: 'testBrand', + screen_dpi: 2, + screen_height: 1794, + screen_width: 1080, + developer_identity: 'sampath', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + android_id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + aaid: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + limit_ad_tracking: true, + }, + name: 'sampath', + branch_key: '', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'branch', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + branchKey: '', + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Branch Metrics', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'BRANCH', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'branch test', + Transformations: [], + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: true, + advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 2, + brand: 'testBrand', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + height: 1794, + width: 1080, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + request_ip: '[::1]:64059', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + type: 'identify', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api2.branch.io/v2/event/custom', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + custom_data: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + content_items: [{}], + user_data: { + os: 'iOS', + os_version: '14.4.1', + app_version: '1.0.0', + model: 'AOSP on IA Emulator', + brand: 'testBrand', + screen_dpi: 2, + screen_height: 1794, + screen_width: 1080, + developer_identity: 'sampath', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + idfa: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + idfv: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + limit_ad_tracking: true, + }, + name: 'sampath', + branch_key: '', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/branch/router/data.ts b/test/integrations/destinations/branch/router/data.ts new file mode 100644 index 00000000000..4c87145b7ea --- /dev/null +++ b/test/integrations/destinations/branch/router/data.ts @@ -0,0 +1,276 @@ +export const data = [ + { + name: 'branch', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + branchKey: '', + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Branch Metrics', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'BRANCH', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'branch test', + Transformations: [], + }, + metadata: { + jobId: 1, + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'product added', + integrations: { + All: true, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + properties: { + name: 'sampath', + }, + receivedAt: '2020-01-17T10:23:52.688+05:30', + request_ip: '[::1]:64059', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + type: 'track', + userId: 'sampath', + }, + }, + { + destination: { + Config: { + branchKey: '', + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Branch Metrics', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'BRANCH', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'branch test', + Transformations: [], + }, + metadata: { + jobId: 2, + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + request_ip: '[::1]:64059', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + type: 'identify', + userId: 'sampath', + }, + }, + ], + destType: 'branch', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api2.branch.io/v2/event/standard', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + branch_key: '', + name: 'ADD_TO_CART', + content_items: [ + { + $product_name: 'sampath', + }, + ], + user_data: { + os: 'iOS', + os_version: '', + app_version: '1.0.0', + screen_dpi: 2, + developer_identity: 'sampath', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + branchKey: '', + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Branch Metrics', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'BRANCH', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'branch test', + Transformations: [], + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api2.branch.io/v2/event/custom', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + branch_key: '', + name: 'sampath', + custom_data: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + content_items: [{}], + user_data: { + os: 'iOS', + os_version: '', + app_version: '1.0.0', + screen_dpi: 2, + developer_identity: 'sampath', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + branchKey: '', + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Branch Metrics', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'BRANCH', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'branch test', + Transformations: [], + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/braze/dataDelivery/data.ts b/test/integrations/destinations/braze/dataDelivery/data.ts new file mode 100644 index 00000000000..49a6d607e5f --- /dev/null +++ b/test/integrations/destinations/braze/dataDelivery/data.ts @@ -0,0 +1,846 @@ +import MockAdapter from 'axios-mock-adapter'; + +export const data = [ + { + name: 'braze', + description: 'Test 0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://rest.iad-03.braze.com/users/identify/test1', + method: 'POST', + userId: 'gabi_userId_45', + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + aliases_to_identify: [ + { + external_id: 'gabi_userId_45', + user_alias: { + alias_label: 'rudder_id', + alias_name: 'gabi_anonId_45', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'braze', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + status: 201, + message: 'Request for braze Processed Successfully', + destinationResponse: { + response: { + aliases_processed: 1, + message: 'success', + }, + status: 201, + }, + }, + }, + }, + }, + }, + { + name: 'braze', + description: 'Test 1', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://rest.iad-03.braze.com/users/identify/test2', + method: 'POST', + userId: 'gabi_userId_45', + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + aliases_to_identify: [ + { + external_id: 'gabi_userId_45', + user_alias: { + alias_label: 'rudder_id', + alias_name: 'gabi_anonId_45', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'braze', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + status: 201, + message: 'Request for braze Processed Successfully', + destinationResponse: { + response: { + message: 'success', + errors: ['minor error message'], + }, + status: 201, + }, + }, + }, + }, + }, + }, + { + name: 'braze', + description: 'Test 2', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://rest.iad-03.braze.com/users/identify/test3', + method: 'POST', + userId: 'gabi_userId_45', + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + aliases_to_identify: [ + { + external_id: 'gabi_userId_45', + user_alias: { + alias_label: 'rudder_id', + alias_name: 'gabi_anonId_45', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'braze', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + status: 201, + message: 'Request failed for braze with status: 201', + destinationResponse: { + response: { + message: 'fatal error message', + errors: ['minor error message'], + }, + status: 201, + }, + statTags: { + destType: 'BRAZE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'braze', + description: 'Test 3', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://rest.iad-03.braze.com/users/identify/test4', + method: 'POST', + userId: 'gabi_userId_45', + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + aliases_to_identify: [ + { + external_id: 'gabi_userId_45', + user_alias: { + alias_label: 'rudder_id', + alias_name: 'gabi_anonId_45', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'braze', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + status: 201, + message: 'Request for braze Processed Successfully', + destinationResponse: { + response: '', + status: 201, + }, + }, + }, + }, + }, + }, + { + name: 'braze', + description: 'Test 4', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://rest.iad-03.braze.com/users/identify/test5', + method: 'POST', + userId: 'gabi_userId_45', + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + aliases_to_identify: [ + { + external_id: 'gabi_userId_45', + user_alias: { + alias_label: 'rudder_id', + alias_name: 'gabi_anonId_45', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'braze', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + body: { + output: { + status: 500, + message: 'Request failed for braze with status: 500', + destinationResponse: { + response: '', + status: 500, + }, + statTags: { + destType: 'BRAZE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'braze', + description: 'Test 5', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://rest.iad-03.braze.com/users/identify/test6', + method: 'POST', + userId: 'gabi_userId_45', + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + aliases_to_identify: [ + { + external_id: 'gabi_userId_45', + user_alias: { + alias_label: 'rudder_id', + alias_name: 'gabi_anonId_45', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'braze', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + body: { + output: { + status: 500, + message: 'Request failed for braze with status: 500', + destinationResponse: { + response: '', + status: 500, + }, + statTags: { + destType: 'BRAZE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + mockFns: (mockAdapter: MockAdapter) => { + // params has `{ destination: salesforce }` + mockAdapter + .onPost( + 'https://rest.iad-03.braze.com/users/identify/test6', + { + aliases_to_identify: [ + { + external_id: 'gabi_userId_45', + user_alias: { alias_label: 'rudder_id', alias_name: 'gabi_anonId_45' }, + }, + ], + }, + { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + ) + .replyOnce((config) => { + // @ts-ignore + const err = AxiosError.from('DNS not found', 'ENOTFOUND', config); + return Promise.reject(err); + }); + }, + }, + { + name: 'braze', + description: 'Test 6', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://rest.iad-03.braze.com/users/identify/test7', + method: 'POST', + userId: 'gabi_userId_45', + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + aliases_to_identify: [ + { + external_id: 'gabi_userId_45', + user_alias: { + alias_label: 'rudder_id', + alias_name: 'gabi_anonId_45', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'braze', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + body: { + output: { + status: 500, + message: 'Request failed for braze with status: 500', + destinationResponse: { + response: '', + status: 500, + }, + statTags: { + destType: 'BRAZE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'braze', + description: 'Test Transformer Proxy V1 input with v0 proxy handler', + feature: 'dataDelivery', + module: 'destination', + version: 'v1', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://rest.iad-03.braze.com/users/identify/test1', + method: 'POST', + userId: 'gabi_userId_45', + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + aliases_to_identify: [ + { + external_id: 'gabi_userId_45', + user_alias: { + alias_label: 'rudder_id', + alias_name: 'gabi_anonId_45', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + metadata: [ + { + jobId: 2, + attemptNum: 0, + userId: '', + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + secret: { + access_token: 'secret', + refresh_token: 'refresh', + developer_token: 'developer_Token', + }, + }, + ], + files: {}, + params: { + destination: 'braze', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + response: [ + { + error: '{"aliases_processed":1,"message":"success"}', + statusCode: 201, + metadata: { + jobId: 2, + attemptNum: 0, + userId: '', + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + secret: { + access_token: 'secret', + refresh_token: 'refresh', + developer_token: 'developer_Token', + }, + }, + }, + ], + }, + }, + }, + }, + }, + { + name: 'braze', + description: 'Test Transformer Proxy V1 input with v0 proxy handler Error returned', + feature: 'dataDelivery', + module: 'destination', + version: 'v1', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://rest.iad-03.braze.com/users/identify/testV1', + method: 'POST', + userId: 'gabi_userId_45', + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + aliases_to_identify: [ + { + external_id: 'gabi_userId_45', + user_alias: { + alias_label: 'rudder_id', + alias_name: 'gabi_anonId_45', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + metadata: [ + { + jobId: 2, + attemptNum: 0, + userId: '', + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + secret: { + access_token: 'secret', + refresh_token: 'refresh', + developer_token: 'developer_Token', + }, + }, + ], + files: {}, + params: { + destination: 'braze', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + response: [ + { + error: '{"code":400,"message":"Bad Req","status":"Fail Case"}', + statusCode: 401, + metadata: { + jobId: 2, + attemptNum: 0, + userId: '', + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + secret: { + access_token: 'secret', + refresh_token: 'refresh', + developer_token: 'developer_Token', + }, + }, + }, + ], + statTags: { + destType: 'BRAZE', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + errorCategory: 'network', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + }, + authErrorCategory: '', + message: 'Request failed for braze with status: 401', + }, + }, + }, + }, + }, + { + name: 'braze', + description: + 'Test Transformer Proxy V1 input with v0 proxy handler Error returned Multiple metadata Track Event', + feature: 'dataDelivery', + module: 'destination', + version: 'v1', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://rest.iad-03.braze.com/users/track/testV1', + method: 'POST', + userId: 'gabi_userId_45', + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + partner: 'RudderStack', + attributes: [ + { + email: '123@a.com', + city: 'Disney', + country: 'USA', + firstname: 'Mickey', + external_id: '456345345', + }, + { + email: '123@a.com', + city: 'Disney', + country: 'USA', + firstname: 'Mickey', + external_id: '456345345', + }, + { + email: '123@a.com', + city: 'Disney', + country: 'USA', + firstname: 'Mickey', + external_id: '456345345', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + metadata: [ + { + jobId: 2, + attemptNum: 0, + userId: '', + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + secret: { + access_token: 'secret', + refresh_token: 'refresh', + developer_token: 'developer_Token', + }, + }, + { + jobId: 3, + attemptNum: 0, + userId: '', + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + secret: { + access_token: 'secret', + refresh_token: 'refresh', + developer_token: 'developer_Token', + }, + }, + { + jobId: 4, + attemptNum: 0, + userId: '', + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + secret: { + access_token: 'secret', + refresh_token: 'refresh', + developer_token: 'developer_Token', + }, + }, + ], + files: {}, + params: { + destination: 'braze', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + response: [ + { + error: + '{"message":"Valid data must be provided in the \'attributes\', \'events\', or \'purchases\' fields.","errors":[{"type":"The value provided for the \'email\' field is not a valid email.","input_array":"attributes","index":0},{"type":"The value provided for the \'email\' field is not a valid email.","input_array":"attributes","index":1}]}', + statusCode: 401, + metadata: { + jobId: 2, + attemptNum: 0, + userId: '', + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + secret: { + access_token: 'secret', + refresh_token: 'refresh', + developer_token: 'developer_Token', + }, + }, + }, + { + error: + '{"message":"Valid data must be provided in the \'attributes\', \'events\', or \'purchases\' fields.","errors":[{"type":"The value provided for the \'email\' field is not a valid email.","input_array":"attributes","index":0},{"type":"The value provided for the \'email\' field is not a valid email.","input_array":"attributes","index":1}]}', + statusCode: 401, + metadata: { + jobId: 3, + attemptNum: 0, + userId: '', + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + secret: { + access_token: 'secret', + refresh_token: 'refresh', + developer_token: 'developer_Token', + }, + }, + }, + { + error: + '{"message":"Valid data must be provided in the \'attributes\', \'events\', or \'purchases\' fields.","errors":[{"type":"The value provided for the \'email\' field is not a valid email.","input_array":"attributes","index":0},{"type":"The value provided for the \'email\' field is not a valid email.","input_array":"attributes","index":1}]}', + statusCode: 401, + metadata: { + jobId: 4, + attemptNum: 0, + userId: '', + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + secret: { + access_token: 'secret', + refresh_token: 'refresh', + developer_token: 'developer_Token', + }, + }, + }, + ], + statTags: { + destType: 'BRAZE', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + errorCategory: 'network', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + }, + authErrorCategory: '', + message: 'Request failed for braze with status: 401', + }, + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/braze/deleteUsers/data.ts b/test/integrations/destinations/braze/deleteUsers/data.ts new file mode 100644 index 00000000000..cad61fd12d8 --- /dev/null +++ b/test/integrations/destinations/braze/deleteUsers/data.ts @@ -0,0 +1,483 @@ +export const data = [ + { + name: 'braze', + description: 'Test 0', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'BRAZE', + userAttributes: [ + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + ], + config: { + dataCenter: 'US-03', + restApiKey: '1234', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'Test 1', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'BRAZE', + userAttributes: [ + { + userId: 'test_user_id10', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id18', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id51', + }, + ], + config: { + dataCenter: 'US-03', + restApiKey: '1234', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'Test 2', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'BRAZE', + userAttributes: [ + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + ], + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'Config for deletion not present', + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'Test 3', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'BRAZE', + userAttributes: [ + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + ], + config: { + dataCenter: 'US-03', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'data center / api key for deletion not present', + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'Test 4', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'BRAZE', + userAttributes: [ + { + name: 'a', + }, + ], + config: { + restApiKey: 'b1bd90e2-d203-480a-962c-f7bb03ea0afe', + dataCenter: 'US-03', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/braze/network.ts b/test/integrations/destinations/braze/network.ts new file mode 100644 index 00000000000..3db50ca32cc --- /dev/null +++ b/test/integrations/destinations/braze/network.ts @@ -0,0 +1,467 @@ +const dataDeliveryMocksData = [ + { + httpReq: { + url: 'https://api.amplitude.com/2/httpapi/test5', + data: { + api_key: 'c9d8a13b8bcab46a547f7be5200c483d', + events: [ + { + app_name: 'Rudder-CleverTap_Example', + app_version: '1.0', + time: 1619006730330, + user_id: 'gabi_userId_45', + user_properties: { + Residence: 'Shibuya', + city: 'Tokyo', + country: 'JP', + email: 'gabi29@gmail.com', + gender: 'M', + name: 'User2 Gabi2', + organization: 'Company', + region: 'ABC', + title: 'Owner', + zip: '100-0001', + }, + }, + ], + options: { min_id_length: 1 }, + }, + params: { destination: 'any' }, + headers: { 'Content-Type': 'application/json', 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: { response: {} }, + }, + { + httpReq: { + url: 'https://api.amplitude.com/2/httpapi/test6', + data: { + api_key: 'c9d8a13b8bcab46a547f7be5200c483d', + events: [ + { + app_name: 'Rudder-CleverTap_Example', + app_version: '1.0', + time: 1619006730330, + user_id: 'gabi_userId_45', + user_properties: { + Residence: 'Shibuya', + city: 'Tokyo', + country: 'JP', + email: 'gabi29@gmail.com', + gender: 'M', + name: 'User2 Gabi2', + organization: 'Company', + region: 'ABC', + title: 'Owner', + zip: '100-0001', + }, + }, + ], + options: { min_id_length: 1 }, + }, + params: { destination: 'any' }, + headers: { 'Content-Type': 'application/json', 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: {}, + }, + { + httpReq: { + url: 'https://rest.iad-03.braze.com/users/identify/test1', + data: { + aliases_to_identify: [ + { + external_id: 'gabi_userId_45', + user_alias: { alias_label: 'rudder_id', alias_name: 'gabi_anonId_45' }, + }, + ], + }, + params: { destination: 'braze' }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { data: { aliases_processed: 1, message: 'success' }, status: 201 }, + }, + { + httpReq: { + url: 'https://rest.iad-03.braze.com/users/identify/test2', + data: { + aliases_to_identify: [ + { + external_id: 'gabi_userId_45', + user_alias: { alias_label: 'rudder_id', alias_name: 'gabi_anonId_45' }, + }, + ], + }, + params: { destination: 'braze' }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { data: { message: 'success', errors: ['minor error message'] }, status: 201 }, + }, + { + httpReq: { + url: 'https://rest.iad-03.braze.com/users/identify/test3', + data: { + aliases_to_identify: [ + { + external_id: 'gabi_userId_45', + user_alias: { alias_label: 'rudder_id', alias_name: 'gabi_anonId_45' }, + }, + ], + }, + params: { destination: 'braze' }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { message: 'fatal error message', errors: ['minor error message'] }, + status: 201, + }, + }, + { + httpReq: { + url: 'https://rest.iad-03.braze.com/users/identify/test4', + data: { + aliases_to_identify: [ + { + external_id: 'gabi_userId_45', + user_alias: { alias_label: 'rudder_id', alias_name: 'gabi_anonId_45' }, + }, + ], + }, + params: { destination: 'braze' }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { data: '', status: 201 }, + }, + { + httpReq: { + url: 'https://rest.iad-03.braze.com/users/identify/test5', + data: { + aliases_to_identify: [ + { + external_id: 'gabi_userId_45', + user_alias: { alias_label: 'rudder_id', alias_name: 'gabi_anonId_45' }, + }, + ], + }, + params: { destination: 'braze' }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: {}, + }, + { + httpReq: { + url: 'https://rest.iad-03.braze.com/users/identify/test7', + data: { + aliases_to_identify: [ + { + external_id: 'gabi_userId_45', + user_alias: { alias_label: 'rudder_id', alias_name: 'gabi_anonId_45' }, + }, + ], + }, + params: { destination: 'braze' }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { response: {} }, + }, +]; + +const deleteNwData = [ + { + httpReq: { + method: 'post', + url: 'https://rest.iad-03.braze.com/users/delete', + data: { + external_ids: [ + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + ], + }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + data: { + code: 400, + message: 'Bad Req', + status: 'Fail Case', + }, + status: 400, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://rest.iad-03.braze.com/users/delete', + data: { + external_ids: [ + 'test_user_id10', + 'user_sdk2', + 'test_user_id18', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + ], + }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + deleted: 50, + message: 'success', + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://rest.iad-03.braze.com/users/delete', + data: { external_ids: ['test_user_id51'] }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': { + deleted: '1', + message: 'success', + }, + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://rest.iad-03.braze.com/users/delete', + data: { + externalIds: ['test_user_id'], + }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': { + deleted: 1, + message: 'success', + }, + }, + }, + }, + { + httpReq: { + url: 'https://rest.iad-03.braze.com/users/identify/testV1', + data: { + aliases_to_identify: [ + { + external_id: 'gabi_userId_45', + user_alias: { alias_label: 'rudder_id', alias_name: 'gabi_anonId_45' }, + }, + ], + }, + params: { destination: 'braze' }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + code: 400, + message: 'Bad Req', + status: 'Fail Case', + }, + status: 401, + }, + }, + { + httpReq: { + url: 'https://rest.iad-03.braze.com/users/track/testV1', + data: { + partner: 'RudderStack', + attributes: [ + { + email: '123@a.com', + city: 'Disney', + country: 'USA', + firstname: 'Mickey', + external_id: '456345345', + }, + { + email: '123@a.com', + city: 'Disney', + country: 'USA', + firstname: 'Mickey', + external_id: '456345345', + }, + { + email: '123@a.com', + city: 'Disney', + country: 'USA', + firstname: 'Mickey', + external_id: '456345345', + }, + ], + }, + params: { destination: 'braze' }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer api_key', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: '{"message":"Valid data must be provided in the \'attributes\', \'events\', or \'purchases\' fields.","errors":[{"type":"The value provided for the \'email\' field is not a valid email.","input_array":"attributes","index":0},{"type":"The value provided for the \'email\' field is not a valid email.","input_array":"attributes","index":1}]}', + status: 401, + }, + }, +]; +export const networkCallsData = [...deleteNwData, ...dataDeliveryMocksData]; diff --git a/test/integrations/destinations/campaign_manager/dataDelivery/data.ts b/test/integrations/destinations/campaign_manager/dataDelivery/data.ts new file mode 100644 index 00000000000..601ad56401f --- /dev/null +++ b/test/integrations/destinations/campaign_manager/dataDelivery/data.ts @@ -0,0 +1,604 @@ +export const data = [ + { + name: 'campaign_manager', + description: 'Sucess insert request V0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/437689/conversions/batchinsert', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + kind: 'dfareporting#conversionsBatchInsertRequest', + encryptionInfo: { + kind: 'dfareporting#encryptionInfo', + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + encryptionEntityType: 'DCM_ACCOUNT', + }, + conversions: [ + { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + status: 200, + message: '[CAMPAIGN_MANAGER Response Handler] - Request Processed Successfully', + destinationResponse: { + response: { + hasFailures: false, + status: [ + { + conversion: { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + kind: 'dfareporting#conversionStatus', + }, + ], + kind: 'dfareporting#conversionsBatchInsertResponse', + }, + status: 200, + }, + }, + }, + }, + }, + }, + { + name: 'campaign_manager', + description: 'Failure insert request', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/437690/conversions/batchinsert', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + kind: 'dfareporting#conversionsBatchInsertRequest', + encryptionInfo: { + kind: 'dfareporting#encryptionInfo', + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + encryptionEntityType: 'DCM_ACCOUNT', + }, + conversions: [ + { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: 'Campaign Manager: Aborting during CAMPAIGN_MANAGER response transformation', + statTags: { + errorCategory: 'network', + errorType: 'aborted', + destType: 'CAMPAIGN_MANAGER', + module: 'destination', + implementation: 'native', + feature: 'dataDelivery', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + }, + destinationResponse: { + response: { + hasFailures: true, + status: [ + { + conversion: { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + errors: [ + { + code: 'NOT_FOUND', + message: 'Floodlight config id: 213123123 was not found.', + kind: 'dfareporting#conversionError', + }, + ], + kind: 'dfareporting#conversionStatus', + }, + ], + kind: 'dfareporting#conversionsBatchInsertResponse', + }, + status: 200, + }, + }, + }, + }, + }, + }, + { + name: 'campaign_manager', + description: 'Failure insert request Aborted', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/437691/conversions/batchinsert', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + kind: 'dfareporting#conversionsBatchInsertRequest', + encryptionInfo: { + kind: 'dfareporting#encryptionInfo', + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + encryptionEntityType: 'DCM_ACCOUNT', + }, + conversions: [ + { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: 'Campaign Manager: Aborting during CAMPAIGN_MANAGER response transformation', + statTags: { + errorCategory: 'network', + errorType: 'aborted', + destType: 'CAMPAIGN_MANAGER', + module: 'destination', + implementation: 'native', + feature: 'dataDelivery', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + }, + destinationResponse: { + response: { + hasFailures: true, + status: [ + { + conversion: { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + errors: [ + { + code: 'INVALID_ARGUMENT', + message: 'Floodlight config id: 213123123 was not found.', + kind: 'dfareporting#conversionError', + }, + ], + kind: 'dfareporting#conversionStatus', + }, + ], + kind: 'dfareporting#conversionsBatchInsertResponse', + }, + status: 200, + }, + }, + }, + }, + }, + }, + { + name: 'campaign_manager', + description: 'Sucess and fail insert request v1', + feature: 'dataDelivery', + module: 'destination', + version: 'v1', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/437692/conversions/batchinsert', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + kind: 'dfareporting#conversionsBatchInsertRequest', + conversions: [ + { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 8, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + metadata: [ + { + jobId: 2, + attemptNum: 0, + userId: '', + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + secret: { + access_token: 'secret', + refresh_token: 'refresh', + developer_token: 'developer_Token', + }, + }, + { + jobId: 3, + attemptNum: 1, + userId: '', + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + secret: { + access_token: 'secret', + refresh_token: 'refresh', + developer_token: 'developer_Token', + }, + }, + ], + files: {}, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + status: 200, + message: '[CAMPAIGN_MANAGER Response V1 Handler] - Request Processed Successfully', + destinationResponse: { + response: { + hasFailures: true, + status: [ + { + conversion: { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + kind: 'dfareporting#conversionStatus', + errors: [ + { + code: 'INVALID_ARGUMENT', + kind: 'dfareporting#conversionError', + message: 'Floodlight config id: 213123123 was not found.', + }, + ], + }, + { + conversion: { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 8, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + kind: 'dfareporting#conversionStatus', + }, + ], + kind: 'dfareporting#conversionsBatchInsertResponse', + }, + status: 200, + rudderJobMetadata: [ + { + jobId: 2, + attemptNum: 0, + userId: '', + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + secret: { + access_token: 'secret', + refresh_token: 'refresh', + developer_token: 'developer_Token', + }, + }, + { + jobId: 3, + attemptNum: 1, + userId: '', + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + secret: { + access_token: 'secret', + refresh_token: 'refresh', + developer_token: 'developer_Token', + }, + }, + ], + }, + response: [ + { + error: 'Floodlight config id: 213123123 was not found., ', + statusCode: 400, + metadata: { + attemptNum: 0, + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + jobId: 2, + secret: { + access_token: 'secret', + developer_token: 'developer_Token', + refresh_token: 'refresh', + }, + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + userId: '', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + }, + }, + { + error: 'success', + metadata: { + attemptNum: 1, + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + jobId: 3, + secret: { + access_token: 'secret', + developer_token: 'developer_Token', + refresh_token: 'refresh', + }, + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + userId: '', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + }, + statusCode: 200, + }, + ], + }, + }, + }, + }, + }, + { + name: 'campaign_manager', + description: 'Sucess insert request v1', + feature: 'dataDelivery', + module: 'destination', + version: 'v1', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/43770/conversions/batchinsert', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + kind: 'dfareporting#conversionsBatchInsertRequest', + encryptionInfo: { + kind: 'dfareporting#encryptionInfo', + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + encryptionEntityType: 'DCM_ACCOUNT', + }, + conversions: [ + { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + metadata: { + jobId: 2, + attemptNum: 0, + userId: '', + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + secret: { + access_token: 'secret', + refresh_token: 'refresh', + developer_token: 'developer_Token', + }, + }, + files: {}, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + status: 200, + message: '[CAMPAIGN_MANAGER Response V1 Handler] - Request Processed Successfully', + destinationResponse: { + response: { + hasFailures: false, + status: [ + { + conversion: { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + kind: 'dfareporting#conversionStatus', + }, + ], + kind: 'dfareporting#conversionsBatchInsertResponse', + }, + status: 200, + rudderJobMetadata: { + jobId: 2, + attemptNum: 0, + userId: '', + sourceId: '2Vsge2uWYdrLfG7pZb5Y82eo4lr', + destinationId: '2RHh08uOsXqE9KvCDg3hoaeuK2L', + workspaceId: '2Csl0lSTbuM3qyHdaOQB2GcDH8o', + secret: { + access_token: 'secret', + refresh_token: 'refresh', + developer_token: 'developer_Token', + }, + }, + }, + response: [ + { + error: 'success', + statusCode: 200, + }, + ], + }, + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/campaign_manager/network.ts b/test/integrations/destinations/campaign_manager/network.ts new file mode 100644 index 00000000000..ddecbaf8fa0 --- /dev/null +++ b/test/integrations/destinations/campaign_manager/network.ts @@ -0,0 +1,311 @@ +const Data = [ + { + httpReq: { + method: 'post', + url: 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/437689/conversions/batchinsert', + data: { + kind: 'dfareporting#conversionsBatchInsertRequest', + encryptionInfo: { + kind: 'dfareporting#encryptionInfo', + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + encryptionEntityType: 'DCM_ACCOUNT', + }, + conversions: [ + { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + ], + }, + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + hasFailures: false, + status: [ + { + conversion: { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + kind: 'dfareporting#conversionStatus', + }, + ], + kind: 'dfareporting#conversionsBatchInsertResponse', + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/437690/conversions/batchinsert', + data: { + kind: 'dfareporting#conversionsBatchInsertRequest', + encryptionInfo: { + kind: 'dfareporting#encryptionInfo', + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + encryptionEntityType: 'DCM_ACCOUNT', + }, + conversions: [ + { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + ], + }, + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + hasFailures: true, + status: [ + { + conversion: { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + errors: [ + { + code: 'NOT_FOUND', + message: 'Floodlight config id: 213123123 was not found.', + kind: 'dfareporting#conversionError', + }, + ], + kind: 'dfareporting#conversionStatus', + }, + ], + kind: 'dfareporting#conversionsBatchInsertResponse', + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/43770/conversions/batchinsert', + data: { + kind: 'dfareporting#conversionsBatchInsertRequest', + encryptionInfo: { + kind: 'dfareporting#encryptionInfo', + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + encryptionEntityType: 'DCM_ACCOUNT', + }, + conversions: [ + { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + ], + }, + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + hasFailures: false, + status: [ + { + conversion: { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + kind: 'dfareporting#conversionStatus', + }, + ], + kind: 'dfareporting#conversionsBatchInsertResponse', + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/437692/conversions/batchinsert', + data: { + kind: 'dfareporting#conversionsBatchInsertRequest', + conversions: [ + { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 8, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + ], + }, + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + hasFailures: true, + status: [ + { + conversion: { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + errors: [ + { + code: 'INVALID_ARGUMENT', + message: 'Floodlight config id: 213123123 was not found.', + kind: 'dfareporting#conversionError', + }, + ], + kind: 'dfareporting#conversionStatus', + }, + { + conversion: { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 8, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + kind: 'dfareporting#conversionStatus', + }, + ], + kind: 'dfareporting#conversionsBatchInsertResponse', + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/437691/conversions/batchinsert', + data: { + kind: 'dfareporting#conversionsBatchInsertRequest', + encryptionInfo: { + kind: 'dfareporting#encryptionInfo', + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + encryptionEntityType: 'DCM_ACCOUNT', + }, + conversions: [ + { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + ], + }, + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + hasFailures: true, + status: [ + { + conversion: { + timestampMicros: '1668624722000000', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + }, + errors: [ + { + code: 'INVALID_ARGUMENT', + message: 'Floodlight config id: 213123123 was not found.', + kind: 'dfareporting#conversionError', + }, + ], + kind: 'dfareporting#conversionStatus', + }, + ], + kind: 'dfareporting#conversionsBatchInsertResponse', + }, + status: 200, + statusText: 'OK', + }, + }, +]; +export const networkCallsData = [...Data]; diff --git a/test/integrations/destinations/campaign_manager/processor/data.ts b/test/integrations/destinations/campaign_manager/processor/data.ts new file mode 100644 index 00000000000..beff44c9282 --- /dev/null +++ b/test/integrations/destinations/campaign_manager/processor/data.ts @@ -0,0 +1,830 @@ +export const data = [ + { + name: 'campaign_manager', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + originalTimestamp: '2022-11-17T00:22:02.903+05:30', + properties: { + profileId: '34245', + floodlightConfigurationId: '213123123', + ordinal: 'string', + floodlightActivityId: '456543345245', + value: '756', + encryptedUserIdCandidates: ['dfghjbnm'], + quantity: '455678', + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + encryptionEntityType: 'DCM_ACCOUNT', + requestType: 'batchinsert', + }, + type: 'track', + event: 'event test', + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + profileId: '5343234', + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/34245/conversions/batchinsert', + headers: { + Authorization: 'Bearer dummyApiToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + kind: 'dfareporting#conversionsBatchInsertRequest', + encryptionInfo: { + encryptionEntityType: 'DCM_ACCOUNT', + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + kind: 'dfareporting#encryptionInfo', + }, + conversions: [ + { + floodlightConfigurationId: '213123123', + ordinal: 'string', + timestampMicros: '1668624722903000', + floodlightActivityId: '456543345245', + quantity: '455678', + value: 756, + encryptedUserIdCandidates: ['dfghjbnm'], + nonPersonalizedAd: false, + treatmentForUnderage: false, + childDirectedTreatment: false, + limitAdTracking: false, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'campaign_manager', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + originalTimestamp: '2021-01-04T08:25:04.780Z', + properties: { + profileId: '34245', + floodlightConfigurationId: '213123123', + ordinal: 'string', + floodlightActivityId: '456543345245', + value: '756', + quantity: '455678', + gclid: 'string', + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + encryptionEntityType: 'DCM_ACCOUNT', + requestType: 'batchupdate', + }, + type: 'track', + event: 'event test', + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + profileId: '5343234', + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/34245/conversions/batchupdate', + headers: { + Authorization: 'Bearer dummyApiToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + kind: 'dfareporting#conversionsBatchUpdateRequest', + conversions: [ + { + floodlightConfigurationId: '213123123', + ordinal: 'string', + timestampMicros: '1609748704780000', + floodlightActivityId: '456543345245', + quantity: '455678', + value: 756, + gclid: 'string', + nonPersonalizedAd: false, + treatmentForUnderage: false, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'campaign_manager', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + originalTimestamp: '2022-11-17T00:22:02.903+05:30', + properties: { + profileId: '34245', + floodlightConfigurationId: '213123123', + ordinal: 'string', + floodlightActivityId: '456543345245', + mobileDeviceId: 'string', + value: '756', + encryptedUserIdCandidates: ['dfghjbnm'], + quantity: '455678', + gclid: 'string', + matchId: 'string', + dclid: 'string', + impressionId: 'string', + requestType: 'batchinsert', + }, + type: 'track', + event: 'event test', + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + profileId: '5343234', + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 400, + error: + '[CAMPAIGN MANAGER (DCM)]: If encryptedUserId or encryptedUserIdCandidates is used, provide proper values for properties.encryptionEntityType , properties.encryptionSource and properties.encryptionEntityId', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'CAMPAIGN_MANAGER', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'campaign_manager', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'sources', + originalTimestamp: '2022-11-17T00:22:02.903+05:30', + properties: { + floodlightConfigurationId: '213123123', + ordinal: 'string', + floodlightActivityId: '456543345245', + value: '756', + quantity: '455678', + requestType: 'batchinsert', + }, + type: 'track', + event: 'event test', + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + profileId: '5343234', + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 400, + error: + '[CAMPAIGN MANAGER (DCM)]: Atleast one of encryptedUserId,encryptedUserIdCandidates, matchId, mobileDeviceId, gclid, dclid, impressionId.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'CAMPAIGN_MANAGER', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'campaign_manager', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + originalTimestamp: '2022-11-17T00:22:02.903+05:30', + properties: { + profileId: '34245', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: '756', + quantity: '455678', + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + encryptionEntityType: 'DCM_ACCOUNT', + requestType: 'batchinsert', + matchId: '123', + }, + type: 'track', + event: 'event test', + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + profileId: '5343234', + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/34245/conversions/batchinsert', + headers: { + Authorization: 'Bearer dummyApiToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + kind: 'dfareporting#conversionsBatchInsertRequest', + conversions: [ + { + floodlightConfigurationId: '213123123', + ordinal: '1', + timestampMicros: '1668624722903000', + floodlightActivityId: '456543345245', + quantity: '455678', + value: 756, + matchId: '123', + nonPersonalizedAd: false, + treatmentForUnderage: false, + childDirectedTreatment: false, + limitAdTracking: false, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'campaign_manager', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + originalTimestamp: '1668624722903333', + properties: { + profileId: '34245', + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + value: '756', + quantity: '455678', + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + encryptionEntityType: 'DCM_ACCOUNT', + requestType: 'batchinsert', + matchId: '123', + }, + type: 'track', + event: 'event test', + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + profileId: '5343234', + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/34245/conversions/batchinsert', + headers: { + Authorization: 'Bearer dummyApiToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + kind: 'dfareporting#conversionsBatchInsertRequest', + conversions: [ + { + floodlightConfigurationId: '213123123', + ordinal: '1', + timestampMicros: '1668624722903333', + floodlightActivityId: '456543345245', + quantity: '455678', + value: 756, + matchId: '123', + nonPersonalizedAd: false, + treatmentForUnderage: false, + childDirectedTreatment: false, + limitAdTracking: false, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/campaign_manager/router/data.ts b/test/integrations/destinations/campaign_manager/router/data.ts new file mode 100644 index 00000000000..2ab1813cf89 --- /dev/null +++ b/test/integrations/destinations/campaign_manager/router/data.ts @@ -0,0 +1,1257 @@ +export const data = [ + { + name: 'campaign_manager', + description: 'Batch Different Type Requests', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 1, + }, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Promotion Clicked', + originalTimestamp: '2022-11-17T00:22:02.903+05:30', + properties: { + profileId: 437689, + floodlightConfigurationId: '213123123', + ordinal: '1', + quantity: '455678', + floodlightActivityId: '456543345245', + value: 7, + encryptedUserIdCandidates: ['dfghjbnm'], + limitAdTracking: true, + childDirectedTreatment: true, + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + encryptionEntityType: 'DCM_ACCOUNT', + requestType: 'batchinsert', + }, + type: 'track', + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2022-11-17T00:22:02.903+05:30', + }, + }, + { + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 2, + }, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Promotion Clicked', + type: 'track', + originalTimestamp: '2022-11-17T00:22:02.903+05:30', + properties: { + profileId: 437689, + floodlightConfigurationId: '213123123', + ordinal: '2', + floodlightActivityId: '456543345245', + quantity: '455678', + value: 7, + encryptedUserIdCandidates: ['dfghjbnm'], + limitAdTracking: true, + childDirectedTreatment: true, + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + encryptionEntityType: 'DCM_ACCOUNT', + requestType: 'batchupdate', + }, + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2022-11-17T00:22:02.903+05:30', + }, + }, + { + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 3, + }, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Promotion Clicked', + type: 'track', + originalTimestamp: '2022-11-17T00:22:02.903+05:30', + properties: { + profileId: 437689, + floodlightConfigurationId: '213123123', + ordinal: '3', + floodlightActivityId: '456543345245', + value: 7, + encryptedUserIdCandidates: ['dfghjbnm'], + quantity: '455678', + limitAdTracking: true, + childDirectedTreatment: true, + encryptionInfo: { + kind: 'dfareporting#encryptionInfo', + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + encryptionEntityType: 'DCM_ACCOUNT', + }, + requestType: 'randomValue', + }, + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2022-11-17T00:22:02.903+05:30', + }, + }, + ], + destType: 'campaign_manager', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/437689/conversions/batchinsert', + headers: { + Authorization: 'Bearer dummyApiToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + kind: 'dfareporting#conversionsBatchInsertRequest', + encryptionInfo: { + kind: 'dfareporting#encryptionInfo', + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + encryptionEntityType: 'DCM_ACCOUNT', + }, + conversions: [ + { + nonPersonalizedAd: false, + treatmentForUnderage: false, + timestampMicros: '1668624722903000', + floodlightConfigurationId: '213123123', + ordinal: '1', + quantity: '455678', + floodlightActivityId: '456543345245', + value: 7, + encryptedUserIdCandidates: ['dfghjbnm'], + limitAdTracking: true, + childDirectedTreatment: true, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + secret: { + access_token: 'dummyApiToken', + developer_token: 'ijkl91011', + refresh_token: 'efgh5678', + }, + jobId: 1, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + childDirectedTreatment: false, + limitAdTracking: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + treatmentForUnderage: false, + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/437689/conversions/batchupdate', + headers: { + Authorization: 'Bearer dummyApiToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + kind: 'dfareporting#conversionsBatchUpdateRequest', + encryptionInfo: { + kind: 'dfareporting#encryptionInfo', + encryptionSource: 'AD_SERVING', + encryptionEntityId: '3564523', + encryptionEntityType: 'DCM_ACCOUNT', + }, + conversions: [ + { + nonPersonalizedAd: false, + treatmentForUnderage: false, + timestampMicros: '1668624722903000', + floodlightConfigurationId: '213123123', + ordinal: '2', + quantity: '455678', + floodlightActivityId: '456543345245', + value: 7, + encryptedUserIdCandidates: ['dfghjbnm'], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + secret: { + access_token: 'dummyApiToken', + developer_token: 'ijkl91011', + refresh_token: 'efgh5678', + }, + jobId: 2, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + childDirectedTreatment: false, + limitAdTracking: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + treatmentForUnderage: false, + }, + }, + }, + { + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + batched: false, + error: + '[CAMPAIGN MANAGER (DCM)]: properties.requestType must be one of batchinsert or batchupdate.', + metadata: [ + { + secret: { + access_token: 'dummyApiToken', + developer_token: 'ijkl91011', + refresh_token: 'efgh5678', + }, + jobId: 3, + }, + ], + statusCode: 400, + statTags: { + destType: 'CAMPAIGN_MANAGER', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + }, + ], + }, + }, + }, + }, + { + name: 'campaign_manager', + description: 'Batch Sucessful BatchInsert Request', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 4, + }, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + message: { + channel: 'web', + event: 'Promotion Clicked', + originalTimestamp: '2022-11-17T00:22:02.903+05:30', + properties: { + profileId: 437689, + matchId: '123', + floodlightConfigurationId: '213123123', + quantity: '455678', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + limitAdTracking: true, + childDirectedTreatment: true, + requestType: 'batchinsert', + }, + type: 'track', + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2022-11-17T00:22:02.903+05:30', + }, + }, + { + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 5, + }, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + message: { + channel: 'web', + event: 'Promotion Clicked', + type: 'track', + originalTimestamp: '2022-11-17T00:22:02.903+05:30', + properties: { + profileId: 437689, + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + quantity: '455678', + value: 7, + matchId: '111', + limitAdTracking: true, + childDirectedTreatment: true, + requestType: 'batchinsert', + }, + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2022-11-17T00:22:02.903+05:30', + }, + }, + { + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 6, + }, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + message: { + channel: 'web', + event: 'Promotion Clicked', + type: 'track', + originalTimestamp: '2022-11-17T00:22:02.903+05:30', + properties: { + profileId: 437689, + floodlightConfigurationId: '213123123', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + ordinal: '1', + quantity: '455678', + limitAdTracking: true, + childDirectedTreatment: true, + requestType: 'batchinsert', + }, + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2022-11-17T00:22:02.903+05:30', + }, + }, + ], + destType: 'campaign_manager', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/437689/conversions/batchinsert', + headers: { + Authorization: 'Bearer dummyApiToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + kind: 'dfareporting#conversionsBatchInsertRequest', + conversions: [ + { + floodlightConfigurationId: '213123123', + ordinal: '1', + timestampMicros: '1668624722903000', + floodlightActivityId: '456543345245', + quantity: '455678', + value: 7, + matchId: '123', + limitAdTracking: true, + childDirectedTreatment: true, + nonPersonalizedAd: false, + treatmentForUnderage: false, + }, + { + floodlightConfigurationId: '213123123', + ordinal: '1', + timestampMicros: '1668624722903000', + floodlightActivityId: '456543345245', + quantity: '455678', + value: 7, + matchId: '111', + limitAdTracking: true, + childDirectedTreatment: true, + nonPersonalizedAd: false, + treatmentForUnderage: false, + }, + { + floodlightConfigurationId: '213123123', + ordinal: '1', + timestampMicros: '1668624722903000', + floodlightActivityId: '456543345245', + quantity: '455678', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + nonPersonalizedAd: false, + treatmentForUnderage: false, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 4, + }, + { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 5, + }, + { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 6, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + }, + }, + { + name: 'campaign_manager', + description: 'Batch Sucessful BatchInsert and BatchUpdate Request', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 4, + }, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + message: { + channel: 'web', + event: 'Promotion Clicked', + originalTimestamp: '2022-11-17T00:22:02.903+05:30', + properties: { + profileId: 437689, + matchId: '123', + floodlightConfigurationId: '213123123', + quantity: '455678', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + limitAdTracking: true, + childDirectedTreatment: true, + requestType: 'batchupdate', + }, + type: 'track', + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2022-11-17T00:22:02.903+05:30', + }, + }, + { + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 5, + }, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + message: { + channel: 'web', + event: 'Promotion Clicked', + type: 'track', + originalTimestamp: '2022-11-17T00:22:02.903+05:30', + properties: { + profileId: 437689, + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + quantity: '455678', + value: 7, + matchId: '111', + limitAdTracking: true, + childDirectedTreatment: true, + requestType: 'batchupdate', + }, + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2022-11-17T00:22:02.903+05:30', + }, + }, + { + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 6, + }, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + message: { + channel: 'web', + event: 'Promotion Clicked', + type: 'track', + originalTimestamp: '2022-11-17T00:22:02.903+05:30', + properties: { + profileId: 437689, + floodlightConfigurationId: '213123123', + floodlightActivityId: '456543345245', + value: 7, + gclid: '123', + ordinal: '1', + quantity: '455678', + limitAdTracking: true, + childDirectedTreatment: true, + requestType: 'batchinsert', + }, + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2022-11-17T00:22:02.903+05:30', + }, + }, + ], + destType: 'campaign_manager', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/437689/conversions/batchupdate', + headers: { + Authorization: 'Bearer dummyApiToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + kind: 'dfareporting#conversionsBatchUpdateRequest', + conversions: [ + { + floodlightConfigurationId: '213123123', + ordinal: '1', + timestampMicros: '1668624722903000', + floodlightActivityId: '456543345245', + quantity: '455678', + value: 7, + matchId: '123', + nonPersonalizedAd: false, + treatmentForUnderage: false, + }, + { + floodlightConfigurationId: '213123123', + ordinal: '1', + timestampMicros: '1668624722903000', + floodlightActivityId: '456543345245', + quantity: '455678', + value: 7, + matchId: '111', + nonPersonalizedAd: false, + treatmentForUnderage: false, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 4, + }, + { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 5, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://dfareporting.googleapis.com/dfareporting/v4/userprofiles/437689/conversions/batchinsert', + headers: { + Authorization: 'Bearer dummyApiToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + kind: 'dfareporting#conversionsBatchInsertRequest', + conversions: [ + { + floodlightConfigurationId: '213123123', + ordinal: '1', + timestampMicros: '1668624722903000', + floodlightActivityId: '456543345245', + quantity: '455678', + value: 7, + gclid: '123', + limitAdTracking: true, + childDirectedTreatment: true, + nonPersonalizedAd: false, + treatmentForUnderage: false, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 6, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + }, + }, + { + name: 'campaign_manager', + description: 'Entire Batch has data instrumentation', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 4, + }, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + message: { + channel: 'web', + event: 'Promotion Clicked', + originalTimestamp: '2022-11-17T00:22:02.903+05:30', + properties: { + profileId: 437689, + floodlightConfigurationId: '213123123', + quantity: '455678', + ordinal: '1', + floodlightActivityId: '456543345245', + value: 7, + limitAdTracking: true, + childDirectedTreatment: true, + requestType: 'batchupdate', + }, + type: 'track', + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2022-11-17T00:22:02.903+05:30', + }, + }, + { + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 5, + }, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + message: { + channel: 'web', + event: 'Promotion Clicked', + type: 'track', + originalTimestamp: '2022-11-17T00:22:02.903+05:30', + properties: { + profileId: 437689, + floodlightConfigurationId: '213123123', + ordinal: '1', + floodlightActivityId: '456543345245', + quantity: '455678', + value: 7, + limitAdTracking: true, + childDirectedTreatment: true, + requestType: 'batchupdate', + }, + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2022-11-17T00:22:02.903+05:30', + }, + }, + { + metadata: { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 6, + }, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + message: { + channel: 'web', + event: 'Promotion Clicked', + type: 'track', + originalTimestamp: '2022-11-17T00:22:02.903+05:30', + properties: { + profileId: 437689, + floodlightConfigurationId: '213123123', + floodlightActivityId: '456543345245', + value: 7, + + ordinal: '1', + quantity: '455678', + limitAdTracking: true, + childDirectedTreatment: true, + requestType: 'batchinsert', + }, + anonymousId: 'randomId', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2022-11-17T00:22:02.903+05:30', + }, + }, + ], + destType: 'campaign_manager', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + metadata: [ + { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 4, + }, + ], + batched: false, + statusCode: 400, + error: + '[CAMPAIGN MANAGER (DCM)]: Atleast one of encryptedUserId,encryptedUserIdCandidates, matchId, mobileDeviceId, gclid, dclid, impressionId.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'CAMPAIGN_MANAGER', + module: 'destination', + implementation: 'native', + feature: 'router', + }, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + { + metadata: [ + { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 5, + }, + ], + batched: false, + statusCode: 400, + error: + '[CAMPAIGN MANAGER (DCM)]: Atleast one of encryptedUserId,encryptedUserIdCandidates, matchId, mobileDeviceId, gclid, dclid, impressionId.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'CAMPAIGN_MANAGER', + module: 'destination', + implementation: 'native', + feature: 'router', + }, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + { + metadata: [ + { + secret: { + access_token: 'dummyApiToken', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 6, + }, + ], + batched: false, + statusCode: 400, + error: + '[CAMPAIGN MANAGER (DCM)]: Atleast one of encryptedUserId,encryptedUserIdCandidates, matchId, mobileDeviceId, gclid, dclid, impressionId.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'CAMPAIGN_MANAGER', + module: 'destination', + implementation: 'native', + feature: 'router', + }, + destination: { + Config: { + treatmentForUnderage: false, + limitAdTracking: false, + childDirectedTreatment: false, + nonPersonalizedAd: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/candu/processor/data.ts b/test/integrations/destinations/candu/processor/data.ts new file mode 100644 index 00000000000..6e5ae636bd4 --- /dev/null +++ b/test/integrations/destinations/candu/processor/data.ts @@ -0,0 +1,1366 @@ +export const data = [ + { + name: 'candu', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '23uZJcllEOBx8GbZ31qYzoML8Up', + Name: 'Candu local', + DestinationDefinition: { + ID: '23uYPwdkxT7pUNDAiCVNK3aU0sT', + Name: 'CANDU', + DisplayName: 'Candu', + Config: { + destConfig: { + defaultConfig: ['apiKey'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'blackListedEvents', + 'whiteListedEvents', + 'oneTrustCookieCategories', + ], + saveDestinationResponse: true, + secretKeys: ['apiKey'], + supportedMessageTypes: ['identify', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'FXLkLUEhGJyvmY4', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'user123456001', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Pune', + name: 'First User', + email: 'firstUser@testmail.com', + title: 'VP', + gender: 'female', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '', + method: 'POST', + endpoint: 'https://api.candu.ai/api/eventWebhook', + headers: { + Authorization: 'Basic RlhMa0xVRWhHSnl2bVk0', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + traits: { + city: 'Pune', + name: 'First User', + email: 'firstUser@testmail.com', + title: 'VP', + gender: 'female', + }, + type: 'identify', + userId: 'user123456001', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + context: { + source: 'RudderStack', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'candu', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '23uZJcllEOBx8GbZ31qYzoML8Up', + Name: 'Candu local', + DestinationDefinition: { + ID: '23uYPwdkxT7pUNDAiCVNK3aU0sT', + Name: 'CANDU', + DisplayName: 'Candu', + Config: { + destConfig: { + defaultConfig: ['apiKey'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'blackListedEvents', + 'whiteListedEvents', + 'oneTrustCookieCategories', + ], + saveDestinationResponse: true, + secretKeys: ['apiKey'], + supportedMessageTypes: ['identify', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'FXLkLUEhGJyvmY4', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + type: 'track', + event: 'testEventWithoutProp', + sentAt: '2022-01-20T14:32:51.506Z', + userId: 'user123456001', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Pune', + name: 'First User', + email: 'firstUser@testmail.com', + title: 'VP', + gender: 'female', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: 'e9f3dfb4-562c-48f4-b0cf-85782dfc9b1e', + properties: {}, + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T14:32:51.506Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '', + method: 'POST', + endpoint: 'https://api.candu.ai/api/eventWebhook', + headers: { + Authorization: 'Basic RlhMa0xVRWhHSnl2bVk0', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + type: 'track', + event: 'testEventWithoutProp', + traits: { + city: 'Pune', + name: 'First User', + email: 'firstUser@testmail.com', + title: 'VP', + gender: 'female', + }, + properties: {}, + userId: 'user123456001', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + messageId: 'e9f3dfb4-562c-48f4-b0cf-85782dfc9b1e', + context: { + source: 'RudderStack', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'candu', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '23uZJcllEOBx8GbZ31qYzoML8Up', + Name: 'Candu local', + DestinationDefinition: { + ID: '23uYPwdkxT7pUNDAiCVNK3aU0sT', + Name: 'CANDU', + DisplayName: 'Candu', + Config: { + destConfig: { + defaultConfig: ['apiKey'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'blackListedEvents', + 'whiteListedEvents', + 'oneTrustCookieCategories', + ], + saveDestinationResponse: true, + secretKeys: ['apiKey'], + supportedMessageTypes: ['identify', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'FXLkLUEhGJyvmY4', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + type: 'track', + sentAt: '2022-01-20T14:42:59.775Z', + userId: '', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '127.0.0.1:7307', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '1877191c-3537-46dc-a35a-e2a4d13ed3f7', + messageId: 'fea245ef-6150-42c4-84e0-51fa68e71a88', + properties: {}, + anonymousId: 'd18df757-34aa-4f71-91a8-7f9ef2940963', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T14:42:25.343Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Missing required value from "event"', + statTags: { + destType: 'CANDU', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + }, + ], + }, + }, + }, + { + name: 'candu', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '23uZJcllEOBx8GbZ31qYzoML8Up', + Name: 'Candu local', + DestinationDefinition: { + ID: '23uYPwdkxT7pUNDAiCVNK3aU0sT', + Name: 'CANDU', + DisplayName: 'Candu', + Config: { + destConfig: { + defaultConfig: ['apiKey'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'blackListedEvents', + 'whiteListedEvents', + 'oneTrustCookieCategories', + ], + saveDestinationResponse: true, + secretKeys: ['apiKey'], + supportedMessageTypes: ['identify', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'FXLkLUEhGJyvmY4', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + type: 'page', + sentAt: '2022-01-20T15:30:57.470Z', + userId: 'testUser1234', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '127.0.0.1:7307', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 632, + }, + traits: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: 'aa193f3b-6d42-466f-a781-6a666cfe17c3', + messageId: 'bf869c14-5f96-4cbc-94b2-3de9252c216b', + properties: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '127.0.0.1:7307', + }, + anonymousId: 'd18df757-34aa-4f71-91a8-7f9ef2940963', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T15:30:57.470Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: '[CANDU]:: Message type page not supported.', + statTags: { + destType: 'CANDU', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + }, + ], + }, + }, + }, + { + name: 'candu', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '23uZJcllEOBx8GbZ31qYzoML8Up', + Name: 'Candu local', + DestinationDefinition: { + ID: '23uYPwdkxT7pUNDAiCVNK3aU0sT', + Name: 'CANDU', + DisplayName: 'Candu', + Config: { + destConfig: { + defaultConfig: ['apiKey'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'blackListedEvents', + 'whiteListedEvents', + 'oneTrustCookieCategories', + ], + saveDestinationResponse: true, + secretKeys: ['apiKey'], + supportedMessageTypes: ['identify', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + apiKey: ' ', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + type: 'track', + event: 'testEventWithoutProp', + sentAt: '2022-01-20T14:32:51.506Z', + userId: 'user123456001', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Pune', + name: 'First User', + email: 'firstUser@testmail.com', + title: 'VP', + gender: 'female', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: 'e9f3dfb4-562c-48f4-b0cf-85782dfc9b1e', + properties: {}, + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T14:32:51.506Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: '[CANDU]:: apiKey cannot be empty.', + statTags: { + destType: 'CANDU', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + }, + ], + }, + }, + }, + { + name: 'candu', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '23uZJcllEOBx8GbZ31qYzoML8Up', + Name: 'Candu local', + DestinationDefinition: { + ID: '23uYPwdkxT7pUNDAiCVNK3aU0sT', + Name: 'CANDU', + DisplayName: 'Candu', + Config: { + destConfig: { + defaultConfig: ['apiKey'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'blackListedEvents', + 'whiteListedEvents', + 'oneTrustCookieCategories', + ], + saveDestinationResponse: true, + secretKeys: ['apiKey'], + supportedMessageTypes: ['identify', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'FXLkLUEhGJyvmY4', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + event: 'testEventWithoutProp', + sentAt: '2022-01-20T14:32:51.506Z', + userId: 'user123456001', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Pune', + name: 'First User', + email: 'firstUser@testmail.com', + title: 'VP', + gender: 'female', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: 'e9f3dfb4-562c-48f4-b0cf-85782dfc9b1e', + properties: {}, + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T14:32:51.506Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: '[CANDU]:: Message Type is not present. Aborting message.', + statTags: { + destType: 'CANDU', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + }, + ], + }, + }, + }, + { + name: 'candu', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '23uZJcllEOBx8GbZ31qYzoML8Up', + Name: 'Candu local', + DestinationDefinition: { + ID: '23uYPwdkxT7pUNDAiCVNK3aU0sT', + Name: 'CANDU', + DisplayName: 'Candu', + Config: { + destConfig: { + defaultConfig: ['apiKey'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'blackListedEvents', + 'whiteListedEvents', + 'oneTrustCookieCategories', + ], + saveDestinationResponse: true, + secretKeys: ['apiKey'], + supportedMessageTypes: ['identify', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'FXLkLUEhGJyvmY4', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Pune', + name: 'First User', + email: 'firstUser@testmail.com', + title: 'VP', + gender: 'female', + userId: 2399229, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '', + method: 'POST', + endpoint: 'https://api.candu.ai/api/eventWebhook', + headers: { + Authorization: 'Basic RlhMa0xVRWhHSnl2bVk0', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + traits: { + city: 'Pune', + name: 'First User', + email: 'firstUser@testmail.com', + title: 'VP', + gender: 'female', + userId: 2399229, + }, + userId: '2399229', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + type: 'identify', + context: { + source: 'RudderStack', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'candu', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '23uZJcllEOBx8GbZ31qYzoML8Up', + Name: 'Candu local', + DestinationDefinition: { + ID: '23uYPwdkxT7pUNDAiCVNK3aU0sT', + Name: 'CANDU', + DisplayName: 'Candu', + Config: { + destConfig: { + defaultConfig: ['apiKey'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'blackListedEvents', + 'whiteListedEvents', + 'oneTrustCookieCategories', + ], + saveDestinationResponse: true, + secretKeys: ['apiKey'], + supportedMessageTypes: ['identify', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'FXLkLUEhGJyvmY4', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + type: 'track', + event: 'testEventWithoutProp', + sentAt: '2022-01-20T14:32:51.506Z', + userId: 'user123456001', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Pune', + name: 'First User', + email: 'firstUser@testmail.com', + title: 'VP', + gender: 'female', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: 'e9f3dfb4-562c-48f4-b0cf-85782dfc9b1e', + properties: ['1234', '5678', '91011'], + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T14:32:51.506Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '', + method: 'POST', + endpoint: 'https://api.candu.ai/api/eventWebhook', + headers: { + Authorization: 'Basic RlhMa0xVRWhHSnl2bVk0', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event: 'testEventWithoutProp', + traits: { + city: 'Pune', + name: 'First User', + email: 'firstUser@testmail.com', + title: 'VP', + gender: 'female', + }, + properties: ['1234', '5678', '91011'], + userId: 'user123456001', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + messageId: 'e9f3dfb4-562c-48f4-b0cf-85782dfc9b1e', + type: 'track', + context: { + source: 'RudderStack', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'candu', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '23uZJcllEOBx8GbZ31qYzoML8Up', + Name: 'Candu local', + DestinationDefinition: { + ID: '23uYPwdkxT7pUNDAiCVNK3aU0sT', + Name: 'CANDU', + DisplayName: 'Candu', + Config: { + destConfig: { + defaultConfig: ['apiKey'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'blackListedEvents', + 'whiteListedEvents', + 'oneTrustCookieCategories', + ], + saveDestinationResponse: true, + secretKeys: ['apiKey'], + supportedMessageTypes: ['identify', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'FXLkLUEhGJyvmY4', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + type: 'track', + event: 'testEventWithoutProp', + sentAt: '2022-01-20T14:32:51.506Z', + userId: '', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + city: 'Pune', + name: 'First User', + email: 'firstUser@testmail.com', + title: 'VP', + gender: 'female', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: 'e9f3dfb4-562c-48f4-b0cf-85782dfc9b1e', + properties: [], + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { + All: true, + }, + originalTimestamp: '2022-01-20T14:32:51.506Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + userId: '', + method: 'POST', + endpoint: 'https://api.candu.ai/api/eventWebhook', + headers: { + Authorization: 'Basic RlhMa0xVRWhHSnl2bVk0', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event: 'testEventWithoutProp', + traits: { + city: 'Pune', + name: 'First User', + email: 'firstUser@testmail.com', + title: 'VP', + gender: 'female', + }, + properties: [], + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + messageId: 'e9f3dfb4-562c-48f4-b0cf-85782dfc9b1e', + type: 'track', + context: { + source: 'RudderStack', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/candu/router/data.ts b/test/integrations/destinations/candu/router/data.ts new file mode 100644 index 00000000000..8aa6441881b --- /dev/null +++ b/test/integrations/destinations/candu/router/data.ts @@ -0,0 +1,212 @@ +export const data = [ + { + name: 'candu', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + ID: '23uZJcllEOBx8GbZ31qYzoML8Up', + Name: 'Candu local', + DestinationDefinition: { + ID: '23uYPwdkxT7pUNDAiCVNK3aU0sT', + Name: 'CANDU', + DisplayName: 'Candu', + Config: { + destConfig: { + defaultConfig: ['apiKey'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'blackListedEvents', + 'whiteListedEvents', + 'oneTrustCookieCategories', + ], + saveDestinationResponse: true, + secretKeys: ['apiKey'], + supportedMessageTypes: ['identify', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'FXLkLUEhGJyvmY4', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + jobId: 1, + }, + message: { + anonymousId: 'a1b2c3d4e5f6g7h8i9j10', + channel: 'mobile', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: true, + advertisingId: '', + id: '', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'watchos', + }, + screen: { + density: 2, + }, + traits: { + email: 'sampath@gmail.com', + name: 'Joker', + Gender: 'male', + foo: { + foo: 'bar', + }, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'product added', + integrations: { + All: true, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + request_ip: '[::1]:64059', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + type: 'identify', + userId: 'sampath', + }, + }, + ], + destType: 'candu', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.candu.ai/api/eventWebhook', + headers: { + Authorization: 'Basic RlhMa0xVRWhHSnl2bVk0', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + traits: { + email: 'sampath@gmail.com', + name: 'Joker', + Gender: 'male', + foo: { foo: 'bar' }, + }, + type: 'identify', + userId: 'sampath', + anonymousId: 'a1b2c3d4e5f6g7h8i9j10', + timestamp: '2020-01-17T10:23:51.206+05:30', + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + context: { source: 'RudderStack' }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + ID: '23uZJcllEOBx8GbZ31qYzoML8Up', + Name: 'Candu local', + DestinationDefinition: { + ID: '23uYPwdkxT7pUNDAiCVNK3aU0sT', + Name: 'CANDU', + DisplayName: 'Candu', + Config: { + destConfig: { defaultConfig: ['apiKey'] }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'blackListedEvents', + 'whiteListedEvents', + 'oneTrustCookieCategories', + ], + saveDestinationResponse: true, + secretKeys: ['apiKey'], + supportedMessageTypes: ['identify', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { apiKey: 'FXLkLUEhGJyvmY4' }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/canny/data.ts b/test/integrations/destinations/canny/data.ts index d87f5f8fdcd..3c6823ca1b5 100644 --- a/test/integrations/destinations/canny/data.ts +++ b/test/integrations/destinations/canny/data.ts @@ -1,3 +1,6 @@ +import { enhanceRequestOptions } from '../../../../src/adapters/network'; +import qs from 'qs'; + export const data = [ { name: 'canny', @@ -679,7 +682,7 @@ export const data = [ traits: { city: 'Pune', name: 'First User', - email: 'rohithkaza@rudderstack.com', + email: 'test@rudderstack.com', title: 'VP', gender: 'male', }, @@ -832,7 +835,7 @@ export const data = [ traits: { city: 'Pune', name: 'First User', - email: 'rohithkaza@rudderstack.com', + email: 'test@rudderstack.com', title: 'VP', gender: 'male', }, @@ -923,7 +926,7 @@ export const data = [ }, }, message: { - anonymousId: 'd6a9d06e8a464324d448003ff0467d971a55ca2950e11fc51faaec4e2850ecc6', + anonymousId: '1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd', event: 'sample', integrations: { Canny: false }, context: { @@ -937,10 +940,10 @@ export const data = [ }, traits: { created: '2022-07-15T11:16:32.648Z', - email: 'rohithkaza@abc.com', + email: 'test@rudderstack.com', isAdmin: true, - name: 'Rohith Kumar Kaza', - url: 'https://rudder.canny.io/admin/users/rohith-kumar-kaza-1', + name: 'Rudder Test', + url: 'https://rudder.canny.io/admin/users/dummyUser', }, externalId: [ { @@ -1053,7 +1056,7 @@ export const data = [ }, }, message: { - anonymousId: 'd6a9d06e8a464324d448003ff0467d971a55ca2950e11fc51faaec4e2850ecc6', + anonymousId: '1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd', event: 'sample3', integrations: { Canny: false }, context: { @@ -1067,10 +1070,10 @@ export const data = [ }, traits: { created: '2022-07-15T11:16:32.648Z', - email: 'rohithkaza@abc.com', + email: 'test@rudderstack.com', isAdmin: true, - name: 'Rohith Kumar Kaza', - url: 'https://rudder.canny.io/admin/users/rohith-kumar-kaza-1', + name: 'Rudder Test', + url: 'https://rudder.canny.io/admin/users/dummyUser', }, externalId: [ { @@ -1166,7 +1169,7 @@ export const data = [ }, }, message: { - anonymousId: 'd6a9d06e8a464324d448003ff0467d971a55ca2950e11fc51faaec4e2850ecc6', + anonymousId: '1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd', integrations: { Canny: false }, context: { library: { @@ -1179,10 +1182,10 @@ export const data = [ }, traits: { created: '2022-07-15T11:16:32.648Z', - email: 'rohithkaza@abc.com', + email: 'test@rudderstack.com', isAdmin: true, - name: 'Rohith Kumar Kaza', - url: 'https://rudder.canny.io/admin/users/rohith-kumar-kaza-1', + name: 'Rudder Test', + url: 'https://rudder.canny.io/admin/users/dummyUser', }, externalId: [ { @@ -1265,7 +1268,7 @@ export const data = [ }, }, message: { - anonymousId: 'd6a9d06e8a464324d448003ff0467d971a55ca2950e11fc51faaec4e2850ecc6', + anonymousId: '1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd', event: 'abc', integrations: { Canny: false }, context: { @@ -1279,10 +1282,10 @@ export const data = [ }, traits: { created: '2022-07-15T11:16:32.648Z', - email: 'rohithkaza@abc.com', + email: 'test@rudderstack.com', isAdmin: true, - name: 'Rohith Kumar Kaza', - url: 'https://rudder.canny.io/admin/users/rohith-kumar-kaza-1', + name: 'Rudder Test', + url: 'https://rudder.canny.io/admin/users/dummyUser', }, externalId: [ { @@ -1413,7 +1416,7 @@ export const data = [ traits: { city: 'Pune', name: 'First User', - email: 'rohithkaza@rudderstack.com', + email: 'test@rudderstack.com', title: 'VP', gender: 'male', }, @@ -1524,7 +1527,7 @@ export const data = [ traits: { city: 'Pune', name: 'First User', - email: 'rohithkaza@rudderstack.com', + email: 'test@rudderstack.com', title: 'VP', gender: 'male', }, @@ -1635,7 +1638,7 @@ export const data = [ traits: { city: 'Pune', name: 'First User', - email: 'rohithkaza@rudderstack.com', + email: 'test@rudderstack.com', title: 'VP', gender: 'male', }, @@ -1745,7 +1748,7 @@ export const data = [ traits: { city: 'Pune', name: 'First User', - email: 'rohithkaza@rudderstack.com', + email: 'test@rudderstack.com', title: 'VP', gender: 'male', }, diff --git a/test/integrations/destinations/canny/network.ts b/test/integrations/destinations/canny/network.ts new file mode 100644 index 00000000000..db1b6396327 --- /dev/null +++ b/test/integrations/destinations/canny/network.ts @@ -0,0 +1,83 @@ +export const networkCallsData = [ + { + httpReq: { + headers: { + Accept: 'application/json', + 'Content-Type': 'application/x-www-form-urlencoded', + }, + data: 'apiKey=apikey123&email=test%40rudderstack.com', + method: 'POST', + url: 'https://canny.io/api/v1/users/retrieve', + }, + httpRes: { + data: { + data: { + avatarURL: 'https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png', + created: '2022-07-15T11:16:32.648Z', + email: 'test@rudderstack.com', + id: '52d14c90fff7c80abcd12345', + isAdmin: true, + lastActivity: '2022-07-18T14:24:43.632Z', + name: 'Rudder Test', + url: 'https://ruderstack.canny.io/admin/users/dummyUser', + userID: null, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Accept: 'application/json', + 'Content-Type': 'application/x-www-form-urlencoded', + }, + data: 'apiKey=apikey123&email=test%40rudderstack.com', + method: 'POST', + url: 'https://canny.io/api/v1/users/retrieve', + }, + httpRes: { + data: { + data: { + avatarURL: 'https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png', + created: '2022-07-15T11:16:32.648Z', + email: 'test@rudderstack.com', + id: '52d14c90fff7c80abcd12345', + isAdmin: true, + lastActivity: '2022-07-18T14:24:43.632Z', + name: 'Rudder Test', + url: 'https://ruderstack.canny.io/admin/users/dummyUser', + userID: null, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Accept: 'application/json', + 'Content-Type': 'application/x-www-form-urlencoded', + }, + data: 'apiKey=apikey123&email=test%40rudderstack.com', + method: 'POST', + url: 'https://canny.io/api/v1/users/retrieve', + }, + httpRes: { + data: { + data: { + avatarURL: 'https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png', + created: '2022-07-15T11:16:32.648Z', + email: 'test@rudderstack.com', + id: '52d14c90fff7c80abcd12345', + isAdmin: true, + lastActivity: '2022-07-18T14:24:43.632Z', + name: 'Rudder Test', + url: 'https://ruderstack.canny.io/admin/users/dummyUser', + userID: null, + }, + }, + status: 200, + }, + }, +]; diff --git a/test/integrations/destinations/clevertap/dataDelivery/data.ts b/test/integrations/destinations/clevertap/dataDelivery/data.ts new file mode 100644 index 00000000000..bc8866823ec --- /dev/null +++ b/test/integrations/destinations/clevertap/dataDelivery/data.ts @@ -0,0 +1,227 @@ +export const data = [ + { + "name": "clevertap", + "description": "Test 0", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.clevertap.com/1/upload/test1", + "headers": { + "X-CleverTap-Account-Id": "476550467", + "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "Content-Type": "application/json" + }, + "body": { + "JSON": { + "d": [ + { + "type": "profile", + "profileData": { + "Email": "jamesDoe@gmail.com", + "Name": "James Doe", + "Phone": "92374162212", + "Gender": "M", + "Employed": true, + "DOB": "1614775793", + "Education": "Science", + "Married": "Y", + "Customer Type": "Prime", + "graduate": true, + "msg_push": true, + "msgSms": true, + "msgemail": true, + "msgwhatsapp": false, + "custom_tags": "[\"Test_User\",\"Interested_User\",\"DIY_Hobby\"]", + "custom_mappings": "{\"Office\":\"Trastkiv\",\"Country\":\"Russia\"}", + "address": "{\"city\":\"kolkata\",\"country\":\"India\",\"postalCode\":789223,\"state\":\"WB\",\"street\":\"\"}" + }, + "identity": "anon_id" + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "params": { + "destination": "clevertap" + } + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 200, + "body": { + "output": { + "status": 200, + "message": "Request Processed Successfully", + "destinationResponse": { + "response": { + "status": "success", + "processed": 1, + "unprocessed": [] + }, + "status": 200 + } + } + } + } + } + }, + { + "name": "clevertap", + "description": "Test 1", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "body": { + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {}, + "JSON": { + "d": [ + { + "identity": "anon-id-new", + "type": "event", + "evtName": "Web Page Viewed: Rudder", + "evtData": { + "title": "Home", + "path": "/" + } + } + ] + } + }, + "type": "REST", + "files": {}, + "method": "POST", + "headers": { + "X-CleverTap-Account-Id": "fakeId123", + "X-CleverTap-Passcode": "fakePasscode123", + "Content-Type": "application/json" + }, + "version": "1", + "endpoint": "https://api.clevertap.com/1/upload/test2", + "params": { + "destination": "clevertap" + } + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 401, + "body": { + "output": { + "status": 401, + "message": "Request failed with status: 401", + "destinationResponse": { + "response": { + "status": "fail", + "error": "Invalid Credentials", + "code": 401 + }, + "status": 401 + }, + "statTags": { + "destType": "CLEVERTAP", + "errorCategory": "network", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "errorType": "aborted", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination" + } + } + } + } + } + }, + { + "name": "clevertap", + "description": "Test 2", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "body": { + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {}, + "JSON": { + "d": [ + { + "identity": "anon-id-new", + "type": "event", + "evtData": { + "title": "Home", + "path": "/" + } + } + ] + } + }, + "type": "REST", + "files": {}, + "method": "POST", + "headers": { + "X-CleverTap-Account-Id": "476550467", + "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "Content-Type": "application/json" + }, + "version": "1", + "endpoint": "https://api.clevertap.com/1/upload/test3", + "params": { + "destination": "clevertap" + } + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 400, + "body": { + "output": { + "status": 400, + "message": "Request failed with status: 200", + "destinationResponse": { + "response": { + "status": "fail", + "processed": 0, + "unprocessed": [] + }, + "status": 200 + }, + "statTags": { + "destType": "CLEVERTAP", + "errorCategory": "network", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "errorType": "aborted", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination" + } + } + } + } + } + } +] \ No newline at end of file diff --git a/test/integrations/destinations/clevertap/deleteUsers/data.ts b/test/integrations/destinations/clevertap/deleteUsers/data.ts new file mode 100644 index 00000000000..c0eb447a532 --- /dev/null +++ b/test/integrations/destinations/clevertap/deleteUsers/data.ts @@ -0,0 +1,495 @@ +export const data = [ + { + name: 'clevertap', + description: 'Test 0', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'CLEVERTAP', + userAttributes: [ + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + ], + config: { + accountId: '476550467', + trackAnonymous: true, + enableObjectIdMapping: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'Project ID and Passcode is required for delete user', + }, + ], + }, + }, + }, + { + name: 'clevertap', + description: 'Test 1', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'CLEVERTAP', + userAttributes: [ + { + email: 'testUser@testMail.com', + }, + { + userId: 'user_sdk2', + }, + ], + config: { + passcode: 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + trackAnonymous: true, + enableObjectIdMapping: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'Project ID and Passcode is required for delete user', + }, + ], + }, + }, + }, + { + name: 'clevertap', + description: 'Test 2', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'CLEVERTAP', + userAttributes: [ + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + ], + config: { + accountId: 'testFail', + passcode: 'tofail', + trackAnonymous: true, + enableObjectIdMapping: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/clevertap/network.ts b/test/integrations/destinations/clevertap/network.ts new file mode 100644 index 00000000000..c4eb23ee398 --- /dev/null +++ b/test/integrations/destinations/clevertap/network.ts @@ -0,0 +1,264 @@ +const dataDeliveryMocksData = [ + { + httpReq: { + url: 'https://api.clevertap.com/1/upload/test1', + data: { + d: [ + { + type: 'profile', + profileData: { + Email: 'jamesDoe@gmail.com', + Name: 'James Doe', + Phone: '92374162212', + Gender: 'M', + Employed: true, + DOB: '1614775793', + Education: 'Science', + Married: 'Y', + 'Customer Type': 'Prime', + graduate: true, + msg_push: true, + msgSms: true, + msgemail: true, + msgwhatsapp: false, + custom_tags: '["Test_User","Interested_User","DIY_Hobby"]', + custom_mappings: '{"Office":"Trastkiv","Country":"Russia"}', + address: + '{"city":"kolkata","country":"India","postalCode":789223,"state":"WB","street":""}', + }, + identity: 'anon_id', + }, + ], + }, + params: { destination: 'clevertap' }, + headers: { + 'X-CleverTap-Account-Id': '476550467', + 'X-CleverTap-Passcode': + 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { data: { status: 'success', processed: 1, unprocessed: [] }, status: 200 }, + }, + { + httpReq: { + url: 'https://api.clevertap.com/1/upload/test2', + data: { + d: [ + { + identity: 'anon-id-new', + type: 'event', + evtName: 'Web Page Viewed: Rudder', + evtData: { title: 'Home', path: '/' }, + }, + ], + }, + params: { destination: 'clevertap' }, + headers: { + 'X-CleverTap-Account-Id': 'fakeId123', + 'X-CleverTap-Passcode': 'fakePasscode123', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { status: 'fail', error: 'Invalid Credentials', code: 401 }, status: 401 + }, + }, + { + httpReq: { + url: 'https://api.clevertap.com/1/upload/test3', + data: { + d: [{ identity: 'anon-id-new', type: 'event', evtData: { title: 'Home', path: '/' } }], + }, + params: { destination: 'clevertap' }, + headers: { + 'X-CleverTap-Account-Id': '476550467', + 'X-CleverTap-Passcode': + 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { data: { status: 'fail', processed: 0, unprocessed: [] }, status: 200 }, + }, +]; +const deleteNwData = [ + { + httpReq: { + method: 'post', + url: 'https://api.clevertap.com/1/delete/profiles.json', + data: { + identity: [ + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'user_sdk2', + ], + }, + headers: { + 'Content-Type': 'application/json', + 'X-CleverTap-Account-Id': 'testFail', + 'X-CleverTap-Passcode': 'tofail', + }, + }, + httpRes: { + data: { + code: 400, + message: 'Bad Req', + status: 'Fail Case', + }, + status: 400, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://api.clevertap.com/1/delete/profiles.json', + data: { + identity: [ + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + ], + }, + headers: { + 'Content-Type': 'application/json', + 'X-CleverTap-Account-Id': 'testFail', + 'X-CleverTap-Passcode': 'tofail', + }, + maxContentLength: 100000000, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': 'rpoxy', + }, + }, + }, +]; +export const networkCallsData = [...deleteNwData, ...dataDeliveryMocksData]; diff --git a/test/integrations/destinations/confluent_cloud/processor/data.ts b/test/integrations/destinations/confluent_cloud/processor/data.ts new file mode 100644 index 00000000000..dd43f1be83e --- /dev/null +++ b/test/integrations/destinations/confluent_cloud/processor/data.ts @@ -0,0 +1,835 @@ +export const data = [ + { + name: 'confluent_cloud', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1cCz8hts5rp3YWglzhU1GPmVdjE', + Name: 'Azure Event Hub', + DestinationDefinition: { + ID: '1cCs4qQ72QY8vovP7BlJ47mkjBh', + Name: 'AZURE_EVENT_HUB', + DisplayName: 'Azure Event Hub', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: null, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + event: 'Purchase', + integrations: { + All: true, + }, + messageId: 'ce46866c-6f19-42f0-86cb-18c51863b817', + originalTimestamp: '2020-05-21T10:23:15.984Z', + properties: { + currency: 'USD', + revenue: 100, + }, + receivedAt: '2020-05-21T15:53:16.013+05:30', + request_ip: '[::1]:59371', + sentAt: '2020-05-21T10:23:15.985Z', + timestamp: '2020-05-21T15:53:16.012+05:30', + type: 'track', + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 46, + messageId: 'ce46866c-6f19-42f0-86cb-18c51863b817', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + event: 'Purchase', + integrations: { + All: true, + }, + messageId: 'ce46866c-6f19-42f0-86cb-18c51863b817', + originalTimestamp: '2020-05-21T10:23:15.984Z', + properties: { + currency: 'USD', + revenue: 100, + }, + receivedAt: '2020-05-21T15:53:16.013+05:30', + request_ip: '[::1]:59371', + sentAt: '2020-05-21T10:23:15.985Z', + timestamp: '2020-05-21T15:53:16.012+05:30', + type: 'track', + userId: 'user-12345', + }, + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 46, + messageId: 'ce46866c-6f19-42f0-86cb-18c51863b817', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'confluent_cloud', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1cCz8hts5rp3YWglzhU1GPmVdjE', + Name: 'Azure Event Hub', + DestinationDefinition: { + ID: '1cCs4qQ72QY8vovP7BlJ47mkjBh', + Name: 'AZURE_EVENT_HUB', + DisplayName: 'Azure Event Hub', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: null, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'e02dafb0-9df8-4fa2-becd-f4d8617956a4', + originalTimestamp: '2020-05-21T10:23:15.975Z', + properties: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + receivedAt: '2020-05-21T15:53:16.014+05:30', + request_ip: '[::1]:58616', + sentAt: '2020-05-21T10:23:15.975Z', + timestamp: '2020-05-21T15:53:16.014+05:30', + type: 'page', + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 47, + messageId: 'e02dafb0-9df8-4fa2-becd-f4d8617956a4', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'e02dafb0-9df8-4fa2-becd-f4d8617956a4', + originalTimestamp: '2020-05-21T10:23:15.975Z', + properties: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + receivedAt: '2020-05-21T15:53:16.014+05:30', + request_ip: '[::1]:58616', + sentAt: '2020-05-21T10:23:15.975Z', + timestamp: '2020-05-21T15:53:16.014+05:30', + type: 'page', + userId: 'user-12345', + }, + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 47, + messageId: 'e02dafb0-9df8-4fa2-becd-f4d8617956a4', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'confluent_cloud', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1cCz8hts5rp3YWglzhU1GPmVdjE', + Name: 'Azure Event Hub', + DestinationDefinition: { + ID: '1cCs4qQ72QY8vovP7BlJ47mkjBh', + Name: 'AZURE_EVENT_HUB', + DisplayName: 'Azure Event Hub', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: null, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '41b62b30-db5d-450c-98ed-cec14ead27cc', + originalTimestamp: '2020-05-21T10:23:15.979Z', + receivedAt: '2020-05-21T15:53:16.014+05:30', + request_ip: '[::1]:59372', + sentAt: '2020-05-21T10:23:15.979Z', + timestamp: '2020-05-21T15:53:16.014+05:30', + type: 'identify', + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 48, + messageId: '41b62b30-db5d-450c-98ed-cec14ead27cc', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '41b62b30-db5d-450c-98ed-cec14ead27cc', + originalTimestamp: '2020-05-21T10:23:15.979Z', + receivedAt: '2020-05-21T15:53:16.014+05:30', + request_ip: '[::1]:59372', + sentAt: '2020-05-21T10:23:15.979Z', + timestamp: '2020-05-21T15:53:16.014+05:30', + type: 'identify', + userId: 'user-12345', + }, + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 48, + messageId: '41b62b30-db5d-450c-98ed-cec14ead27cc', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'confluent_cloud', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1cCz8hts5rp3YWglzhU1GPmVdjE', + Name: 'Azure Event Hub', + DestinationDefinition: { + ID: '1cCs4qQ72QY8vovP7BlJ47mkjBh', + Name: 'AZURE_EVENT_HUB', + DisplayName: 'Azure Event Hub', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: null, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + event: 'test track without property', + integrations: { + All: true, + }, + messageId: 'c409577d-5dd4-430a-8965-a20aed7b9c9e', + originalTimestamp: '2020-05-21T10:23:15.981Z', + properties: {}, + receivedAt: '2020-05-21T15:53:16.014+05:30', + request_ip: '[::1]:59374', + sentAt: '2020-05-21T10:23:15.981Z', + timestamp: '2020-05-21T15:53:16.014+05:30', + type: 'track', + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 49, + messageId: 'c409577d-5dd4-430a-8965-a20aed7b9c9e', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + event: 'test track without property', + integrations: { + All: true, + }, + messageId: 'c409577d-5dd4-430a-8965-a20aed7b9c9e', + originalTimestamp: '2020-05-21T10:23:15.981Z', + properties: {}, + receivedAt: '2020-05-21T15:53:16.014+05:30', + request_ip: '[::1]:59374', + sentAt: '2020-05-21T10:23:15.981Z', + timestamp: '2020-05-21T15:53:16.014+05:30', + type: 'track', + userId: 'user-12345', + }, + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 49, + messageId: 'c409577d-5dd4-430a-8965-a20aed7b9c9e', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'confluent_cloud', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1cCz8hts5rp3YWglzhU1GPmVdjE', + Name: 'Azure Event Hub', + DestinationDefinition: { + ID: '1cCs4qQ72QY8vovP7BlJ47mkjBh', + Name: 'AZURE_EVENT_HUB', + DisplayName: 'Azure Event Hub', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: null, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + event: 'test track with property', + integrations: { + All: true, + }, + messageId: 'f8b6e882-3186-446a-b589-51eba60930d7', + originalTimestamp: '2020-05-21T10:23:15.982Z', + properties: { + test_prop_1: 'test prop', + test_prop_2: 1232, + }, + receivedAt: '2020-05-21T15:53:16.014+05:30', + request_ip: '[::1]:59373', + sentAt: '2020-05-21T10:23:15.983Z', + timestamp: '2020-05-21T15:53:16.013+05:30', + type: 'track', + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 50, + messageId: 'f8b6e882-3186-446a-b589-51eba60930d7', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index7.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/index7.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'test@kinesis.com', + firstname: 'Test Kinesis', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', + }, + event: 'test track with property', + integrations: { + All: true, + }, + messageId: 'f8b6e882-3186-446a-b589-51eba60930d7', + originalTimestamp: '2020-05-21T10:23:15.982Z', + properties: { + test_prop_1: 'test prop', + test_prop_2: 1232, + }, + receivedAt: '2020-05-21T15:53:16.014+05:30', + request_ip: '[::1]:59373', + sentAt: '2020-05-21T10:23:15.983Z', + timestamp: '2020-05-21T15:53:16.013+05:30', + type: 'track', + userId: 'user-12345', + }, + userId: 'user-12345', + }, + metadata: { + anonymousId: 'd36981e7-6413-4862-9bb9-b8595fb3d0d4', + destinationId: '1cCz8hts5rp3YWglzhU1GPmVdjE', + destinationType: 'AZURE_EVENT_HUB', + jobId: 50, + messageId: 'f8b6e882-3186-446a-b589-51eba60930d7', + sourceId: '1bqCEGibwCvR7F0acuLzbEMQYIC', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/courier/processor/data.ts b/test/integrations/destinations/courier/processor/data.ts new file mode 100644 index 00000000000..9371f9e7b25 --- /dev/null +++ b/test/integrations/destinations/courier/processor/data.ts @@ -0,0 +1,333 @@ +export const data = [ + { + name: 'courier', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + channel: 'web', + event: 'Product Added', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + destination: { + Config: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'apiKey is required', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'COURIER', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'courier', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + ip: '8.8.8.8', + }, + traits: { + name: 'Joe Doe', + email: 'joe@example.com', + plan: 'basic', + age: 27, + }, + type: 'identify', + userId: 'userIdTest', + originalTimestamp: '2022-10-17T15:53:10.566+05:30', + messageId: '8d04cc30-fc15-49bd-901f-c5c3f72a7d82', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.courier.com/inbound/rudderstack', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer dummyApiKey', + }, + params: {}, + body: { + JSON: { + context: { + ip: '8.8.8.8', + }, + traits: { + name: 'Joe Doe', + email: 'joe@example.com', + plan: 'basic', + age: 27, + }, + type: 'identify', + userId: 'userIdTest', + originalTimestamp: '2022-10-17T15:53:10.566+05:30', + messageId: '8d04cc30-fc15-49bd-901f-c5c3f72a7d82', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'courier', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + ip: '8.8.8.8', + traits: { + name: 'Joe Doe', + email: 'joe@example.com', + plan: 'basic', + age: 27, + }, + }, + type: 'identify', + userId: 'userIdTest', + originalTimestamp: '2022-10-17T15:53:10.566+05:30', + messageId: '8d04cc30-fc15-49bd-901f-c5c3f72a7d82', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.courier.com/inbound/rudderstack', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer dummyApiKey', + }, + params: {}, + body: { + JSON: { + context: { + ip: '8.8.8.8', + traits: { + name: 'Joe Doe', + email: 'joe@example.com', + plan: 'basic', + age: 27, + }, + }, + type: 'identify', + userId: 'userIdTest', + originalTimestamp: '2022-10-17T15:53:10.566+05:30', + messageId: '8d04cc30-fc15-49bd-901f-c5c3f72a7d82', + traits: { + name: 'Joe Doe', + email: 'joe@example.com', + plan: 'basic', + age: 27, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'courier', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + ip: '8.8.8.8', + }, + type: 'identify', + userId: 'userIdTest', + originalTimestamp: '2022-10-17T15:53:10.566+05:30', + messageId: '8d04cc30-fc15-49bd-901f-c5c3f72a7d82', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'traits is a required field for identify call', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'COURIER', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'courier', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + ip: '8.8.8.8', + }, + event: 'trackTest', + properties: { + activity: 'checkout', + }, + userId: 'userIdTest', + type: 'track', + messageId: '3c0abc14-96a2-4aed-9dfc-ee463832cc24', + originalTimestamp: '2022-10-17T15:32:44.202+05:30', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.courier.com/inbound/rudderstack', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer dummyApiKey', + }, + params: {}, + body: { + JSON: { + context: { + ip: '8.8.8.8', + }, + event: 'trackTest', + properties: { + activity: 'checkout', + }, + userId: 'userIdTest', + type: 'track', + messageId: '3c0abc14-96a2-4aed-9dfc-ee463832cc24', + originalTimestamp: '2022-10-17T15:32:44.202+05:30', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/courier/router/data.ts b/test/integrations/destinations/courier/router/data.ts new file mode 100644 index 00000000000..a3a32371972 --- /dev/null +++ b/test/integrations/destinations/courier/router/data.ts @@ -0,0 +1,160 @@ +export const data = [ + { + name: 'courier', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'track', + channel: 'web', + event: 'Product Added', + userId: 'test123', + properties: { + price: 999, + quantity: 1, + }, + context: { + traits: { + firstName: 'John', + age: 27, + }, + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + }, + }, + metadata: { + jobId: 1, + }, + }, + { + message: { + type: 'track', + channel: 'web', + event: 'Product Added', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + destination: { + Config: { + sdkKey: 'test-sdk-key', + trackKnownUsers: false, + nonInteraction: false, + listen: false, + trackCategorizedPages: true, + trackNamedPages: true, + }, + }, + metadata: { + jobId: 2, + }, + }, + ], + destType: 'courier', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.courier.com/inbound/rudderstack', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + type: 'track', + channel: 'web', + event: 'Product Added', + userId: 'test123', + properties: { + price: 999, + quantity: 1, + }, + context: { + traits: { + firstName: 'John', + age: 27, + }, + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + }, + }, + metadata: [ + { + jobId: 1, + }, + ], + statusCode: 200, + }, + { + batched: false, + error: 'apiKey is required', + metadata: [ + { + jobId: 2, + }, + ], + statTags: { + destType: 'COURIER', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + destination: { + Config: { + sdkKey: 'test-sdk-key', + trackKnownUsers: false, + nonInteraction: false, + listen: false, + trackCategorizedPages: true, + trackNamedPages: true, + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/criteo_audience/dataDelivery/data.ts b/test/integrations/destinations/criteo_audience/dataDelivery/data.ts new file mode 100644 index 00000000000..bc3af8f22d9 --- /dev/null +++ b/test/integrations/destinations/criteo_audience/dataDelivery/data.ts @@ -0,0 +1,530 @@ +export const data = [ + { + "name": "criteo_audience", + "description": "Test 0", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "version": "1", + "type": "REST", + "method": "PATCH", + "endpoint": "https://api.criteo.com/2022-10/audiences/34894/contactlist", + "headers": { + "Authorization": "Bearer success_access_token", + "Content-Type": "application/json", + "Accept": "application/json" + }, + "body": { + "JSON": { + "data": { + "type": "ContactlistAmendment", + "attributes": { + "operation": "remove", + "identifierType": "gum", + "identifiers": [ + "sample_gum3" + ], + "internalIdentifiers": false, + "gumCallerId": "329739" + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "params": { + "destination": "criteo_audience" + } + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 200, + "body": { + "output": { + "status": 200, + "message": "Request Processed Successfully", + "destinationResponse": { + "response": "", + "status": 200 + } + } + } + } + } + }, + { + "name": "criteo_audience", + "description": "Test 1", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "version": "1", + "type": "REST", + "method": "PATCH", + "endpoint": "https://api.criteo.com/2022-10/audiences/3485/contactlist", + "headers": { + "Authorization": "Bearer success_access_token", + "Content-Type": "application/json", + "Accept": "application/json" + }, + "body": { + "JSON": { + "data": { + "type": "ContactlistAmendment", + "attributes": { + "operation": "add", + "identifierType": "madid", + "identifiers": [ + "sample_madid", + "sample_madid_1", + "sample_madid_2" + ], + "internalIdentifiers": false + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "params": { + "destination": "criteo_audience" + } + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 401, + "body": { + "output": { + "status": 401, + "authErrorCategory": "REFRESH_TOKEN", + "destinationResponse": { + "errors": [ + { + "traceIdentifier": "80a1a0ba3981b04da847d05700752c77", + "type": "authorization", + "code": "authorization-token-expired", + "instance": "/2022-10/audiences/123/contactlist", + "title": "The authorization token has expired" + } + ] + }, + "message": "The authorization token has expired during criteo_audience response transformation", + "statTags": { + "destType": "CRITEO_AUDIENCE", + "errorCategory": "network", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "errorType": "aborted", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination" + } + } + } + } + } + }, + { + "name": "criteo_audience", + "description": "Test 2", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "version": "1", + "type": "REST", + "method": "PATCH", + "endpoint": "https://api.criteo.com/2022-10/audiences/34895/contactlist", + "headers": { + "Authorization": "Bearer success_access_token", + "Content-Type": "application/json", + "Accept": "application/json" + }, + "body": { + "JSON": { + "data": { + "type": "ContactlistAmendment", + "attributes": { + "operation": "add", + "identifierType": "madid", + "identifiers": [ + "sample_madid", + "sample_madid_1", + "sample_madid_2" + ], + "internalIdentifiers": false + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "params": { + "destination": "criteo_audience" + } + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 401, + "body": { + "output": { + "status": 401, + "authErrorCategory": "REFRESH_TOKEN", + "destinationResponse": { + "errors": [ + { + "traceIdentifier": "80a1a0ba3981b04da847d05700752c77", + "type": "authorization", + "code": "authorization-token-invalid", + "instance": "/2022-10/audiences/123/contactlist", + "title": "The authorization header is invalid" + } + ] + }, + "message": "The authorization header is invalid during criteo_audience response transformation", + "statTags": { + "destType": "CRITEO_AUDIENCE", + "errorCategory": "network", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "errorType": "aborted", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination" + } + } + } + } + } + }, + { + "name": "criteo_audience", + "description": "Test 3", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "version": "1", + "type": "REST", + "method": "PATCH", + "endpoint": "https://api.criteo.com/2022-10/audiences/34896/contactlist", + "headers": { + "Authorization": "Bearer success_access_token", + "Content-Type": "application/json", + "Accept": "application/json" + }, + "body": { + "JSON": { + "data": { + "type": "ContactlistAmendment", + "attributes": { + "operation": "add", + "identifierType": "madid", + "identifiers": [ + "sample_madid", + "sample_madid_1", + "sample_madid_2" + ], + "internalIdentifiers": false + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "params": { + "destination": "criteo_audience" + } + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 400, + "body": { + "output": { + "message": "AudienceId is Invalid. Please Provide Valid AudienceId", + "destinationResponse": { + "response": { + "errors": [ + { + "code": "audience-invalid", + "traceIdentifier": "80a1a0ba3981b04da847d05700752c77", + "type": "authorization" + } + ] + }, + "status": 404 + }, + "statTags": { + "destType": "CRITEO_AUDIENCE", + "errorCategory": "network", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "errorType": "aborted", + "feature": "dataDelivery", + "implementation": "native", + "meta": "instrumentation", + "module": "destination" + }, + "status": 400 + } + } + } + } + }, + { + "name": "criteo_audience", + "description": "Test 4", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "version": "1", + "type": "REST", + "method": "PATCH", + "endpoint": "https://api.criteo.com/2022-10/audiences/34897/contactlist", + "headers": { + "Authorization": "Bearer success_access_token", + "Content-Type": "application/json", + "Accept": "application/json" + }, + "body": { + "JSON": { + "data": { + "type": "ContactlistAmendment", + "attributes": { + "operation": "add", + "identifierType": "madid", + "identifiers": [ + "sample_madid", + "sample_madid_1", + "sample_madid_2" + ], + "internalIdentifiers": false + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "params": { + "destination": "criteo_audience" + } + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 500, + "body": { + "output": { + "destinationResponse": { + "response": { + "errors": [ + { + "code": "audience-invalid", + "traceIdentifier": "80a1a0ba3981b04da847d05700752c77", + "type": "authorization" + } + ] + }, + "status": 503 + }, + "message": "Request Failed: during criteo_audience response transformation (Retryable)", + "statTags": { + "destType": "CRITEO_AUDIENCE", + "errorCategory": "network", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "feature": "dataDelivery", + "implementation": "native", + "errorType": "retryable", + "module": "destination" + }, + "status": 500 + } + } + } + } + }, + { + "name": "criteo_audience", + "description": "Test 5", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "version": "1", + "type": "REST", + "method": "PATCH", + "endpoint": "https://api.criteo.com/2022-10/audiences/34898/contactlist", + "headers": { + "Authorization": "Bearer success_access_token", + "Content-Type": "application/json", + "Accept": "application/json" + }, + "body": { + "JSON": { + "data": { + "type": "ContactlistAmendment", + "attributes": { + "operation": "add", + "identifierType": "madid", + "identifiers": [ + "sample_madid", + "sample_madid_1", + "sample_madid_2" + ], + "internalIdentifiers": false + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "params": { + "destination": "criteo_audience" + } + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 429, + "body": { + "output": { + "destinationResponse": { + "response": {}, + "status": 429 + }, + "message": "Request Failed: during criteo_audience response transformation - due to Request Limit exceeded, (Throttled)", + "statTags": { + "destType": "CRITEO_AUDIENCE", + "errorCategory": "network", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "errorType": "throttled", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination" + }, + "status": 429 + } + } + } + } + }, + { + "name": "criteo_audience", + "description": "Test 6", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "version": "1", + "type": "REST", + "method": "PATCH", + "endpoint": "https://api.criteo.com/2022-10/audiences/34899/contactlist", + "headers": { + "Authorization": "Bearer success_access_token", + "Content-Type": "application/json", + "Accept": "application/json" + }, + "body": { + "JSON": { + "data": { + "type": "ContactlistAmendment", + "attributes": { + "operation": "add", + "identifierType": "madid", + "identifiers": [ + "sample_madid", + "sample_madid_1", + "sample_madid_2" + ], + "internalIdentifiers": false + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "params": { + "destination": "criteo_audience" + } + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 400, + "body": { + "output": { + "destinationResponse": { + "response": { + "message": "unknown error" + }, + "status": 410 + }, + "message": "Request Failed: during criteo_audience response transformation with status \"410\" due to \"{\"message\":\"unknown error\"}\", (Aborted) ", + "statTags": { + "destType": "CRITEO_AUDIENCE", + "errorCategory": "network", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "errorType": "aborted", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination" + }, + "status": 400 + } + } + } + } + } +] \ No newline at end of file diff --git a/test/integrations/destinations/criteo_audience/network.ts b/test/integrations/destinations/criteo_audience/network.ts new file mode 100644 index 00000000000..959e8a21127 --- /dev/null +++ b/test/integrations/destinations/criteo_audience/network.ts @@ -0,0 +1,230 @@ +export const networkCallsData = [ + { + httpReq: { + url: 'https://api.criteo.com/2022-10/audiences/34894/contactlist', + data: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'remove', + identifierType: 'gum', + identifiers: ['sample_gum3'], + internalIdentifiers: false, + gumCallerId: '329739', + }, + }, + }, + params: { destination: 'criteo_audience' }, + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'PATCH', + }, + httpRes: { status: 200 }, + }, + { + httpReq: { + url: 'https://api.criteo.com/2022-10/audiences/3485/contactlist', + data: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'madid', + identifiers: ['sample_madid', 'sample_madid_1', 'sample_madid_2'], + internalIdentifiers: false, + }, + }, + }, + params: { destination: 'criteo_audience' }, + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'PATCH', + }, + httpRes: { + code: '400', + data: { + errors: [ + { + traceIdentifier: '80a1a0ba3981b04da847d05700752c77', + type: 'authorization', + code: 'authorization-token-expired', + instance: '/2022-10/audiences/123/contactlist', + title: 'The authorization token has expired', + }, + ], + }, + status: 401, + }, + }, + { + httpReq: { + url: 'https://api.criteo.com/2022-10/audiences/34895/contactlist', + data: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'madid', + identifiers: ['sample_madid', 'sample_madid_1', 'sample_madid_2'], + internalIdentifiers: false, + }, + }, + }, + params: { destination: 'criteo_audience' }, + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'PATCH', + }, + httpRes: { + code: '400', + data: { + errors: [ + { + traceIdentifier: '80a1a0ba3981b04da847d05700752c77', + type: 'authorization', + code: 'authorization-token-invalid', + instance: '/2022-10/audiences/123/contactlist', + title: 'The authorization header is invalid', + }, + ], + }, + status: 401, + }, + }, + { + httpReq: { + url: 'https://api.criteo.com/2022-10/audiences/34896/contactlist', + data: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'madid', + identifiers: ['sample_madid', 'sample_madid_1', 'sample_madid_2'], + internalIdentifiers: false, + }, + }, + }, + params: { destination: 'criteo_audience' }, + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'PATCH', + }, + httpRes: { + code: '400', + data: { + errors: [ + { + traceIdentifier: '80a1a0ba3981b04da847d05700752c77', + type: 'authorization', + code: 'audience-invalid', + }, + ], + }, + status: 404, + }, + }, + { + httpReq: { + url: 'https://api.criteo.com/2022-10/audiences/34897/contactlist', + data: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'madid', + identifiers: ['sample_madid', 'sample_madid_1', 'sample_madid_2'], + internalIdentifiers: false, + }, + }, + }, + params: { destination: 'criteo_audience' }, + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'PATCH', + }, + httpRes: { + code: '500', + data: { + errors: [ + { + traceIdentifier: '80a1a0ba3981b04da847d05700752c77', + type: 'authorization', + code: 'audience-invalid', + }, + ], + }, + status: 503, + }, + }, + { + httpReq: { + url: 'https://api.criteo.com/2022-10/audiences/34898/contactlist', + data: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'madid', + identifiers: ['sample_madid', 'sample_madid_1', 'sample_madid_2'], + internalIdentifiers: false, + }, + }, + }, + params: { destination: 'criteo_audience' }, + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'PATCH', + }, + httpRes: { code: '429', data: {}, status: 429 }, + }, + { + httpReq: { + url: 'https://api.criteo.com/2022-10/audiences/34899/contactlist', + data: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'madid', + identifiers: ['sample_madid', 'sample_madid_1', 'sample_madid_2'], + internalIdentifiers: false, + }, + }, + }, + params: { destination: 'criteo_audience' }, + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'PATCH', + }, + httpRes: { code: '400', data: { message: 'unknown error' }, status: 410 }, + }, +]; diff --git a/test/integrations/destinations/criteo_audience/processor/data.ts b/test/integrations/destinations/criteo_audience/processor/data.ts new file mode 100644 index 00000000000..61573fed9b2 --- /dev/null +++ b/test/integrations/destinations/criteo_audience/processor/data.ts @@ -0,0 +1,1616 @@ +export const data = [ + { + name: 'criteo_audience', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + madid: 'sample_madid', + email: 'alex@email.com', + }, + { + madid: 'sample_madid_1', + email: 'amy@email.com', + }, + { + madid: 'sample_madid_2', + email: 'van@email.com', + }, + { + madid: 'sample_madid', + email: 'alex@email.com', + }, + { + madid: 'sample_madid_1', + email: 'amy@email.com', + }, + { + madid: 'sample_madid_2', + email: 'van@email.com', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34894', + audienceType: 'email', + }, + ID: 'sample_destinationId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34894/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'email', + internalIdentifiers: false, + identifiers: [ + 'alex@email.com', + 'amy@email.com', + 'van@email.com', + 'alex@email.com', + 'amy@email.com', + 'van@email.com', + ], + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'criteo_audience', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + madid: 'sample_madid', + }, + { + madid: 'sample_madid_1', + }, + { + madid: 'sample_madid_2', + }, + { + madid: 'sample_madid_10', + }, + { + madid: 'sample_madid_13', + }, + { + madid: 'sample_madid_11', + }, + { + madid: 'sample_madid_12', + }, + ], + remove: [ + { + madid: 'sample_madid_3', + }, + { + madid: 'sample_madid_4', + }, + { + madid: 'sample_madid_5', + }, + { + madid: 'sample_madid_6', + }, + { + madid: 'sample_madid_7', + }, + { + madid: 'sample_madid_8', + }, + { + madid: 'sample_madid_9', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34893', + audienceType: 'madid', + }, + ID: 'sample_destinationId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34893/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'madid', + internalIdentifiers: false, + identifiers: [ + 'sample_madid', + 'sample_madid_1', + 'sample_madid_2', + 'sample_madid_10', + 'sample_madid_13', + 'sample_madid_11', + 'sample_madid_12', + ], + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34893/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'remove', + identifierType: 'madid', + internalIdentifiers: false, + identifiers: [ + 'sample_madid_3', + 'sample_madid_4', + 'sample_madid_5', + 'sample_madid_6', + 'sample_madid_7', + 'sample_madid_8', + 'sample_madid_9', + ], + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'criteo_audience', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + madid: 'sample_madid', + email: 'alex@email.com', + identityLink: 'text.com', + gum: 'sdjfds', + }, + { + madid: 'sample_madid_1', + email: 'amy@email.com', + identityLink: 'yahoo.com', + gum: 'sdjfds', + }, + { + madid: 'sample_madid_2', + email: 'van@email.com', + identityLink: 'abc.com', + gum: 'sdjfds', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34894', + audienceType: 'email', + }, + ID: 'sample_destinationId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34894/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'email', + internalIdentifiers: false, + identifiers: ['alex@email.com', 'amy@email.com', 'van@email.com'], + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'criteo_audience', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + madid: 'sample_madid', + email: 'alex@email.com', + identityLink: 'text.com', + gum: 'sdjfds', + }, + { + madid: 'sample_madid_1', + email: 'amy@email.com', + identityLink: 'yahoo.com', + gum: 'sdjfds', + }, + { + madid: 'sample_madid_2', + email: 'van@email.com', + identityLink: 'abc.com', + gum: 'sdjfds', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34895', + audienceType: 'madid', + }, + ID: 'sample_destinationId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34895/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'madid', + internalIdentifiers: false, + identifiers: ['sample_madid', 'sample_madid_1', 'sample_madid_2'], + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'criteo_audience', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + madid: 'sample_madid', + email: 'alex@email.com', + identityLink: 'text.com', + gum: 'sdjfds', + }, + { + madid: 'sample_madid_1', + email: 'amy@email.com', + identityLink: 'yahoo.com', + gum: 'sdjfds', + }, + { + madid: 'sample_madid_2', + email: 'van@email.com', + identityLink: 'abc.com', + gum: 'sdjfds', + }, + ], + remove: [ + { + madid: 'sample_madid', + email: 'alex@email.com', + identityLink: 'text.com', + gum: 'sdjfds', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34893', + audienceType: 'madid', + }, + ID: 'sample_destinationId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34893/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'madid', + internalIdentifiers: false, + identifiers: ['sample_madid', 'sample_madid_1', 'sample_madid_2'], + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34893/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'remove', + identifierType: 'madid', + internalIdentifiers: false, + identifiers: ['sample_madid'], + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'criteo_audience', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + madid: 'sample_madid', + email: 'alex@email.com', + identityLink: 'text.com', + gum: 'sdjfds', + }, + { + madid: 'sample_madid_1', + email: 'amy@email.com', + identityLink: 'yahoo.com', + gum: 'sdjfds', + }, + { + madid: 'sample_madid_2', + email: 'van@email.com', + identityLink: 'abc.com', + gum: 'sdjfds', + }, + ], + remove: [ + { + madid: 'sample_madid', + email: 'alex@email.com', + identityLink: 'text.com', + gum: 'sdjfds', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34893', + audienceType: 'identityLink', + }, + ID: 'sample_destinationId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34893/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'identityLink', + internalIdentifiers: false, + identifiers: ['text.com', 'yahoo.com', 'abc.com'], + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34893/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'remove', + identifierType: 'identityLink', + internalIdentifiers: false, + identifiers: ['text.com'], + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'criteo_audience', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + madid: 'sample_madid', + email: 'alex@email.com', + identityLink: 'text.com', + gum: 'sample_gum1', + }, + { + madid: 'sample_madid_1', + email: 'amy@email.com', + identityLink: 'yahoo.com', + gum: 'sample_gum2', + }, + { + madid: 'sample_madid_2', + email: 'van@email.com', + identityLink: 'abc.com', + gum: 'sample_gum3', + }, + ], + remove: [ + { + madid: 'sample_madid', + email: 'alex@email.com', + identityLink: 'text.com', + gum: 'sample_gum3', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34893', + audienceType: 'gum', + gumCallerId: '329739', + }, + ID: 'sample_destinationId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34893/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'gum', + internalIdentifiers: false, + gumCallerId: '329739', + identifiers: ['sample_gum1', 'sample_gum2', 'sample_gum3'], + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34893/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'remove', + identifierType: 'gum', + internalIdentifiers: false, + gumCallerId: '329739', + identifiers: ['sample_gum3'], + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'criteo_audience', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + message: { + userId: 'user 1', + type: 'identify', + properties: { + listData: { + add: [ + { + madid: 'sample_madid', + email: 'alex@email.com', + identityLink: 'text.com', + gum: 'sdjfds', + }, + { + madid: 'sample_madid_1', + email: 'amy@email.com', + identityLink: 'yahoo.com', + gum: 'sdjfds', + }, + { + madid: 'sample_madid_2', + email: 'van@email.com', + identityLink: 'abc.com', + gum: 'sdjfds', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34893', + audienceType: 'email', + }, + ID: 'sample_destinationId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 400, + error: 'Event type identify is not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'CRITEO_AUDIENCE', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'criteo_audience', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34893', + audienceType: 'email', + }, + ID: 'sample_destinationId', + }, + message: { + type: 'audiencelist', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + context: { + os: { + name: '', + version: '1.12.3', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { + brand: 'John Players', + price: '15000', + firstName: 'Test', + email: 'test@rudderstack.com', + userId: 'user@27', + }, + locale: 'en-US', + device: { + token: 'token', + id: 'id', + type: 'ios', + }, + screen: { + density: 2, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 400, + error: 'Message properties is not present. Aborting message.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'CRITEO_AUDIENCE', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'criteo_audience', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34893', + audienceType: 'email', + }, + ID: 'sample_destinationId', + }, + message: { + event: 'add_to_Cart', + type: 'track', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + properties: { + brand: 'Zara', + price: '12000', + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { + density: 2, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 400, + error: 'listData is not present inside properties. Aborting message.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'CRITEO_AUDIENCE', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'criteo_audience', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: {}, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34893', + audienceType: 'email', + }, + ID: 'sample_destinationId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 400, + error: 'Payload could not be populated', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'CRITEO_AUDIENCE', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'criteo_audience', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34893', + audienceType: 'email', + }, + ID: 'sample_destinationId', + }, + message: { + event: 'add_to_Cart', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + properties: { + brand: 'Zara', + price: '12000', + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { + density: 2, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 400, + error: 'Message Type is not present. Aborting message.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'CRITEO_AUDIENCE', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'criteo_audience', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + destination: { + Config: { + audienceId: '34893', + audienceType: 'gum', + }, + ID: 'sample_destinationId', + }, + message: { + event: 'add_to_Cart', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + type: 'audiencelist', + channel: 'web', + properties: { + listData: { + add: [ + { + madid: 'sample_madid', + email: 'alex@email.com', + identityLink: 'text.com', + gum: 'sample_gum1', + }, + { + madid: 'sample_madid_1', + email: 'amy@email.com', + identityLink: 'yahoo.com', + gum: 'sample_gum2', + }, + { + madid: 'sample_madid_2', + email: 'van@email.com', + identityLink: 'abc.com', + gum: 'sample_gum3', + }, + ], + }, + brand: 'Zara', + price: '12000', + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { + density: 2, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 400, + error: 'gumCallerId is required for audience type gum', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'CRITEO_AUDIENCE', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'criteo_audience', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + madid: 'sample_madid', + email: 'alex@email.com', + identityLink: 'text.com', + gum: 'sdjfds', + }, + { + madid: 'sample_madid_1', + email: 'amy@email.com', + identityLink: 'yahoo.com', + gum: 'sdjfds', + }, + { + madid: 'sample_madid_2', + identityLink: 'abc.com', + gum: 'sdjfds', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34894', + audienceType: 'email', + }, + ID: 'sample_destinationId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + accessToken: 'success_access_token', + }, + }, + statusCode: 400, + error: 'Required property for email type audience is not available in an object', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'CRITEO_AUDIENCE', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/criteo_audience/router/data.ts b/test/integrations/destinations/criteo_audience/router/data.ts new file mode 100644 index 00000000000..a91c1126633 --- /dev/null +++ b/test/integrations/destinations/criteo_audience/router/data.ts @@ -0,0 +1,270 @@ +export const data = [ + { + name: 'criteo_audience', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34893', + audienceType: 'email', + }, + ID: 'iwehr83843', + }, + metadata: { + secret: { + accessToken: 'success_access_token', + }, + jobId: 1, + }, + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + madid: 'sample_madid', + email: 'alex@email.com', + identityLink: 'text.com', + gum: 'sdjfds', + }, + { + madid: 'sample_madid_1', + email: 'amy@email.com', + identityLink: 'yahoo.com', + gum: 'sdjfds', + }, + { + madid: 'sample_madid_2', + email: 'van@email.com', + identityLink: 'abc.com', + gum: 'sdjfds', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + { + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34893', + audienceType: 'madid', + }, + ID: 'iwehr83843', + }, + metadata: { + secret: { + accessToken: 'success_access_token', + }, + jobId: 2, + }, + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + madid: 'sample_madid', + email: 'alex@email.com', + identityLink: 'text.com', + gum: 'sdjfds', + }, + { + madid: 'sample_madid_1', + email: 'amy@email.com', + identityLink: 'yahoo.com', + gum: 'sdjfds', + }, + { + madid: 'sample_madid_2', + email: 'van@email.com', + identityLink: 'abc.com', + gum: 'sdjfds', + }, + ], + remove: [ + { + madid: 'sample_madid', + email: 'alex@email.com', + identityLink: 'text.com', + gum: 'sdjfds', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + destType: 'criteo_audience', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34893/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'email', + identifiers: ['alex@email.com', 'amy@email.com', 'van@email.com'], + internalIdentifiers: false, + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 1, + secret: { + accessToken: 'success_access_token', + }, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34893', + audienceType: 'email', + }, + ID: 'iwehr83843', + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34893/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'add', + identifierType: 'madid', + identifiers: ['sample_madid', 'sample_madid_1', 'sample_madid_2'], + internalIdentifiers: false, + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'PATCH', + endpoint: 'https://api.criteo.com/2022-10/audiences/34893/contactlist', + headers: { + Authorization: 'Bearer success_access_token', + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + data: { + type: 'ContactlistAmendment', + attributes: { + operation: 'remove', + identifierType: 'madid', + identifiers: ['sample_madid'], + internalIdentifiers: false, + }, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 2, + secret: { + accessToken: 'success_access_token', + }, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + clientId: 'abcdef8-f49-4cd6-b4c5-958b3d66d431', + clientSecret: 'sjhdkhfrz6yc9LrRRIPimE9h53jADLccXTykHCcA6eEoFR4rXQg', + audienceId: '34893', + audienceType: 'madid', + }, + ID: 'iwehr83843', + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/customerio/processor/data.ts b/test/integrations/destinations/customerio/processor/data.ts new file mode 100644 index 00000000000..5bbbfe7b106 --- /dev/null +++ b/test/integrations/destinations/customerio/processor/data.ts @@ -0,0 +1,8278 @@ +export const data = [ + { + name: 'customerio', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + type: 'identify', + userId: 'cio_1234', + integrations: { + All: true, + }, + traits: { + email: 'updated_email@example.com', + id: 'updated-id-value', + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + email: 'updated_email@example.com', + id: 'updated-id-value', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/customers/cio_1234', + userId: 'cio_1234', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'PUT', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '123456', + email: 'test@rudderstack.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + ip: '0.0.0.0', + age: 26, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + user_properties: { + prop1: 'val1', + prop2: 'val2', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: '123456', + integrations: { + All: true, + }, + traits: { + anonymousId: 'anon-id', + email: 'test@gmail.com', + 'dot.name': 'Arnab Pal', + address: { + city: 'NY', + country: 'USA', + postalCode: 712136, + state: 'CA', + street: '', + }, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'apiKey not found in Configs', + statTags: { + destType: 'CUSTOMERIO', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '123456', + email: 'test@rudderstack.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + ip: '0.0.0.0', + age: 26, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + user_properties: { + prop1: 'val1', + prop2: 'val2', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: '123456', + integrations: { + All: true, + }, + traits: { + anonymousId: 'anon-id', + email: 'test@gmail.com', + 'dot.name': 'Arnab Pal', + address: { + city: 'NY', + country: 'USA', + postalCode: 712136, + state: 'CA', + street: '', + }, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + _timestamp: 1571043797, + anonymous_id: '123456', + city: 'NY', + state: 'CA', + street: '', + prop1: 'val1', + prop2: 'val2', + country: 'USA', + postalCode: 712136, + email: 'test@gmail.com', + 'dot.name': 'Arnab Pal', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/customers/123456', + userId: '123456', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'PUT', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '123456', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + ip: '0.0.0.0', + age: 26, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + user_properties: { + prop1: 'val1', + prop2: 'val2', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + integrations: { + All: true, + }, + traits: { + anonymousId: 'anon-id', + 'dot.name': 'Arnab Pal', + address: { + city: 'NY', + country: 'USA', + postalCode: 712136, + state: 'CA', + street: '', + }, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'userId or email is not present', + statTags: { + destType: 'CUSTOMERIO', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '123456', + email: 'test@rudderstack.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + ip: '0.0.0.0', + age: 26, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + user_properties: { + prop1: 'val1', + prop2: 'val2', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + integrations: { + All: true, + }, + traits: { + anonymousId: 'anon-id', + email: 'test@gmail.com', + 'dot.name': 'Arnab Pal', + address: { + city: 'NY', + country: 'USA', + postalCode: 712136, + state: 'CA', + street: '', + }, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + _timestamp: 1571043797, + anonymous_id: '123456', + city: 'NY', + country: 'USA', + 'dot.name': 'Arnab Pal', + email: 'test@gmail.com', + postalCode: 712136, + prop1: 'val1', + prop2: 'val2', + state: 'CA', + street: '', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/customers/test@gmail.com', + userId: '123456', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'PUT', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + userId: '12345', + properties: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + type: 'page', + data: { + url: 'www.rudderlabs.com', + path: '/test', + search: 'abc', + referrer: 'Rudder', + title: 'Test Page', + }, + timestamp: 1571051718, + name: 'ApplicationLoaded', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/customers/12345/events', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + userId: '12345', + event: 'test track event', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + type: 'event', + data: { + user_actual_id: 12345, + user_actual_role: 'system_admin', + user_time_spent: 50000, + }, + timestamp: 1571051718, + name: 'test track event', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/customers/12345/events', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + userId: '', + event: 'test track event', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + type: 'event', + data: { + user_actual_id: 12345, + user_actual_role: 'system_admin', + user_time_spent: 50000, + }, + timestamp: 1571051718, + name: 'test track event', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/customers/test@rudderstack.com/events', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + userId: '', + event: 'test track event', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + type: 'event', + anonymous_id: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + data: { + user_actual_id: 12345, + user_actual_role: 'system_admin', + user_time_spent: 50000, + }, + timestamp: 1571051718, + name: 'test track event', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/events', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '7e32188a4dab669f', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'RudderAndroidClient', + namespace: 'com.torpedolabs.wynn.wscci.dev', + version: '1.0', + }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + token: 'abcxyz', + }, + library: { + name: 'com.rudderlabs.android.sdk.core', + version: '0.1.4', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '7e32188a4dab669f', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + }, + event: 'Application Installed', + integrations: { + All: true, + }, + messageId: '1578564113557-af022c68-429e-4af4-b99b-2b9174056383', + properties: { + review_id: 'some_review_id', + product_id: 'some_product_id_a', + rating: 2, + review_body: 'Some Review Body', + }, + userId: '12345', + originalTimestamp: '2020-01-09T10:01:53.558Z', + type: 'track', + sentAt: '2020-01-09T10:02:03.257Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + device: { + review_body: 'Some Review Body', + rating: 2, + review_id: 'some_review_id', + last_used: 1578564113, + platform: 'android', + id: 'abcxyz', + product_id: 'some_product_id_a', + }, + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/customers/12345/devices', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'PUT', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '7e32188a4dab669f', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'RudderAndroidClient', + namespace: 'com.torpedolabs.wynn.wscci.dev', + version: '1.0', + }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + token: 'abcxyz', + }, + library: { + name: 'com.rudderlabs.android.sdk.core', + version: '0.1.4', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '7e32188a4dab669f', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + }, + event: 'Application Uninstalled', + integrations: { + All: true, + }, + messageId: '1578564113557-af022c68-429e-4af4-b99b-2b9174056383', + properties: { + review_id: 'some_review_id', + product_id: 'some_product_id_a', + rating: 2, + review_body: 'Some Review Body', + }, + userId: '12345', + originalTimestamp: '2020-01-09T10:01:53.558Z', + type: 'track', + sentAt: '2020-01-09T10:02:03.257Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: {}, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/customers/12345/devices/abcxyz', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'DELETE', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + token: 'somel', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + userId: '12345', + event: 'Application Uninstalled', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: {}, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/customers/12345/devices/somel', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'DELETE', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + token: 'somel', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: 'Application Uninstalled', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: {}, + FORM: {}, + }, + files: {}, + endpoint: + 'https://track.customer.io/api/v1/customers/test@rudderstack.com/devices/somel', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'DELETE', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + token: 'somel', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: 'Application Uninstalled', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'userId/email or device_token not present', + statTags: { + destType: 'CUSTOMERIO', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + token: 'somel', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: 'Application Installed', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + device: { + id: 'somel', + last_used: 1571051718, + platform: 'mobile', + user_actual_id: 12345, + user_actual_role: 'system_admin', + user_time_spent: 50000, + }, + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/customers/test@rudderstack.com/devices', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'PUT', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + token: 'somel', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: 'Application Installed', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + anonymous_id: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + data: { + user_actual_id: 12345, + user_actual_role: 'system_admin', + user_time_spent: 50000, + }, + name: 'Application Installed', + timestamp: 1571051718, + type: 'event', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/events', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 16', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + token: 'somel', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: 'Application Installed', + userId: '12345', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + device: { + user_actual_id: 12345, + user_actual_role: 'system_admin', + last_used: 1571051718, + user_time_spent: 50000, + platform: 'mobile', + id: 'somel', + }, + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/customers/12345/devices', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'PUT', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 17', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: 'Application Installed', + userId: '12345', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + type: 'event', + data: { + user_actual_id: 12345, + user_actual_role: 'system_admin', + user_time_spent: 50000, + }, + timestamp: 1571051718, + name: 'Application Installed', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/customers/12345/events', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 18', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: 'Application Opened', + userId: '12345', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + type: 'event', + data: { + user_actual_id: 12345, + user_actual_role: 'system_admin', + user_time_spent: 50000, + }, + timestamp: 1571051718, + name: 'Application Opened', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/customers/12345/events', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 19', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + token: 'sample_device_token', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: 'Application Opened', + userId: '12345', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + device: { + user_actual_id: 12345, + user_actual_role: 'system_admin', + last_used: 1571051718, + user_time_spent: 50000, + platform: 'mobile', + id: 'sample_device_token', + }, + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/customers/12345/devices', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'PUT', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 20', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + token: 'sample_device_token', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: 'Application Uninstalled', + userId: '12345', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: {}, + FORM: {}, + }, + files: {}, + endpoint: + 'https://track.customer.io/api/v1/customers/12345/devices/sample_device_token', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'DELETE', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 21', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '123456', + email: 'test@rudderstack.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + ip: '0.0.0.0', + age: 26, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + user_properties: { + prop1: 'val1', + prop2: 'val2', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: '123456', + integrations: { + All: true, + }, + traits: { + anonymousId: 'anon-id', + email: 'test@gmail.com', + address: { + city: 'NY', + country: 'USA', + postalCode: 712136, + state: 'CA', + street: '', + }, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + datacenter: 'EU', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + _timestamp: 1571043797, + anonymous_id: '123456', + city: 'NY', + state: 'CA', + street: '', + prop1: 'val1', + prop2: 'val2', + country: 'USA', + postalCode: 712136, + email: 'test@gmail.com', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track-eu.customer.io/api/v1/customers/123456', + userId: '123456', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'PUT', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 22', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + userId: '12345', + properties: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'EU', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + type: 'page', + data: { + url: 'www.rudderlabs.com', + path: '/test', + search: 'abc', + referrer: 'Rudder', + title: 'Test Page', + }, + timestamp: 1571051718, + name: 'ApplicationLoaded', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track-eu.customer.io/api/v1/customers/12345/events', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 23', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + userId: '12345', + event: 'test track event', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'EU', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + type: 'event', + data: { + user_actual_id: 12345, + user_actual_role: 'system_admin', + user_time_spent: 50000, + }, + timestamp: 1571051718, + name: 'test track event', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track-eu.customer.io/api/v1/customers/12345/events', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 24', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + userId: '', + event: 'test track event', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'EU', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + type: 'event', + data: { + user_actual_id: 12345, + user_actual_role: 'system_admin', + user_time_spent: 50000, + }, + timestamp: 1571051718, + name: 'test track event', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track-eu.customer.io/api/v1/customers/test@rudderstack.com/events', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 25', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + userId: '', + event: 'test track event', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'EU', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + type: 'event', + anonymous_id: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + data: { + user_actual_id: 12345, + user_actual_role: 'system_admin', + user_time_spent: 50000, + }, + timestamp: 1571051718, + name: 'test track event', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track-eu.customer.io/api/v1/events', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 26', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '7e32188a4dab669f', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'RudderAndroidClient', + namespace: 'com.torpedolabs.wynn.wscci.dev', + version: '1.0', + }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + token: 'abcxyz', + }, + library: { + name: 'com.rudderlabs.android.sdk.core', + version: '0.1.4', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '7e32188a4dab669f', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + }, + event: 'Application Installed', + integrations: { + All: true, + }, + messageId: '1578564113557-af022c68-429e-4af4-b99b-2b9174056383', + properties: { + review_id: 'some_review_id', + product_id: 'some_product_id_a', + rating: 2, + review_body: 'Some Review Body', + }, + userId: '12345', + originalTimestamp: '2020-01-09T10:01:53.558Z', + type: 'track', + sentAt: '2020-01-09T10:02:03.257Z', + }, + destination: { + Config: { + datacenter: 'EU', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + device: { + review_body: 'Some Review Body', + rating: 2, + review_id: 'some_review_id', + last_used: 1578564113, + platform: 'android', + id: 'abcxyz', + product_id: 'some_product_id_a', + }, + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track-eu.customer.io/api/v1/customers/12345/devices', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'PUT', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 27', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '7e32188a4dab669f', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'RudderAndroidClient', + namespace: 'com.torpedolabs.wynn.wscci.dev', + version: '1.0', + }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + token: 'abcxyz', + }, + library: { + name: 'com.rudderlabs.android.sdk.core', + version: '0.1.4', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '7e32188a4dab669f', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + }, + event: 'Application Uninstalled', + integrations: { + All: true, + }, + messageId: '1578564113557-af022c68-429e-4af4-b99b-2b9174056383', + properties: { + review_id: 'some_review_id', + product_id: 'some_product_id_a', + rating: 2, + review_body: 'Some Review Body', + }, + userId: '12345', + originalTimestamp: '2020-01-09T10:01:53.558Z', + type: 'track', + sentAt: '2020-01-09T10:02:03.257Z', + }, + destination: { + Config: { + datacenter: 'EU', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: {}, + FORM: {}, + }, + files: {}, + endpoint: 'https://track-eu.customer.io/api/v1/customers/12345/devices/abcxyz', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'DELETE', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 28', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + token: 'somel', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + userId: '12345', + event: 'Application Uninstalled', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'EU', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: {}, + FORM: {}, + }, + files: {}, + endpoint: 'https://track-eu.customer.io/api/v1/customers/12345/devices/somel', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'DELETE', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 29', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + token: 'somel', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: 'Application Uninstalled', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'EU', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'userId/email or device_token not present', + statTags: { + destType: 'CUSTOMERIO', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 30', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + token: 'somel', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: 'Application Installed', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'EU', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + device: { + id: 'somel', + last_used: 1571051718, + platform: 'mobile', + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + }, + FORM: {}, + }, + files: {}, + endpoint: + 'https://track-eu.customer.io/api/v1/customers/test@rudderstack.com/devices', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'PUT', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 31', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + token: 'somel', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: 'Application Installed', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'EU', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + anonymous_id: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + data: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + name: 'Application Installed', + timestamp: 1571051718, + type: 'event', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track-eu.customer.io/api/v1/events', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 32', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + token: 'somel', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: 'Application Installed', + userId: '12345', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'EU', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + device: { + user_actual_id: 12345, + user_actual_role: 'system_admin', + last_used: 1571051718, + user_time_spent: 50000, + platform: 'mobile', + id: 'somel', + }, + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track-eu.customer.io/api/v1/customers/12345/devices', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'PUT', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 33', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: 'Application Installed', + userId: '12345', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'EU', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + type: 'event', + data: { + user_actual_id: 12345, + user_actual_role: 'system_admin', + user_time_spent: 50000, + }, + timestamp: 1571051718, + name: 'Application Installed', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track-eu.customer.io/api/v1/customers/12345/events', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 34', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: 'Application Opened', + userId: '12345', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'EU', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + type: 'event', + data: { + user_actual_id: 12345, + user_actual_role: 'system_admin', + user_time_spent: 50000, + }, + timestamp: 1571051718, + name: 'Application Opened', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track-eu.customer.io/api/v1/customers/12345/events', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 35', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + token: 'sample_device_token', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: 'Application Opened', + userId: '12345', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'EU', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + device: { + user_actual_id: 12345, + user_actual_role: 'system_admin', + last_used: 1571051718, + user_time_spent: 50000, + platform: 'mobile', + id: 'sample_device_token', + }, + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track-eu.customer.io/api/v1/customers/12345/devices', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'PUT', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 36', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'mobile', + context: { + device: { + name: 'test android', + id: 'sample_device_id', + model: 'some_model_device', + type: 'mobile', + token: 'sample_device_token', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: 'Application Uninstalled', + userId: '12345', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'EU', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: {}, + FORM: {}, + }, + files: {}, + endpoint: + 'https://track-eu.customer.io/api/v1/customers/12345/devices/sample_device_token', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'DELETE', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 37', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: + 'https://www.stoodi.com.br/exershgcios/upe/2019/questao/gregorio-de-matos-poeta-baiano-que-viveu-no-seculo-xvi/', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://track.customer.io/api/v1/events', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + params: {}, + body: { + JSON: { + data: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50, + }, + anonymous_id: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + name: 'https://www.stoodi.com.br/exershgcios/upe/2019/questao/gregorio-de-matos-poeta-baiano-que-viveu-no-s', + type: 'event', + timestamp: 1571051718, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 38', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: + 'https://www.stoodi.com.br/exershgcios/upe/2019/questao/gregorio-de-matos-poeta-baiano-que-viveu-no-seculo-xvi/', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://track.customer.io/api/v1/customers/test@rudderstack.com/events', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + params: {}, + body: { + JSON: { + data: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50, + }, + name: 'https://www.stoodi.com.br/exershgcios/upe/2019/questao/gregorio-de-matos-poeta-baiano-que-viveu-no-seculo-xvi/', + type: 'event', + timestamp: 1571051718, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 39', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'screen', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: + 'https://www.stoodi.com.br/exercicios/upe/2016/questao/gregorio-de-matos-poeta-baiano-que-viveu-no-seculo-xvi/', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://track.customer.io/api/v1/events', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + params: {}, + body: { + JSON: { + data: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + anonymous_id: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + name: 'Viewed https://www.stoodi.com.br/exercicios/upe/2016/questao/gregorio-de-matos-poeta-baiano-q Screen', + type: 'event', + timestamp: 1571051718, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 40', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'screen', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + event: + 'https://www.stoodi.com.br/exercicios/upe/2016/questao/gregorio-de-matos-poeta-baiano-que-viveu-no-seculo-xvi/', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://track.customer.io/api/v1/customers/test@rudderstack.com/events', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + params: {}, + body: { + JSON: { + data: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + name: 'Viewed https://www.stoodi.com.br/exercicios/upe/2016/questao/gregorio-de-matos-poeta-baiano-que-viveu-no-seculo-xvi/ Screen', + type: 'event', + timestamp: 1571051718, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 41', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'dummy-100-anon', + channel: 'mobile', + context: { + app: { + build: '173', + name: 'MyWallSt Debug', + namespace: 'com.rubicoin.Invest', + version: '6.2', + }, + device: { + attTrackingStatus: 0, + id: '6fdb629d-4f18-4f3e-943a-3f6f482b331e', + manufacturer: 'Apple', + model: 'iPhone', + name: "Ales' iPhone", + type: 'iOS', + }, + library: { + name: 'rudder-ios-library', + version: '1.0.19', + }, + locale: 'en-DE', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '14.8', + }, + screen: { + density: 3, + height: 375, + width: 812, + }, + timezone: 'Europe/Prague', + traits: { + anonymousId: '6fdb629d-4f18-4f3e-943a-3f6f482b331e', + userId: '6a540d50-c4dc-4694-beca-d16de113a1c4-1618384106.8700438', + }, + }, + event: 'Home: Viewed', + integrations: { + All: true, + }, + messageId: '1632314412-e724167f-13bd-455b-943d-dd765a7810fe', + originalTimestamp: '2021-09-22T12:40:12.220Z', + properties: {}, + rudderId: '782cdb50-e2b9-45fc-9d22-07fe792dcfba', + sentAt: '2021-09-22T12:40:14.453Z', + type: 'track', + userId: 'dummy-user-id-100', + }, + destination: { + Config: { + datacenter: 'US', + siteID: 'abc', + apiKey: 'xyz', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://track.customer.io/api/v1/customers/dummy-user-id-100/events', + headers: { + Authorization: 'Basic YWJjOnh5eg==', + }, + params: {}, + body: { + JSON: { + data: {}, + name: 'Home: Viewed', + type: 'event', + timestamp: 1632314412, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'dummy-user-id-100', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 42', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '123456', + email: 'test@rudderstack.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + ip: '0.0.0.0', + age: 26, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'dummy-100-anon', + userId: 'dummy-user-id-100', + integrations: { + All: true, + }, + traits: { + email: 'test@gmail.com', + address: { + city: 'NY', + country: 'USA', + postalCode: 712136, + state: 'CA', + street: '', + }, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + datacenter: 'EU', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://track-eu.customer.io/api/v1/customers/dummy-user-id-100', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + params: {}, + body: { + JSON: { + city: 'NY', + country: 'USA', + postalCode: 712136, + state: 'CA', + street: '', + email: 'test@gmail.com', + _timestamp: 1571043797, + anonymous_id: 'dummy-100-anon', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'dummy-user-id-100', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 43', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'sources', + context: { + externalId: [ + { + id: 'xaviercharles@hotmail.com', + identifierType: 'email', + type: 'CUSTOMERIO-customers', + }, + ], + mappedToDestination: 'true', + sources: { + batch_id: '3d6f7aa8-9b70-4759-970d-212e6714ad22', + job_id: '1zDgnw7ZmHWR7gtY4niHYysL3zS/Syncher', + job_run_id: 'c5shebbh9jqg10k8d21g', + task_id: 'tt_10_rows', + task_run_id: 'c5shebbh9jqg10k8d220', + version: 'release.v1.6.8', + }, + }, + messageId: 'd82a45e1-5a27-4c1d-af89-83bdbc6139d0', + originalTimestamp: '2021-10-27T09:09:56.673Z', + receivedAt: '2021-10-27T09:09:56.187Z', + recordId: '3', + request_ip: '10.1.85.177', + rudderId: '5b19a81b-df60-4ccd-abf0-fcfe2b7db054', + sentAt: '2021-10-27T09:09:56.673Z', + timestamp: '2021-10-27T09:09:56.186Z', + traits: { + last_name: 'xavier', + first_name: 'charles', + }, + type: 'identify', + userId: 'xaviercharles@hotmail.com', + }, + destination: { + ID: '1zgXcyv272oZA8HWqe7zInhJjPL', + Name: 'ere', + DestinationDefinition: { + ID: '1iVQr671C0E8MVpzvCEegsLM2J5', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU'], + web: ['useNativeSDK'], + }, + excludeKeys: [], + includeKeys: ['apiKey', 'siteID', 'datacenterEU'], + saveDestinationResponse: true, + secretKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + ], + supportsVisualMapper: true, + transformAt: 'processor', + }, + ResponseRules: null, + }, + Config: { + apiKey: 'a292d85ac36de15fc219', + datacenter: 'US', + siteID: 'eead090ab9e2e35004dc', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://track.customer.io/api/v1/customers/xaviercharles@hotmail.com', + headers: { + Authorization: 'Basic ZWVhZDA5MGFiOWUyZTM1MDA0ZGM6YTI5MmQ4NWFjMzZkZTE1ZmMyMTk=', + }, + params: {}, + body: { + JSON: { + last_name: 'xavier', + first_name: 'charles', + email: 'xaviercharles@hotmail.com', + _timestamp: 1635325796, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'xaviercharles@hotmail.com', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 44', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'sources', + context: { + externalId: [ + { + id: 'xaviercharles', + identifierType: 'id', + type: 'CUSTOMERIO-customers', + }, + ], + mappedToDestination: 'true', + sources: { + batch_id: '3d6f7aa8-9b70-4759-970d-212e6714ad22', + job_id: '1zDgnw7ZmHWR7gtY4niHYysL3zS/Syncher', + job_run_id: 'c5shebbh9jqg10k8d21g', + task_id: 'tt_10_rows', + task_run_id: 'c5shebbh9jqg10k8d220', + version: 'release.v1.6.8', + }, + }, + messageId: 'd82a45e1-5a27-4c1d-af89-83bdbc6139d0', + originalTimestamp: '2021-10-27T09:09:56.673Z', + receivedAt: '2021-10-27T09:09:56.187Z', + recordId: '3', + request_ip: '10.1.85.177', + rudderId: '5b19a81b-df60-4ccd-abf0-fcfe2b7db054', + sentAt: '2021-10-27T09:09:56.673Z', + traits: { + last_name: 'xavier', + first_name: 'charles', + }, + type: 'identify', + userId: 'xaviercharles', + }, + destination: { + ID: '1zgXcyv272oZA8HWqe7zInhJjPL', + Name: 'ere', + DestinationDefinition: { + ID: '1iVQr671C0E8MVpzvCEegsLM2J5', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU'], + web: ['useNativeSDK'], + }, + excludeKeys: [], + includeKeys: ['apiKey', 'siteID', 'datacenterEU'], + saveDestinationResponse: true, + secretKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + ], + supportsVisualMapper: true, + transformAt: 'processor', + }, + ResponseRules: null, + }, + Config: { + apiKey: 'a292d85ac36de15fc219', + datacenter: 'US', + siteID: 'eead090ab9e2e35004dc', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://track.customer.io/api/v1/customers/xaviercharles', + headers: { + Authorization: 'Basic ZWVhZDA5MGFiOWUyZTM1MDA0ZGM6YTI5MmQ4NWFjMzZkZTE1ZmMyMTk=', + }, + params: {}, + body: { + JSON: { + last_name: 'xavier', + first_name: 'charles', + id: 'xaviercharles', + _timestamp: 1635325796, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'xaviercharles', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 45', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'zx_userid_missing', + namespace: 'org.reactjs.native.example.zx-userid-missing', + version: '1.0', + }, + device: { + attTrackingStatus: 0, + id: '5d727a3e-a72b-4d00-8078-669c1494791d', + manufacturer: 'Apple', + model: 'iPhone', + name: 'iPhone 13', + token: 'deviceToken', + type: 'iOS', + }, + library: { + name: 'rudder-ios-library', + version: '1.3.1', + }, + locale: 'en-US', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '15.2', + }, + screen: { + density: 3, + height: 390, + width: 844, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + email: 'sofia@gmail.com', + login_status: 'Authenticated', + name: 'Sofia', + phone_verified: 1, + selected_city: '', + selected_lat: 0, + selected_long: 0, + selected_neighborhood: '', + selected_number: '', + selected_postal_code: '', + selected_state: '', + selected_street: '', + signed_up_for_newsletters: 0, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + }, + }, + event: 'Application Opened', + integrations: { + All: true, + }, + messageId: '1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f', + timestamp: '2022-01-10T10:00:26.513Z', + properties: { + from_background: false, + }, + receivedAt: '2022-01-10T20:35:30.556+05:30', + request_ip: '[::1]', + rudderId: '423cdf83-0448-4a99-b14d-36fcc63e6ea0', + sentAt: '2022-01-10T10:00:26.982Z', + type: 'track', + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'DESAU SAI', + datacenter: 'US', + deviceTokenEventName: 'device_token_registered', + siteID: 'DESU SAI', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: + 'https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices', + headers: { + Authorization: 'Basic REVTVSBTQUk6REVTQVUgU0FJ', + }, + params: {}, + body: { + JSON: { + device: { + from_background: false, + id: 'deviceToken', + platform: 'ios', + last_used: 1641808826, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 46', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'zx_userid_missing', + namespace: 'org.reactjs.native.example.zx-userid-missing', + version: '1.0', + }, + device: { + attTrackingStatus: 0, + id: '5d727a3e-a72b-4d00-8078-669c1494791d', + manufacturer: 'Apple', + model: 'iPhone', + name: 'iPhone 13', + type: 'iOS', + }, + library: { + name: 'rudder-ios-library', + version: '1.3.1', + }, + locale: 'en-US', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '15.2', + }, + screen: { + density: 3, + height: 390, + width: 844, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + email: 'sofia@gmail.com', + login_status: 'Authenticated', + name: 'Sofia', + phone_verified: 1, + selected_city: '', + selected_lat: 0, + selected_long: 0, + selected_neighborhood: '', + selected_number: '', + selected_postal_code: '', + selected_state: '', + selected_street: '', + signed_up_for_newsletters: 0, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + }, + }, + event: 'Application Opened', + integrations: { + All: true, + }, + messageId: '1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f', + originalTimestamp: '2022-01-10T10:00:26.513Z', + properties: { + from_background: false, + }, + receivedAt: '2022-01-10T20:39:04.424+05:30', + request_ip: '[::1]', + rudderId: '423cdf83-0448-4a99-b14d-36fcc63e6ea0', + sentAt: '2022-01-10T10:00:26.982Z', + timestamp: '2022-01-10T20:39:03.955+05:30', + type: 'track', + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'DESAU SAI', + datacenter: 'US', + deviceTokenEventName: 'device_token_registered', + siteID: 'DESU SAI', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/events', + headers: { + Authorization: 'Basic REVTVSBTQUk6REVTQVUgU0FJ', + }, + params: {}, + body: { + JSON: { + data: { + from_background: false, + }, + name: 'Application Opened', + type: 'event', + timestamp: 1641827343, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 47', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'zx_userid_missing', + namespace: 'org.reactjs.native.example.zx-userid-missing', + version: '1.0', + }, + device: { + attTrackingStatus: 0, + id: '5d727a3e-a72b-4d00-8078-669c1494791d', + manufacturer: 'Apple', + model: 'iPhone', + name: 'iPhone 13', + token: 'deviceToken', + type: 'iOS', + }, + library: { + name: 'rudder-ios-library', + version: '1.3.1', + }, + locale: 'en-US', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '15.2', + }, + screen: { + density: 3, + height: 390, + width: 844, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + email: 'sofia@gmail.com', + login_status: 'Authenticated', + name: 'Sofia', + phone_verified: 1, + selected_city: '', + selected_lat: 0, + selected_long: 0, + selected_neighborhood: '', + selected_number: '', + selected_postal_code: '', + selected_state: '', + selected_street: '', + signed_up_for_newsletters: 0, + }, + }, + event: 'Application Opened', + integrations: { + All: true, + }, + messageId: '1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f', + originalTimestamp: '2022-01-10T10:00:26.513Z', + properties: { + from_background: false, + }, + receivedAt: '2022-01-10T20:41:30.970+05:30', + request_ip: '[::1]', + rudderId: '423cdf83-0448-4a99-b14d-36fcc63e6ea0', + sentAt: '2022-01-10T10:00:26.982Z', + type: 'track', + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'DESAU SAI', + datacenter: 'US', + deviceTokenEventName: 'device_token_registered', + siteID: 'DESU SAI', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: + 'https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices', + headers: { + Authorization: 'Basic REVTVSBTQUk6REVTQVUgU0FJ', + }, + params: {}, + body: { + JSON: { + device: { + from_background: false, + id: 'deviceToken', + platform: 'ios', + last_used: 1641808826, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 48', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'zx_userid_missing', + namespace: 'org.reactjs.native.example.zx-userid-missing', + version: '1.0', + }, + device: { + attTrackingStatus: 0, + id: '5d727a3e-a72b-4d00-8078-669c1494791d', + manufacturer: 'Apple', + model: 'iPhone', + name: 'iPhone 13', + token: 'deviceToken', + type: 'iOS', + }, + library: { + name: 'rudder-ios-library', + version: '1.3.1', + }, + locale: 'en-US', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '15.2', + }, + screen: { + density: 3, + height: 390, + width: 844, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + email: 'sofia@gmail.com', + login_status: 'Authenticated', + name: 'Sofia', + phone_verified: 1, + selected_city: '', + selected_lat: 0, + selected_long: 0, + selected_neighborhood: '', + selected_number: '', + selected_postal_code: '', + selected_state: '', + selected_street: '', + signed_up_for_newsletters: 0, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + }, + }, + event: 'Application Opened', + integrations: { + All: true, + }, + messageId: '1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f', + originalTimestamp: '2022-01-10T10:00:26.513Z', + properties: { + from_background: false, + }, + receivedAt: '2022-01-10T20:44:52.784+05:30', + request_ip: '[::1]', + rudderId: '0aef312c-0dc0-4a49-b613-4f33fb4e9b46', + sentAt: '2022-01-10T10:00:26.982Z', + type: 'track', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'DESAU SAI', + datacenter: 'US', + deviceTokenEventName: 'device_token_registered', + siteID: 'DESU SAI', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: + 'https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices', + headers: { + Authorization: 'Basic REVTVSBTQUk6REVTQVUgU0FJ', + }, + params: {}, + body: { + JSON: { + device: { + from_background: false, + id: 'deviceToken', + platform: 'ios', + last_used: 1641808826, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 49', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'zx_userid_missing', + namespace: 'org.reactjs.native.example.zx-userid-missing', + version: '1.0', + }, + device: { + attTrackingStatus: 0, + id: '5d727a3e-a72b-4d00-8078-669c1494791d', + manufacturer: 'Apple', + model: 'iPhone', + name: 'iPhone 13', + token: 'deviceToken', + type: 'iOS', + }, + library: { + name: 'rudder-ios-library', + version: '1.3.1', + }, + locale: 'en-US', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '15.2', + }, + screen: { + density: 3, + height: 390, + width: 844, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + email: 'sofia@gmail.com', + login_status: 'Authenticated', + name: 'Sofia', + phone_verified: 1, + selected_city: '', + selected_lat: 0, + selected_long: 0, + selected_neighborhood: '', + selected_number: '', + selected_postal_code: '', + selected_state: '', + selected_street: '', + signed_up_for_newsletters: 0, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + }, + }, + event: 'Application Opened', + integrations: { + All: true, + }, + messageId: '1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f', + timestamp: '2022-01-10T10:00:26.513Z', + receivedAt: '2022-01-10T20:47:36.180+05:30', + request_ip: '[::1]', + rudderId: '0aef312c-0dc0-4a49-b613-4f33fb4e9b46', + sentAt: '2022-01-10T10:00:26.982Z', + type: 'track', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'DESAU SAI', + datacenter: 'US', + deviceTokenEventName: 'device_token_registered', + siteID: 'DESU SAI', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: + 'https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices', + headers: { + Authorization: 'Basic REVTVSBTQUk6REVTQVUgU0FJ', + }, + params: {}, + body: { + JSON: { + device: { + id: 'deviceToken', + platform: 'ios', + last_used: 1641808826, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 50', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'zx_userid_missing', + namespace: 'org.reactjs.native.example.zx-userid-missing', + version: '1.0', + }, + device: { + attTrackingStatus: 0, + id: '5d727a3e-a72b-4d00-8078-669c1494791d', + manufacturer: 'Apple', + model: 'iPhone', + name: 'iPhone 13', + token: 'deviceToken', + type: 'iOS', + }, + library: { + name: 'rudder-ios-library', + version: '1.3.1', + }, + locale: 'en-US', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '15.2', + }, + screen: { + density: 3, + height: 390, + width: 844, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + email: 'sofia@gmail.com', + login_status: 'Authenticated', + name: 'Sofia', + phone_verified: 1, + selected_city: '', + selected_lat: 0, + selected_long: 0, + selected_neighborhood: '', + selected_number: '', + selected_postal_code: '', + selected_state: '', + selected_street: '', + signed_up_for_newsletters: 0, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + }, + }, + event: 'device_token_registered', + integrations: { + All: true, + }, + messageId: '1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f', + originalTimestamp: '2022-01-10T10:00:26.513Z', + properties: { + from_background: false, + }, + receivedAt: '2022-01-10T20:49:05.795+05:30', + request_ip: '[::1]', + rudderId: '423cdf83-0448-4a99-b14d-36fcc63e6ea0', + sentAt: '2022-01-10T10:00:26.982Z', + type: 'track', + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'DESAU SAI', + datacenter: 'US', + deviceTokenEventName: 'device_token_registered', + siteID: 'DESU SAI', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: + 'https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices', + headers: { + Authorization: 'Basic REVTVSBTQUk6REVTQVUgU0FJ', + }, + params: {}, + body: { + JSON: { + device: { + from_background: false, + id: 'deviceToken', + platform: 'ios', + last_used: 1641808826, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 51', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'zx_userid_missing', + namespace: 'org.reactjs.native.example.zx-userid-missing', + version: '1.0', + }, + device: { + attTrackingStatus: 0, + id: '5d727a3e-a72b-4d00-8078-669c1494791d', + manufacturer: 'Apple', + model: 'iPhone', + name: 'iPhone 13', + type: 'iOS', + }, + library: { + name: 'rudder-ios-library', + version: '1.3.1', + }, + locale: 'en-US', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '15.2', + }, + screen: { + density: 3, + height: 390, + width: 844, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + email: 'sofia@gmail.com', + login_status: 'Authenticated', + name: 'Sofia', + phone_verified: 1, + selected_city: '', + selected_lat: 0, + selected_long: 0, + selected_neighborhood: '', + selected_number: '', + selected_postal_code: '', + selected_state: '', + selected_street: '', + signed_up_for_newsletters: 0, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + }, + }, + event: 'device_token_registered', + integrations: { + All: true, + }, + messageId: '1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f', + originalTimestamp: '2022-01-10T10:00:26.513Z', + properties: { + from_background: false, + }, + receivedAt: '2022-01-10T20:50:17.090+05:30', + request_ip: '[::1]', + rudderId: '423cdf83-0448-4a99-b14d-36fcc63e6ea0', + sentAt: '2022-01-10T10:00:26.982Z', + timestamp: '2022-01-10T20:50:16.621+05:30', + type: 'track', + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'DESAU SAI', + datacenter: 'US', + deviceTokenEventName: 'device_token_registered', + siteID: 'DESU SAI', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/events', + headers: { + Authorization: 'Basic REVTVSBTQUk6REVTQVUgU0FJ', + }, + params: {}, + body: { + JSON: { + data: { + from_background: false, + }, + name: 'device_token_registered', + type: 'event', + timestamp: 1641828016, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 52', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'zx_userid_missing', + namespace: 'org.reactjs.native.example.zx-userid-missing', + version: '1.0', + }, + device: { + attTrackingStatus: 0, + id: '5d727a3e-a72b-4d00-8078-669c1494791d', + manufacturer: 'Apple', + model: 'iPhone', + name: 'iPhone 13', + token: 'deviceToken', + type: 'iOS', + }, + library: { + name: 'rudder-ios-library', + version: '1.3.1', + }, + locale: 'en-US', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '15.2', + }, + screen: { + density: 3, + height: 390, + width: 844, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + email: 'sofia@gmail.com', + login_status: 'Authenticated', + name: 'Sofia', + phone_verified: 1, + selected_city: '', + selected_lat: 0, + selected_long: 0, + selected_neighborhood: '', + selected_number: '', + selected_postal_code: '', + selected_state: '', + selected_street: '', + signed_up_for_newsletters: 0, + }, + }, + event: 'device_token_registered', + integrations: { + All: true, + }, + messageId: '1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f', + originalTimestamp: '2022-01-10T10:00:26.513Z', + properties: { + from_background: false, + }, + receivedAt: '2022-01-10T20:52:19.147+05:30', + request_ip: '[::1]', + rudderId: '423cdf83-0448-4a99-b14d-36fcc63e6ea0', + sentAt: '2022-01-10T10:00:26.982Z', + timestamp: '2022-01-10T20:52:18.678+05:30', + type: 'track', + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'DESAU SAI', + datacenter: 'US', + deviceTokenEventName: 'device_token_registered', + siteID: 'DESU SAI', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: + 'https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices', + headers: { + Authorization: 'Basic REVTVSBTQUk6REVTQVUgU0FJ', + }, + params: {}, + body: { + JSON: { + device: { + from_background: false, + id: 'deviceToken', + platform: 'ios', + last_used: 1641828138, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 53', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'zx_userid_missing', + namespace: 'org.reactjs.native.example.zx-userid-missing', + version: '1.0', + }, + device: { + attTrackingStatus: 0, + id: '5d727a3e-a72b-4d00-8078-669c1494791d', + manufacturer: 'Apple', + model: 'iPhone', + name: 'iPhone 13', + token: 'deviceToken', + type: 'iOS', + }, + library: { + name: 'rudder-ios-library', + version: '1.3.1', + }, + locale: 'en-US', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '15.2', + }, + screen: { + density: 3, + height: 390, + width: 844, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + email: 'sofia@gmail.com', + login_status: 'Authenticated', + name: 'Sofia', + phone_verified: 1, + selected_city: '', + selected_lat: 0, + selected_long: 0, + selected_neighborhood: '', + selected_number: '', + selected_postal_code: '', + selected_state: '', + selected_street: '', + signed_up_for_newsletters: 0, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + }, + }, + event: 'device_token_registered', + integrations: { + All: true, + }, + messageId: '1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f', + originalTimestamp: '2022-01-10T10:00:26.513Z', + properties: { + from_background: false, + }, + receivedAt: '2022-01-10T20:53:43.680+05:30', + request_ip: '[::1]', + rudderId: '0aef312c-0dc0-4a49-b613-4f33fb4e9b46', + sentAt: '2022-01-10T10:00:26.982Z', + type: 'track', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'DESAU SAI', + datacenter: 'US', + deviceTokenEventName: 'device_token_registered', + siteID: 'DESU SAI', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: + 'https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices', + headers: { + Authorization: 'Basic REVTVSBTQUk6REVTQVUgU0FJ', + }, + params: {}, + body: { + JSON: { + device: { + from_background: false, + id: 'deviceToken', + platform: 'ios', + last_used: 1641808826, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 54', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'zx_userid_missing', + namespace: 'org.reactjs.native.example.zx-userid-missing', + version: '1.0', + }, + device: { + attTrackingStatus: 0, + id: '5d727a3e-a72b-4d00-8078-669c1494791d', + manufacturer: 'Apple', + model: 'iPhone', + name: 'iPhone 13', + token: 'deviceToken', + type: 'iOS', + }, + library: { + name: 'rudder-ios-library', + version: '1.3.1', + }, + locale: 'en-US', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '15.2', + }, + screen: { + density: 3, + height: 390, + width: 844, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + email: 'sofia@gmail.com', + login_status: 'Authenticated', + name: 'Sofia', + phone_verified: 1, + selected_city: '', + selected_lat: 0, + selected_long: 0, + selected_neighborhood: '', + selected_number: '', + selected_postal_code: '', + selected_state: '', + selected_street: '', + signed_up_for_newsletters: 0, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + }, + }, + event: 'device_token_registered', + integrations: { + All: true, + }, + messageId: '1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f', + originalTimestamp: '2022-01-10T10:00:26.513Z', + receivedAt: '2022-01-10T20:55:03.845+05:30', + request_ip: '[::1]', + rudderId: '0aef312c-0dc0-4a49-b613-4f33fb4e9b46', + sentAt: '2022-01-10T10:00:26.982Z', + type: 'track', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'DESAU SAI', + datacenter: 'US', + deviceTokenEventName: 'device_token_registered', + siteID: 'DESU SAI', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: + 'https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices', + headers: { + Authorization: 'Basic REVTVSBTQUk6REVTQVUgU0FJ', + }, + params: {}, + body: { + JSON: { + device: { + id: 'deviceToken', + platform: 'ios', + last_used: 1641808826, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 55', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'check for ipados apple family and default it to ios', + message: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'zx_userid_missing', + namespace: 'org.reactjs.native.example.zx-userid-missing', + version: '1.0', + }, + device: { + attTrackingStatus: 0, + id: '5d727a3e-a72b-4d00-8078-669c1494791d', + manufacturer: 'Apple', + model: 'iPhone', + name: 'iPhone 13', + token: 'deviceToken', + type: 'ipados', + }, + library: { + name: 'rudder-ios-library', + version: '1.3.1', + }, + locale: 'en-US', + network: { + bluetooth: false, + carrier: 'unavailable', + cellular: false, + wifi: true, + }, + os: { + name: 'iOS', + version: '15.2', + }, + screen: { + density: 3, + height: 390, + width: 844, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5d727a3e-a72b-4d00-8078-669c1494791d', + email: 'sofia@gmail.com', + login_status: 'Authenticated', + name: 'Sofia', + phone_verified: 1, + selected_city: '', + selected_lat: 0, + selected_long: 0, + selected_neighborhood: '', + selected_number: '', + selected_postal_code: '', + selected_state: '', + selected_street: '', + signed_up_for_newsletters: 0, + }, + }, + event: 'Application Opened', + integrations: { + All: true, + }, + messageId: '1641808826-28d23237-f4f0-4f65-baa2-99141e422a8f', + originalTimestamp: '2022-01-10T10:00:26.513Z', + properties: { + from_background: false, + }, + receivedAt: '2022-01-10T20:41:30.970+05:30', + request_ip: '[::1]', + rudderId: '423cdf83-0448-4a99-b14d-36fcc63e6ea0', + sentAt: '2022-01-10T10:00:26.982Z', + type: 'track', + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'DESAU SAI', + datacenter: 'US', + deviceTokenEventName: 'device_token_registered', + siteID: 'DESU SAI', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: + 'https://track.customer.io/api/v1/customers/e91e0378-63fe-11ec-82ac-0a028ee659c3/devices', + headers: { + Authorization: 'Basic REVTVSBTQUk6REVTQVUgU0FJ', + }, + params: {}, + body: { + JSON: { + device: { + from_background: false, + id: 'deviceToken', + platform: 'ios', + last_used: 1641808826, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e91e0378-63fe-11ec-82ac-0a028ee659c3', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 56', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'successful group call with identify action', + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.0-beta.2', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.0-beta.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', + }, + groupId: 'group@1', + integrations: { + All: true, + }, + traits: { + domainNames: 'rudderstack.com', + email: 'help@rudderstack.com', + name: 'rudderstack', + action: 'identify', + }, + type: 'group', + userId: 'user@1', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'ef32c3f60fb98f39ef35', + datacenter: 'US', + deviceTokenEventName: 'device_token_registered', + siteID: 'c0efdbd20b9fbe24a7e2', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://track.customer.io/api/v2/batch', + headers: { + Authorization: 'Basic YzBlZmRiZDIwYjlmYmUyNGE3ZTI6ZWYzMmMzZjYwZmI5OGYzOWVmMzU=', + }, + params: {}, + body: { + XML: {}, + FORM: {}, + JSON: { + type: 'object', + action: 'identify', + attributes: { + name: 'rudderstack', + email: 'help@rudderstack.com', + domainNames: 'rudderstack.com', + }, + identifiers: { + object_id: 'group@1', + object_type_id: '1', + }, + cio_relationships: [ + { + identifiers: { + id: 'user@1', + }, + }, + ], + }, + JSON_ARRAY: {}, + }, + files: {}, + userId: 'user@1', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 57', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'successful group call with delete action', + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.0-beta.2', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.0-beta.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', + }, + groupId: 'group@1', + integrations: { + All: true, + }, + traits: { + domainNames: 'rudderstack.com', + email: 'help@rudderstack.com', + name: 'rudderstack', + action: 'delete', + }, + type: 'group', + userId: 'user@1', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'ef32c3f60fb98f39ef35', + datacenter: 'US', + deviceTokenEventName: 'device_token_registered', + siteID: 'c0efdbd20b9fbe24a7e2', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://track.customer.io/api/v2/batch', + headers: { + Authorization: 'Basic YzBlZmRiZDIwYjlmYmUyNGE3ZTI6ZWYzMmMzZjYwZmI5OGYzOWVmMzU=', + }, + params: {}, + body: { + XML: {}, + FORM: {}, + JSON: { + type: 'object', + action: 'delete', + attributes: { + name: 'rudderstack', + email: 'help@rudderstack.com', + domainNames: 'rudderstack.com', + }, + identifiers: { + object_id: 'group@1', + object_type_id: '1', + }, + cio_relationships: [ + { + identifiers: { + id: 'user@1', + }, + }, + ], + }, + JSON_ARRAY: {}, + }, + files: {}, + userId: 'user@1', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 58', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'successful group call with add_relationships action', + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.0-beta.2', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.0-beta.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + email: 'test@rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', + }, + groupId: 'group@1', + integrations: { + All: true, + }, + traits: { + domainNames: 'rudderstack.com', + email: 'help@rudderstack.com', + name: 'rudderstack', + action: 'add_relationships', + }, + type: 'group', + userId: 'user@1', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'ef32c3f60fb98f39ef35', + datacenter: 'US', + deviceTokenEventName: 'device_token_registered', + siteID: 'c0efdbd20b9fbe24a7e2', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://track.customer.io/api/v2/batch', + headers: { + Authorization: 'Basic YzBlZmRiZDIwYjlmYmUyNGE3ZTI6ZWYzMmMzZjYwZmI5OGYzOWVmMzU=', + }, + params: {}, + body: { + XML: {}, + FORM: {}, + JSON: { + type: 'object', + action: 'add_relationships', + attributes: { + name: 'rudderstack', + email: 'help@rudderstack.com', + domainNames: 'rudderstack.com', + }, + identifiers: { + object_id: 'group@1', + object_type_id: '1', + }, + cio_relationships: [ + { + identifiers: { + id: 'user@1', + }, + }, + ], + }, + JSON_ARRAY: {}, + }, + files: {}, + userId: 'user@1', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 59', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'successful group call with delete_relationships action', + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.0-beta.2', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.0-beta.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + email: 'test@rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', + }, + groupId: 'group@1', + integrations: { + All: true, + }, + traits: { + domainNames: 'rudderstack.com', + email: 'help@rudderstack.com', + name: 'rudderstack', + action: 'delete_relationships', + }, + type: 'group', + userId: 'user@1', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'ef32c3f60fb98f39ef35', + datacenter: 'US', + deviceTokenEventName: 'device_token_registered', + siteID: 'c0efdbd20b9fbe24a7e2', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://track.customer.io/api/v2/batch', + headers: { + Authorization: 'Basic YzBlZmRiZDIwYjlmYmUyNGE3ZTI6ZWYzMmMzZjYwZmI5OGYzOWVmMzU=', + }, + params: {}, + body: { + XML: {}, + FORM: {}, + JSON: { + type: 'object', + action: 'delete_relationships', + attributes: { + name: 'rudderstack', + email: 'help@rudderstack.com', + domainNames: 'rudderstack.com', + }, + identifiers: { + object_id: 'group@1', + object_type_id: '1', + }, + cio_relationships: [ + { + identifiers: { + id: 'user@1', + }, + }, + ], + }, + JSON_ARRAY: {}, + }, + files: {}, + userId: 'user@1', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 60', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'successful group call with userId and groupId as an integer', + message: { + type: 'group', + header: { + 'content-type': 'application/json; charset=utf-8', + }, + sentAt: '2023-03-28T09:36:49.882Z', + traits: { + city: 'Frankfurt', + name: 'rudder test', + state: 'Hessen', + isFake: true, + address: 'Solmsstraße 83', + country: 'DE', + website: 'http://www.rudderstack.com', + industry: 'Waste and recycling', + postcode: '60486', + whiteLabel: 'rudderlabs', + maxNbJobBoards: 2, + organisationId: 306, + pricingPackage: 'packageExpert', + dateProTrialEnd: '2022-08-31T00:00:00+00:00', + isProTrialActive: true, + datetimeRegistration: '2020-07-01T10:23:41+00:00', + isPersonnelServiceProvider: false, + }, + userId: 432, + channel: 'server', + context: { + library: { + name: 'rudder-analytics-php', + version: '2.0.1', + consumer: 'LibCurl', + }, + }, + groupId: 306, + rudderId: 'f5b46a12-2dab-4e24-a127-7316eed414fc', + messageId: '7032394c-e813-4737-bf52-622dbcefe849', + receivedAt: '2023-03-28T09:36:48.296Z', + request_ip: '18.195.235.225', + originalTimestamp: '2023-03-28T09:36:49.882Z', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'ef32c3f60fb98f39ef35', + datacenter: 'US', + deviceTokenEventName: 'device_token_registered', + siteID: 'c0efdbd20b9fbe24a7e2', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://track.customer.io/api/v2/batch', + headers: { + Authorization: 'Basic YzBlZmRiZDIwYjlmYmUyNGE3ZTI6ZWYzMmMzZjYwZmI5OGYzOWVmMzU=', + }, + params: {}, + body: { + XML: {}, + FORM: {}, + JSON: { + type: 'object', + action: 'identify', + attributes: { + city: 'Frankfurt', + name: 'rudder test', + state: 'Hessen', + isFake: true, + address: 'Solmsstraße 83', + country: 'DE', + website: 'http://www.rudderstack.com', + industry: 'Waste and recycling', + postcode: '60486', + whiteLabel: 'rudderlabs', + maxNbJobBoards: 2, + organisationId: 306, + pricingPackage: 'packageExpert', + dateProTrialEnd: '2022-08-31T00:00:00+00:00', + isProTrialActive: true, + datetimeRegistration: '2020-07-01T10:23:41+00:00', + isPersonnelServiceProvider: false, + }, + identifiers: { + object_id: '306', + object_type_id: '1', + }, + cio_relationships: [ + { + identifiers: { + id: '432', + }, + }, + ], + }, + JSON_ARRAY: {}, + }, + files: {}, + userId: '432', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 61', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'successful group call with userId in email format ', + message: { + type: 'group', + header: { + 'content-type': 'application/json; charset=utf-8', + }, + sentAt: '2023-03-28T09:36:49.882Z', + traits: { + city: 'Frankfurt', + name: 'rudder test', + state: 'Hessen', + isFake: true, + address: 'Solmsstraße 83', + country: 'DE', + website: 'http://www.rudderstack.com', + industry: 'Waste and recycling', + postcode: '60486', + whiteLabel: 'rudderlabs', + maxNbJobBoards: 2, + organisationId: 306, + pricingPackage: 'packageExpert', + dateProTrialEnd: '2022-08-31T00:00:00+00:00', + isProTrialActive: true, + datetimeRegistration: '2020-07-01T10:23:41+00:00', + isPersonnelServiceProvider: false, + }, + userId: 'abc@xyz.com', + channel: 'server', + context: { + library: { + name: 'rudder-analytics-php', + version: '2.0.1', + consumer: 'LibCurl', + }, + }, + groupId: 306, + rudderId: 'f5b46a12-2dab-4e24-a127-7316eed414fc', + messageId: '7032394c-e813-4737-bf52-622dbcefe849', + receivedAt: '2023-03-28T09:36:48.296Z', + request_ip: '18.195.235.225', + originalTimestamp: '2023-03-28T09:36:49.882Z', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'ef32c3f60fb98f39ef35', + datacenter: 'US', + deviceTokenEventName: 'device_token_registered', + siteID: 'c0efdbd20b9fbe24a7e2', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://track.customer.io/api/v2/batch', + headers: { + Authorization: 'Basic YzBlZmRiZDIwYjlmYmUyNGE3ZTI6ZWYzMmMzZjYwZmI5OGYzOWVmMzU=', + }, + params: {}, + body: { + XML: {}, + FORM: {}, + JSON: { + type: 'object', + action: 'identify', + attributes: { + city: 'Frankfurt', + name: 'rudder test', + state: 'Hessen', + isFake: true, + address: 'Solmsstraße 83', + country: 'DE', + website: 'http://www.rudderstack.com', + industry: 'Waste and recycling', + postcode: '60486', + whiteLabel: 'rudderlabs', + maxNbJobBoards: 2, + organisationId: 306, + pricingPackage: 'packageExpert', + dateProTrialEnd: '2022-08-31T00:00:00+00:00', + isProTrialActive: true, + datetimeRegistration: '2020-07-01T10:23:41+00:00', + isPersonnelServiceProvider: false, + }, + identifiers: { + object_id: '306', + object_type_id: '1', + }, + cio_relationships: [ + { + identifiers: { + email: 'abc@xyz.com', + }, + }, + ], + }, + JSON_ARRAY: {}, + }, + files: {}, + userId: 'abc@xyz.com', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 62', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'successful group call with eu as data center', + message: { + type: 'group', + header: { + 'content-type': 'application/json; charset=utf-8', + }, + sentAt: '2023-03-28T09:36:49.882Z', + traits: { + city: 'Frankfurt', + name: 'rudder test', + state: 'Hessen', + isFake: true, + address: 'Solmsstraße 83', + country: 'DE', + website: 'http://www.rudderstack.com', + industry: 'Waste and recycling', + postcode: '60486', + whiteLabel: 'rudderlabs', + maxNbJobBoards: 2, + organisationId: 306, + pricingPackage: 'packageExpert', + dateProTrialEnd: '2022-08-31T00:00:00+00:00', + isProTrialActive: true, + datetimeRegistration: '2020-07-01T10:23:41+00:00', + isPersonnelServiceProvider: false, + }, + userId: 432, + channel: 'server', + context: { + library: { + name: 'rudder-analytics-php', + version: '2.0.1', + consumer: 'LibCurl', + }, + }, + groupId: 306, + rudderId: 'f5b46a12-2dab-4e24-a127-7316eed414fc', + messageId: '7032394c-e813-4737-bf52-622dbcefe849', + receivedAt: '2023-03-28T09:36:48.296Z', + request_ip: '18.195.235.225', + originalTimestamp: '2023-03-28T09:36:49.882Z', + }, + destination: { + ID: '23Mi76khsFhY7bh9ZyRcvR3pHDt', + Name: 'Customer IO Dev', + DestinationDefinition: { + ID: '23MgSlHXsPLsiH7SbW7IzCP32fn', + Name: 'CUSTOMERIO', + DisplayName: 'Customer IO', + Config: { + destConfig: { + defaultConfig: ['apiKey', 'siteID', 'datacenterEU', 'deviceTokenEventName'], + web: ['useNativeSDK', 'blackListedEvents', 'whiteListedEvents'], + }, + excludeKeys: [], + includeKeys: [ + 'apiKey', + 'siteID', + 'datacenterEU', + 'blackListedEvents', + 'whiteListedEvents', + ], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'ef32c3f60fb98f39ef35', + datacenter: 'EU', + deviceTokenEventName: 'device_token_registered', + siteID: 'c0efdbd20b9fbe24a7e2', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://track-eu.customer.io/api/v2/batch', + headers: { + Authorization: 'Basic YzBlZmRiZDIwYjlmYmUyNGE3ZTI6ZWYzMmMzZjYwZmI5OGYzOWVmMzU=', + }, + params: {}, + body: { + XML: {}, + FORM: {}, + JSON: { + type: 'object', + action: 'identify', + attributes: { + city: 'Frankfurt', + name: 'rudder test', + state: 'Hessen', + isFake: true, + address: 'Solmsstraße 83', + country: 'DE', + website: 'http://www.rudderstack.com', + industry: 'Waste and recycling', + postcode: '60486', + whiteLabel: 'rudderlabs', + maxNbJobBoards: 2, + organisationId: 306, + pricingPackage: 'packageExpert', + dateProTrialEnd: '2022-08-31T00:00:00+00:00', + isProTrialActive: true, + datetimeRegistration: '2020-07-01T10:23:41+00:00', + isPersonnelServiceProvider: false, + }, + identifiers: { + object_id: '306', + object_type_id: '1', + }, + cio_relationships: [ + { + identifiers: { + id: '432', + }, + }, + ], + }, + JSON_ARRAY: {}, + }, + files: {}, + userId: '432', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 63', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + userId: '12345', + properties: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + type: 'page', + data: { + url: 'www.rudderlabs.com', + path: '/test', + search: 'abc', + referrer: 'Rudder', + title: 'Test Page', + }, + timestamp: 1571051718, + name: 'www.rudderlabs.com', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/customers/12345/events', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 64', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + userId: '12345', + properties: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + type: 'page', + data: { + path: '/test', + search: 'abc', + referrer: 'Rudder', + title: 'Test Page', + }, + timestamp: 1571051718, + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/customers/12345/events', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'customerio', + description: 'Test 65', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + userId: '12345', + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + datacenter: 'US', + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + type: 'page', + timestamp: 1571051718, + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://track.customer.io/api/v1/customers/12345/events', + userId: '12345', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/customerio/router/data.ts b/test/integrations/destinations/customerio/router/data.ts new file mode 100644 index 00000000000..9a343777148 --- /dev/null +++ b/test/integrations/destinations/customerio/router/data.ts @@ -0,0 +1,436 @@ +export const data = [ + { + name: 'customerio', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '123456', + email: 'test@rudderstack.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + ip: '0.0.0.0', + age: 26, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + user_properties: { + prop1: 'val1', + prop2: 'val2', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: '123456', + integrations: { + All: true, + }, + traits: { + anonymousId: 'anon-id', + email: 'test@gmail.com', + 'dot.name': 'Arnab Pal', + address: { + city: 'NY', + country: 'USA', + postalCode: 712136, + state: 'CA', + street: '', + }, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 1, + }, + destination: { + Config: { + datacenterEU: false, + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + datacenterEU: false, + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.0-beta.2', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.0-beta.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', + }, + groupId: 'group@1', + integrations: { + All: true, + }, + traits: { + domainNames: 'rudderstack.com', + email: 'help@rudderstack.com', + name: 'rudderstack', + action: 'identify', + }, + type: 'group', + userId: 'user@1', + }, + metadata: { + jobId: 3, + }, + destination: { + Config: { + datacenterEU: false, + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.0-beta.2', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.0-beta.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', + }, + groupId: 'group@1', + integrations: { + All: true, + }, + traits: { + domainNames: 'rudderstack.com', + email: 'help@rudderstack.com', + name: 'rudderstack', + action: 'delete', + }, + type: 'group', + userId: 'user@1', + }, + metadata: { + jobId: 4, + }, + destination: { + Config: { + datacenterEU: false, + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + destType: 'customerio', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://track.customer.io/api/v1/customers/123456', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + params: {}, + body: { + JSON: { + anonymous_id: '123456', + city: 'NY', + country: 'USA', + postalCode: 712136, + state: 'CA', + street: '', + email: 'test@gmail.com', + 'dot.name': 'Arnab Pal', + prop1: 'val1', + prop2: 'val2', + _timestamp: 1571043797, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '123456', + statusCode: 200, + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + datacenterEU: false, + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://track.customer.io/api/v1/customers/12345/events', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + }, + params: {}, + body: { + JSON: { + data: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + }, + name: 'ApplicationLoaded', + type: 'page', + timestamp: 1571051718, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '12345', + statusCode: 200, + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + datacenterEU: false, + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://track.customer.io/api/v2/batch', + headers: { + Authorization: 'Basic NDZiZTU0NzY4ZTdkNDlhYjI2Mjg6ZHVtbXlBcGlLZXk=', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + FORM: {}, + XML: {}, + JSON: { + batch: [ + { + type: 'object', + action: 'identify', + attributes: { + name: 'rudderstack', + email: 'help@rudderstack.com', + domainNames: 'rudderstack.com', + }, + identifiers: { + object_id: 'group@1', + object_type_id: '1', + }, + cio_relationships: [ + { + identifiers: { + id: 'user@1', + }, + }, + ], + }, + { + type: 'object', + action: 'delete', + attributes: { + name: 'rudderstack', + email: 'help@rudderstack.com', + domainNames: 'rudderstack.com', + }, + identifiers: { + object_id: 'group@1', + object_type_id: '1', + }, + cio_relationships: [ + { + identifiers: { + id: 'user@1', + }, + }, + ], + }, + ], + }, + JSON_ARRAY: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 3, + }, + { + jobId: 4, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + datacenterEU: false, + siteID: '46be54768e7d49ab2628', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/dcm_floodlight/processor/data.ts b/test/integrations/destinations/dcm_floodlight/processor/data.ts new file mode 100644 index 00000000000..e4b582a3f7a --- /dev/null +++ b/test/integrations/destinations/dcm_floodlight/processor/data.ts @@ -0,0 +1,5003 @@ +export const data = [ + { + name: 'dcm_floodlight', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '22448662', + activityTag: '', + groupTag: '', + conversionEvents: [ + { + customVariables: [ + { + from: 'rudder1', + to: '1', + }, + { + from: 'rudder2', + to: '2', + }, + ], + eventName: 'Product viewed', + floodlightActivityTag: 'signu01', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + from: '', + to: '', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'signu01', + floodlightGroupTag: 'conv02', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Product viewed', + properties: { + orderId: 111, + quantity: 2, + revenue: 800, + rudder1: 'rudder-v1', + rudder2: 'rudder-v2', + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=22448662;cat=signu01;type=conv01;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=ea5cfab2-3961-4d8a-8187-3d1858c90a9f;dc_lat=1;tag_for_child_directed_treatment=0;tfua=1;npa=1;u1=rudder-v1;u2=rudder-v2', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + activityTag: '', + advertiserId: '12649566', + conversionEvents: [ + { + customVariables: [ + { + from: '', + to: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + from: 'rudder1', + to: '1', + }, + { + from: 'akash2', + to: '2', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + customVariables: [ + { + from: '', + to: '', + }, + ], + eventName: 'Checkout Started', + floodlightActivityTag: 'check0', + floodlightGroupTag: 'conv00', + salesTag: true, + }, + ], + groupTag: '', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Sign up Completed', + properties: { + orderId: 111, + quantity: 2, + revenue: 800, + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=12649566;cat=signu0;type=conv01;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=ea5cfab2-3961-4d8a-8187-3d1858c90a9f;dc_lat=1;tag_for_child_directed_treatment=0;tfua=1;npa=1', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + activityTag: '', + advertiserId: '12649566', + conversionEvents: [ + { + customVariables: [ + { + from: '', + to: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + from: 'rudder1', + to: '1', + }, + { + from: 'akash2', + to: '2', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + customVariables: [ + { + from: '', + to: '', + }, + ], + eventName: 'Checkout Started', + floodlightActivityTag: 'check0', + floodlightGroupTag: 'conv00', + salesTag: true, + }, + ], + groupTag: '', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Order Complete', + properties: { + orderId: 111, + quantity: 2, + revenue: 800, + rudder1: 'rudder-v1', + akash2: 'akash-v2', + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=12649566;cat=order0;type=conv000;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=ea5cfab2-3961-4d8a-8187-3d1858c90a9f;dc_lat=1;tag_for_child_directed_treatment=0;tfua=1;npa=1;u1=rudder-v1;u2=akash-v2', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + activityTag: '', + advertiserId: '12649566', + conversionEvents: [ + { + customVariables: [ + { + from: '', + to: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + from: 'rudder1', + to: '1', + }, + { + from: 'akash2', + to: '2', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + customVariables: [ + { + from: '', + to: '', + }, + ], + eventName: 'Checkout Started', + floodlightActivityTag: 'check0', + floodlightGroupTag: 'conv00', + salesTag: true, + }, + ], + groupTag: '', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Checkout Started', + properties: { + orderId: 111, + quantity: 2, + revenue: 800, + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=12649566;cat=check0;type=conv00;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=111;qty=2;cost=800;dc_lat=1;tag_for_child_directed_treatment=0;tfua=1;npa=1', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + activityTag: '', + advertiserId: '12649566', + conversionEvents: [ + { + customVariables: [ + { + from: '', + to: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + from: 'rudder1', + to: '1', + }, + { + from: 'akash1', + to: '2', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + customVariables: [ + { + from: '', + to: '', + }, + ], + eventName: 'Checkout Started', + floodlightActivityTag: 'check0', + floodlightGroupTag: 'conv00', + salesTag: true, + }, + { + customVariables: [ + { + from: 'rudder2', + to: '1', + }, + { + from: 'akash2', + to: '2', + }, + { + from: 'friendlyName2', + to: '3', + }, + { + from: 'name2', + to: '4', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + groupTag: '', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Purchase', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + rudder2: 'rudder2', + akash2: 'akash2', + friendlyName2: 'friendlyName2', + name2: 'name2', + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=12649566;cat=Pur0;type=conv111;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=ea5cfab2-3961-4d8a-8187-3d1858c90a9f;dc_lat=1;tag_for_child_directed_treatment=0;tfua=1;npa=1;u1=rudder2;u2=akash2;u3=friendlyName2;u4=name2', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + activityTag: '', + advertiserId: '12649566', + conversionEvents: [ + { + customVariables: [ + { + from: '', + to: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + from: 'rudder1', + to: '1', + }, + { + from: 'akash1', + to: '2', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + customVariables: [ + { + from: '', + to: '', + }, + ], + eventName: 'Checkout Started', + floodlightActivityTag: 'check0', + floodlightGroupTag: 'conv00', + salesTag: true, + }, + { + customVariables: [ + { + from: 'rudder2', + to: '1', + }, + { + from: 'akash2', + to: '2', + }, + { + from: 'friendlyName2', + to: '3', + }, + { + from: 'name2', + to: '4', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + groupTag: '', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Sign up Completed', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + 'advertisingId is required: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: advertisingId is required', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + implementation: 'cdkV2', + destType: 'DCM_FLOODLIGHT', + module: 'destination', + feature: 'processor', + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + activityTag: '', + advertiserId: '12649566', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + from: 'rudder1', + to: '1', + }, + { + from: 'akash1', + to: '2', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + customVariables: [ + { + from: '', + to: '', + }, + ], + eventName: 'Checkout Started', + floodlightActivityTag: 'check0', + floodlightGroupTag: 'conv00', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + groupTag: '', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + }, + event: 'Sign up Completed', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + 'track:: userAgent is required: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: track:: userAgent is required', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + implementation: 'cdkV2', + destType: 'DCM_FLOODLIGHT', + module: 'destination', + feature: 'processor', + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '12649566', + activityTag: 'check0', + groupTag: 'conv00', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'akash1', + }, + ], + eventName: 'Checkout Started', + floodlightActivityTag: '', + floodlightGroupTag: '', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Checkout Started', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + akash1: 'akash-v1', + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=12649566;cat=check0;type=conv00;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=111;qty=3;cost=800;dc_lat=1;tag_for_child_directed_treatment=0;tfua=1;npa=1;u1=akash-v1', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '12649566', + activityTag: 'check0', + groupTag: 'conv00', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + eventName: 'Checkout Started', + floodlightActivityTag: '', + floodlightGroupTag: '', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Checkout Started', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=12649566;cat=check0;type=conv00;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=111;qty=3;cost=800;dc_lat=1;tag_for_child_directed_treatment=0;tfua=1;npa=1', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '12649566', + activityTag: 'check0', + groupTag: 'conv00', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + eventName: 'Checkout Started', + floodlightActivityTag: '', + floodlightGroupTag: '', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Sample event', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + 'track:: Conversion event not found: Workflow: procWorkflow, Step: handleConversionEvents, ChildStep: undefined, OriginalError: track:: Conversion event not found', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + implementation: 'cdkV2', + destType: 'DCM_FLOODLIGHT', + module: 'destination', + feature: 'processor', + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '12649566', + activityTag: 'check0', + groupTag: 'conv00', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + eventName: 'Checkout Started', + floodlightActivityTag: '', + floodlightGroupTag: '', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Checkout Started', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + ], + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=12649566;cat=check0;type=conv00;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=111;qty=1;cost=800;dc_lat=1;tag_for_child_directed_treatment=0;tfua=1;npa=1', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '12649566', + activityTag: 'check0', + groupTag: 'conv00', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + eventName: 'Checkout Started', + floodlightActivityTag: '', + floodlightGroupTag: '', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Checkout Started', + properties: { + orderId: 111, + revenue: 800, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 4, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=12649566;cat=check0;type=conv00;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=111;qty=6;cost=800;dc_lat=1;tag_for_child_directed_treatment=0;tfua=1;npa=1', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '12649566', + activityTag: 'check0', + groupTag: 'conv00', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + eventName: 'Checkout Started', + floodlightActivityTag: '', + floodlightGroupTag: '', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Checkout Started', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=12649566;cat=check0;type=conv00;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=111;qty=999999;cost=800;dc_lat=1;tag_for_child_directed_treatment=0;tfua=1;npa=1', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '12649566', + activityTag: 'check0', + groupTag: 'conv00', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + eventName: 'Checkout Started', + floodlightActivityTag: '', + floodlightGroupTag: '', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'OrDeR complete', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + rudder1: 'rudder-v1', + akash1: 'akash-v1', + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=12649566;cat=order0;type=conv000;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=ea5cfab2-3961-4d8a-8187-3d1858c90a9f;dc_lat=1;tag_for_child_directed_treatment=0;tfua=1;npa=1;u1=rudder-v1;u2=akash-v1', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '12649566', + activityTag: 'check0', + groupTag: 'conv00', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + eventName: 'Checkout Started', + floodlightActivityTag: '', + floodlightGroupTag: '', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Order complete', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + rudder1: 'rudder-v1', + akash1: 'akash-v1', + }, + integrations: { + All: true, + 'DCM Floodlight': {}, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=12649566;cat=order0;type=conv000;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=ea5cfab2-3961-4d8a-8187-3d1858c90a9f;dc_lat=1;u1=rudder-v1;u2=akash-v1', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '12649566', + activityTag: 'check0', + groupTag: 'conv00', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + eventName: 'Checkout Started', + floodlightActivityTag: '', + floodlightGroupTag: '', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Order complete', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + rudder1: 100, + akash1: 5987, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=12649566;cat=order0;type=conv000;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=ea5cfab2-3961-4d8a-8187-3d1858c90a9f;dc_lat=1;u1=100;u2=5987', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 16', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '12649566', + activityTag: 'check0', + groupTag: 'conv00', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + eventName: 'Checkout Started', + floodlightActivityTag: '', + floodlightGroupTag: '', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: true, + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Order complete', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + rudder1: 'rudder-v1', + akash1: 'akash-v1', + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 1, + GDPR: 1, + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=12649566;cat=order0;type=conv000;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=ea5cfab2-3961-4d8a-8187-3d1858c90a9f;dc_lat=1;tag_for_child_directed_treatment=1;tfua=1;npa=1;u1=rudder-v1;u2=akash-v1', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 17', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '12649566', + activityTag: 'check0', + groupTag: 'conv00', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + eventName: 'Checkout Started', + floodlightActivityTag: '', + floodlightGroupTag: '', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: true, + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Order complete', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'Yes', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + 'COPPA: valid parameters are [1|true] or [0|false]: Workflow: procWorkflow, Step: handleIntegrationsObject, ChildStep: undefined, OriginalError: COPPA: valid parameters are [1|true] or [0|false]', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + implementation: 'cdkV2', + destType: 'DCM_FLOODLIGHT', + module: 'destination', + feature: 'processor', + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 18', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '12649566', + activityTag: 'check0', + groupTag: 'conv00', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + eventName: 'Checkout Started', + floodlightActivityTag: '', + floodlightGroupTag: '', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: true, + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Order complete', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: 'Yes', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + 'GDPR: valid parameters are [1|true] or [0|false]: Workflow: procWorkflow, Step: handleIntegrationsObject, ChildStep: undefined, OriginalError: GDPR: valid parameters are [1|true] or [0|false]', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + implementation: 'cdkV2', + destType: 'DCM_FLOODLIGHT', + module: 'destination', + feature: 'processor', + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 19', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '12649566', + activityTag: 'check0', + groupTag: 'conv00', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + eventName: 'Checkout Started', + floodlightActivityTag: '', + floodlightGroupTag: '', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: true, + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Order complete', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: 'No', + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + 'npa: valid parameters are [1|true] or [0|false]: Workflow: procWorkflow, Step: handleIntegrationsObject, ChildStep: undefined, OriginalError: npa: valid parameters are [1|true] or [0|false]', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + implementation: 'cdkV2', + destType: 'DCM_FLOODLIGHT', + module: 'destination', + feature: 'processor', + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 20', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '12649566', + activityTag: 'check0', + groupTag: 'conv00', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + eventName: 'Checkout Started', + floodlightActivityTag: '', + floodlightGroupTag: '', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'Yes', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Order complete', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: 'true', + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + 'dc_lat: valid parameters are [1|true] or [0|false]: Workflow: procWorkflow, Step: cleanPayload, ChildStep: undefined, OriginalError: dc_lat: valid parameters are [1|true] or [0|false]', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + implementation: 'cdkV2', + destType: 'DCM_FLOODLIGHT', + module: 'destination', + feature: 'processor', + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 21', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '12649566', + activityTag: 'check0', + groupTag: 'conv00', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + eventName: 'Checkout Started', + floodlightActivityTag: '', + floodlightGroupTag: '', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'page', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'Yes', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: 'true', + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + 'page:: Conversion event not found: Workflow: procWorkflow, Step: handleConversionEvents, ChildStep: undefined, OriginalError: page:: Conversion event not found', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + implementation: 'cdkV2', + destType: 'DCM_FLOODLIGHT', + module: 'destination', + feature: 'processor', + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 22', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '12649566', + activityTag: 'check0', + groupTag: 'conv00', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Viewed Sign up Completed Page', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + eventName: 'Checkout Started', + floodlightActivityTag: '', + floodlightGroupTag: '', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'page', + channel: 'web', + name: 'Sign up Completed', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: 'true', + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=12649566;cat=signu0;type=conv01;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=ea5cfab2-3961-4d8a-8187-3d1858c90a9f;dc_lat=1;tag_for_child_directed_treatment=0;tfua=1;npa=1', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 23', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '22448662', + activityTag: '', + groupTag: '', + conversionEvents: [ + { + customVariables: [ + { + from: 'rudder1', + to: '1', + }, + { + from: 'rudder2', + to: '2', + }, + ], + eventName: 'Product viewed', + floodlightActivityTag: 'signu01', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + from: '', + to: '', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'signu01', + floodlightGroupTag: 'conv02', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Product viewed', + properties: { + orderId: 111, + quantity: 2, + revenue: 800, + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=22448662;cat=signu01;type=conv01;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=ea5cfab2-3961-4d8a-8187-3d1858c90a9f;dc_lat=1;tag_for_child_directed_treatment=0;tfua=1;npa=1', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 24', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + activityTag: '', + advertiserId: '12649566', + conversionEvents: [ + { + customVariables: [ + { + from: '', + to: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + from: 'rudder1', + to: '1', + }, + { + from: 'akash1', + to: '2', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + customVariables: [ + { + from: '', + to: '', + }, + ], + eventName: 'Checkout Started', + floodlightActivityTag: 'check0', + floodlightGroupTag: 'conv00', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + groupTag: '', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Purchase', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + rudder2: 0, + akash2: 'akash2', + friendlyName2: false, + name2: '1234', + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=12649566;cat=Pur0;type=conv111;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=ea5cfab2-3961-4d8a-8187-3d1858c90a9f;dc_lat=1;tag_for_child_directed_treatment=0;tfua=1;npa=1;u1=0;u2=akash2;u4=1234', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 25', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + advertiserId: '12649566', + activityTag: 'check0', + groupTag: 'conv00', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Viewed Page', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + eventName: 'Checkout Started', + floodlightActivityTag: '', + floodlightGroupTag: '', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'page', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: 'true', + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=12649566;cat=signu0;type=conv01;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=ea5cfab2-3961-4d8a-8187-3d1858c90a9f;dc_lat=1;tag_for_child_directed_treatment=0;tfua=1;npa=1', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'dcm_floodlight', + description: 'Test 26', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + activityTag: '', + advertiserId: '12649566', + conversionEvents: [ + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Sign up Completed', + floodlightActivityTag: 'signu0', + floodlightGroupTag: 'conv01', + salesTag: false, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder1', + }, + { + to: '2', + from: 'akash1', + }, + ], + eventName: 'Order Complete', + floodlightActivityTag: 'order0', + floodlightGroupTag: 'conv000', + salesTag: false, + }, + { + customVariables: [ + { + to: '', + from: '', + }, + ], + eventName: 'Checkout Started', + floodlightActivityTag: 'check0', + floodlightGroupTag: 'conv00', + salesTag: true, + }, + { + customVariables: [ + { + to: '1', + from: 'rudder2', + }, + { + to: '2', + from: 'akash2', + }, + { + to: '3', + from: 'friendlyName2', + }, + { + to: '4', + from: 'name2', + }, + ], + eventName: 'Purchase', + floodlightActivityTag: 'Pur0', + floodlightGroupTag: 'conv111', + salesTag: false, + }, + ], + groupTag: '', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + userId: '1234', + type: 'track', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + adTrackingEnabled: 'true', + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + brand: 'Google2', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + traits: { + name2: 'traits-v1', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Purchase', + properties: { + orderId: 111, + quantity: 999999, + revenue: 800, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + rudder2: '0', + akash2: 'akash2', + friendlyName2: false, + }, + integrations: { + All: true, + 'DCM Floodlight': { + COPPA: 'false', + GDPR: '1', + npa: true, + }, + }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + receivedAt: '2020-01-17T10:23:52.688+05:30', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: + 'https://ad.doubleclick.net/ddm/activity/src=12649566;cat=Pur0;type=conv111;dc_rdid=T0T0T072-5e28-45a1-9eda-ce22a3e36d1a;ord=ea5cfab2-3961-4d8a-8187-3d1858c90a9f;dc_lat=1;tag_for_child_directed_treatment=0;tfua=1;npa=1;u1=0;u2=akash2;u4=traits-v1', + headers: { + 'User-Agent': + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/dynamic_yield/processor/data.ts b/test/integrations/destinations/dynamic_yield/processor/data.ts new file mode 100644 index 00000000000..f72f1574f71 --- /dev/null +++ b/test/integrations/destinations/dynamic_yield/processor/data.ts @@ -0,0 +1,1041 @@ +export const data = [ + { + name: 'dynamic_yield', + description: 'Identify call without hashed email 21313123', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '507f191e810c19729de860ea', + context: { + ip: '54.100.200.255', + sessionId: '16733896350494', + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36', + }, + integrations: { + All: true, + }, + receivedAt: '2015-02-23T22:28:55.387Z', + sentAt: '2015-02-23T22:28:55.111Z', + timestamp: '2015-02-23T22:28:55.111Z', + traits: { + email: 'peter@example.com', + }, + type: 'identify', + userId: 'user0', + version: '1', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + hashEmail: true, + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://dy-api.com/v2/collect/user/event', + headers: { + 'Content-Type': 'application/json', + 'DY-API-Key': 'dummyApiKey', + }, + params: {}, + body: { + JSON: { + user: { id: 'user0' }, + session: { custom: '16733896350494' }, + context: { device: { ip: '54.100.200.255' } }, + events: [ + { + name: 'Identify User', + properties: { + dyType: 'identify-v1', + hashedEmail: + 'f111db891a36b76df28abc74867e6c7248f796e045117f0cff27b6e2be25d2df', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + }, + ], + }, + }, + }, + { + name: 'dynamic_yield', + description: 'Identify call with hashed email', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '507f191e810c19729de860ea', + context: { + ip: '54.100.200.255', + sessionId: '16733896350494', + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36', + }, + integrations: { + All: true, + }, + receivedAt: '2015-02-23T22:28:55.387Z', + sentAt: '2015-02-23T22:28:55.111Z', + timestamp: '2015-02-23T22:28:55.111Z', + traits: { + email: 'f111db891a36b76df28abc74867e6c7248f796e045117f0cff27b6e2be25d2df', + }, + type: 'identify', + userId: 'user0', + version: '1', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + hashEmail: false, + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://dy-api.com/v2/collect/user/event', + headers: { + 'Content-Type': 'application/json', + 'DY-API-Key': 'dummyApiKey', + }, + params: {}, + body: { + JSON: { + user: { id: 'user0' }, + session: { custom: '16733896350494' }, + context: { device: { ip: '54.100.200.255' } }, + events: [ + { + name: 'Identify User', + properties: { + dyType: 'identify-v1', + hashedEmail: + 'f111db891a36b76df28abc74867e6c7248f796e045117f0cff27b6e2be25d2df', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + }, + ], + }, + }, + }, + { + name: 'dynamic_yield', + description: 'Track call with Product Added event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + type: 'track', + session_id: '16733896350494', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'Product Added', + userId: 'testuserId1', + properties: { + product_id: '123', + sku: 'item-34454ga', + category: 'Games', + name: 'Game', + brand: 'Gamepro', + variant: '111', + price: 39.95, + quantity: 1, + coupon: 'DISC21', + position: 1, + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.png', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + hashEmail: false, + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://dy-api.com/v2/collect/user/event', + headers: { + 'Content-Type': 'application/json', + 'DY-API-Key': 'dummyApiKey', + }, + params: {}, + body: { + JSON: { + user: { id: 'testuserId1' }, + session: { custom: '16733896350494' }, + context: { device: { ip: '54.100.200.255' } }, + events: [ + { + name: 'Add to Cart', + properties: { + dyType: 'add-to-cart-v1', + value: 39.95, + productId: 'item-34454ga', + quantity: 1, + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + }, + ], + }, + }, + }, + { + name: 'dynamic_yield', + description: 'Identify call without email', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '507f191e810c19729de860ea', + context: { + ip: '54.100.200.255', + sessionId: '16733896350494', + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36', + }, + integrations: { + All: true, + }, + receivedAt: '2015-02-23T22:28:55.387Z', + sentAt: '2015-02-23T22:28:55.111Z', + timestamp: '2015-02-23T22:28:55.111Z', + traits: {}, + type: 'identify', + userId: 'user0', + version: '1', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + hashEmail: false, + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://dy-api.com/v2/collect/user/event', + headers: { + 'Content-Type': 'application/json', + 'DY-API-Key': 'dummyApiKey', + }, + params: {}, + body: { + JSON: { + user: { id: 'user0' }, + session: { custom: '16733896350494' }, + context: { device: { ip: '54.100.200.255' } }, + events: [ + { + name: 'Identify User', + properties: { + dyType: 'identify-v1', + cuid: 'user0', + cuidType: 'userId', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + }, + ], + }, + }, + }, + { + name: 'dynamic_yield', + description: 'Track call with Product Removed event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + type: 'track', + session_id: '16733896350494', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'Product Removed', + userId: 'testuserId1', + properties: { + product_id: '123', + sku: 'item-34454ga', + category: 'Games', + name: 'Game', + brand: 'Gamepro', + variant: '111', + price: 39.95, + quantity: 1, + coupon: 'DISC21', + position: 1, + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.png', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + hashEmail: false, + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://dy-api.com/v2/collect/user/event', + headers: { + 'Content-Type': 'application/json', + 'DY-API-Key': 'dummyApiKey', + }, + params: {}, + body: { + JSON: { + user: { id: 'testuserId1' }, + session: { custom: '16733896350494' }, + context: { device: { ip: '54.100.200.255' } }, + events: [ + { + name: 'Remove from Cart', + properties: { + dyType: 'remove-from-cart-v1', + value: 39.95, + productId: 'item-34454ga', + quantity: 1, + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + }, + ], + }, + }, + }, + { + name: 'dynamic_yield', + description: 'Track call with Product Added to Wishlist event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + type: 'track', + session_id: '16733896350494', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'Product Added to Wishlist', + userId: 'testuserId1', + properties: { + product_id: '123', + sku: 'item-34454ga', + category: 'Games', + name: 'Game', + brand: 'Gamepro', + variant: '111', + price: 39.95, + quantity: 1, + coupon: 'DISC21', + position: 1, + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.png', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + hashEmail: false, + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://dy-api.com/v2/collect/user/event', + headers: { + 'Content-Type': 'application/json', + 'DY-API-Key': 'dummyApiKey', + }, + params: {}, + body: { + JSON: { + user: { id: 'testuserId1' }, + session: { custom: '16733896350494' }, + context: { device: { ip: '54.100.200.255' } }, + events: [ + { + name: 'Add to Wishlist', + properties: { + dyType: 'add-to-wishlist-v1', + value: 39.95, + productId: 'item-34454ga', + quantity: 1, + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + }, + ], + }, + }, + }, + { + name: 'dynamic_yield', + description: 'Track call with order completed event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + type: 'track', + session_id: '16733896350494', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'Order Completed', + userId: 'testuserId1', + properties: { + checkout_id: '12345', + order_id: '1234', + affiliation: 'Apple Store', + total: 20, + revenue: 15, + shipping: 4, + tax: 1, + discount: 1.5, + coupon: 'ImagePro', + currency: 'USD', + products: [ + { + product_id: '123', + sku: 'G-32', + name: 'Monopoly', + price: 14, + quantity: 1, + category: 'Games', + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.jpg', + }, + { + product_id: '345', + sku: 'F-32', + name: 'UNO', + price: 3.45, + quantity: 2, + category: 'Games', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + hashEmail: false, + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://dy-api.com/v2/collect/user/event', + headers: { + 'Content-Type': 'application/json', + 'DY-API-Key': 'dummyApiKey', + }, + params: {}, + body: { + JSON: { + user: { id: 'testuserId1' }, + session: { custom: '16733896350494' }, + context: { device: { ip: '54.100.200.255' } }, + events: [ + { + name: 'Purchase', + properties: { + dyType: 'purchase-v1', + uniqueTransactionId: '1234', + value: 15, + currency: 'USD', + cart: [ + { + itemPrice: 14, + productId: 'G-32', + quantity: 1, + }, + { + itemPrice: 3.45, + productId: 'F-32', + quantity: 2, + }, + ], + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + }, + ], + }, + }, + }, + { + name: 'dynamic_yield', + description: 'Unsupported group call check', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '507f191e810c19729de860ea', + context: { + ip: '54.100.200.255', + sessionId: '16733896350494', + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36', + }, + integrations: { + All: true, + }, + receivedAt: '2015-02-23T22:28:55.387Z', + sentAt: '2015-02-23T22:28:55.111Z', + timestamp: '2015-02-23T22:28:55.111Z', + traits: { + email: 'peter@example.com', + }, + type: 'group', + userId: 'user0', + version: '1', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + 'message type group is not supported: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message type group is not supported', + statTags: { + destType: 'DYNAMIC_YIELD', + destinationId: 'destId', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'dynamic_yield', + description: 'Event type not present', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '507f191e810c19729de860ea', + context: { + ip: '54.100.200.255', + sessionId: '16733896350494', + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36', + }, + integrations: { + All: true, + }, + receivedAt: '2015-02-23T22:28:55.387Z', + sentAt: '2015-02-23T22:28:55.111Z', + timestamp: '2015-02-23T22:28:55.111Z', + traits: { + email: 'peter@example.com', + }, + userId: 'user0', + version: '1', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + 'message Type is not present. Aborting message.: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message Type is not present. Aborting message.', + statTags: { + destType: 'DYNAMIC_YIELD', + destinationId: 'destId', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'dynamic_yield', + description: 'API Key not present', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '507f191e810c19729de860ea', + type: 'identify', + context: { + ip: '54.100.200.255', + sessionId: '16733896350494', + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36', + }, + integrations: { + All: true, + }, + receivedAt: '2015-02-23T22:28:55.387Z', + sentAt: '2015-02-23T22:28:55.111Z', + timestamp: '2015-02-23T22:28:55.111Z', + traits: { + email: 'peter@example.com', + }, + userId: 'user0', + version: '1', + }, + destination: { + Config: {}, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + 'Api Key is not present: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Api Key is not present', + statTags: { + destType: 'DYNAMIC_YIELD', + destinationId: 'destId', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'dynamic_yield', + description: 'Event is not there in input', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + type: 'track', + session_id: '16733896350494', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: 'testuserId1', + properties: { + product_id: '123', + sku: 'item-34454ga', + category: 'Games', + name: 'Game', + brand: 'Gamepro', + variant: '111', + price: 39.95, + quantity: 1, + coupon: 'DISC21', + position: 1, + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.png', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + 'event is not present. Aborting.: Workflow: procWorkflow, Step: validateInputForTrack, ChildStep: undefined, OriginalError: event is not present. Aborting.', + statTags: { + destType: 'DYNAMIC_YIELD', + destinationId: 'destId', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/eloqua/processor/data.ts b/test/integrations/destinations/eloqua/processor/data.ts new file mode 100644 index 00000000000..50aad5639af --- /dev/null +++ b/test/integrations/destinations/eloqua/processor/data.ts @@ -0,0 +1,460 @@ +export const data = [ + { + name: 'eloqua', + description: 'identify payload pass', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + traits: { + C_FirstName: 'Test User', + C_patient_id1: 1, + C_MobilePhone: '+008822773355', + C_City: 'Scranton', + C_date_of_birth_1life1: '22/12/01', + }, + userId: 'testUser1234@keeptesting.com', + context: { + sources: { + job_id: '2RVkqlV1adBiIpj33kWlQzchMP1/Syncher', + version: 'v1.28.0', + job_run_id: 'cja699onfuet3te5obc0', + task_run_id: 'cja699onfuet3te5obcg', + }, + externalId: [ + { + id: 'testUser1234@keeptesting.com', + type: 'ELOQUA-contacts', + identifierType: 'C_EmailAddress', + }, + ], + mappedToDestination: 'true', + }, + recordId: '1', + rudderId: '3606d3c7-8741-4245-a254-450e137d3866', + messageId: '40def17a-1b6a-4d2d-a851-2a8d96f913bd', + }, + destination: { + Config: { + customerAccountId: '89236978', + customerId: '78678678', + audienceId: '564567', + hashEmail: false, + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: '', + headers: {}, + params: {}, + body: { + JSON: { + identifierFieldName: 'C_EmailAddress', + data: { + C_FirstName: 'Test User', + C_patient_id1: '1', + C_MobilePhone: '+008822773355', + C_City: 'Scranton', + C_date_of_birth_1life1: '22/12/01', + C_EmailAddress: 'testUser1234@keeptesting.com', + }, + customObjectId: 'contacts', + type: 'identify', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'eloqua', + description: 'type not correect', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'audiencelist', + traits: { + C_FirstName: 'Test User', + C_patient_id1: 1, + C_MobilePhone: '+008822773355', + C_City: 'Scranton', + C_date_of_birth_1life1: '22/12/01', + }, + userId: 'testUser1234@keeptesting.com', + context: { + sources: { + job_id: '2RVkqlV1adBiIpj33kWlQzchMP1/Syncher', + version: 'v1.28.0', + job_run_id: 'cja699onfuet3te5obc0', + task_run_id: 'cja699onfuet3te5obcg', + }, + externalId: [ + { + id: 'testUser1234@keeptesting.com', + type: 'ELOQUA-contacts', + identifierType: 'C_EmailAddress', + }, + ], + mappedToDestination: 'true', + }, + recordId: '1', + rudderId: '3606d3c7-8741-4245-a254-450e137d3866', + messageId: '40def17a-1b6a-4d2d-a851-2a8d96f913bd', + }, + destination: { + Config: { + customerAccountId: '89236978', + customerId: '78678678', + audienceId: '564567', + hashEmail: false, + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Event type audiencelist is not supported. Aborting message.: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Event type audiencelist is not supported. Aborting message.', + statTags: { + destType: 'ELOQUA', + destinationId: 'destId', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + workspaceId: 'wspId', + }, + statusCode: 400, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'eloqua', + description: 'trits not correect', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + userId: 'testUser1234@keeptesting.com', + context: { + sources: { + job_id: '2RVkqlV1adBiIpj33kWlQzchMP1/Syncher', + version: 'v1.28.0', + job_run_id: 'cja699onfuet3te5obc0', + task_run_id: 'cja699onfuet3te5obcg', + }, + externalId: [ + { + id: 'testUser1234@keeptesting.com', + type: 'ELOQUA-contacts', + identifierType: 'C_EmailAddress', + }, + ], + mappedToDestination: 'true', + }, + recordId: '1', + rudderId: '3606d3c7-8741-4245-a254-450e137d3866', + messageId: '40def17a-1b6a-4d2d-a851-2a8d96f913bd', + }, + destination: { + Config: { + customerAccountId: '89236978', + customerId: '78678678', + audienceId: '564567', + hashEmail: false, + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Message traits/properties not present. Aborting message.: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Message traits/properties not present. Aborting message.', + statTags: { + destType: 'ELOQUA', + destinationId: 'destId', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + workspaceId: 'wspId', + }, + statusCode: 400, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'eloqua', + description: 'identify payload pass 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + traits: { + C_FirstName: 'Test User', + C_patient_id1: 1, + C_MobilePhone: '+008822773355', + C_City: 'Scranton', + C_date_of_birth_1life1: '22/12/01', + }, + userId: 'testUser1234@keeptesting.com', + context: { + sources: { + job_id: '2RVkqlV1adBiIpj33kWlQzchMP1/Syncher', + version: 'v1.28.0', + job_run_id: 'cja699onfuet3te5obc0', + task_run_id: 'cja699onfuet3te5obcg', + }, + externalId: [ + { + id: 'testUser1234@keeptesting.com', + type: 'ELOQUA-contacts', + identifierType: 'C_EmailAddress', + }, + ], + mappedToDestination: 'true', + }, + recordId: '1', + rudderId: '3606d3c7-8741-4245-a254-450e137d3866', + messageId: '40def17a-1b6a-4d2d-a851-2a8d96f913bd', + }, + destination: { + Config: { + customerAccountId: '89236978', + customerId: '78678678', + audienceId: '564567', + hashEmail: false, + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: '', + headers: {}, + params: {}, + body: { + JSON: { + identifierFieldName: 'C_EmailAddress', + data: { + C_FirstName: 'Test User', + C_patient_id1: '1', + C_MobilePhone: '+008822773355', + C_City: 'Scranton', + C_date_of_birth_1life1: '22/12/01', + C_EmailAddress: 'testUser1234@keeptesting.com', + }, + customObjectId: 'contacts', + type: 'identify', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'eloqua', + description: 'track payload pass', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + properties: { + key11: 'Test User', + key21: 1, + contactID11: '+008822773355', + }, + userId: 'testUser1234@keeptesting.com', + channel: 'sources', + context: { + sources: { + job_id: '2RVkqlV1adBiIpj33kWlQzchMP1/Syncher', + version: 'v1.28.0', + job_run_id: 'cja699onfuet3te5obc0', + task_run_id: 'cja699onfuet3te5obcg', + }, + externalId: [ + { + id: 'testUser1234@keeptesting.com', + type: 'ELOQUA-172', + identifierType: 'contactID1', + }, + ], + mappedToDestination: 'true', + }, + recordId: '1', + rudderId: '3606d3c7-8741-4245-a254-450e137d3866', + messageId: '40def17a-1b6a-4d2d-a851-2a8d96f913bd', + }, + destination: { + Config: { + customerAccountId: '89236978', + customerId: '78678678', + audienceId: '564567', + hashEmail: false, + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: '', + headers: {}, + params: {}, + body: { + JSON: { + identifierFieldName: 'contactID1', + data: { + key11: 'Test User', + key21: '1', + contactID11: '+008822773355', + contactID1: 'testUser1234@keeptesting.com', + }, + customObjectId: '172', + type: 'track', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/engage/deleteUsers/data.ts b/test/integrations/destinations/engage/deleteUsers/data.ts new file mode 100644 index 00000000000..5a6ea9d2680 --- /dev/null +++ b/test/integrations/destinations/engage/deleteUsers/data.ts @@ -0,0 +1,241 @@ +export const data = [ + { + name: 'engage', + description: 'Test 0', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'ENGAGE', + userAttributes: [ + { + userId: '1', + }, + { + userId: '2', + }, + { + userId: '3', + }, + ], + config: { + publicKey: 'abcd', + privateKey: 'efgh', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + }, + { + name: 'engage', + description: 'Test 1', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'ENGAGE', + userAttributes: [ + { + userId: '4', + }, + { + userId: '5', + }, + { + userId: '6', + }, + ], + config: { + publicKey: 'abcd', + privateKey: 'efgh', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + }, + { + name: 'engage', + description: 'Test 2', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'ENGAGE', + userAttributes: [ + { + userId: '7', + }, + { + userId: '8', + }, + { + userId: '9', + }, + ], + config: { + publicKey: 'abcd', + privateKey: 'efgh', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + }, + { + name: 'engage', + description: 'Test 3', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'ENGAGE', + userAttributes: [ + { + userId: '12', + }, + ], + config: { + publicKey: 'abcd', + privateKey: 'efgh', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, + { + name: 'engage', + description: 'Test 4', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'ENGAGE', + userAttributes: [ + { + userId: 'userid1', + }, + { + userId: 'user_sdk2', + }, + ], + config: { + privateKey: 'abcd', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'Public key is a required field for user deletion', + }, + ], + }, + }, + }, + { + name: 'engage', + description: 'Test 5', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'ENGAGE', + userAttributes: [ + { + email: 'testUser@testMail.com', + }, + { + userId: 'user_sdk2', + }, + ], + config: { + publicKey: 'abcd', + privateKey: 'efgh', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/engage/network.ts b/test/integrations/destinations/engage/network.ts new file mode 100644 index 00000000000..a675603d4ec --- /dev/null +++ b/test/integrations/destinations/engage/network.ts @@ -0,0 +1,141 @@ +const deleteNwData = [ + { + httpReq: { + method: 'delete', + url: 'https://api.engage.so/v1/users/1', + }, + httpRes: { + data: { + code: 400, + message: 'Bad Req', + status: 'Fail first', + }, + status: 400, + }, + }, + { + httpReq: { + method: 'delete', + url: 'https://api.engage.so/v1/users/2', + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, + { + httpReq: { + method: 'delete', + url: 'https://api.engage.so/v1/users/3', + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, + { + httpReq: { + method: 'delete', + + url: 'https://api.engage.so/v1/users/4', + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, + { + httpReq: { + method: 'delete', + + url: 'https://api.engage.so/v1/users/5', + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, + { + httpReq: { + method: 'delete', + + url: 'https://api.engage.so/v1/users/6', + 'Content-Type': 'application/json', + Authorization: 'Basic YWJjZDplZmdo', + }, + httpRes: { + data: { + code: 400, + message: 'Bad Req', + status: 'fail 6 ', + }, + status: 400, + }, + }, + { + httpReq: { + method: 'delete', + + url: 'https://api.engage.so/v1/users/7', + 'Content-Type': 'application/json', + Authorization: 'Basic YWJjZDplZmdo', + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, + { + httpReq: { + method: 'delete', + + url: 'https://api.engage.so/v1/users/8', + 'Content-Type': 'application/json', + Authorization: 'Basic YWJjZDplZmdo', + }, + httpRes: { + data: { + code: 400, + message: 'Bad Req', + status: 'fail mid case 8', + }, + status: 400, + }, + }, + { + httpReq: { + method: 'delete', + + url: 'https://api.engage.so/v1/users/9', + 'Content-Type': 'application/json', + Authorization: 'Basic YWJjZDplZmdo', + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, + { + httpReq: { + method: 'delete', + + url: 'https://api.engage.so/v1/users/12', + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, + { + httpReq: { + method: 'delete', + + url: 'https://api.engage.so/v1/users/user_sdk2', + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, +]; +export const networkCallsData = [...deleteNwData]; diff --git a/test/integrations/destinations/engage/processor/data.ts b/test/integrations/destinations/engage/processor/data.ts index 05a235f1b2b..b0b3ae8ec3e 100644 --- a/test/integrations/destinations/engage/processor/data.ts +++ b/test/integrations/destinations/engage/processor/data.ts @@ -12,9 +12,9 @@ export const data = [ message: { anonymousId: '1', traits: { - firstName: 'Anant', - lastName: 'jain', - email: 'anant@r.com', + firstName: 'test', + lastName: 'doe', + email: 'test@r.com', hasPurchased: 'yes', }, type: 'identify', @@ -70,9 +70,9 @@ export const data = [ }, originalTimestamp: '2020-09-28T19:53:31.900Z', traits: { - firstName: 'Anant', - lastName: 'jain', - email: 'anant@r.com', + firstName: 'test', + lastName: 'doe', + email: 'test@r.com', hasPurchased: 'yes', address: { Home: { city: 'iudcb' }, Office: { abc: 'jbc' } }, state: 'Delhi', @@ -113,11 +113,11 @@ export const data = [ title: 'Mr', hasPurchased: 'yes', }, - email: 'anant@r.com', + email: 'test@r.com', lists: ['100c983ry8934hf3094yfh348gf1', '4r40hfio3rbfln'], - last_name: 'jain', + last_name: 'doe', created_at: '2020-09-29T14:50:29.907+05:30', - first_name: 'Anant', + first_name: 'test', }, JSON_ARRAY: {}, }, @@ -155,8 +155,8 @@ export const data = [ context: {}, originalTimestamp: '2020-09-28T19:53:31.900Z', traits: { - firstName: 'Anant', - lastName: 'jain', + firstName: 'test', + lastName: 'doe', email: 'abc@xyz.com', hasPurchased: 'yes', address: { Home: { city: 'iudcb' }, Office: { abc: 'jbc' } }, @@ -200,9 +200,9 @@ export const data = [ }, email: 'abc@xyz.com', lists: ['9834trg3rgy3g08oi9893rgfb', 'f39487tyh49go3h093gh2if2f2'], - last_name: 'jain', + last_name: 'doe', created_at: '2020-09-29T14:50:29.907+05:30', - first_name: 'Anant', + first_name: 'test', }, JSON_ARRAY: {}, }, @@ -240,9 +240,9 @@ export const data = [ originalTimestamp: '2020-09-28T19:53:31.900Z', traits: { userId: '1', - firstName: 'Anant', - lastName: 'jain', - email: 'anant@r.com', + firstName: 'test', + lastName: 'doe', + email: 'test@r.com', hasPurchased: 'yes', address: { Home: { city: 'iudcb' }, Office: { abc: 'jbc' } }, state: 'Lucknow', @@ -280,10 +280,10 @@ export const data = [ userId: '1', hasPurchased: 'yes', }, - email: 'anant@r.com', - last_name: 'jain', + email: 'test@r.com', + last_name: 'doe', created_at: '2020-09-29T14:50:29.907+05:30', - first_name: 'Anant', + first_name: 'test', }, JSON_ARRAY: {}, }, diff --git a/test/integrations/destinations/engage/router/data.ts b/test/integrations/destinations/engage/router/data.ts index 7beb9a73fab..d6a66b5e98e 100644 --- a/test/integrations/destinations/engage/router/data.ts +++ b/test/integrations/destinations/engage/router/data.ts @@ -132,9 +132,9 @@ export const data = [ }, originalTimestamp: '2020-09-28T19:53:31.900Z', traits: { - firstName: 'Anant', - lastName: 'jain', - email: 'anant@r.com', + firstName: 'Test', + lastName: 'Rudderlabs', + email: 'Test@r.com', hasPurchased: 'yes', address: { Home: { @@ -192,11 +192,11 @@ export const data = [ title: 'Mr', hasPurchased: 'yes', }, - email: 'anant@r.com', + email: 'Test@r.com', lists: ['100c983ry8934hf3094yfh348gf1', '4r40hfio3rbfln'], - last_name: 'jain', + last_name: 'Rudderlabs', created_at: '2020-09-29T14:50:29.907+05:30', - first_name: 'Anant', + first_name: 'Test', }, JSON_ARRAY: {}, }, diff --git a/test/integrations/destinations/facebook_offline_conversions/processor/data.ts b/test/integrations/destinations/facebook_offline_conversions/processor/data.ts new file mode 100644 index 00000000000..26d9a5e2f98 --- /dev/null +++ b/test/integrations/destinations/facebook_offline_conversions/processor/data.ts @@ -0,0 +1,1798 @@ +export const data = [ + { + name: 'facebook_offline_conversions', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + age: 23, + email: 'adc@test.com', + firstname: 'Test', + birthday: '2022-05-13T12:51:01.470Z', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + event: 'Product Searched', + originalTimestamp: '2020-09-22T14:42:44.724Z', + timestamp: '2022-09-22T20:12:44.757+05:30', + userId: 'user@1', + }, + destination: { + Config: { + accessToken: 'ABC...', + }, + }, + metadata: { + secret: { + access_token: 'ABC', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + access_token: 'ABC', + }, + }, + statusCode: 400, + error: 'Message Type is not present. Aborting message.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'FACEBOOK_OFFLINE_CONVERSIONS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'facebook_offline_conversions', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + age: 23, + email: 'adc@test.com', + firstname: 'Test', + birthday: '2022-05-13T12:51:01.470Z', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + event: 'Product Searched', + type: 'identify', + originalTimestamp: '2020-09-22T14:42:44.724Z', + timestamp: '2022-09-22T20:12:44.757+05:30', + userId: 'user@1', + }, + destination: { + Config: { + accessToken: 'ABC...', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Message type identify not supported.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'FACEBOOK_OFFLINE_CONVERSIONS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'facebook_offline_conversions', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.2', + }, + traits: { + abc: '1234', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.2', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/tests/html/ecomm_test.html', + referrer: 'http://0.0.0.0:1112/tests/html/', + search: '', + title: 'Fb Offline Conversion Ecommerce Test', + url: 'http://0.0.0.0:1112/tests/html/ecomm_test.html', + }, + }, + type: 'track', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + originalTimestamp: '2022-09-21T12:05:19.394Z', + userId: 'user@1', + event: 'product searched', + properties: { + order_id: '5241735', + value: 31.98, + revenue: 31.98, + shipping: 4, + coupon: 'APPARELSALE', + currency: 'GBP', + products: [ + { + id: 'product-bacon-jam', + category: 'Merch', + brand: '', + }, + { + id: 'product-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + { + id: 'offer-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + ], + }, + }, + destination: { + Config: { + accessToken: 'ABC...', + valueFieldIdentifier: 'properties.price', + eventsToStandard: [ + { + from: 'Product Searched', + to: 'Search', + }, + { + to: 'ViewContent', + from: 'Product Viewed', + }, + { + to: 'AddToCart', + from: 'Cart Checkout', + }, + { + to: 'AddPaymentInfo', + from: 'Card Details Added', + }, + { + to: 'Lead', + from: 'Order Completed', + }, + { + to: 'CompleteRegistration', + from: 'Signup', + }, + { + to: 'AddToWishlist', + from: 'Button Clicked', + }, + ], + eventsToIds: [ + { + from: 'Search', + to: '582603376981640', + }, + { + from: 'Search', + to: '506289934669334', + }, + { + from: 'ViewContent', + to: '1166826033904512', + }, + { + from: 'AddToCart', + to: '1148872185708962', + }, + { + from: 'CompleteRegistration', + to: '597443908839411', + }, + { + from: 'Lead', + to: '1024592094903800', + }, + { + from: 'AddToWishlist', + to: '506289934669334', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Please Map Your Standard Events With Event Set Ids', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'FACEBOOK_OFFLINE_CONVERSIONS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'facebook_offline_conversions', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.2', + }, + traits: { + abc: '1234', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.2', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/tests/html/ecomm_test.html', + referrer: 'http://0.0.0.0:1112/tests/html/', + search: '', + title: 'Fb Offline Conversion Ecommerce Test', + url: 'http://0.0.0.0:1112/tests/html/ecomm_test.html', + }, + }, + type: 'track', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + originalTimestamp: '2022-09-21T12:05:19.394Z', + userId: 'user@1', + event: 'Button Clicked', + properties: { + order_id: '5241735', + value: 31.98, + revenue: 31.98, + shipping: 4, + coupon: 'APPARELSALE', + currency: 'GBP', + products: [ + { + id: 'product-bacon-jam', + category: 'Merch', + brand: '', + }, + { + id: 'product-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + { + id: 'offer-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + ], + }, + }, + destination: { + Config: { + accessToken: 'ABC...', + valueFieldIdentifier: 'properties.price', + eventsToStandard: [ + { + from: 'Product Searched', + to: 'Search', + }, + { + to: 'ViewContent', + from: 'Product Viewed', + }, + { + to: 'AddToCart', + from: 'Cart Checkout', + }, + { + to: 'AddPaymentInfo', + from: 'Card Details Added', + }, + { + to: 'Lead', + from: 'Order Completed', + }, + { + to: 'CompleteRegistration', + from: 'Signup', + }, + { + to: 'AddToWishlist', + from: 'Button Clicked', + }, + ], + eventsToIds: [ + { + from: 'Search', + to: '582603376981640', + }, + { + from: 'Search', + to: '506289934669334', + }, + { + from: 'ViewContent', + to: '1166826033904512', + }, + { + from: 'AddToCart', + to: '1148872185708962', + }, + { + from: 'CompleteRegistration', + to: '597443908839411', + }, + { + from: 'Lead', + to: '1024592094903800', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Please Map Your Standard Events With Event Set Ids', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'FACEBOOK_OFFLINE_CONVERSIONS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'facebook_offline_conversions', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.2', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.2', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/tests/html/ecomm_test.html', + referrer: 'http://0.0.0.0:1112/tests/html/', + search: '', + title: 'Fb Offline Conversion Ecommerce Test', + url: 'http://0.0.0.0:1112/tests/html/ecomm_test.html', + }, + }, + type: 'track', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + originalTimestamp: '2022-09-21T12:05:19.394Z', + userId: 'user@1', + event: 'Product Viewed', + properties: { + order_id: '5241735', + value: 31.98, + revenue: 31.98, + shipping: 4, + coupon: 'APPARELSALE', + currency: 'GBP', + products: [ + { + id: 'product-bacon-jam', + category: 'Merch', + brand: '', + }, + { + id: 'product-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + { + id: 'offer-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + ], + }, + }, + destination: { + Config: { + accessToken: 'ABC...', + valueFieldIdentifier: 'properties.price', + eventsToStandard: [ + { + from: 'Product Searched', + to: 'Search', + }, + { + to: 'ViewContent', + from: 'Product Viewed', + }, + { + to: 'AddToCart', + from: 'Cart Checkout', + }, + { + to: 'AddPaymentInfo', + from: 'Card Details Added', + }, + { + to: 'Lead', + from: 'Order Completed', + }, + { + to: 'CompleteRegistration', + from: 'Signup', + }, + { + to: 'AddToWishlist', + from: 'Button Clicked', + }, + ], + eventsToIds: [ + { + from: 'Search', + to: '582603376981640', + }, + { + from: 'Search', + to: '506289934669334', + }, + { + from: 'ViewContent', + to: '1166826033904512', + }, + { + from: 'AddToCart', + to: '1148872185708962', + }, + { + from: 'CompleteRegistration', + to: '597443908839411', + }, + { + from: 'Lead', + to: '1024592094903800', + }, + ], + isHashRequired: true, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://graph.facebook.com/v16.0/1166826033904512/events?upload_tag=rudderstack&data=%5B%7B%22match_keys%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22email%22%3A%5B%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%5D%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%7D%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22order_id%22%3A%225241735%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%5D%2C%22custom_data%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22event_name%22%3A%22Product%20Viewed%22%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22email%22%3A%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%5D%2C%22order_id%22%3A%225241735%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22shipping%22%3A4%2C%22coupon%22%3A%22APPARELSALE%22%7D%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22event_name%22%3A%22ViewContent%22%2C%22content_type%22%3A%22product%22%7D%5D&access_token=ABC...', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_offline_conversions', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.2', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.2', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/tests/html/ecomm_test.html', + referrer: 'http://0.0.0.0:1112/tests/html/', + search: '', + title: 'Fb Offline Conversion Ecommerce Test', + url: 'http://0.0.0.0:1112/tests/html/ecomm_test.html', + }, + }, + type: 'track', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + originalTimestamp: '2022-09-21T12:05:19.394Z', + userId: 'user@1', + event: 'Product Searched', + properties: { + order_id: '5241735', + value: 31.98, + revenue: 31.98, + shipping: 4, + coupon: 'APPARELSALE', + currency: 'GBP', + products: [ + { + id: 'product-bacon-jam', + category: 'Merch', + brand: '', + }, + { + id: 'product-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + { + id: 'offer-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + ], + }, + }, + destination: { + Config: { + accessToken: 'ABC...', + valueFieldIdentifier: 'properties.price', + eventsToStandard: [ + { + from: 'Product Searched', + to: 'Search', + }, + { + to: 'ViewContent', + from: 'Product Viewed', + }, + { + to: 'AddToCart', + from: 'Cart Checkout', + }, + { + to: 'AddPaymentInfo', + from: 'Card Details Added', + }, + { + to: 'Lead', + from: 'Order Completed', + }, + { + to: 'CompleteRegistration', + from: 'Signup', + }, + { + to: 'AddToWishlist', + from: 'Button Clicked', + }, + ], + eventsToIds: [ + { + from: 'Search', + to: '582603376981640', + }, + { + from: 'Search', + to: '506289934669334', + }, + { + from: 'ViewContent', + to: '1166826033904512', + }, + { + from: 'AddToCart', + to: '1148872185708962', + }, + { + from: 'CompleteRegistration', + to: '597443908839411', + }, + { + from: 'Lead', + to: '1024592094903800', + }, + ], + isHashRequired: true, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://graph.facebook.com/v16.0/582603376981640/events?upload_tag=rudderstack&data=%5B%7B%22match_keys%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22email%22%3A%5B%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%5D%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%7D%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22order_id%22%3A%225241735%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%5D%2C%22custom_data%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22event_name%22%3A%22Product%20Searched%22%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22email%22%3A%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%5D%2C%22order_id%22%3A%225241735%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22shipping%22%3A4%2C%22coupon%22%3A%22APPARELSALE%22%7D%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22event_name%22%3A%22Search%22%2C%22content_type%22%3A%22product%22%7D%5D&access_token=ABC...', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://graph.facebook.com/v16.0/506289934669334/events?upload_tag=rudderstack&data=%5B%7B%22match_keys%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22email%22%3A%5B%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%5D%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%7D%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22order_id%22%3A%225241735%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%5D%2C%22custom_data%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22event_name%22%3A%22Product%20Searched%22%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22email%22%3A%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%5D%2C%22order_id%22%3A%225241735%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22shipping%22%3A4%2C%22coupon%22%3A%22APPARELSALE%22%7D%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22event_name%22%3A%22Search%22%2C%22content_type%22%3A%22product%22%7D%5D&access_token=ABC...', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_offline_conversions', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.2', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.2', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/tests/html/ecomm_test.html', + referrer: 'http://0.0.0.0:1112/tests/html/', + search: '', + title: 'Fb Offline Conversion Ecommerce Test', + url: 'http://0.0.0.0:1112/tests/html/ecomm_test.html', + }, + }, + type: 'track', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + originalTimestamp: '2022-09-21T12:05:19.394Z', + userId: 'user@1', + event: 'Product Searched', + properties: { + order_id: '5241735', + value: 31.98, + revenue: 31.98, + shipping: 4, + coupon: 'APPARELSALE', + currency: 'GBP', + products: [ + { + id: 'product-bacon-jam', + category: 'Merch', + brand: '', + }, + { + id: 'product-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + { + id: 'offer-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + ], + }, + }, + destination: { + Config: { + accessToken: 'ABC...', + valueFieldIdentifier: 'properties.price', + eventsToStandard: [ + { + from: 'Product Searched', + to: 'Search', + }, + { + to: 'ViewContent', + from: 'Product Searched', + }, + { + to: 'AddToCart', + from: 'Cart Checkout', + }, + { + to: 'AddPaymentInfo', + from: 'Card Details Added', + }, + { + to: 'Lead', + from: 'Order Completed', + }, + { + to: 'CompleteRegistration', + from: 'Signup', + }, + { + to: 'AddToWishlist', + from: 'Button Clicked', + }, + ], + eventsToIds: [ + { + from: 'Search', + to: '582603376981640', + }, + { + from: 'Search', + to: '506289934669334', + }, + { + from: 'ViewContent', + to: '1166826033904512', + }, + { + from: 'AddToCart', + to: '1148872185708962', + }, + { + from: 'CompleteRegistration', + to: '597443908839411', + }, + { + from: 'Lead', + to: '1024592094903800', + }, + ], + isHashRequired: true, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://graph.facebook.com/v16.0/582603376981640/events?upload_tag=rudderstack&data=%5B%7B%22match_keys%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22email%22%3A%5B%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%5D%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%7D%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22order_id%22%3A%225241735%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%5D%2C%22custom_data%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22event_name%22%3A%22Product%20Searched%22%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22email%22%3A%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%5D%2C%22order_id%22%3A%225241735%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22shipping%22%3A4%2C%22coupon%22%3A%22APPARELSALE%22%7D%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22event_name%22%3A%22ViewContent%22%2C%22content_type%22%3A%22product%22%7D%5D&access_token=ABC...', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://graph.facebook.com/v16.0/506289934669334/events?upload_tag=rudderstack&data=%5B%7B%22match_keys%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22email%22%3A%5B%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%5D%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%7D%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22order_id%22%3A%225241735%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%5D%2C%22custom_data%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22event_name%22%3A%22Product%20Searched%22%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22email%22%3A%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%5D%2C%22order_id%22%3A%225241735%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22shipping%22%3A4%2C%22coupon%22%3A%22APPARELSALE%22%7D%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22event_name%22%3A%22ViewContent%22%2C%22content_type%22%3A%22product%22%7D%5D&access_token=ABC...', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://graph.facebook.com/v16.0/1166826033904512/events?upload_tag=rudderstack&data=%5B%7B%22match_keys%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22email%22%3A%5B%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%5D%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%7D%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22order_id%22%3A%225241735%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%5D%2C%22custom_data%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22event_name%22%3A%22Product%20Searched%22%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22email%22%3A%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%5D%2C%22order_id%22%3A%225241735%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22shipping%22%3A4%2C%22coupon%22%3A%22APPARELSALE%22%7D%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22event_name%22%3A%22ViewContent%22%2C%22content_type%22%3A%22product%22%7D%5D&access_token=ABC...', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_offline_conversions', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.2', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.2', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/tests/html/ecomm_test.html', + referrer: 'http://0.0.0.0:1112/tests/html/', + search: '', + title: 'Fb Offline Conversion Ecommerce Test', + url: 'http://0.0.0.0:1112/tests/html/ecomm_test.html', + }, + }, + type: 'track', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + originalTimestamp: '2022-09-21T12:05:19.394Z', + userId: 'user@1', + event: 'Product Searched', + properties: { + upload_tag: 'test campaign', + order_id: '5241735', + value: 31.98, + revenue: 31.98, + shipping: 4, + coupon: 'APPARELSALE', + currency: 'GBP', + products: [ + { + id: 'product-bacon-jam', + category: 'Merch', + brand: '', + }, + { + id: 'product-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + { + id: 'offer-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + ], + }, + }, + destination: { + Config: { + accessToken: 'ABC...', + valueFieldIdentifier: 'properties.price', + eventsToStandard: [ + { + from: 'Product Searched', + to: 'Search', + }, + { + to: 'ViewContent', + from: 'Product Searched', + }, + { + to: 'AddToCart', + from: 'Cart Checkout', + }, + { + to: 'AddPaymentInfo', + from: 'Card Details Added', + }, + { + to: 'Lead', + from: 'Order Completed', + }, + { + to: 'CompleteRegistration', + from: 'Signup', + }, + { + to: 'AddToWishlist', + from: 'Button Clicked', + }, + ], + eventsToIds: [ + { + from: 'Search', + to: '582603376981640', + }, + { + from: 'Search', + to: '506289934669334', + }, + { + from: 'ViewContent', + to: '1166826033904512', + }, + { + from: 'AddToCart', + to: '1148872185708962', + }, + { + from: 'CompleteRegistration', + to: '597443908839411', + }, + { + from: 'Lead', + to: '1024592094903800', + }, + ], + isHashRequired: true, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://graph.facebook.com/v16.0/582603376981640/events?upload_tag=test campaign&data=%5B%7B%22match_keys%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22email%22%3A%5B%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%5D%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%7D%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22order_id%22%3A%225241735%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%5D%2C%22custom_data%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22event_name%22%3A%22Product%20Searched%22%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22email%22%3A%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%5D%2C%22order_id%22%3A%225241735%22%2C%22upload_tag%22%3A%22test%20campaign%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22shipping%22%3A4%2C%22coupon%22%3A%22APPARELSALE%22%7D%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22event_name%22%3A%22ViewContent%22%2C%22content_type%22%3A%22product%22%7D%5D&access_token=ABC...', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://graph.facebook.com/v16.0/506289934669334/events?upload_tag=test campaign&data=%5B%7B%22match_keys%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22email%22%3A%5B%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%5D%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%7D%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22order_id%22%3A%225241735%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%5D%2C%22custom_data%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22event_name%22%3A%22Product%20Searched%22%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22email%22%3A%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%5D%2C%22order_id%22%3A%225241735%22%2C%22upload_tag%22%3A%22test%20campaign%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22shipping%22%3A4%2C%22coupon%22%3A%22APPARELSALE%22%7D%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22event_name%22%3A%22ViewContent%22%2C%22content_type%22%3A%22product%22%7D%5D&access_token=ABC...', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://graph.facebook.com/v16.0/1166826033904512/events?upload_tag=test campaign&data=%5B%7B%22match_keys%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22email%22%3A%5B%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%5D%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%7D%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22order_id%22%3A%225241735%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%5D%2C%22custom_data%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22event_name%22%3A%22Product%20Searched%22%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22GBP%22%2C%22value%22%3A31.98%2C%22email%22%3A%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%5D%2C%22order_id%22%3A%225241735%22%2C%22upload_tag%22%3A%22test%20campaign%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22shipping%22%3A4%2C%22coupon%22%3A%22APPARELSALE%22%7D%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22event_name%22%3A%22ViewContent%22%2C%22content_type%22%3A%22product%22%7D%5D&access_token=ABC...', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_offline_conversions', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.2', + }, + traits: { + email: 'test@rudderstack.com', + birthday: '2005-01-01T23:28:56.782Z', + firstName: 'test', + name: 'test rudderlabs', + address: { + city: 'kalkata', + state: 'west bangal', + country: 'india', + zip: '123456', + }, + phone: '9886775586', + gender: 'male', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.2', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/tests/html/ecomm_test.html', + referrer: 'http://0.0.0.0:1112/tests/html/', + search: '', + title: 'Fb Offline Conversion Ecommerce Test', + url: 'http://0.0.0.0:1112/tests/html/ecomm_test.html', + }, + device: { + advertisingId: 'apple@123', + }, + }, + type: 'track', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + originalTimestamp: '2022-09-21T12:05:19.394Z', + userId: 'user@1', + event: 'Cart Checkout', + properties: { + upload_tag: 'test campaign', + order_id: '485893487985894998', + value: 100, + revenue: 31.98, + shipping: 4, + coupon: 'APPARELSALE', + currency: 'IND', + products: [ + { + id: 'product-bacon-jam', + category: 'Merch', + brand: '', + }, + { + id: 'product-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + { + id: 'offer-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + ], + }, + }, + destination: { + Config: { + accessToken: 'ABC...', + valueFieldIdentifier: 'properties.price', + eventsToStandard: [ + { + from: 'Product Searched', + to: 'Search', + }, + { + to: 'ViewContent', + from: 'Product Searched', + }, + { + to: 'AddToCart', + from: 'Cart Checkout', + }, + { + to: 'AddPaymentInfo', + from: 'Card Details Added', + }, + { + to: 'Lead', + from: 'Order Completed', + }, + { + to: 'CompleteRegistration', + from: 'Signup', + }, + { + to: 'AddToWishlist', + from: 'Button Clicked', + }, + ], + eventsToIds: [ + { + from: 'Search', + to: '582603376981640', + }, + { + from: 'Search', + to: '506289934669334', + }, + { + from: 'ViewContent', + to: '1166826033904512', + }, + { + from: 'AddToCart', + to: '1148872185708962', + }, + { + from: 'CompleteRegistration', + to: '597443908839411', + }, + { + from: 'Lead', + to: '1024592094903800', + }, + ], + isHashRequired: true, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://graph.facebook.com/v16.0/1148872185708962/events?upload_tag=test campaign&data=%5B%7B%22match_keys%22%3A%7B%22doby%22%3A%22f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6%22%2C%22dobm%22%3A%22f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6%22%2C%22dobd%22%3A%22f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6%22%2C%22extern_id%22%3A%22user%401%22%2C%22email%22%3A%5B%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%5D%2C%22phone%22%3A%5B%2274a39482392f83119041d571d5dace439d315faea8214fe8e815c00261b80615%22%5D%2C%22gen%22%3A%220d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf%22%2C%22fn%22%3A%229f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08%22%2C%22ct%22%3A%22375aba919c30870659093b7ddcf6045ff7a8624dd4dba49ced8981bd4d0666e0%22%2C%22zip%22%3A%5B%228d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92%22%5D%2C%22madid%22%3A%22c20fa16907343eef642d10f0bdb81bf629e6aaf6c906f26eabda079ca9e5ab67%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%2C%22ln%22%3A%22dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251%22%7D%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22IND%22%2C%22value%22%3A100%2C%22order_id%22%3A%22485893487985894998%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%5D%2C%22custom_data%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22event_name%22%3A%22Cart%20Checkout%22%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22IND%22%2C%22value%22%3A100%2C%22email%22%3A%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%2C%22phone%22%3A%2274a39482392f83119041d571d5dace439d315faea8214fe8e815c00261b80615%22%2C%22gen%22%3A%220d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf%22%2C%22fn%22%3A%229f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08%22%2C%22ct%22%3A%22375aba919c30870659093b7ddcf6045ff7a8624dd4dba49ced8981bd4d0666e0%22%2C%22zip%22%3A%228d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92%22%2C%22madid%22%3A%22c20fa16907343eef642d10f0bdb81bf629e6aaf6c906f26eabda079ca9e5ab67%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%5D%2C%22order_id%22%3A%22485893487985894998%22%2C%22upload_tag%22%3A%22test%20campaign%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22ln%22%3A%22dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251%22%2C%22shipping%22%3A4%2C%22coupon%22%3A%22APPARELSALE%22%7D%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22event_name%22%3A%22AddToCart%22%2C%22content_type%22%3A%22product%22%7D%5D&access_token=ABC...', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_offline_conversions', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.2', + }, + traits: { + email: 'test@rudderstack.com', + birthday: '2005-01-01T23:28:56.782Z', + firstName: 'test', + name: 'test rudderlabs', + address: { + city: 'kalkata', + state: 'west bangal', + country: 'india', + zip: '123456', + }, + phone: '9886775586', + gender: 'male', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.2', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/tests/html/ecomm_test.html', + referrer: 'http://0.0.0.0:1112/tests/html/', + search: '', + title: 'Fb Offline Conversion Ecommerce Test', + url: 'http://0.0.0.0:1112/tests/html/ecomm_test.html', + }, + device: { + advertisingId: 'apple@123', + }, + }, + type: 'track', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + originalTimestamp: '2022-09-21T12:05:19.394Z', + userId: 'user@1', + event: 'Cart Checkout', + properties: { + upload_tag: 'test campaign', + order_id: '485893487985894998', + value: 100, + revenue: 31.98, + shipping: 4, + coupon: 'APPARELSALE', + currency: 'IND', + products: [ + { + id: 'product-bacon-jam', + category: 'Merch', + brand: '', + }, + { + id: 'product-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + { + id: 'offer-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + ], + }, + }, + destination: { + Config: { + accessToken: 'ABC...', + valueFieldIdentifier: 'properties.price', + eventsToStandard: [ + { + from: 'Product Searched', + to: 'Search', + }, + { + to: 'ViewContent', + from: 'Product Searched', + }, + { + to: 'AddToCart', + from: 'Cart Checkout', + }, + { + to: 'AddPaymentInfo', + from: 'Card Details Added', + }, + { + to: 'Lead', + from: 'Order Completed', + }, + { + to: 'CompleteRegistration', + from: 'Signup', + }, + { + to: 'AddToWishlist', + from: 'Button Clicked', + }, + ], + eventsToIds: [ + { + from: 'Search', + to: '582603376981640', + }, + { + from: 'Search', + to: '506289934669334', + }, + { + from: 'ViewContent', + to: '1166826033904512', + }, + { + from: 'AddToCart', + to: '1148872185708962', + }, + { + from: 'CompleteRegistration', + to: '597443908839411', + }, + { + from: 'Lead', + to: '1024592094903800', + }, + ], + isHashRequired: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://graph.facebook.com/v16.0/1148872185708962/events?upload_tag=test campaign&data=%5B%7B%22match_keys%22%3A%7B%22doby%22%3A%22f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6%22%2C%22dobm%22%3A%22f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6%22%2C%22dobd%22%3A%22f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6%22%2C%22extern_id%22%3A%22user%401%22%2C%22email%22%3A%5B%22test%40rudderstack.com%22%5D%2C%22phone%22%3A%5B%229886775586%22%5D%2C%22gen%22%3A%22male%22%2C%22fn%22%3A%22test%22%2C%22ct%22%3A%22kalkata%22%2C%22zip%22%3A%5B%22123456%22%5D%2C%22madid%22%3A%22apple%40123%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%2C%22ln%22%3A%22rudderlabs%22%7D%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22IND%22%2C%22value%22%3A100%2C%22order_id%22%3A%22485893487985894998%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%5D%2C%22custom_data%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22event_name%22%3A%22Cart%20Checkout%22%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22IND%22%2C%22value%22%3A100%2C%22email%22%3A%22test%40rudderstack.com%22%2C%22phone%22%3A%229886775586%22%2C%22gen%22%3A%22male%22%2C%22fn%22%3A%22test%22%2C%22ct%22%3A%22kalkata%22%2C%22zip%22%3A%22123456%22%2C%22madid%22%3A%22apple%40123%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%5D%2C%22order_id%22%3A%22485893487985894998%22%2C%22upload_tag%22%3A%22test%20campaign%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22ln%22%3A%22rudderlabs%22%2C%22shipping%22%3A4%2C%22coupon%22%3A%22APPARELSALE%22%7D%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22event_name%22%3A%22AddToCart%22%2C%22content_type%22%3A%22product%22%7D%5D&access_token=ABC...', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_offline_conversions', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.2', + }, + traits: { + email: 'test@rudderstack.com', + birthday: '2005-01-01T23:28:56.782Z', + firstName: 'test', + name: 'test rudderlabs', + address: { + city: 'kalkata', + state: 'west bangal', + country: 'india', + zip: '123456', + }, + phone: '9886775586', + gender: 'male', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.2', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/tests/html/ecomm_test.html', + referrer: 'http://0.0.0.0:1112/tests/html/', + search: '', + title: 'Fb Offline Conversion Ecommerce Test', + url: 'http://0.0.0.0:1112/tests/html/ecomm_test.html', + }, + device: { + advertisingId: 'apple@123', + }, + }, + integrations: { + FacebookOfflineConversions: { + contentType: 'e-commerce', + }, + }, + type: 'track', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + originalTimestamp: '2022-09-21T12:05:19.394Z', + userId: 'user@1', + event: 'Cart Checkout', + properties: { + upload_tag: 'test campaign', + order_id: '485893487985894998', + value: 100, + revenue: 31.98, + shipping: 4, + coupon: 'APPARELSALE', + currency: 'IND', + products: [ + { + id: 'product-bacon-jam', + category: 'Merch', + brand: '', + }, + { + id: 'product-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + { + id: 'offer-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + ], + }, + }, + destination: { + Config: { + accessToken: 'ABC...', + valueFieldIdentifier: 'properties.price', + eventsToStandard: [ + { + from: 'Product Searched', + to: 'Search', + }, + { + to: 'ViewContent', + from: 'Product Searched', + }, + { + to: 'AddToCart', + from: 'Cart Checkout', + }, + { + to: 'AddPaymentInfo', + from: 'Card Details Added', + }, + { + to: 'Lead', + from: 'Order Completed', + }, + { + to: 'CompleteRegistration', + from: 'Signup', + }, + { + to: 'AddToWishlist', + from: 'Button Clicked', + }, + ], + eventsToIds: [ + { + from: 'Search', + to: '582603376981640', + }, + { + from: 'Search', + to: '506289934669334', + }, + { + from: 'ViewContent', + to: '1166826033904512', + }, + { + from: 'AddToCart', + to: '1148872185708962', + }, + { + from: 'CompleteRegistration', + to: '597443908839411', + }, + { + from: 'Lead', + to: '1024592094903800', + }, + ], + categoryToContent: [ + { + from: '', + to: '', + }, + ], + isHashRequired: true, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://graph.facebook.com/v16.0/1148872185708962/events?upload_tag=test campaign&data=%5B%7B%22match_keys%22%3A%7B%22doby%22%3A%22f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6%22%2C%22dobm%22%3A%22f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6%22%2C%22dobd%22%3A%22f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6%22%2C%22extern_id%22%3A%22user%401%22%2C%22email%22%3A%5B%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%5D%2C%22phone%22%3A%5B%2274a39482392f83119041d571d5dace439d315faea8214fe8e815c00261b80615%22%5D%2C%22gen%22%3A%220d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf%22%2C%22fn%22%3A%229f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08%22%2C%22ct%22%3A%22375aba919c30870659093b7ddcf6045ff7a8624dd4dba49ced8981bd4d0666e0%22%2C%22zip%22%3A%5B%228d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92%22%5D%2C%22madid%22%3A%22c20fa16907343eef642d10f0bdb81bf629e6aaf6c906f26eabda079ca9e5ab67%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%2C%22ln%22%3A%22dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251%22%7D%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22IND%22%2C%22value%22%3A100%2C%22order_id%22%3A%22485893487985894998%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%5D%2C%22custom_data%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22event_name%22%3A%22Cart%20Checkout%22%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22IND%22%2C%22value%22%3A100%2C%22email%22%3A%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%2C%22phone%22%3A%2274a39482392f83119041d571d5dace439d315faea8214fe8e815c00261b80615%22%2C%22gen%22%3A%220d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf%22%2C%22fn%22%3A%229f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08%22%2C%22ct%22%3A%22375aba919c30870659093b7ddcf6045ff7a8624dd4dba49ced8981bd4d0666e0%22%2C%22zip%22%3A%228d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92%22%2C%22madid%22%3A%22c20fa16907343eef642d10f0bdb81bf629e6aaf6c906f26eabda079ca9e5ab67%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%5D%2C%22order_id%22%3A%22485893487985894998%22%2C%22upload_tag%22%3A%22test%20campaign%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22ln%22%3A%22dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251%22%2C%22shipping%22%3A4%2C%22coupon%22%3A%22APPARELSALE%22%7D%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22event_name%22%3A%22AddToCart%22%2C%22content_type%22%3A%22e-commerce%22%7D%5D&access_token=ABC...', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/facebook_offline_conversions/router/data.ts b/test/integrations/destinations/facebook_offline_conversions/router/data.ts new file mode 100644 index 00000000000..7bf984a0290 --- /dev/null +++ b/test/integrations/destinations/facebook_offline_conversions/router/data.ts @@ -0,0 +1,705 @@ +export const data = [ + { + name: 'facebook_offline_conversions', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.2', + }, + traits: { + abc: '1234', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.2', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/tests/html/ecomm_test.html', + referrer: 'http://0.0.0.0:1112/tests/html/', + search: '', + title: 'Fb Offline Conversion Ecommerce Test', + url: 'http://0.0.0.0:1112/tests/html/ecomm_test.html', + }, + }, + type: 'track', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + originalTimestamp: '2022-09-21T12:05:19.394Z', + userId: 'user@1', + event: 'product searched', + properties: { + order_id: '5241735', + value: 31.98, + revenue: 31.98, + shipping: 4, + coupon: 'APPARELSALE', + currency: 'GBP', + products: [ + { + id: 'product-bacon-jam', + category: 'Merch', + brand: '', + }, + { + id: 'product-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + { + id: 'offer-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + ], + }, + }, + metadata: { + jobId: 1, + }, + destination: { + Config: { + accessToken: 'ABC...', + valueFieldIdentifier: 'properties.price', + eventsToStandard: [ + { + from: 'Product Searched', + to: 'Search', + }, + { + to: 'ViewContent', + from: 'Product Viewed', + }, + { + to: 'AddToCart', + from: 'Cart Checkout', + }, + { + to: 'AddPaymentInfo', + from: 'Card Details Added', + }, + { + to: 'Lead', + from: 'Order Completed', + }, + { + to: 'CompleteRegistration', + from: 'Signup', + }, + { + to: 'AddToWishlist', + from: 'Button Clicked', + }, + ], + eventsToIds: [ + { + from: 'Search', + to: '582603376981640', + }, + { + from: 'Search', + to: '506289934669334', + }, + { + from: 'ViewContent', + to: '1166826033904512', + }, + { + from: 'AddToCart', + to: '1148872185708962', + }, + { + from: 'CompleteRegistration', + to: '597443908839411', + }, + { + from: 'Lead', + to: '1024592094903800', + }, + { + from: 'AddToWishlist', + to: '506289934669334', + }, + ], + isHashRequired: true, + }, + }, + }, + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.2', + }, + traits: { + abc: '1234', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.2', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/tests/html/ecomm_test.html', + referrer: 'http://0.0.0.0:1112/tests/html/', + search: '', + title: 'Fb Offline Conversion Ecommerce Test', + url: 'http://0.0.0.0:1112/tests/html/ecomm_test.html', + }, + }, + type: 'track', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + originalTimestamp: '2022-09-21T12:05:19.394Z', + userId: 'user@1', + event: 'Button Clicked', + properties: { + order_id: '5241735', + value: 31.98, + revenue: 31.98, + shipping: 4, + coupon: 'APPARELSALE', + currency: 'GBP', + products: [ + { + id: 'product-bacon-jam', + category: 'Merch', + brand: '', + }, + { + id: 'product-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + { + id: 'offer-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + ], + }, + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + accessToken: 'ABC...', + valueFieldIdentifier: 'properties.price', + eventsToStandard: [ + { + from: 'Product Searched', + to: 'Search', + }, + { + to: 'ViewContent', + from: 'Product Viewed', + }, + { + to: 'AddToCart', + from: 'Cart Checkout', + }, + { + to: 'AddPaymentInfo', + from: 'Card Details Added', + }, + { + to: 'Lead', + from: 'Order Completed', + }, + { + to: 'CompleteRegistration', + from: 'Signup', + }, + { + to: 'AddToWishlist', + from: 'Button Clicked', + }, + ], + eventsToIds: [ + { + from: 'Search', + to: '582603376981640', + }, + { + from: 'Search', + to: '506289934669334', + }, + { + from: 'ViewContent', + to: '1166826033904512', + }, + { + from: 'AddToCart', + to: '1148872185708962', + }, + { + from: 'CompleteRegistration', + to: '597443908839411', + }, + { + from: 'Lead', + to: '1024592094903800', + }, + ], + isHashRequired: true, + }, + }, + }, + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.2', + }, + traits: { + email: 'test@rudderstack.com', + birthday: '2005-01-01T23:28:56.782Z', + firstName: 'test', + lastName: 'rudderstack', + initial: { + firstName: 'rudderlabs', + }, + address: { + city: 'kalkata', + state: 'west bangal', + country: 'india', + zip: '123456', + }, + phone: '9886775586', + gender: 'male', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.2', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/tests/html/ecomm_test.html', + referrer: 'http://0.0.0.0:1112/tests/html/', + search: '', + title: 'Fb Offline Conversion Ecommerce Test', + url: 'http://0.0.0.0:1112/tests/html/ecomm_test.html', + }, + device: { + advertisingId: 'apple@123', + }, + }, + type: 'track', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + originalTimestamp: '2022-09-21T12:05:19.394Z', + userId: 'user@1', + event: 'Cart Checkout', + properties: { + upload_tag: 'test campaign', + order_id: '485893487985894998', + value: 100, + revenue: 31.98, + shipping: 4, + coupon: 'APPARELSALE', + currency: 'IND', + products: [ + { + id: 'product-bacon-jam', + category: 'Merch', + brand: '', + }, + { + id: 'product-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + { + id: 'offer-t-shirt', + category: 'Merch', + brand: 'Levis', + }, + ], + }, + }, + metadata: { + jobId: 3, + }, + destination: { + Config: { + accessToken: 'ABC...', + valueFieldIdentifier: 'properties.price', + eventsToStandard: [ + { + from: 'Product Searched', + to: 'Search', + }, + { + to: 'ViewContent', + from: 'Product Searched', + }, + { + to: 'AddToCart', + from: 'Cart Checkout', + }, + { + to: 'AddPaymentInfo', + from: 'Card Details Added', + }, + { + to: 'Lead', + from: 'Order Completed', + }, + { + to: 'CompleteRegistration', + from: 'Signup', + }, + { + to: 'AddToWishlist', + from: 'Button Clicked', + }, + ], + eventsToIds: [ + { + from: 'Search', + to: '582603376981640', + }, + { + from: 'Search', + to: '506289934669334', + }, + { + from: 'ViewContent', + to: '1166826033904512', + }, + { + from: 'AddToCart', + to: '1148872185708962', + }, + { + from: 'CompleteRegistration', + to: '597443908839411', + }, + { + from: 'Lead', + to: '1024592094903800', + }, + ], + isHashRequired: true, + }, + }, + }, + ], + destType: 'facebook_offline_conversions', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + error: 'Please Map Your Standard Events With Event Set Ids', + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statTags: { + destType: 'FACEBOOK_OFFLINE_CONVERSIONS', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + destination: { + Config: { + accessToken: 'ABC...', + valueFieldIdentifier: 'properties.price', + eventsToStandard: [ + { + from: 'Product Searched', + to: 'Search', + }, + { + to: 'ViewContent', + from: 'Product Viewed', + }, + { + to: 'AddToCart', + from: 'Cart Checkout', + }, + { + to: 'AddPaymentInfo', + from: 'Card Details Added', + }, + { + to: 'Lead', + from: 'Order Completed', + }, + { + to: 'CompleteRegistration', + from: 'Signup', + }, + { + to: 'AddToWishlist', + from: 'Button Clicked', + }, + ], + eventsToIds: [ + { + from: 'Search', + to: '582603376981640', + }, + { + from: 'Search', + to: '506289934669334', + }, + { + from: 'ViewContent', + to: '1166826033904512', + }, + { + from: 'AddToCart', + to: '1148872185708962', + }, + { + from: 'CompleteRegistration', + to: '597443908839411', + }, + { + from: 'Lead', + to: '1024592094903800', + }, + { + from: 'AddToWishlist', + to: '506289934669334', + }, + ], + isHashRequired: true, + }, + }, + }, + { + error: 'Please Map Your Standard Events With Event Set Ids', + metadata: [ + { + jobId: 2, + }, + ], + statTags: { + destType: 'FACEBOOK_OFFLINE_CONVERSIONS', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + batched: false, + statusCode: 400, + destination: { + Config: { + accessToken: 'ABC...', + valueFieldIdentifier: 'properties.price', + eventsToStandard: [ + { + from: 'Product Searched', + to: 'Search', + }, + { + to: 'ViewContent', + from: 'Product Viewed', + }, + { + to: 'AddToCart', + from: 'Cart Checkout', + }, + { + to: 'AddPaymentInfo', + from: 'Card Details Added', + }, + { + to: 'Lead', + from: 'Order Completed', + }, + { + to: 'CompleteRegistration', + from: 'Signup', + }, + { + to: 'AddToWishlist', + from: 'Button Clicked', + }, + ], + eventsToIds: [ + { + from: 'Search', + to: '582603376981640', + }, + { + from: 'Search', + to: '506289934669334', + }, + { + from: 'ViewContent', + to: '1166826033904512', + }, + { + from: 'AddToCart', + to: '1148872185708962', + }, + { + from: 'CompleteRegistration', + to: '597443908839411', + }, + { + from: 'Lead', + to: '1024592094903800', + }, + ], + isHashRequired: true, + }, + }, + }, + { + metadata: [ + { + jobId: 3, + }, + ], + batchedRequest: [ + { + body: { + FORM: {}, + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: + 'https://graph.facebook.com/v16.0/1148872185708962/events?upload_tag=test campaign&data=%5B%7B%22match_keys%22%3A%7B%22doby%22%3A%22f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6%22%2C%22dobm%22%3A%22f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6%22%2C%22dobd%22%3A%22f388bc7cd953b951ffdf8e06275d94946dc52f03ed96536497fbe534469d38d6%22%2C%22extern_id%22%3A%22user%401%22%2C%22email%22%3A%5B%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%5D%2C%22phone%22%3A%5B%2274a39482392f83119041d571d5dace439d315faea8214fe8e815c00261b80615%22%5D%2C%22gen%22%3A%220d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf%22%2C%22ln%22%3A%227fb35d4777487797615cfa7c57724a47ba99152485600ccdb98e3871a6d05b21%22%2C%22fn%22%3A%229f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08%22%2C%22ct%22%3A%22375aba919c30870659093b7ddcf6045ff7a8624dd4dba49ced8981bd4d0666e0%22%2C%22zip%22%3A%5B%228d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92%22%5D%2C%22madid%22%3A%22c20fa16907343eef642d10f0bdb81bf629e6aaf6c906f26eabda079ca9e5ab67%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%7D%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22IND%22%2C%22value%22%3A100%2C%22order_id%22%3A%22485893487985894998%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22quantity%22%3A1%2C%22brand%22%3A%22Levis%22%2C%22category%22%3A%22Merch%22%7D%5D%2C%22custom_data%22%3A%7B%22extern_id%22%3A%22user%401%22%2C%22event_name%22%3A%22Cart%20Checkout%22%2C%22event_time%22%3A1663761919%2C%22currency%22%3A%22IND%22%2C%22value%22%3A100%2C%22email%22%3A%221c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd%22%2C%22phone%22%3A%2274a39482392f83119041d571d5dace439d315faea8214fe8e815c00261b80615%22%2C%22gen%22%3A%220d248e82c62c9386878327d491c762a002152d42ab2c391a31c44d9f62675ddf%22%2C%22ln%22%3A%227fb35d4777487797615cfa7c57724a47ba99152485600ccdb98e3871a6d05b21%22%2C%22fn%22%3A%229f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08%22%2C%22ct%22%3A%22375aba919c30870659093b7ddcf6045ff7a8624dd4dba49ced8981bd4d0666e0%22%2C%22zip%22%3A%228d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92%22%2C%22madid%22%3A%22c20fa16907343eef642d10f0bdb81bf629e6aaf6c906f26eabda079ca9e5ab67%22%2C%22contents%22%3A%5B%7B%22id%22%3A%22product-bacon-jam%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22%22%7D%2C%7B%22id%22%3A%22product-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%2C%7B%22id%22%3A%22offer-t-shirt%22%2C%22category%22%3A%22Merch%22%2C%22brand%22%3A%22Levis%22%7D%5D%2C%22order_id%22%3A%22485893487985894998%22%2C%22upload_tag%22%3A%22test%20campaign%22%2C%22client_user_agent%22%3A%22Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_3)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F83.0.4103.97%20Safari%2F537.36%22%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22shipping%22%3A4%2C%22coupon%22%3A%22APPARELSALE%22%7D%2C%22event_source_url%22%3A%22http%3A%2F%2F0.0.0.0%3A1112%2Ftests%2Fhtml%2Fecomm_test.html%22%2C%22event_name%22%3A%22AddToCart%22%2C%22content_type%22%3A%22product%22%7D%5D&access_token=ABC...', + files: {}, + headers: {}, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + accessToken: 'ABC...', + valueFieldIdentifier: 'properties.price', + eventsToStandard: [ + { + from: 'Product Searched', + to: 'Search', + }, + { + to: 'ViewContent', + from: 'Product Searched', + }, + { + to: 'AddToCart', + from: 'Cart Checkout', + }, + { + to: 'AddPaymentInfo', + from: 'Card Details Added', + }, + { + to: 'Lead', + from: 'Order Completed', + }, + { + to: 'CompleteRegistration', + from: 'Signup', + }, + { + to: 'AddToWishlist', + from: 'Button Clicked', + }, + ], + eventsToIds: [ + { + from: 'Search', + to: '582603376981640', + }, + { + from: 'Search', + to: '506289934669334', + }, + { + from: 'ViewContent', + to: '1166826033904512', + }, + { + from: 'AddToCart', + to: '1148872185708962', + }, + { + from: 'CompleteRegistration', + to: '597443908839411', + }, + { + from: 'Lead', + to: '1024592094903800', + }, + ], + isHashRequired: true, + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/facebook_pixel/dataDelivery/data.ts b/test/integrations/destinations/facebook_pixel/dataDelivery/data.ts new file mode 100644 index 00000000000..eb9ce344e0a --- /dev/null +++ b/test/integrations/destinations/facebook_pixel/dataDelivery/data.ts @@ -0,0 +1,578 @@ +import { VERSION } from '../../../../../src/v0/destinations/facebook_pixel/config'; + +export const data = [ + { + name: 'facebook_pixel', + description: 'Test 0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + body: { + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"c58f05b5e3cc4796f3181cf07349d306547c00b20841a175b179c6860e6a34ab","client_ip_address":"32.122.223.26","client_user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Mobile/15E148 Safari/604.1"},"event_name":"Checkout Step Viewed","event_time":1654773112,"event_source_url":"https://www.my.kaiser.com/checkout","event_id":"4f002656-a7b2-4c17-b9bd-8caa5a29190a","custom_data":{"checkout_id":"26SF29B","site":"www.my.kaiser.com","step":1}}', + ], + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + userId: '', + headers: {}, + version: '1', + endpoint: `https://graph.facebook.com/${VERSION}/1234567891234567/events?access_token=invalid_access_token`, + params: { + destination: 'facebook_pixel', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: 'Invalid OAuth 2.0 access token', + destinationResponse: { + error: { + message: 'The access token could not be decrypted', + type: 'OAuthException', + code: 190, + fbtrace_id: 'fbpixel_trace_id', + }, + status: 500, + }, + statTags: { + destType: 'FACEBOOK_PIXEL', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 1', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + body: { + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"c58f05b5e3cc4796f3181cf07349d306547c00b20841a175b179c6860e6a34ab","client_ip_address":"32.122.223.26","client_user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Mobile/15E148 Safari/604.1"},"event_name":"Checkout Step Viewed","event_time":1654773112,"event_source_url":"https://www.my.kaiser.com/checkout","event_id":"4f002656-a7b2-4c17-b9bd-8caa5a29190a","custom_data":{"checkout_id":"26SF29B","site":"www.my.kaiser.com","step":1}}', + ], + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + userId: '', + headers: {}, + version: '1', + endpoint: `https://graph.facebook.com/${VERSION}/1234567891234567/events?access_token=my_access_token`, + params: { + destination: 'facebook_pixel', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + status: 200, + message: 'Request Processed Successfully', + destinationResponse: { + events_received: 1, + fbtrace_id: 'facebook_trace_id', + }, + }, + }, + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 2', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + body: { + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"c58f05b5e3cc4796f3181cf07349d306547c00b20841a175b179c6860e6a34ab","client_ip_address":"32.122.223.26","client_user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Mobile/15E148 Safari/604.1"},"event_name":"Checkout Step Viewed","event_time":1654772112,"event_source_url":"https://www.my.kaiser.com/checkout","event_id":"4f002656-a7b2-4c17-b9bd-8caa5a29190a","custom_data":{"checkout_id":"26SF29B","site":"www.my.kaiser.com","step":1}}', + ], + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + userId: '', + headers: {}, + version: '1', + endpoint: `https://graph.facebook.com/${VERSION}/1234567891234567/events?access_token=invalid_timestamp_correct_access_token`, + params: { + destination: 'facebook_pixel', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: 'Event Timestamp Too Old', + destinationResponse: { + error: { + message: 'Invalid parameter', + type: 'OAuthException', + code: 100, + error_subcode: 2804003, + is_transient: false, + error_user_title: 'Event Timestamp Too Old', + error_user_msg: + 'The timestamp for this event is too far in the past. Events need to be sent from your server within 7 days of when they occurred. Enter a timestamp that has occurred within the last 7 days.', + fbtrace_id: 'A6UyEgg_HdoiRX9duxcBOjb', + }, + status: 400, + }, + statTags: { + destType: 'FACEBOOK_PIXEL', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 3', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + body: { + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"c58f05b5e3cc4796f3181cf07349d306547c00b20841a175b179c6860e6a34ab","client_ip_address":"32.122.223.26","client_user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Mobile/15E148 Safari/604.1"},"event_name":"Checkout Step Viewed","event_time":1654772112,"event_source_url":"https://www.my.kaiser.com/checkout","event_id":"4f002656-a7b2-4c17-b9bd-8caa5a29190a","custom_data":{"checkout_id":"26SF29B","site":"www.my.kaiser.com","step":1}}', + ], + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + userId: '', + headers: {}, + version: '1', + endpoint: `https://graph.facebook.com/${VERSION}/1234567891234567/events?access_token=throttled_valid_access_token`, + params: { + destination: 'facebook_pixel', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 429, + body: { + output: { + status: 429, + message: 'API User Too Many Calls', + destinationResponse: { + error: { + message: 'User request limit reached', + type: 'OAuthException', + code: 17, + fbtrace_id: 'facebook_px_trace_id_4', + }, + status: 500, + }, + statTags: { + destType: 'FACEBOOK_PIXEL', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'throttled', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 4', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + body: { + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"c58f05b5e3cc4796f3181cf07349d306547c00b20841a175b179c6860e6a34ab","client_ip_address":"32.122.223.26","client_user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Mobile/15E148 Safari/604.1"},"event_name":"Checkout Step Viewed","event_time":1654772112,"event_source_url":"https://www.my.kaiser.com/checkout","event_id":"4f002656-a7b2-4c17-b9bd-8caa5a29190a","custom_data":{"checkout_id":"26SF29B","site":"www.my.kaiser.com","step":1}}', + ], + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + userId: '', + headers: {}, + version: '1', + endpoint: `https://graph.facebook.com/${VERSION}/1234567891234567/events?access_token=invalid_account_id_valid_access_token`, + params: { + destination: 'facebook_pixel', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: + "Object with ID 'PIXEL_ID' / 'DATASET_ID' / 'AUDIENCE_ID' does not exist, cannot be loaded due to missing permissions, or does not support this operation", + destinationResponse: { + error: { + message: + "Unsupported post request. Object with ID '1234567891234569' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api", + type: 'GraphMethodException', + code: 100, + error_subcode: 33, + fbtrace_id: 'facebook_px_trace_id_5', + }, + status: 400, + }, + statTags: { + destType: 'FACEBOOK_PIXEL', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 5', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + body: { + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"d58f05b5e3cc4796f3181cf07349d306547c00b20841a175b179c6860e6a34ab","client_ip_address":"32.122.223.26","client_user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Mobile/15E148 Safari/604.1"},"event_name":"Checkout Step Viewed","event_time":1654772112,"event_source_url":"https://www.my.kaiser.com/checkout","event_id":"4f002656-a7b2-4c17-b9bd-8caa5a29190a","custom_data":{"checkout_id":"26SF29B","site":"www.my.kaiser.com","step":1}}', + ], + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + userId: '', + headers: {}, + version: '1', + endpoint: `https://graph.facebook.com/${VERSION}/1234567891234567/events?access_token=not_found_access_token`, + params: { + destination: 'facebook_pixel', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: 'Invalid Parameter', + destinationResponse: { + error: { + message: 'Invalid Parameter', + type: 'GraphMethodException', + code: 100, + error_subcode: 34, + fbtrace_id: 'facebook_px_trace_id_6', + }, + status: 404, + }, + statTags: { + destType: 'FACEBOOK_PIXEL', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 6', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + body: { + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"c58f05b5e3cc4796f3181cf07349d306547c00b20841a175b179c6860e6a34ab","client_ip_address":"32.122.223.26","client_user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Mobile/15E148 Safari/604.1"},"event_name":"Checkout Step Viewed","event_time":1654772112,"event_source_url":"https://www.my.kaiser.com/checkout","event_id":"4f002656-a7b2-4c17-b9bd-8caa5a29190a","custom_data":{"checkout_id":"26SF29B","site":"www.my.kaiser.com","step":1}}', + ], + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: { + destination: 'facebook_pixel', + }, + userId: '', + headers: {}, + version: '1', + endpoint: `https://graph.facebook.com/${VERSION}/1234567891234570/events?access_token=valid_access_token`, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: 'Invalid Parameter', + destinationResponse: { + error: { + message: 'Unsupported post request. some problem with sent parameters', + type: 'GraphMethodException', + code: 100, + error_subcode: 38, + fbtrace_id: 'facebook_px_trace_id_6', + }, + status: 400, + }, + statTags: { + destType: 'FACEBOOK_PIXEL', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 7', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + body: { + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"c58f05b5e3cc4796f3181cf07349d306547c00b20841a175b179c6860e6a34ab","client_ip_address":"32.122.223.26","client_user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Mobile/15E148 Safari/604.1"},"event_name":"Checkout Step Viewed","event_time":1654772112,"event_source_url":"https://www.my.kaiser.com/checkout","event_id":"4f002656-a7b2-4c17-b9bd-8caa5a29190a","custom_data":{"checkout_id":"26SF29B","site":"www.my.kaiser.com","step":1}}', + ], + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: { + destination: 'facebook_pixel', + }, + userId: '', + headers: {}, + version: '1', + endpoint: `https://graph.facebook.com/${VERSION}/1234567891234571/events?access_token=valid_access_token`, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: 'Capability or permissions issue.', + destinationResponse: { + error: { + message: 'Some error in permission', + type: 'GraphMethodException', + code: 3, + error_subcode: 10, + fbtrace_id: 'facebook_px_trace_id_7', + }, + status: 500, + }, + statTags: { + destType: 'FACEBOOK_PIXEL', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 8', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + body: { + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"c58f05b5e3cc4796f3181cf07349d306547c00b20841a175b179c6860e6a34ab","client_ip_address":"32.122.223.26","client_user_agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Mobile/15E148 Safari/604.1"},"event_name":"Checkout Step Viewed","event_time":1654772112,"event_source_url":"https://www.my.kaiser.com/checkout","event_id":"4f002656-a7b2-4c17-b9bd-8caa5a29190a","custom_data":{"checkout_id":"26SF29B","site":"www.my.kaiser.com","step":1}}', + ], + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: { + destination: 'facebook_pixel', + }, + userId: '', + headers: {}, + version: '1', + endpoint: `https://graph.facebook.com/${VERSION}/1234567891234572/events?access_token=valid_access_token_unhandled_response`, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + body: { + output: { + status: 500, + message: 'Unhandled random error', + destinationResponse: { + error: { + message: 'Unhandled random error', + type: 'RandomException', + code: 5, + error_subcode: 12, + fbtrace_id: 'facebook_px_trace_id_10', + }, + status: 412, + }, + statTags: { + destType: 'FACEBOOK_PIXEL', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + meta: 'unhandledStatusCode', + }, + }, + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/facebook_pixel/network.ts b/test/integrations/destinations/facebook_pixel/network.ts new file mode 100644 index 00000000000..05b3a05fd0b --- /dev/null +++ b/test/integrations/destinations/facebook_pixel/network.ts @@ -0,0 +1,191 @@ +import { data } from './dataDelivery/data'; +import { getFormData } from '../../../../src/adapters/network'; +import { VERSION } from '../../../../src/v0/destinations/facebook_pixel/config'; + +export const networkCallsData = [ + { + httpReq: { + url: `https://graph.facebook.com/${VERSION}/1234567891234567/events?access_token=invalid_access_token`, + data: getFormData(data[0].input.request.body.body.FORM).toString(), + params: { destination: 'facebook_pixel' }, + headers: { 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: { + data: { + error: { + message: 'The access token could not be decrypted', + type: 'OAuthException', + code: 190, + fbtrace_id: 'fbpixel_trace_id', + }, + }, + status: 500, + }, + }, + { + httpReq: { + url: `https://graph.facebook.com/${VERSION}/1234567891234567/events?access_token=invalid_timestamp_correct_access_token`, + data: getFormData(data[2].input.request.body.body.FORM).toString(), + params: { destination: 'facebook_pixel' }, + headers: { 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: { + data: { + error: { + message: 'Invalid parameter', + type: 'OAuthException', + code: 100, + error_subcode: 2804003, + is_transient: false, + error_user_title: 'Event Timestamp Too Old', + error_user_msg: + 'The timestamp for this event is too far in the past. Events need to be sent from your server within 7 days of when they occurred. Enter a timestamp that has occurred within the last 7 days.', + fbtrace_id: 'A6UyEgg_HdoiRX9duxcBOjb', + }, + }, + status: 400, + }, + }, + { + httpReq: { + url: `https://graph.facebook.com/${VERSION}/1234567891234567/events?access_token=throttled_valid_access_token`, + data: getFormData(data[3].input.request.body.body.FORM).toString(), + params: { destination: 'facebook_pixel' }, + headers: { 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: { + data: { + error: { + message: 'User request limit reached', + type: 'OAuthException', + code: 17, + fbtrace_id: 'facebook_px_trace_id_4', + }, + }, + status: 500, + }, + }, + { + httpReq: { + url: `https://graph.facebook.com/${VERSION}/1234567891234567/events?access_token=invalid_account_id_valid_access_token`, + data: getFormData(data[4].input.request.body.body.FORM).toString(), + params: { destination: 'facebook_pixel' }, + headers: { 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: { + data: { + error: { + message: + "Unsupported post request. Object with ID '1234567891234569' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api", + type: 'GraphMethodException', + code: 100, + error_subcode: 33, + fbtrace_id: 'facebook_px_trace_id_5', + }, + }, + status: 400, + }, + }, + { + httpReq: { + url: `https://graph.facebook.com/${VERSION}/1234567891234567/events?access_token=not_found_access_token`, + data: getFormData(data[5].input.request.body.body.FORM).toString(), + params: { destination: 'facebook_pixel' }, + headers: { 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: { + data: { + error: { + message: 'Invalid Parameter', + type: 'GraphMethodException', + code: 100, + error_subcode: 34, + fbtrace_id: 'facebook_px_trace_id_6', + }, + }, + status: 404, + }, + }, + { + httpReq: { + url: `https://graph.facebook.com/${VERSION}/1234567891234570/events?access_token=valid_access_token`, + data: getFormData(data[6].input.request.body.body.FORM).toString(), + params: { destination: 'facebook_pixel' }, + headers: { 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: { + data: { + error: { + message: 'Unsupported post request. some problem with sent parameters', + type: 'GraphMethodException', + code: 100, + error_subcode: 38, + fbtrace_id: 'facebook_px_trace_id_6', + }, + }, + status: 400, + }, + }, + { + httpReq: { + url: `https://graph.facebook.com/${VERSION}/1234567891234571/events?access_token=valid_access_token`, + data: getFormData(data[7].input.request.body.body.FORM).toString(), + params: { destination: 'facebook_pixel' }, + headers: { 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: { + data: { + error: { + message: 'Some error in permission', + type: 'GraphMethodException', + code: 3, + error_subcode: 10, + fbtrace_id: 'facebook_px_trace_id_7', + }, + }, + status: 500, + }, + }, + { + httpReq: { + url: `https://graph.facebook.com/${VERSION}/1234567891234572/events?access_token=valid_access_token_unhandled_response`, + data: getFormData(data[8].input.request.body.body.FORM).toString(), + params: { destination: 'facebook_pixel' }, + headers: { 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: { + data: { + error: { + message: 'Unhandled random error', + type: 'RandomException', + code: 5, + error_subcode: 12, + fbtrace_id: 'facebook_px_trace_id_10', + }, + }, + status: 412, + }, + }, + { + httpReq: { + url: `https://graph.facebook.com/${VERSION}/1234567891234567/events?access_token=my_access_token`, + data: getFormData(data[1].input.request.body.body.FORM).toString(), + params: { destination: 'facebook_pixel' }, + headers: { 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: { + data: { events_received: 1, fbtrace_id: 'facebook_trace_id' }, + status: 200, + statusText: 'OK', + }, + }, +]; diff --git a/test/integrations/destinations/facebook_pixel/processor/data.ts b/test/integrations/destinations/facebook_pixel/processor/data.ts new file mode 100644 index 00000000000..557bc7066c3 --- /dev/null +++ b/test/integrations/destinations/facebook_pixel/processor/data.ts @@ -0,0 +1,6463 @@ +import { VERSION } from '../../../../../src/v0/destinations/facebook_pixel/config'; + +export const mockFns = (_) => { + // @ts-ignore + jest.useFakeTimers().setSystemTime(new Date('2023-10-15')); +}; + +export const data = [ + { + name: 'facebook_pixel', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + channel: 'mobile', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: ' aBc@gmail.com ', + address: { + zip: 1234, + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + }, + timestamp: '2023-10-14T00:00:00.693229+05:30', + type: 'track', + }, + destination: { + Config: { + limitedDataUsage: true, + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + removeExternalId: true, + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"em":"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08","zp":"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4"},"event_name":"spin_result","event_time":1697221800,"action_source":"app","custom_data":{"additional_bet_index":0,"value":400}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: ' aBc@gmail.com ', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + }, + timestamp: '2023-10-14T15:46:51.693229+05:30', + type: 'group', + }, + destination: { + Config: { + limitedDataUsage: true, + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Message type group not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'FACEBOOK_PIXEL', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + name: 'Test', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + properties: { + plan: 'standard plan', + name: 'rudder test', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'For identify events, "Advanced Mapping" configuration must be enabled on the RudderStack dashboard', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'FACEBOOK_PIXEL', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + name: 'Rudder Test', + email: 'abc@gmail.com', + firstname: 'Rudder', + lastname: 'Test', + phone: 9000000000, + gender: 'female', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + properties: { + plan: 'standard plan', + name: 'rudder test', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: true, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92","em":"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08","ph":"593a6d58f34eb5c3de4f47e38d1faaa7d389fafe332a85400b1e54498391c579","ge":"252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111","ln":"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25","fn":"2c2ccf28d806f6f9a34b67aa874d2113b7ac1444f1a4092541b8b75b84771747","client_ip_address":"0.0.0.0","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"identify","event_time":1697278611,"event_id":"84e26acc-56a5-4835-8233-591137fca468","action_source":"website"}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + name: 'Rudder Test', + email: 'abc@gmail.com', + phone: 9000000000, + address: { + postalCode: 1234, + }, + gender: 'female', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + properties: { + plan: 'standard plan', + name: 'rudder test', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: true, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92","em":"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08","ph":"593a6d58f34eb5c3de4f47e38d1faaa7d389fafe332a85400b1e54498391c579","ge":"252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111","zp":"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4","client_ip_address":"0.0.0.0","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36","fn":"2c2ccf28d806f6f9a34b67aa874d2113b7ac1444f1a4092541b8b75b84771747","ln":"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25"},"event_name":"identify","event_time":1697278611,"event_id":"84e26acc-56a5-4835-8233-591137fca468","action_source":"website"}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + email: 'abc@gmail.com', + }, + timestamp: '2023-10-14T15:46:51.693229+05:30', + type: 'track', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"6dc8118ec743f5f3b758939714193f547f4a674c68757fa80d7c9564dc093b0a","em":"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"},"event_name":"spin_result","event_time":1697278611,"action_source":"other","custom_data":{"additional_bet_index":0,"value":400}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + email: 'abc@gmail.com', + }, + timestamp: '2023-10-14T15:46:51.693229+05:30', + type: 'track', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: 'email', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"6dc8118ec743f5f3b758939714193f547f4a674c68757fa80d7c9564dc093b0a","em":"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"},"event_name":"spin_result","event_time":1697278611,"action_source":"other","custom_data":{"additional_bet_index":0,"email":"abc@gmail.com","value":400}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + email: 'abc@gmail.com', + phone: 9000000000, + }, + timestamp: '2023-10-14T15:46:51.693229+05:30', + type: 'track', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: 'phone', + blacklistPiiHash: false, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: 'email', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"6dc8118ec743f5f3b758939714193f547f4a674c68757fa80d7c9564dc093b0a","em":"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"},"event_name":"spin_result","event_time":1697278611,"action_source":"other","custom_data":{"additional_bet_index":0,"email":"abc@gmail.com","value":400}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + email: 'abc@gmail.com', + phone: 9000000000, + }, + timestamp: '2023-10-14T15:46:51.693229+05:30', + type: 'track', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: 'phone', + blacklistPiiHash: true, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: 'email', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"6dc8118ec743f5f3b758939714193f547f4a674c68757fa80d7c9564dc093b0a","em":"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"},"event_name":"spin_result","event_time":1697278611,"action_source":"other","custom_data":{"additional_bet_index":0,"email":"abc@gmail.com","phone":"593a6d58f34eb5c3de4f47e38d1faaa7d389fafe332a85400b1e54498391c579","value":400}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + timestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: 'xyz', + search: 'def', + title: 'ghi', + url: 'jkl', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: 'phone', + blacklistPiiHash: true, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: 'email', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","client_ip_address":"0.0.0.0","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"Viewed page ApplicationLoaded","event_time":1697278611,"event_source_url":"jkl","event_id":"5e10d13a-bf9a-44bf-b884-43a9e591ea71","action_source":"website","custom_data":{"path":"/abc","referrer":"xyz","search":"def","title":"ghi","url":"jkl"}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: 'xyz', + search: 'def', + title: 'ghi', + url: 'jkl', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: 'phone', + blacklistPiiHash: true, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: 'email', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","client_ip_address":"0.0.0.0","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"Viewed a page","event_time":1697278611,"event_source_url":"jkl","event_id":"5e10d13a-bf9a-44bf-b884-43a9e591ea71","action_source":"website","custom_data":{"path":"/abc","referrer":"xyz","search":"def","title":"ghi","url":"jkl"}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product list viewed', + properties: { + phone: 9000000000, + email: 'abc@gmail.com', + category: 'cat 1', + list_id: '1234', + filters: [ + { + type: 'department', + value: 'beauty', + }, + { + type: 'price', + value: 'under', + }, + ], + sorts: [ + { + type: 'price', + value: 'desc', + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: 'phone', + blacklistPiiHash: true, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: 'email', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"ViewContent","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"phone":"593a6d58f34eb5c3de4f47e38d1faaa7d389fafe332a85400b1e54498391c579","email":"abc@gmail.com","category":"cat 1","list_id":"1234","filters[0].type":"department","filters[0].value":"beauty","filters[1].type":"price","filters[1].value":"under","sorts[0].type":"price","sorts[0].value":"desc","testDimension":true,"testMetric":true,"content_ids":["cat 1"],"content_type":"product_group","contents":[{"id":"cat 1","quantity":1}],"content_category":"cat 1","value":0,"currency":"USD"}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product list viewed', + properties: { + phone: 9000000000, + email: 'abc@gmail.com', + category: 'cat 1', + list_id: '1234', + filters: [ + { + type: 'department', + value: 'beauty', + }, + { + type: 'price', + value: 'under', + }, + ], + sorts: [ + { + type: 'price', + value: 'desc', + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"ViewContent","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"category":"cat 1","list_id":"1234","filters[0].type":"department","filters[0].value":"beauty","filters[1].type":"price","filters[1].value":"under","sorts[0].type":"price","sorts[0].value":"desc","testDimension":true,"testMetric":true,"content_ids":["cat 1"],"content_type":"product_group","contents":[{"id":"cat 1","quantity":1}],"content_category":"cat 1","value":0,"currency":"USD"}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product list viewed', + properties: { + email: 'abc@gmail.com', + quantity: 2, + category: 'cat 1', + list_id: '1234', + contentName: 'nutrition', + value: 18.9, + filters: [ + { + type: 'department', + value: 'beauty', + }, + { + type: 'price', + value: 'under', + }, + ], + sorts: [ + { + type: 'price', + value: 'desc', + }, + ], + products: [ + { + product_id: '507f1f77bcf86cd799439011', + productDimension: 'My Product Dimension', + productMetric: 'My Product Metric', + position: 10, + }, + { + product_id: '507f1f77bcf86cdef799439011', + productDimension: 'My Product Dimension1', + productMetric: 'My Product Metric1', + position: -10, + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"ViewContent","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"quantity":2,"category":"cat 1","list_id":"1234","contentName":"nutrition","value":18.9,"filters[0].type":"department","filters[0].value":"beauty","filters[1].type":"price","filters[1].value":"under","sorts[0].type":"price","sorts[0].value":"desc","products[0].product_id":"507f1f77bcf86cd799439011","products[0].productDimension":"My Product Dimension","products[0].productMetric":"My Product Metric","products[0].position":10,"products[1].product_id":"507f1f77bcf86cdef799439011","products[1].productDimension":"My Product Dimension1","products[1].productMetric":"My Product Metric1","products[1].position":-10,"testDimension":true,"testMetric":true,"content_ids":["507f1f77bcf86cd799439011","507f1f77bcf86cdef799439011"],"content_type":"product","contents":[{"id":"507f1f77bcf86cd799439011","quantity":2},{"id":"507f1f77bcf86cdef799439011","quantity":2}],"content_category":"cat 1","content_name":"nutrition","currency":"USD"}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'my product list', + properties: { + email: 'abc@gmail.com', + quantity: 2, + category: 'cat 1', + list_id: '1234', + filters: [ + { + type: 'department', + value: 'beauty', + }, + { + type: 'price', + value: 'under', + }, + ], + sorts: [ + { + type: 'price', + value: 'desc', + }, + ], + products: [ + { + product_id: '507f1f77bcf86cd799439011', + productDimension: 'My Product Dimension', + productMetric: 'My Product Metric', + position: 10, + }, + { + product_id: '507f1f77bcf86cdef799439011', + productDimension: 'My Product Dimension1', + productMetric: 'My Product Metric1', + position: -10, + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + removeExternalId: false, + eventsToEvents: [ + { + from: 'My product list', + to: 'ViewContent', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: 'list_id', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"ViewContent","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"quantity":2,"category":"cat 1","list_id":"1234","filters[0].type":"department","filters[0].value":"beauty","filters[1].type":"price","filters[1].value":"under","sorts[0].type":"price","sorts[0].value":"desc","products[0].product_id":"507f1f77bcf86cd799439011","products[0].productDimension":"My Product Dimension","products[0].productMetric":"My Product Metric","products[0].position":10,"products[1].product_id":"507f1f77bcf86cdef799439011","products[1].productDimension":"My Product Dimension1","products[1].productMetric":"My Product Metric1","products[1].position":-10,"testDimension":true,"testMetric":true,"content_ids":["507f1f77bcf86cd799439011","507f1f77bcf86cdef799439011"],"content_type":"product","contents":[{"id":"507f1f77bcf86cd799439011","quantity":2},{"id":"507f1f77bcf86cdef799439011","quantity":2}],"content_category":"cat 1","value":0,"currency":"USD"}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product viewed', + properties: { + currency: 'CAD', + quantity: 1, + price: 24.75, + name: 'my product 1', + category: 'clothing', + sku: 'p-298', + testDimension: true, + testMetric: true, + position: 4.5, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + removeExternalId: true, + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.price', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"ViewContent","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"currency":"CAD","quantity":1,"price":24.75,"name":"my product 1","category":"clothing","sku":"p-298","testDimension":true,"testMetric":true,"position":4.5,"content_ids":["p-298"],"content_type":"product","content_name":"my product 1","content_category":"clothing","value":24.75,"contents":[{"id":"p-298","quantity":1,"item_price":24.75}]}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 16', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product added', + properties: { + currency: 'CAD', + quantity: 1, + value: 24.75, + category: 'cat 1', + id: 'p-298', + testDimension: true, + testMetric: true, + position: 4.5, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + removeExternalId: false, + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.value', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"AddToCart","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"currency":"CAD","quantity":1,"value":24.75,"category":"cat 1","id":"p-298","testDimension":true,"testMetric":true,"position":4.5,"content_ids":["p-298"],"content_type":"product","content_name":"","content_category":"cat 1","contents":[{"id":"p-298","quantity":1}]}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 17', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order completed', + properties: { + order_id: 'rudderstackorder1', + total: 99.99, + revenue: 12.24, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + contentName: 'all about nutrition', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.price', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","em":"1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"Purchase","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"order_id":"rudderstackorder1","total":99.99,"revenue":12.24,"shipping":13.99,"tax":20.99,"currency":"INR","contentName":"all about nutrition","products[0].quantity":1,"products[0].price":24.75,"products[0].name":"my product","products[0].sku":"p-298","products[1].quantity":3,"products[1].price":24.75,"products[1].name":"other product","products[1].sku":"p-299","content_ids":["p-298","p-299"],"content_type":"product","value":12.24,"contents":[{"id":"p-298","quantity":1,"item_price":24.75},{"id":"p-299","quantity":3,"item_price":24.75}],"num_items":2,"content_name":"all about nutrition"}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 18', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'checkout started', + properties: { + currency: 'CAD', + category: 'clothing', + contentName: 'abc', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 1, + price: 24.75, + name: 'my product 2', + sku: 'p-299', + }, + ], + step: 1, + paymentMethod: 'Visa', + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: 'contentName', + }, + ], + valueFieldIdentifier: 'properties.price', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","em":"1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"InitiateCheckout","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"currency":"CAD","category":"clothing","contentName":"abc","products[0].quantity":1,"products[0].price":24.75,"products[0].name":"my product","products[0].sku":"p-298","products[1].quantity":1,"products[1].price":24.75,"products[1].name":"my product 2","products[1].sku":"p-299","step":1,"paymentMethod":"Visa","testDimension":true,"testMetric":true,"content_category":"clothing","content_ids":["p-298","p-299"],"content_type":"product","value":0,"contents":[{"id":"p-298","quantity":1,"item_price":24.75},{"id":"p-299","quantity":1,"item_price":24.75}],"num_items":2}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 19', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + dataProcessingOptions: [['LDU'], 1, 1000], + fbc: 'fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890', + fbp: 'fb.1.1554763741205.234567890', + fb_login_id: 'fb_id', + lead_id: 'lead_id', + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + }, + timestamp: '2023-10-14T15:46:51.693229+05:30', + type: 'track', + }, + destination: { + Config: { + limitedDataUSage: true, + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"6dc8118ec743f5f3b758939714193f547f4a674c68757fa80d7c9564dc093b0a","em":"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08","fbc":"fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890","fbp":"fb.1.1554763741205.234567890","lead_id":"lead_id","fb_login_id":"fb_id"},"event_name":"spin_result","event_time":1697278611,"action_source":"other","data_processing_options":["LDU"],"data_processing_options_country":1,"data_processing_options_state":1000,"custom_data":{"additional_bet_index":0,"value":400}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 20', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + dataProcessingOptions: [['LDU'], 1, 1000], + fbc: 'fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890', + fbp: 'fb.1.1554763741205.234567890', + fb_login_id: 'fb_id', + lead_id: 'lead_id', + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + }, + timestamp: '2023-10-14T15:46:51.693229+05:30', + type: 'track', + }, + destination: { + Config: { + limitedDataUSage: false, + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"6dc8118ec743f5f3b758939714193f547f4a674c68757fa80d7c9564dc093b0a","em":"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08","fbc":"fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890","fbp":"fb.1.1554763741205.234567890","lead_id":"lead_id","fb_login_id":"fb_id"},"event_name":"spin_result","event_time":1697278611,"action_source":"other","custom_data":{"additional_bet_index":0,"value":400}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 21', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'products searched', + properties: { + product_id: 'p-298', + quantity: 2, + price: 18.9, + category: 'health', + value: 18.9, + query: 'HDMI cable', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.price', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","em":"1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"Search","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"product_id":"p-298","quantity":2,"price":18.9,"category":"health","value":18.9,"query":"HDMI cable","content_ids":["p-298"],"content_category":"health","contents":[{"id":"p-298","quantity":2,"item_price":18.9}],"search_string":"HDMI cable","currency":"USD"}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 22', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'products searched', + properties: { + query: 'HDMI cable', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + testDestination: true, + testEventCode: 'TEST1001', + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.price', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","em":"1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"Search","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"query":"HDMI cable","content_ids":[],"content_category":"","value":0,"contents":[],"search_string":"HDMI cable","currency":"USD"}}', + ], + test_event_code: 'TEST1001', + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 23', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: 'xyz', + search: 'def', + title: 'ghi', + url: 'jkl', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + standardPageCall: true, + blacklistPiiProperties: [ + { + blacklistPiiProperties: 'phone', + blacklistPiiHash: true, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: 'url', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: 'email', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","client_ip_address":"0.0.0.0","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"PageView","event_time":1697278611,"event_source_url":"jkl","event_id":"5e10d13a-bf9a-44bf-b884-43a9e591ea71","action_source":"website","custom_data":{"path":"/abc","referrer":"xyz","search":"def","title":"ghi","url":"jkl"}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 24', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'track page', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + }, + timestamp: '2023-10-14T15:46:51.693229+05:30', + type: 'track', + }, + destination: { + Config: { + limitedDataUsage: true, + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: 'track page', + to: 'PageView', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: 'additional_bet_index', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"6dc8118ec743f5f3b758939714193f547f4a674c68757fa80d7c9564dc093b0a","em":"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"},"event_name":"PageView","event_time":1697278611,"action_source":"other","custom_data":{"revenue":400,"additional_bet_index":0}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 25', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'my product list', + properties: { + email: 'abc@gmail.com', + quantity: 2, + category: 'cat 1', + list_id: '1234', + filters: [ + { + type: 'department', + value: 'beauty', + }, + { + type: 'price', + value: 'under', + }, + ], + sorts: [ + { + type: 'price', + value: 'desc', + }, + ], + products: [ + { + product_id: '507f1f77bcf86cd799439011', + productDimension: 'My Product Dimension', + productMetric: 'My Product Metric', + position: 10, + }, + { + product_id: '507f1f77bcf86cdef799439011', + productDimension: 'My Product Dimension1', + productMetric: 'My Product Metric1', + position: -10, + }, + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: 'My product list', + to: 'Schedule', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: 'list_id', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"Schedule","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"quantity":2,"category":"cat 1","list_id":"1234","filters[0].type":"department","filters[0].value":"beauty","filters[1].type":"price","filters[1].value":"under","sorts[0].type":"price","sorts[0].value":"desc","products[0].product_id":"507f1f77bcf86cd799439011","products[0].productDimension":"My Product Dimension","products[0].productMetric":"My Product Metric","products[0].position":10,"products[1].product_id":"507f1f77bcf86cdef799439011","products[1].productDimension":"My Product Dimension1","products[1].productMetric":"My Product Metric1","products[1].position":-10,"testDimension":true,"testMetric":true}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 26', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + }, + timestamp: '2023-10-14T15:46:51.693229+05:30', + type: 'track', + }, + destination: { + Config: { + limitedDataUsage: true, + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: "'event' is required", + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'FACEBOOK_PIXEL', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 27', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product added', + properties: { + currency: 'CAD', + quantity: 1, + value: '35.753', + category: 'cat 1', + id: 'p-298', + testDimension: true, + testMetric: true, + position: 4.5, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.value', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"AddToCart","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"currency":"CAD","quantity":1,"value":35.75,"category":"cat 1","id":"p-298","testDimension":true,"testMetric":true,"position":4.5,"content_ids":["p-298"],"content_type":"product","content_name":"","content_category":"cat 1","contents":[{"id":"p-298","quantity":1}]}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 28', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product added', + properties: { + currency: 'CAD', + quantity: 1, + value: '35.7A3', + category: 'cat 1', + id: 'p-298', + testDimension: true, + testMetric: true, + position: 4.5, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.value', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"AddToCart","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"currency":"CAD","quantity":1,"value":35.7,"category":"cat 1","id":"p-298","testDimension":true,"testMetric":true,"position":4.5,"content_ids":["p-298"],"content_type":"product","content_name":"","content_category":"cat 1","contents":[{"id":"p-298","quantity":1}]}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 29', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product added', + properties: { + currency: 'CAD', + quantity: 1, + value: 'ABC', + category: 'cat 1', + id: 'p-298', + testDimension: true, + testMetric: true, + position: 4.5, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.value', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Revenue could not be converted to number', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'FACEBOOK_PIXEL', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 30', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order completed', + properties: { + category: ['clothing', 'fishing'], + order_id: 'rudderstackorder1', + total: 99.99, + revenue: 12.24, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.price', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","em":"1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"Purchase","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"category[0]":"clothing","category[1]":"fishing","order_id":"rudderstackorder1","total":99.99,"revenue":12.24,"shipping":13.99,"tax":20.99,"currency":"INR","products[0].quantity":1,"products[0].price":24.75,"products[0].name":"my product","products[0].sku":"p-298","products[1].quantity":3,"products[1].price":24.75,"products[1].name":"other product","products[1].sku":"p-299","content_category":"clothing,fishing","content_ids":["p-298","p-299"],"content_type":"product","value":12.24,"contents":[{"id":"p-298","quantity":1,"item_price":24.75},{"id":"p-299","quantity":3,"item_price":24.75}],"num_items":2}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 31', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order completed', + properties: { + category: 100, + order_id: 'rudderstackorder1', + total: 99.99, + revenue: 12.24, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.price', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","em":"1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"Purchase","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"category":100,"order_id":"rudderstackorder1","total":99.99,"revenue":12.24,"shipping":13.99,"tax":20.99,"currency":"INR","products[0].quantity":1,"products[0].price":24.75,"products[0].name":"my product","products[0].sku":"p-298","products[1].quantity":3,"products[1].price":24.75,"products[1].name":"other product","products[1].sku":"p-299","content_category":"100","content_ids":["p-298","p-299"],"content_type":"product","value":12.24,"contents":[{"id":"p-298","quantity":1,"item_price":24.75},{"id":"p-299","quantity":3,"item_price":24.75}],"num_items":2}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 32', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order completed', + properties: { + category: { + category1: '1', + }, + order_id: 'rudderstackorder1', + total: 99.99, + revenue: 12.24, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.price', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: "'properties.category' must be either be a string or an array", + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'FACEBOOK_PIXEL', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 33', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + }, + timestamp: '2023-10-14T15:46:51.693229+05:30', + type: 'track', + }, + destination: { + Config: { + limitedDataUsage: true, + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: 'spin_result', + to: 'Schedule', + }, + { + to: 'Schedule', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"6dc8118ec743f5f3b758939714193f547f4a674c68757fa80d7c9564dc093b0a","em":"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"},"event_name":"Schedule","event_time":1697278611,"action_source":"other","custom_data":{"revenue":400,"additional_bet_index":0}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 34', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + }, + timestamp: '2019-08-24T15:46:51.693229+05:30', + type: 'track', + }, + destination: { + Config: { + limitedDataUsage: true, + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: 'spin_result', + to: 'Schedule', + }, + { + to: 'Schedule', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'Events must be sent within seven days of their occurrence or up to one minute in the future.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'FACEBOOK_PIXEL', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 35', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + }, + originalTimestamp: '2019-04-16T15:50:51.693229+05:30', + type: 'track', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + accessToken: 'validToken', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: true, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'Events must be sent within seven days of their occurrence or up to one minute in the future.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'FACEBOOK_PIXEL', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 36', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'products searched', + properties: { + query: { + key1: 'HDMI cable', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.price', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: "'query' should be in string format only", + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'FACEBOOK_PIXEL', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 37', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'products searched', + properties: { + query: 50, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.price', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","em":"1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"Search","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"query":50,"content_ids":[],"content_category":"","value":0,"contents":[],"search_string":50,"currency":"USD"}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 38', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + url: 'https://theminimstory.com/collections/summer-of-pearls?utm_source=facebook&utm_medium=paidsocial&utm_campaign=carousel&utm_content=ad1-jul&fbclid=IwAR2SsDcjzd_TLZN-e93kxOeGBYO4pQ3AiyeXSheHW5emDeLw8uTvo6lTMPI', + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'checkout started', + properties: { + currency: 'CAD', + category: 'clothing', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 1, + price: 24.75, + name: 'my product 2', + sku: 'p-299', + }, + ], + step: 1, + paymentMethod: 'Visa', + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.price', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","em":"1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36","fbc":"fb.1.1697278611693.IwAR2SsDcjzd_TLZN-e93kxOeGBYO4pQ3AiyeXSheHW5emDeLw8uTvo6lTMPI"},"event_name":"InitiateCheckout","event_time":1697278611,"event_source_url":"https://theminimstory.com/collections/summer-of-pearls?utm_source=facebook&utm_medium=paidsocial&utm_campaign=carousel&utm_content=ad1-jul&fbclid=IwAR2SsDcjzd_TLZN-e93kxOeGBYO4pQ3AiyeXSheHW5emDeLw8uTvo6lTMPI","event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"currency":"CAD","category":"clothing","products[0].quantity":1,"products[0].price":24.75,"products[0].name":"my product","products[0].sku":"p-298","products[1].quantity":1,"products[1].price":24.75,"products[1].name":"my product 2","products[1].sku":"p-299","step":1,"paymentMethod":"Visa","testDimension":true,"testMetric":true,"content_category":"clothing","content_ids":["p-298","p-299"],"content_type":"product","value":0,"contents":[{"id":"p-298","quantity":1,"item_price":24.75},{"id":"p-299","quantity":1,"item_price":24.75}],"num_items":2}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 39', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + url: 'https://theminimstory.com/collections/summer-of-pearls?utm_source=facebook&utm_medium=paidsocial&utm_campaign=carousel&utm_content=ad1-jul&fbclid=IwAR2SsDcjzd_TLZN-e93kxOeGBYO4pQ3AiyeXSheHW5emDeLw8uTvo6lTMPI', + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: { + name: 'checkout started', + }, + properties: { + currency: 'CAD', + category: 'clothing', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 1, + price: 24.75, + name: 'my product 2', + sku: 'p-299', + }, + ], + step: 1, + paymentMethod: 'Visa', + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.price', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'event name should be string', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'FACEBOOK_PIXEL', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 40', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + url: 'url in wrong format', + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'checkout started', + properties: { + currency: 'CAD', + category: 'clothing', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + { + quantity: 1, + price: 24.75, + name: 'my product 2', + sku: 'p-299', + }, + ], + step: 1, + paymentMethod: 'Visa', + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.price', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","em":"1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"InitiateCheckout","event_time":1697278611,"event_source_url":"url in wrong format","event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"currency":"CAD","category":"clothing","products[0].quantity":1,"products[0].price":24.75,"products[0].name":"my product","products[0].sku":"p-298","products[1].quantity":1,"products[1].price":24.75,"products[1].name":"my product 2","products[1].sku":"p-299","step":1,"paymentMethod":"Visa","testDimension":true,"testMetric":true,"content_category":"clothing","content_ids":["p-298","p-299"],"content_type":"product","value":0,"contents":[{"id":"p-298","quantity":1,"item_price":24.75},{"id":"p-299","quantity":1,"item_price":24.75}],"num_items":2}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 41', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product viewed', + properties: { + currency: 'CAD', + quantity: 1, + price: 24.75, + name: 'my product 1', + category: 'clothing', + sku: 'p-298', + testDimension: true, + testMetric: true, + position: 4.5, + }, + integrations: { + All: true, + Facebook_Pixel: { + contentType: 'sending dedicated content type for this particular payload', + }, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + removeExternalId: true, + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.price', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"ViewContent","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"currency":"CAD","quantity":1,"price":24.75,"name":"my product 1","category":"clothing","sku":"p-298","testDimension":true,"testMetric":true,"position":4.5,"content_ids":["p-298"],"content_type":"sending dedicated content type for this particular payload","content_name":"my product 1","content_category":"clothing","value":24.75,"contents":[{"id":"p-298","quantity":1,"item_price":24.75}]}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 42', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product viewed', + properties: { + currency: 'CAD', + quantity: 1, + price: 24.75, + value: 18.9, + name: 'my product 1', + category: 'clothing', + sku: 'p-298', + testDimension: true, + testMetric: true, + position: 4.5, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + removeExternalId: true, + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.value', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"ViewContent","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"currency":"CAD","quantity":1,"price":24.75,"value":18.9,"name":"my product 1","category":"clothing","sku":"p-298","testDimension":true,"testMetric":true,"position":4.5,"content_ids":["p-298"],"content_type":"product","content_name":"my product 1","content_category":"clothing","contents":[{"id":"p-298","quantity":1,"item_price":24.75}]}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 43', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order completed', + properties: { + order_id: 'rudderstackorder1', + total: 99.99, + revenue: 12.24, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + contentName: 'all about nutrition', + products: { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.price', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: "'properties.products' is not sent as an Array", + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'FACEBOOK_PIXEL', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 44', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'product list viewed', + properties: { + email: 'abc@gmail.com', + quantity: 2, + category: 'cat 1', + list_id: '1234', + contentName: 'nutrition', + value: 18.9, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + productDimension: 'My Product Dimension', + productMetric: 'My Product Metric', + position: 10, + }, + [ + { + product_id: '507f1f77bcf86cdef799439011', + productDimension: 'My Product Dimension1', + productMetric: 'My Product Metric1', + position: -10, + }, + ], + ], + testDimension: true, + testMetric: true, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: "'properties.products[1]' is not an object", + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'FACEBOOK_PIXEL', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 45', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'custom', + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + pixelId: 'dummyPixelId', + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Access token not found. Aborting', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'FACEBOOK_PIXEL', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 46', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'custom', + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Pixel Id not found. Aborting', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'FACEBOOK_PIXEL', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 47', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + metadata: { + jobId: 12, + }, + destination: { + secretConfig: {}, + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + valueFieldIdentifier: 'properties.price', + advancedMapping: false, + whitelistPiiProperties: [], + limitedDataUSage: false, + accessToken: 'dummyAccessToken', + testDestination: false, + testEventCode: '', + standardPageCall: false, + blacklistedEvents: [], + whitelistedEvents: [], + eventFilteringOption: 'disable', + removeExternalId: false, + useUpdatedMapping: false, + oneTrustCookieCategories: [], + useNativeSDK: false, + eventDelivery: false, + eventDeliveryTS: 1686748039135, + }, + liveEventsConfig: { + eventDelivery: false, + eventDeliveryTS: 1686748039135, + }, + id: 'destId1', + workspaceId: 'wsp2', + transformations: [], + isConnectionEnabled: true, + isProcessorEnabled: true, + name: 'san-fb_pixel', + enabled: true, + deleted: false, + createdAt: '2023-06-06T13:36:08.579Z', + updatedAt: '2023-06-14T13:07:19.136Z', + revisionId: 'revId2', + secretVersion: 3, + }, + message: { + type: 'page', + sentAt: '2023-10-14T15:46:51.000Z', + userId: 'user@19', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + version: 'dev-snapshot', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:8888/', + path: '/', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:8888/', + referrer: 'http://127.0.0.1:8888/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:8888', + initial_referring_domain: '', + }, + locale: 'en-GB', + screen: { + width: 1728, + height: 1117, + density: 2, + innerWidth: 547, + innerHeight: 915, + }, + traits: { + name: false, + source: 'rudderstack', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: 'dev-snapshot', + }, + campaign: {}, + sessionId: 1687769234506, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', + }, + rudderId: '6bbfd003-c074-4ee9-8674-c132ded9ff04', + timestamp: '2023-10-14T15:46:51.000Z', + properties: { + url: 'http://127.0.0.1:8888/', + path: '/', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:8888/', + referrer: 'http://127.0.0.1:8888/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:8888', + initial_referring_domain: '', + }, + receivedAt: '2023-10-14T15:46:51.000Z', + request_ip: '49.206.54.243', + anonymousId: '700ab220-faad-4cdf-8484-63e4c6bce6fe', + integrations: { + All: true, + }, + originalTimestamp: '2023-10-14T15:46:51.000Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=dummyAccessToken`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"72fd46c9ecb386f6747664a3e1d524294a3d7a2c8ae4aeb22b1e578b75093635","client_ip_address":"49.206.54.243","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"},"event_name":"PageView","event_time":1697298411,"event_source_url":"http://127.0.0.1:8888/","action_source":"website","custom_data":{"url":"http://127.0.0.1:8888/","path":"/","title":"Document","search":"","tab_url":"http://127.0.0.1:8888/","referrer":"http://127.0.0.1:8888/","initial_referrer":"$direct","referring_domain":"127.0.0.1:8888","initial_referring_domain":""}}', + ], + }, + }, + files: {}, + userId: '', + }, + metadata: { + jobId: 12, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 48', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2023-10-14T15:46:51.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'order completed', + properties: { + category: ['clothing', 'fishing'], + order_id: 'rudderstackorder1', + total: 99.99, + revenue: 12.24, + shipping: 13.99, + tax: 20.99, + currency: 'INR', + products: [ + { + quantity: 1, + price: 24.75, + name: 'my product', + sku: 'p-298', + delivery_category: 'home_delivery', + }, + { + quantity: 3, + price: 24.75, + name: 'other product', + sku: 'p-299', + delivery_category: 'home_delivery', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: true, + }, + ], + categoryToContent: [ + { + from: 'clothing', + to: 'product', + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: 'properties.price', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5","em":"1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"Purchase","event_time":1697278611,"event_id":"ec5481b6-a926-4d2e-b293-0b3a77c4d3be","action_source":"website","custom_data":{"category[0]":"clothing","category[1]":"fishing","order_id":"rudderstackorder1","total":99.99,"revenue":12.24,"shipping":13.99,"tax":20.99,"currency":"INR","products[0].quantity":1,"products[0].price":24.75,"products[0].name":"my product","products[0].sku":"p-298","products[0].delivery_category":"home_delivery","products[1].quantity":3,"products[1].price":24.75,"products[1].name":"other product","products[1].sku":"p-299","products[1].delivery_category":"home_delivery","content_category":"clothing,fishing","content_ids":["p-298","p-299"],"content_type":"product","value":12.24,"contents":[{"id":"p-298","quantity":1,"item_price":24.75,"delivery_category":"home_delivery"},{"id":"p-299","quantity":3,"item_price":24.75,"delivery_category":"home_delivery"}],"num_items":2}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 49', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + channel: 'mobile', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: ' aBc@gmail.com ', + address: { + zip: 1234, + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + content_ids: ['prod1', 'prod2'], + }, + timestamp: '2023-10-14T00:00:00.693229+05:30', + type: 'track', + }, + destination: { + Config: { + limitedDataUsage: true, + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + removeExternalId: true, + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"em":"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08","zp":"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4"},"event_name":"spin_result","event_time":1697221800,"action_source":"app","custom_data":{"additional_bet_index":0,"value":400,"content_ids":["prod1","prod2"]}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'facebook_pixel', + description: 'Test 50', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + channel: 'mobile', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: ' aBc@gmail.com ', + address: { + zip: 1234, + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + contents: [ + { + id: 'prod1', + quantity: 5, + item_price: 55, + }, + ], + }, + timestamp: '2023-10-14T00:00:00.693229+05:30', + type: 'track', + }, + destination: { + Config: { + limitedDataUsage: true, + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + removeExternalId: true, + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + data: [ + '{"user_data":{"em":"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08","zp":"03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4"},"event_name":"spin_result","event_time":1697221800,"action_source":"app","custom_data":{"additional_bet_index":0,"value":400,"contents":[{"id":"prod1","quantity":5,"item_price":55}]}}', + ], + }, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +].map((d) => ({ ...d, mockFns })); diff --git a/test/integrations/destinations/facebook_pixel/router/data.ts b/test/integrations/destinations/facebook_pixel/router/data.ts new file mode 100644 index 00000000000..ee2f6968b1b --- /dev/null +++ b/test/integrations/destinations/facebook_pixel/router/data.ts @@ -0,0 +1,318 @@ +import { VERSION } from '../../../../../src/v0/destinations/facebook_pixel/config'; + +export const mockFns = (_) => { + // @ts-ignore + jest.useFakeTimers().setSystemTime(new Date('2023-10-15')); +}; + +export const data = [ + { + name: 'facebook_pixel', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + }, + timestamp: '2023-10-14T15:46:51.693229+05:30', + type: 'track', + }, + metadata: { + jobId: 1, + }, + destination: { + Config: { + limitedDataUsage: true, + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + removeExternalId: true, + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + { + message: { + channel: 'web', + context: { + traits: { + name: 'Rudder Test', + email: 'abc@gmail.com', + firstname: 'Test', + lastname: 'Test', + phone: 9000000000, + gender: 'female', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + properties: { + plan: 'standard plan', + name: 'rudder test', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2023-10-14T00:00:00.693229+05:30', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: true, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + destType: 'facebook_pixel', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: { + data: [ + '{"user_data":{"em":"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08"},"event_name":"spin_result","event_time":1697278611,"action_source":"other","custom_data":{"additional_bet_index":0,"value":400}}', + ], + }, + }, + files: {}, + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + limitedDataUsage: true, + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + removeExternalId: true, + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: false, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/dummyPixelId/events?access_token=09876`, + headers: {}, + params: {}, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: { + data: [ + '{"user_data":{"external_id":"8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92","em":"48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08","ph":"593a6d58f34eb5c3de4f47e38d1faaa7d389fafe332a85400b1e54498391c579","ge":"252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111","ln":"532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25","fn":"2c2ccf28d806f6f9a34b67aa874d2113b7ac1444f1a4092541b8b75b84771747","client_ip_address":"0.0.0.0","client_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"},"event_name":"identify","event_time":1697221800,"event_id":"84e26acc-56a5-4835-8233-591137fca468","action_source":"website"}', + ], + }, + }, + files: {}, + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + blacklistPiiProperties: [ + { + blacklistPiiProperties: '', + blacklistPiiHash: false, + }, + ], + accessToken: '09876', + pixelId: 'dummyPixelId', + eventsToEvents: [ + { + from: '', + to: '', + }, + ], + eventCustomProperties: [ + { + eventCustomProperties: '', + }, + ], + valueFieldIdentifier: '', + advancedMapping: true, + whitelistPiiProperties: [ + { + whitelistPiiProperties: '', + }, + ], + }, + Enabled: true, + }, + }, + ], + }, + }, + }, + }, +].map((d) => ({ ...d, mockFns })); diff --git a/test/integrations/destinations/factorsai/data.ts b/test/integrations/destinations/factorsai/data.ts index b2e9c011153..fb0a76bf342 100644 --- a/test/integrations/destinations/factorsai/data.ts +++ b/test/integrations/destinations/factorsai/data.ts @@ -381,6 +381,7 @@ export const data = [ XML: {}, FORM: {}, JSON: { + type: 'group', traits: { company: '5055077684', type: 'IT', @@ -482,6 +483,7 @@ export const data = [ XML: {}, FORM: {}, JSON: { + type: 'page', name: 'ApplicationLoaded', userId: '12345', context: { diff --git a/test/integrations/destinations/fb/dataDelivery/data.ts b/test/integrations/destinations/fb/dataDelivery/data.ts new file mode 100644 index 00000000000..f9405ba4b30 --- /dev/null +++ b/test/integrations/destinations/fb/dataDelivery/data.ts @@ -0,0 +1,372 @@ +import { VERSION } from '../../../../../src/v0/destinations/fb/config'; + +export const data = [ + { + name: 'fb', + description: 'Test 0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: { + event: 'CUSTOM_APP_EVENTS', + advertiser_id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + 'ud[em]': '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + 'ud[fn]': '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', + 'ud[ge]': '62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a', + 'ud[ln]': '3547cb112ac4489af2310c0626cdba6f3097a2ad5a3b42ddd3b59c76c7a079a3', + 'ud[ph]': '588211a01b10feacbf7988d97a06e86c18af5259a7f457fd8759b7f7409a7d1f', + extinfo: + '["a2","","","","8.1.0","Redmi 6","","","Banglalink",640,480,"1.23",0,0,0,"Europe/Berlin"]', + app_user_id: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + custom_events: + '[{"_logTime":1567333011693,"_eventName":"spin_result","_valueToSum":400,"fb_currency":"GBP","additional_bet_index":0,"battle_id":"N/A","bet_amount":9,"bet_level":1,"bet_multiplier":1,"coin_balance":9466052,"current_module_name":"CasinoGameModule","days_in_game":0,"extra_param":"N/A","fb_profile":"0","featureGameType":"N/A","game_fps":30,"game_id":"fireEagleBase","game_name":"FireEagleSlots","gem_balance":0,"graphicsQuality":"HD","idfa":"2bf99787-33d2-4ae2-a76a-c49672f97252","internetReachability":"ReachableViaLocalAreaNetwork","isLowEndDevice":"False","is_auto_spin":"False","is_turbo":"False","isf":"False","ishighroller":"False","jackpot_win_amount":90,"jackpot_win_type":"Silver","level":6,"lifetime_gem_balance":0,"no_of_spin":1,"player_total_battles":0,"player_total_shields":0,"start_date":"2019-08-01","total_payments":0,"tournament_id":"T1561970819","userId":"c82cbdff-e5be-4009-ac78-cdeea09ab4b1","versionSessionCount":2,"win_amount":0,"fb_content_id":["123","345","567"]}]', + advertiser_tracking_enabled: '0', + application_tracking_enabled: '0', + }, + JSON: {}, + }, + endpoint: `https://graph.facebook.com/${VERSION}/RudderFbApp/activities?access_token=invalid_access_token`, + files: {}, + headers: { + 'x-forwarded-for': '1.2.3.4', + }, + method: 'POST', + statusCode: 200, + type: 'REST', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + version: '1', + params: { + destination: 'fb', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: 'Invalid OAuth 2.0 access token', + destinationResponse: { + error: { + message: 'The access token could not be decrypted', + type: 'OAuthException', + code: 190, + fbtrace_id: 'fbpixel_trace_id', + }, + status: 500, + }, + statTags: { + destType: 'FB', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'fb', + description: 'Test 1', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: { + event: 'CUSTOM_APP_EVENTS', + advertiser_id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + 'ud[em]': '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + 'ud[fn]': '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', + 'ud[ge]': '62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a', + 'ud[ln]': '3547cb112ac4489af2310c0626cdba6f3097a2ad5a3b42ddd3b59c76c7a079a3', + 'ud[ph]': '588211a01b10feacbf7988d97a06e86c18af5259a7f457fd8759b7f7409a7d1f', + extinfo: + '["a2","","","","8.1.0","Redmi 6","","","Banglalink",640,480,"1.23",0,0,0,"Europe/Berlin"]', + app_user_id: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + custom_events: + '[{"_logTime":1567333011693,"_eventName":"spin_result","_valueToSum":400,"fb_currency":"GBP","additional_bet_index":0,"battle_id":"N/A","bet_amount":9,"bet_level":1,"bet_multiplier":1,"coin_balance":9466052,"current_module_name":"CasinoGameModule","days_in_game":0,"extra_param":"N/A","fb_profile":"0","featureGameType":"N/A","game_fps":30,"game_id":"fireEagleBase","game_name":"FireEagleSlots","gem_balance":0,"graphicsQuality":"HD","idfa":"2bf99787-33d2-4ae2-a76a-c49672f97252","internetReachability":"ReachableViaLocalAreaNetwork","isLowEndDevice":"False","is_auto_spin":"False","is_turbo":"False","isf":"False","ishighroller":"False","jackpot_win_amount":90,"jackpot_win_type":"Silver","level":6,"lifetime_gem_balance":0,"no_of_spin":1,"player_total_battles":0,"player_total_shields":0,"start_date":"2019-08-01","total_payments":0,"tournament_id":"T1561970819","userId":"c82cbdff-e5be-4009-ac78-cdeea09ab4b1","versionSessionCount":2,"win_amount":0,"fb_content_id":["123","345","567"]}]', + advertiser_tracking_enabled: '0', + application_tracking_enabled: '0', + }, + JSON: {}, + }, + endpoint: `https://graph.facebook.com/${VERSION}/RudderFbApp/activities?access_token=my_access_token`, + files: {}, + headers: { + 'x-forwarded-for': '1.2.3.4', + }, + method: 'POST', + statusCode: 200, + type: 'REST', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + version: '1', + params: { + destination: 'fb', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + status: 200, + message: 'Request Processed Successfully', + destinationResponse: { + events_received: 1, + fbtrace_id: 'facebook_trace_id', + }, + }, + }, + }, + }, + }, + + { + name: 'fb', + description: 'Test 2', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: { + event: 'CUSTOM_APP_EVENTS', + advertiser_id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + 'ud[em]': '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + 'ud[fn]': '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', + 'ud[ge]': '62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a', + 'ud[ln]': '3547cb112ac4489af2310c0626cdba6f3097a2ad5a3b42ddd3b59c76c7a079a3', + 'ud[ph]': '588211a01b10feacbf7988d97a06e86c18af5259a7f457fd8759b7f7409a7d1f', + extinfo: + '["a2","","","","8.1.0","Redmi 6","","","Banglalink",640,480,"1.23",0,0,0,"Europe/Berlin"]', + app_user_id: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + custom_events: + '[{"_logTime":1567333011693,"_eventName":"spin_result","_valueToSum":400,"fb_currency":"GBP","additional_bet_index":0,"battle_id":"N/A","bet_amount":9,"bet_level":1,"bet_multiplier":1,"coin_balance":9466052,"current_module_name":"CasinoGameModule","days_in_game":0,"extra_param":"N/A","fb_profile":"0","featureGameType":"N/A","game_fps":30,"game_id":"fireEagleBase","game_name":"FireEagleSlots","gem_balance":0,"graphicsQuality":"HD","idfa":"2bf99787-33d2-4ae2-a76a-c49672f97252","internetReachability":"ReachableViaLocalAreaNetwork","isLowEndDevice":"False","is_auto_spin":"False","is_turbo":"False","isf":"False","ishighroller":"False","jackpot_win_amount":90,"jackpot_win_type":"Silver","level":6,"lifetime_gem_balance":0,"no_of_spin":1,"player_total_battles":0,"player_total_shields":0,"start_date":"2019-08-01","total_payments":0,"tournament_id":"T1561970819","userId":"c82cbdff-e5be-4009-ac78-cdeea09ab4b1","versionSessionCount":2,"win_amount":0,"fb_content_id":["123","345","567"]}]', + advertiser_tracking_enabled: '0', + application_tracking_enabled: '0', + }, + JSON: {}, + }, + endpoint: `https://graph.facebook.com/${VERSION}/1234567891234567/events?access_token=invalid_timestamp_correct_access_token`, + files: {}, + headers: { + 'x-forwarded-for': '1.2.3.4', + }, + method: 'POST', + statusCode: 200, + type: 'REST', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + version: '1', + params: { + destination: 'fb', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: 'Event Timestamp Too Old', + destinationResponse: { + error: { + message: 'Invalid parameter', + type: 'OAuthException', + code: 100, + error_subcode: 2804003, + is_transient: false, + error_user_title: 'Event Timestamp Too Old', + error_user_msg: + 'The timestamp for this event is too far in the past. Events need to be sent from your server within 7 days of when they occurred. Enter a timestamp that has occurred within the last 7 days.', + fbtrace_id: 'A6UyEgg_HdoiRX9duxcBOjb', + }, + status: 400, + }, + statTags: { + destType: 'FB', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'fb', + description: 'Test 3', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/1234567891234567/events?access_token=throttled_valid_access_token`, + headers: {}, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: { + extinfo: + '["a2","","","","8.1.0","Redmi 6","","","Banglalink",0,100,"50.00",0,0,0,""]', + custom_events: + '[{"_logTime":1567333011693,"_eventName":"Viewed Screen","fb_description":"Main.1233"}]', + 'ud[em]': '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + advertiser_tracking_enabled: '0', + application_tracking_enabled: '0', + event: 'CUSTOM_APP_EVENTS', + }, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + statusCode: 200, + params: { + destination: 'fb', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 429, + body: { + output: { + status: 429, + message: 'API User Too Many Calls', + destinationResponse: { + error: { + message: 'User request limit reached', + type: 'OAuthException', + code: 17, + fbtrace_id: 'facebook_px_trace_id_4', + }, + status: 500, + }, + statTags: { + destType: 'FB', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'throttled', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'fb', + description: 'Test 4', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/1234567891234567/events?access_token=invalid_account_id_valid_access_token`, + headers: {}, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: { + extinfo: + '["a2","","","","8.1.0","Redmi 6","","","Banglalink",0,100,"50.00",0,0,0,""]', + custom_events: + '[{"_logTime":1567333011693,"_eventName":"Viewed Screen","fb_description":"Main.1233"}]', + 'ud[em]': '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + advertiser_tracking_enabled: '0', + application_tracking_enabled: '0', + event: 'CUSTOM_APP_EVENTS', + }, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + statusCode: 200, + params: { + destination: 'fb', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: + "Object with ID 'PIXEL_ID' / 'DATASET_ID' / 'AUDIENCE_ID' does not exist, cannot be loaded due to missing permissions, or does not support this operation", + destinationResponse: { + error: { + message: + "Unsupported post request. Object with ID '1234567891234569' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api", + type: 'GraphMethodException', + code: 100, + error_subcode: 33, + fbtrace_id: 'facebook_px_trace_id_5', + }, + status: 400, + }, + statTags: { + destType: 'FB', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/fb/network.ts b/test/integrations/destinations/fb/network.ts new file mode 100644 index 00000000000..1a2f114d74c --- /dev/null +++ b/test/integrations/destinations/fb/network.ts @@ -0,0 +1,56 @@ +import { cloneDeep } from 'lodash'; +import { getFormData } from '../../../../src/adapters/network'; +import * as fbPixelNw from '../facebook_pixel/network'; +import { data } from './dataDelivery/data'; +import { VERSION } from '../../../../src/v0/destinations/fb/config'; + +const fbPixelTcs = data + .filter((_, i) => [2, 3, 4].includes(i)) + .map((d) => { + const fbendpoint = d.input.request.body.endpoint; + const fbpTc = fbPixelNw.networkCallsData.filter((nw) => { + return nw.httpReq.url === fbendpoint; + })[0]; + const clonedFbpTc = cloneDeep(fbpTc); + const clonedFormData = cloneDeep(d.input.request.body.body.FORM); + clonedFbpTc.httpReq.data = getFormData(clonedFormData).toString(); + return clonedFbpTc; + }); + +export const networkCallsData = [ + { + httpReq: { + url: `https://graph.facebook.com/${VERSION}/RudderFbApp/activities?access_token=invalid_access_token`, + data: getFormData(data[0].input.request.body.body.FORM).toString(), + params: { destination: 'fb' }, + headers: { 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: { + data: { + error: { + message: 'The access token could not be decrypted', + type: 'OAuthException', + code: 190, + fbtrace_id: 'fbpixel_trace_id', + }, + }, + status: 500, + }, + }, + { + httpReq: { + url: `https://graph.facebook.com/${VERSION}/RudderFbApp/activities?access_token=my_access_token`, + data: getFormData(data[1].input.request.body.body.FORM).toString(), + params: { destination: 'fb' }, + headers: { 'x-forwarded-for': '1.2.3.4', 'User-Agent': 'RudderLabs' }, + method: 'POST', + }, + httpRes: { + data: { events_received: 1, fbtrace_id: 'facebook_trace_id' }, + status: 200, + statusText: 'OK', + }, + }, + ...fbPixelTcs, +]; diff --git a/test/integrations/destinations/fb/processor/data.ts b/test/integrations/destinations/fb/processor/data.ts new file mode 100644 index 00000000000..a437b908559 --- /dev/null +++ b/test/integrations/destinations/fb/processor/data.ts @@ -0,0 +1,2186 @@ +import { VERSION } from '../../../../../src/v0/destinations/fb/config'; + +export const data = [ + { + name: 'fb', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + type: 'Android', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + All: false, + GA: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + products: [ + { + product_id: 123, + }, + { + product_id: 345, + }, + { + product_id: 567, + }, + ], + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, + lifetime_gem_balance: 0, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + }, + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'If properties.revenue is present, properties.currency is required.', + statTags: { + destType: 'FB', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'fb', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + type: 'Android', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + All: false, + GA: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + currency: 'GBP', + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + products: [ + { + product_id: 123, + }, + { + product_id: 345, + }, + { + product_id: 567, + }, + ], + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, + lifetime_gem_balance: 0, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + }, + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Value of properties.products.sub.product_id is not of valid type. It should be of type string', + statTags: { + destType: 'FB', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'fb', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + type: 'Android', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + All: false, + GA: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: '400', + currency: 'GBP', + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + products: [ + { + product_id: '123', + }, + { + product_id: '345', + }, + { + product_id: '567', + }, + ], + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, + lifetime_gem_balance: 0, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + }, + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Value of properties.revenue is not of valid type. It should be of type number', + statTags: { + destType: 'FB', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'fb', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + advertisingId: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + type: 'Android', + }, + ip: '1.2.3.4', + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + width: '640', + height: '480', + density: 1.23456, + }, + timezone: 'Europe/Berlin', + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + firstName: 'test', + lastName: 'last', + gender: 1234, + phone: '+91-9831311135', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + All: false, + GA: true, + }, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + currency: 'GBP', + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + products: [ + { + product_id: '123', + }, + { + product_id: '345', + }, + { + product_id: '567', + }, + ], + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, + lifetime_gem_balance: 0, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + }, + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: { + event: 'CUSTOM_APP_EVENTS', + advertiser_id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + 'ud[em]': '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + 'ud[fn]': '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', + 'ud[ln]': '3547cb112ac4489af2310c0626cdba6f3097a2ad5a3b42ddd3b59c76c7a079a3', + 'ud[ph]': '588211a01b10feacbf7988d97a06e86c18af5259a7f457fd8759b7f7409a7d1f', + extinfo: + '["a2","","","","8.1.0","Redmi 6","","","Banglalink",640,480,"1.23",0,0,0,"Europe/Berlin"]', + app_user_id: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + custom_events: + '[{"_logTime":1567333011693,"_eventName":"spin_result","_valueToSum":400,"fb_currency":"GBP","additional_bet_index":0,"battle_id":"N/A","bet_amount":9,"bet_level":1,"bet_multiplier":1,"coin_balance":9466052,"current_module_name":"CasinoGameModule","days_in_game":0,"extra_param":"N/A","fb_profile":"0","featureGameType":"N/A","game_fps":30,"game_id":"fireEagleBase","game_name":"FireEagleSlots","gem_balance":0,"graphicsQuality":"HD","idfa":"2bf99787-33d2-4ae2-a76a-c49672f97252","internetReachability":"ReachableViaLocalAreaNetwork","isLowEndDevice":"False","is_auto_spin":"False","is_turbo":"False","isf":"False","ishighroller":"False","jackpot_win_amount":90,"jackpot_win_type":"Silver","level":6,"lifetime_gem_balance":0,"no_of_spin":1,"player_total_battles":0,"player_total_shields":0,"start_date":"2019-08-01","total_payments":0,"tournament_id":"T1561970819","userId":"c82cbdff-e5be-4009-ac78-cdeea09ab4b1","versionSessionCount":2,"win_amount":0,"fb_content_id":["123","345","567"]}]', + advertiser_tracking_enabled: '0', + application_tracking_enabled: '0', + }, + JSON: {}, + }, + endpoint: `https://graph.facebook.com/${VERSION}/RudderFbApp/activities`, + files: {}, + headers: { + 'x-forwarded-for': '1.2.3.4', + }, + method: 'POST', + params: {}, + statusCode: 200, + type: 'REST', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + version: '1', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + advertisingId: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + type: 'Android', + }, + ip: '1.2.3.4', + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + width: '640', + height: '480', + density: 1.23456, + }, + timezone: 'Europe/Berlin', + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + firstName: 'test', + lastName: 'last', + gender: 'Male', + phone: '+91-9831311135', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + All: false, + GA: true, + }, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + currency: 'GBP', + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + products: [ + { + product_id: '123', + }, + { + product_id: '345', + }, + { + product_id: '567', + }, + ], + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, + lifetime_gem_balance: 0, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + }, + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: { + event: 'CUSTOM_APP_EVENTS', + advertiser_id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + 'ud[em]': '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + 'ud[fn]': '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', + 'ud[ge]': '62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a', + 'ud[ln]': '3547cb112ac4489af2310c0626cdba6f3097a2ad5a3b42ddd3b59c76c7a079a3', + 'ud[ph]': '588211a01b10feacbf7988d97a06e86c18af5259a7f457fd8759b7f7409a7d1f', + extinfo: + '["a2","","","","8.1.0","Redmi 6","","","Banglalink",640,480,"1.23",0,0,0,"Europe/Berlin"]', + app_user_id: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + custom_events: + '[{"_logTime":1567333011693,"_eventName":"spin_result","_valueToSum":400,"fb_currency":"GBP","additional_bet_index":0,"battle_id":"N/A","bet_amount":9,"bet_level":1,"bet_multiplier":1,"coin_balance":9466052,"current_module_name":"CasinoGameModule","days_in_game":0,"extra_param":"N/A","fb_profile":"0","featureGameType":"N/A","game_fps":30,"game_id":"fireEagleBase","game_name":"FireEagleSlots","gem_balance":0,"graphicsQuality":"HD","idfa":"2bf99787-33d2-4ae2-a76a-c49672f97252","internetReachability":"ReachableViaLocalAreaNetwork","isLowEndDevice":"False","is_auto_spin":"False","is_turbo":"False","isf":"False","ishighroller":"False","jackpot_win_amount":90,"jackpot_win_type":"Silver","level":6,"lifetime_gem_balance":0,"no_of_spin":1,"player_total_battles":0,"player_total_shields":0,"start_date":"2019-08-01","total_payments":0,"tournament_id":"T1561970819","userId":"c82cbdff-e5be-4009-ac78-cdeea09ab4b1","versionSessionCount":2,"win_amount":0,"fb_content_id":["123","345","567"]}]', + advertiser_tracking_enabled: '0', + application_tracking_enabled: '0', + }, + JSON: {}, + }, + endpoint: `https://graph.facebook.com/${VERSION}/RudderFbApp/activities`, + files: {}, + headers: { + 'x-forwarded-for': '1.2.3.4', + }, + method: 'POST', + params: {}, + statusCode: 200, + type: 'REST', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + version: '1', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + type: 'Android', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + All: false, + GA: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + name: 'Main.1233', + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'screen', + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/RudderFbApp/activities`, + headers: {}, + params: {}, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: { + extinfo: + '["a2","","","","8.1.0","Redmi 6","","","Banglalink",0,100,"50.00",0,0,0,""]', + custom_events: + '[{"_logTime":1567333011693,"_eventName":"Viewed Screen","fb_description":"Main.1233"}]', + 'ud[em]': '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + advertiser_tracking_enabled: '0', + application_tracking_enabled: '0', + event: 'CUSTOM_APP_EVENTS', + }, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + type: 'Android', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + All: false, + GA: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + name: 'Main', + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'screen', + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/RudderFbApp/activities`, + headers: {}, + params: {}, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: { + extinfo: + '["a2","","","","8.1.0","Redmi 6","","","Banglalink",0,100,"50.00",0,0,0,""]', + custom_events: + '[{"_logTime":1567333011693,"_eventName":"Viewed Main Screen","fb_description":"Main"}]', + 'ud[em]': '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + advertiser_tracking_enabled: '0', + application_tracking_enabled: '0', + event: 'CUSTOM_APP_EVENTS', + }, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + type: 'Android', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'New.Event', + integrations: { + AM: true, + All: false, + GA: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + name: 'Main', + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Event name New.Event is not a valid FB APP event name.It must match the regex ^[0-9a-zA-Z_][0-9a-zA-Z _-]{0,39}$.', + statTags: { + destType: 'FB', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'fb', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + type: 'iOS', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'iOS', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + All: false, + GA: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + name: 'Viewed Main Screen1 by expicit call Screen', + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'screen', + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/RudderFbApp/activities`, + headers: {}, + params: {}, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: { + extinfo: + '["i2","","","","8.1.0","Redmi 6","","","Banglalink",0,100,"50.00",0,0,0,""]', + custom_events: + '[{"_logTime":1567333011693,"_eventName":"Viewed Screen","fb_description":"Viewed Main Screen1 by expicit call Screen"}]', + 'ud[em]': '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + advertiser_tracking_enabled: '0', + application_tracking_enabled: '0', + event: 'CUSTOM_APP_EVENTS', + }, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + type: 'Android', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'Android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + All: false, + GA: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + name: 'Viewed Main Screen1 by expicit call Screen', + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'screen', + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/RudderFbApp/activities`, + headers: {}, + params: {}, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: { + extinfo: + '["a2","","","","8.1.0","Redmi 6","","","Banglalink",0,100,"50.00",0,0,0,""]', + custom_events: + '[{"_logTime":1567333011693,"_eventName":"Viewed Screen","fb_description":"Viewed Main Screen1 by expicit call Screen"}]', + 'ud[em]': '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + advertiser_tracking_enabled: '0', + application_tracking_enabled: '0', + event: 'CUSTOM_APP_EVENTS', + }, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + type: 'Android', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'Android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + All: false, + GA: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + name: 'Viewed Main Screen1 by expicit call Screen', + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'screen', + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/RudderFbApp/activities`, + headers: {}, + params: {}, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: { + extinfo: + '["a2","","","","8.1.0","Redmi 6","","","Banglalink",0,100,"50.00",0,0,0,""]', + custom_events: + '[{"_logTime":1567333011693,"_eventName":"Viewed Screen","fb_description":"Viewed Main Screen1 by expicit call Screen"}]', + 'ud[em]': '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + advertiser_tracking_enabled: '0', + application_tracking_enabled: '0', + event: 'CUSTOM_APP_EVENTS', + }, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + advertisingId: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + type: 'Android', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + firstName: 'test', + lastName: 'last', + gender: 'Male', + phone: '919831311135', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + All: false, + GA: true, + }, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + currency: 'GBP', + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + products: [ + { + product_id: '123', + }, + { + product_id: '345', + }, + { + product_id: '567', + }, + ], + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, + lifetime_gem_balance: 0, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + }, + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/RudderFbApp/activities`, + headers: {}, + params: {}, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: { + extinfo: + '["a2","","","","8.1.0","Redmi 6","","","Banglalink",0,100,"50.00",0,0,0,""]', + custom_events: + '[{"_logTime":1567333011693,"_eventName":"spin_result","_valueToSum":400,"fb_currency":"GBP","additional_bet_index":0,"battle_id":"N/A","bet_amount":9,"bet_level":1,"bet_multiplier":1,"coin_balance":9466052,"current_module_name":"CasinoGameModule","days_in_game":0,"extra_param":"N/A","fb_profile":"0","featureGameType":"N/A","game_fps":30,"game_id":"fireEagleBase","game_name":"FireEagleSlots","gem_balance":0,"graphicsQuality":"HD","idfa":"2bf99787-33d2-4ae2-a76a-c49672f97252","internetReachability":"ReachableViaLocalAreaNetwork","isLowEndDevice":"False","is_auto_spin":"False","is_turbo":"False","isf":"False","ishighroller":"False","jackpot_win_amount":90,"jackpot_win_type":"Silver","level":6,"lifetime_gem_balance":0,"no_of_spin":1,"player_total_battles":0,"player_total_shields":0,"start_date":"2019-08-01","total_payments":0,"tournament_id":"T1561970819","userId":"c82cbdff-e5be-4009-ac78-cdeea09ab4b1","versionSessionCount":2,"win_amount":0,"fb_content_id":["123","345","567"]}]', + app_user_id: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + advertiser_id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + 'ud[em]': '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + 'ud[fn]': '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', + 'ud[ln]': '3547cb112ac4489af2310c0626cdba6f3097a2ad5a3b42ddd3b59c76c7a079a3', + 'ud[ph]': '588211a01b10feacbf7988d97a06e86c18af5259a7f457fd8759b7f7409a7d1f', + 'ud[ge]': '62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a', + advertiser_tracking_enabled: '0', + application_tracking_enabled: '0', + event: 'CUSTOM_APP_EVENTS', + }, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + advertisingId: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + type: 'Android', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + firstName: 'test', + lastName: 'last', + gender: 'Male', + phone: '+0091-9831311135', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + All: false, + GA: true, + }, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + currency: 'GBP', + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + products: [ + { + product_id: '123', + }, + { + product_id: '345', + }, + { + product_id: '567', + }, + ], + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, + lifetime_gem_balance: 0, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + }, + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/RudderFbApp/activities`, + headers: {}, + params: {}, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: { + extinfo: + '["a2","","","","8.1.0","Redmi 6","","","Banglalink",0,100,"50.00",0,0,0,""]', + custom_events: + '[{"_logTime":1567333011693,"_eventName":"spin_result","_valueToSum":400,"fb_currency":"GBP","additional_bet_index":0,"battle_id":"N/A","bet_amount":9,"bet_level":1,"bet_multiplier":1,"coin_balance":9466052,"current_module_name":"CasinoGameModule","days_in_game":0,"extra_param":"N/A","fb_profile":"0","featureGameType":"N/A","game_fps":30,"game_id":"fireEagleBase","game_name":"FireEagleSlots","gem_balance":0,"graphicsQuality":"HD","idfa":"2bf99787-33d2-4ae2-a76a-c49672f97252","internetReachability":"ReachableViaLocalAreaNetwork","isLowEndDevice":"False","is_auto_spin":"False","is_turbo":"False","isf":"False","ishighroller":"False","jackpot_win_amount":90,"jackpot_win_type":"Silver","level":6,"lifetime_gem_balance":0,"no_of_spin":1,"player_total_battles":0,"player_total_shields":0,"start_date":"2019-08-01","total_payments":0,"tournament_id":"T1561970819","userId":"c82cbdff-e5be-4009-ac78-cdeea09ab4b1","versionSessionCount":2,"win_amount":0,"fb_content_id":["123","345","567"]}]', + app_user_id: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + advertiser_id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + 'ud[em]': '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + 'ud[fn]': '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', + 'ud[ln]': '3547cb112ac4489af2310c0626cdba6f3097a2ad5a3b42ddd3b59c76c7a079a3', + 'ud[ph]': '588211a01b10feacbf7988d97a06e86c18af5259a7f457fd8759b7f7409a7d1f', + 'ud[ge]': '62c66a7a5dd70c3146618063c344e531e6d4b59e379808443ce962b3abd63c5a', + advertiser_tracking_enabled: '0', + application_tracking_enabled: '0', + event: 'CUSTOM_APP_EVENTS', + }, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + type: 'watchos', + }, + network: { + carrier: 'Banglalink', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + All: false, + GA: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + name: 'Viewed Main Screen1 by expicit call Screen', + }, + request_ip: '2.3.4.5', + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'screen', + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/RudderFbApp/activities`, + headers: { + 'x-forwarded-for': '2.3.4.5', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + extinfo: '["i2","","","","","","","","Banglalink",0,100,"50.00",0,0,0,""]', + custom_events: + '[{"_logTime":1567333011693,"_eventName":"Viewed Screen","fb_description":"Viewed Main Screen1 by expicit call Screen"}]', + 'ud[em]': '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + advertiser_tracking_enabled: '0', + application_tracking_enabled: '0', + event: 'CUSTOM_APP_EVENTS', + }, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + advertisingId: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + firstName: 'test', + lastName: 'last', + gender: 'Male', + phone: '919831311135', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + All: false, + GA: true, + }, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + currency: 'GBP', + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + products: [ + { + product_id: '123', + }, + { + product_id: '345', + }, + { + product_id: '567', + }, + ], + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, + lifetime_gem_balance: 0, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + }, + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Extended device information i.e, "context.device.type" is required', + statTags: { + destType: 'FB', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'fb', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + type: 'Android', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + All: false, + GA: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 0, + currency: 'INR', + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + products: [ + { + product_id: '123', + }, + { + product_id: '345', + }, + ], + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, + lifetime_gem_balance: 0, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + }, + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: `https://graph.facebook.com/${VERSION}/RudderFbApp/activities`, + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + extinfo: + '["a2","","","","8.1.0","Redmi 6","","","Banglalink",0,100,"50.00",0,0,0,""]', + custom_events: + '[{"_logTime":1567333011693,"_eventName":"spin_result","_valueToSum":0,"fb_currency":"INR","additional_bet_index":0,"battle_id":"N/A","bet_amount":9,"bet_level":1,"bet_multiplier":1,"coin_balance":9466052,"current_module_name":"CasinoGameModule","days_in_game":0,"extra_param":"N/A","fb_profile":"0","featureGameType":"N/A","game_fps":30,"game_id":"fireEagleBase","game_name":"FireEagleSlots","gem_balance":0,"graphicsQuality":"HD","idfa":"2bf99787-33d2-4ae2-a76a-c49672f97252","internetReachability":"ReachableViaLocalAreaNetwork","isLowEndDevice":"False","is_auto_spin":"False","is_turbo":"False","isf":"False","ishighroller":"False","jackpot_win_amount":90,"jackpot_win_type":"Silver","level":6,"lifetime_gem_balance":0,"no_of_spin":1,"player_total_battles":0,"player_total_shields":0,"start_date":"2019-08-01","total_payments":0,"tournament_id":"T1561970819","userId":"c82cbdff-e5be-4009-ac78-cdeea09ab4b1","versionSessionCount":2,"win_amount":0,"fb_content_id":["123","345"]}]', + 'ud[em]': '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + advertiser_tracking_enabled: '0', + application_tracking_enabled: '0', + event: 'CUSTOM_APP_EVENTS', + }, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/fb/router/data.ts b/test/integrations/destinations/fb/router/data.ts new file mode 100644 index 00000000000..4daefad1414 --- /dev/null +++ b/test/integrations/destinations/fb/router/data.ts @@ -0,0 +1,317 @@ +export const data = [ + { + name: 'fb', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + type: 'Android', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + All: false, + GA: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + products: [ + { + product_id: 123, + }, + { + product_id: 345, + }, + { + product_id: 567, + }, + ], + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, + lifetime_gem_balance: 0, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + }, + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + destination_props: { + Fb: { + app_id: 'RudderFbApp', + }, + }, + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + type: 'Android', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + screen: { + height: '100', + density: 50, + }, + traits: { + email: 'abc@gmail.com', + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + All: false, + GA: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + revenue: 400, + currency: 'GBP', + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + products: [ + { + product_id: 123, + }, + { + product_id: 345, + }, + { + product_id: 567, + }, + ], + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, + lifetime_gem_balance: 0, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + }, + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + }, + ], + destType: 'fb', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + metadata: [ + { + jobId: 2, + }, + ], + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'FB', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + batched: false, + statusCode: 400, + error: 'If properties.revenue is present, properties.currency is required.', + }, + { + metadata: [ + { + jobId: 2, + }, + ], + destination: { + Config: { + appID: 'RudderFbApp', + }, + }, + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'FB', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + batched: false, + statusCode: 400, + error: + 'Value of properties.products.sub.product_id is not of valid type. It should be of type string', + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/fb_custom_audience/dataDelivery/data.ts b/test/integrations/destinations/fb_custom_audience/dataDelivery/data.ts new file mode 100644 index 00000000000..3066dae8879 --- /dev/null +++ b/test/integrations/destinations/fb_custom_audience/dataDelivery/data.ts @@ -0,0 +1,575 @@ +import { getEndPoint } from '../../../../../src/v0/destinations/fb_custom_audience/config'; + +export const data = [ + { + name: 'fb_custom_audience', + description: 'successfully adding users to audience', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'successResponse', + }, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'f', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: { + status: 200, + message: 'Request Processed Successfully', + destinationResponse: { + audience_id: 'aud1', + invalid_entry_samples: {}, + num_invalid_entries: 0, + num_received: 4, + session_id: '123', + }, + }, + }, + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'user addition failed due to missing permission', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'permissionMissingError', + }, + params: { + access_token: 'BCD', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + ['2', '13', '2013', '@09432457768', 'f', 'Ms.', 'ABC', 'ZIP ', '123abc ', 'IN'], + ], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + }, + }, + output: { + response: { + status: 400, + body: { + output: { + destinationResponse: { + error: { + code: 294, + message: + 'Missing permission. Please make sure you have ads_management permission and the application is included in the allowlist', + type: 'GraphMethodException', + }, + status: 400, + }, + message: + 'Missing permission. Please make sure you have ads_management permission and the application is included in the allowlist', + statTags: { + destType: 'FB_CUSTOM_AUDIENCE', + destinationId: 'Non-determininable', + errorCategory: 'network', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + workspaceId: 'Non-determininable', + }, + status: 400, + }, + }, + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'user addition failed due to unavailable audience error', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'audienceUnavailableError', + }, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: ['DOBY', 'PHONE', 'GEN', 'FI', 'MADID', 'ZIP', 'ST', 'COUNTRY'], + data: [['2013', '@09432457768', 'f', 'Ms.', 'ABC', 'ZIP ', '123abc ', 'IN']], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + }, + }, + output: { + response: { + status: 400, + body: { + output: { + destinationResponse: { + error: { + code: 1487301, + message: + 'Custom Audience Unavailable: The custom audience you are trying to use has not been shared with your ad account', + type: 'GraphMethodException', + }, + status: 400, + }, + message: + 'Custom Audience Unavailable: The custom audience you are trying to use has not been shared with your ad account', + statTags: { + destType: 'FB_CUSTOM_AUDIENCE', + destinationId: 'Non-determininable', + errorCategory: 'network', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + workspaceId: 'Non-determininable', + }, + status: 400, + }, + }, + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'user addition failed because the custom audience has been deleted', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'audienceDeletedError', + }, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: ['DOBY', 'PHONE', 'GEN', 'FI', 'MADID', 'ZIP', 'ST', 'COUNTRY'], + data: [['2013', '@09432457768', 'f', 'Ms.', 'ABC', 'ZIP ', '123abc ', 'IN']], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + }, + }, + output: { + response: { + status: 400, + body: { + output: { + destinationResponse: { + error: { + code: 1487366, + message: 'Custom Audience Has Been Deleted', + type: 'GraphMethodException', + }, + status: 400, + }, + message: 'Custom Audience Has Been Deleted', + statTags: { + destType: 'FB_CUSTOM_AUDIENCE', + destinationId: 'Non-determininable', + errorCategory: 'network', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + workspaceId: 'Non-determininable', + }, + status: 400, + }, + }, + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'Failed to update the custom audience for unknown reason', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'failedToUpdateAudienceError', + }, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: ['DOBY', 'PHONE', 'GEN', 'FI', 'MADID', 'ZIP', 'ST', 'COUNTRY'], + data: [['2013', '@09432457768', 'f', 'Ms.', 'ABC', 'ZIP ', '123abc ', 'IN']], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + }, + }, + output: { + response: { + status: 400, + body: { + output: { + destinationResponse: { + error: { + code: 2650, + message: 'Failed to update the custom audience', + type: 'GraphMethodException', + }, + status: 400, + }, + message: 'Failed to update the custom audience', + statTags: { + destType: 'FB_CUSTOM_AUDIENCE', + destinationId: 'Non-determininable', + errorCategory: 'network', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + workspaceId: 'Non-determininable', + }, + status: 400, + }, + }, + }, + }, + }, + { + name: 'fb_custom_audience', + description: + 'Failed to update the custom audience as excessive number of parameters were passed in the request', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'parameterExceededError', + }, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: ['DOBY', 'PHONE', 'GEN', 'FI', 'MADID', 'ZIP', 'ST', 'COUNTRY'], + data: [['2013', '@09432457768', 'f', 'Ms.', 'ABC', 'ZIP ', '123abc ', 'IN']], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + }, + }, + output: { + response: { + status: 400, + body: { + output: { + destinationResponse: { + error: { + code: 105, + message: 'The number of parameters exceeded the maximum for this operation', + type: 'GraphMethodException', + }, + status: 400, + }, + message: 'The number of parameters exceeded the maximum for this operation', + statTags: { + destType: 'FB_CUSTOM_AUDIENCE', + destinationId: 'Non-determininable', + errorCategory: 'network', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + workspaceId: 'Non-determininable', + }, + status: 400, + }, + }, + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'user update request is throttled due to too many calls to the ad account', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'tooManyCallsError', + }, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: ['DOBY', 'PHONE', 'GEN', 'FI', 'MADID', 'ZIP', 'ST', 'COUNTRY'], + data: [['2013', '@09432457768', 'f', 'Ms.', 'ABC', 'ZIP ', '123abc ', 'IN']], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + }, + }, + output: { + response: { + status: 429, + body: { + output: { + destinationResponse: { + error: { + code: 80003, + message: 'There have been too many calls to this ad-account.', + type: 'GraphMethodException', + }, + status: 429, + }, + message: 'There have been too many calls to this ad-account.', + statTags: { + destType: 'FB_CUSTOM_AUDIENCE', + destinationId: 'Non-determininable', + errorCategory: 'network', + errorType: 'throttled', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + workspaceId: 'Non-determininable', + }, + status: 429, + }, + }, + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'user having permission issue while updating audience', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'code200PermissionError', + }, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: ['DOBY', 'PHONE', 'GEN', 'FI', 'MADID', 'ZIP', 'ST', 'COUNTRY'], + data: [['2013', '@09432457768', 'f', 'Ms.', 'ABC', 'ZIP ', '123abc ', 'IN']], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + }, + }, + output: { + response: { + status: 403, + body: { + output: { + destinationResponse: { + error: { + code: 200, + fbtrace_id: 'AFfWqjY-_y2Q92DsyJ4DQ6f', + message: '(#200) The current user can not update audience 23861283180290489', + type: 'OAuthException', + }, + status: 403, + }, + message: '(#200) The current user can not update audience 23861283180290489', + statTags: { + destType: 'FB_CUSTOM_AUDIENCE', + destinationId: 'Non-determininable', + errorCategory: 'network', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + workspaceId: 'Non-determininable', + }, + status: 403, + }, + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/fb_custom_audience/network.ts b/test/integrations/destinations/fb_custom_audience/network.ts new file mode 100644 index 00000000000..bbdc1ffc28c --- /dev/null +++ b/test/integrations/destinations/fb_custom_audience/network.ts @@ -0,0 +1,483 @@ +import { getEndPoint } from '../../../../src/v0/destinations/fb_custom_audience/config'; + +export const networkCallsData = [ + { + httpReq: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'successResponse', + }, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'f', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + httpRes: { + data: { + audience_id: 'aud1', + session_id: '123', + num_received: 4, + num_invalid_entries: 0, + invalid_entry_samples: {}, + }, + status: 200, + }, + }, + { + httpReq: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'permissionMissingError', + }, + params: { + access_token: 'BCD', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: ['DOBM', 'DOBD', 'DOBY', 'PHONE', 'GEN', 'FI', 'MADID', 'ZIP', 'ST', 'COUNTRY'], + data: [['2', '13', '2013', '@09432457768', 'f', 'Ms.', 'ABC', 'ZIP ', '123abc ', 'IN']], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + httpRes: { + data: { + error: { + code: 294, + message: + 'Missing permission. Please make sure you have ads_management permission and the application is included in the allowlist', + type: 'GraphMethodException', + }, + }, + status: 400, + }, + }, + { + httpReq: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'audienceUnavailableError', + }, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: ['DOBY', 'PHONE', 'GEN', 'FI', 'MADID', 'ZIP', 'ST', 'COUNTRY'], + data: [['2013', '@09432457768', 'f', 'Ms.', 'ABC', 'ZIP ', '123abc ', 'IN']], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + httpRes: { + data: { + error: { + code: 1487301, + message: + 'Custom Audience Unavailable: The custom audience you are trying to use has not been shared with your ad account', + type: 'GraphMethodException', + }, + }, + status: 400, + }, + }, + { + httpReq: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'audienceDeletedError', + }, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'f', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + httpRes: { + data: { + error: { + code: 1487366, + message: 'Custom Audience Has Been Deleted', + type: 'GraphMethodException', + }, + }, + status: 400, + }, + }, + { + httpReq: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'failedToUpdateAudienceError', + }, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'f', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + httpRes: { + data: { + error: { + code: 2650, + message: 'Failed to update the custom audience', + type: 'GraphMethodException', + }, + }, + status: 400, + }, + }, + { + httpReq: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'parameterExceededError', + }, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'f', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + httpRes: { + data: { + error: { + code: 105, + message: 'The number of parameters exceeded the maximum for this operation', + type: 'GraphMethodException', + }, + }, + status: 400, + }, + }, + { + httpReq: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'tooManyCallsError', + }, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'f', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + httpRes: { + data: { + error: { + code: 80003, + message: 'There have been too many calls to this ad-account.', + type: 'GraphMethodException', + }, + }, + status: 429, + }, + }, + { + httpReq: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: { + 'test-dest-response-key': 'code200PermissionError', + }, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'f', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + httpRes: { + data: { + error: { + code: 200, + fbtrace_id: 'AFfWqjY-_y2Q92DsyJ4DQ6f', + message: '(#200) The current user can not update audience 23861283180290489', + type: 'OAuthException', + }, + }, + status: 403, + }, + }, +]; diff --git a/test/integrations/destinations/fb_custom_audience/processor/data.ts b/test/integrations/destinations/fb_custom_audience/processor/data.ts new file mode 100644 index 00000000000..4f892f6fef4 --- /dev/null +++ b/test/integrations/destinations/fb_custom_audience/processor/data.ts @@ -0,0 +1,54422 @@ +import { getEndPoint } from '../../../../../src/v0/destinations/fb_custom_audience/config'; + +export const data = [ + { + name: 'fb_custom_audience', + description: 'No Message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + properties: { + listData: { + add: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + remove: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: false, + disableFormat: false, + audienceId: 'aud1', + isRaw: true, + type: 'UNKNOWN', + subType: 'ANYTHING', + maxUserCount: '50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Message Type is not present. Aborting message.', + statTags: { + destType: 'FB_CUSTOM_AUDIENCE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'Unsupported Event type ', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + type: 'Track', + event: 'event1', + properties: { + listData: { + add: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + remove: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: false, + disableFormat: false, + audienceId: 'aud1', + isRaw: true, + type: 'UNKNOWN', + subType: 'ANYTHING', + maxUserCount: '50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: ' Track call is not supported ', + statTags: { + destType: 'FB_CUSTOM_AUDIENCE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'Non-Numerical Batch Size Event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + type: 'audiencelist', + event: 'event1', + properties: { + listData: { + add: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + remove: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: false, + disableFormat: false, + audienceId: 'aud1', + isRaw: true, + type: 'UNKNOWN', + subType: 'ANYTHING', + maxUserCount: 'abc50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Batch size must be an Integer.', + statTags: { + destType: 'FB_CUSTOM_AUDIENCE', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'Audience ID Empty Event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + type: 'audiencelist', + event: 'event1', + properties: { + listData: { + add: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + remove: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: false, + disableFormat: false, + audienceId: '', + isRaw: true, + type: 'UNKNOWN', + subType: 'ANYTHING', + maxUserCount: '50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Audience ID is a mandatory field', + statTags: { + destType: 'FB_CUSTOM_AUDIENCE', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'Type NA ', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + remove: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: false, + disableFormat: false, + audienceId: 'aud1', + isRaw: true, + type: 'NA', + subType: 'ANYTHING', + maxUserCount: '50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'f', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'f', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'No Hashing and Format Disabled', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + remove: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: false, + disableFormat: true, + audienceId: 'aud1', + isRaw: true, + type: 'NA', + subType: 'ANYTHING', + maxUserCount: '50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + userId: '', + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'For User Schema having single Schema field Event ', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + remove: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + accessToken: 'ABC', + userSchema: 'DOBM', + isHashRequired: false, + disableFormat: false, + audienceId: 'aud1', + isRaw: true, + type: 'UNKNOWN', + subType: 'ANYTHING', + maxUserCount: '50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + userId: '', + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + type: 'UNKNOWN', + sub_type: 'ANYTHING', + }, + schema: ['DOBM'], + data: [['2']], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + { + output: { + userId: '', + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + type: 'UNKNOWN', + sub_type: 'ANYTHING', + }, + schema: ['DOBM'], + data: [['2']], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'Hashing Disabaled and Type Unknown ', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + remove: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: false, + disableFormat: false, + audienceId: 'aud1', + isRaw: true, + type: 'UNKNOWN', + subType: 'ANYTHING', + maxUserCount: '50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + type: 'UNKNOWN', + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'f', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + type: 'UNKNOWN', + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'f', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'Required Hash', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + remove: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: true, + disableFormat: false, + audienceId: 'aud1', + isRaw: true, + type: 'NA', + subType: 'ANYTHING', + maxUserCount: '50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: {}, + userId: '', + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + '85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05', + 'a953f09a1b6b6725b81956e9ad0b1eb49e3ad40004c04307ef8af6246a054116', + '3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278', + '7931aa2a1bed855457d1ddf6bc06ab4406a9fba0579045a4d6ff78f9c07c440f', + '0dcd4be87427e008a16adbdc2b2c15a14accf485dd451314dcecfb902c51c686', + '252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111', + 'db0683221aebc02cc034b65ebcf7d1bddd1eb199e33fd23a31931947d13a11bc', + 'abc', + '4a70fe9aa6436e02c2dea340fbd1e352e4ef2d8ce6ca52ad25d4b95471fc8bf2', + 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad', + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + ], + ], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + '85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05', + 'a953f09a1b6b6725b81956e9ad0b1eb49e3ad40004c04307ef8af6246a054116', + '3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278', + '7931aa2a1bed855457d1ddf6bc06ab4406a9fba0579045a4d6ff78f9c07c440f', + '0dcd4be87427e008a16adbdc2b2c15a14accf485dd451314dcecfb902c51c686', + '252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111', + 'db0683221aebc02cc034b65ebcf7d1bddd1eb199e33fd23a31931947d13a11bc', + 'abc', + '4a70fe9aa6436e02c2dea340fbd1e352e4ef2d8ce6ca52ad25d4b95471fc8bf2', + 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad', + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'Format Disabled', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + remove: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: true, + disableFormat: true, + audienceId: 'aud1', + isRaw: true, + type: 'NA', + subType: 'ANYTHING', + maxUserCount: '50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + '85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05', + 'd4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35', + '3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278', + '7931aa2a1bed855457d1ddf6bc06ab4406a9fba0579045a4d6ff78f9c07c440f', + '3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22', + '252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111', + '7cfb46258a6f545f77cca49a27ded0bc69a56e16d0dcdf05ec843c0cc322145d', + 'ABC', + '69deb728a28faee80ee80d8d5f97a5e2fd65758684f7412e535d19a19095369b', + '1dc362d22242a898483383061a98f0b41d725190f7bc00a962b6013b36dc2b81', + 'fed1d872f6d540f4118582ec694270274e987b12f5dfe2057dddf1e12df2761a', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + '85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05', + 'd4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35', + '3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278', + '7931aa2a1bed855457d1ddf6bc06ab4406a9fba0579045a4d6ff78f9c07c440f', + '3c98400cbfaf690bf3601f538def8ff16f3b3bcd075b028fa28aa44ca09fec22', + '252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111', + '7cfb46258a6f545f77cca49a27ded0bc69a56e16d0dcdf05ec843c0cc322145d', + 'ABC', + '69deb728a28faee80ee80d8d5f97a5e2fd65758684f7412e535d19a19095369b', + '1dc362d22242a898483383061a98f0b41d725190f7bc00a962b6013b36dc2b81', + 'fed1d872f6d540f4118582ec694270274e987b12f5dfe2057dddf1e12df2761a', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'No Hashing and Format Disabled', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + remove: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: false, + disableFormat: true, + audienceId: 'aud1', + isRaw: true, + type: 'NA', + subType: 'ANYTHING', + maxUserCount: '50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: {}, + userId: '', + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + userId: '', + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'Hash Required and Verify skipped', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: null, + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: true, + disableFormat: false, + skipVerify: true, + audienceId: 'aud1', + isRaw: true, + type: 'UNKNOWN', + subType: 'ANYTHING', + maxUserCount: '50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + userId: '', + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + type: 'UNKNOWN', + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + '85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05', + 'a953f09a1b6b6725b81956e9ad0b1eb49e3ad40004c04307ef8af6246a054116', + '3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278', + '7931aa2a1bed855457d1ddf6bc06ab4406a9fba0579045a4d6ff78f9c07c440f', + null, + '252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111', + 'db0683221aebc02cc034b65ebcf7d1bddd1eb199e33fd23a31931947d13a11bc', + 'abc', + '4a70fe9aa6436e02c2dea340fbd1e352e4ef2d8ce6ca52ad25d4b95471fc8bf2', + 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad', + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + ], + ], + }, + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'All the field values are null', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL: null, + DOBM: null, + DOBD: null, + DOBY: null, + PHONE: null, + GEN: null, + FI: null, + MADID: null, + ZIP: null, + ST: null, + COUNTRY: null, + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: true, + disableFormat: false, + audienceId: 'aud1', + isRaw: true, + type: 'UNKNOWN', + subType: 'ANYTHING', + maxUserCount: '50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + userId: '', + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + type: 'UNKNOWN', + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [[null, null, null, null, null, null, null, null, null, null, null]], + }, + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'Schema Phone Field Missing', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: null, + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: true, + disableFormat: false, + skipVerify: false, + audienceId: 'aud1', + isRaw: false, + type: 'UNKNOWN', + subType: 'ANYTHING', + maxUserCount: '50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + data_source: { + type: 'UNKNOWN', + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + '85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05', + 'a953f09a1b6b6725b81956e9ad0b1eb49e3ad40004c04307ef8af6246a054116', + '3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278', + '7931aa2a1bed855457d1ddf6bc06ab4406a9fba0579045a4d6ff78f9c07c440f', + null, + '252f10c83610ebca1a059c0bae8255eba2f95be4d1d7bcfa89d7248a82d9f111', + 'db0683221aebc02cc034b65ebcf7d1bddd1eb199e33fd23a31931947d13a11bc', + 'abc', + '4a70fe9aa6436e02c2dea340fbd1e352e4ef2d8ce6ca52ad25d4b95471fc8bf2', + 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad', + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'Batching according payload size', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: false, + disableFormat: true, + audienceId: 'aud1', + isRaw: true, + type: 'NA', + subType: 'ANYTHING', + maxUserCount: '1000', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + userId: '', + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/fb_custom_audience/router/data.ts b/test/integrations/destinations/fb_custom_audience/router/data.ts new file mode 100644 index 00000000000..efefb80a895 --- /dev/null +++ b/test/integrations/destinations/fb_custom_audience/router/data.ts @@ -0,0 +1,53021 @@ +import { getEndPoint } from '../../../../../src/v0/destinations/fb_custom_audience/config'; + +export const data = [ + { + name: 'fb_custom_audience', + description: 'eventStream tests', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + remove: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 1, + }, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: false, + disableFormat: false, + audienceId: 'aud1', + isRaw: true, + type: 'UNKNOWN', + subType: 'ANYTHING', + maxUserCount: '50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + remove: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'f', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: false, + disableFormat: false, + audienceId: 'aud1', + isRaw: true, + type: 'NA', + subType: 'ANYTHING', + maxUserCount: '50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + destType: 'fb_custom_audience', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + type: 'UNKNOWN', + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'f', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + type: 'UNKNOWN', + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'f', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: false, + disableFormat: false, + audienceId: 'aud1', + isRaw: true, + type: 'UNKNOWN', + subType: 'ANYTHING', + maxUserCount: '50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'f', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + data_source: { + sub_type: 'ANYTHING', + }, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'f', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + accessToken: 'ABC', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + isHashRequired: false, + disableFormat: false, + audienceId: 'aud1', + isRaw: true, + type: 'NA', + subType: 'ANYTHING', + maxUserCount: '50', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + }, + }, + { + name: 'fb_custom_audience', + description: 'rETL tests', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + sentAt: '2023-03-30 06:42:55.991938402 +0000 UTC', + userId: '2MUWghI7u85n91dd1qzGyswpZan-2MUWqbQqvctyfMGqU9QCNadpKNy', + channel: 'sources', + messageId: '4d906837-031d-4d34-b97a-62fdf51b4d3a', + event: 'Add_Audience', + context: { + destinationFields: 'EMAIL, FN', + externalId: [ + { + type: 'FB_CUSTOM_AUDIENCE-23848494844100489', + identifierType: 'EMAIL', + }, + ], + mappedToDestination: 'true', + sources: { + job_run_id: 'cgiiurt8um7k7n5dq480', + task_run_id: 'cgiiurt8um7k7n5dq48g', + job_id: '2MUWghI7u85n91dd1qzGyswpZan', + version: '895/merge', + }, + }, + recordId: '725ad989-6750-4839-b46b-0ddb3b8e5aa2/1/10', + rudderId: '85c49666-c628-4835-937b-8f1d9ee7a724', + properties: { + listData: { + add: [ + { + EMAIL: 'dede@gmail.com', + FN: 'vishwa', + }, + { + EMAIL: 'fchsjjn@gmail.com', + FN: 'hskks', + }, + { + EMAIL: 'fghjnbjk@gmail.com', + FN: 'ghfry', + }, + { + EMAIL: 'gvhjkk@gmail.com', + FN: 'hbcwqe', + }, + { + EMAIL: 'qsdwert@egf.com', + FN: 'dsfds', + }, + { + EMAIL: 'ascscxsaca@com', + FN: 'scadscdvcda', + }, + { + EMAIL: 'abc@gmail.com', + FN: 'subscribed', + }, + { + EMAIL: 'ddwnkl@gmail.com', + FN: 'subscribed', + }, + { + EMAIL: 'subscribed@eewrfrd.com', + FN: 'pending', + }, + { + EMAIL: 'acsdvdf@ddfvf.com', + FN: 'pending', + }, + ], + }, + }, + type: 'audienceList', + anonymousId: '63228b51-394e-4ca2-97a0-427f6187480b', + }, + destination: { + Config: { + accessToken: 'ABC', + disableFormat: false, + isHashRequired: true, + isRaw: false, + maxUserCount: '50', + oneTrustCookieCategories: [], + skipVerify: false, + subType: 'NA', + type: 'NA', + userSchema: ['EMAIL'], + }, + secretConfig: {}, + ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', + name: 'FB_CUSTOM_AUDIENCE', + enabled: true, + workspaceId: '1TSN08muJTZwH8iCDmnnRt1pmLd', + deleted: false, + createdAt: '2020-12-30T08:39:32.005Z', + updatedAt: '2021-02-03T16:22:31.374Z', + destinationDefinition: { + id: '1aIXqM806xAVm92nx07YwKbRrO9', + name: 'FB_CUSTOM_AUDIENCE', + displayName: 'FB_CUSTOM_AUDIENCE', + createdAt: '2020-04-09T09:24:31.794Z', + updatedAt: '2021-01-11T11:03:28.103Z', + }, + transformations: [], + isConnectionEnabled: true, + isProcessorEnabled: true, + }, + metadata: { + jobId: 2, + }, + }, + { + message: { + sentAt: '2023-03-30 06:42:55.991938402 +0000 UTC', + userId: '2MUWghI7u85n91dd1qzGyswpZan-2MUWqbQqvctyfMGqU9QCNadpKNy', + channel: 'sources', + messageId: '4d906837-031d-4d34-b97a-62fdf51b4d3a', + event: 'Add_Audience', + context: { + externalId: [ + { + type: 'FB_CUSTOM_AUDIENCE-23848494844100489', + identifierType: 'EMAIL', + }, + ], + mappedToDestination: 'true', + sources: { + job_run_id: 'cgiiurt8um7k7n5dq480', + task_run_id: 'cgiiurt8um7k7n5dq48g', + job_id: '2MUWghI7u85n91dd1qzGyswpZan', + version: '895/merge', + }, + }, + recordId: '725ad989-6750-4839-b46b-0ddb3b8e5aa2/1/10', + rudderId: '85c49666-c628-4835-937b-8f1d9ee7a724', + properties: { + listData: { + add: [ + { + EMAIL: 'dede@gmail.com', + FN: 'vishwa', + }, + { + EMAIL: 'fchsjjn@gmail.com', + FN: 'hskks', + }, + { + EMAIL: 'fghjnbjk@gmail.com', + FN: 'ghfry', + }, + { + EMAIL: 'gvhjkk@gmail.com', + FN: 'hbcwqe', + }, + { + EMAIL: 'qsdwert@egf.com', + FN: 'dsfds', + }, + { + EMAIL: 'ascscxsaca@com', + FN: 'scadscdvcda', + }, + { + EMAIL: 'abc@gmail.com', + FN: 'subscribed', + }, + { + EMAIL: 'ddwnkl@gmail.com', + FN: 'subscribed', + }, + { + EMAIL: 'subscribed@eewrfrd.com', + FN: 'pending', + }, + { + EMAIL: 'acsdvdf@ddfvf.com', + FN: 'pending', + }, + ], + }, + }, + type: 'audienceList', + anonymousId: '63228b51-394e-4ca2-97a0-427f6187480b', + }, + destination: { + Config: { + accessToken: 'ABC', + disableFormat: false, + isHashRequired: true, + isRaw: false, + maxUserCount: '50', + oneTrustCookieCategories: [], + skipVerify: false, + subType: 'NA', + type: 'NA', + userSchema: ['EMAIL'], + }, + secretConfig: {}, + ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', + name: 'FB_CUSTOM_AUDIENCE', + enabled: true, + workspaceId: '1TSN08muJTZwH8iCDmnnRt1pmLd', + deleted: false, + createdAt: '2020-12-30T08:39:32.005Z', + updatedAt: '2021-02-03T16:22:31.374Z', + destinationDefinition: { + id: '1aIXqM806xAVm92nx07YwKbRrO9', + name: 'FB_CUSTOM_AUDIENCE', + displayName: 'FB_CUSTOM_AUDIENCE', + createdAt: '2020-04-09T09:24:31.794Z', + updatedAt: '2021-01-11T11:03:28.103Z', + }, + transformations: [], + isConnectionEnabled: true, + isProcessorEnabled: true, + }, + metadata: { + jobId: 2, + }, + }, + { + message: { + sentAt: '2023-03-30 06:42:55.991938402 +0000 UTC', + userId: '2MUWghI7u85n91dd1qzGyswpZan-2MUWqbQqvctyfMGqU9QCNadpKNy', + channel: 'sources', + messageId: '4d906837-031d-4d34-b97a-62fdf51b4d3a', + event: 'Add_Audience', + context: { + destinationFields: + 'EMAIL, DOBM, DOBD, DOBY, PHONE, GEN, FI, MADID, ZIP, ST, COUNTRY', + externalId: [ + { + type: 'FB_CUSTOM_AUDIENCE-aud1', + identifierType: 'EMAIL', + }, + ], + mappedToDestination: 'true', + sources: { + job_run_id: 'cgiiurt8um7k7n5dq480', + task_run_id: 'cgiiurt8um7k7n5dq48g', + job_id: '2MUWghI7u85n91dd1qzGyswpZan', + version: '895/merge', + }, + }, + recordId: '725ad989-6750-4839-b46b-0ddb3b8e5aa2/1/10', + rudderId: '85c49666-c628-4835-937b-8f1d9ee7a724', + properties: { + listData: { + add: [ + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + { + EMAIL: 'shrouti@abc.com', + DOBM: '2', + DOBD: '13', + DOBY: '2013', + PHONE: '@09432457768', + GEN: 'female', + FI: 'Ms.', + MADID: 'ABC', + ZIP: 'ZIP ', + ST: '123abc ', + COUNTRY: 'IN', + }, + ], + }, + }, + type: 'audienceList', + anonymousId: '63228b51-394e-4ca2-97a0-427f6187480b', + }, + destination: { + Config: { + accessToken: 'ABC', + disableFormat: false, + isHashRequired: false, + isRaw: true, + maxUserCount: '1000', + oneTrustCookieCategories: [], + skipVerify: false, + subType: 'NA', + type: 'NA', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + }, + secretConfig: {}, + ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', + name: 'FB_CUSTOM_AUDIENCE', + enabled: true, + workspaceId: '1TSN08muJTZwH8iCDmnnRt1pmLd', + deleted: false, + createdAt: '2020-12-30T08:39:32.005Z', + updatedAt: '2021-02-03T16:22:31.374Z', + destinationDefinition: { + id: '1aIXqM806xAVm92nx07YwKbRrO9', + name: 'FB_CUSTOM_AUDIENCE', + displayName: 'FB_CUSTOM_AUDIENCE', + createdAt: '2020-04-09T09:24:31.794Z', + updatedAt: '2021-01-11T11:03:28.103Z', + }, + transformations: [], + isConnectionEnabled: true, + isProcessorEnabled: true, + }, + metadata: { + jobId: 2, + }, + }, + ], + destType: 'fb_custom_audience', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('23848494844100489'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + schema: ['EMAIL', 'FN'], + data: [ + ['7625cab24612c37df6d2f724721bb38a25095d0295e29b807238ee188b8aca43', null], + ['b2b4abadd72190af54305c0d3abf1977fec4935016bb13ff28040d5712318dfd', null], + ['c4b007d1c3c9a5d31bd4082237a913e8e0db1767225c2a5ef33be2716df005fa', null], + ['94639be1bd9f17c05820164e9d71ef78558f117a9e8bfab43cf8015e08aa0b27', null], + ['39b456cfb4bb07f9e6bb18698aa173171ca49c731fccc4790e9ecea808d24ae6', null], + ['769f73387add781a481ca08300008a08fb2f1816aaed196137efc2e05976d711', null], + ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', null], + ['da2d431121cd10578fd81f8f80344b06db59ea2d05a7b5d27536c8789ddae8f0', null], + ['b100c2ec0718fe6b4805b623aeec6710719d042ceea55f5c8135b010ec1c7b36', null], + ['0c1d1b0ba547a742013366d6fbc8f71dd77f566d94e41ed9f828a74b96928161', null], + ], + }, + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + accessToken: 'ABC', + disableFormat: false, + isHashRequired: true, + isRaw: false, + maxUserCount: '50', + oneTrustCookieCategories: [], + skipVerify: false, + subType: 'NA', + type: 'NA', + userSchema: ['EMAIL'], + }, + secretConfig: {}, + ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', + name: 'FB_CUSTOM_AUDIENCE', + enabled: true, + workspaceId: '1TSN08muJTZwH8iCDmnnRt1pmLd', + deleted: false, + createdAt: '2020-12-30T08:39:32.005Z', + updatedAt: '2021-02-03T16:22:31.374Z', + destinationDefinition: { + id: '1aIXqM806xAVm92nx07YwKbRrO9', + name: 'FB_CUSTOM_AUDIENCE', + displayName: 'FB_CUSTOM_AUDIENCE', + createdAt: '2020-04-09T09:24:31.794Z', + updatedAt: '2021-01-11T11:03:28.103Z', + }, + transformations: [], + isConnectionEnabled: true, + isProcessorEnabled: true, + }, + }, + { + destination: { + Config: { + accessToken: 'ABC', + disableFormat: false, + isHashRequired: true, + isRaw: false, + maxUserCount: '50', + oneTrustCookieCategories: [], + skipVerify: false, + subType: 'NA', + type: 'NA', + userSchema: ['EMAIL'], + }, + secretConfig: {}, + ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', + name: 'FB_CUSTOM_AUDIENCE', + enabled: true, + workspaceId: '1TSN08muJTZwH8iCDmnnRt1pmLd', + deleted: false, + createdAt: '2020-12-30T08:39:32.005Z', + updatedAt: '2021-02-03T16:22:31.374Z', + destinationDefinition: { + id: '1aIXqM806xAVm92nx07YwKbRrO9', + name: 'FB_CUSTOM_AUDIENCE', + displayName: 'FB_CUSTOM_AUDIENCE', + createdAt: '2020-04-09T09:24:31.794Z', + updatedAt: '2021-01-11T11:03:28.103Z', + }, + transformations: [], + isConnectionEnabled: true, + isProcessorEnabled: true, + }, + error: + 'context.destinationFields is required property for events mapped to destination ', + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 400, + statTags: { + destType: 'FB_CUSTOM_AUDIENCE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: getEndPoint('aud1'), + headers: {}, + params: { + access_token: 'ABC', + payload: { + is_raw: true, + schema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + data: [ + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + [ + 'shrouti@abc.com', + '2', + '13', + '2013', + '@09432457768', + 'female', + 'Ms.', + 'ABC', + 'ZIP ', + '123abc ', + 'IN', + ], + ], + }, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + accessToken: 'ABC', + disableFormat: false, + isHashRequired: false, + isRaw: true, + maxUserCount: '1000', + oneTrustCookieCategories: [], + skipVerify: false, + subType: 'NA', + type: 'NA', + userSchema: [ + 'EMAIL', + 'DOBM', + 'DOBD', + 'DOBY', + 'PHONE', + 'GEN', + 'FI', + 'MADID', + 'ZIP', + 'ST', + 'COUNTRY', + ], + }, + secretConfig: {}, + ID: '1mMy5cqbtfuaKZv1IhVQKnBdVwe', + name: 'FB_CUSTOM_AUDIENCE', + enabled: true, + workspaceId: '1TSN08muJTZwH8iCDmnnRt1pmLd', + deleted: false, + createdAt: '2020-12-30T08:39:32.005Z', + updatedAt: '2021-02-03T16:22:31.374Z', + destinationDefinition: { + id: '1aIXqM806xAVm92nx07YwKbRrO9', + name: 'FB_CUSTOM_AUDIENCE', + displayName: 'FB_CUSTOM_AUDIENCE', + createdAt: '2020-04-09T09:24:31.794Z', + updatedAt: '2021-01-11T11:03:28.103Z', + }, + transformations: [], + isConnectionEnabled: true, + isProcessorEnabled: true, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/firehose/processor/data.ts b/test/integrations/destinations/firehose/processor/data.ts new file mode 100644 index 00000000000..0fad78ccc5c --- /dev/null +++ b/test/integrations/destinations/firehose/processor/data.ts @@ -0,0 +1,877 @@ +export const data = [ + { + name: 'firehose', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + region: 'us-east-1', + accessKeyID: 'abc', + accessKey: 'xyz', + mapEvents: [ + { + from: 'track', + to: 'ruchira-test-firehose', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { email: 'ruchira@rudderlabs.com' }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { density: 2 }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + userId: '00000000000000000000000000', + deliveryStreamMapTo: 'ruchira-test-firehose', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'firehose', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + region: 'us-east-1', + accessKeyID: 'abc', + accessKey: 'xyz', + mapEvents: [ + { + from: 'product added', + to: 'ruchira-test-firehose', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { email: 'ruchira@rudderlabs.com' }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { density: 2 }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + userId: '00000000000000000000000000', + deliveryStreamMapTo: 'ruchira-test-firehose', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'firehose', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + region: 'us-east-1', + accessKeyID: 'abc', + accessKey: 'xyz', + mapEvents: [ + { + from: '*', + to: 'ruchira-test-firehose', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { email: 'ruchira@rudderlabs.com' }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { density: 2 }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + userId: '00000000000000000000000000', + deliveryStreamMapTo: 'ruchira-test-firehose', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'firehose', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + region: 'us-east-1', + accessKeyID: 'abc', + accessKey: 'xyz', + mapEvents: [ + { + from: 'test event', + to: 'ruchira-test-firehose', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'No delivery stream set for this event', + statTags: { + destType: 'FIREHOSE', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'firehose', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + region: 'us-east-1', + accessKeyID: 'abc', + accessKey: 'xyz', + mapEvents: [ + { + from: '*', + to: 'ruchira-test-firehose', + }, + { + from: 'track', + to: 'ruchira-test-firehose-1', + }, + { + from: 'product added', + to: 'ruchira-test-firehose-2', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + userId: '00000000000000000000000000', + deliveryStreamMapTo: 'ruchira-test-firehose-2', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'firehose', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + region: 'us-east-1', + accessKeyID: 'abc', + accessKey: 'xyz', + mapEvents: [ + { + from: '*', + to: 'ruchira-test-firehose', + }, + { + from: 'track', + to: 'ruchira-test-firehose-1', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + userId: '00000000000000000000000000', + deliveryStreamMapTo: 'ruchira-test-firehose-1', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'firehose', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + region: 'us-east-1', + accessKeyID: 'abc', + accessKey: 'xyz', + mapEvents: [ + { + from: '*', + to: 'ruchira-test-firehose', + }, + { + from: 'product added', + to: 'ruchira-test-firehose-1', + }, + ], + }, + DestinationDefinition: { + DisplayName: 'firehose', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'FIREHOSE', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Braze', + Transformations: [], + }, + metadata: { + sourceType: 'metadata.sourceType', + destinationType: 'metadata.destinationType', + k8_namespace: 'metadata.namespace', + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + event: '', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationType: 'metadata.destinationType', + k8_namespace: 'metadata.namespace', + sourceType: 'metadata.sourceType', + }, + output: { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + event: '', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + userId: '00000000000000000000000000', + deliveryStreamMapTo: 'ruchira-test-firehose', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/fullstory/processor/data.ts b/test/integrations/destinations/fullstory/processor/data.ts new file mode 100644 index 00000000000..d206b4a84f0 --- /dev/null +++ b/test/integrations/destinations/fullstory/processor/data.ts @@ -0,0 +1,462 @@ +export const data = [ + { + name: 'fullstory', + description: 'Complete track event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '78c53c15-32a1-4b65-adac-bec2d7bb8fab', + channel: 'web', + context: { + app: { + name: 'RSPM', + version: '1.9.0', + }, + campaign: { + name: 'sales campaign', + source: 'google', + medium: 'medium', + term: 'event data', + content: 'Make sense of the modern data stack', + }, + ip: '192.0.2.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '2.9.1', + }, + locale: 'en-US', + device: { + manufacturer: 'Nokia', + model: 'N2023', + }, + page: { + path: '/best-seller/1', + initial_referrer: 'https://www.google.com/search', + initial_referring_domain: 'google.com', + referrer: 'https://www.google.com/search?q=estore+bestseller', + referring_domain: 'google.com', + search: 'estore bestseller', + title: 'The best sellers offered by EStore', + url: 'https://www.estore.com/best-seller/1', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + innerHeight: 200, + innerWidth: 100, + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + }, + event: 'Product Reviewed', + integrations: { + All: true, + }, + messageId: '1578564113557-af022c68-429e-4af4-b99b-2b9174056383', + properties: { + userId: 'u001', + sessionId: 's001', + review_id: 'review_id_1', + product_id: 'product_id_1', + rating: 5, + review_body: 'Sample Review Body', + latitude: 44.56, + longitude: 54.46, + region: 'Atlas', + city: 'NY', + country: 'USA', + }, + originalTimestamp: '2020-01-09T10:01:53.558Z', + type: 'track', + sentAt: '2020-01-09T10:02:03.257Z', + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'Fullstory', + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'dummyfullstoryAPIKey', + }, + Enabled: true, + Transformations: [], + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + JSON: { + name: 'Product Reviewed', + properties: { + userId: 'u001', + sessionId: 's001', + review_id: 'review_id_1', + product_id: 'product_id_1', + rating: 5, + review_body: 'Sample Review Body', + latitude: 44.56, + longitude: 54.46, + region: 'Atlas', + city: 'NY', + country: 'USA', + }, + timestamp: '2020-01-09T10:01:53.558Z', + context: { + browser: { + url: 'https://www.estore.com/best-seller/1', + user_agent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + initial_referrer: 'https://www.google.com/search', + }, + mobile: { + app_name: 'RSPM', + app_version: '1.9.0', + }, + device: { + manufacturer: 'Nokia', + model: 'N2023', + }, + location: { + ip_address: '192.0.2.0', + latitude: 44.56, + longitude: 54.46, + city: 'NY', + region: 'Atlas', + country: 'USA', + }, + }, + session: { + id: 's001', + }, + user: { + id: 'u001', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.fullstory.com/v2/events', + headers: { + authorization: 'Basic dummyfullstoryAPIKey', + 'content-type': 'application/json', + }, + params: {}, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fullstory', + description: 'Missing event name', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + device: { + manufacturer: 'Nokia', + model: 'N2023', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', + }, + integrations: { + All: true, + }, + properties: { + userId: 'u001', + latitude: 44.56, + longitude: 54.46, + region: 'Atlas', + city: 'NY', + country: 'USA', + }, + originalTimestamp: '2020-01-09T10:01:53.558Z', + type: 'track', + sentAt: '2020-01-09T10:02:03.257Z', + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'Fullstory', + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'dummyfullstoryAPIKey', + }, + Enabled: true, + Transformations: [], + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + 'event is required for track call: Workflow: procWorkflow, Step: validateEventName, ChildStep: undefined, OriginalError: event is required for track call', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + implementation: 'cdkV2', + destType: 'FULLSTORY', + module: 'destination', + feature: 'processor', + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'fullstory', + description: 'Complete identify event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'dummy-user001', + channel: 'web', + context: { + traits: { + company: 'Initech', + address: { + country: 'USA', + state: 'CA', + street: '101 dummy street', + }, + email: 'dummyuser@domain.com', + name: 'dummy user', + phone: '099-999-9999', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', + }, + integrations: { + All: true, + }, + originalTimestamp: '2020-01-27T12:20:55.301Z', + receivedAt: '2020-01-27T17:50:58.657+05:30', + request_ip: '14.98.244.60', + sentAt: '2020-01-27T12:20:56.849Z', + timestamp: '2020-01-27T17:50:57.109+05:30', + type: 'identify', + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'Fullstory', + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'fullstoryAPIKey', + }, + Enabled: true, + Transformations: [], + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + JSON: { + properties: { + company: 'Initech', + address: { + country: 'USA', + state: 'CA', + street: '101 dummy street', + }, + email: 'dummyuser@domain.com', + name: 'dummy user', + phone: '099-999-9999', + }, + uid: 'dummy-user001', + email: 'dummyuser@domain.com', + display_name: 'dummy user', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.fullstory.com/v2/users', + headers: { + authorization: 'Basic fullstoryAPIKey', + 'content-type': 'application/json', + }, + params: {}, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'fullstory', + description: 'Identify event with needed traits', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'dummy-user001', + channel: 'web', + context: { + traits: { + email: 'dummyuser@domain.com', + name: 'dummy user', + phone: '099-999-9999', + }, + }, + timestamp: '2020-01-27T17:50:57.109+05:30', + type: 'identify', + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'Fullstory', + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'fullstoryAPIKey', + }, + Enabled: true, + Transformations: [], + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + JSON: { + properties: { + email: 'dummyuser@domain.com', + name: 'dummy user', + phone: '099-999-9999', + }, + uid: 'dummy-user001', + email: 'dummyuser@domain.com', + display_name: 'dummy user', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.fullstory.com/v2/users', + headers: { + authorization: 'Basic fullstoryAPIKey', + 'content-type': 'application/json', + }, + params: {}, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/ga/deleteUsers/data.ts b/test/integrations/destinations/ga/deleteUsers/data.ts new file mode 100644 index 00000000000..6cbc5d5cfe4 --- /dev/null +++ b/test/integrations/destinations/ga/deleteUsers/data.ts @@ -0,0 +1,181 @@ +import { AUTH_STATUS_INACTIVE } from '../../../../../src/adapters/networkhandler/authConstants'; + +export const data = [ + { + name: 'ga', + description: 'Test 0', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + headers: { + 'x-rudder-dest-info': '{"secret": { "access_token": "valid_token" }}', + }, + body: [ + { + destType: 'GA', + userAttributes: [ + { + userId: 'test_user_1', + }, + { + userId: 'test_user_2', + }, + ], + config: { + trackingID: 'UA-123456789-5', + useNativeSDK: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 1', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + headers: { + 'x-rudder-dest-info': '{"secret": { "access_token": "expired_token" }}', + }, + body: [ + { + destType: 'GA', + userAttributes: [ + { + userId: 'test_user_3', + }, + { + userId: 'test_user_4', + }, + ], + config: { + trackingID: 'UA-123456789-6', + useNativeSDK: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 500, + body: [ + { + statusCode: 500, + authErrorCategory: 'REFRESH_TOKEN', + error: 'invalid credentials', + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 2', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + headers: { + 'x-rudder-dest-info': '{"secret": { "access_token": "valid_token_1" }}', + }, + body: [ + { + destType: 'GA', + userAttributes: [ + { + userId: 'test_user_5', + }, + { + userId: 'test_user_6', + }, + { + userId: 'test_user_7', + }, + { + userId: 'test_user_8', + }, + { + userId: 'test_user_9', + }, + ], + config: { + trackingID: 'UA-123456789-7', + useNativeSDK: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 403, + body: [ + { + statusCode: 403, + error: + 'Error occurred while completing deletion request: [dummy response] The parameter used to query is not correct', + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 3', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + headers: { + 'x-rudder-dest-info': '{"secret": { "access_token": "no_permissions_token" }}', + }, + body: [ + { + destType: 'GA', + userAttributes: [ + { + userId: 'test_user_20', + }, + ], + config: { + trackingID: 'UA-123456789-7', + useNativeSDK: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + authErrorCategory: AUTH_STATUS_INACTIVE, + error: 'User does not have sufficient permissions', + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/ga/network.ts b/test/integrations/destinations/ga/network.ts new file mode 100644 index 00000000000..acfe5db4305 --- /dev/null +++ b/test/integrations/destinations/ga/network.ts @@ -0,0 +1,327 @@ +const deleteNwData = [ + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_1', + }, + webPropertyId: 'UA-123456789-5', + }, + headers: { + Authorization: 'Bearer valid_token', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_1', + }, + webPropertyId: 'UA-123456789-5', + deletionRequestTime: '2022-11-04T10:39:57.933Z', + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_2', + }, + webPropertyId: 'UA-123456789-5', + }, + headers: { + Authorization: 'Bearer valid_token', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_2', + }, + webPropertyId: 'UA-123456789-5', + deletionRequestTime: '2022-11-04T10:39:57.933Z', + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_3', + }, + webPropertyId: 'UA-123456789-6', + }, + headers: { + Authorization: 'Bearer expired_token', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + error: { + code: 401, + message: + 'Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.', + status: 'UNAUTHENTICATED', + }, + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_4', + }, + webPropertyId: 'UA-123456789-6', + }, + headers: { + Authorization: 'Bearer expired_token', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + error: { + code: 401, + message: + 'Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.', + status: 'UNAUTHENTICATED', + }, + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_5', + }, + webPropertyId: 'UA-123456789-7', + }, + headers: { + Authorization: 'Bearer valid_token_1', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_5', + }, + webPropertyId: 'UA-123456789-7', + deletionRequestTime: '2022-11-04T10:39:57.933Z', + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_6', + }, + webPropertyId: 'UA-123456789-7', + }, + headers: { + Authorization: 'Bearer valid_token_1', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_6', + }, + webPropertyId: 'UA-123456789-7', + deletionRequestTime: '2022-11-04T10:39:57.933Z', + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_7', + }, + webPropertyId: 'UA-123456789-7', + }, + headers: { + Authorization: 'Bearer valid_token_1', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + error: { + errors: [ + { + domain: 'global', + reason: 'invalidParameter', + message: '[dummy response] The parameter used to query is not correct', + }, + ], + code: 403, + message: '[dummy response] The parameter used to query is not correct', + }, + }, + status: 403, + statusText: 'Bad Request', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_8', + }, + webPropertyId: 'UA-123456789-7', + }, + headers: { + Authorization: 'Bearer valid_token_1', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_8', + }, + webPropertyId: 'UA-123456789-7', + deletionRequestTime: '2022-11-04T10:39:57.933Z', + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_9', + }, + webPropertyId: 'UA-123456789-7', + }, + headers: { + Authorization: 'Bearer valid_token_1', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_9', + }, + webPropertyId: 'UA-123456789-7', + deletionRequestTime: '2022-11-04T10:39:57.933Z', + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_20', + }, + webPropertyId: 'UA-123456789-7', + }, + headers: { + Authorization: 'Bearer no_permissions_token', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + error: { + errors: [ + { + reason: 'insufficientPermissions', + }, + ], + code: 403, + message: 'User does not have sufficient permissions', + }, + }, + status: 200, + statusText: 'OK', + }, + }, +]; +export const networkCallsData = [...deleteNwData]; diff --git a/test/integrations/destinations/ga/processor/data.ts b/test/integrations/destinations/ga/processor/data.ts new file mode 100644 index 00000000000..aa468b50384 --- /dev/null +++ b/test/integrations/destinations/ga/processor/data.ts @@ -0,0 +1,9979 @@ +export const mockFns = (_) => { + // @ts-ignore + jest + .useFakeTimers() + .setSystemTime(new Date('2023-09-29')); +}; +export const data = [ + { + "name": "ga", + "description": "Test 0", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "externalId": [ + { + "id": "lynnanderson@smith.net", + "identifierType": "device_id", + "type": "AM-users" + } + ], + "mappedToDestination": "true", + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "anonymousId": "123456", + "email": "test@rudderstack.com", + "address": { + "country": "India", + "postalCode": 712136, + "state": "WB", + "street": "", + "os_version": "test os" + }, + "ip": "0.0.0.0", + "age": 26 + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + }, + "page": { + "path": "/destinations/amplitude", + "referrer": "", + "search": "", + "title": "", + "url": "https://docs.rudderstack.com/destinations/amplitude", + "category": "destination", + "initial_referrer": "https://docs.rudderstack.com", + "initial_referring_domain": "docs.rudderstack.com" + } + }, + "traits": { + "anonymousId": "123456", + "email": "test@rudderstack.com", + "city": "kolkata", + "address": { + "country": "India", + "postalCode": 712136, + "state": "WB", + "street": "" + }, + "os_version": "test os", + "ip": "0.0.0.0", + "age": 26, + "an": "Test App name", + "ul": "Test ul" + }, + "type": "identify", + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "originalTimestamp": "2019-10-14T09:03:17.562Z", + "anonymousId": "123456", + "userId": "123456", + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T09:03:22.563Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "name", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "name", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "action1", + "ec": "All", + "ni": 1, + "ul": "Test ul", + "an": "Test App name", + "cm1": "test@rudderstack.com", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "uid": "123456", + "cid": "123456", + "uip": "0.0.0.0", + "qt": 124901802438 + }, + "body": { + "JSON": {}, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "123456" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 1", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "traits": { + "name": "Rudder Test" + }, + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "properties": { + "plan": "standard plan", + "name": "rudder test" + }, + "type": "identify", + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "123456", + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T09:03:22.563Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "name", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "name", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "action1", + "ec": "Rudder Test", + "cd1": "Rudder Test", + "cg2": "Rudder Test", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "uid": "123456", + "cid": "00000000000000000000000000", + "ni": 1, + "uip": "0.0.0.0", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "ul": "en-US", + "qt": 124893881701 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 2", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "page", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "path": "/abc", + "referrer": "q", + "search": "", + "title": "a", + "url": "https://www.example.com/abc" + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "v": "1", + "t": "pageview", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "uip": "0.0.0.0", + "ul": "en-US", + "dh": "www.example.com", + "dl": "https://www.example.com/abc", + "dp": "%2Fabc", + "dr": "q", + "dt": "a", + "qt": 124893881701 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 3", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "test track event GA3", + "properties": { + "category": "test-category", + "user_actual_role": "system_admin, system_user", + "user_actual_id": 12345 + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ec": "test-category", + "ni": 1, + "v": "1", + "el": "event", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ea": "test track event GA3", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 4", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "order completed", + "properties": { + "order_id": "rudderstackorder1", + "total": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "purchase", + "tr": 99.99, + "ev": 100, + "pr1id": "p-298", + "pr1cd1": "my product", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr2id": "p-299", + "pr2cd1": "other product", + "pr2nm": "other product", + "pr2pr": 24.75, + "ea": "order completed", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ti": "rudderstackorder1", + "ts": 13.99, + "tt": 20.99, + "cu": "INR", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ni": 1, + "pr1qt": 1, + "pr2qt": 3, + "ul": "en-US", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 5", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "product added", + "properties": { + "currency": "CAD", + "quantity": 1, + "price": 24.75, + "name": "my product 1", + "category": "cat 1", + "sku": "p-298", + "testDimension": true, + "testMetric": true, + "position": 4.5 + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "product added", + "ec": "cat 1", + "pa": "add", + "pr1cd1": "my product 1", + "pr1id": "p-298", + "cd1": "my product 1", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "pr1nm": "my product 1", + "pr1ca": "cat 1", + "cu": "CAD", + "pr1ps": 4.5, + "pr1pr": 24.75, + "pr1qt": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ni": 1, + "ul": "en-US", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 6", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "product removed", + "properties": { + "currency": "CAD", + "quantity": 1, + "price": 24.75, + "name": "my product 1", + "category": "cat 1", + "sku": "p-298", + "testDimension": true, + "testMetric": true, + "position": 4.5 + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "product removed", + "ec": "cat 1", + "pa": "remove", + "pr1cd1": "my product 1", + "pr1id": "p-298", + "cd1": "my product 1", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "pr1nm": "my product 1", + "pr1ca": "cat 1", + "cu": "CAD", + "pr1ps": 4.5, + "pr1pr": 24.75, + "pr1qt": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 7", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "product viewed", + "properties": { + "currency": "CAD", + "quantity": 1, + "price": 24.75, + "name": "my product 1", + "category": "cat 1", + "sku": "p-298", + "testDimension": true, + "testMetric": true, + "position": 4.5 + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "product viewed", + "ec": "cat 1", + "pa": "detail", + "pr1cd1": "my product 1", + "pr1id": "p-298", + "cd1": "my product 1", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "pr1nm": "my product 1", + "pr1ca": "cat 1", + "cu": "CAD", + "pr1ps": 4.5, + "pr1pr": 24.75, + "pr1qt": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 8", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "product removed", + "properties": { + "currency": "CAD", + "quantity": 1, + "price": 24.75, + "name": "my product 1", + "category": "cat 1", + "sku": "p-298", + "testDimension": true, + "testMetric": true, + "position": 4.5 + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "product removed", + "ec": "cat 1", + "pa": "remove", + "pr1cd1": "my product 1", + "pr1id": "p-298", + "cd1": "my product 1", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "pr1nm": "my product 1", + "pr1ca": "cat 1", + "cu": "CAD", + "pr1ps": 4.5, + "pr1pr": 24.75, + "pr1qt": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881701 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 9", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "product viewed", + "properties": { + "currency": "CAD", + "quantity": 1, + "price": 24.75, + "name": "my product 1", + "category": "cat 1", + "sku": "p-298", + "testDimension": true, + "testMetric": true, + "position": 4.5 + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "product viewed", + "ec": "cat 1", + "pa": "detail", + "pr1cd1": "my product 1", + "pr1id": "p-298", + "cd1": "my product 1", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "pr1nm": "my product 1", + "pr1ca": "cat 1", + "cu": "CAD", + "pr1ps": 4.5, + "pr1pr": 24.75, + "pr1qt": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 10", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "product list filtered", + "properties": { + "category": "cat 1", + "list_id": "1234", + "filters": [ + { + "type": "department", + "value": "beauty" + }, + { + "type": "price", + "value": "under" + } + ], + "sorts": [ + { + "type": "price", + "value": "desc" + } + ], + "products": [ + { + "product_id": "507f1f77bcf86cd799439011", + "productDimension": "My Product Dimension", + "productMetric": "My Product Metric" + } + ], + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "product list filtered", + "ec": "cat 1", + "pa": "detail", + "il1pi1id": "507f1f77bcf86cd799439011", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "il1nm": "1234", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "uid": "12345", + "il1pi1qt": 1, + "il1pi1va": "department:beauty,price:under::price:desc", + "ul": "en-US", + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 11", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "product list viewed", + "properties": { + "category": "cat 1", + "list_id": "1234", + "filters": [ + { + "type": "department", + "value": "beauty" + }, + { + "type": "price", + "value": "under" + } + ], + "sorts": [ + { + "type": "price", + "value": "desc" + } + ], + "products": [ + { + "product_id": "507f1f77bcf86cd799439011", + "productDimension": "My Product Dimension", + "productMetric": "My Product Metric", + "position": 10 + }, + { + "product_id": "507f1f77bcf86cdef799439011", + "productDimension": "My Product Dimension1", + "productMetric": "My Product Metric1", + "position": -10 + } + ], + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "product list viewed", + "ec": "cat 1", + "pa": "detail", + "il1pi1id": "507f1f77bcf86cd799439011", + "il1pi1ps": 10, + "il1pi2id": "507f1f77bcf86cdef799439011", + "il1pi2ps": -10, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "il1nm": "1234", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "uid": "12345", + "il1pi1qt": 1, + "il1pi1va": "department:beauty,price:under::price:desc", + "il1pi2qt": 1, + "il1pi2va": "department:beauty,price:under::price:desc", + "ul": "en-US", + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 12", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "product clicked", + "properties": { + "currency": "CAD", + "quantity": 1, + "price": 24.75, + "name": "my product", + "category": "cat 1", + "sku": "p-298", + "list": "search results", + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "product clicked", + "ec": "cat 1", + "pa": "click", + "pr1cd1": "my product", + "pr1id": "p-298", + "cd1": "my product", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "pr1nm": "my product", + "pr1ca": "cat 1", + "cu": "CAD", + "pr1pr": 24.75, + "pr1qt": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "pal": "search results", + "ul": "en-US", + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 13", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "promotion viewed", + "properties": { + "currency": "CAD", + "promotion_id": "PROMO_1234", + "name": "my product", + "creative": "summer_banner2", + "position": "banner_slot1", + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "promotion viewed", + "ec": "EnhancedEcommerce", + "cu": "CAD", + "promoa": "view", + "pa": "view", + "cd1": "my product", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "promo1id": "PROMO_1234", + "promo1cr": "summer_banner2", + "promo1ps": "banner_slot1", + "promo1nm": "my product", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 14", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "promotion clicked", + "properties": { + "currency": "CAD", + "promotion_id": "PROMO_1234", + "name": "my product", + "creative": "summer_banner2", + "position": "banner_slot1", + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "promotion clicked", + "ec": "EnhancedEcommerce", + "cu": "CAD", + "promoa": "promo_click", + "pa": "promo_click", + "cd1": "my product", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "promo1id": "PROMO_1234", + "promo1cr": "summer_banner2", + "promo1ps": "banner_slot1", + "promo1nm": "my product", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 15", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "checkout started", + "properties": { + "currency": "CAD", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298" + }, + { + "quantity": 1, + "price": 24.75, + "name": "my product 2", + "sku": "p-299" + } + ], + "step": 1, + "paymentMethod": "Visa", + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "checkout", + "pr1id": "p-298", + "pr1cd1": "my product", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr2id": "p-299", + "pr2cd1": "my product 2", + "pr2nm": "my product 2", + "pr2pr": 24.75, + "ea": "checkout started", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "cu": "CAD", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "cos": 1, + "pr1qt": 1, + "pr2qt": 1, + "ul": "en-US", + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 16", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "order updated", + "properties": { + "currency": "CAD", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298" + }, + { + "quantity": 1, + "price": 24.75, + "name": "my product 2", + "sku": "p-299" + } + ], + "step": 1, + "paymentMethod": "Visa", + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "checkout", + "pr1id": "p-298", + "pr1cd1": "my product", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr2id": "p-299", + "pr2cd1": "my product 2", + "pr2nm": "my product 2", + "pr2pr": 24.75, + "ea": "order updated", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "cu": "CAD", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "cos": 1, + "pr1qt": 1, + "pr2qt": 1, + "ul": "en-US", + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 17", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "checkout step viewed", + "properties": { + "currency": "CAD", + "step": 1 + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "checkout", + "ea": "checkout step viewed", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "cos": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 18", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "checkout step completed", + "properties": { + "currency": "CAD", + "step": 1, + "paymentMethod": "Visa" + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "checkout_option", + "ea": "checkout step completed", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "cos": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 19", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "order refunded", + "properties": { + "products": [ + { + "quantity": 1, + "sku": "p-298" + }, + { + "quantity": 1, + "sku": "p-299" + } + ], + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ea": "order refunded", + "ec": "EnhancedEcommerce", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "pa": "refund", + "pr1id": "p-298", + "pr1qt": 1, + "pr2id": "p-299", + "ul": "en-US", + "pr2qt": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 20", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "order starterefundedd", + "properties": { + "products": [ + { + "quantity": 1, + "sku": "p-298" + }, + { + "quantity": 1, + "sku": "p-299" + } + ], + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ea": "order starterefundedd", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 21", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "order starterefundedd", + "properties": { + "products": [ + { + "quantity": 1, + "sku": "p-298" + }, + { + "quantity": 1, + "sku": "p-299" + } + ], + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ea": "order starterefundedd", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 22", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "order starterefundedd", + "properties": { + "products": [ + { + "quantity": 1, + "sku": "p-298" + }, + { + "quantity": 1, + "sku": "p-299" + } + ], + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "aip": 1, + "cid": "00000000000000000000000000", + "ea": "order starterefundedd", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 23", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "order starterefundedd", + "properties": { + "products": [ + { + "quantity": 1, + "sku": "p-298" + }, + { + "quantity": 1, + "sku": "p-299" + } + ], + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "cid": "00000000000000000000000000", + "ea": "order starterefundedd", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 24", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "order starterefundedd", + "properties": { + "products": [ + { + "quantity": 1, + "sku": "p-298" + }, + { + "quantity": 1, + "sku": "p-299" + } + ], + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ea": "order starterefundedd", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 25", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "linkid test", + "properties": { + "linkid": "abc123", + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "linkid": "abc123", + "cid": "00000000000000000000000000", + "ea": "linkid test", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 26", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + }, + "campaign": { + "name": "sampleName", + "source": "sampleSource", + "medium": "sampleMedium", + "content": "sampleContent", + "term": "sampleTerm" + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "campaign test", + "properties": { + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "cn": "sampleName", + "cs": "sampleSource", + "cm": "sampleMedium", + "cc": "sampleContent", + "ck": "sampleTerm", + "cid": "00000000000000000000000000", + "ea": "campaign test", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 27", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + }, + "campaign": { + "name": "sampleName", + "source": "sampleSource", + "medium": "sampleMedium", + "content": "sampleContent", + "term": "sampleTerm" + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "event": "campaign test", + "properties": { + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "cn": "sampleName", + "cs": "sampleSource", + "cm": "sampleMedium", + "cc": "sampleContent", + "ck": "sampleTerm", + "cid": "00000000000000000000000000", + "ea": "campaign test", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 28", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + }, + "campaign": { + "name": "sampleName", + "source": "sampleSource", + "medium": "sampleMedium", + "content": "sampleContent", + "term": "sampleTerm" + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "event": "campaign test", + "properties": { + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "cn": "sampleName", + "cs": "sampleSource", + "cm": "sampleMedium", + "cc": "sampleContent", + "ck": "sampleTerm", + "cid": "00000000000000000000000000", + "ea": "campaign test", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 29", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.2" + }, + "traits": { + "abc": "1234" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.2" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", + "locale": "en-GB", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + }, + "page": { + "path": "/tests/html/ecomm_test.html", + "referrer": "http://0.0.0.0:1112/tests/html/", + "search": "", + "title": "GA Ecommerce Test", + "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" + } + }, + "type": "identify", + "messageId": "bc8a6af8-37fd-46a9-9592-ea29a256435f", + "originalTimestamp": "2020-06-22T11:30:32.493Z", + "anonymousId": "38e169a1-3234-46f7-9ceb-c1a6a69005fe", + "userId": "123", + "integrations": { + "All": true + }, + "sentAt": "2020-06-22T11:30:32.494Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "User Enriched", + "dt": "GA Ecommerce Test", + "ec": "All", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.1.2", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "uid": "123", + "cid": "38e169a1-3234-46f7-9ceb-c1a6a69005fe", + "ni": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", + "ul": "en-GB", + "qt": 103120167507 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "38e169a1-3234-46f7-9ceb-c1a6a69005fe" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 30", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "page", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "v": "1", + "t": "pageview", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "uip": "0.0.0.0", + "qt": 124893881701 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 31", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "page", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "path": "/abc", + "referrer": "", + "search": "?xyz=1", + "title": "", + "url": "https://www.example.com/abc" + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "v": "1", + "t": "pageview", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "uip": "0.0.0.0", + "dh": "www.example.com", + "dl": "https://www.example.com/abc", + "dp": "%2Fabc%3Fxyz%3D1", + "qt": 124893881701 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 32", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "integrations": { + "All": true + }, + "event": "sample event", + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ea": "sample event", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "uip": "0.0.0.0", + "qt": 124893881701 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 33", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Order Refunded", + "properties": { + "order_id": "rudderstackorder1", + "total": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "refund", + "ev": 100, + "pr1id": "p-298", + "pr1cd1": "my product", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr1qt": 1, + "pr2id": "p-299", + "pr2cd1": "other product", + "pr2nm": "other product", + "pr2pr": 24.75, + "pr2qt": 3, + "ea": "Order Refunded", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "ti": "rudderstackorder1", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 34", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Order Refunded", + "properties": { + "order_id": "rudderstackorder1", + "total": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR" + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ev": 100, + "pa": "refund", + "ti": "rudderstackorder1", + "ea": "Order Refunded", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 35", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Order Refunded", + "properties": { + "order_id": "rudderstackorder1", + "total": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ev": 100, + "pa": "refund", + "ti": "rudderstackorder1", + "ea": "Order Refunded", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 36", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Order Refunded", + "properties": { + "order_id": "rudderstackorder1", + "total": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298", + "product_id": "1" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299", + "product_id": "2" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ev": 100, + "pa": "refund", + "pr1id": "1", + "pr1cd1": "my product", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr1qt": 1, + "pr2id": "2", + "pr2cd1": "other product", + "pr2nm": "other product", + "pr2pr": 24.75, + "pr2qt": 3, + "ea": "Order Refunded", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "ti": "rudderstackorder1", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 37", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Cart Shared", + "properties": { + "order_id": "rudderstackorder1", + "total": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298", + "product_id": "1" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299", + "product_id": "2" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ev": 100, + "ea": "Cart Shared", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "st": " 1 2", + "ul": "en-US", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 38", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Product Shared", + "properties": { + "product_id": "rudderstackorder1", + "total": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "url": "https://www.example.com/abc" + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ev": 100, + "ea": "Product Shared", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "st": "https://www.example.com/abc", + "dh": "www.example.com", + "dl": "https://www.example.com/abc", + "dp": "%2Fabc", + "ul": "en-US", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 39", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Product List Clicked", + "properties": { + "list_id": "Sample Product List", + "category": "Sample Product List", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298", + "product_id": "1" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299", + "product_id": "2" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "Product List Clicked", + "ec": "Sample Product List", + "pa": "click", + "il1pi1id": "1", + "pr1cd1": "my product", + "il1pi1nm": "my product", + "il1pi1pr": 24.75, + "il1pi2id": "2", + "pr2cd1": "other product", + "il1pi2nm": "other product", + "il1pi2pr": 24.75, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "il1nm": "Sample Product List", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "uid": "12345", + "ni": 1, + "il1pi2qt": 3, + "il1pi1qt": 1, + "ul": "en-US", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 40", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Product List Clicked", + "properties": { + "list_id": "Sample Product List", + "category": "Sample Product List", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "Product List Clicked", + "ec": "Sample Product List", + "pa": "click", + "il1pi1id": "p-298", + "pr1cd1": "my product", + "il1pi1nm": "my product", + "il1pi1pr": 24.75, + "il1pi2id": "p-299", + "pr2cd1": "other product", + "il1pi2nm": "other product", + "il1pi2pr": 24.75, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "il1nm": "Sample Product List", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "uid": "12345", + "ul": "en-US", + "il1pi2qt": 3, + "il1pi1qt": 1, + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 41", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Product List Clicked", + "properties": { + "list_id": "Sample Product List", + "category": "Sample Product List", + "products": [] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ni": 1, + "ea": "Product List Clicked", + "ec": "Sample Product List", + "pa": "click", + "el": "event", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "ul": "en-US", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "il1nm": "Sample Product List", + "uid": "12345", + "cid": "00000000000000000000000000", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 42", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Order Cancelled", + "properties": { + "order_id": "rudderstackorder1", + "total": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298", + "product_id": "1" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299", + "product_id": "2" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "refund", + "ev": 100, + "tr": 99.99, + "pr1id": "1", + "pr1cd1": "my product", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr2id": "2", + "pr2cd1": "other product", + "pr2nm": "other product", + "pr2pr": 24.75, + "ea": "Order Cancelled", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ti": "rudderstackorder1", + "ts": 13.99, + "tt": 20.99, + "cu": "INR", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "pr1qt": 1, + "pr2qt": 3, + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 43", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Order Cancelled", + "properties": { + "order_id": "rudderstackorder1", + "value": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298", + "product_id": "1" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299", + "product_id": "2" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "refund", + "tr": 99.99, + "pr1id": "1", + "pr1cd1": "my product", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr2id": "2", + "pr2cd1": "other product", + "pr2nm": "other product", + "pr2pr": 24.75, + "ea": "Order Cancelled", + "ev": 100, + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ti": "rudderstackorder1", + "ts": 13.99, + "tt": 20.99, + "cu": "INR", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "pr1qt": 1, + "pr2qt": 3, + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 44", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Order Cancelled", + "properties": { + "order_id": "rudderstackorder1", + "revenue": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298", + "product_id": "1" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299", + "product_id": "2" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "refund", + "tr": 99.99, + "pr1id": "1", + "pr1cd1": "my product", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr2id": "2", + "pr2cd1": "other product", + "pr2nm": "other product", + "pr2pr": 24.75, + "ea": "Order Cancelled", + "ev": 100, + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ti": "rudderstackorder1", + "ts": 13.99, + "tt": 20.99, + "cu": "INR", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "pr1qt": 1, + "pr2qt": 3, + "ni": 1, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 45", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Order Cancelled", + "properties": { + "order_id": "rudderstackorder1", + "revenue": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "error": "No product information supplied for transaction event", + "statTags": { + "destType": "GA", + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "feature": "processor", + "implementation": "native", + "module": "destination" + }, + "statusCode": 400 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 46", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Cart Viewed", + "properties": { + "order_id": "rudderstackorder1", + "revenue": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298", + "product_id": "1" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299", + "product_id": "2" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "Cart Viewed", + "ev": 100, + "ec": "EnhancedEcommerce", + "pa": "detail", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "pr1cd1": "my product", + "pr1id": "1", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr1qt": 1, + "pr2cd1": "other product", + "pr2id": "2", + "pr2nm": "other product", + "pr2pr": 24.75, + "pr2qt": 3, + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 47", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "traits": { + "name1": "Test" + }, + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "properties": { + "plan": "standard plan", + "name": "rudder test" + }, + "type": "identify", + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "originalTimestamp": "2019-10-14T09:03:17.562Z", + "anonymousId": "00000000000000000000000000", + "userId": "123456", + "integrations": { + "All": true + }, + "traits": { + "name1": "Test" + }, + "sentAt": "2019-10-14T09:03:22.563Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "serverSideIdentifyEventCategory": "name", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "error": "server side identify is not on", + "statTags": { + "destType": "GA", + "errorCategory": "dataValidation", + "errorType": "configuration", + "feature": "processor", + "implementation": "native", + "module": "destination" + }, + "statusCode": 400 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 48", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "screen", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "name": "homescreen" + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "cd1": "homescreen", + "v": "1", + "t": "screenview", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "cd": "homescreen", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "uip": "0.0.0.0", + "qt": 124893881701 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 49", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "newtype", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "name": "homescreen" + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "error": "Message type newtype not supported", + "statTags": { + "destType": "GA", + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "feature": "processor", + "implementation": "native", + "module": "destination" + }, + "statusCode": 400 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 50", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "traits": { + "name": "Test" + }, + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "properties": { + "plan": "standard plan", + "name": "rudder test" + }, + "type": "identify", + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "originalTimestamp": "2019-10-14T09:03:17.562Z", + "userId": "12345", + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T09:03:22.563Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "name", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "userId": "12345", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "action1", + "ec": "Test", + "ni": 1, + "cd1": "Test", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "ul": "en-US", + "uid": "12345", + "cid": "827ccb0eea8a706c4c34a16891f84e7b", + "uip": "0.0.0.0", + "qt": 124901802438 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {} + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 51", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "traits": { + "name": "Test" + }, + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "properties": { + "plan": "standard plan", + "name": "rudder test" + }, + "type": "identify", + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "originalTimestamp": "2019-10-14T09:03:17.562Z", + "userId": "12345", + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T09:03:22.563Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "name", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "disableMd5": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "userId": "12345", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "action1", + "ec": "Test", + "ni": 1, + "cd1": "Test", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "ul": "en-US", + "uid": "12345", + "uip": "0.0.0.0", + "qt": 124901802438 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {} + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 52", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "traits": { + "name": "Test" + }, + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "properties": { + "plan": "standard plan", + "name": "rudder test" + }, + "type": "identify", + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "originalTimestamp": "2019-10-14T09:03:17.562Z", + "userId": "12345", + "integrations": { + "All": true, + "GA": { + "clientId": "clientId" + }, + "Google Analytics": { + "clientId": "clientId" + } + }, + "sentAt": "2019-10-14T09:03:22.563Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "name", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "userId": "12345", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "action1", + "ec": "Test", + "ni": 1, + "cd1": "Test", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "ul": "en-US", + "uid": "12345", + "cid": "clientId", + "uip": "0.0.0.0", + "qt": 124901802438 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {} + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 53", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "externalId": [ + { + "id": "externalClientId", + "type": "gaExternalId" + } + ], + "traits": { + "name": "Test" + }, + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "properties": { + "plan": "standard plan", + "name": "rudder test" + }, + "type": "identify", + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "originalTimestamp": "2019-10-14T09:03:17.562Z", + "userId": "12345", + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T09:03:22.563Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "name", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "userId": "12345", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "action1", + "ec": "Test", + "ni": 1, + "cd1": "Test", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "ul": "en-US", + "uid": "12345", + "cid": "externalClientId", + "uip": "0.0.0.0", + "qt": 124901802438 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {} + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 54", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "product list viewed", + "properties": { + "nonInteraction": 0, + "category": "cat 1", + "list_id": "1234", + "filters": { + "a": "department", + "b": "beauty" + }, + "sorts": [ + { + "type": "price", + "value": "desc" + } + ], + "products": [ + { + "product_id": "507f1f77bcf86cd799439011", + "productDimension": "My Product Dimension", + "productMetric": "My Product Metric", + "position": 10 + }, + { + "product_id": "507f1f77bcf86cdef799439011", + "productDimension": "My Product Dimension1", + "productMetric": "My Product Metric1", + "position": -10 + } + ], + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "content1" + }, + { + "from": "prop2", + "to": "content2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ni": 0, + "ea": "product list viewed", + "ec": "cat 1", + "pa": "detail", + "il1pi1id": "507f1f77bcf86cd799439011", + "il1pi1va": "::price:desc", + "il1pi1ps": 10, + "il1pi1qt": 1, + "il1pi2id": "507f1f77bcf86cdef799439011", + "il1pi2va": "::price:desc", + "il1pi2ps": -10, + "il1pi2qt": 1, + "el": "event", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "ul": "en-US", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "il1nm": "1234", + "uid": "12345", + "cid": "00000000000000000000000000", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga", + "description": "Test 55", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "page", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "referrer": "https://google.com/answer/7554821?zippy=%2Cfields-in-event-snippets-for-counter-tags%2Cstep-add-the-global-snippet-to-every-page-of-your-site%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-tg%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learns-more-about-the-global-site-tag%2Cwhy-is-the-globalthe-head-when-iframe-and-image-tags-were-placed-in-the-body-placed-of-my-site%2Cwhere-can-i-learn-g2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-and-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-n-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag", + "search": "", + "title": "a", + "url": "https://support.google.com/campaignmanager/answer/7554821?zippy=%2Cfields-in-event-snippets-for-counter-tags%2Cstep-add-the-global-snippet-to-every-page-of-your-site%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjis-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjis-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjakljshdlfkjahsldkfjahlskdfjhaklsjdfhalksjdhflakjshdflakjsdhfklasjhdflaksjhdflaksjdfhlakjshdflakjsdhfklasjhdflaksjhdflaksjdfhlakjshdflakjsdhfklasjhdflaksjhdflaksjdfhljkkwoipqpweoirpoqiwerpoqi1111111111111" + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "anonymizeIp": false, + "eventDeliveryTS": 1657516676962, + "eventFilteringOption": "disable", + "trackingID": "UA-165994240-1" + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "dp": "%2Fcampaignmanager%2Fanswer%2F7554821", + "dl": "https://support.google.com/campaignmanager/answer/7554821?zippy=%2Cfields-in-event-snippets-for-counter-tags%2Cstep-add-the-global-snippet-to-every-page-of-your-site%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjis-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjis-the-global-site-tag-placed-in-the-head-lakjsdlkfjalsdkfjakljshdlfkjahsldkfjahlskdfjhaklsjdfhalksjdhflakjshdflakjsdhfklasjhdflaksjhdflaksjdfhlakjshdflakjsdhfklasjhdflaksjhdflaksjdfhlakjshdflakjsdhfklasjhdflaksjhdflaksjdfhljkkwoipqpweoirpoqiwerpoqi1111111111111", + "dh": "support.google.com", + "dt": "a", + "dr": "https://google.com/answer/7554821?zippy=%2Cfields-in-event-snippets-for-counter-tags%2Cstep-add-the-global-snippet-to-every-page-of-your-site%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cstep-add-the-event-snippet-to-pages-with-events-youre-tracking%2Cfields-in-the-global-snippet%2Cfields-in-the-event-snippet---overview%2Cfields-in-all-event-snippets%2Cexample-event-snippet-for-counter---standard-activities%2Cexample-event-snippet-for-counter---unique-activities%2Cexample-event-snippet-for-counter---per-session-activities%2Cfields-in-event-snippets-for-sales-tags%2Cexample-event-snippet-for-sales---transaction-activities%2Cexample-event-snippet-for-sales---items-sold-activities%2Ccustom-fields%2Cnoscript-section-of-event-snippets%2Cdo-i-need-to-set-up-cache-busting-with-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-tg%2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learns-more-about-the-global-site-tag%2Cwhy-is-the-globalthe-head-when-iframe-and-image-tags-were-placed-in-the-body-placed-of-my-site%2Cwhere-can-i-learn-g2Cwhy-is-the-global-site-tag-placed-in-the-head-when-iframe-and-and-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag%2Cwhy-n-the-head-when-iframe-and-image-tags-were-placed-in-the-body-of-my-site%2Cwhere-can-i-learn-more-about-the-global-site-tag", + "v": "1", + "t": "pageview", + "tid": "UA-165994240-1", + "ds": "web", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "ul": "en-US", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "cid": "00000000000000000000000000", + "uip": "0.0.0.0", + "qt": 124893881701 + }, + "body": { + "JSON": {}, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + } +].map((d) => ({ ...d, mockFns })) \ No newline at end of file diff --git a/test/integrations/destinations/ga/router/data.ts b/test/integrations/destinations/ga/router/data.ts new file mode 100644 index 00000000000..f0c2b86377d --- /dev/null +++ b/test/integrations/destinations/ga/router/data.ts @@ -0,0 +1,487 @@ +export const mockFns = (_) => { + // @ts-ignore + jest + .useFakeTimers() + .setSystemTime(new Date('2023-09-29')); +}; + +export const data = [ + { + name: 'ga', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + "message": { + "channel": "web", + "context": { + "traits": { + "name": "Rudder Test" + }, + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "properties": { + "plan": "standard plan", + "name": "rudder test" + }, + "type": "identify", + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "123456", + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T09:03:22.563Z" + }, + "metadata": { + "jobId": 1 + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "name", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "name", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + }, + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "page", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "path": "/abc", + "referrer": "q", + "search": "", + "title": "a", + "url": "https://www.example.com/abc" + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "metadata": { + "jobId": 2 + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ], + destType: 'ga', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + "batchedRequest": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "action1", + "ec": "Rudder Test", + "cd1": "Rudder Test", + "cg2": "Rudder Test", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "uid": "123456", + "cid": "00000000000000000000000000", + "ni": 1, + "uip": "0.0.0.0", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "ul": "en-US", + "qt": 124893881701, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "metadata": [ + { + "jobId": 1 + } + ], + "batched": false, + "statusCode": 200, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "name", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "name", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + }, + { + "batchedRequest": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "v": "1", + "t": "pageview", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "uip": "0.0.0.0", + "ul": "en-US", + "dh": "www.example.com", + "dl": "https://www.example.com/abc", + "dp": "%2Fabc", + "dr": "q", + "dt": "a", + "qt": 124893881701, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "metadata": [ + { + "jobId": 2 + } + ], + "batched": false, + "statusCode": 200, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ], + }, + }, + }, + } +].map((d) => ({ ...d, mockFns })); diff --git a/test/integrations/destinations/ga360/processor/data.ts b/test/integrations/destinations/ga360/processor/data.ts new file mode 100644 index 00000000000..4ed196d8c56 --- /dev/null +++ b/test/integrations/destinations/ga360/processor/data.ts @@ -0,0 +1,9456 @@ +export const mockFns = (_) => { + // @ts-ignore + jest + .useFakeTimers() + .setSystemTime(new Date('2023-09-29')); +}; + +export const data = [ + { + "name": "ga360", + "description": "Test 0", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "traits": { + "name": "Rudder Test" + }, + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "properties": { + "plan": "standard plan", + "name": "rudder test" + }, + "type": "identify", + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "originalTimestamp": "2019-10-14T09:03:17.562Z", + "anonymousId": "00000000000000000000000000", + "userId": "123456", + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T09:03:22.563Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "name", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "name", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "action1", + "ec": "Rudder Test", + "cd1": "Rudder Test", + "cg2": "Rudder Test", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "uid": "123456", + "cid": "00000000000000000000000000", + "ni": 1, + "uip": "0.0.0.0", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "ul": "en-US", + "qt": 124901802438 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 1", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "page", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "path": "/abc", + "referrer": "q", + "search": "", + "title": "a", + "url": "https://www.example.com/abc" + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "v": "1", + "t": "pageview", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "uip": "0.0.0.0", + "ul": "en-US", + "dh": "www.example.com", + "dl": "https://www.example.com/abc", + "dp": "%2Fabc", + "dr": "q", + "dt": "a", + "qt": 124893881701, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 2", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "test track event GA3", + "properties": { + "category": "test-category", + "user_actual_role": "system_admin, system_user", + "user_actual_id": 12345 + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ec": "test-category", + "ni": 1, + "v": "1", + "el": "event", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ea": "test track event GA3", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 3", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "order completed", + "properties": { + "order_id": "rudderstackorder1", + "total": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "purchase", + "tr": 99.99, + "ev": 100, + "pr1id": "p-298", + "pr1cd1": "my product", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr2id": "p-299", + "pr2cd1": "other product", + "pr2nm": "other product", + "pr2pr": 24.75, + "ea": "order completed", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ti": "rudderstackorder1", + "ts": 13.99, + "tt": 20.99, + "cu": "INR", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ni": 1, + "pr1qt": 1, + "pr2qt": 3, + "ul": "en-US", + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 4", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "product added", + "properties": { + "currency": "CAD", + "quantity": 1, + "price": 24.75, + "name": "my product 1", + "category": "cat 1", + "sku": "p-298", + "testDimension": true, + "testMetric": true, + "position": 4.5 + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "product added", + "ec": "cat 1", + "pa": "add", + "pr1cd1": "my product 1", + "pr1id": "p-298", + "cd1": "my product 1", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "pr1nm": "my product 1", + "pr1ca": "cat 1", + "cu": "CAD", + "pr1ps": 4.5, + "pr1pr": 24.75, + "pr1qt": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ni": 1, + "ul": "en-US", + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 5", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "product removed", + "properties": { + "currency": "CAD", + "quantity": 1, + "price": 24.75, + "name": "my product 1", + "category": "cat 1", + "sku": "p-298", + "testDimension": true, + "testMetric": true, + "position": 4.5 + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "product removed", + "ec": "cat 1", + "pa": "remove", + "pr1cd1": "my product 1", + "pr1id": "p-298", + "cd1": "my product 1", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "pr1nm": "my product 1", + "pr1ca": "cat 1", + "cu": "CAD", + "pr1ps": 4.5, + "pr1pr": 24.75, + "pr1qt": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 6", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "product viewed", + "properties": { + "currency": "CAD", + "quantity": 1, + "price": 24.75, + "name": "my product 1", + "category": "cat 1", + "sku": "p-298", + "testDimension": true, + "testMetric": true, + "position": 4.5 + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "product viewed", + "ec": "cat 1", + "pa": "detail", + "pr1cd1": "my product 1", + "pr1id": "p-298", + "cd1": "my product 1", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "pr1nm": "my product 1", + "pr1ca": "cat 1", + "cu": "CAD", + "pr1ps": 4.5, + "pr1pr": 24.75, + "pr1qt": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 7", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "product removed", + "properties": { + "currency": "CAD", + "quantity": 1, + "price": 24.75, + "name": "my product 1", + "category": "cat 1", + "sku": "p-298", + "testDimension": true, + "testMetric": true, + "position": 4.5 + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "product removed", + "ec": "cat 1", + "pa": "remove", + "pr1cd1": "my product 1", + "pr1id": "p-298", + "cd1": "my product 1", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "pr1nm": "my product 1", + "pr1ca": "cat 1", + "cu": "CAD", + "pr1ps": 4.5, + "pr1pr": 24.75, + "pr1qt": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 8", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "product viewed", + "properties": { + "currency": "CAD", + "quantity": 1, + "price": 24.75, + "name": "my product 1", + "category": "cat 1", + "sku": "p-298", + "testDimension": true, + "testMetric": true, + "position": 4.5 + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "product viewed", + "ec": "cat 1", + "pa": "detail", + "pr1cd1": "my product 1", + "pr1id": "p-298", + "cd1": "my product 1", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "pr1nm": "my product 1", + "pr1ca": "cat 1", + "cu": "CAD", + "pr1ps": 4.5, + "pr1pr": 24.75, + "pr1qt": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 9", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "product list filtered", + "properties": { + "category": "cat 1", + "list_id": "1234", + "filters": [ + { + "type": "department", + "value": "beauty" + }, + { + "type": "price", + "value": "under" + } + ], + "sorts": [ + { + "type": "price", + "value": "desc" + } + ], + "products": [ + { + "product_id": "507f1f77bcf86cd799439011", + "productDimension": "My Product Dimension", + "productMetric": "My Product Metric" + } + ], + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "product list filtered", + "ec": "cat 1", + "pa": "detail", + "il1pi1id": "507f1f77bcf86cd799439011", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "il1nm": "1234", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "uid": "12345", + "il1pi1qt": 1, + "il1pi1va": "department:beauty,price:under::price:desc", + "ul": "en-US", + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 10", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "product list viewed", + "properties": { + "category": "cat 1", + "list_id": "1234", + "filters": [ + { + "type": "department", + "value": "beauty" + }, + { + "type": "price", + "value": "under" + } + ], + "sorts": [ + { + "type": "price", + "value": "desc" + } + ], + "products": [ + { + "product_id": "507f1f77bcf86cd799439011", + "productDimension": "My Product Dimension", + "productMetric": "My Product Metric", + "position": 10 + }, + { + "product_id": "507f1f77bcf86cdef799439011", + "productDimension": "My Product Dimension1", + "productMetric": "My Product Metric1", + "position": -10 + } + ], + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "product list viewed", + "ec": "cat 1", + "pa": "detail", + "il1pi1id": "507f1f77bcf86cd799439011", + "il1pi1ps": 10, + "il1pi2id": "507f1f77bcf86cdef799439011", + "il1pi2ps": -10, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "il1nm": "1234", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "uid": "12345", + "il1pi1qt": 1, + "il1pi1va": "department:beauty,price:under::price:desc", + "il1pi2qt": 1, + "il1pi2va": "department:beauty,price:under::price:desc", + "ul": "en-US", + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 11", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "product clicked", + "properties": { + "currency": "CAD", + "quantity": 1, + "price": 24.75, + "name": "my product", + "category": "cat 1", + "sku": "p-298", + "list": "search results", + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "product clicked", + "ec": "cat 1", + "pa": "click", + "pr1cd1": "my product", + "pr1id": "p-298", + "cd1": "my product", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "pr1nm": "my product", + "pr1ca": "cat 1", + "cu": "CAD", + "pr1pr": 24.75, + "pr1qt": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "pal": "search results", + "ul": "en-US", + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 12", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "promotion viewed", + "properties": { + "currency": "CAD", + "promotion_id": "PROMO_1234", + "name": "my product", + "creative": "summer_banner2", + "position": "banner_slot1", + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "promotion viewed", + "ec": "EnhancedEcommerce", + "cu": "CAD", + "promoa": "view", + "pa": "view", + "cd1": "my product", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "promo1id": "PROMO_1234", + "promo1cr": "summer_banner2", + "promo1ps": "banner_slot1", + "promo1nm": "my product", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 13", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "promotion clicked", + "properties": { + "currency": "CAD", + "promotion_id": "PROMO_1234", + "name": "my product", + "creative": "summer_banner2", + "position": "banner_slot1", + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "promotion clicked", + "ec": "EnhancedEcommerce", + "cu": "CAD", + "promoa": "promo_click", + "pa": "promo_click", + "cd1": "my product", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "promo1id": "PROMO_1234", + "promo1cr": "summer_banner2", + "promo1ps": "banner_slot1", + "promo1nm": "my product", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 14", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "checkout started", + "properties": { + "currency": "CAD", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298" + }, + { + "quantity": 1, + "price": 24.75, + "name": "my product 2", + "sku": "p-299" + } + ], + "step": 1, + "paymentMethod": "Visa", + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "checkout", + "pr1id": "p-298", + "pr1cd1": "my product", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr2id": "p-299", + "pr2cd1": "my product 2", + "pr2nm": "my product 2", + "pr2pr": 24.75, + "ea": "checkout started", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "cu": "CAD", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "cos": 1, + "pr1qt": 1, + "pr2qt": 1, + "ul": "en-US", + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 15", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "order updated", + "properties": { + "currency": "CAD", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298" + }, + { + "quantity": 1, + "price": 24.75, + "name": "my product 2", + "sku": "p-299" + } + ], + "step": 1, + "paymentMethod": "Visa", + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "checkout", + "pr1id": "p-298", + "pr1cd1": "my product", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr2id": "p-299", + "pr2cd1": "my product 2", + "pr2nm": "my product 2", + "pr2pr": 24.75, + "ea": "order updated", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "cu": "CAD", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "cos": 1, + "pr1qt": 1, + "pr2qt": 1, + "ul": "en-US", + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 16", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "checkout step viewed", + "properties": { + "currency": "CAD", + "step": 1 + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "checkout", + "ea": "checkout step viewed", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "cos": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 17", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "checkout step completed", + "properties": { + "currency": "CAD", + "step": 1, + "paymentMethod": "Visa" + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "checkout_option", + "ea": "checkout step completed", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "cos": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 18", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "order refunded", + "properties": { + "products": [ + { + "quantity": 1, + "sku": "p-298" + }, + { + "quantity": 1, + "sku": "p-299" + } + ], + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ea": "order refunded", + "ec": "EnhancedEcommerce", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "pa": "refund", + "pr1id": "p-298", + "pr1qt": 1, + "pr2id": "p-299", + "ul": "en-US", + "pr2qt": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 19", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "order starterefundedd", + "properties": { + "products": [ + { + "quantity": 1, + "sku": "p-298" + }, + { + "quantity": 1, + "sku": "p-299" + } + ], + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ea": "order starterefundedd", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 20", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "order starterefundedd", + "properties": { + "products": [ + { + "quantity": 1, + "sku": "p-298" + }, + { + "quantity": 1, + "sku": "p-299" + } + ], + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ea": "order starterefundedd", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 21", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "order starterefundedd", + "properties": { + "products": [ + { + "quantity": 1, + "sku": "p-298" + }, + { + "quantity": 1, + "sku": "p-299" + } + ], + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "aip": 1, + "cid": "00000000000000000000000000", + "ea": "order starterefundedd", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 22", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "order starterefundedd", + "properties": { + "products": [ + { + "quantity": 1, + "sku": "p-298" + }, + { + "quantity": 1, + "sku": "p-299" + } + ], + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "cid": "00000000000000000000000000", + "ea": "order starterefundedd", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 23", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "order starterefundedd", + "properties": { + "products": [ + { + "quantity": 1, + "sku": "p-298" + }, + { + "quantity": 1, + "sku": "p-299" + } + ], + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ea": "order starterefundedd", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 24", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "linkid test", + "properties": { + "linkid": "abc123", + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "linkid": "abc123", + "cid": "00000000000000000000000000", + "ea": "linkid test", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 25", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + }, + "campaign": { + "name": "sampleName", + "source": "sampleSource", + "medium": "sampleMedium", + "content": "sampleContent", + "term": "sampleTerm" + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "campaign test", + "properties": { + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "cn": "sampleName", + "cs": "sampleSource", + "cm": "sampleMedium", + "cc": "sampleContent", + "ck": "sampleTerm", + "cid": "00000000000000000000000000", + "ea": "campaign test", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 26", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + }, + "campaign": { + "name": "sampleName", + "source": "sampleSource", + "medium": "sampleMedium", + "content": "sampleContent", + "term": "sampleTerm" + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "event": "campaign test", + "properties": { + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "cn": "sampleName", + "cs": "sampleSource", + "cm": "sampleMedium", + "cc": "sampleContent", + "ck": "sampleTerm", + "cid": "00000000000000000000000000", + "ea": "campaign test", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 27", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + }, + "campaign": { + "name": "sampleName", + "source": "sampleSource", + "medium": "sampleMedium", + "content": "sampleContent", + "term": "sampleTerm" + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "event": "campaign test", + "properties": { + "testDimension": true, + "testMetric": true + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ul": "en-US", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "cn": "sampleName", + "cs": "sampleSource", + "cm": "sampleMedium", + "cc": "sampleContent", + "ck": "sampleTerm", + "cid": "00000000000000000000000000", + "ea": "campaign test", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 28", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.2" + }, + "traits": { + "abc": "1234" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.2" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", + "locale": "en-GB", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + }, + "page": { + "path": "/tests/html/ecomm_test.html", + "referrer": "http://0.0.0.0:1112/tests/html/", + "search": "", + "title": "GA Ecommerce Test", + "url": "http://0.0.0.0:1112/tests/html/ecomm_test.html" + } + }, + "type": "identify", + "messageId": "bc8a6af8-37fd-46a9-9592-ea29a256435f", + "originalTimestamp": "2020-06-22T11:30:32.493Z", + "anonymousId": "38e169a1-3234-46f7-9ceb-c1a6a69005fe", + "userId": "123", + "integrations": { + "All": true + }, + "sentAt": "2020-06-22T11:30:32.494Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "User Enriched", + "dt": "GA Ecommerce Test", + "ec": "All", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.1.2", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "uid": "123", + "cid": "38e169a1-3234-46f7-9ceb-c1a6a69005fe", + "ni": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36", + "ul": "en-GB", + "qt": 103120167507, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "38e169a1-3234-46f7-9ceb-c1a6a69005fe" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 29", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "page", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "v": "1", + "t": "pageview", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "uip": "0.0.0.0", + "qt": 124893881701, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 30", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "page", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "path": "/abc", + "referrer": "", + "search": "?xyz=1", + "title": "", + "url": "https://www.example.com/abc" + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "v": "1", + "t": "pageview", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "uip": "0.0.0.0", + "dh": "www.example.com", + "dl": "https://www.example.com/abc", + "dp": "%2Fabc%3Fxyz%3D1", + "qt": 124893881701, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 31", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "integrations": { + "All": true + }, + "event": "sample event", + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ea": "sample event", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "uip": "0.0.0.0", + "qt": 124893881701, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 32", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Order Refunded", + "properties": { + "order_id": "rudderstackorder1", + "total": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "refund", + "ev": 100, + "pr1id": "p-298", + "pr1cd1": "my product", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr1qt": 1, + "pr2id": "p-299", + "pr2cd1": "other product", + "pr2nm": "other product", + "pr2pr": 24.75, + "pr2qt": 3, + "ea": "Order Refunded", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "ti": "rudderstackorder1", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 33", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Order Refunded", + "properties": { + "order_id": "rudderstackorder1", + "total": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR" + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ev": 100, + "pa": "refund", + "ti": "rudderstackorder1", + "ea": "Order Refunded", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 34", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Order Refunded", + "properties": { + "order_id": "rudderstackorder1", + "total": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ev": 100, + "pa": "refund", + "ti": "rudderstackorder1", + "ea": "Order Refunded", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 35", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Order Refunded", + "properties": { + "order_id": "rudderstackorder1", + "total": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298", + "product_id": "1" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299", + "product_id": "2" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ev": 100, + "pa": "refund", + "pr1id": "1", + "pr1cd1": "my product", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr1qt": 1, + "pr2id": "2", + "pr2cd1": "other product", + "pr2nm": "other product", + "pr2pr": 24.75, + "pr2qt": 3, + "ea": "Order Refunded", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "ti": "rudderstackorder1", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 36", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Cart Shared", + "properties": { + "order_id": "rudderstackorder1", + "total": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298", + "product_id": "1" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299", + "product_id": "2" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ev": 100, + "ea": "Cart Shared", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "st": " 1 2", + "ul": "en-US", + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 37", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Product Shared", + "properties": { + "product_id": "rudderstackorder1", + "total": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "url": "https://www.example.com/abc" + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ev": 100, + "ea": "Product Shared", + "ec": "All", + "ni": 1, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "st": "https://www.example.com/abc", + "dh": "www.example.com", + "dl": "https://www.example.com/abc", + "dp": "%2Fabc", + "ul": "en-US", + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 38", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Product List Clicked", + "properties": { + "list_id": "Sample Product List", + "category": "Sample Product List", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298", + "product_id": "1" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299", + "product_id": "2" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "Product List Clicked", + "ec": "Sample Product List", + "pa": "click", + "il1pi1id": "1", + "pr1cd1": "my product", + "il1pi1nm": "my product", + "il1pi1pr": 24.75, + "il1pi2id": "2", + "pr2cd1": "other product", + "il1pi2nm": "other product", + "il1pi2pr": 24.75, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "il1nm": "Sample Product List", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "uid": "12345", + "ni": 1, + "il1pi2qt": 3, + "il1pi1qt": 1, + "ul": "en-US", + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 39", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Product List Clicked", + "properties": { + "list_id": "Sample Product List", + "category": "Sample Product List", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "Product List Clicked", + "ec": "Sample Product List", + "pa": "click", + "il1pi1id": "p-298", + "pr1cd1": "my product", + "il1pi1nm": "my product", + "il1pi1pr": 24.75, + "il1pi2id": "p-299", + "pr2cd1": "other product", + "il1pi2nm": "other product", + "il1pi2pr": 24.75, + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "il1nm": "Sample Product List", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "uid": "12345", + "ul": "en-US", + "il1pi2qt": 3, + "il1pi1qt": 1, + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 40", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Product List Clicked", + "properties": { + "list_id": "Sample Product List", + "category": "Sample Product List", + "products": [] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ni": 1, + "ea": "Product List Clicked", + "ec": "Sample Product List", + "pa": "click", + "el": "event", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "ul": "en-US", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "il1nm": "Sample Product List", + "uid": "12345", + "cid": "00000000000000000000000000", + "qt": 124893881700 + }, + "body": { + "JSON": {}, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 41", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Order Cancelled", + "properties": { + "order_id": "rudderstackorder1", + "total": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298", + "product_id": "1" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299", + "product_id": "2" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "refund", + "ev": 100, + "tr": 99.99, + "pr1id": "1", + "pr1cd1": "my product", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr2id": "2", + "pr2cd1": "other product", + "pr2nm": "other product", + "pr2pr": 24.75, + "ea": "Order Cancelled", + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ti": "rudderstackorder1", + "ts": 13.99, + "tt": 20.99, + "cu": "INR", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "pr1qt": 1, + "pr2qt": 3, + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 42", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Order Cancelled", + "properties": { + "order_id": "rudderstackorder1", + "value": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298", + "product_id": "1" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299", + "product_id": "2" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "refund", + "tr": 99.99, + "pr1id": "1", + "pr1cd1": "my product", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr2id": "2", + "pr2cd1": "other product", + "pr2nm": "other product", + "pr2pr": 24.75, + "ea": "Order Cancelled", + "ev": 100, + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ti": "rudderstackorder1", + "ts": 13.99, + "tt": 20.99, + "cu": "INR", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "pr1qt": 1, + "pr2qt": 3, + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 43", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Order Cancelled", + "properties": { + "order_id": "rudderstackorder1", + "revenue": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298", + "product_id": "1" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299", + "product_id": "2" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "pa": "refund", + "tr": 99.99, + "pr1id": "1", + "pr1cd1": "my product", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr2id": "2", + "pr2cd1": "other product", + "pr2nm": "other product", + "pr2pr": 24.75, + "ea": "Order Cancelled", + "ev": 100, + "ec": "EnhancedEcommerce", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ti": "rudderstackorder1", + "ts": 13.99, + "tt": 20.99, + "cu": "INR", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "pr1qt": 1, + "pr2qt": 3, + "ni": 1, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 44", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Order Cancelled", + "properties": { + "order_id": "rudderstackorder1", + "revenue": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "error": "No product information supplied for transaction event", + "statTags": { + "destType": "GA360", + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "feature": "processor", + "implementation": "native", + "module": "destination" + }, + "statusCode": 400 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 45", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Cart Viewed", + "properties": { + "order_id": "rudderstackorder1", + "revenue": 99.99, + "shipping": 13.99, + "tax": 20.99, + "currency": "INR", + "products": [ + { + "quantity": 1, + "price": 24.75, + "name": "my product", + "sku": "p-298", + "product_id": "1" + }, + { + "quantity": 3, + "price": 24.75, + "name": "other product", + "sku": "p-299", + "product_id": "2" + } + ] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "Cart Viewed", + "ev": 100, + "ec": "EnhancedEcommerce", + "pa": "detail", + "v": "1", + "t": "event", + "el": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "cid": "00000000000000000000000000", + "uid": "12345", + "ul": "en-US", + "ni": 1, + "pr1cd1": "my product", + "pr1id": "1", + "pr1nm": "my product", + "pr1pr": 24.75, + "pr1qt": 1, + "pr2cd1": "other product", + "pr2id": "2", + "pr2nm": "other product", + "pr2pr": 24.75, + "pr2qt": 3, + "qt": 124893881700, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 46", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "traits": { + "name1": "Test" + }, + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "properties": { + "plan": "standard plan", + "name": "rudder test" + }, + "type": "identify", + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "originalTimestamp": "2019-10-14T09:03:17.562Z", + "anonymousId": "00000000000000000000000000", + "userId": "123456", + "integrations": { + "All": true + }, + "traits": { + "name1": "Test" + }, + "sentAt": "2019-10-14T09:03:22.563Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "serverSideIdentifyEventCategory": "name", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "error": "server side identify is not on", + "statTags": { + "destType": "GA360", + "errorCategory": "dataValidation", + "errorType": "configuration", + "feature": "processor", + "implementation": "native", + "module": "destination" + }, + "statusCode": 400 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 47", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "screen", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "name": "homescreen" + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "cd1": "homescreen", + "v": "1", + "t": "screenview", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "cd": "homescreen", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "ul": "en-US", + "uip": "0.0.0.0", + "qt": 124893881701, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 48", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "newtype", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "name": "homescreen" + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "error": "Message type newtype not supported", + "statTags": { + "destType": "GA360", + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "feature": "processor", + "implementation": "native", + "module": "destination" + }, + "statusCode": 400 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 49", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "traits": { + "name": "Test" + }, + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "properties": { + "plan": "standard plan", + "name": "rudder test" + }, + "type": "identify", + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "originalTimestamp": "2019-10-14T09:03:17.562Z", + "userId": "12345", + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T09:03:22.563Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "name", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "userId": "12345", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "action1", + "ec": "Test", + "ni": 1, + "cd1": "Test", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "ul": "en-US", + "uid": "12345", + "cid": "827ccb0eea8a706c4c34a16891f84e7b", + "uip": "0.0.0.0", + "qt": 124901802438 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {} + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 50", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "traits": { + "name": "Test" + }, + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "properties": { + "plan": "standard plan", + "name": "rudder test" + }, + "type": "identify", + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "originalTimestamp": "2019-10-14T09:03:17.562Z", + "userId": "12345", + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T09:03:22.563Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "name", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "disableMd5": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "userId": "12345", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "action1", + "ec": "Test", + "ni": 1, + "cd1": "Test", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "ul": "en-US", + "uid": "12345", + "uip": "0.0.0.0", + "qt": 124901802438 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {} + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 51", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "traits": { + "name": "Test" + }, + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "properties": { + "plan": "standard plan", + "name": "rudder test" + }, + "type": "identify", + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "originalTimestamp": "2019-10-14T09:03:17.562Z", + "userId": "12345", + "integrations": { + "All": true, + "GA": { + "clientId": "clientId" + }, + "Google Analytics": { + "clientId": "clientId" + } + }, + "sentAt": "2019-10-14T09:03:22.563Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "name", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "userId": "12345", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "action1", + "ec": "Test", + "ni": 1, + "cd1": "Test", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "ul": "en-US", + "uid": "12345", + "cid": "clientId", + "uip": "0.0.0.0", + "qt": 124901802438 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {} + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "ga360", + "description": "Test 52", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "channel": "web", + "context": { + "externalId": [ + { + "id": "externalClientId", + "type": "gaExternalId" + } + ], + "traits": { + "name": "Test" + }, + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "properties": { + "plan": "standard plan", + "name": "rudder test" + }, + "type": "identify", + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "originalTimestamp": "2019-10-14T09:03:17.562Z", + "userId": "12345", + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T09:03:22.563Z" + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "name", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "userId": "12345", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "action1", + "ec": "Test", + "ni": 1, + "cd1": "Test", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "ul": "en-US", + "uid": "12345", + "cid": "externalClientId", + "uip": "0.0.0.0", + "qt": 124901802438 + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {} + }, + "statusCode": 200 + } + ] + } + } + } +].map((d) => ({ ...d, mockFns })) \ No newline at end of file diff --git a/test/integrations/destinations/ga360/router/data.ts b/test/integrations/destinations/ga360/router/data.ts new file mode 100644 index 00000000000..15086b6b2fe --- /dev/null +++ b/test/integrations/destinations/ga360/router/data.ts @@ -0,0 +1,487 @@ +export const mockFns = (_) => { + // @ts-ignore + jest + .useFakeTimers() + .setSystemTime(new Date('2023-09-29')); +}; + +export const data = [ + { + name: 'ga360', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + "message": { + "channel": "web", + "context": { + "traits": { + "name": "Rudder Test" + }, + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "properties": { + "plan": "standard plan", + "name": "rudder test" + }, + "type": "identify", + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "originalTimestamp": "2019-10-14T09:03:17.562Z", + "anonymousId": "00000000000000000000000000", + "userId": "123456", + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T09:03:22.563Z" + }, + "metadata": { + "jobId": 1 + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "name", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "name", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + }, + { + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "page", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "path": "/abc", + "referrer": "q", + "search": "", + "title": "a", + "url": "https://www.example.com/abc" + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "metadata": { + "jobId": 2 + }, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ], + destType: 'ga360', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + "batchedRequest": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "ea": "action1", + "ec": "Rudder Test", + "cd1": "Rudder Test", + "cg2": "Rudder Test", + "v": "1", + "t": "event", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "uid": "123456", + "cid": "00000000000000000000000000", + "ni": 1, + "uip": "0.0.0.0", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "ul": "en-US", + "qt": 124901802438, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "metadata": [ + { + "jobId": 1 + } + ], + "batched": false, + "statusCode": 200, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "name", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "name", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + }, + { + "batchedRequest": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://www.google-analytics.com/collect", + "headers": {}, + "params": { + "v": "1", + "t": "pageview", + "tid": "UA-165994240-1", + "ds": "web", + "an": "RudderLabs JavaScript SDK", + "av": "1.0.0", + "aiid": "com.rudderlabs.javascript", + "npa": 1, + "aip": 1, + "cid": "00000000000000000000000000", + "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "uid": "12345", + "uip": "0.0.0.0", + "ul": "en-US", + "dh": "www.example.com", + "dl": "https://www.example.com/abc", + "dp": "%2Fabc", + "dr": "q", + "dt": "a", + "qt": 124893881701, + }, + "body": { + "JSON": {}, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "00000000000000000000000000" + }, + "metadata": [ + { + "jobId": 2 + } + ], + "batched": false, + "statusCode": 200, + "destination": { + "Config": { + "trackingID": "UA-165994240-1", + "doubleClick": true, + "enhancedLinkAttribution": true, + "classic": true, + "ignoredReferrers": "", + "serverClassic": false, + "includeSearch": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "sampleRate": "100", + "siteSpeedSampleRate": "1", + "setAllMappedProps": true, + "enableServerSideIdentify": true, + "serverSideIdentifyEventCategory": "cat1", + "serverSideIdentifyEventAction": "action1", + "anonymizeIp": true, + "domain": "domain", + "enhancedEcommerce": true, + "nonInteraction": true, + "optimize": "abc123", + "sendUserId": true, + "useGoogleAmpClientId": true, + "web-useNativeSDK": true, + "dimensions": [ + { + "from": "name", + "to": "dimension1" + }, + { + "from": "custom2", + "to": "dimension2" + } + ], + "metrics": [ + { + "from": "email", + "to": "metric1" + }, + { + "from": "trait2", + "to": "metric2" + } + ], + "resetCustomDimensionsOnPage": [ + { + "resetCustomDimensionsOnPage": "abc" + }, + { + "resetCustomDimensionsOnPage": "xyz" + } + ], + "contentGroupings": [ + { + "from": "plan", + "to": "contentGroup1" + }, + { + "from": "prop2", + "to": "contentGroup2" + } + ] + }, + "Enabled": true + } + } + ], + }, + }, + }, + } +].map((d) => ({ ...d, mockFns })); diff --git a/test/integrations/destinations/gcs_datalake/processor/data.ts b/test/integrations/destinations/gcs_datalake/processor/data.ts new file mode 100644 index 00000000000..2148d5a3e6b --- /dev/null +++ b/test/integrations/destinations/gcs_datalake/processor/data.ts @@ -0,0 +1,191 @@ +export const data = [ + { + name: 'gcs_datalake', + description: 'No Message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + "message": { + "receivedAt": "2023-09-29T15:07:16.650Z", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "email": "test@rudderstack.com" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "type": "track", + "messageId": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "originalTimestamp": "2019-10-14T11:15:18.300Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "event": "Product List Clicked", + "properties": { + "list_id": "Sample Product List", + "category": "Sample Product List", + "products": [] + }, + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T11:15:53.296Z" + }, + "destination": { + "Config": { + "bucketName": "ps-data-mdm-prod-rudderstack", + "prefix": "", + "namespace": "", + "credentials": "randomcreds", + "syncFrequency": "30", + "tableSuffix": "", + "timeWindowLayout": "2006/01/02/15" + }, + "Enabled": true + } + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + "output": { + "metadata": { + "table": "tracks", + "columns": { + "uuid_ts": "datetime", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_traits_email": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_user_agent": "string", + "context_locale": "string", + "context_screen_density": "int", + "event_text": "string", + "id": "string", + "anonymous_id": "string", + "user_id": "string", + "sent_at": "datetime", + "received_at": "datetime", + "original_timestamp": "datetime", + "channel": "string", + "event": "string" + }, + "receivedAt": "2023-09-29T15:07:16.650Z" + }, + "data": { + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.0", + "context_traits_email": "test@rudderstack.com", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.0", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "context_locale": "en-US", + "context_screen_density": 2, + "event_text": "Product List Clicked", + "id": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "anonymous_id": "00000000000000000000000000", + "user_id": "12345", + "sent_at": "2019-10-14T11:15:53.296Z", + "received_at": "2023-09-29T15:07:16.650Z", + "original_timestamp": "2019-10-14T11:15:18.300Z", + "channel": "web", + "event": "product_list_clicked" + }, + "userId": "" + }, + "statusCode": 200 + }, + { + "output": { + "metadata": { + "table": "product_list_clicked", + "columns": { + "uuid_ts": "datetime", + "list_id": "string", + "category": "string", + "context_app_build": "string", + "context_app_name": "string", + "context_app_namespace": "string", + "context_app_version": "string", + "context_traits_email": "string", + "context_library_name": "string", + "context_library_version": "string", + "context_user_agent": "string", + "context_locale": "string", + "context_screen_density": "int", + "event_text": "string", + "id": "string", + "anonymous_id": "string", + "user_id": "string", + "sent_at": "datetime", + "received_at": "datetime", + "original_timestamp": "datetime", + "channel": "string", + "event": "string" + }, + "receivedAt": "2023-09-29T15:07:16.650Z" + }, + "data": { + "list_id": "Sample Product List", + "category": "Sample Product List", + "context_app_build": "1.0.0", + "context_app_name": "RudderLabs JavaScript SDK", + "context_app_namespace": "com.rudderlabs.javascript", + "context_app_version": "1.0.0", + "context_traits_email": "test@rudderstack.com", + "context_library_name": "RudderLabs JavaScript SDK", + "context_library_version": "1.0.0", + "context_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "context_locale": "en-US", + "context_screen_density": 2, + "event_text": "Product List Clicked", + "id": "ec5481b6-a926-4d2e-b293-0b3a77c4d3be", + "anonymous_id": "00000000000000000000000000", + "user_id": "12345", + "sent_at": "2019-10-14T11:15:53.296Z", + "received_at": "2023-09-29T15:07:16.650Z", + "original_timestamp": "2019-10-14T11:15:18.300Z", + "channel": "web", + "event": "product_list_clicked" + }, + "userId": "" + }, + "statusCode": 200 + } + ], + }, + }, + } +]; diff --git a/test/integrations/destinations/gladly/network.ts b/test/integrations/destinations/gladly/network.ts new file mode 100644 index 00000000000..8c1c2287387 --- /dev/null +++ b/test/integrations/destinations/gladly/network.ts @@ -0,0 +1,120 @@ +const deleteNwData = [ + { + httpReq: { + method: 'get', + url: 'https://rudderlabs.us-uat.gladly.qa/api/v1/customer-profiles?email=test%40rudderlabs.com', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic dGVzdFVzZXJOYW1lOnRlc3RBcGlUb2tlbg==', + }, + }, + httpRes: { + data: [], + status: 200, + }, + }, + { + httpReq: { + method: 'get', + url: 'https://rudderlabs.us-uat.gladly.qa/api/v1/customer-profiles?email=test%2B2%40rudderlabs.com', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic dGVzdFVzZXJOYW1lOnRlc3RBcGlUb2tlbg==', + }, + }, + httpRes: { + data: [ + { + emails: [ + { + normalized: 'test+2@rudderstack.com', + original: 'test+2@rudderlabs.com', + }, + ], + externalCustomerId: 'externalCustomer@2', + name: 'Test Rudderstack', + phones: [], + id: 'user@2', + }, + ], + status: 200, + }, + }, + { + httpReq: { + method: 'get', + url: 'https://rudderlabs.us-uat.gladly.qa/api/v1/customer-profiles?phoneNumber=%2B91%209999999988', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic dGVzdFVzZXJOYW1lOnRlc3RBcGlUb2tlbg==', + }, + }, + httpRes: { + data: [ + { + emails: [ + { + normalized: 'test+3@rudderstack.com', + original: 'test+3@rudderlabs.com', + }, + ], + externalCustomerId: 'externalCustomer@3', + name: 'Test Rudderstack', + phones: [], + id: 'user@3', + }, + { + emails: [ + { + normalized: 'test+4@rudderstack.com', + original: 'test+4@rudderlabs.com', + }, + ], + externalCustomerId: 'externalCustomer@4', + name: 'Test Rudderstack', + phones: [], + id: 'user@4', + }, + ], + status: 200, + }, + }, + { + httpReq: { + method: 'get', + url: 'https://rudderlabs.us-uat.gladly.qa/api/v1/customer-profiles?email=test6%40rudderlabs.com', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic dGVzdFVzZXJOYW1lOnRlc3RBcGlUb2tlbg==', + }, + }, + httpRes: { + data: [], + status: 200, + }, + }, + { + httpReq: { + method: 'get', + url: 'https://rudderlabs.us-uat.gladly.qa/api/v1/customer-profiles?email=abc', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic dGVzdFVzZXJOYW1lOnRlc3RBcGlUb2tlbg==', + }, + }, + httpRes: { + data: { + errors: [ + { + attr: 'email', + code: 'invalid', + detail: 'invalid email address', + }, + ], + }, + status: 400, + }, + }, +]; + +export const networkCallsData = [...deleteNwData]; diff --git a/test/integrations/destinations/gladly/processor/data.ts b/test/integrations/destinations/gladly/processor/data.ts new file mode 100644 index 00000000000..e81af999fbc --- /dev/null +++ b/test/integrations/destinations/gladly/processor/data.ts @@ -0,0 +1,809 @@ +export const data = [ + { + name: 'gladly', + description: 'No message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user@1', + channel: 'web', + context: { + traits: { + age: 23, + email: 'adc@test.com', + firstName: 'Test', + }, + }, + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiToken: 'testApiToken', + userName: 'testUserName', + domain: 'rudderlabs.us-uat.gladly.qa', + }, + }, + metadata: { + jobId: 1, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 1, + }, + statusCode: 400, + error: + 'message Type is not present. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message Type is not present. Aborting', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'GLADLY', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'gladly', + description: 'Unsupported message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user@1', + channel: 'web', + context: { + traits: { + age: 23, + email: 'adc@test.com', + firstName: 'Test', + }, + }, + event: 'Product Viewed', + type: 'track', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiToken: 'testApiToken', + userName: 'testUserName', + domain: 'rudderlabs.us-uat.gladly.qa', + }, + }, + metadata: { + jobId: 2, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 2, + }, + statusCode: 400, + error: + 'message type track is not supported: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message type track is not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'GLADLY', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'gladly', + description: 'Missing config', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user@1', + channel: 'web', + context: { + traits: { + age: 23, + email: 'adc@test.com', + firstName: 'Test', + }, + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiToken: 'testApiToken', + domain: 'rudderlabs.us-uat.gladly.qa', + }, + }, + metadata: { + jobId: 3, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 3, + }, + statusCode: 400, + error: + 'User Name is not present. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: User Name is not present. Aborting', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'GLADLY', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'gladly', + description: 'Create customer with email as lookup field', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'externalCustomer@1', + channel: 'web', + context: { + traits: { + age: 23, + email: 'test@rudderlabs.com', + phone: '+91 9999999999', + firstName: 'Test', + lastName: 'Rudderlabs', + address: 'california usa', + }, + externalId: [ + { + id: 'user@1', + type: 'GladlyCustomerId', + }, + ], + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiToken: 'testApiToken', + userName: 'testUserName', + domain: 'rudderlabs.us-uat.gladly.qa', + }, + }, + metadata: { + jobId: 4, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + JSON: { + address: 'california usa', + customAttributes: { age: 23 }, + emails: [{ original: 'test@rudderlabs.com' }], + externalCustomerId: 'externalCustomer@1', + id: 'user@1', + phones: [{ original: '+91 9999999999' }], + }, + XML: {}, + FORM: {}, + JSON_ARRAY: {}, + }, + endpoint: 'https://rudderlabs.us-uat.gladly.qa/api/v1/customer-profiles', + headers: { + Authorization: 'Basic dGVzdFVzZXJOYW1lOnRlc3RBcGlUb2tlbg==', + 'Content-Type': 'application/json', + }, + userId: '', + version: '1', + type: 'REST', + method: 'POST', + files: {}, + params: {}, + }, + metadata: { jobId: 4 }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'gladly', + description: 'Update customer with email as lookup field', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'externalCustomer@2', + channel: 'web', + context: { + traits: { + age: 23, + email: 'test+2@rudderlabs.com', + phone: '+91 9999999998', + firstName: 'Test', + lastName: 'Rudderstack', + address: 'New York, USA', + }, + externalId: [ + { + id: 'user@2', + type: 'GladlyCustomerId', + }, + ], + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiToken: 'testApiToken', + userName: 'testUserName', + domain: 'rudderlabs.us-uat.gladly.qa', + }, + }, + metadata: { + jobId: 5, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + JSON: { + address: 'New York, USA', + customAttributes: { age: 23 }, + emails: [{ original: 'test+2@rudderlabs.com' }], + externalCustomerId: 'externalCustomer@2', + phones: [{ original: '+91 9999999998' }], + }, + XML: {}, + FORM: {}, + JSON_ARRAY: {}, + }, + endpoint: 'https://rudderlabs.us-uat.gladly.qa/api/v1/customer-profiles/user@2', + headers: { + Authorization: 'Basic dGVzdFVzZXJOYW1lOnRlc3RBcGlUb2tlbg==', + 'Content-Type': 'application/json', + }, + userId: '', + version: '1', + type: 'REST', + method: 'PATCH', + files: {}, + params: {}, + }, + metadata: { jobId: 5 }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'gladly', + description: 'Update customer with phone as lookup field', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'externalCustomer@3', + channel: 'web', + context: { + traits: { + phone: '+91 9999999988', + firstName: 'Test', + lastName: 'Rudderstack', + address: 'New York, USA', + }, + externalId: [ + { + id: 'user@3', + type: 'GladlyCustomerId', + }, + ], + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiToken: 'testApiToken', + userName: 'testUserName', + domain: 'rudderlabs.us-uat.gladly.qa', + }, + }, + metadata: { + jobId: 6, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + JSON: { + address: 'New York, USA', + externalCustomerId: 'externalCustomer@3', + phones: [{ original: '+91 9999999988' }], + }, + XML: {}, + FORM: {}, + JSON_ARRAY: {}, + }, + endpoint: 'https://rudderlabs.us-uat.gladly.qa/api/v1/customer-profiles/user@3', + headers: { + Authorization: 'Basic dGVzdFVzZXJOYW1lOnRlc3RBcGlUb2tlbg==', + 'Content-Type': 'application/json', + }, + userId: '', + version: '1', + type: 'REST', + method: 'PATCH', + files: {}, + params: {}, + }, + metadata: { jobId: 6 }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'gladly', + description: 'Required values are not present in payload to create or update customer', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + firstName: 'Test', + lastName: 'Rudderstack', + address: 'New York, USA', + }, + }, + type: 'identify', + anonymousId: '78c53c15-32a1-4b65-adac-bec2d7bb8fab', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiToken: 'testApiToken', + userName: 'testUserName', + domain: 'rudderlabs.us-uat.gladly.qa', + }, + }, + metadata: { + jobId: 7, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 7, + }, + statusCode: 400, + error: + 'One of phone, email, userId or GladlyCustomerId is required for an identify call: Workflow: procWorkflow, Step: validatePayload, ChildStep: undefined, OriginalError: One of phone, email, userId or GladlyCustomerId is required for an identify call', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'GLADLY', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'gladly', + description: 'Multiple emails and phones are present in payload', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'externalCustomer@6', + channel: 'web', + context: { + traits: { + age: 23, + email: [ + 'test6@rudderlabs.com', + 'test6home@rudderlabs.com', + 'test6office@rudderlabs.com', + ], + phone: ['+91 8888888888', '+91 8888888889'], + firstName: 'Test', + lastName: 'Rudderlabs', + address: 'Germany', + }, + externalId: [ + { + id: 'user@6', + type: 'GladlyCustomerId', + }, + ], + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiToken: 'testApiToken', + userName: 'testUserName', + domain: 'rudderlabs.us-uat.gladly.qa', + }, + }, + metadata: { + jobId: 8, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + JSON: { + address: 'Germany', + customAttributes: { age: 23 }, + emails: [ + { original: 'test6@rudderlabs.com' }, + { original: 'test6home@rudderlabs.com' }, + { original: 'test6office@rudderlabs.com' }, + ], + externalCustomerId: 'externalCustomer@6', + id: 'user@6', + phones: [{ original: '+91 8888888888' }, { original: '+91 8888888889' }], + }, + XML: {}, + FORM: {}, + JSON_ARRAY: {}, + }, + endpoint: 'https://rudderlabs.us-uat.gladly.qa/api/v1/customer-profiles', + headers: { + Authorization: 'Basic dGVzdFVzZXJOYW1lOnRlc3RBcGlUb2tlbg==', + 'Content-Type': 'application/json', + }, + userId: '', + version: '1', + type: 'REST', + method: 'POST', + files: {}, + params: {}, + }, + metadata: { jobId: 8 }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'gladly', + description: 'Create customer with only GladlyCustomerId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + firstName: 'Test', + lastName: 'Undefined', + address: 'India', + isProUser: true, + }, + externalId: [ + { + id: 'user@9', + type: 'GladlyCustomerId', + }, + ], + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiToken: 'testApiToken', + userName: 'testUserName', + domain: 'rudderlabs.us-uat.gladly.qa', + }, + }, + metadata: { + jobId: 9, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + JSON: { + address: 'India', + customAttributes: { isProUser: true }, + id: 'user@9', + }, + XML: {}, + FORM: {}, + JSON_ARRAY: {}, + }, + endpoint: 'https://rudderlabs.us-uat.gladly.qa/api/v1/customer-profiles', + headers: { + Authorization: 'Basic dGVzdFVzZXJOYW1lOnRlc3RBcGlUb2tlbg==', + 'Content-Type': 'application/json', + }, + userId: '', + version: '1', + type: 'REST', + method: 'POST', + files: {}, + params: {}, + }, + metadata: { jobId: 9 }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'gladly', + description: 'Create customer with invalid lookup field value', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + firstName: 'Test', + lastName: 'Undefined', + address: 'Pakistan', + email: 'abc', + }, + externalId: [ + { + id: 'user@10', + type: 'GladlyCustomerId', + }, + ], + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.757+05:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiToken: 'testApiToken', + userName: 'testUserName', + domain: 'rudderlabs.us-uat.gladly.qa', + }, + }, + metadata: { + jobId: 10, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + JSON: { + address: 'Pakistan', + emails: [{ original: 'abc' }], + id: 'user@10', + }, + XML: {}, + FORM: {}, + JSON_ARRAY: {}, + }, + endpoint: 'https://rudderlabs.us-uat.gladly.qa/api/v1/customer-profiles', + headers: { + Authorization: 'Basic dGVzdFVzZXJOYW1lOnRlc3RBcGlUb2tlbg==', + 'Content-Type': 'application/json', + }, + userId: '', + version: '1', + type: 'REST', + method: 'POST', + files: {}, + params: {}, + }, + metadata: { jobId: 10 }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/gladly/router/data.ts b/test/integrations/destinations/gladly/router/data.ts new file mode 100644 index 00000000000..413c92e2477 --- /dev/null +++ b/test/integrations/destinations/gladly/router/data.ts @@ -0,0 +1,604 @@ +export const data = [ + { + name: 'gladly', + description: 'Gladly router tests', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + userId: 'externalCustomer@1', + channel: 'web', + context: { + traits: { + age: 23, + email: 'test@rudderlabs.com', + phone: '+91 9999999999', + firstName: 'Test', + lastName: 'Rudderlabs', + address: 'california usa', + }, + externalId: [ + { + id: 'user@1', + type: 'GladlyCustomerId', + }, + ], + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.75705:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiToken: 'testApiToken', + userName: 'testUserName', + domain: 'rudderlabs.us-uat.gladly.qa', + }, + }, + metadata: { + jobId: 1, + }, + }, + { + message: { + userId: 'externalCustomer@2', + channel: 'web', + context: { + traits: { + age: 23, + email: 'test+2@rudderlabs.com', + phone: '+91 9999999998', + firstName: 'Test', + lastName: 'Rudderstack', + address: 'New York, USA', + }, + externalId: [ + { + id: 'user@2', + type: 'GladlyCustomerId', + }, + ], + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.75705:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiToken: 'testApiToken', + userName: 'testUserName', + domain: 'rudderlabs.us-uat.gladly.qa', + }, + }, + metadata: { + jobId: 2, + }, + }, + { + message: { + userId: 'externalCustomer@3', + channel: 'web', + context: { + traits: { + phone: '+91 9999999988', + firstName: 'Test', + lastName: 'Rudderstack', + address: 'New York, USA', + }, + externalId: [ + { + id: 'user@3', + type: 'GladlyCustomerId', + }, + ], + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.75705:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiToken: 'testApiToken', + userName: 'testUserName', + domain: 'rudderlabs.us-uat.gladly.qa', + }, + }, + metadata: { + jobId: 3, + }, + }, + ], + destType: 'gladly', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + batchedRequest: { + body: { + FORM: {}, + JSON: { + address: 'california usa', + customAttributes: { + age: 23, + }, + emails: [ + { + original: 'test@rudderlabs.com', + }, + ], + externalCustomerId: 'externalCustomer@1', + id: 'user@1', + phones: [ + { + original: '+91 9999999999', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://rudderlabs.us-uat.gladly.qa/api/v1/customer-profiles', + files: {}, + headers: { + Authorization: 'Basic dGVzdFVzZXJOYW1lOnRlc3RBcGlUb2tlbg==', + 'Content-Type': 'application/json', + }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + destination: { + Config: { + apiToken: 'testApiToken', + domain: 'rudderlabs.us-uat.gladly.qa', + userName: 'testUserName', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: [ + { + jobId: 1, + }, + ], + statusCode: 200, + }, + { + batched: false, + batchedRequest: { + body: { + FORM: {}, + JSON: { + address: 'New York, USA', + customAttributes: { + age: 23, + }, + emails: [ + { + original: 'test+2@rudderlabs.com', + }, + ], + externalCustomerId: 'externalCustomer@2', + phones: [ + { + original: '+91 9999999998', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://rudderlabs.us-uat.gladly.qa/api/v1/customer-profiles/user@2', + files: {}, + headers: { + Authorization: 'Basic dGVzdFVzZXJOYW1lOnRlc3RBcGlUb2tlbg==', + 'Content-Type': 'application/json', + }, + method: 'PATCH', + params: {}, + type: 'REST', + version: '1', + }, + destination: { + Config: { + apiToken: 'testApiToken', + domain: 'rudderlabs.us-uat.gladly.qa', + userName: 'testUserName', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: [ + { + jobId: 2, + }, + ], + statusCode: 200, + }, + { + batched: false, + batchedRequest: { + body: { + FORM: {}, + JSON: { + address: 'New York, USA', + externalCustomerId: 'externalCustomer@3', + phones: [ + { + original: '+91 9999999988', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://rudderlabs.us-uat.gladly.qa/api/v1/customer-profiles/user@3', + files: {}, + headers: { + Authorization: 'Basic dGVzdFVzZXJOYW1lOnRlc3RBcGlUb2tlbg==', + 'Content-Type': 'application/json', + }, + method: 'PATCH', + params: {}, + type: 'REST', + version: '1', + }, + destination: { + Config: { + apiToken: 'testApiToken', + domain: 'rudderlabs.us-uat.gladly.qa', + userName: 'testUserName', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: [ + { + jobId: 3, + }, + ], + statusCode: 200, + }, + ], + }, + }, + }, + }, + { + name: 'gladly', + description: 'Gladly rETL tests', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + userId: 'externalCustomer@1', + channel: 'web', + context: { + externalId: [ + { + id: 'externalCustomer@1', + identifierType: 'externalCustomerId', + }, + ], + mappedToDestination: true, + }, + traits: { + id: 'user@1', + emails: ['test@rudderlabs.com'], + phones: ['+91 9999999999'], + firstName: 'Test', + lastName: 'Rudderlabs', + address: 'california usa', + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.75705:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiToken: 'testApiToken', + userName: 'testUserName', + domain: 'rudderlabs.us-uat.gladly.qa', + }, + }, + metadata: { + jobId: 1, + }, + }, + { + message: { + userId: 'externalCustomer@2', + channel: 'web', + context: { + externalId: [ + { + id: 'externalCustomer@2', + identifierType: 'externalCustomerId', + }, + ], + mappedToDestination: true, + }, + traits: { + id: 'user@2', + emails: 'test+2@rudderlabs.com', + phones: '+91 9999999998', + firstName: 'Test', + lastName: 'Rudderstack', + address: 'New York, USA', + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.75705:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiToken: 'testApiToken', + userName: 'testUserName', + domain: 'rudderlabs.us-uat.gladly.qa', + }, + }, + metadata: { + jobId: 2, + }, + }, + { + message: { + userId: 'externalCustomer@3', + channel: 'web', + context: { + externalId: [ + { + id: 'externalCustomer@3', + identifierType: 'externalCustomerId', + }, + ], + mappedToDestination: true, + }, + traits: { + id: 'user@3', + phones: '+91 9999999988', + firstName: 'Test', + lastName: 'Rudderstack', + address: 'New York, USA', + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.75705:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiToken: 'testApiToken', + userName: 'testUserName', + domain: 'rudderlabs.us-uat.gladly.qa', + }, + }, + metadata: { + jobId: 3, + }, + }, + ], + destType: 'gladly', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + batchedRequest: { + body: { + FORM: {}, + JSON: { + address: 'california usa', + emails: [ + { + original: 'test@rudderlabs.com', + }, + ], + externalCustomerId: 'externalCustomer@1', + id: 'user@1', + phones: [ + { + original: '+91 9999999999', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://rudderlabs.us-uat.gladly.qa/api/v1/customer-profiles', + files: {}, + headers: { + Authorization: 'Basic dGVzdFVzZXJOYW1lOnRlc3RBcGlUb2tlbg==', + 'Content-Type': 'application/json', + }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + destination: { + Config: { + apiToken: 'testApiToken', + domain: 'rudderlabs.us-uat.gladly.qa', + userName: 'testUserName', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: [ + { + jobId: 1, + }, + ], + statusCode: 200, + }, + { + batched: false, + batchedRequest: { + body: { + FORM: {}, + JSON: { + address: 'New York, USA', + emails: [ + { + original: 'test+2@rudderlabs.com', + }, + ], + externalCustomerId: 'externalCustomer@2', + phones: [ + { + original: '+91 9999999998', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://rudderlabs.us-uat.gladly.qa/api/v1/customer-profiles/user@2', + files: {}, + headers: { + Authorization: 'Basic dGVzdFVzZXJOYW1lOnRlc3RBcGlUb2tlbg==', + 'Content-Type': 'application/json', + }, + method: 'PATCH', + params: {}, + type: 'REST', + version: '1', + }, + destination: { + Config: { + apiToken: 'testApiToken', + domain: 'rudderlabs.us-uat.gladly.qa', + userName: 'testUserName', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: [ + { + jobId: 2, + }, + ], + statusCode: 200, + }, + { + batched: false, + batchedRequest: { + body: { + FORM: {}, + JSON: { + address: 'New York, USA', + externalCustomerId: 'externalCustomer@3', + phones: [ + { + original: '+91 9999999988', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://rudderlabs.us-uat.gladly.qa/api/v1/customer-profiles/user@3', + files: {}, + headers: { + Authorization: 'Basic dGVzdFVzZXJOYW1lOnRlc3RBcGlUb2tlbg==', + 'Content-Type': 'application/json', + }, + method: 'PATCH', + params: {}, + type: 'REST', + version: '1', + }, + destination: { + Config: { + apiToken: 'testApiToken', + domain: 'rudderlabs.us-uat.gladly.qa', + userName: 'testUserName', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: [ + { + jobId: 3, + }, + ], + statusCode: 200, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/google_adwords_enhanced_conversions/dataDelivery/data.ts b/test/integrations/destinations/google_adwords_enhanced_conversions/dataDelivery/data.ts new file mode 100644 index 00000000000..c9bfac233dd --- /dev/null +++ b/test/integrations/destinations/google_adwords_enhanced_conversions/dataDelivery/data.ts @@ -0,0 +1,290 @@ +export const data = [ + { + name: 'google_adwords_enhanced_conversions', + description: 'Test 0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/1234567890:uploadConversionAdjustments", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl91011", + "login-customer-id": "0987654321" + }, + "params": { + "event": "Product Added", + "customerId": "1234567890", + "destination": "google_adwords_enhanced_conversions" + }, + "body": { + "JSON": { + "partialFailure": true, + "conversionAdjustments": [ + { + "gclidDateTimePair": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00" + }, + "restatementValue": { + "adjustedValue": 10, + "currency": "INR" + }, + "order_id": "10000", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da", + "hashedLastName": "1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4", + "state": "UK", + "city": "London", + "hashedStreetAddress": "9a4d2e50828448f137f119a3ebdbbbab8d6731234a67595fdbfeb2a2315dd550" + } + } + ], + "adjustmentType": "ENHANCEMENT" + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + method: 'POST', + }, + }, + output: { + response: { + status: 401, + body: { + output: { + "message": "\"\"Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.\" during Google_adwords_enhanced_conversions response transformation\"", + "authErrorCategory": "REFRESH_TOKEN", + "destinationResponse": [ + { + "error": { + "code": 401, + "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", + "status": "UNAUTHENTICATED" + } + } + ], + "statTags": { + "destType": "GOOGLE_ADWORDS_ENHANCED_CONVERSIONS", + "errorCategory": "network", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "errorType": "aborted", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination" + }, + "status": 401 + } + }, + }, + }, + }, + { + name: 'google_adwords_enhanced_conversions', + description: 'Test 1', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/1234567899:uploadConversionAdjustments", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl91011", + "login-customer-id": "0987654321" + }, + "params": { + "event": "Product Added", + "customerId": "1234567899", + "destination": "google_adwords_enhanced_conversions" + }, + "body": { + "JSON": { + "partialFailure": true, + "conversionAdjustments": [ + { + "gclidDateTimePair": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00" + }, + "restatementValue": { + "adjustedValue": 10, + "currency": "INR" + }, + "order_id": "10000", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da", + "hashedLastName": "1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4", + "state": "UK", + "city": "London", + "hashedStreetAddress": "9a4d2e50828448f137f119a3ebdbbbab8d6731234a67595fdbfeb2a2315dd550" + } + } + ], + "adjustmentType": "ENHANCEMENT" + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + "output": { + "destinationResponse": { + "response": [ + { + "results": [ + { + "adjustmentDateTime": "2021-01-01 12:32:45-08:00", + "adjustmentType": "ENHANCEMENT", + "conversionAction": "customers/7693729833/conversionActions/874224905", + "gclidDateTimePair": { + "conversionDateTime": "2021-01-01 12:32:45-08:00", + "gclid": "1234", + }, + "orderId": "12345", + }, + ], + }, + ], + "status": 200, + }, + "message": "Request Processed Successfully", + "status": 200, + }, + }, + }, + }, + }, + { + name: 'google_adwords_enhanced_conversions', + description: 'Test 2', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/1234567891:uploadConversionAdjustments", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl91011", + "login-customer-id": "0987654321" + }, + "params": { + "event": "Product Added", + "customerId": "1234567891", + "destination": "google_adwords_enhanced_conversions" + }, + "body": { + "JSON": { + "partialFailure": true, + "conversionAdjustments": [ + { + "gclidDateTimePair": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00" + }, + "restatementValue": { + "adjustedValue": 10, + "currency": "INR" + }, + "order_id": "10000", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da", + "hashedLastName": "1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4", + "state": "UK", + "city": "London", + "hashedStreetAddress": "9a4d2e50828448f137f119a3ebdbbbab8d6731234a67595fdbfeb2a2315dd550" + } + } + ], + "adjustmentType": "ENHANCEMENT" + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + "output": { + "destinationResponse": [ + { + results: [ + { + "conversionAction": { + "id": 123434342, + } + } + ] + } + ], + "message": "\" during Google_adwords_enhanced_conversions response transformation", + "statTags": { + "destType": "GOOGLE_ADWORDS_ENHANCED_CONVERSIONS", + "destinationId": "Non-determininable", + "errorCategory": "network", + "errorType": "aborted", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination", + "workspaceId": "Non-determininable", + }, + "status": 400, + }, + }, + }, + }, + } +]; diff --git a/test/integrations/destinations/google_adwords_enhanced_conversions/network.ts b/test/integrations/destinations/google_adwords_enhanced_conversions/network.ts new file mode 100644 index 00000000000..ca49ea30ab4 --- /dev/null +++ b/test/integrations/destinations/google_adwords_enhanced_conversions/network.ts @@ -0,0 +1,236 @@ +export const networkCallsData = [ + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/1234567890/googleAds:searchStream', + data: { + query: `SELECT conversion_action.id FROM conversion_action WHERE conversion_action.name = 'Product Added'`, + }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': '0987654321', + }, + method: 'POST', + }, + httpRes: { + "data": [ + { + "error": { + "code": 401, + "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", + "status": "UNAUTHENTICATED" + } + } + ], + "status": 401 + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/1234567899/googleAds:searchStream', + data: { + query: `SELECT conversion_action.id FROM conversion_action WHERE conversion_action.name = 'Product Added'` + }, + params: { destination: 'google_adwords_enhanced_conversion' }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': '0987654321', + }, + method: 'POST', + }, + httpRes: { + data: [{ + results: [{ + conversionAction: { + id: 123434342 + } + }] + }], + status: 200, + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/1234567899:uploadConversionAdjustments', + data: { + conversionAdjustments: [{ + adjustmentDateTime: '2022-01-01 12:32:45-08:00', + adjustmentType: 'ENHANCEMENT', + conversionAction: 'customers/1234567899/conversionActions/123434342', + gclidDateTimePair: { + conversionDateTime: '2022-01-01 12:32:45-08:00', + gclid: 'gclid1234' + }, + order_id: '10000', + restatementValue: { adjustedValue: 10, currency: 'INR' }, + userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + userIdentifiers: [{ + addressInfo: { + hashedFirstName: 'a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da', + hashedLastName: '1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4', + state: 'UK', + city: 'London', + hashedStreetAddress: '9a4d2e50828448f137f119a3ebdbbbab8d6731234a67595fdbfeb2a2315dd550' + } + }] + }], + partialFailure: true + }, + params: { destination: 'google_adwords_enhanced_conversion' }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': '0987654321', + }, + method: 'POST', + }, + httpRes: { + data: [{ + results: [{ + "adjustmentType": "ENHANCEMENT", + "conversionAction": "customers/7693729833/conversionActions/874224905", + "adjustmentDateTime": "2021-01-01 12:32:45-08:00", + "gclidDateTimePair": { + "gclid": "1234", + "conversionDateTime": "2021-01-01 12:32:45-08:00" + }, + "orderId": "12345" + }] + }], + status: 200, + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/1234567891/googleAds:searchStream', + data: { + query: `SELECT conversion_action.id FROM conversion_action WHERE conversion_action.name = 'Product Added'` + }, + params: { destination: 'google_adwords_enhanced_conversion' }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': '0987654321', + }, + method: 'POST', + }, + httpRes: { + data: [{ + results: [{ + conversionAction: { + id: 123434342 + } + }] + }], + status: 200, + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/1234567891:uploadConversionAdjustments', + data: { + conversionAdjustments: [{ + adjustmentDateTime: '2022-01-01 12:32:45-08:00', + adjustmentType: 'ENHANCEMENT', + conversionAction: 'customers/1234567891/conversionActions/123434342', + gclidDateTimePair: { + conversionDateTime: '2022-01-01 12:32:45-08:00', + gclid: 'gclid1234' + }, + order_id: '10000', + restatementValue: { adjustedValue: 10, currency: 'INR' }, + userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + userIdentifiers: [{ + addressInfo: { + hashedFirstName: 'a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da', + hashedLastName: '1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4', + state: 'UK', + city: 'London', + hashedStreetAddress: '9a4d2e50828448f137f119a3ebdbbbab8d6731234a67595fdbfeb2a2315dd550' + } + }] + }], + partialFailure: true + }, + params: { + destination: 'google_adwords_enhanced_conversion', + + }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': '0987654321', + }, + method: 'POST', + }, + httpRes: { + data: [{ + results: [{ + conversionAction: { + id: 123434342 + } + }] + }], + status: 400, + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/1234567891:uploadClickConversions', + data: { + conversionAdjustments: [{ + adjustmentDateTime: '2022-01-01 12:32:45-08:00', + adjustmentType: 'ENHANCEMENT', + conversionAction: 'customers/1234567891/conversionActions/123434342', + gclidDateTimePair: { + conversionDateTime: '2022-01-01 12:32:45-08:00', + gclid: 'gclid1234' + }, + order_id: '10000', + restatementValue: { adjustedValue: 10, currency: 'INR' }, + userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + userIdentifiers: [{ + addressInfo: { + hashedFirstName: 'a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da', + hashedLastName: '1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4', + state: 'UK', + city: 'London', + hashedStreetAddress: '9a4d2e50828448f137f119a3ebdbbbab8d6731234a67595fdbfeb2a2315dd550' + } + }] + }], + partialFailure: true + }, + params: { + destination: 'google_adwords_enhanced_conversion', + + }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': '0987654321', + }, + method: 'POST', + }, + httpRes: { + data: [{ + results: [{ + conversionAction: { + id: 123434342 + } + }] + }], + status: 400, + }, + } +]; + + + diff --git a/test/integrations/destinations/google_adwords_enhanced_conversions/processor/data.ts b/test/integrations/destinations/google_adwords_enhanced_conversions/processor/data.ts new file mode 100644 index 00000000000..09a9b406f68 --- /dev/null +++ b/test/integrations/destinations/google_adwords_enhanced_conversions/processor/data.ts @@ -0,0 +1,1694 @@ +export const data = [ + { + "name": "google_adwords_enhanced_conversions", + "description": "Test 0", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "destination": { + "Config": { + "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", + "customerId": "123-456-7890", + "subAccount": true, + "loginCustomerId": "123-456-7890", + "listOfConversions": [ + { + "conversions": "Page View" + }, + { + "conversions": "Product Added" + } + ], + "authStatus": "active" + } + }, + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "phone": "912382193", + "firstName": "John", + "lastName": "Gomes", + "city": "London", + "state": "UK", + "countryCode": "us", + "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "event": "Page View", + "type": "track", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "adjustedValue": "10", + "currency": "INR", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "partialFailure": true, + "campaignId": "1", + "templateId": "0", + "order_id": 10000, + "total": 1000, + "products": [ + { + "product_id": "507f1f77bcf86cd799439011", + "sku": "45790-32", + "name": "Monopoly: 3rd Edition", + "price": "19", + "position": "1", + "category": "cars", + "url": "https://www.example.com/product/path", + "image_url": "https://www.example.com/product/path.jpg", + "quantity": "2" + }, + { + "product_id": "507f1f77bcf86cd7994390112", + "sku": "45790-322", + "name": "Monopoly: 3rd Edition2", + "price": "192", + "quantity": 22, + "position": "12", + "category": "Cars2", + "url": "https://www.example.com/product/path2", + "image_url": "https://www.example.com/product/path.jpg2" + } + ] + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/1234567890:uploadConversionAdjustments", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl91011", + "login-customer-id": "1234567890" + }, + "params": { + "event": "Page View", + "customerId": "1234567890" + }, + "body": { + "JSON": { + "conversionAdjustments": [ + { + "gclidDateTimePair": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00" + }, + "restatementValue": { + "adjustedValue": 10, + "currencyCode": "INR" + }, + "orderId": "10000", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "userIdentifiers": [ + { + "hashedPhoneNumber": "04387707e6cbed8c4538c81cc570ed9252d579469f36c273839b26d784e4bdbe" + }, + { + "addressInfo": { + "hashedFirstName": "a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da", + "hashedLastName": "1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4", + "state": "UK", + "city": "London", + "countryCode": "us", + "hashedStreetAddress": "9a4d2e50828448f137f119a3ebdbbbab8d6731234a67595fdbfeb2a2315dd550" + } + } + ], + "adjustmentType": "ENHANCEMENT" + } + ], + "partialFailure": true + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "google_adwords_enhanced_conversions", + "description": "Test 1", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "destination": { + "Config": { + "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", + "customerId": "1234567890", + "subAccount": true, + "loginCustomerId": "11", + "listOfConversions": [ + { + "conversions": "Page View" + }, + { + "conversions": "Product Added" + } + ], + "authStatus": "active" + } + }, + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "phone": "912382193", + "firstName": "John", + "lastName": "Gomes", + "city": "London", + "state": "UK", + "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "event": "Checkout Started", + "type": "track", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "adjustedValue": "10", + "currency": "INR", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "partialFailure": true, + "campaignId": "1", + "templateId": "0", + "order_id": 10000, + "total": 1000, + "products": [ + { + "product_id": "507f1f77bcf86cd799439011", + "sku": "45790-32", + "name": "Monopoly: 3rd Edition", + "price": "19", + "position": "1", + "category": "cars", + "url": "https://www.example.com/product/path", + "image_url": "https://www.example.com/product/path.jpg", + "quantity": "2" + }, + { + "product_id": "507f1f77bcf86cd7994390112", + "sku": "45790-322", + "name": "Monopoly: 3rd Edition2", + "price": "192", + "quantity": 22, + "position": "12", + "category": "Cars2", + "url": "https://www.example.com/product/path2", + "image_url": "https://www.example.com/product/path.jpg2" + } + ] + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "statusCode": 400, + "error": "Conversion named \"Checkout Started\" was not specified in the RudderStack destination configuration", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "configuration", + "destType": "GOOGLE_ADWORDS_ENHANCED_CONVERSIONS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "google_adwords_enhanced_conversions", + "description": "Test 2", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "destination": { + "Config": { + "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", + "customerId": "1234567890", + "subAccount": true, + "loginCustomerId": "11", + "listOfConversions": [ + { + "conversions": "Page View" + }, + { + "conversions": "Product Added" + } + ], + "authStatus": "active" + } + }, + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "event": "Product Added", + "type": "track", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "adjustedValue": "10", + "currency": "INR", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "partialFailure": true, + "campaignId": "1", + "templateId": "0", + "order_id": 10000, + "total": 1000, + "products": [ + { + "product_id": "507f1f77bcf86cd799439011", + "sku": "45790-32", + "name": "Monopoly: 3rd Edition", + "price": "19", + "position": "1", + "category": "cars", + "url": "https://www.example.com/product/path", + "image_url": "https://www.example.com/product/path.jpg", + "quantity": "2" + }, + { + "product_id": "507f1f77bcf86cd7994390112", + "sku": "45790-322", + "name": "Monopoly: 3rd Edition2", + "price": "192", + "quantity": 22, + "position": "12", + "category": "Cars2", + "url": "https://www.example.com/product/path2", + "image_url": "https://www.example.com/product/path.jpg2" + } + ] + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "statusCode": 400, + "error": "Any of email, phone, firstName, lastName, city, street, countryCode, postalCode or streetAddress is required in traits.", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "GOOGLE_ADWORDS_ENHANCED_CONVERSIONS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "google_adwords_enhanced_conversions", + "description": "Test 3", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "destination": { + "Config": { + "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", + "customerId": "1234567890", + "subAccount": true, + "loginCustomerId": "11", + "listOfConversions": [ + { + "conversions": "Page View" + }, + { + "conversions": "Product Added" + } + ], + "authStatus": "active" + } + }, + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "firstName": "John", + "lastName": "Gomes", + "address": { + "city": "London", + "state": "UK", + "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK", + "country": "us" + } + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "event": "Product Added", + "type": "track", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "adjustedValue": "10", + "currencyCode": "INR", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "partialFailure": "true", + "campaignId": "1", + "templateId": "0", + "order_id": 10000, + "total": 1000, + "products": [ + { + "product_id": "507f1f77bcf86cd799439011", + "sku": "45790-32", + "name": "Monopoly: 3rd Edition", + "price": "19", + "position": "1", + "category": "cars", + "url": "https://www.example.com/product/path", + "image_url": "https://www.example.com/product/path.jpg", + "quantity": "2" + }, + { + "product_id": "507f1f77bcf86cd7994390112", + "sku": "45790-322", + "name": "Monopoly: 3rd Edition2", + "price": "192", + "quantity": 22, + "position": "12", + "category": "Cars2", + "url": "https://www.example.com/product/path2", + "image_url": "https://www.example.com/product/path.jpg2" + } + ] + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/1234567890:uploadConversionAdjustments", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl91011", + "login-customer-id": "11" + }, + "params": { + "event": "Product Added", + "customerId": "1234567890" + }, + "body": { + "JSON": { + "conversionAdjustments": [ + { + "gclidDateTimePair": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00" + }, + "restatementValue": { + "adjustedValue": 10, + "currencyCode": "INR" + }, + "orderId": "10000", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da", + "hashedLastName": "1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4", + "state": "UK", + "city": "London", + "countryCode": "us", + "hashedStreetAddress": "b28c94b2195c8ed259f0b415aaee3f39b0b2920a4537611499fa044956917a21" + } + } + ], + "adjustmentType": "ENHANCEMENT" + } + ], + "partialFailure": true + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "google_adwords_enhanced_conversions", + "description": "Test 4", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "destination": { + "Config": { + "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", + "customerId": "1234567890", + "subAccount": true, + "loginCustomerId": "", + "listOfConversions": [ + { + "conversions": "Page View" + }, + { + "conversions": "Product Added" + } + ], + "authStatus": "active" + } + }, + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "firstName": "John", + "lastName": "Gomes", + "city": "London", + "state": "UK", + "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "event": "Product Added", + "type": "track", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "adjustedValue": "10", + "currencyCode": "INR", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "partialFailure": true, + "campaignId": "1", + "templateId": "0", + "orderId": 10000, + "total": 1000, + "products": [ + { + "product_id": "507f1f77bcf86cd799439011", + "sku": "45790-32", + "name": "Monopoly: 3rd Edition", + "price": "19", + "position": "1", + "category": "cars", + "url": "https://www.example.com/product/path", + "image_url": "https://www.example.com/product/path.jpg", + "quantity": "2" + }, + { + "product_id": "507f1f77bcf86cd7994390112", + "sku": "45790-322", + "name": "Monopoly: 3rd Edition2", + "price": "192", + "quantity": 22, + "position": "12", + "category": "Cars2", + "url": "https://www.example.com/product/path2", + "image_url": "https://www.example.com/product/path.jpg2" + } + ] + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "statusCode": 400, + "error": "LoginCustomerId is required as subAccount is true.", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "configuration", + "destType": "GOOGLE_ADWORDS_ENHANCED_CONVERSIONS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "google_adwords_enhanced_conversions", + "description": "Test 5", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "destination": { + "Config": { + "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", + "customerId": "1234567890", + "subAccount": true, + "loginCustomerId": "", + "listOfConversions": [ + { + "conversions": "Page View" + }, + { + "conversions": "Product Added" + } + ], + "authStatus": "active" + } + }, + "message": { + "type": "identify", + "traits": { + "status": "elizabeth" + }, + "userId": "emrichardson820+22822@gmail.com", + "channel": "sources", + "context": { + "sources": { + "job_id": "24c5HJxHomh6YCngEOCgjS5r1KX/Syncher", + "task_id": "vw_rs_mailchimp_mocked_hg_data", + "version": "v1.8.1", + "batch_id": "f252c69d-c40d-450e-bcd2-2cf26cb62762", + "job_run_id": "c8el40l6e87v0c4hkbl0", + "task_run_id": "c8el40l6e87v0c4hkblg" + }, + "externalId": [ + { + "id": "emrichardson820+22822@gmail.com", + "type": "MAILCHIMP-92e1f1ad2c", + "identifierType": "email_address" + } + ], + "mappedToDestination": "true" + }, + "recordId": "1", + "rudderId": "4d5d0ed0-9db8-41cc-9bb0-a032f6bfa97a", + "messageId": "b3bee036-fc26-4f6d-9867-c17f85708a82" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "statusCode": 400, + "error": "Message Type identify is not supported. Aborting message.", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "GOOGLE_ADWORDS_ENHANCED_CONVERSIONS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "google_adwords_enhanced_conversions", + "description": "Test 6", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": null + }, + "destination": { + "Config": { + "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", + "customerId": "1234567890", + "subAccount": true, + "loginCustomerId": "11", + "listOfConversions": [ + { + "conversions": "Page View" + }, + { + "conversions": "Product Added" + } + ], + "authStatus": "active" + } + }, + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "phone": "912382193", + "firstName": "John", + "lastName": "Gomes", + "city": "London", + "state": "UK", + "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "event": "Page View", + "type": "track", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "adjustedValue": "10", + "currency": "INR", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "partialFailure": true, + "campaignId": "1", + "templateId": "0", + "order_id": 10000, + "total": 1000, + "products": [ + { + "product_id": "507f1f77bcf86cd799439011", + "sku": "45790-32", + "name": "Monopoly: 3rd Edition", + "price": "19", + "position": "1", + "category": "cars", + "url": "https://www.example.com/product/path", + "image_url": "https://www.example.com/product/path.jpg", + "quantity": "2" + }, + { + "product_id": "507f1f77bcf86cd7994390112", + "sku": "45790-322", + "name": "Monopoly: 3rd Edition2", + "price": "192", + "quantity": 22, + "position": "12", + "category": "Cars2", + "url": "https://www.example.com/product/path2", + "image_url": "https://www.example.com/product/path.jpg2" + } + ] + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": null + }, + "statusCode": 500, + "error": "OAuth - access token not found", + "statTags": { + "errorCategory": "platform", + "errorType": "oAuthSecret", + "destType": "GOOGLE_ADWORDS_ENHANCED_CONVERSIONS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "google_adwords_enhanced_conversions", + "description": "Test 7", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "destination": { + "Config": { + "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", + "customerId": "123-456-7890", + "subAccount": true, + "loginCustomerId": "123-456-7890", + "listOfConversions": [ + { + "conversions": "Page View" + }, + { + "conversions": "Product Added" + } + ], + "authStatus": "active" + } + }, + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "phone": "912382193", + "firstName": "John", + "lastName": "Gomes", + "city": "London", + "state": "UK", + "countryCode": "us", + "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "event": "Product Viewed", + "type": "track", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "adjustedValue": "10", + "currency": "INR", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "partialFailure": true, + "campaignId": "1", + "templateId": "0", + "orde_id": 10000, + "total": 1000, + "products": [ + { + "product_id": "507f1f77bcf86cd799439011", + "sku": "45790-32", + "name": "Monopoly: 3rd Edition", + "price": "19", + "position": "1", + "category": "cars", + "url": "https://www.example.com/product/path", + "image_url": "https://www.example.com/product/path.jpg", + "quantity": "2" + }, + { + "product_id": "507f1f77bcf86cd7994390112", + "sku": "45790-322", + "name": "Monopoly: 3rd Edition2", + "price": "192", + "quantity": 22, + "position": "12", + "category": "Cars2", + "url": "https://www.example.com/product/path2", + "image_url": "https://www.example.com/product/path.jpg2" + } + ] + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "statusCode": 400, + "error": "Conversion named \"Product Viewed\" was not specified in the RudderStack destination configuration", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "configuration", + "destType": "GOOGLE_ADWORDS_ENHANCED_CONVERSIONS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "google_adwords_enhanced_conversions", + "description": "Test 8", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "destination": { + "Config": { + "requireHash": true, + "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", + "customerId": "123-456-7890", + "subAccount": true, + "loginCustomerId": "123-456-7890", + "listOfConversions": [ + { + "conversions": "Page View" + }, + { + "conversions": "Product Added" + } + ], + "authStatus": "active" + } + }, + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "phone": "912382193", + "firstName": "John", + "lastName": "Gomes", + "city": "London", + "state": "UK", + "countryCode": "us", + "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "event": "Page View", + "type": "track", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "adjustedValue": "10", + "currency": "INR", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "partialFailure": true, + "campaignId": "1", + "templateId": "0", + "order_id": 10000, + "total": 1000, + "products": [ + { + "product_id": "507f1f77bcf86cd7994390112", + "sku": "45790-322", + "name": "Monopoly: 3rd Edition2", + "price": "192", + "quantity": 22, + "position": "12", + "category": "Cars2", + "url": "https://www.example.com/product/path2", + "image_url": "https://www.example.com/product/path.jpg2" + } + ] + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/1234567890:uploadConversionAdjustments", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl91011", + "login-customer-id": "1234567890" + }, + "params": { + "event": "Page View", + "customerId": "1234567890" + }, + "body": { + "JSON": { + "conversionAdjustments": [ + { + "gclidDateTimePair": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00" + }, + "restatementValue": { + "adjustedValue": 10, + "currencyCode": "INR" + }, + "orderId": "10000", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "userIdentifiers": [ + { + "hashedPhoneNumber": "04387707e6cbed8c4538c81cc570ed9252d579469f36c273839b26d784e4bdbe" + }, + { + "addressInfo": { + "hashedFirstName": "a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da", + "hashedLastName": "1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4", + "state": "UK", + "city": "London", + "countryCode": "us", + "hashedStreetAddress": "9a4d2e50828448f137f119a3ebdbbbab8d6731234a67595fdbfeb2a2315dd550" + } + } + ], + "adjustmentType": "ENHANCEMENT" + } + ], + "partialFailure": true + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "google_adwords_enhanced_conversions", + "description": "Test 9", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "destination": { + "Config": { + "requireHash": false, + "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", + "customerId": "123-456-7890", + "subAccount": true, + "loginCustomerId": "123-456-7890", + "listOfConversions": [ + { + "conversions": "Page View" + }, + { + "conversions": "Product Added" + } + ], + "authStatus": "active" + } + }, + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "phone": "912382193", + "firstName": "John", + "lastName": "Gomes", + "city": "London", + "state": "UK", + "countryCode": "us", + "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "event": "Page View", + "type": "track", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "adjustedValue": "10", + "currency": "INR", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "partialFailure": true, + "campaignId": "1", + "templateId": "0", + "order_id": 10000, + "total": 1000, + "products": [ + { + "product_id": "507f1f77bcf86cd7994390112", + "sku": "45790-322", + "name": "Monopoly: 3rd Edition2", + "price": "192", + "quantity": 22, + "position": "12", + "category": "Cars2", + "url": "https://www.example.com/product/path2", + "image_url": "https://www.example.com/product/path.jpg2" + } + ] + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/1234567890:uploadConversionAdjustments", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl91011", + "login-customer-id": "1234567890" + }, + "params": { + "event": "Page View", + "customerId": "1234567890" + }, + "body": { + "JSON": { + "conversionAdjustments": [ + { + "gclidDateTimePair": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00" + }, + "restatementValue": { + "adjustedValue": 10, + "currencyCode": "INR" + }, + "orderId": "10000", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "userIdentifiers": [ + { + "hashedPhoneNumber": "912382193" + }, + { + "addressInfo": { + "hashedFirstName": "John", + "hashedLastName": "Gomes", + "state": "UK", + "city": "London", + "countryCode": "us", + "hashedStreetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" + } + } + ], + "adjustmentType": "ENHANCEMENT" + } + ], + "partialFailure": true + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "google_adwords_enhanced_conversions", + "description": "Test 10", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "destination": { + "Config": { + "requireHash": false, + "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", + "customerId": "123-456-7890", + "subAccount": true, + "loginCustomerId": "123-456-7890", + "listOfConversions": [ + { + "conversions": "Page View" + }, + { + "conversions": "Product Added" + } + ], + "authStatus": "active" + } + }, + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "phone": "912382193", + "firstName": "John", + "lastName": "Gomes", + "city": "London", + "state": "UK", + "countryCode": "us", + "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "event": "Page View", + "type": "track", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "adjustedValue": "10", + "currency": "INR", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "partialFailure": true, + "campaignId": "1", + "templateId": "0", + "total": 1000, + "products": [ + { + "product_id": "507f1f77bcf86cd7994390112", + "sku": "45790-322", + "name": "Monopoly: 3rd Edition2", + "price": "192", + "quantity": 22, + "position": "12", + "category": "Cars2", + "url": "https://www.example.com/product/path2", + "image_url": "https://www.example.com/product/path.jpg2" + } + ] + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + } + }, + "statusCode": 400, + "error": "Missing required value from [\"properties.orderId\",\"properties.order_id\"]", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "GOOGLE_ADWORDS_ENHANCED_CONVERSIONS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + } +] \ No newline at end of file diff --git a/test/integrations/destinations/google_adwords_enhanced_conversions/router/data.ts b/test/integrations/destinations/google_adwords_enhanced_conversions/router/data.ts new file mode 100644 index 00000000000..efaa0072e28 --- /dev/null +++ b/test/integrations/destinations/google_adwords_enhanced_conversions/router/data.ts @@ -0,0 +1,447 @@ +export const data = [ + { + name: 'google_adwords_enhanced_conversions', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + }, + "jobId": 1 + }, + "destination": { + "Config": { + "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", + "customerId": "1234567890", + "subAccount": true, + "loginCustomerId": "11", + "listOfConversions": [ + { + "conversions": "Page View" + }, + { + "conversions": "Product Added" + } + ], + "authStatus": "active" + } + }, + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "phone": "912382193", + "firstName": "John", + "lastName": "Gomes", + "city": "London", + "state": "UK", + "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "event": "Page View", + "type": "track", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "adjustedValue": "10", + "currency": "INR", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "partialFailure": true, + "campaignId": "1", + "templateId": "0", + "order_id": 10000, + "total": 1000, + "products": [ + { + "product_id": "507f1f77bcf86cd799439011", + "sku": "45790-32", + "name": "Monopoly: 3rd Edition", + "price": "19", + "position": "1", + "category": "cars", + "url": "https://www.example.com/product/path", + "image_url": "https://www.example.com/product/path.jpg", + "quantity": "2" + }, + { + "product_id": "507f1f77bcf86cd7994390112", + "sku": "45790-322", + "name": "Monopoly: 3rd Edition2", + "price": "192", + "quantity": 22, + "position": "12", + "category": "Cars2", + "url": "https://www.example.com/product/path2", + "image_url": "https://www.example.com/product/path.jpg2" + } + ] + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + } + }, + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + }, + "jobId": 2 + }, + "destination": { + "Config": { + "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", + "customerId": "1234567890", + "subAccount": true, + "loginCustomerId": "", + "listOfConversions": [ + { + "conversions": "Page View" + }, + { + "conversions": "Product Added" + } + ], + "authStatus": "active" + } + }, + "message": { + "type": "identify", + "traits": { + "status": "elizabeth" + }, + "userId": "emrichardson820+22822@gmail.com", + "channel": "sources", + "context": { + "sources": { + "job_id": "24c5HJxHomh6YCngEOCgjS5r1KX/Syncher", + "task_id": "vw_rs_mailchimp_mocked_hg_data", + "version": "v1.8.1", + "batch_id": "f252c69d-c40d-450e-bcd2-2cf26cb62762", + "job_run_id": "c8el40l6e87v0c4hkbl0", + "task_run_id": "c8el40l6e87v0c4hkblg" + }, + "externalId": [ + { + "id": "emrichardson820+22822@gmail.com", + "type": "MAILCHIMP-92e1f1ad2c", + "identifierType": "email_address" + } + ], + "mappedToDestination": "true" + }, + "recordId": "1", + "rudderId": "4d5d0ed0-9db8-41cc-9bb0-a032f6bfa97a", + "messageId": "b3bee036-fc26-4f6d-9867-c17f85708a82" + } + }, + { + "metadata": { + "secret": {}, + "jobId": 3 + }, + "destination": { + "Config": { + "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", + "customerId": "1234567890", + "subAccount": true, + "loginCustomerId": "11", + "listOfConversions": [ + { + "conversions": "Page View" + }, + { + "conversions": "Product Added" + } + ], + "authStatus": "active" + } + }, + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "traits": { + "phone": "912382193", + "firstName": "John", + "lastName": "Gomes", + "city": "London", + "state": "UK", + "streetAddress": "71 Cherry Court SOUTHAMPTON SO53 5PD UK" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "event": "Page View", + "type": "track", + "messageId": "5e10d13a-bf9a-44bf-b884-43a9e591ea71", + "originalTimestamp": "2019-10-14T11:15:18.299Z", + "anonymousId": "00000000000000000000000000", + "userId": "12345", + "properties": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "adjustedValue": "10", + "currency": "INR", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "partialFailure": true, + "campaignId": "1", + "templateId": "0", + "order_id": 10000, + "total": 1000, + "products": [ + { + "product_id": "507f1f77bcf86cd799439011", + "sku": "45790-32", + "name": "Monopoly: 3rd Edition", + "price": "19", + "position": "1", + "category": "cars", + "url": "https://www.example.com/product/path", + "image_url": "https://www.example.com/product/path.jpg", + "quantity": "2" + }, + { + "product_id": "507f1f77bcf86cd7994390112", + "sku": "45790-322", + "name": "Monopoly: 3rd Edition2", + "price": "192", + "quantity": 22, + "position": "12", + "category": "Cars2", + "url": "https://www.example.com/product/path2", + "image_url": "https://www.example.com/product/path.jpg2" + } + ] + }, + "integrations": { + "All": true + }, + "name": "ApplicationLoaded", + "sentAt": "2019-10-14T11:15:53.296Z" + } + }, + ], + destType: 'google_adwords_enhanced_conversions', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + "batchedRequest": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/1234567890:uploadConversionAdjustments", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl91011", + "login-customer-id": "11" + }, + "params": { "event": "Page View", "customerId": "1234567890" }, + "body": { + "JSON": { + "partialFailure": true, + "conversionAdjustments": [ + { + "gclidDateTimePair": { + "gclid": "gclid1234", + "conversionDateTime": "2022-01-01 12:32:45-08:00" + }, + "restatementValue": { + "adjustedValue": 10, + "currencyCode": "INR" + }, + "orderId": "10000", + "adjustmentDateTime": "2022-01-01 12:32:45-08:00", + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "userIdentifiers": [ + { + "hashedPhoneNumber": "04387707e6cbed8c4538c81cc570ed9252d579469f36c273839b26d784e4bdbe" + }, + { + "addressInfo": { + "hashedFirstName": "a8cfcd74832004951b4408cdb0a5dbcd8c7e52d43f7fe244bf720582e05241da", + "hashedLastName": "1c574b17eefa532b6d61c963550a82d2d3dfca4a7fb69e183374cfafd5328ee4", + "state": "UK", + "city": "London", + "hashedStreetAddress": "9a4d2e50828448f137f119a3ebdbbbab8d6731234a67595fdbfeb2a2315dd550" + } + } + ], + "adjustmentType": "ENHANCEMENT" + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + "metadata": [ + { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + }, + "jobId": 1 + } + ], + "batched": false, + "statusCode": 200, + "destination": { + "Config": { + "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", + "customerId": "1234567890", + "subAccount": true, + "loginCustomerId": "11", + "listOfConversions": [{ "conversions": "Page View" }, { "conversions": "Product Added" }], + "authStatus": "active" + } + } + }, + { + "metadata": [ + { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl91011" + }, + "jobId": 2 + } + ], + "destination": { + "Config": { + "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", + "customerId": "1234567890", + "subAccount": true, + "loginCustomerId": "", + "listOfConversions": [ + { + "conversions": "Page View" + }, + { + "conversions": "Product Added" + } + ], + "authStatus": "active" + } + }, + "batched": false, + "statusCode": 400, + "error": "Message Type identify is not supported. Aborting message.", + "statTags": { + "destType": "GOOGLE_ADWORDS_ENHANCED_CONVERSIONS", + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "feature": "router", + "implementation": "native", + "module": "destination", + } + }, + { + "metadata": [ + { + "secret": {}, + "jobId": 3 + } + ], + "destination": { + "Config": { + "rudderAccountId": "25u5whFH7gVTnCiAjn4ykoCLGoC", + "customerId": "1234567890", + "subAccount": true, + "loginCustomerId": "11", + "listOfConversions": [ + { + "conversions": "Page View" + }, + { + "conversions": "Product Added" + } + ], + "authStatus": "active" + } + }, + "batched": false, + "statusCode": 500, + "error": "OAuth - access token not found", + "statTags": { + "destType": "GOOGLE_ADWORDS_ENHANCED_CONVERSIONS", + "errorCategory": "platform", + "errorType": "oAuthSecret", + "feature": "router", + "implementation": "native", + "module": "destination", + } + } + ] + , + }, + }, + }, + } +]; diff --git a/test/integrations/destinations/google_adwords_offline_conversions/dataDelivery/data.ts b/test/integrations/destinations/google_adwords_offline_conversions/dataDelivery/data.ts new file mode 100644 index 00000000000..284632ae090 --- /dev/null +++ b/test/integrations/destinations/google_adwords_offline_conversions/dataDelivery/data.ts @@ -0,0 +1,750 @@ +export const data = [ + { + name: 'google_adwords_offline_conversions', + description: 'Test 0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/11122233331/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl91011", + "login-customer-id": "logincustomerid" + }, + "params": { + "customerId": "1112223333", + "event": "Sign-up - click" + }, + "body": { + "JSON": { + "addConversionPayload": { + "enable_partial_failure": false, + "enable_warnings": false, + "operations": [ + { + "create": { + "transaction_attribute": { + "CUSTOM_KEY": "CUSTOM_VALUE", + "currency_code": "INR", + "order_id": "order id", + "store_attribute": { + "store_code": "store code" + }, + "transaction_amount_micros": "100000000", + "transaction_date_time": "2019-10-14 11:15:18+00:00" + }, + "userIdentifiers": [ + { + "hashedEmail": "6db61e6dcbcf2390e4a46af26f26a133a3bee45021422fc7ae86e9136f14110", + "userIdentifierSource": "UNSPECIFIED" + } + ] + } + } + ], + "validate_only": false + }, + "createJobPayload": { + "job": { + "storeSalesMetadata": { + "custom_key": "CUSTOM_KEY", + "loyaltyFraction": 1, + "transaction_upload_fraction": "1" + }, + "type": "STORE_SALES_UPLOAD_FIRST_PARTY" + } + }, + "event": "1112223333", + "executeJobPayload": { + "validate_only": false + }, + "isStoreConversion": true + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + "output": { + "status": 400, + "message": "[Google Ads Offline Conversions]:: Request contains an invalid argument. during google_ads_offline_store_conversions Add Conversion", + "destinationResponse": { + "error": { + "code": 400, + "details": [ + { + "@type": "type.googleapis.com/google.ads.googleads.v14.errors.GoogleAdsFailure", + "errors": [ + { + "errorCode": { + "offlineUserDataJobError": "INVALID_SHA256_FORMAT" + }, + "message": "The SHA256 encoded value is malformed.", + "location": { + "fieldPathElements": [ + { + "fieldName": "operations", + "index": 0 + }, + { + "fieldName": "create" + }, + { + "fieldName": "user_identifiers", + "index": 0 + }, + { + "fieldName": "hashed_email" + } + ] + } + } + ], + "requestId": "68697987" + } + ], + "message": "Request contains an invalid argument.", + "status": "INVALID_ARGUMENT" + } + }, + "statTags": { + "destType": "GOOGLE_ADWORDS_OFFLINE_CONVERSIONS", + "destinationId": "Non-determininable", + "errorCategory": "network", + "errorType": "aborted", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination", + "workspaceId": "Non-determininable", + } + } + }, + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 1', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + "body": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/1112223333/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl91011", + "login-customer-id": "logincustomerid" + }, + "params": { + "customerId": "1112223333", + "event": "Sign-up - click" + }, + "body": { + "JSON": { + "addConversionPayload": { + "enable_partial_failure": false, + "enable_warnings": false, + "operations": [ + { + "create": { + "transaction_attribute": { + "CUSTOM_KEY": "CUSTOM_VALUE", + "currency_code": "INR", + "order_id": "order id", + "store_attribute": { + "store_code": "store code" + }, + "transaction_amount_micros": "100000000", + "transaction_date_time": "2019-10-14 11:15:18+00:00" + }, + "userIdentifiers": [ + { + "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110", + "userIdentifierSource": "UNSPECIFIED" + } + ] + } + } + ], + "validate_only": false + }, + "createJobPayload": { + "job": { + "storeSalesMetadata": { + "custom_key": "CUSTOM_KEY", + "loyaltyFraction": 1, + "transaction_upload_fraction": "1" + }, + "type": "STORE_SALES_UPLOAD_FIRST_PARTY" + } + }, + "event": "1112223333", + "executeJobPayload": { + "validate_only": false + }, + "isStoreConversion": true + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + }, + }, + output: { + response: { + status: 200, + body: { + "output": { + "status": 200, + "message": "[Google Ads Offline Conversions Response Handler] - Request processed successfully", + "destinationResponse": { + "response": { + "name": "customers/111-222-3333/operations/abcd=" + }, + "status": 200 + } + } + }, + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 2', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + "body": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/customerid/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl91011", + "login-customer-id": "logincustomerid" + }, + "params": { + "customerId": "1112223333", + "event": "Sign-up - click" + }, + "body": { + "JSON": { + "addConversionPayload": { + "enable_partial_failure": false, + "enable_warnings": false, + "operations": [ + { + "create": { + "transaction_attribute": { + "CUSTOM_KEY": "CUSTOM_VALUE", + "currency_code": "INR", + "order_id": "order id", + "store_attribute": { + "store_code": "store code" + }, + "transaction_amount_micros": "100000000", + "transaction_date_time": "2019-10-14 11:15:18+00:00" + }, + "userIdentifiers": [ + { + "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110", + "userIdentifierSource": "UNSPECIFIED" + } + ] + } + } + ], + "validate_only": false + }, + "createJobPayload": { + "job": { + "storeSalesMetadata": { + "custom_key": "CUSTOM_KEY", + "loyaltyFraction": 1, + "transaction_upload_fraction": "1" + }, + "type": "STORE_SALES_UPLOAD_FIRST_PARTY" + } + }, + "event": "1112223333", + "executeJobPayload": { + "validate_only": false + }, + "isStoreConversion": true + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + }, + }, + output: { + response: { + status: 401, + body: { + "output": { + "status": 401, + "message": "[Google Ads Offline Conversions]:: Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project. during google_ads_offline_store_conversions Job Creation", + "authErrorCategory": "REFRESH_TOKEN", + "destinationResponse": { + "error": { + "code": 401, + "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", + "status": "UNAUTHENTICATED" + } + }, + "statTags": { + "destType": "GOOGLE_ADWORDS_OFFLINE_CONVERSIONS", + "destinationId": "Non-determininable", + "errorCategory": "network", + "errorType": "aborted", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination", + "workspaceId": "Non-determininable" + } + } + } + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 3', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + "body": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/1234567890:uploadClickConversions", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl91011" + }, + "params": { + "event": "Sign-up - click", + "customerId": "1234567890", + "customVariables": [ + { + "from": "value", + "to": "revenue" + }, + { + "from": "total", + "to": "cost" + } + ], + "properties": { + "gbraid": "gbraid", + "wbraid": "wbraid", + "externalAttributionCredit": 10, + "externalAttributionModel": "externalAttributionModel", + "conversionCustomVariable": "conversionCustomVariable", + "value": "value", + "merchantId": "9876merchantId", + "feedCountryCode": "feedCountryCode", + "feedLanguageCode": "feedLanguageCode", + "localTransactionCost": 20, + "products": [ + { + "product_id": "507f1f77bcf86cd799439011", + "quantity": "2", + "price": "50", + "sku": "45790-32", + "name": "Monopoly: 3rd Edition", + "position": "1", + "category": "cars", + "url": "https://www.example.com/product/path", + "image_url": "https://www.example.com/product/path.jpg" + } + ], + "userIdentifierSource": "FIRST_PARTY", + "conversionEnvironment": "WEB", + "gclid": "gclid", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "conversionValue": "1", + "currency": "GBP", + "orderId": "PL-123QR" + } + }, + "body": { + "JSON": { + "conversions": [ + { + "gbraid": "gbraid", + "wbraid": "wbraid", + "externalAttributionData": { + "externalAttributionCredit": 10, + "externalAttributionModel": "externalAttributionModel" + }, + "cartData": { + "merchantId": 9876, + "feedCountryCode": "feedCountryCode", + "feedLanguageCode": "feedLanguageCode", + "localTransactionCost": 20, + "items": [ + { + "productId": "507f1f77bcf86cd799439011", + "quantity": 2, + "unitPrice": 50 + } + ] + }, + "userIdentifiers": [ + { + "userIdentifierSource": "FIRST_PARTY", + "hashedEmail": "6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110" + } + ], + "conversionEnvironment": "WEB", + "gclid": "gclid", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "conversionValue": 1, + "currencyCode": "GBP", + "orderId": "PL-123QR" + } + ], + "partialFailure": true + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + }, + }, + output: { + response: { + status: 401, + body: { + "output": { + "status": 401, + "message": "[Google Ads Offline Conversions]:: [{\"error\":{\"code\":401,\"message\":\"Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.\",\"status\":\"UNAUTHENTICATED\"}}] during google_ads_offline_conversions response transformation", + "authErrorCategory": "REFRESH_TOKEN", + "destinationResponse": [ + { + "error": { + "code": 401, + "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", + "status": "UNAUTHENTICATED" + } + } + ], + "statTags": { + "destType": "GOOGLE_ADWORDS_OFFLINE_CONVERSIONS", + "destinationId": "Non-determininable", + "errorCategory": "network", + "errorType": "aborted", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination", + "workspaceId": "Non-determininable", + } + } + } + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 4', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + "request": { + "body": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/1234567891:uploadClickConversions", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl91011" + }, + "params": { + "event": "Sign-up - click", + "customerId": "1234567891", + "customVariables": [ + { + "from": "Value", + "to": "revenue" + }, + { + "from": "total", + "to": "cost" + } + ], + "properties": { + "gbraid": "gbraid", + "wbraid": "wbraid", + "externalAttributionCredit": 10, + "externalAttributionModel": "externalAttributionModel", + "conversionCustomVariable": "conversionCustomVariable", + "Value": "value", + "merchantId": "9876merchantId", + "feedCountryCode": "feedCountryCode", + "feedLanguageCode": "feedLanguageCode", + "localTransactionCost": 20, + "products": [ + { + "product_id": "507f1f77bcf86cd799439011", + "quantity": "2", + "price": "50", + "sku": "45790-32", + "name": "Monopoly: 3rd Edition", + "position": "1", + "category": "cars", + "url": "https://www.example.com/product/path", + "image_url": "https://www.example.com/product/path.jpg" + } + ], + "userIdentifierSource": "FIRST_PARTY", + "conversionEnvironment": "WEB", + "gclid": "gclid", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "conversionValue": "1", + "currency": "GBP", + "orderId": "PL-123QR" + } + }, + "body": { + "JSON": { + "conversions": [ + { + "gbraid": "gbraid", + "wbraid": "wbraid", + "externalAttributionData": { + "externalAttributionCredit": 10, + "externalAttributionModel": "externalAttributionModel" + }, + "cartData": { + "merchantId": 9876, + "feedCountryCode": "feedCountryCode", + "feedLanguageCode": "feedLanguageCode", + "localTransactionCost": 20, + "items": [ + { + "productId": "507f1f77bcf86cd799439011", + "quantity": 2, + "unitPrice": 50 + } + ] + }, + "userIdentifiers": [ + { + "userIdentifierSource": "FIRST_PARTY", + "hashedPhoneNumber": "04e1dabb7c1348b72bfa87da179c9697c69af74827649266a5da8cdbb367abcd" + } + ], + "conversionEnvironment": "WEB", + "gclid": "gclid", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "conversionValue": 1, + "currencyCode": "GBP", + "orderId": "PL-123QR" + } + ], + "partialFailure": true + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + } + }, + output: { + response: { + status: 200, + body: { + "output": { + "status": 200, + "message": "[Google Ads Offline Conversions Response Handler] - Request processed successfully", + "destinationResponse": { + "response": [ + { + "adjustmentType": "ENHANCEMENT", + "conversionAction": "customers/1234567891/conversionActions/874224905", + "adjustmentDateTime": "2021-01-01 12:32:45-08:00", + "gclidDateTimePair": { + "gclid": "1234", + "conversionDateTime": "2021-01-01 12:32:45-08:00" + }, + "orderId": "12345" + } + ], + "status": 200 + } + } + } + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 5', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + "request": { + "body": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/1234567891:uploadClickConversions", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl91011" + }, + "params": { + "event": "Sign-up - click", + "customerId": "1234567891", + "customVariables": [], + "properties": { + "gbraid": "gbraid", + "wbraid": "wbraid", + "externalAttributionCredit": 10, + "externalAttributionModel": "externalAttributionModel", + "conversionCustomVariable": "conversionCustomVariable", + "value": "value", + "merchantId": "9876merchantId", + "feedCountryCode": "feedCountryCode", + "feedLanguageCode": "feedLanguageCode", + "localTransactionCost": 20, + "products": [ + { + "product_id": "507f1f77bcf86cd799439011", + "quantity": "2", + "price": "50", + "sku": "45790-32", + "name": "Monopoly: 3rd Edition", + "position": "1", + "category": "cars", + "url": "https://www.example.com/product/path", + "image_url": "https://www.example.com/product/path.jpg" + } + ], + "userIdentifierSource": "FIRST_PARTY", + "conversionEnvironment": "WEB", + "gclid": "gclid", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "conversionValue": "1", + "currency": "GBP", + "orderId": "PL-123QR" + } + }, + "body": { + "JSON": { + "conversions": [ + { + "gbraid": "gbraid", + "wbraid": "wbraid", + "externalAttributionData": { + "externalAttributionCredit": 10, + "externalAttributionModel": "externalAttributionModel" + }, + "cartData": { + "merchantId": 9876, + "feedCountryCode": "feedCountryCode", + "feedLanguageCode": "feedLanguageCode", + "localTransactionCost": 20, + "items": [ + { + "productId": "507f1f77bcf86cd799439011", + "quantity": 2, + "unitPrice": 50 + } + ] + }, + "userIdentifiers": [ + { + "userIdentifierSource": "FIRST_PARTY", + "hashedPhoneNumber": "04e1dabb7c1348b72bfa87da179c9697c69af74827649266a5da8cdbb367abcd" + } + ], + "conversionEnvironment": "WEB", + "gclid": "gclid", + "conversionDateTime": "2022-01-01 12:32:45-08:00", + "conversionValue": 1, + "currencyCode": "GBP", + "orderId": "PL-123QR" + } + ], + "partialFailure": true + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + } + }, + output: { + response: { + status: 200, + body: { + "output": { + "destinationResponse": { + "response": [ + { + "adjustmentDateTime": "2021-01-01 12:32:45-08:00", + "adjustmentType": "ENHANCEMENT", + "conversionAction": "customers/1234567891/conversionActions/874224905", + "gclidDateTimePair": { + "conversionDateTime": "2021-01-01 12:32:45-08:00", + "gclid": "1234" + }, + "orderId": "12345" + } + ], + "status": 200 + }, + "message": "[Google Ads Offline Conversions Response Handler] - Request processed successfully", + "status": 200 + } + } + }, + }, + } +]; diff --git a/test/integrations/destinations/google_adwords_offline_conversions/mocks.ts b/test/integrations/destinations/google_adwords_offline_conversions/mocks.ts new file mode 100644 index 00000000000..3467949b6ce --- /dev/null +++ b/test/integrations/destinations/google_adwords_offline_conversions/mocks.ts @@ -0,0 +1,7 @@ +import helper from '../../../../src/v0/destinations/google_adwords_offline_conversions/helper'; + +export const timestampMock = (_, timestampValue: string = '2019-10-14 16:45:18+05:30') => { + jest.spyOn(helper, 'formatTimestamp').mockImplementation((_v) => { + return timestampValue; + }); +}; diff --git a/test/integrations/destinations/google_adwords_offline_conversions/network.ts b/test/integrations/destinations/google_adwords_offline_conversions/network.ts new file mode 100644 index 00000000000..375879727b1 --- /dev/null +++ b/test/integrations/destinations/google_adwords_offline_conversions/network.ts @@ -0,0 +1,494 @@ +export const networkCallsData = [ + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/11122233331/offlineUserDataJobs:create', + data: { + job: { + storeSalesMetadata: { + custom_key: 'CUSTOM_KEY', + loyaltyFraction: 1, + transaction_upload_fraction: '1', + }, + type: 'STORE_SALES_UPLOAD_FIRST_PARTY', + }, + }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': 'logincustomerid', + }, + method: 'POST', + }, + httpRes: { + data: { + resourceName: + 'customers/111-222-3333/offlineUserDataJobs/OFFLINE_USER_DATA_JOB_ID_FOR_ADD_FAILURE', + }, + status: 200, + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/1112223333/googleAds:searchStream', + data: { + query: `SELECT conversion_action.id FROM conversion_action WHERE conversion_action.name = 'Sign-up - click'`, + }, + params: { destination: 'google_adwords_offline_conversion' }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': 'logincustomerid', + }, + method: 'POST', + }, + httpRes: { + data: [ + { + results: [ + { + conversionAction: { + resourceName: 'customers/111-222-3333/offlineUserDataJobs/conversion_id', + id: '848898416', + }, + }, + ], + fieldMask: 'conversionAction.id', + requestId: 'pNnCTCWGP9XOyy3Hmj7yGA', + }, + ], + status: 200, + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/11122233331/offlineUserDataJobs/OFFLINE_USER_DATA_JOB_ID_FOR_ADD_FAILURE:addOperations', + data: { + enable_partial_failure: false, + enable_warnings: false, + operations: [ + { + create: { + transaction_attribute: { + CUSTOM_KEY: 'CUSTOM_VALUE', + currency_code: 'INR', + order_id: 'order id', + store_attribute: { store_code: 'store code' }, + transaction_amount_micros: '100000000', + transaction_date_time: '2019-10-14 11:15:18+00:00', + conversion_action: 'customers/111-222-3333/offlineUserDataJobs/conversion_id', + }, + userIdentifiers: [ + { + hashedEmail: '6db61e6dcbcf2390e4a46af26f26a133a3bee45021422fc7ae86e9136f14110', + userIdentifierSource: 'UNSPECIFIED', + }, + ], + }, + }, + ], + validate_only: false, + }, + params: { destination: 'google_adwords_offline_conversion' }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': 'logincustomerid', + }, + method: 'POST', + }, + httpRes: { + status: 400, + data: { + error: { + code: 400, + message: 'Request contains an invalid argument.', + status: 'INVALID_ARGUMENT', + details: [ + { + '@type': 'type.googleapis.com/google.ads.googleads.v14.errors.GoogleAdsFailure', + errors: [ + { + errorCode: { + offlineUserDataJobError: 'INVALID_SHA256_FORMAT', + }, + message: 'The SHA256 encoded value is malformed.', + location: { + fieldPathElements: [ + { + fieldName: 'operations', + index: 0, + }, + { + fieldName: 'create', + }, + { + fieldName: 'user_identifiers', + index: 0, + }, + { + fieldName: 'hashed_email', + }, + ], + }, + }, + ], + requestId: '68697987', + }, + ], + }, + }, + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/1112223333/offlineUserDataJobs:create', + data: { + job: { + storeSalesMetadata: { + custom_key: 'CUSTOM_KEY', + loyaltyFraction: 1, + transaction_upload_fraction: '1', + }, + type: 'STORE_SALES_UPLOAD_FIRST_PARTY', + }, + }, + params: { destination: 'google_adwords_offline_conversion' }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': 'logincustomerid', + }, + method: 'POST', + }, + httpRes: { + data: { + resourceName: 'customers/111-222-3333/offlineUserDataJobs/OFFLINE_USER_DATA_JOB_ID', + }, + status: 200, + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/1112223333/offlineUserDataJobs/OFFLINE_USER_DATA_JOB_ID:addOperations', + data: { + enable_partial_failure: false, + enable_warnings: false, + operations: [ + { + create: { + transaction_attribute: { + CUSTOM_KEY: 'CUSTOM_VALUE', + currency_code: 'INR', + order_id: 'order id', + store_attribute: { store_code: 'store code' }, + transaction_amount_micros: '100000000', + transaction_date_time: '2019-10-14 11:15:18+00:00', + conversion_action: 'customers/111-222-3333/offlineUserDataJobs/conversion_id', + }, + userIdentifiers: [ + { + hashedEmail: '6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110', + userIdentifierSource: 'UNSPECIFIED', + }, + ], + }, + }, + ], + validate_only: false, + }, + params: { destination: 'google_adwords_offline_conversion' }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': 'logincustomerid', + }, + method: 'POST', + }, + httpRes: { + data: {}, + status: 200, + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/1112223333/offlineUserDataJobs/OFFLINE_USER_DATA_JOB_ID:run', + data: { validate_only: false }, + params: { destination: 'google_adwords_offline_conversion' }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': 'logincustomerid', + }, + method: 'POST', + }, + httpRes: { + data: { + name: 'customers/111-222-3333/operations/abcd=', + }, + status: 200, + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/customerid/offlineUserDataJobs:create', + data: { + job: { + storeSalesMetadata: { + custom_key: 'CUSTOM_KEY', + loyaltyFraction: 1, + transaction_upload_fraction: '1', + }, + type: 'STORE_SALES_UPLOAD_FIRST_PARTY', + }, + }, + params: { destination: 'google_adwords_offline_conversion' }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': 'logincustomerid', + }, + method: 'POST', + }, + httpRes: { + status: 401, + data: { + error: { + code: 401, + message: + 'Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.', + status: 'UNAUTHENTICATED', + }, + }, + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/1234567890/googleAds:searchStream', + data: { + query: `SELECT conversion_action.id FROM conversion_action WHERE conversion_action.name = 'Sign-up - click'`, + }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + method: 'POST', + params: { destination: 'google_adwords_offline_conversion' }, + }, + httpRes: { + data: [ + { + error: { + code: 401, + message: + 'Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.', + status: 'UNAUTHENTICATED', + }, + }, + ], + status: 401, + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/1234567891/googleAds:searchStream', + data: { + query: + "SELECT conversion_action.id FROM conversion_action WHERE conversion_action.name = 'Sign-up - click'", + }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + method: 'POST', + params: { destination: 'google_adwords_offline_conversion' }, + }, + httpRes: { + data: [ + { + results: [ + { + conversionAction: { + resourceName: 'customers/1234567891/conversionActions/848898416', + id: '848898416', + }, + }, + ], + fieldMask: 'conversionAction.id', + requestId: 'pNnCTCWGP9XOyy3Hmj7yGA', + }, + ], + status: 200, + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/1234567891/googleAds:searchStream', + data: { query: 'SELECT conversion_custom_variable.name FROM conversion_custom_variable' }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + method: 'POST', + params: { destination: 'google_adwords_offline_conversion' }, + }, + httpRes: { + data: [ + { + results: [ + { + conversionCustomVariable: { + resourceName: 'customers/1234567891/conversionCustomVariables/19131634', + name: 'revenue', + }, + }, + { + conversionCustomVariable: { + resourceName: 'customers/1234567891/conversionCustomVariables/19134061', + name: 'page_value', + }, + }, + ], + }, + ], + status: 200, + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/1234567891:uploadClickConversions', + data: { + conversions: [ + { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionData: { + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + }, + cartData: { + merchantId: 9876, + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + items: [{ productId: '507f1f77bcf86cd799439011', quantity: 2, unitPrice: 50 }], + }, + userIdentifiers: [ + { + userIdentifierSource: 'FIRST_PARTY', + hashedPhoneNumber: + '04e1dabb7c1348b72bfa87da179c9697c69af74827649266a5da8cdbb367abcd', + }, + ], + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: 1, + currencyCode: 'GBP', + orderId: 'PL-123QR', + conversionAction: 'customers/1234567891/conversionActions/848898416', + customVariables: [ + { + conversionCustomVariable: 'customers/1234567891/conversionCustomVariables/19131634', + value: 'value', + }, + ], + }, + ], + partialFailure: true, + }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + method: 'POST', + params: { destination: 'google_adwords_offline_conversion' }, + }, + httpRes: { + data: [ + { + adjustmentType: 'ENHANCEMENT', + conversionAction: 'customers/1234567891/conversionActions/874224905', + adjustmentDateTime: '2021-01-01 12:32:45-08:00', + gclidDateTimePair: { + gclid: '1234', + conversionDateTime: '2021-01-01 12:32:45-08:00', + }, + orderId: '12345', + }, + ], + status: 200, + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/1234567891:uploadClickConversions', + data: { + conversions: [ + { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionData: { + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + }, + cartData: { + merchantId: 9876, + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + items: [{ productId: '507f1f77bcf86cd799439011', quantity: 2, unitPrice: 50 }], + }, + userIdentifiers: [ + { + userIdentifierSource: 'FIRST_PARTY', + hashedPhoneNumber: + '04e1dabb7c1348b72bfa87da179c9697c69af74827649266a5da8cdbb367abcd', + }, + ], + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: 1, + currencyCode: 'GBP', + orderId: 'PL-123QR', + conversionAction: 'customers/1234567891/conversionActions/848898416', + }, + ], + partialFailure: true, + }, + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + method: 'POST', + params: { destination: 'google_adwords_offline_conversion' }, + }, + httpRes: { + data: [ + { + adjustmentType: 'ENHANCEMENT', + conversionAction: 'customers/1234567891/conversionActions/874224905', + adjustmentDateTime: '2021-01-01 12:32:45-08:00', + gclidDateTimePair: { + gclid: '1234', + conversionDateTime: '2021-01-01 12:32:45-08:00', + }, + orderId: '12345', + }, + ], + status: 200, + }, + }, +]; diff --git a/test/integrations/destinations/google_adwords_offline_conversions/processor/data.ts b/test/integrations/destinations/google_adwords_offline_conversions/processor/data.ts new file mode 100644 index 00000000000..f47deaef67d --- /dev/null +++ b/test/integrations/destinations/google_adwords_offline_conversions/processor/data.ts @@ -0,0 +1,5315 @@ +import { timestampMock } from '../mocks'; +export const data = [ + { + name: 'google_adwords_offline_conversions', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + phone: 'alex@example.com', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Promotion Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + merchantId: '9876merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionValue: '1', + currency: 'GBP', + orderId: 'PL-123QR', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: false, + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Promotion Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Promotion Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/9625812972:uploadClickConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + params: { + event: 'Sign-up - click', + customerId: '9625812972', + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + merchantId: '9876merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionValue: '1', + currency: 'GBP', + orderId: 'PL-123QR', + }, + }, + body: { + JSON: { + conversions: [ + { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionData: { + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + }, + cartData: { + merchantId: 9876, + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + items: [ + { + productId: '507f1f77bcf86cd799439011', + quantity: 2, + unitPrice: 50, + }, + ], + }, + userIdentifiers: [ + { + userIdentifierSource: 'FIRST_PARTY', + hashedPhoneNumber: + '6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110', + }, + ], + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2019-10-14 16:45:18+05:30', + conversionValue: 1, + currencyCode: 'GBP', + orderId: 'PL-123QR', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: timestampMock, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Promotion Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + timestamp: 1675692865495, + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + merchantId: '9876merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionValue: '1', + currency: 'GBP', + orderId: 'PL-123QR', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: false, + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Promotion Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Promotion Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/9625812972:uploadClickConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + params: { + event: 'Sign-up - click', + customerId: '9625812972', + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + merchantId: '9876merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionValue: '1', + currency: 'GBP', + orderId: 'PL-123QR', + }, + }, + body: { + JSON: { + conversions: [ + { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionData: { + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + }, + cartData: { + merchantId: 9876, + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + items: [ + { + productId: '507f1f77bcf86cd799439011', + quantity: 2, + unitPrice: 50, + }, + ], + }, + userIdentifiers: [ + { + userIdentifierSource: 'FIRST_PARTY', + hashedEmail: + '6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110', + }, + ], + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2023-02-06 19:44:25+05:30', + conversionValue: 1, + currencyCode: 'GBP', + orderId: 'PL-123QR', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: (_) => timestampMock(_, '2023-02-06 19:44:25+05:30'), + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'sign up completed', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + type: 'track', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + value: '10', + orderId: 'PL-123QR', + merchantId: '123123Mpowi', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + gclid: 'gclid', + conversionAction: 'customer', + conversionValue: '1', + currency: 'GBP', + total: 555, + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: false, + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Promotion Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Promotion Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/9625812972:uploadClickConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + params: { + event: 'Sign-up - click', + customerId: '9625812972', + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + value: '10', + orderId: 'PL-123QR', + merchantId: '123123Mpowi', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + gclid: 'gclid', + conversionAction: 'customer', + conversionValue: '1', + currency: 'GBP', + total: 555, + }, + }, + body: { + JSON: { + conversions: [ + { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionData: { + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + }, + cartData: { + merchantId: 123123, + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + items: [ + { + productId: '507f1f77bcf86cd799439011', + quantity: 2, + unitPrice: 50, + }, + ], + }, + gclid: 'gclid', + conversionDateTime: '2019-10-14 16:45:18+05:30', + conversionValue: 1, + currencyCode: 'GBP', + orderId: 'PL-123QR', + userIdentifiers: [ + { + userIdentifierSource: 'THIRD_PARTY', + hashedEmail: + '6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110', + }, + ], + conversionEnvironment: 'WEB', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: timestampMock, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Product Searched', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + merchantId: 'merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + callerId: 'callerId', + callStartDateTime: '2022-08-28 15:01:30+05:30', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: '1', + currency: 'GBP', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: false, + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Promotion Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Promotion Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/9625812972:uploadCallConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + params: { + event: 'search', + customerId: '9625812972', + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + properties: { + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + merchantId: 'merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + callerId: 'callerId', + callStartDateTime: '2022-08-28 15:01:30+05:30', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: '1', + currency: 'GBP', + }, + }, + body: { + JSON: { + conversions: [ + { + callerId: 'callerId', + callStartDateTime: '2022-08-28 15:01:30+05:30', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: 1, + currencyCode: 'GBP', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Promotion Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + merchantId: 'merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: '1', + currency: 'GBP', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: null, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: false, + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Promotion Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Promotion Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: null, + }, + statusCode: 500, + error: 'OAuth - access token not found', + statTags: { + errorCategory: 'platform', + errorType: 'oAuthSecret', + destType: 'GOOGLE_ADWORDS_OFFLINE_CONVERSIONS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Promotion Clicked', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: '1', + currency: 'GBP', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: false, + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Promotion Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Promotion Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 400, + error: 'Message type is not present. Aborting message.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'GOOGLE_ADWORDS_OFFLINE_CONVERSIONS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: '1', + currency: 'GBP', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: false, + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Promotion Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Promotion Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 400, + error: 'Event name is not present', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'GOOGLE_ADWORDS_OFFLINE_CONVERSIONS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'purchase', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: '1', + currency: 'GBP', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: false, + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Promotion Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Promotion Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 400, + error: "Event name 'purchase' is not present in the mapping provided in the dashboard.", + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'GOOGLE_ADWORDS_OFFLINE_CONVERSIONS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'download', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + merchantId: 'merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: '1', + currency: 'GBP', + callerId: 'callerId', + callStartDateTime: '2022-08-28 15:01:30+05:30', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: false, + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Promotion Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Promotion Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'phone', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/9625812972:uploadClickConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + params: { + event: 'Page view', + customerId: '9625812972', + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + merchantId: 'merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: '1', + currency: 'GBP', + callerId: 'callerId', + callStartDateTime: '2022-08-28 15:01:30+05:30', + }, + }, + body: { + JSON: { + conversions: [ + { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionData: { + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + }, + cartData: { + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + items: [ + { + productId: '507f1f77bcf86cd799439011', + quantity: 2, + unitPrice: 50, + }, + ], + }, + userIdentifiers: [ + { + userIdentifierSource: 'FIRST_PARTY', + hashedPhoneNumber: + '04e1dabb7c1348b72bfa87da179c9697c69af74827649266a5da8cdbb367abcd', + }, + ], + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: 1, + currencyCode: 'GBP', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/9625812972:uploadCallConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + params: { + event: 'Page view', + customerId: '9625812972', + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + merchantId: 'merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: '1', + currency: 'GBP', + callerId: 'callerId', + callStartDateTime: '2022-08-28 15:01:30+05:30', + }, + }, + body: { + JSON: { + conversions: [ + { + callerId: 'callerId', + callStartDateTime: '2022-08-28 15:01:30+05:30', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: 1, + currencyCode: 'GBP', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: {}, + traits: { + email: 'alex@example.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Promotion Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: true, + loginCustomerId: '861-785-9087', + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Promotion Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Promotion Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'phone', + '': 'phone', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/9625812972:uploadClickConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': '8617859087', + }, + params: { + event: 'Sign-up - click', + customerId: '9625812972', + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + properties: { + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + }, + }, + body: { + JSON: { + conversions: [ + { + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + userIdentifiers: [ + { + userIdentifierSource: 'THIRD_PARTY', + hashedEmail: + '6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110', + }, + ], + conversionEnvironment: 'WEB', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: {}, + traits: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Product Searched', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + callerId: 'callerId', + callStartDateTime: '2022-08-28 15:01:30+05:30', + conversionDateTime: '2022-01-01 12:32:45-08:00', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: false, + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Promotion Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Promotion Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/9625812972:uploadCallConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + params: { + event: 'search', + customerId: '9625812972', + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + properties: { + callerId: 'callerId', + callStartDateTime: '2022-08-28 15:01:30+05:30', + conversionDateTime: '2022-01-01 12:32:45-08:00', + }, + }, + body: { + JSON: { + conversions: [ + { + callerId: 'callerId', + callStartDateTime: '2022-08-28 15:01:30+05:30', + conversionDateTime: '2022-01-01 12:32:45-08:00', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Product Searched', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2022-09-20T03:20:04.000Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + merchantId: 'merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + callerId: 'callerId', + callStartDateTime: '2022-08-28 15:01:30+05:30', + conversionValue: '1', + currency: 'GBP', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: false, + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Promotion Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Promotion Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/9625812972:uploadCallConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + params: { + event: 'search', + customerId: '9625812972', + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + properties: { + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + merchantId: 'merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + callerId: 'callerId', + callStartDateTime: '2022-08-28 15:01:30+05:30', + conversionValue: '1', + currency: 'GBP', + }, + }, + body: { + JSON: { + conversions: [ + { + callerId: 'callerId', + callStartDateTime: '2022-08-28 15:01:30+05:30', + conversionDateTime: '2022-09-20 08:50:04+05:30', + conversionValue: 1, + currencyCode: 'GBP', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: (_) => timestampMock(_, '2022-09-20 08:50:04+05:30'), + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: {}, + traits: { + email: 'alex@example.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Promotion Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: false, + loginCustomerId: '', + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Promotion Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Promotion Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: false, + defaultUserIdentifier: 'phone', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/9625812972:uploadClickConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + params: { + event: 'Sign-up - click', + customerId: '9625812972', + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + properties: { + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + }, + }, + body: { + JSON: { + conversions: [ + { + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + userIdentifiers: [ + { + userIdentifierSource: 'THIRD_PARTY', + hashedEmail: 'alex@example.com', + }, + ], + conversionEnvironment: 'WEB', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: {}, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Promotion Clicked', + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: false, + loginCustomerId: '', + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Promotion Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Promotion Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: false, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 400, + error: 'Message type page not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'GOOGLE_ADWORDS_OFFLINE_CONVERSIONS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: {}, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Promotion Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: true, + loginCustomerId: '', + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Promotion Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Promotion Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: false, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 400, + error: '"Login Customer ID" is required as "Sub Account" is enabled', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'GOOGLE_ADWORDS_OFFLINE_CONVERSIONS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: {}, + traits: { + email: 'alex@example.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Product Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + product_id: '123445', + quantity: 123, + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: true, + loginCustomerId: '861-785-9087', + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Product Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Product Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'phone', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/9625812972:uploadClickConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': '8617859087', + }, + params: { + event: 'Sign-up - click', + customerId: '9625812972', + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + properties: { + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + product_id: '123445', + quantity: 123, + }, + }, + body: { + JSON: { + conversions: [ + { + cartData: { + items: [ + { + productId: '123445', + quantity: 123, + }, + ], + }, + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + userIdentifiers: [ + { + userIdentifierSource: 'THIRD_PARTY', + hashedEmail: + '6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110', + }, + ], + conversionEnvironment: 'WEB', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 16', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: {}, + traits: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Product Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + product_id: '123445', + quantity: 123, + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: true, + loginCustomerId: '861-785-9087', + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Product Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Product Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 400, + error: 'Either of email or phone is required for user identifier', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'GOOGLE_ADWORDS_OFFLINE_CONVERSIONS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 17', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: {}, + traits: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Product Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + product_id: '123445', + quantity: 123, + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + subAccount: true, + loginCustomerId: '861-785-9087', + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Product Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Product Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'none', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/9625812972:uploadClickConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': '8617859087', + }, + params: { + event: 'Sign-up - click', + customerId: '9625812972', + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + properties: { + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + product_id: '123445', + quantity: 123, + }, + }, + body: { + JSON: { + conversions: [ + { + cartData: { + items: [ + { + productId: '123445', + quantity: 123, + }, + ], + }, + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionEnvironment: 'WEB', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 18', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + firstName: 'John', + }, + }, + event: 'Product Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + loyaltyFraction: 1, + order_id: 'order id', + currency: 'INR', + revenue: '100', + store_code: 'store code', + email: 'alex@example.com', + gclid: 'gclid', + product_id: '123445', + custom_key: 'CUSTOM_KEY', + CUSTOM_KEY: 'CUSTOM_VALUE', + quantity: 123, + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '111-222-3333', + subAccount: true, + loginCustomerId: 'login-customer-id', + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Product Clicked', + to: 'store', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Product Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'phone', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/1112223333/offlineUserDataJobs', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': 'logincustomerid', + }, + params: { + event: 'Sign-up - click', + customerId: '1112223333', + }, + body: { + JSON: { + event: '1112223333', + isStoreConversion: true, + createJobPayload: { + job: { + storeSalesMetadata: { + loyaltyFraction: 1, + custom_key: 'CUSTOM_KEY', + transaction_upload_fraction: '1', + }, + type: 'STORE_SALES_UPLOAD_FIRST_PARTY', + }, + }, + addConversionPayload: { + operations: { + create: { + transaction_attribute: { + store_attribute: { + store_code: 'store code', + }, + transaction_amount_micros: '100000000', + order_id: 'order id', + currency_code: 'INR', + transaction_date_time: '2019-10-14 16:45:18+05:30', + CUSTOM_KEY: 'CUSTOM_VALUE', + }, + userIdentifiers: [ + { + hashedEmail: + '6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110', + }, + ], + }, + }, + enable_partial_failure: false, + enable_warnings: false, + validate_only: false, + }, + executeJobPayload: { + validate_only: false, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: timestampMock, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 19', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + firstName: 'John', + }, + }, + event: 'Product Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + loyaltyFraction: 1, + order_id: 'order id', + currency: 'INR', + store_code: 'store code', + userIdentifierSource: 'FIRST_PARTY', + email: 'alex@example.com', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + product_id: '123445', + quantity: 123, + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '111-222-3333', + subAccount: true, + loginCustomerId: 'login-customer-id', + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Product Clicked', + to: 'store', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Product Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 400, + error: + 'Missing required value from ["properties.conversionValue","properties.total","properties.value","properties.revenue"]', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'GOOGLE_ADWORDS_OFFLINE_CONVERSIONS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 20', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + firstName: 'John', + }, + }, + event: 'Product Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + loyaltyFraction: 1, + item_id: 'item id', + merchant_id: 'merchant id', + currency: 'INR', + revenue: '100', + store_code: 'store code', + gclid: 'gclid', + product_id: '123445', + quantity: 123, + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + isCustomerAllowed: true, + customerId: '111-222-3333', + subAccount: true, + loginCustomerId: 'login-customer-id', + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Product Clicked', + to: 'store', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Product Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/1112223333/offlineUserDataJobs', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': 'logincustomerid', + }, + params: { + event: 'Sign-up - click', + customerId: '1112223333', + }, + body: { + JSON: { + event: '1112223333', + isStoreConversion: true, + createJobPayload: { + job: { + storeSalesMetadata: { + loyaltyFraction: 1, + transaction_upload_fraction: '1', + }, + type: 'STORE_SALES_UPLOAD_FIRST_PARTY', + }, + }, + addConversionPayload: { + operations: { + create: { + transaction_attribute: { + store_attribute: { + store_code: 'store code', + }, + transaction_amount_micros: '100000000', + currency_code: 'INR', + transaction_date_time: '2019-10-14 16:45:18+05:30', + }, + userIdentifiers: [ + { + address_info: { + hashed_first_name: + '96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a', + }, + }, + ], + }, + }, + enable_partial_failure: false, + enable_warnings: false, + validate_only: false, + }, + executeJobPayload: { + validate_only: false, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: timestampMock, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 21', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + firstName: 'first_name', + streetAddress: 'street_address', + state: 'England', + }, + }, + event: 'Product Clicked', + type: 'track', + timestamp: 1675692865495, + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + item_id: 'item id', + merchant_id: 'merchant id', + currency: 'INR', + revenue: '100', + store_code: 'store code', + gclid: 'gclid', + product_id: '123445', + quantity: 123, + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + isCustomerAllowed: false, + customerId: '111-222-3333', + subAccount: true, + loginCustomerId: 'login-customer-id', + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Product Clicked', + to: 'store', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Product Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + conversionEnvironment: 'WEB', + hashUserIdentifier: false, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/1112223333/offlineUserDataJobs', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': 'logincustomerid', + }, + params: { + event: 'Sign-up - click', + customerId: '1112223333', + }, + body: { + JSON: { + event: '1112223333', + isStoreConversion: true, + createJobPayload: { + job: { + type: 'STORE_SALES_UPLOAD_FIRST_PARTY', + storeSalesMetadata: { + loyaltyFraction: '1', + transaction_upload_fraction: '1', + }, + }, + }, + addConversionPayload: { + operations: { + create: { + transaction_attribute: { + store_attribute: { + store_code: 'store code', + }, + transaction_amount_micros: '100000000', + currency_code: 'INR', + transaction_date_time: '2023-02-06 19:44:25+05:30', + }, + userIdentifiers: [ + { + address_info: { + state: 'England', + hashed_first_name: 'first_name', + hashed_street_address: 'street_address', + }, + }, + ], + }, + }, + enable_partial_failure: false, + enable_warnings: false, + validate_only: false, + }, + executeJobPayload: { + validate_only: false, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: (_) => timestampMock(_, '2023-02-06 19:44:25+05:30'), + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 22', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + firstName: 'John', + lastName: 'Gomes', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + state: 'England', + }, + }, + event: 'Product Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + timestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + item_id: 'item id', + merchant_id: 'merchant id', + currency: 'INR', + revenue: '100', + store_code: 'store code', + phone: '+1-202-555-0146', + gclid: 'gclid', + product_id: '123445', + quantity: 123, + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + isCustomerAllowed: false, + customerId: '111-222-3333', + subAccount: true, + loginCustomerId: 'login-customer-id', + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Product Clicked', + to: 'store', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Product Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'phone', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/1112223333/offlineUserDataJobs', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': 'logincustomerid', + }, + params: { + event: 'Sign-up - click', + customerId: '1112223333', + }, + body: { + JSON: { + event: '1112223333', + isStoreConversion: true, + createJobPayload: { + job: { + type: 'STORE_SALES_UPLOAD_FIRST_PARTY', + storeSalesMetadata: { + loyaltyFraction: '1', + transaction_upload_fraction: '1', + }, + }, + }, + addConversionPayload: { + operations: { + create: { + transaction_attribute: { + store_attribute: { + store_code: 'store code', + }, + transaction_amount_micros: '100000000', + currency_code: 'INR', + transaction_date_time: '2019-10-14 16:45:18+05:30', + }, + userIdentifiers: [ + { + hashedPhoneNumber: + '04e1dabb7c1348b72bfa87da179c9697c69af74827649266a5da8cdbb367abcd', + }, + ], + }, + }, + enable_partial_failure: false, + enable_warnings: false, + validate_only: false, + }, + executeJobPayload: { + validate_only: false, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: timestampMock, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 23', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + firstName: 'John', + lastName: 'Gomes', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + state: 'England', + }, + }, + event: 'Product Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + item_id: 'item id', + merchant_id: 'merchant id', + currency: 'INR', + revenue: '100', + store_code: 'store code', + phone: '+1-202-555-0146', + gclid: 'gclid', + product_id: '123445', + quantity: 123, + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + isCustomerAllowed: false, + customerId: '111-222-3333', + subAccount: true, + loginCustomerId: 'login-customer-id', + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Product Clicked', + to: 'store', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Product Clicked', + to: 'Sign-up - click', + }, + ], + hashUserIdentifier: true, + defaultUserIdentifier: 'phone', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNkgr4t3u4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/1112223333/offlineUserDataJobs', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': 'logincustomerid', + }, + params: { + event: 'Sign-up - click', + customerId: '1112223333', + }, + body: { + JSON: { + event: '1112223333', + isStoreConversion: true, + createJobPayload: { + job: { + type: 'STORE_SALES_UPLOAD_FIRST_PARTY', + storeSalesMetadata: { + loyaltyFraction: '1', + transaction_upload_fraction: '1', + }, + }, + }, + addConversionPayload: { + operations: { + create: { + transaction_attribute: { + store_attribute: { + store_code: 'store code', + }, + transaction_amount_micros: '100000000', + currency_code: 'INR', + transaction_date_time: '2019-10-14 16:45:18+05:30', + }, + userIdentifiers: [ + { + hashedPhoneNumber: + '04e1dabb7c1348b72bfa87da179c9697c69af74827649266a5da8cdbb367abcd', + }, + ], + }, + }, + enable_partial_failure: false, + enable_warnings: false, + validate_only: false, + }, + executeJobPayload: { + validate_only: false, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: timestampMock, + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 24', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: { + email: 'alex@example.com', + }, + }, + event: 'Product Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + item_id: 'item id', + merchant_id: 'merchant id', + currency: 'INR', + revenue: '100', + store_code: 'store code', + gclid: 'gclid', + transaction_date_time: '2022-01-01 12:32:45-08:00Z', + product_id: '123445', + quantity: 123, + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + isCustomerAllowed: false, + customerId: '111-222-3333', + subAccount: true, + loginCustomerId: 'login-customer-id', + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Product Clicked', + to: 'store', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Product Clicked', + to: 'Sign-up - click', + }, + ], + hashUserIdentifier: true, + defaultUserIdentifier: 'phone', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNkgr4t3u4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/1112223333/offlineUserDataJobs', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': 'logincustomerid', + }, + params: { + event: 'Sign-up - click', + customerId: '1112223333', + }, + body: { + JSON: { + event: '1112223333', + isStoreConversion: true, + createJobPayload: { + job: { + type: 'STORE_SALES_UPLOAD_FIRST_PARTY', + storeSalesMetadata: { + loyaltyFraction: '1', + transaction_upload_fraction: '1', + }, + }, + }, + addConversionPayload: { + operations: { + create: { + transaction_attribute: { + store_attribute: { + store_code: 'store code', + }, + transaction_amount_micros: '100000000', + currency_code: 'INR', + transaction_date_time: '2022-01-01 18:02:45+05:30', + }, + userIdentifiers: [ + { + hashedEmail: + '6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110', + }, + ], + }, + }, + enable_partial_failure: false, + enable_warnings: false, + validate_only: false, + }, + executeJobPayload: { + validate_only: false, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: (_) => timestampMock(_, '2022-01-01 18:02:45+05:30'), + }, + { + name: 'google_adwords_offline_conversions', + description: 'Test 25', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + traits: {}, + }, + event: 'Product Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + item_id: 'item id', + merchant_id: 'merchant id', + currency: 'INR', + revenue: '100', + store_code: 'store code', + gclid: 'gclid', + conversionDateTime: '2019-10-14T11:15:18.299Z', + product_id: '123445', + quantity: 123, + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + isCustomerAllowed: false, + customerId: '111-222-3333', + subAccount: true, + loginCustomerId: 'login-customer-id', + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Product Clicked', + to: 'store', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Product Clicked', + to: 'Sign-up - click', + }, + ], + hashUserIdentifier: true, + defaultUserIdentifier: 'phone', + validateOnly: false, + rudderAccountId: '2EOknn1JNH7WK1MfNkgr4t3u4fGYKkRK', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/1112223333/offlineUserDataJobs', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + 'login-customer-id': 'logincustomerid', + }, + params: { + event: 'Sign-up - click', + customerId: '1112223333', + }, + body: { + JSON: { + event: '1112223333', + isStoreConversion: true, + createJobPayload: { + job: { + type: 'STORE_SALES_UPLOAD_FIRST_PARTY', + storeSalesMetadata: { + loyaltyFraction: '1', + transaction_upload_fraction: '1', + }, + }, + }, + addConversionPayload: { + operations: { + create: { + transaction_attribute: { + store_attribute: { + store_code: 'store code', + }, + transaction_amount_micros: '100000000', + currency_code: 'INR', + transaction_date_time: '2019-10-14 16:45:18+05:30', + }, + userIdentifiers: [{}], + }, + }, + enable_partial_failure: false, + enable_warnings: false, + validate_only: false, + }, + executeJobPayload: { + validate_only: false, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: timestampMock, + }, +]; diff --git a/test/integrations/destinations/google_adwords_offline_conversions/router/data.ts b/test/integrations/destinations/google_adwords_offline_conversions/router/data.ts new file mode 100644 index 00000000000..c5d2f2f5249 --- /dev/null +++ b/test/integrations/destinations/google_adwords_offline_conversions/router/data.ts @@ -0,0 +1,1119 @@ +import { timestampMock } from '../mocks'; + +export const data = [ + { + name: 'google_adwords_offline_conversions', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Promotion Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + merchantId: '9876merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: '1', + currency: 'GBP', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Promotion Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Promotion Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '25u5whFH7gVTnCiAjn4ykoCLGoC', + }, + }, + }, + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + id: '0572f78fa49c648e', + name: 'generic_x86_arm', + type: 'Android', + model: 'AOSP on IA Emulator', + manufacturer: 'Google', + adTrackingEnabled: true, + advertisingId: '44c97318-9040-4361-8bc7-4eb30f665ca8', + }, + traits: { + email: 'alex@example.com', + phone: '+1-202-555-0146', + firstName: 'John', + lastName: 'Gomes', + city: 'London', + state: 'England', + countryCode: 'GB', + postalCode: 'EC3M', + streetAddress: '71 Cherry Court SOUTHAMPTON SO53 5PD UK', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'Product Searched', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + merchantId: 'merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + + callerId: 'callerId', + callStartDateTime: '2022-08-28 15:01:30+05:30', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: '1', + currency: 'GBP', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + destination: { + Config: { + customerId: '962-581-2972', + eventsToOfflineConversionsTypeMapping: [ + { + from: 'Sign up completed', + to: 'click', + }, + { + from: 'Download', + to: 'call', + }, + { + from: 'Promotion Clicked', + to: 'click', + }, + { + from: 'Product Searched', + to: 'call', + }, + ], + eventsToConversionsNamesMapping: [ + { + from: 'Sign up completed', + to: 'Sign-up - click', + }, + { + from: 'Download', + to: 'Page view', + }, + { + from: 'Promotion Clicked', + to: 'Sign-up - click', + }, + { + from: 'Product Searched', + to: 'search', + }, + ], + customVariables: [ + { + from: 'value', + to: 'revenue', + }, + { + from: 'total', + to: 'cost', + }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'phone', + validateOnly: false, + rudderAccountId: '25u5whFH7gVTnCiAjn4ykoCLGoC', + }, + }, + }, + { + message: { + channel: 'web', + context: { + traits: { + firstName: 'John', + }, + }, + event: 'Product Clicked', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + loyaltyFraction: 1, + order_id: 'order id', + currency: 'INR', + revenue: '100', + store_code: 'store code', + email: 'alex@example.com', + gclid: 'gclid', + product_id: '123445', + quantity: 123, + callerId: '1234', + callStartDateTime: '2019-10-14T11:15:18.299Z', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 1, + }, + destination: { + Config: { + rudderAccountId: '2Hsy2iFyoG5VLDd9wQcggHLMYFA', + customerId: '769-372-9833', + subAccount: false, + UserIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'none', + defaultUserIdentifier: 'email', + hashUserIdentifier: true, + validateOnly: true, + eventsToOfflineConversionsTypeMapping: [ + { from: 'Data Reading Guide', to: 'click' }, + { from: 'Order Completed', to: 'store' }, + { from: 'Sign-up - click', to: 'click' }, + { from: 'Outbound click (rudderstack.com)', to: 'click' }, + { from: 'Page view', to: 'click' }, + { from: 'download', to: 'click' }, + { from: 'Product Clicked', to: 'store' }, + { from: 'Order Completed', to: 'call' }, + ], + loginCustomerId: '4219454086', + eventsToConversionsNamesMapping: [ + { from: 'Data Reading Guide', to: 'Data Reading Guide' }, + { from: 'Order Completed', to: 'Order Completed' }, + { from: 'Sign-up - click', to: 'Sign-up - click' }, + { + from: 'Outbound click (rudderstack.com)', + to: 'Outbound click (rudderstack.com)', + }, + { from: 'Page view', to: 'Page view' }, + { from: 'Sign up completed', to: 'Sign-up - click' }, + { from: 'download', to: 'Page view' }, + { from: 'Product Clicked', to: 'Store sales' }, + ], + authStatus: 'active', + oneTrustCookieCategories: [], + customVariables: [{ from: '', to: '' }], + }, + }, + }, + { + message: { + channel: 'web', + context: { + traits: { + firstName: 'John', + }, + }, + event: 'Order Completed', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + loyaltyFraction: 1, + order_id: 'order id', + currency: 'INR', + revenue: '100', + store_code: 'store code2', + email: 'alex@example.com', + gclid: 'gclid', + product_id: '123445', + quantity: 123, + callerId: '1234', + callStartDateTime: '2019-10-14T11:15:18.299Z', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 2, + }, + destination: { + Config: { + rudderAccountId: '2Hsy2iFyoG5VLDd9wQcggHLMYFA', + customerId: '769-372-9833', + subAccount: false, + UserIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'none', + defaultUserIdentifier: 'email', + hashUserIdentifier: true, + validateOnly: true, + eventsToOfflineConversionsTypeMapping: [ + { from: 'Data Reading Guide', to: 'click' }, + { from: 'Order Completed', to: 'store' }, + { from: 'Sign-up - click', to: 'click' }, + { from: 'Outbound click (rudderstack.com)', to: 'click' }, + { from: 'Page view', to: 'click' }, + { from: 'download', to: 'click' }, + { from: 'Product Clicked', to: 'store' }, + { from: 'Order Completed', to: 'call' }, + ], + loginCustomerId: '4219454086', + eventsToConversionsNamesMapping: [ + { from: 'Data Reading Guide', to: 'Data Reading Guide' }, + { from: 'Order Completed', to: 'Order Completed' }, + { from: 'Sign-up - click', to: 'Sign-up - click' }, + { + from: 'Outbound click (rudderstack.com)', + to: 'Outbound click (rudderstack.com)', + }, + { from: 'Page view', to: 'Page view' }, + { from: 'Sign up completed', to: 'Sign-up - click' }, + { from: 'download', to: 'Page view' }, + { from: 'Product Clicked', to: 'Store sales' }, + ], + authStatus: 'active', + oneTrustCookieCategories: [], + customVariables: [{ from: '', to: '' }], + }, + }, + }, + { + message: { + channel: 'web', + context: { + traits: { + firstName: 'John', + }, + }, + event: 'Order Completed', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + loyaltyFraction: 1, + order_id: 'order id', + currency: 'INR', + revenue: '100', + store_code: 'store code2', + email: 'alex@example.com', + gclid: 'gclid', + product_id: '123445', + quantity: 123, + callerId: '1234', + callStartDateTime: '2019-10-14T11:15:18.299Z', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 3, + }, + destination: { + Config: { + rudderAccountId: '2Hsy2iFyoG5VLDd9wQcggHLMYFA', + customerId: '769-372-9833', + subAccount: false, + UserIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'none', + defaultUserIdentifier: 'email', + hashUserIdentifier: true, + validateOnly: true, + eventsToOfflineConversionsTypeMapping: [ + { from: 'Data Reading Guide', to: 'click' }, + { from: 'Sign-up - click', to: 'click' }, + { from: 'Outbound click (rudderstack.com)', to: 'click' }, + { from: 'Page view', to: 'click' }, + { from: 'download', to: 'click' }, + { from: 'Product Clicked', to: 'store' }, + { from: 'Order Completed', to: 'call' }, + ], + loginCustomerId: '4219454086', + eventsToConversionsNamesMapping: [ + { from: 'Data Reading Guide', to: 'Data Reading Guide' }, + { from: 'Sign-up - click', to: 'Sign-up - click' }, + { + from: 'Outbound click (rudderstack.com)', + to: 'Outbound click (rudderstack.com)', + }, + { from: 'Page view', to: 'Page view' }, + { from: 'Sign up completed', to: 'Sign-up - click' }, + { from: 'download', to: 'Page view' }, + { from: 'Product Clicked', to: 'Store sales' }, + ], + authStatus: 'active', + oneTrustCookieCategories: [], + customVariables: [{ from: '', to: '' }], + }, + }, + }, + ], + destType: 'google_adwords_offline_conversions', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + params: { event: 'Store sales', customerId: '7693729833' }, + body: { + JSON: { + event: '7693729833', + isStoreConversion: true, + createJobPayload: { + job: { + storeSalesMetadata: { + loyaltyFraction: 1, + transaction_upload_fraction: '1', + }, + type: 'STORE_SALES_UPLOAD_FIRST_PARTY', + }, + }, + addConversionPayload: { + operations: [ + { + create: { + transaction_attribute: { + store_attribute: { store_code: 'store code' }, + transaction_amount_micros: '100000000', + order_id: 'order id', + currency_code: 'INR', + transaction_date_time: '2019-10-14 16:45:18+05:30', + }, + userIdentifiers: [ + { + hashedEmail: + '6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110', + }, + ], + }, + }, + { + create: { + transaction_attribute: { + store_attribute: { store_code: 'store code2' }, + transaction_amount_micros: '100000000', + order_id: 'order id', + currency_code: 'INR', + transaction_date_time: '2019-10-14 16:45:18+05:30', + }, + userIdentifiers: [ + { + hashedEmail: + '6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110', + }, + ], + }, + }, + ], + enable_partial_failure: false, + enable_warnings: false, + validate_only: true, + }, + executeJobPayload: { validate_only: true }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 1, + }, + { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 2, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + rudderAccountId: '2Hsy2iFyoG5VLDd9wQcggHLMYFA', + customerId: '769-372-9833', + subAccount: false, + UserIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'none', + defaultUserIdentifier: 'email', + hashUserIdentifier: true, + validateOnly: true, + eventsToOfflineConversionsTypeMapping: [ + { from: 'Data Reading Guide', to: 'click' }, + { from: 'Order Completed', to: 'store' }, + { from: 'Sign-up - click', to: 'click' }, + { from: 'Outbound click (rudderstack.com)', to: 'click' }, + { from: 'Page view', to: 'click' }, + { from: 'download', to: 'click' }, + { from: 'Product Clicked', to: 'store' }, + { from: 'Order Completed', to: 'call' }, + ], + loginCustomerId: '4219454086', + eventsToConversionsNamesMapping: [ + { from: 'Data Reading Guide', to: 'Data Reading Guide' }, + { from: 'Order Completed', to: 'Order Completed' }, + { from: 'Sign-up - click', to: 'Sign-up - click' }, + { + from: 'Outbound click (rudderstack.com)', + to: 'Outbound click (rudderstack.com)', + }, + { from: 'Page view', to: 'Page view' }, + { from: 'Sign up completed', to: 'Sign-up - click' }, + { from: 'download', to: 'Page view' }, + { from: 'Product Clicked', to: 'Store sales' }, + ], + authStatus: 'active', + oneTrustCookieCategories: [], + customVariables: [{ from: '', to: '' }], + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/9625812972:uploadClickConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + params: { + event: 'Sign-up - click', + customerId: '9625812972', + customVariables: [ + { from: 'value', to: 'revenue' }, + { from: 'total', to: 'cost' }, + ], + properties: { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + merchantId: '9876merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: '1', + currency: 'GBP', + }, + }, + body: { + JSON: { + conversions: [ + { + gbraid: 'gbraid', + wbraid: 'wbraid', + externalAttributionData: { + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + }, + cartData: { + merchantId: 9876, + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + items: [ + { productId: '507f1f77bcf86cd799439011', quantity: 2, unitPrice: 50 }, + ], + }, + userIdentifiers: [ + { + userIdentifierSource: 'FIRST_PARTY', + hashedEmail: + '6db61e6dcbcf2390e4a46af426f26a133a3bee45021422fc7ae86e9136f14110', + }, + ], + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: 1, + currencyCode: 'GBP', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + customerId: '962-581-2972', + eventsToOfflineConversionsTypeMapping: [ + { from: 'Sign up completed', to: 'click' }, + { from: 'Download', to: 'call' }, + { from: 'Promotion Clicked', to: 'click' }, + { from: 'Product Searched', to: 'call' }, + ], + eventsToConversionsNamesMapping: [ + { from: 'Sign up completed', to: 'Sign-up - click' }, + { from: 'Download', to: 'Page view' }, + { from: 'Promotion Clicked', to: 'Sign-up - click' }, + { from: 'Product Searched', to: 'search' }, + ], + customVariables: [ + { from: 'value', to: 'revenue' }, + { from: 'total', to: 'cost' }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'email', + validateOnly: false, + rudderAccountId: '25u5whFH7gVTnCiAjn4ykoCLGoC', + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/9625812972:uploadCallConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + params: { + event: 'search', + customerId: '9625812972', + customVariables: [ + { from: 'value', to: 'revenue' }, + { from: 'total', to: 'cost' }, + ], + properties: { + externalAttributionCredit: 10, + externalAttributionModel: 'externalAttributionModel', + merchantId: 'merchantId', + feedCountryCode: 'feedCountryCode', + feedLanguageCode: 'feedLanguageCode', + localTransactionCost: 20, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + quantity: '2', + price: '50', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + }, + ], + userIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'WEB', + gclid: 'gclid', + conversionCustomVariable: 'conversionCustomVariable', + value: 'value', + callerId: 'callerId', + callStartDateTime: '2022-08-28 15:01:30+05:30', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: '1', + currency: 'GBP', + }, + }, + body: { + JSON: { + conversions: [ + { + callerId: 'callerId', + callStartDateTime: '2022-08-28 15:01:30+05:30', + conversionDateTime: '2022-01-01 12:32:45-08:00', + conversionValue: 1, + currencyCode: 'GBP', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + customerId: '962-581-2972', + eventsToOfflineConversionsTypeMapping: [ + { from: 'Sign up completed', to: 'click' }, + { from: 'Download', to: 'call' }, + { from: 'Promotion Clicked', to: 'click' }, + { from: 'Product Searched', to: 'call' }, + ], + eventsToConversionsNamesMapping: [ + { from: 'Sign up completed', to: 'Sign-up - click' }, + { from: 'Download', to: 'Page view' }, + { from: 'Promotion Clicked', to: 'Sign-up - click' }, + { from: 'Product Searched', to: 'search' }, + ], + customVariables: [ + { from: 'value', to: 'revenue' }, + { from: 'total', to: 'cost' }, + ], + UserIdentifierSource: 'THIRD_PARTY', + conversionEnvironment: 'WEB', + hashUserIdentifier: true, + defaultUserIdentifier: 'phone', + validateOnly: false, + rudderAccountId: '25u5whFH7gVTnCiAjn4ykoCLGoC', + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://googleads.googleapis.com/v14/customers/7693729833:uploadCallConversions', + headers: { + Authorization: 'Bearer abcd1234', + 'Content-Type': 'application/json', + 'developer-token': 'ijkl91011', + }, + params: { + event: 'Order Completed', + customerId: '7693729833', + customVariables: [{ from: '', to: '' }], + properties: { + loyaltyFraction: 1, + order_id: 'order id', + currency: 'INR', + revenue: '100', + store_code: 'store code2', + email: 'alex@example.com', + gclid: 'gclid', + product_id: '123445', + quantity: 123, + callerId: '1234', + callStartDateTime: '2019-10-14T11:15:18.299Z', + }, + }, + body: { + JSON: { + conversions: [ + { + callerId: '1234', + callStartDateTime: '2019-10-14T11:15:18.299Z', + conversionDateTime: '2019-10-14 16:45:18+05:30', + conversionValue: 100, + currencyCode: 'INR', + }, + ], + partialFailure: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + rudderAccountId: '2Hsy2iFyoG5VLDd9wQcggHLMYFA', + customerId: '769-372-9833', + subAccount: false, + UserIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'none', + defaultUserIdentifier: 'email', + hashUserIdentifier: true, + validateOnly: true, + eventsToOfflineConversionsTypeMapping: [ + { from: 'Data Reading Guide', to: 'click' }, + { from: 'Order Completed', to: 'store' }, + { from: 'Sign-up - click', to: 'click' }, + { from: 'Outbound click (rudderstack.com)', to: 'click' }, + { from: 'Page view', to: 'click' }, + { from: 'download', to: 'click' }, + { from: 'Product Clicked', to: 'store' }, + { from: 'Order Completed', to: 'call' }, + ], + loginCustomerId: '4219454086', + eventsToConversionsNamesMapping: [ + { from: 'Data Reading Guide', to: 'Data Reading Guide' }, + { from: 'Order Completed', to: 'Order Completed' }, + { from: 'Sign-up - click', to: 'Sign-up - click' }, + { + from: 'Outbound click (rudderstack.com)', + to: 'Outbound click (rudderstack.com)', + }, + { from: 'Page view', to: 'Page view' }, + { from: 'Sign up completed', to: 'Sign-up - click' }, + { from: 'download', to: 'Page view' }, + { from: 'Product Clicked', to: 'Store sales' }, + ], + authStatus: 'active', + oneTrustCookieCategories: [], + customVariables: [{ from: '', to: '' }], + }, + }, + }, + { + metadata: [ + { + secret: { + access_token: 'abcd1234', + refresh_token: 'efgh5678', + developer_token: 'ijkl91011', + }, + jobId: 3, + }, + ], + batched: false, + statusCode: 400, + error: + "Event name 'order completed' is not present in the mapping provided in the dashboard.", + statTags: { + destType: 'GOOGLE_ADWORDS_OFFLINE_CONVERSIONS', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + destination: { + Config: { + rudderAccountId: '2Hsy2iFyoG5VLDd9wQcggHLMYFA', + customerId: '769-372-9833', + subAccount: false, + UserIdentifierSource: 'FIRST_PARTY', + conversionEnvironment: 'none', + defaultUserIdentifier: 'email', + hashUserIdentifier: true, + validateOnly: true, + eventsToOfflineConversionsTypeMapping: [ + { from: 'Data Reading Guide', to: 'click' }, + { from: 'Sign-up - click', to: 'click' }, + { from: 'Outbound click (rudderstack.com)', to: 'click' }, + { from: 'Page view', to: 'click' }, + { from: 'download', to: 'click' }, + { from: 'Product Clicked', to: 'store' }, + { from: 'Order Completed', to: 'call' }, + ], + loginCustomerId: '4219454086', + eventsToConversionsNamesMapping: [ + { from: 'Data Reading Guide', to: 'Data Reading Guide' }, + { from: 'Sign-up - click', to: 'Sign-up - click' }, + { + from: 'Outbound click (rudderstack.com)', + to: 'Outbound click (rudderstack.com)', + }, + { from: 'Page view', to: 'Page view' }, + { from: 'Sign up completed', to: 'Sign-up - click' }, + { from: 'download', to: 'Page view' }, + { from: 'Product Clicked', to: 'Store sales' }, + ], + authStatus: 'active', + oneTrustCookieCategories: [], + customVariables: [{ from: '', to: '' }], + }, + }, + }, + ], + }, + }, + }, + mockFns: timestampMock, + }, +]; diff --git a/test/integrations/destinations/google_adwords_remarketing_lists/dataDelivery/data.ts b/test/integrations/destinations/google_adwords_remarketing_lists/dataDelivery/data.ts new file mode 100644 index 00000000000..b41d725799c --- /dev/null +++ b/test/integrations/destinations/google_adwords_remarketing_lists/dataDelivery/data.ts @@ -0,0 +1,247 @@ +export const data = [ + { + name: 'google_adwords_remarketing_lists', + description: 'Test 0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "destination": "google_adwords_remarketing_lists", + "listId": "709078448", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "hashedEmail": "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "e56d336922eaab3be8c1244dbaa713e134a8eba50ddbd4f50fd2fe18d72595cd" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + method: 'POST' + }, + }, + output: { + response: { + status: 200, + body: { + "output": { + "status": 200, + "message": "Request Processed Successfully", + "destinationResponse": { "response": "", "status": 200 } + } + }, + }, + }, + }, + { + name: 'google_adwords_remarketing_lists', + description: 'Test 1', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729834/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "709078448", + "customerId": "7693729833", + "destination": "google_adwords_remarketing_lists" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "abcd@testmail.com" + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + method: 'POST' + }, + }, + output: { + response: { + status: 400, + body: { + output: { + "status": 400, + "message": "Request contains an invalid argument. during ga_audience response transformation", + "destinationResponse": { + "error": { + "code": 400, + "details": [ + { + "@type": "type.googleapis.com/google.ads.googleads.v9.errors.GoogleAdsFailure", + "errors": [ + { + "errorCode": { + "offlineUserDataJobError": "INVALID_SHA256_FORMAT" + }, + "message": "The SHA256 encoded value is malformed.", + "location": { + "fieldPathElements": [ + { "fieldName": "operations", "index": 0 }, + { "fieldName": "remove" }, + { "fieldName": "user_identifiers", "index": 0 }, + { "fieldName": "hashed_email" } + ] + } + } + ] + } + ], + "message": "Request contains an invalid argument.", + "status": "INVALID_ARGUMENT" + } + }, + "statTags": { + "destType": "GOOGLE_ADWORDS_REMARKETING_LISTS", + "errorCategory": "network", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "errorType": "aborted", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination" + } + }, + }, + }, + }, + }, + { + name: 'google_adwords_remarketing_lists', + description: 'Test 2', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "709078448", + "customerId": "7693729833", + "destination": "google_adwords_remarketing_lists" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "remove": { + "userIdentifiers": [ + { + "hashedEmail": "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "hashedEmail": "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "e56d336922eaab3be8c1244dbaa713e134a8eba50ddbd4f50fd2fe18d72595cd" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + method: 'POST' + }, + }, + output: { + response: { + status: 200, + body: { + output: { + "status": 200, + "message": "Request Processed Successfully", + "destinationResponse": { "response": "", "status": 200 } + }, + }, + }, + }, + } +]; diff --git a/test/integrations/destinations/google_adwords_remarketing_lists/network.ts b/test/integrations/destinations/google_adwords_remarketing_lists/network.ts new file mode 100644 index 00000000000..11cbfa7cd81 --- /dev/null +++ b/test/integrations/destinations/google_adwords_remarketing_lists/network.ts @@ -0,0 +1,115 @@ +import { enhanceRequestOptions, getFormData } from '../../../../src/adapters/network'; + +export const networkCallsData = [ + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs:create', + data: { "job": { "type": "CUSTOMER_MATCH_USER_LIST", "customerMatchUserListMetadata": { "userList": "customers/7693729833/userLists/709078448" } } }, + headers: { "Authorization": "Bearer dummy-access", "Content-Type": "application/json", "developer-token": "dummy-dev-token" }, + method: 'POST', + }, + httpRes: { + "status": 200, + "data": { + "resourceName": "customers/9249589672/offlineUserDataJobs/18025019461" + } + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs/18025019461:addOperations', + data: { "enablePartialFailure": true, "operations": [{ "create": { "userIdentifiers": [{ "hashedEmail": "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05" }, { "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" }, { "hashedEmail": "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05" }, { "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" }, { "addressInfo": { "hashedFirstName": "e56d336922eaab3be8c1244dbaa713e134a8eba50ddbd4f50fd2fe18d72595cd" } }] } }] }, + headers: { "Authorization": "Bearer dummy-access", "Content-Type": "application/json", "developer-token": "dummy-dev-token" }, + method: 'POST', + }, + httpRes: { + "status": 200, + "data": {} + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs/18025019461:run', + headers: { "Authorization": "Bearer dummy-access", "Content-Type": "application/json", "developer-token": "dummy-dev-token" }, + method: 'POST', + }, + httpRes: { + "status": 200, + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/7693729834/offlineUserDataJobs:create', + data: { "job": { "type": "CUSTOMER_MATCH_USER_LIST", "customerMatchUserListMetadata": { "userList": "customers/7693729833/userLists/709078448" } } }, + headers: { "Authorization": "Bearer dummy-access", "Content-Type": "application/json", "developer-token": "dummy-dev-token" }, + method: 'POST', + }, + httpRes: { + "status": 200, + "data": { + "resourceName": "customers/9249589672/offlineUserDataJobs/18025019462" + } + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/7693729834/offlineUserDataJobs/18025019462:addOperations', + data: { "enablePartialFailure": true, "operations": [{ "create": { "userIdentifiers": [{ "hashedEmail": "abcd@testmail.com" }] } }] }, + headers: { "Authorization": "Bearer dummy-access", "Content-Type": "application/json", "developer-token": "dummy-dev-token" }, + method: 'POST', + }, + httpRes: { + "data": { + "error": { + "code": 400, + "details": [ + { + "@type": "type.googleapis.com/google.ads.googleads.v9.errors.GoogleAdsFailure", + "errors": [ + { + "errorCode": { + "offlineUserDataJobError": "INVALID_SHA256_FORMAT" + }, + "message": "The SHA256 encoded value is malformed.", + "location": { + "fieldPathElements": [ + { + "fieldName": "operations", + "index": 0 + }, + { + "fieldName": "remove" + }, + { + "fieldName": "user_identifiers", + "index": 0 + }, + { + "fieldName": "hashed_email" + } + ] + } + } + ] + } + ], + "message": "Request contains an invalid argument.", + "status": "INVALID_ARGUMENT" + } + }, + "status": 400 + }, + }, + { + httpReq: { + url: 'https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs/18025019461:addOperations', + data: { "enablePartialFailure": true, "operations": [{ "remove": { "userIdentifiers": [{ "hashedEmail": "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05" }, { "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" }, { "hashedEmail": "85cc9fefa1eff1baab55d10df0cecff2acb25344867a5d0f96e1b1c5e2f10f05" }, { "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" }, { "addressInfo": { "hashedFirstName": "e56d336922eaab3be8c1244dbaa713e134a8eba50ddbd4f50fd2fe18d72595cd" } }] } }] }, + headers: { "Authorization": "Bearer dummy-access", "Content-Type": "application/json", "developer-token": "dummy-dev-token" }, + method: 'POST', + }, + httpRes: { + "status": 200, + "data": {} + }, + } +]; \ No newline at end of file diff --git a/test/integrations/destinations/google_adwords_remarketing_lists/processor/data.ts b/test/integrations/destinations/google_adwords_remarketing_lists/processor/data.ts new file mode 100644 index 00000000000..a6733f5daf3 --- /dev/null +++ b/test/integrations/destinations/google_adwords_remarketing_lists/processor/data.ts @@ -0,0 +1,10453 @@ +export const data = [ + { + "name": "google_adwords_remarketing_lists", + "description": "Test 0", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "General" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "email": "test@abc.com", + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "list111", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", + "hashedLastName": "dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 1", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "769-372-9833", + "loginCustomerId": "870-483-0944", + "subAccount": true, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "userID" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "email": "test@abc.com", + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245", + "thirdPartyUserId": "useri1234" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token", + "login-customer-id": "8704830944" + }, + "params": { + "listId": "list111", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "create": { + "userIdentifiers": [ + { + "thirdPartyUserId": "useri1234" + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 2", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "mobileDeviceID" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "email": "test@abc.com", + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245", + "thirdPartyUserId": "useri1234", + "mobileId": "abcd-1234-567h" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "list111", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "create": { + "userIdentifiers": [ + { + "mobileId": "abcd-1234-567h" + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 3", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "mobileDeviceID" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "email": "abc@abc.com", + "phone": "@09876543210", + "firstName": "abc", + "lastName": "efg", + "country": "US", + "postalCode": "1245", + "thirdPartyUserId": "useri1234" + }, + { + "email": "def@abc.com", + "phone": "@09876543210", + "firstName": "def", + "lastName": "ghi", + "country": "US", + "postalCode": "1245", + "thirdPartyUserId": "useri1234" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245", + "thirdPartyUserId": "useri1234" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 400, + "error": "Neither 'add' nor 'remove' property is present inside 'listData' or there are no attributes inside 'add' or 'remove' properties matching with the schema fields. Aborting message.", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "GOOGLE_ADWORDS_REMARKETING_LISTS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 4", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "mobileDeviceID" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "remove": [ + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245", + "thirdPartyUserId": "useri1234" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 400, + "error": "Neither 'add' nor 'remove' property is present inside 'listData' or there are no attributes inside 'add' or 'remove' properties matching with the schema fields. Aborting message.", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "GOOGLE_ADWORDS_REMARKETING_LISTS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 5", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "mobileDeviceID" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "properties": { + "listData": { + "remove": [ + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245", + "thirdPartyUserId": "useri1234" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 400, + "error": "Message Type is not present. Aborting message.", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "GOOGLE_ADWORDS_REMARKETING_LISTS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 6", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "mobileDeviceID" + } + }, + "message": { + "type": "audiencelist", + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "properties": { + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 400, + "error": "listData is not present inside properties. Aborting message.", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "GOOGLE_ADWORDS_REMARKETING_LISTS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 7", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": true, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "mobileDeviceID" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelisT", + "properties": { + "listData": { + "add": [ + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "mobileId": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 400, + "error": "loginCustomerId is required as subAccount is true.", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "configuration", + "destType": "GOOGLE_ADWORDS_REMARKETING_LISTS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 8", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "General" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelisT", + "properties": { + "listData": { + "add": [ + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "mobileId": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "list111", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 9", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "General" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelisT", + "properties": { + "listData": { + "add": [ + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "mobileId": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + } + ], + "remove": [ + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "mobileId": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "list111", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + }, + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "list111", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "remove": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 10", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "General" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelisT", + "properties": { + "listData": { + "add": [ + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "mobileId": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + } + ], + "remove": [ + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "mobileId": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "list111", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + }, + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "list111", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "remove": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 11", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "General" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelisT", + "properties": { + "listData": { + "remove": [ + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "mobileId": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "list111", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "remove": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 12", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "General" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelisT", + "properties": { + "listData": { + "delete": [ + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "mobileId": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 400, + "error": "Neither 'add' nor 'remove' property is present inside 'listData' or there are no attributes inside 'add' or 'remove' properties matching with the schema fields. Aborting message.", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "GOOGLE_ADWORDS_REMARKETING_LISTS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 13", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "General" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelisT", + "properties": { + "listData": { + "remove": [ + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "mobileId": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + } + ], + "add": [ + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "mobileId": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "list111", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "remove": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + }, + { + "remove": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + }, + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "list111", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + }, + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 14", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "General" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelisT", + "properties": { + "listData": { + "remove": [ + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "mobileId": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + } + ], + "add": [ + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "mobileId": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "list111", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "remove": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + }, + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "list111", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 15", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "General" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelisT", + "properties": { + "listData": { + "remove": [ + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": null, + "lastName": "jkl", + "country": "US", + "mobileId": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + } + ], + "add": [ + { + "email": "ghi@abc.com", + "phone": null, + "firstName": "ghi", + "lastName": "jkl", + "country": null, + "mobileId": "1245" + }, + { + "email": "ghi@abc.com", + "phone": "@09876543210", + "firstName": "ghi", + "lastName": "jkl", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "list111", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "remove": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + }, + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "list111", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1" + } + }, + { + "hashedEmail": "a3d3807256168f51fc644aef9bda6c7f15c850702be01cf4c77af26a37aec026" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "50ae61e841fac4e8f9e40baf2ad36ec868922ea48368c18f9535e47db56dd7fb", + "hashedLastName": "268f277c6d766d31334fda0f7a5533a185598d269e61c76a805870244828a5f1", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 16", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "General" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "email": "test@abc.com", + "phone": false, + "firstName": "test", + "lastName": null, + "country": "US", + "postalCode": 0 + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "list111", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" + }, + { + "addressInfo": { + "hashedFirstName": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", + "countryCode": "US", + "postalCode": 0 + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 17", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": null + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "General" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "email": "test@abc.com", + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": null + }, + "statusCode": 500, + "error": "OAuth - access token not found", + "statTags": { + "errorCategory": "platform", + "errorType": "oAuthSecret", + "destType": "GOOGLE_ADWORDS_REMARKETING_LISTS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 18", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "listId": "list111", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "General", + "audienceId": "aud1234" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "email": "sudip@abc.com", + "phone": false, + "firstName": "sudip", + "lastName": null, + "country": "US", + "postalCode": 0 + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "aud1234", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c" + }, + { + "addressInfo": { + "hashedFirstName": "a512ebb75e941411945c9a18bca4ecc315830e0b5cff8a525472c86c1f540844", + "countryCode": "US", + "postalCode": 0 + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 19", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "General" + } + }, + "message": { + "anonymousId": "24ed22ae-0681-4882-8c33-012e298e1c17", + "channel": "sources", + "context": { + "destinationFields": "email", + "externalId": [ + { + "identifierType": "email", + "type": "GOOGLE_ADWORDS_REMARKETING_LISTS-830441345" + } + ], + "mappedToDestination": "true", + "sources": { + "job_id": "2UcqQB4ygGtTBAvwCWl7xz8dJgt", + "job_run_id": "cjmsdip7m95b7aee7tpg", + "task_run_id": "cjmsdip7m95b7aee7tq0", + "version": "master" + } + }, + "event": "Add_Audience", + "messageId": "bd2d67ca-0c9a-4d3b-a2f8-35a3c3f75ba7", + "properties": { + "listData": { + "remove": [ + { + "email": "test1@mail.com" + }, + { + "email": "test5@xmail.com" + }, + { + "email": "test3@mail.com" + } + ] + } + }, + "recordId": "a071551c-87e0-48a7-aa5c-7c4144cec5cf/1/5", + "rudderId": "5e9ada0e-5f50-4cb8-a015-f6842a7615fd", + "sentAt": "2023-08-29 10:22:06.395377223 +0000 UTC", + "type": "audienceList", + "userId": "23423423" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "830441345", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "operations": [ + { + "remove": { + "userIdentifiers": [ + { + "hashedEmail": "78310d2dd727b704ff9d9c4742d01941b1217b89f45ab71d1e9bf5a010144048" + }, + { + "hashedEmail": "34a6406a076b943abfb9e97a6761e0c6b8cf049ab15b013412c57cf8370b5436" + }, + { + "hashedEmail": "8075d00e5f006b95eb090bf50f5246bc3c18c3d771fa1edf967b033b274b8d84" + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "google_adwords_remarketing_lists", + "description": "Test 20", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "destination": { + "Config": { + "rudderAccountId": "rudder-acc-id", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": [ + "email", + "phone", + "addressInfo" + ], + "isHashRequired": true, + "typeOfList": "General" + } + }, + "message": { + "anonymousId": "24ed22ae-0681-4882-8c33-012e298e1c17", + "channel": "sources", + "context": { + "destinationFields": "email", + "externalId": [ + { + "identifierType": "email", + "type": "GOOGLE_ADWORDS_REMARKETING_LISTS-830441345" + } + ], + "mappedToDestination": "true", + "sources": { + "job_id": "2UcqQB4ygGtTBAvwCWl7xz8dJgt", + "job_run_id": "cjmsdip7m95b7aee7tpg", + "task_run_id": "cjmsdip7m95b7aee7tq0", + "version": "master" + } + }, + "event": "Add_Audience", + "messageId": "bd2d67ca-0c9a-4d3b-a2f8-35a3c3f75ba7", + "properties": { + "listData": { + "add": [ + { + "email": "test1@mail.com" + }, + { + "email": "test5@xmail.com" + }, + { + "email": "test3@mail.com" + } + ] + } + }, + "recordId": "a071551c-87e0-48a7-aa5c-7c4144cec5cf/1/5", + "rudderId": "5e9ada0e-5f50-4cb8-a015-f6842a7615fd", + "sentAt": "2023-08-29 10:22:06.395377223 +0000 UTC", + "type": "audienceList", + "userId": "23423423" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer dummy-access", + "Content-Type": "application/json", + "developer-token": "dummy-dev-token" + }, + "params": { + "listId": "830441345", + "customerId": "7693729833" + }, + "body": { + "JSON": { + "operations": [ + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "78310d2dd727b704ff9d9c4742d01941b1217b89f45ab71d1e9bf5a010144048" + }, + { + "hashedEmail": "34a6406a076b943abfb9e97a6761e0c6b8cf049ab15b013412c57cf8370b5436" + }, + { + "hashedEmail": "8075d00e5f006b95eb090bf50f5246bc3c18c3d771fa1edf967b033b274b8d84" + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummy-access", + "refresh_token": "dummy-refresh", + "developer_token": "dummy-dev-token" + } + }, + "statusCode": 200 + } + ] + } + } + } +] \ No newline at end of file diff --git a/test/integrations/destinations/google_adwords_remarketing_lists/router/data.ts b/test/integrations/destinations/google_adwords_remarketing_lists/router/data.ts new file mode 100644 index 00000000000..3d3de6a5875 --- /dev/null +++ b/test/integrations/destinations/google_adwords_remarketing_lists/router/data.ts @@ -0,0 +1,555 @@ +export const data = [ + { + name: 'google_adwords_remarketing_lists', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl9101" + }, + "jobId": 1 + }, + "destination": { + "Config": { + "rudderAccountId": "258Yea7usSKNpbkIaesL9oJ9iYw", + "listId": "7090784486", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": ["email", "phone", "addressInfo"], + "isHashRequired": true, + "typeOfList": "General" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "email": "test@abc.com", + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + }, + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl9101" + }, + "jobId": 2 + }, + "destination": { + "Config": { + "rudderAccountId": "258Yea7usSKNpbkIaesL9oJ9iYw", + "listId": "7090784486", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": ["email", "phone", "addressInfo"], + "isHashRequired": true, + "typeOfList": "userID" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "email": "test@abc.com", + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245", + "thirdPartyUserId": "useri1234" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + }, + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl9101" + }, + "jobId": 3 + }, + "destination": { + "Config": { + "rudderAccountId": "258Yea7usSKNpbkIaesL9oJ9iYw", + "listId": "7090784486", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": ["email", "phone", "addressInfo"], + "isHashRequired": true, + "typeOfList": "General" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "remove": [ + { + "email": "test@abc.com", + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + }, + { + "metadata": { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl9101" + }, + "jobId": 4 + }, + "destination": { + "Config": { + "rudderAccountId": "258Yea7usSKNpbkIaesL9oJ9iYw", + "listId": "7090784486", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": ["email", "phone", "addressInfo"], + "isHashRequired": true, + "typeOfList": "General" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "remove": [ + { + "email": "test@abc.com", + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ], + "add": [ + { + "email": "test@abc.com", + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ], + destType: 'google_adwords_remarketing_lists', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + "batchedRequest": [ + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl9101" + }, + "params": { "listId": "7090784486", "customerId": "7693729833" }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", + "hashedLastName": "dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + ], + "metadata": [ + { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl9101" + }, + "jobId": 1 + } + ], + "batched": false, + "statusCode": 200, + "destination": { + "Config": { + "rudderAccountId": "258Yea7usSKNpbkIaesL9oJ9iYw", + "listId": "7090784486", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": ["email", "phone", "addressInfo"], + "isHashRequired": true, + "typeOfList": "General" + } + } + }, + { + "batchedRequest": [ + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl9101" + }, + "params": { "listId": "7090784486", "customerId": "7693729833" }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "create": { + "userIdentifiers": [ + { + "thirdPartyUserId": "useri1234" + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + ], + "metadata": [ + { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl9101" + }, + "jobId": 2 + } + ], + "batched": false, + "statusCode": 200, + "destination": { + "Config": { + "rudderAccountId": "258Yea7usSKNpbkIaesL9oJ9iYw", + "listId": "7090784486", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": ["email", "phone", "addressInfo"], + "isHashRequired": true, + "typeOfList": "userID" + } + } + }, + { + "batchedRequest": [ + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl9101" + }, + "params": { "listId": "7090784486", "customerId": "7693729833" }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "remove": { + "userIdentifiers": [ + { + "hashedEmail": "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", + "hashedLastName": "dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + ], + "metadata": [ + { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl9101" + }, + "jobId": 3 + } + ], + "batched": false, + "statusCode": 200, + "destination": { + "Config": { + "rudderAccountId": "258Yea7usSKNpbkIaesL9oJ9iYw", + "listId": "7090784486", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": ["email", "phone", "addressInfo"], + "isHashRequired": true, + "typeOfList": "General" + } + } + }, + { + "batchedRequest": [ + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl9101" + }, + "params": { "listId": "7090784486", "customerId": "7693729833" }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "remove": { + "userIdentifiers": [ + { + "hashedEmail": "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", + "hashedLastName": "dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://googleads.googleapis.com/v14/customers/7693729833/offlineUserDataJobs", + "headers": { + "Authorization": "Bearer abcd1234", + "Content-Type": "application/json", + "developer-token": "ijkl9101" + }, + "params": { "listId": "7090784486", "customerId": "7693729833" }, + "body": { + "JSON": { + "enablePartialFailure": true, + "operations": [ + { + "create": { + "userIdentifiers": [ + { + "hashedEmail": "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" + }, + { + "hashedPhoneNumber": "8846dcb6ab2d73a0e67dbd569fa17cec2d9d391e5b05d1dd42919bc21ae82c45" + }, + { + "addressInfo": { + "hashedFirstName": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", + "hashedLastName": "dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251", + "countryCode": "US", + "postalCode": "1245" + } + } + ] + } + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + } + ], + "metadata": [ + { + "secret": { + "access_token": "abcd1234", + "refresh_token": "efgh5678", + "developer_token": "ijkl9101" + }, + "jobId": 4 + } + ], + "batched": false, + "statusCode": 200, + "destination": { + "Config": { + "rudderAccountId": "258Yea7usSKNpbkIaesL9oJ9iYw", + "listId": "7090784486", + "customerId": "7693729833", + "loginCustomerId": "", + "subAccount": false, + "userSchema": ["email", "phone", "addressInfo"], + "isHashRequired": true, + "typeOfList": "General" + } + } + } + ], + }, + }, + }, + } +]; diff --git a/test/integrations/destinations/google_cloud_function/processor/data.ts b/test/integrations/destinations/google_cloud_function/processor/data.ts new file mode 100644 index 00000000000..87a4c5b7ecb --- /dev/null +++ b/test/integrations/destinations/google_cloud_function/processor/data.ts @@ -0,0 +1,185 @@ +export const data = [ + { + name: 'google_cloud_function', + description: 'Successful request', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + functionEnvironment: 'gen1', + requireAuthentication: false, + enableBatchInput: false, + googleCloudFunctionUrl: + 'https://us-central1-big-query-integration-poc.cloudfunctions.net/rudderv1', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'cosmo@krammer.com', + name: 'Cosmo Krammer', + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + location: 'New York', + emailOptOut: true, + masterAvatarTypeCode: 10, + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'cosmo@krammer.com', + name: 'Cosmo Krammer', + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + location: 'New York', + emailOptOut: true, + masterAvatarTypeCode: 10, + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'google_cloud_function', + description: + '[GCF]:: Service Account credentials are required if your function required authentication. Aborting', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + functionEnvironment: 'gen1', + requireAuthentication: true, + enableBatchInput: false, + googleCloudFunctionUrl: + 'https://us-central1-big-query-integration-poc.cloudfunctions.net/rudderv1', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'cosmo@krammer.com', + name: 'Cosmo Krammer', + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + location: 'New York', + emailOptOut: true, + masterAvatarTypeCode: 10, + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + '[GCF]:: Service Account credentials are required if your function required authentication. Aborting', + statTags: { + destType: 'GOOGLE_CLOUD_FUNCTION', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/google_cloud_function/router/data.ts b/test/integrations/destinations/google_cloud_function/router/data.ts new file mode 100644 index 00000000000..0661d4cb15a --- /dev/null +++ b/test/integrations/destinations/google_cloud_function/router/data.ts @@ -0,0 +1,652 @@ +export const data = [ + { + name: 'google_cloud_function', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + triggerType: 'Http', + apiKeyId: 'randomAPI', + enableBatchInput: true, + googleCloudFunctionUrl: + 'https://us-central1-big-query-integration-poc.cloudfunctions.net/rudderv1', + maxBatchSize: '2', + }, + }, + metadata: { + jobId: '1', + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'cosmo@krammer.com', + name: 'Cosmo Krammer', + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + location: 'New York', + emailOptOut: true, + masterAvatarTypeCode: 10, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + { + destination: { + Config: { + triggerType: 'Http', + apiKeyId: 'randomAPI', + enableBatchInput: true, + googleCloudFunctionUrl: '', + maxBatchSize: '2', + }, + }, + metadata: { + jobId: '2', + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'cosmo@krammer.com', + name: 'Cosmo Krammer', + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + location: 'New York', + emailOptOut: true, + masterAvatarTypeCode: 10, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + { + destination: { + Config: { + triggerType: 'Http', + apiKeyId: 'randomAPI', + enableBatchInput: true, + googleCloudFunctionUrl: + 'https://us-central1-big-query-integration-poc.cloudfunctions.net/rudderv1', + maxBatchSize: '2', + }, + }, + metadata: { + jobId: '3', + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'cosmo@krammer.com', + name: 'Cosmo Krammer', + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + location: 'New York', + emailOptOut: true, + masterAvatarTypeCode: 10, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + destType: 'google_cloud_function', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'cosmo@krammer.com', + name: 'Cosmo Krammer', + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + location: 'New York', + emailOptOut: true, + masterAvatarTypeCode: 10, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'cosmo@krammer.com', + name: 'Cosmo Krammer', + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + location: 'New York', + emailOptOut: true, + masterAvatarTypeCode: 10, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + ], + metadata: [{ jobId: '1' }, { jobId: '3' }], + batched: true, + statusCode: 200, + destination: { + Config: { + triggerType: 'Http', + apiKeyId: 'randomAPI', + enableBatchInput: true, + googleCloudFunctionUrl: + 'https://us-central1-big-query-integration-poc.cloudfunctions.net/rudderv1', + maxBatchSize: '2', + }, + }, + }, + { + destination: { + Config: { + triggerType: 'Http', + apiKeyId: 'randomAPI', + enableBatchInput: true, + googleCloudFunctionUrl: '', + maxBatchSize: '2', + }, + }, + metadata: [{ jobId: '2' }], + batched: false, + statusCode: 400, + error: '[GCF]:: Url not found. Aborting', + statTags: { + destType: 'GOOGLE_CLOUD_FUNCTION', + errorCategory: 'dataValidation', + feature: 'router', + implementation: 'native', + module: 'destination', + errorType: 'configuration', + }, + }, + ], + }, + }, + }, + }, + { + name: 'google_cloud_function', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + triggerType: 'Http', + apiKeyId: 'randomAPI', + enableBatchInput: true, + googleCloudFunctionUrl: + 'https://us-central1-big-query-integration-poc.cloudfunctions.net/rudderv1', + maxBatchSize: '2', + }, + }, + metadata: { + jobId: '1', + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'cosmo@krammer.com', + name: 'Cosmo Krammer', + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + location: 'New York', + emailOptOut: true, + masterAvatarTypeCode: 10, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + { + destination: { + Config: { + triggerType: 'Http', + apiKeyId: 'randomAPI', + enableBatchInput: true, + googleCloudFunctionUrl: '', + maxBatchSize: '2', + }, + }, + metadata: { + jobId: '2', + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'cosmo@krammer.com', + name: 'Cosmo Krammer', + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + location: 'New York', + emailOptOut: true, + masterAvatarTypeCode: 10, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + { + destination: { + Config: { + triggerType: 'Http', + apiKeyId: 'randomAPI', + enableBatchInput: true, + googleCloudFunctionUrl: + 'https://us-central1-big-query-integration-poc.cloudfunctions.net/rudderv1', + maxBatchSize: '2', + }, + }, + metadata: { + jobId: '3', + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'cosmo@krammer.com', + name: 'Cosmo Krammer', + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + location: 'New York', + emailOptOut: true, + masterAvatarTypeCode: 10, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + destType: 'google_cloud_function', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'cosmo@krammer.com', + name: 'Cosmo Krammer', + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + location: 'New York', + emailOptOut: true, + masterAvatarTypeCode: 10, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + email: 'cosmo@krammer.com', + name: 'Cosmo Krammer', + linkedinUrl: 'https://linkedin.com/cosmo-krammer', + location: 'New York', + emailOptOut: true, + masterAvatarTypeCode: 10, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + ], + metadata: [{ jobId: '1' }, { jobId: '3' }], + batched: true, + statusCode: 200, + destination: { + Config: { + triggerType: 'Http', + apiKeyId: 'randomAPI', + enableBatchInput: true, + googleCloudFunctionUrl: + 'https://us-central1-big-query-integration-poc.cloudfunctions.net/rudderv1', + maxBatchSize: '2', + }, + }, + }, + { + destination: { + Config: { + triggerType: 'Http', + apiKeyId: 'randomAPI', + enableBatchInput: true, + googleCloudFunctionUrl: '', + maxBatchSize: '2', + }, + }, + metadata: [{ jobId: '2' }], + batched: false, + statusCode: 400, + error: '[GCF]:: Url not found. Aborting', + statTags: { + destType: 'GOOGLE_CLOUD_FUNCTION', + errorCategory: 'dataValidation', + feature: 'router', + implementation: 'native', + module: 'destination', + errorType: 'configuration', + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/googlepubsub/processor/data.ts b/test/integrations/destinations/googlepubsub/processor/data.ts new file mode 100644 index 00000000000..0dffa57839e --- /dev/null +++ b/test/integrations/destinations/googlepubsub/processor/data.ts @@ -0,0 +1,1317 @@ +export const data = [ + { + name: 'googlepubsub', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + credentials: 'abc', + eventToTopicMap: [ + { + from: 'track', + to: 'test', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + userId: '123456', + topicId: 'test', + attributes: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'googlepubsub', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + credentials: 'abc', + eventToTopicMap: [ + { + from: 'product added', + to: 'test', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + userId: '123456', + topicId: 'test', + attributes: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'googlepubsub', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + credentials: 'abc', + eventToTopicMap: [ + { + from: '*', + to: 'test', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + userId: '123456', + topicId: 'test', + attributes: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'googlepubsub', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'track', + event: 'product added', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + credentials: 'abc', + eventToTopicMap: [ + { + from: 'test event', + to: 'test', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'No topic set for this event', + statTags: { + destType: 'GOOGLEPUBSUB', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'googlepubsub', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + sentAt: '2020-08-28T15:11:56.167Z', + category: 'Food', + messageId: + 'node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba', + anonymousId: 'abcdeeeeeeeexxxx111', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + originalTimestamp: '2020-08-28T15:11:56.162Z', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + type: 'track', + name: 'Pizza', + _metadata: { + nodeVersion: '10.22.0', + }, + }, + destination: { + Config: { + credentials: 'abc', + eventToTopicMap: [ + { + from: 'track', + to: '', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'No topic set for this event', + statTags: { + destType: 'GOOGLEPUBSUB', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'googlepubsub', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + sentAt: '2020-08-28T15:11:56.167Z', + category: 'Food', + messageId: + 'node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba', + anonymousId: 'abcdeeeeeeeexxxx111', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + originalTimestamp: '2020-08-28T15:11:56.162Z', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + type: 'track', + name: 'Pizza', + _metadata: { + nodeVersion: '10.22.0', + }, + }, + destination: { + Config: { + credentials: 'abc', + eventToTopicMap: [ + { + from: 'track', + to: '', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'No topic set for this event', + statTags: { + destType: 'GOOGLEPUBSUB', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'googlepubsub', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + sentAt: '2020-08-28T15:11:56.167Z', + category: 'Food', + messageId: + 'node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba', + anonymousId: 'abcdeeeeeeeexxxx111', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + originalTimestamp: '2020-08-28T15:11:56.162Z', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + type: 'track', + name: 'Pizza', + _metadata: { + nodeVersion: '10.22.0', + }, + }, + destination: { + Config: { + credentials: 'abc', + eventToTopicMap: [ + { + from: 'track', + to: 'test', + }, + { + from: '*', + to: 'test a', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + sentAt: '2020-08-28T15:11:56.167Z', + category: 'Food', + messageId: + 'node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba', + anonymousId: 'abcdeeeeeeeexxxx111', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + originalTimestamp: '2020-08-28T15:11:56.162Z', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + type: 'track', + name: 'Pizza', + _metadata: { + nodeVersion: '10.22.0', + }, + }, + userId: 'abcdeeeeeeeexxxx111', + topicId: 'test', + attributes: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'googlepubsub', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + sentAt: '2020-08-28T15:11:56.167Z', + category: 'Food', + messageId: + 'node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba', + anonymousId: 'abcdeeeeeeeexxxx111', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + originalTimestamp: '2020-08-28T15:11:56.162Z', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + type: 'track', + event: 'product added', + name: 'Pizza', + _metadata: { + nodeVersion: '10.22.0', + }, + }, + destination: { + Config: { + credentials: 'abc', + eventToTopicMap: [ + { + from: 'track', + to: 'test', + }, + { + from: '*', + to: 'test a', + }, + { + from: 'product added', + to: 'test b', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + sentAt: '2020-08-28T15:11:56.167Z', + category: 'Food', + messageId: + 'node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba', + anonymousId: 'abcdeeeeeeeexxxx111', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + originalTimestamp: '2020-08-28T15:11:56.162Z', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + type: 'track', + event: 'product added', + name: 'Pizza', + _metadata: { + nodeVersion: '10.22.0', + }, + }, + userId: 'abcdeeeeeeeexxxx111', + topicId: 'test b', + attributes: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'googlepubsub', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + sentAt: '2020-08-28T15:11:56.167Z', + category: 'Food', + messageId: + 'node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba', + anonymousId: 'abcdeeeeeeeexxxx111', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + originalTimestamp: '2020-08-28T15:11:56.162Z', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + type: 'track', + event: 'product added', + name: 'Pizza', + _metadata: { + nodeVersion: '10.22.0', + }, + }, + destination: { + Config: { + credentials: 'abc', + eventToTopicMap: [ + { + from: 'track', + to: 'Test-Topic', + }, + ], + eventToAttributesMap: [ + { + from: 'track', + to: 'name', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + sentAt: '2020-08-28T15:11:56.167Z', + category: 'Food', + messageId: + 'node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba', + anonymousId: 'abcdeeeeeeeexxxx111', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + originalTimestamp: '2020-08-28T15:11:56.162Z', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + type: 'track', + event: 'product added', + name: 'Pizza', + _metadata: { + nodeVersion: '10.22.0', + }, + }, + userId: 'abcdeeeeeeeexxxx111', + topicId: 'Test-Topic', + attributes: { + name: 'Pizza', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'googlepubsub', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + sentAt: '2020-08-28T15:11:56.167Z', + category: 'Food', + messageId: + 'node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba', + anonymousId: 'abcdeeeeeeeexxxx111', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + originalTimestamp: '2020-08-28T15:11:56.162Z', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + type: 'track', + event: 'product added', + name: 'Pizza', + _metadata: { + nodeVersion: '10.22.0', + }, + }, + destination: { + Config: { + credentials: 'abc', + eventToTopicMap: [ + { + from: 'track', + to: 'Test-Topic', + }, + ], + eventToAttributesMap: [ + { + from: 'track', + to: 'url', + }, + { + from: 'track', + to: 'title', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + sentAt: '2020-08-28T15:11:56.167Z', + category: 'Food', + messageId: + 'node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba', + anonymousId: 'abcdeeeeeeeexxxx111', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + originalTimestamp: '2020-08-28T15:11:56.162Z', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + type: 'track', + event: 'product added', + name: 'Pizza', + _metadata: { + nodeVersion: '10.22.0', + }, + }, + userId: 'abcdeeeeeeeexxxx111', + topicId: 'Test-Topic', + attributes: { + url: 'https://dominos.com', + title: 'Pizza', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'googlepubsub', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + sentAt: '2020-08-28T15:11:56.167Z', + category: 'Food', + messageId: + 'node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba', + anonymousId: 'abcdeeeeeeeexxxx111', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + originalTimestamp: '2020-08-28T15:11:56.162Z', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + type: 'track', + event: 'product added', + name: 'Pizza', + _metadata: { + nodeVersion: '10.22.0', + }, + }, + destination: { + Config: { + credentials: 'abc', + eventToTopicMap: [ + { + from: 'track', + to: 'Test-Topic', + }, + ], + eventToAttributesMap: [ + { + from: 'track', + to: 'url', + }, + { + from: 'track', + to: 'title', + }, + { + from: 'product added', + to: 'referrer', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + sentAt: '2020-08-28T15:11:56.167Z', + category: 'Food', + messageId: + 'node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba', + anonymousId: 'abcdeeeeeeeexxxx111', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + originalTimestamp: '2020-08-28T15:11:56.162Z', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + type: 'track', + event: 'product added', + name: 'Pizza', + _metadata: { + nodeVersion: '10.22.0', + }, + }, + userId: 'abcdeeeeeeeexxxx111', + topicId: 'Test-Topic', + attributes: { + referrer: 'https://google.com', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'googlepubsub', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + sentAt: '2020-08-28T15:11:56.167Z', + category: 'Food', + messageId: + 'node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba', + anonymousId: 'abcdeeeeeeeexxxx111', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + originalTimestamp: '2020-08-28T15:11:56.162Z', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + nestedObject: { + this: 'will be picked', + }, + }, + type: 'track', + name: 'Pizza', + _metadata: { + nodeVersion: '10.22.0', + }, + }, + destination: { + Config: { + credentials: 'abc', + eventToTopicMap: [ + { + from: 'track', + to: 'Test-Topic', + }, + ], + eventToAttributesMap: [ + { + from: 'track', + to: 'nestedObject.this', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + sentAt: '2020-08-28T15:11:56.167Z', + category: 'Food', + messageId: + 'node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba', + anonymousId: 'abcdeeeeeeeexxxx111', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + originalTimestamp: '2020-08-28T15:11:56.162Z', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + nestedObject: { + this: 'will be picked', + }, + }, + type: 'track', + name: 'Pizza', + _metadata: { + nodeVersion: '10.22.0', + }, + }, + userId: 'abcdeeeeeeeexxxx111', + topicId: 'Test-Topic', + attributes: { + this: 'will be picked', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'googlepubsub', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + sentAt: '2020-08-28T15:11:56.167Z', + category: 'Food', + messageId: + 'node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba', + anonymousId: 'abcdeeeeeeeexxxx111', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + originalTimestamp: '2020-08-28T15:11:56.162Z', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + nestedObject: { + this: 'will be picked', + }, + }, + type: 'track', + name: 'Pizza', + _metadata: { + nodeVersion: '10.22.0', + }, + }, + destination: { + Config: { + credentials: 'abc', + eventToTopicMap: [ + { + from: 'track', + to: 'Test-Topic', + }, + ], + eventToAttributesMap: [ + { + from: 'track', + to: 'properties.nestedObject.this', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + sentAt: '2020-08-28T15:11:56.167Z', + category: 'Food', + messageId: + 'node-cfc5fb7ec83b82bc29e16336a11331e2-0ba97212-0f6e-44cd-a0f1-c20b8b7a7cba', + anonymousId: 'abcdeeeeeeeexxxx111', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + originalTimestamp: '2020-08-28T15:11:56.162Z', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + nestedObject: { + this: 'will be picked', + }, + }, + type: 'track', + name: 'Pizza', + _metadata: { + nodeVersion: '10.22.0', + }, + }, + userId: 'abcdeeeeeeeexxxx111', + topicId: 'Test-Topic', + attributes: { + this: 'will be picked', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/googlesheets/processor/data.ts b/test/integrations/destinations/googlesheets/processor/data.ts new file mode 100644 index 00000000000..349ea7cb9e7 --- /dev/null +++ b/test/integrations/destinations/googlesheets/processor/data.ts @@ -0,0 +1,1074 @@ +export const data = [ + { + name: 'googlesheets', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + credentials: '{ sheets credentials }', + eventKeyMap: [ + { + from: 'firstName', + to: 'First Name', + }, + { + from: 'lastName', + to: 'Last Name', + }, + { + from: 'birthday', + to: 'Birthday', + }, + { + from: 'address.city', + to: 'City', + }, + { + from: 'address.country', + to: 'Country', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'offer', + to: 'Offer', + }, + { + from: 'title', + to: 'Title Page', + }, + { + from: 'Cart Value', + to: 'Cart Value', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'context.app.build', + to: 'App Build', + }, + { + from: 'context.app.name', + to: 'App Name', + }, + { + from: 'context.library.name', + to: 'Library Name', + }, + { + from: 'context.ip', + to: 'IP', + }, + ], + sheetId: 'rudder_sheet_id', + sheetName: 'rudder_sheet', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: 'OS-X', + version: '19.02.3', + }, + screen: { + density: 2, + }, + traits: { + userId: 'sheetuser001', + firstName: 'James', + lastName: 'Doe', + address: { + city: 'Kolkata', + country: 'India', + postalCode: '789003', + state: 'WB', + }, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + anonymousId: 'anon_id', + email: 'jamesDoe@gmail.com', + name: 'James Doe', + phone: '92374162212', + gender: 'M', + employed: true, + birthday: '1614775793', + education: 'Science', + graduate: true, + married: true, + customerType: 'Prime', + custom_tags: ['Test_User', 'Interested_User', 'DIY_Hobby'], + custom_mappings: { + Office: 'Trastkiv', + Country: 'Russia', + }, + address: { + city: 'kolkata', + country: 'India', + postalCode: 789223, + state: 'WB', + street: '', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: { + message: { + '0': { + attributeKey: 'messageId', + attributeValue: '84e26acc-56a5-4835-8233-591137fca468', + }, + '1': { + attributeKey: 'First Name', + attributeValue: 'James', + }, + '2': { + attributeKey: 'Last Name', + attributeValue: 'Doe', + }, + '3': { + attributeKey: 'Birthday', + attributeValue: '1614775793', + }, + '4': { + attributeKey: 'City', + attributeValue: 'kolkata', + }, + '5': { + attributeKey: 'Country', + attributeValue: 'India', + }, + '6': { + attributeKey: 'Revenue', + attributeValue: '', + }, + '7': { + attributeKey: 'Offer', + attributeValue: '', + }, + '8': { + attributeKey: 'Title Page', + attributeValue: '', + }, + '9': { + attributeKey: 'Cart Value', + attributeValue: '', + }, + '10': { + attributeKey: 'Revenue', + attributeValue: '', + }, + '11': { + attributeKey: 'App Build', + attributeValue: '1.0.0', + }, + '12': { + attributeKey: 'App Name', + attributeValue: 'RudderLabs JavaScript SDK', + }, + '13': { + attributeKey: 'Library Name', + attributeValue: 'RudderLabs JavaScript SDK', + }, + '14': { + attributeKey: 'IP', + attributeValue: '0.0.0.0', + }, + }, + }, + spreadSheet: 'rudder_sheet', + spreadSheetId: 'rudder_sheet_id', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'googlesheets', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + credentials: '{ sheets credentials }', + eventKeyMap: [ + { + from: 'firstName', + to: 'First Name', + }, + { + from: 'lastName', + to: 'Last Name', + }, + { + from: 'birthday', + to: 'Birthday', + }, + { + from: 'address.city', + to: 'City', + }, + { + from: 'address.country', + to: 'Country', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'offer', + to: 'Offer', + }, + { + from: 'title', + to: 'Title Page', + }, + { + from: 'Cart Value', + to: 'Cart Value', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'context.app.build', + to: 'App Build', + }, + { + from: 'context.app.name', + to: 'App Name', + }, + { + from: 'context.library.name', + to: 'Library Name', + }, + { + from: 'context.ip', + to: 'IP', + }, + ], + sheetId: 'rudder_sheet_id', + sheetName: 'rudder_sheet', + }, + }, + message: { + type: 'track', + userId: 'userTest004', + event: 'Added to Cart', + properties: { + name: 'HomePage', + revenue: 5.99, + value: 5.5, + offer: 'Discount', + Sale: false, + }, + context: { + ip: '14.5.67.21', + app: { + build: '1', + name: 'RudderAndroidClient', + namespace: 'com.rudderstack.demo.android', + version: '1.0', + }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '0.1.4', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: { + message: { + '0': { + attributeKey: 'messageId', + attributeValue: '', + }, + '1': { + attributeKey: 'First Name', + attributeValue: '', + }, + '2': { + attributeKey: 'Last Name', + attributeValue: '', + }, + '3': { + attributeKey: 'Birthday', + attributeValue: '', + }, + '4': { + attributeKey: 'City', + attributeValue: '', + }, + '5': { + attributeKey: 'Country', + attributeValue: '', + }, + '6': { + attributeKey: 'Revenue', + attributeValue: 5.99, + }, + '7': { + attributeKey: 'Offer', + attributeValue: 'Discount', + }, + '8': { + attributeKey: 'Title Page', + attributeValue: '', + }, + '9': { + attributeKey: 'Cart Value', + attributeValue: '', + }, + '10': { + attributeKey: 'Revenue', + attributeValue: 5.99, + }, + '11': { + attributeKey: 'App Build', + attributeValue: '1', + }, + '12': { + attributeKey: 'App Name', + attributeValue: 'RudderAndroidClient', + }, + '13': { + attributeKey: 'Library Name', + attributeValue: 'com.rudderstack.android.sdk.core', + }, + '14': { + attributeKey: 'IP', + attributeValue: '14.5.67.21', + }, + }, + }, + spreadSheet: 'rudder_sheet', + spreadSheetId: 'rudder_sheet_id', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'googlesheets', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + credentials: '{ sheets credentials }', + eventKeyMap: [ + { + from: 'firstName', + to: 'First Name', + }, + { + from: 'lastName', + to: 'Last Name', + }, + { + from: 'birthday', + to: 'Birthday', + }, + { + from: 'address.city', + to: 'City', + }, + { + from: 'address.country', + to: 'Country', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'offer', + to: 'Offer', + }, + { + from: 'title', + to: 'Title Page', + }, + { + from: 'Cart Value', + to: 'Cart Value', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'context.app.build', + to: 'App Build', + }, + { + from: 'context.app.name', + to: 'App Name', + }, + { + from: 'context.library.name', + to: 'Library Name', + }, + { + from: 'context.ip', + to: 'IP', + }, + ], + sheetId: 'rudder_sheet_id', + sheetName: 'rudder_sheet', + }, + }, + message: { + type: 'page', + userId: 'userTest004', + anonymousId: 'anon-id-new', + name: '1mg Cart', + properties: { + title: 'Cart', + path: '/', + 'Cart Value': 7800, + revenue: 7500, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: { + message: { + '0': { + attributeKey: 'messageId', + attributeValue: '', + }, + '1': { + attributeKey: 'First Name', + attributeValue: '', + }, + '2': { + attributeKey: 'Last Name', + attributeValue: '', + }, + '3': { + attributeKey: 'Birthday', + attributeValue: '', + }, + '4': { + attributeKey: 'City', + attributeValue: '', + }, + '5': { + attributeKey: 'Country', + attributeValue: '', + }, + '6': { + attributeKey: 'Revenue', + attributeValue: 7500, + }, + '7': { + attributeKey: 'Offer', + attributeValue: '', + }, + '8': { + attributeKey: 'Title Page', + attributeValue: 'Cart', + }, + '9': { + attributeKey: 'Cart Value', + attributeValue: 7800, + }, + '10': { + attributeKey: 'Revenue', + attributeValue: 7500, + }, + '11': { + attributeKey: 'App Build', + attributeValue: '', + }, + '12': { + attributeKey: 'App Name', + attributeValue: '', + }, + '13': { + attributeKey: 'Library Name', + attributeValue: 'http', + }, + '14': { + attributeKey: 'IP', + attributeValue: '14.5.67.21', + }, + }, + }, + spreadSheet: 'rudder_sheet', + spreadSheetId: 'rudder_sheet_id', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'googlesheets', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + credentials: '{ sheets credentials }', + eventKeyMap: [ + { + from: 'firstName', + to: 'First Name', + }, + { + from: 'lastName', + to: 'Last Name', + }, + { + from: 'birthday', + to: 'Birthday', + }, + { + from: 'address.city', + to: 'City', + }, + { + from: 'address.country', + to: 'Country', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'offer', + to: 'Offer', + }, + { + from: 'title', + to: 'Title Page', + }, + { + from: 'Cart Value', + to: 'Cart Value', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'context.app.build', + to: 'App Build', + }, + { + from: 'context.app.name', + to: 'App Name', + }, + { + from: 'context.library.name', + to: 'Library Name', + }, + { + from: 'context.ip', + to: 'IP', + }, + ], + sheetId: 'rudder_sheet_id', + sheetName: 'rudder_sheet', + }, + }, + message: { + type: 'page', + userId: 'userTest005', + anonymousId: 'anon-id-test', + name: 'Viewed Home Screen', + properties: { + title: 'Home', + path: '/home', + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: { + message: { + '0': { + attributeKey: 'messageId', + attributeValue: '', + }, + '1': { + attributeKey: 'First Name', + attributeValue: '', + }, + '2': { + attributeKey: 'Last Name', + attributeValue: '', + }, + '3': { + attributeKey: 'Birthday', + attributeValue: '', + }, + '4': { + attributeKey: 'City', + attributeValue: '', + }, + '5': { + attributeKey: 'Country', + attributeValue: '', + }, + '6': { + attributeKey: 'Revenue', + attributeValue: '', + }, + '7': { + attributeKey: 'Offer', + attributeValue: '', + }, + '8': { + attributeKey: 'Title Page', + attributeValue: 'Home', + }, + '9': { + attributeKey: 'Cart Value', + attributeValue: '', + }, + '10': { + attributeKey: 'Revenue', + attributeValue: '', + }, + '11': { + attributeKey: 'App Build', + attributeValue: '', + }, + '12': { + attributeKey: 'App Name', + attributeValue: '', + }, + '13': { + attributeKey: 'Library Name', + attributeValue: 'http', + }, + '14': { + attributeKey: 'IP', + attributeValue: '14.5.67.21', + }, + }, + }, + spreadSheet: 'rudder_sheet', + spreadSheetId: 'rudder_sheet_id', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'googlesheets', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + credentials: '{ sheets credentials }', + eventKeyMap: [ + { + from: 'firstName', + to: 'First Name', + }, + { + from: 'lastName', + to: 'Last Name', + }, + { + from: 'birthday', + to: 'Birthday', + }, + { + from: 'address.city', + to: 'City', + }, + { + from: 'address.country', + to: 'Country', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'offer', + to: 'Offer', + }, + { + from: 'title', + to: 'Title Page', + }, + { + from: 'Cart Value', + to: 'Cart Value', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'context.app.build', + to: 'App Build', + }, + { + from: 'context.app.name', + to: 'App Name', + }, + { + from: 'context.library.name', + to: 'Library Name', + }, + { + from: 'context.ip', + to: 'IP', + }, + ], + sheetId: 'rudder_sheet_id', + sheetName: 'rudder_sheet', + }, + }, + message: { + type: 'screen', + name: 'Trello home Screen', + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: { + message: { + '0': { + attributeKey: 'messageId', + attributeValue: '', + }, + '1': { + attributeKey: 'First Name', + attributeValue: '', + }, + '2': { + attributeKey: 'Last Name', + attributeValue: '', + }, + '3': { + attributeKey: 'Birthday', + attributeValue: '', + }, + '4': { + attributeKey: 'City', + attributeValue: '', + }, + '5': { + attributeKey: 'Country', + attributeValue: '', + }, + '6': { + attributeKey: 'Revenue', + attributeValue: '', + }, + '7': { + attributeKey: 'Offer', + attributeValue: '', + }, + '8': { + attributeKey: 'Title Page', + attributeValue: '', + }, + '9': { + attributeKey: 'Cart Value', + attributeValue: '', + }, + '10': { + attributeKey: 'Revenue', + attributeValue: '', + }, + '11': { + attributeKey: 'App Build', + attributeValue: '', + }, + '12': { + attributeKey: 'App Name', + attributeValue: '', + }, + '13': { + attributeKey: 'Library Name', + attributeValue: 'http', + }, + '14': { + attributeKey: 'IP', + attributeValue: '14.5.67.21', + }, + }, + }, + spreadSheet: 'rudder_sheet', + spreadSheetId: 'rudder_sheet_id', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'googlesheets', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + credentials: '{ sheets credentials }', + eventKeyMap: [ + { + from: 'firstName', + to: 'First Name', + }, + { + from: 'lastName', + to: 'Last Name', + }, + { + from: 'birthday', + to: 'Birthday', + }, + { + from: 'address.city', + to: 'City', + }, + { + from: 'address.country', + to: 'Country', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'offer', + to: 'Offer', + }, + { + from: 'title', + to: 'Title Page', + }, + { + from: 'Cart Value', + to: 'Cart Value', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'context.app.build', + to: 'App Build', + }, + { + from: 'context.app.name', + to: 'App Name', + }, + { + from: 'context.library.name', + to: 'Library Name', + }, + { + from: 'context.ip', + to: 'IP', + }, + ], + sheetId: 'rudder_sheet_id', + }, + }, + message: { + type: 'screen', + name: 'Trello home Screen', + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'No Spread Sheet set for this event', + statTags: { + destType: 'GOOGLESHEETS', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/googlesheets/router/data.ts b/test/integrations/destinations/googlesheets/router/data.ts new file mode 100644 index 00000000000..20fe270e5f6 --- /dev/null +++ b/test/integrations/destinations/googlesheets/router/data.ts @@ -0,0 +1,482 @@ +export const data = [ + { + name: 'googlesheets', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + credentials: '{ sheets credentials }', + eventKeyMap: [ + { + from: 'firstName', + to: 'First Name', + }, + { + from: 'lastName', + to: 'Last Name', + }, + { + from: 'birthday', + to: 'Birthday', + }, + { + from: 'address.city', + to: 'City', + }, + { + from: 'address.country', + to: 'Country', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'offer', + to: 'Offer', + }, + { + from: 'title', + to: 'Title Page', + }, + { + from: 'Cart Value', + to: 'Cart Value', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'context.app.build', + to: 'App Build', + }, + { + from: 'context.app.name', + to: 'App Name', + }, + { + from: 'context.library.name', + to: 'Library Name', + }, + { + from: 'context.ip', + to: 'IP', + }, + ], + sheetId: 'rudder_sheet_id', + sheetName: 'rudder_sheet', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: 'OS-X', version: '19.02.3' }, + screen: { density: 2 }, + traits: { + userId: 'sheetuser001', + firstName: 'James', + lastName: 'Doe', + address: { + city: 'Kolkata', + country: 'India', + postalCode: '789003', + state: 'WB', + }, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + type: 'identify', + traits: { + anonymousId: 'anon_id', + email: 'jamesDoe@gmail.com', + name: 'James Doe', + phone: '92374162212', + gender: 'M', + employed: true, + birthday: '1614775793', + education: 'Science', + graduate: true, + married: true, + customerType: 'Prime', + custom_tags: ['Test_User', 'Interested_User', 'DIY_Hobby'], + custom_mappings: { + Office: 'Trastkiv', + Country: 'Russia', + }, + address: { + city: 'kolkata', + country: 'India', + postalCode: 789223, + state: 'WB', + street: '', + }, + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 1, + }, + }, + { + destination: { + Config: { + credentials: '{ sheets credentials }', + eventKeyMap: [ + { + from: 'firstName', + to: 'First Name', + }, + { + from: 'lastName', + to: 'Last Name', + }, + { + from: 'birthday', + to: 'Birthday', + }, + { + from: 'address.city', + to: 'City', + }, + { + from: 'address.country', + to: 'Country', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'offer', + to: 'Offer', + }, + { + from: 'title', + to: 'Title Page', + }, + { + from: 'Cart Value', + to: 'Cart Value', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'context.app.build', + to: 'App Build', + }, + { + from: 'context.app.name', + to: 'App Name', + }, + { + from: 'context.library.name', + to: 'Library Name', + }, + { + from: 'context.ip', + to: 'IP', + }, + ], + sheetId: 'rudder_sheet_id', + sheetName: 'rudder_sheet', + }, + }, + message: { + type: 'track', + userId: 'userTest004', + event: 'Added to Cart', + properties: { + name: 'HomePage', + revenue: 5.99, + value: 5.5, + offer: 'Discount', + Sale: false, + }, + context: { + ip: '14.5.67.21', + app: { + build: '1', + name: 'RudderAndroidClient', + namespace: 'com.rudderstack.demo.android', + version: '1.0', + }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '0.1.4', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { name: 'Android', version: '9' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 2, + }, + }, + ], + destType: 'googlesheets', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + batch: [ + { + message: { + '0': { + attributeKey: 'messageId', + attributeValue: '84e26acc-56a5-4835-8233-591137fca468', + }, + '1': { + attributeKey: 'First Name', + attributeValue: 'James', + }, + '2': { + attributeKey: 'Last Name', + attributeValue: 'Doe', + }, + '3': { + attributeKey: 'Birthday', + attributeValue: '1614775793', + }, + '4': { + attributeKey: 'City', + attributeValue: 'kolkata', + }, + '5': { + attributeKey: 'Country', + attributeValue: 'India', + }, + '6': { + attributeKey: 'Revenue', + attributeValue: '', + }, + '7': { + attributeKey: 'Offer', + attributeValue: '', + }, + '8': { + attributeKey: 'Title Page', + attributeValue: '', + }, + '9': { + attributeKey: 'Cart Value', + attributeValue: '', + }, + '10': { + attributeKey: 'Revenue', + attributeValue: '', + }, + '11': { + attributeKey: 'App Build', + attributeValue: '1.0.0', + }, + '12': { + attributeKey: 'App Name', + attributeValue: 'RudderLabs JavaScript SDK', + }, + '13': { + attributeKey: 'Library Name', + attributeValue: 'RudderLabs JavaScript SDK', + }, + '14': { + attributeKey: 'IP', + attributeValue: '0.0.0.0', + }, + }, + }, + { + message: { + '0': { + attributeKey: 'messageId', + attributeValue: '', + }, + '1': { + attributeKey: 'First Name', + attributeValue: '', + }, + '2': { + attributeKey: 'Last Name', + attributeValue: '', + }, + '3': { + attributeKey: 'Birthday', + attributeValue: '', + }, + '4': { + attributeKey: 'City', + attributeValue: '', + }, + '5': { + attributeKey: 'Country', + attributeValue: '', + }, + '6': { + attributeKey: 'Revenue', + attributeValue: 5.99, + }, + '7': { + attributeKey: 'Offer', + attributeValue: 'Discount', + }, + '8': { + attributeKey: 'Title Page', + attributeValue: '', + }, + '9': { + attributeKey: 'Cart Value', + attributeValue: '', + }, + '10': { + attributeKey: 'Revenue', + attributeValue: 5.99, + }, + '11': { + attributeKey: 'App Build', + attributeValue: '1', + }, + '12': { + attributeKey: 'App Name', + attributeValue: 'RudderAndroidClient', + }, + '13': { + attributeKey: 'Library Name', + attributeValue: 'com.rudderstack.android.sdk.core', + }, + '14': { + attributeKey: 'IP', + attributeValue: '14.5.67.21', + }, + }, + }, + ], + spreadSheetId: 'rudder_sheet_id', + spreadSheet: 'rudder_sheet', + }, + metadata: [ + { + jobId: 1, + }, + { + jobId: 2, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + credentials: '{ sheets credentials }', + eventKeyMap: [ + { + from: 'firstName', + to: 'First Name', + }, + { + from: 'lastName', + to: 'Last Name', + }, + { + from: 'birthday', + to: 'Birthday', + }, + { + from: 'address.city', + to: 'City', + }, + { + from: 'address.country', + to: 'Country', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'offer', + to: 'Offer', + }, + { + from: 'title', + to: 'Title Page', + }, + { + from: 'Cart Value', + to: 'Cart Value', + }, + { + from: 'revenue', + to: 'Revenue', + }, + { + from: 'context.app.build', + to: 'App Build', + }, + { + from: 'context.app.name', + to: 'App Name', + }, + { + from: 'context.library.name', + to: 'Library Name', + }, + { + from: 'context.ip', + to: 'IP', + }, + ], + sheetId: 'rudder_sheet_id', + sheetName: 'rudder_sheet', + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/heap/processor/data.ts b/test/integrations/destinations/heap/processor/data.ts new file mode 100644 index 00000000000..6efa45435c2 --- /dev/null +++ b/test/integrations/destinations/heap/processor/data.ts @@ -0,0 +1,964 @@ +export const data = [ + { + name: 'heap', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + messageId: 'fca2e71a-5d30-48e1-ba45-761c16e3820f', + originalTimestamp: '2020-01-16T13:21:59.076Z', + receivedAt: '2020-01-16T18:52:03.871+05:30', + request_ip: '[::1]:62312', + sentAt: '2020-01-16T13:22:03.85Z', + timestamp: '2020-01-16T18:51:59.097+05:30', + type: 'identify', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://heapanalytics.com/api/add_user_properties', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + identity: 'sampath', + properties: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + app_id: '', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'heap', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Send Transactional Email', + integrations: { + All: true, + }, + messageId: 'c0c5b892-0d54-449f-b85f-ebb39ff04e67', + originalTimestamp: '2020-01-16T13:23:20.844Z', + properties: { + subject: 'Welcome to My App!', + variation: 'A', + }, + receivedAt: '2020-01-16T18:53:23.804+05:30', + request_ip: '[::1]:62312', + sentAt: '2020-01-16T13:23:23.782Z', + timestamp: '2020-01-16T18:53:20.866+05:30', + type: 'track', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://heapanalytics.com/api/track', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + identity: 'sampath', + event: 'Send Transactional Email', + properties: { + subject: 'Welcome to My App!', + variation: 'A', + }, + app_id: '', + timestamp: '2020-01-16T18:53:20.866+05:30', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'heap', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + messageId: 'fca2e71a-5d30-48e1-ba45-761c16e3820f', + originalTimestamp: '2020-01-16T13:21:59.076Z', + receivedAt: '2020-01-16T18:52:03.871+05:30', + request_ip: '[::1]:62312', + sentAt: '2020-01-16T13:22:03.85Z', + timestamp: '2020-01-16T18:51:59.097+05:30', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'invalid message type for heap', + statTags: { + destType: 'HEAP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'heap', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Send Transactional Email', + integrations: { + All: true, + }, + messageId: 'c0c5b892-0d54-449f-b85f-ebb39ff04e67', + originalTimestamp: '2020-01-16T13:23:20.844Z', + properties: { + subject: 'Welcome to My App!', + variation: 'A', + }, + receivedAt: '2020-01-16T18:53:23.804+05:30', + request_ip: '[::1]:62312', + sentAt: '2020-01-16T13:23:23.782Z', + timestamp: '2020-01-16T18:53:20.866+05:30', + type: 'page', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'message type page not supported for heap', + statTags: { + destinationId: 'destId', + workspaceId: 'wspId', + destType: 'HEAP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'heap', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Send Transactional Email', + integrations: { + All: true, + }, + messageId: 'c0c5b892-0d54-449f-b85f-ebb39ff04e67', + properties: { + subject: 'Welcome to My App!', + variation: 'A', + idempotencyKey: '1234', + }, + receivedAt: '2020-01-16T18:53:23.804+05:30', + request_ip: '[::1]:62312', + sentAt: '2020-01-16T13:23:23.782Z', + timestamp: '2021-02-16T18:53:20.866+05:30', + originalTimestamp: '2021-02-16T18:53:20.866+05:30', + type: 'track', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://heapanalytics.com/api/track', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + identity: 'sampath', + event: 'Send Transactional Email', + properties: { + subject: 'Welcome to My App!', + variation: 'A', + }, + timestamp: '2021-02-16T18:53:20.866+05:30', + idempotency_key: '1234', + app_id: '', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'heap', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Send Transactional Email', + integrations: { + All: true, + }, + messageId: 'c0c5b892-0d54-449f-b85f-ebb39ff04e67', + originalTimestamp: '2020-01-17T13:23:20.844Z', + properties: { + subject: 'Welcome to My App!', + variation: 'A', + idempotencyKey: '1234', + }, + receivedAt: '2020-01-16T18:53:23.804+05:30', + request_ip: '[::1]:62312', + sentAt: '2020-01-16T13:23:23.782Z', + timestamp: '2020-01-16T18:53:20.866+05:30', + type: 'track', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://heapanalytics.com/api/track', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + identity: 'sampath', + event: 'Send Transactional Email', + properties: { + subject: 'Welcome to My App!', + variation: 'A', + }, + timestamp: '2020-01-16T18:53:20.866+05:30', + idempotency_key: '1234', + app_id: '', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'heap', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Send Transactional Email', + integrations: { + All: true, + }, + messageId: 'c0c5b892-0d54-449f-b85f-ebb39ff04e67', + originalTimestamp: '2020-01-17T13:23:20.844Z', + properties: { + Location: { + City: 'Los Angeles', + State: 'CA', + }, + hobbies: ['Music', 'Running'], + }, + receivedAt: '2020-01-16T18:53:23.804+05:30', + request_ip: '[::1]:62312', + sentAt: '2020-01-16T13:23:23.782Z', + timestamp: '2020-01-16T18:53:20.866+05:30', + type: 'track', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://heapanalytics.com/api/track', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + identity: 'sampath', + event: 'Send Transactional Email', + properties: { + 'Location.City': 'Los Angeles', + 'Location.State': 'CA', + 'hobbies[0]': 'Music', + 'hobbies[1]': 'Running', + }, + timestamp: '2020-01-16T18:53:20.866+05:30', + app_id: '', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'heap', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Send Transactional Email', + integrations: { + All: true, + }, + messageId: 'c0c5b892-0d54-449f-b85f-ebb39ff04e67', + originalTimestamp: '2020-01-17T13:23:20.844Z', + properties: { + subject: 'Welcome to My App!', + variation: 'A', + }, + receivedAt: '2020-01-16T18:53:23.804+05:30', + request_ip: '[::1]:62312', + sentAt: '2020-01-16T13:23:23.782Z', + timestamp: '2020-01-16T18:53:20.866+05:30', + type: 'track', + userId: 'sampath', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://heapanalytics.com/api/track', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + identity: 'sampath', + event: 'Send Transactional Email', + properties: { + subject: 'Welcome to My App!', + variation: 'A', + }, + timestamp: '2020-01-16T18:53:20.866+05:30', + app_id: '', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/heap/router/data.ts b/test/integrations/destinations/heap/router/data.ts new file mode 100644 index 00000000000..24efbf4b157 --- /dev/null +++ b/test/integrations/destinations/heap/router/data.ts @@ -0,0 +1,815 @@ +export const data = [ + { + name: 'heap', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + metadata: { + jobId: 2, + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + messageId: 'fca2e71a-5d30-48e1-ba45-761c16e3820f', + originalTimestamp: '2020-01-16T13:21:59.076Z', + receivedAt: '2020-01-16T18:52:03.871+05:30', + request_ip: '[::1]:62312', + sentAt: '2020-01-16T13:22:03.85Z', + timestamp: '2020-01-16T18:51:59.097+05:30', + type: 'identify', + userId: 'sampath', + }, + }, + { + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + metadata: { + jobId: 2, + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Send Transactional Email', + integrations: { + All: true, + }, + messageId: 'c0c5b892-0d54-449f-b85f-ebb39ff04e67', + originalTimestamp: '2020-01-16T13:23:20.844Z', + properties: { + subject: 'Welcome to My App!', + variation: 'A', + }, + receivedAt: '2020-01-16T18:53:23.804+05:30', + request_ip: '[::1]:62312', + sentAt: '2020-01-16T13:23:23.782Z', + timestamp: '2020-01-16T18:53:20.866+05:30', + type: 'track', + userId: 'sampath', + }, + }, + { + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + metadata: { + jobId: 2, + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Send Transactional Email', + integrations: { + All: true, + }, + messageId: 'c0c5b892-0d54-449f-b85f-ebb39ff04e67', + originalTimestamp: '2020-01-16T13:23:20.844Z', + properties: { + subject: 'Welcome to My App!', + variation: 'A', + idempotencyKey: '1234', + }, + receivedAt: '2020-01-16T18:53:23.804+05:30', + request_ip: '[::1]:62312', + sentAt: '2020-01-16T13:23:23.782Z', + timestamp: '2020-01-16T18:53:20.866+05:30', + type: 'track', + userId: 'sampath', + }, + }, + ], + destType: 'heap', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://heapanalytics.com/api/add_user_properties', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + identity: 'sampath', + properties: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + app_id: '', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://heapanalytics.com/api/track', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + identity: 'sampath', + event: 'Send Transactional Email', + properties: { + subject: 'Welcome to My App!', + variation: 'A', + }, + app_id: '', + timestamp: '2020-01-16T18:53:20.866+05:30', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://heapanalytics.com/api/track', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + identity: 'sampath', + event: 'Send Transactional Email', + properties: { + subject: 'Welcome to My App!', + variation: 'A', + }, + app_id: '', + timestamp: '2020-01-16T18:53:20.866+05:30', + idempotency_key: '1234', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + }, + ], + }, + }, + }, + }, + { + name: 'heap', + description: 'Test 1', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + metadata: { + jobId: 2, + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + messageId: 'fca2e71a-5d30-48e1-ba45-761c16e3820f', + originalTimestamp: '2020-01-16T13:21:59.076Z', + receivedAt: '2020-01-16T18:52:03.871+05:30', + request_ip: '[::1]:62312', + sentAt: '2020-01-16T13:22:03.85Z', + timestamp: '2020-01-16T18:51:59.097+05:30', + type: 'identify', + userId: 'sampath', + }, + }, + { + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + metadata: { + jobId: 2, + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Send Transactional Email', + integrations: { + All: true, + }, + messageId: 'c0c5b892-0d54-449f-b85f-ebb39ff04e67', + originalTimestamp: '2020-01-16T13:23:20.844Z', + properties: { + subject: 'Welcome to My App!', + variation: 'A', + }, + receivedAt: '2020-01-16T18:53:23.804+05:30', + request_ip: '[::1]:62312', + sentAt: '2020-01-16T13:23:23.782Z', + timestamp: '2020-01-16T18:53:20.866+05:30', + type: 'track', + userId: 'sampath', + }, + }, + { + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + metadata: { + jobId: 4, + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + messageId: 'fca2e71a-5d30-48e1-ba45-761c16e3820f', + originalTimestamp: '2020-01-16T13:21:59.076Z', + receivedAt: '2020-01-16T18:52:03.871+05:30', + request_ip: '[::1]:62312', + sentAt: '2020-01-16T13:22:03.85Z', + timestamp: '2020-01-16T18:51:59.097+05:30', + userId: 'sampath', + }, + }, + { + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + metadata: { + jobId: 5, + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'Send Transactional Email', + integrations: { + All: true, + }, + messageId: 'c0c5b892-0d54-449f-b85f-ebb39ff04e67', + originalTimestamp: '2020-01-16T13:23:20.844Z', + properties: { + subject: 'Welcome to My App!', + variation: 'A', + }, + receivedAt: '2020-01-16T18:53:23.804+05:30', + request_ip: '[::1]:62312', + sentAt: '2020-01-16T13:23:23.782Z', + timestamp: '2020-01-16T18:53:20.866+05:30', + type: 'page', + userId: 'sampath', + }, + }, + ], + destType: 'heap', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://heapanalytics.com/api/add_user_properties', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + identity: 'sampath', + properties: { + anonymousId: 'sampath', + email: 'sampath@gmail.com', + }, + app_id: '', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://heapanalytics.com/api/track', + headers: { + 'Content-Type': 'application/json', + Accept: 'application/json', + }, + params: {}, + body: { + JSON: { + identity: 'sampath', + event: 'Send Transactional Email', + properties: { + subject: 'Welcome to My App!', + variation: 'A', + }, + app_id: '', + timestamp: '2020-01-16T18:53:20.866+05:30', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + }, + { + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + metadata: [ + { + jobId: 4, + }, + ], + batched: false, + statusCode: 400, + error: 'invalid message type for heap', + statTags: { + destType: 'HEAP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + }, + { + destination: { + Config: { + appId: '', + }, + DestinationDefinition: { + DisplayName: 'Heap.io', + ID: '1WTbl0l5GjOQKOvfmcGwk0T49kV', + Name: 'HEAP', + }, + Enabled: true, + ID: '1WTcDSEOE437e4ePH10BJNELXmE', + Name: 'heap test', + Transformations: [], + }, + metadata: [ + { + jobId: 5, + }, + ], + batched: false, + statusCode: 400, + error: 'message type page not supported for heap', + statTags: { + destType: 'HEAP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/impact/processor/data.ts b/test/integrations/destinations/impact/processor/data.ts new file mode 100644 index 00000000000..e467956d624 --- /dev/null +++ b/test/integrations/destinations/impact/processor/data.ts @@ -0,0 +1,2357 @@ +export const data = [ + { + name: 'impact', + description: 'Identify Call', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user123', + channel: 'web', + context: { + os: { + name: 'android', + version: '1.12.3', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { + email: 'user123@email.com', + phone: '+917836362334', + userId: 'user123', + }, + locale: 'en-US', + device: { + token: 'token', + id: 'id', + type: 'ios', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'sku', + to: 'ItemSku', + }, + ], + enableIdentifyEvents: true, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [ + { + eventName: 'Product Purchased', + }, + ], + installEventNames: [ + { + eventName: 'App Installed', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: { + AppVer: '1.1.11', + AppName: 'RudderLabs JavaScript SDK', + DeviceOs: 'ios', + AndroidId: 'id', + EventDate: 'NOW', + UserAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + AppPackage: '1.0.0', + CampaignId: '23224', + CustomerId: 'user123', + PropertyId: '2323', + DeviceOsVer: '1.12.3', + ImpactAppId: '2323', + DeviceLocale: 'en-US', + CustomerEmail: '0c57fe03e81357df3acc1340bc9e353688e8f69e', + CustomProfileId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: 'Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn', + }, + version: '1', + endpoint: 'https://trkapi.impact.com/PageLoad', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'impact', + description: 'Identify Call when enableIdentifyEvents is disabled from config', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user123', + channel: 'web', + context: { + os: { + name: 'android', + version: '1.12.3', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { + email: 'user123@email.com', + phone: '+917836362334', + userId: 'user123', + }, + locale: 'en-US', + device: { + token: 'token', + id: 'id', + type: 'ios', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'sku', + to: 'ItemSku', + }, + ], + enableIdentifyEvents: false, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [ + { + eventName: 'Product Purchased', + }, + ], + installEventNames: [ + { + eventName: 'App Installed', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'identify events are disabled from Config', + statTags: { + destType: 'IMPACT', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'impact', + description: 'Account SID is empty', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user123', + channel: 'web', + context: { + os: { + name: 'android', + version: '1.12.3', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { + email: 'user123@email.com', + phone: '+917836362334', + userId: 'user123', + }, + locale: 'en-US', + device: { + token: 'token', + id: 'id', + type: 'ios', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + destination: { + Config: { + accountSID: '', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'sku', + to: 'ItemSku', + }, + ], + enableIdentifyEvents: true, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [ + { + eventName: 'Product Purchased', + }, + ], + installEventNames: [ + { + eventName: 'App Installed', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'accountSID : are required fields', + statTags: { + destType: 'IMPACT', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'impact', + description: 'API Key is empty', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user123', + channel: 'web', + context: { + os: { + name: 'android', + version: '1.12.3', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { + email: 'user123@email.com', + phone: '+917836362334', + userId: 'user123', + }, + locale: 'en-US', + device: { + token: 'token', + id: 'id', + type: 'ios', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + destination: { + Config: { + accountSID: 'jskafsdhgfbjcdsxzjhfnerscd', + apiKey: '', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'sku', + to: 'ItemSku', + }, + ], + enableIdentifyEvents: true, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [ + { + eventName: 'Product Purchased', + }, + ], + installEventNames: [ + { + eventName: 'App Installed', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'apiKey : are required fields', + statTags: { + destType: 'IMPACT', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'impact', + description: 'campaignId is empty', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user123', + channel: 'web', + context: { + os: { + name: 'android', + version: '1.12.3', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { + email: 'user123@email.com', + phone: '+917836362334', + userId: 'user123', + }, + locale: 'en-US', + device: { + token: 'token', + id: 'id', + type: 'ios', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + destination: { + Config: { + accountSID: 'jskafsdhgfbjcdsxzjhfnerscd', + apiKey: 'hjsfbnrrcldkbnfsjknfdkfjne', + campaignId: '', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'sku', + to: 'ItemSku', + }, + ], + enableIdentifyEvents: true, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [ + { + eventName: 'Product Purchased', + }, + ], + installEventNames: [ + { + eventName: 'App Installed', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'campaignId : are required fields', + statTags: { + destType: 'IMPACT', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'impact', + description: 'Track Call with products array to test conversion endpoint', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'Order Completed', + type: 'track', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'Ujjwalab', + channel: 'web', + properties: { + orderId: '9217374917471', + coupon: '10OFF-ROCKET', + clickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + products: [ + { + brand: 'zara', + category: 'wearables', + name: 'Monopoly', + price: 332, + quantity: 1, + sku: 'G-32', + }, + ], + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { + density: 2, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'variant', + to: 'ItemCategory', + }, + ], + enableIdentifyEvents: false, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [ + { + eventName: 'Product Purchased', + }, + ], + installEventNames: [ + { + eventName: 'App Installed', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: { + AppVer: '1.1.11', + AppName: 'RudderLabs JavaScript SDK', + ClickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + OrderId: '9217374917471', + ItemSku1: 'G-32', + EventDate: 'NOW', + ItemName1: 'Monopoly', + UserAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + AppPackage: '1.0.0', + CampaignId: '23224', + CustomerId: 'Ujjwalab', + ItemBrand1: 'zara', + ItemPrice1: 332, + EventTypeId: '56446', + ImpactAppId: '2323', + DeviceLocale: 'en-US', + EventTypeCode: 'Order Completed', + ItemQuantity1: 1, + OrderPromoCode: '10OFF-ROCKET', + CustomProfileId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: 'Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn', + }, + version: '1', + endpoint: 'https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'impact', + description: 'Track Call with products array without any custom products mapping', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'Product Purchased', + type: 'track', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'Ujjwalab', + channel: 'web', + properties: { + orderId: '9217374917471', + coupon: '10OFF-ROCKET', + clickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + products: [ + { + brand: 'zara', + category: 'wearables', + name: 'Monopoly', + price: 332, + quantity: 1, + sku: 'G-32', + }, + ], + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { + density: 2, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: '', + enableIdentifyEvents: false, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [ + { + eventName: 'Product Purchased', + }, + ], + installEventNames: [ + { + eventName: 'App Installed', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: { + AppVer: '1.1.11', + AppName: 'RudderLabs JavaScript SDK', + ClickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + OrderId: '9217374917471', + ItemSku1: 'G-32', + EventDate: 'NOW', + ItemName1: 'Monopoly', + UserAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + AppPackage: '1.0.0', + CampaignId: '23224', + CustomerId: 'Ujjwalab', + ItemBrand1: 'zara', + ItemPrice1: 332, + EventTypeId: '56446', + ImpactAppId: '2323', + DeviceLocale: 'en-US', + EventTypeCode: 'Product Purchased', + ItemQuantity1: 1, + ItemCategory1: 'wearables', + OrderPromoCode: '10OFF-ROCKET', + CustomProfileId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: 'Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn', + }, + version: '1', + endpoint: 'https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'impact', + description: + 'Track Call with products array to test conversion endpoint with a custom products mapping', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'Order Completed', + type: 'track', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'Ujjwalab', + channel: 'web', + properties: { + orderId: '9217374917471', + coupon: '10OFF-ROCKET', + clickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + products: [ + { + brand: 'zara', + variant: 'wearables', + name: 'Monopoly', + price: 332, + quantity: 1, + sku: 'G-32', + }, + ], + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { + density: 2, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'variant', + to: 'ItemCategory', + }, + ], + enableIdentifyEvents: false, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [ + { + eventName: 'Product Purchased', + }, + ], + installEventNames: [ + { + eventName: 'App Installed', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: { + AppVer: '1.1.11', + AppName: 'RudderLabs JavaScript SDK', + ClickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + OrderId: '9217374917471', + ItemSku1: 'G-32', + EventDate: 'NOW', + ItemName1: 'Monopoly', + UserAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + AppPackage: '1.0.0', + CampaignId: '23224', + CustomerId: 'Ujjwalab', + ItemBrand1: 'zara', + ItemCategory1: 'wearables', + ItemPrice1: 332, + EventTypeId: '56446', + ImpactAppId: '2323', + DeviceLocale: 'en-US', + EventTypeCode: 'Order Completed', + ItemQuantity1: 1, + OrderPromoCode: '10OFF-ROCKET', + CustomProfileId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: 'Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn', + }, + version: '1', + endpoint: 'https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'impact', + description: + 'Track Call with products array to test conversion endpoint with a custom products mapping and custom property mapping', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'Order Completed', + type: 'track', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'Ujjwalab', + channel: 'web', + properties: { + orderId: '9217374917471', + coupon: '10OFF-ROCKET', + clickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + profit: 434, + products: [ + { + brand: 'zara', + variant: 'wearables', + name: 'Monopoly', + price: 332, + quantity: 1, + sku: 'G-32', + }, + ], + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { + density: 2, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'variant', + to: 'ItemCategory', + }, + ], + enableIdentifyEvents: false, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [ + { + eventName: 'Product Purchased', + }, + ], + installEventNames: [ + { + eventName: 'App Installed', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: { + AppVer: '1.1.11', + AppName: 'RudderLabs JavaScript SDK', + ClickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + Money1: 434, + OrderId: '9217374917471', + ItemSku1: 'G-32', + EventDate: 'NOW', + ItemName1: 'Monopoly', + UserAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + AppPackage: '1.0.0', + CampaignId: '23224', + CustomerId: 'Ujjwalab', + ItemBrand1: 'zara', + ItemCategory1: 'wearables', + ItemPrice1: 332, + EventTypeId: '56446', + ImpactAppId: '2323', + DeviceLocale: 'en-US', + EventTypeCode: 'Order Completed', + ItemQuantity1: 1, + OrderPromoCode: '10OFF-ROCKET', + CustomProfileId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: 'Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn', + }, + version: '1', + endpoint: 'https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'impact', + description: 'Track Call with products array to test conversion endpoint with OS as android', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'Order Completed', + type: 'track', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'Ujjwalab', + channel: 'web', + properties: { + orderId: '9217374917471', + coupon: '10OFF-ROCKET', + clickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + profit: 434, + products: [ + { + brand: 'zara', + variant: 'wearables', + name: 'Monopoly', + price: 332, + quantity: 1, + sku: 'G-32', + }, + ], + }, + context: { + os: { + name: 'Android', + version: '9', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + device: { + id: '78c53c15-32a1-4b65-adac-bec2d7bb8fab', + advertisingId: '435o4GRlm', + }, + locale: 'en-US', + screen: { + density: 2, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'variant', + to: 'ItemCategory', + }, + ], + enableIdentifyEvents: false, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [ + { + eventName: 'Product Purchased', + }, + ], + installEventNames: [ + { + eventName: 'App Installed', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: { + AppVer: '1.1.11', + Money1: 434, + AppName: 'RudderLabs JavaScript SDK', + ClickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + GoogAId: '435o4GRlm', + OrderId: '9217374917471', + DeviceOs: 'Android', + ItemSku1: 'G-32', + AndroidId: '78c53c15-32a1-4b65-adac-bec2d7bb8fab', + EventDate: 'NOW', + ItemName1: 'Monopoly', + UserAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + AppPackage: '1.0.0', + CampaignId: '23224', + CustomerId: 'Ujjwalab', + ItemBrand1: 'zara', + ItemPrice1: 332, + DeviceOsVer: '9', + EventTypeId: '56446', + ImpactAppId: '2323', + DeviceLocale: 'en-US', + EventTypeCode: 'Order Completed', + ItemCategory1: 'wearables', + ItemQuantity1: 1, + OrderPromoCode: '10OFF-ROCKET', + CustomProfileId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: 'Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn', + }, + version: '1', + endpoint: 'https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'impact', + description: 'Track Call with products array to test conversion endpoint with OS as ios', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'Order Completed', + type: 'track', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'Ujjwalab', + channel: 'web', + properties: { + orderId: '9217374917471', + coupon: '10OFF-ROCKET', + clickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + profit: 434, + products: [ + { + brand: 'zara', + variant: 'wearables', + name: 'Monopoly', + price: 332, + quantity: 1, + sku: 'G-32', + }, + ], + }, + context: { + os: { + name: 'iOS', + version: '15.2', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + device: { + id: '78c53c15-32a1-4b65-adac-bec2d7bb8fab', + advertisingId: '435o4GRlm', + }, + locale: 'en-US', + screen: { + density: 2, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'variant', + to: 'ItemCategory', + }, + ], + enableIdentifyEvents: false, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [ + { + eventName: 'Product Purchased', + }, + ], + installEventNames: [ + { + eventName: 'App Installed', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: { + AppVer: '1.1.11', + AppleIfa: '435o4GRlm', + AppleIfv: '78c53c15-32a1-4b65-adac-bec2d7bb8fab', + Money1: 434, + AppName: 'RudderLabs JavaScript SDK', + ClickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + OrderId: '9217374917471', + DeviceOs: 'iOS', + ItemSku1: 'G-32', + EventDate: 'NOW', + ItemName1: 'Monopoly', + UserAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + AppPackage: '1.0.0', + CampaignId: '23224', + CustomerId: 'Ujjwalab', + ItemBrand1: 'zara', + ItemPrice1: 332, + DeviceOsVer: '15.2', + EventTypeId: '56446', + ImpactAppId: '2323', + DeviceLocale: 'en-US', + EventTypeCode: 'Order Completed', + ItemCategory1: 'wearables', + ItemQuantity1: 1, + OrderPromoCode: '10OFF-ROCKET', + CustomProfileId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: 'Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn', + }, + version: '1', + endpoint: 'https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'impact', + description: 'Page Call', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user123', + channel: 'web', + context: { + os: { + name: 'android', + version: '1.12.3', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { + email: 'user123@email.com', + phone: '+917836362334', + userId: 'user123', + }, + locale: 'en-US', + device: { + token: 'token', + id: 'id', + type: 'ios', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'sku', + to: 'ItemSku', + }, + ], + enableIdentifyEvents: false, + enablePageEvents: true, + enableScreenEvents: false, + actionEventNames: [ + { + eventName: 'Product Purchased', + }, + ], + installEventNames: [ + { + eventName: 'App Installed', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: { + AppVer: '1.1.11', + AppName: 'RudderLabs JavaScript SDK', + DeviceOs: 'ios', + AndroidId: 'id', + EventDate: 'NOW', + UserAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + AppPackage: '1.0.0', + CampaignId: '23224', + CustomerId: 'user123', + PropertyId: '2323', + DeviceOsVer: '1.12.3', + ImpactAppId: '2323', + DeviceLocale: 'en-US', + CustomerEmail: '0c57fe03e81357df3acc1340bc9e353688e8f69e', + CustomProfileId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: 'Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn', + }, + version: '1', + endpoint: 'https://trkapi.impact.com/PageLoad', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'impact', + description: 'Screen Call', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'screen', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user123', + channel: 'web', + context: { + os: { + name: 'android', + version: '1.12.3', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { + email: 'user123@email.com', + phone: '+917836362334', + userId: 'user123', + }, + locale: 'en-US', + device: { + token: 'token', + id: 'id', + type: 'ios', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'sku', + to: 'ItemSku', + }, + ], + enableIdentifyEvents: false, + enablePageEvents: false, + enableScreenEvents: true, + actionEventNames: [ + { + eventName: 'Product Purchased', + }, + ], + installEventNames: [ + { + eventName: 'App Installed', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: { + AppVer: '1.1.11', + AppName: 'RudderLabs JavaScript SDK', + DeviceOs: 'ios', + AndroidId: 'id', + EventDate: 'NOW', + UserAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + AppPackage: '1.0.0', + CampaignId: '23224', + CustomerId: 'user123', + PropertyId: '2323', + DeviceOsVer: '1.12.3', + ImpactAppId: '2323', + DeviceLocale: 'en-US', + CustomerEmail: '0c57fe03e81357df3acc1340bc9e353688e8f69e', + CustomProfileId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: 'Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn', + }, + version: '1', + endpoint: 'https://trkapi.impact.com/PageLoad', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'impact', + description: 'Unsupported message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'Order Completed', + type: 'group', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'Ujjwalab', + channel: 'web', + properties: { + orderId: '9217374917471', + coupon: '10OFF-ROCKET', + clickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + products: [ + { + brand: 'zara', + category: 'wearables', + name: 'Monopoly', + price: 332, + quantity: 1, + sku: 'G-32', + }, + ], + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { + density: 2, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'variant', + to: 'ItemCategory', + }, + ], + enableIdentifyEvents: false, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [ + { + eventName: 'Product Purchased', + }, + ], + installEventNames: [ + { + eventName: 'App Installed', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type group is not supported', + statTags: { + destType: 'IMPACT', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'impact', + description: 'Event type is empty', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'Order Completed', + type: '', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'Ujjwalab', + channel: 'web', + properties: { + orderId: '9217374917471', + coupon: '10OFF-ROCKET', + clickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + products: [ + { + brand: 'zara', + category: 'wearables', + name: 'Monopoly', + price: 332, + quantity: 1, + sku: 'G-32', + }, + ], + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { + density: 2, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'variant', + to: 'ItemCategory', + }, + ], + enableIdentifyEvents: false, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [ + { + eventName: 'Product Purchased', + }, + ], + installEventNames: [ + { + eventName: 'App Installed', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type is required', + statTags: { + destType: 'IMPACT', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'impact', + description: 'Track Call with products array to test conversion endpoint', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'Order Completed', + type: 'track', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'Ujjwalab', + channel: 'web', + properties: { + orderId: '9217374917471', + coupon: '10OFF-ROCKET', + clickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + brand: 'zara', + category: 'wearables', + name: 'Monopoly', + price: 332, + quantity: 1, + sku: 'G-32', + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { + density: 2, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'variant', + to: 'ItemCategory', + }, + ], + enableIdentifyEvents: false, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [ + { + eventName: 'Product Purchased', + }, + ], + installEventNames: [ + { + eventName: 'App Installed', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: { + AppVer: '1.1.11', + AppName: 'RudderLabs JavaScript SDK', + ClickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + OrderId: '9217374917471', + ItemSku1: 'G-32', + EventDate: 'NOW', + ItemName1: 'Monopoly', + UserAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + AppPackage: '1.0.0', + CampaignId: '23224', + CustomerId: 'Ujjwalab', + ItemBrand1: 'zara', + ItemPrice1: 332, + EventTypeId: '56446', + ImpactAppId: '2323', + DeviceLocale: 'en-US', + EventTypeCode: 'Order Completed', + ItemCategory1: 'wearables', + ItemQuantity1: 1, + ItemPromoCode1: '10OFF-ROCKET', + OrderPromoCode: '10OFF-ROCKET', + CustomProfileId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: 'Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn', + }, + version: '1', + endpoint: 'https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'impact', + description: 'Track Call with products array to test conversion endpoint with event mapping', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'Product Ordered', + type: 'track', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'Ujjwalab', + channel: 'web', + properties: { + orderId: '9217374917471', + coupon: '10OFF-ROCKET', + clickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + profit: 434, + products: [ + { + brand: 'zara', + variant: 'wearables', + name: 'Monopoly', + price: 332, + quantity: 1, + sku: 'G-32', + }, + ], + }, + context: { + os: { + name: 'iOS', + version: '15.2', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + device: { + id: '78c53c15-32a1-4b65-adac-bec2d7bb8fab', + advertisingId: '435o4GRlm', + }, + locale: 'en-US', + screen: { + density: 2, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'variant', + to: 'ItemCategory', + }, + ], + enableIdentifyEvents: false, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [ + { + eventName: 'Product Ordered', + }, + ], + installEventNames: [ + { + eventName: 'Product Ordered', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: { + AppVer: '1.1.11', + AppleIfa: '435o4GRlm', + AppleIfv: '78c53c15-32a1-4b65-adac-bec2d7bb8fab', + Money1: 434, + AppName: 'RudderLabs JavaScript SDK', + OrderId: '9217374917471', + DeviceOs: 'iOS', + ItemSku1: 'G-32', + EventDate: 'NOW', + ItemName1: 'Monopoly', + UserAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + AppPackage: '1.0.0', + CampaignId: '23224', + CustomerId: 'Ujjwalab', + ItemBrand1: 'zara', + ItemPrice1: 332, + DeviceOsVer: '15.2', + EventTypeId: '56446', + ImpactAppId: '2323', + DeviceLocale: 'en-US', + EventTypeCode: 'Product Ordered', + ItemCategory1: 'wearables', + ItemQuantity1: 1, + OrderPromoCode: '10OFF-ROCKET', + CustomProfileId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: 'Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn', + }, + version: '1', + endpoint: 'https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions', + userId: '', + }, + statusCode: 200, + }, + { + output: { + body: { + XML: {}, + FORM: { + AppVer: '1.1.11', + AppleIfa: '435o4GRlm', + AppleIfv: '78c53c15-32a1-4b65-adac-bec2d7bb8fab', + Money1: 434, + AppName: 'RudderLabs JavaScript SDK', + ClickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + OrderId: '9217374917471', + DeviceOs: 'iOS', + ItemSku1: 'G-32', + EventDate: 'NOW', + ItemName1: 'Monopoly', + UserAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + AppPackage: '1.0.0', + CampaignId: '23224', + CustomerId: 'Ujjwalab', + ItemBrand1: 'zara', + ItemPrice1: 332, + DeviceOsVer: '15.2', + EventTypeId: '56446', + ImpactAppId: '2323', + DeviceLocale: 'en-US', + EventTypeCode: 'Product Ordered', + ItemCategory1: 'wearables', + ItemQuantity1: 1, + OrderPromoCode: '10OFF-ROCKET', + CustomProfileId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: 'Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn', + }, + version: '1', + endpoint: 'https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/impact/router/data.ts b/test/integrations/destinations/impact/router/data.ts new file mode 100644 index 00000000000..1e9cd9cc6e5 --- /dev/null +++ b/test/integrations/destinations/impact/router/data.ts @@ -0,0 +1,330 @@ +export const data = [ + { + name: 'fb', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'sku', + to: 'ItemSku', + }, + ], + enableIdentifyEvents: true, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [{ eventName: 'Product Purchased' }], + installEventNames: [{ eventName: 'App Installed' }], + }, + }, + metadata: { + jobId: 1, + }, + message: { + type: 'identify', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user123', + channel: 'web', + context: { + os: { + name: 'android', + version: '1.12.3', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { + email: 'user123@email.com', + phone: '+917836362334', + userId: 'user123', + }, + locale: 'en-US', + device: { + token: 'token', + id: 'id', + type: 'ios', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + }, + { + message: { + event: 'Order Completed', + type: 'track', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'Ujjwalab', + channel: 'web', + properties: { + orderId: '9217374917471', + coupon: '10OFF-ROCKET', + clickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + products: [ + { + brand: 'zara', + category: 'wearables', + name: 'Monopoly', + price: 332, + quantity: 1, + sku: 'G-32', + }, + ], + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { + density: 2, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: 'NOW', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'variant', + to: 'ItemCategory', + }, + ], + enableIdentifyEvents: false, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [{ eventName: 'Product Purchased' }], + installEventNames: [{ eventName: 'App Installed' }], + }, + }, + }, + ], + destType: 'impact', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + body: { + XML: {}, + FORM: { + AppVer: '1.1.11', + AppName: 'RudderLabs JavaScript SDK', + DeviceOs: 'ios', + AndroidId: 'id', + EventDate: 'NOW', + UserAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + AppPackage: '1.0.0', + CampaignId: '23224', + CustomerId: 'user123', + PropertyId: '2323', + DeviceOsVer: '1.12.3', + ImpactAppId: '2323', + DeviceLocale: 'en-US', + CustomerEmail: '0c57fe03e81357df3acc1340bc9e353688e8f69e', + CustomProfileId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn', + }, + version: '1', + endpoint: 'https://trkapi.impact.com/PageLoad', + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'sku', + to: 'ItemSku', + }, + ], + enableIdentifyEvents: true, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [{ eventName: 'Product Purchased' }], + installEventNames: [{ eventName: 'App Installed' }], + }, + }, + }, + { + batchedRequest: [ + { + body: { + XML: {}, + FORM: { + AppVer: '1.1.11', + AppName: 'RudderLabs JavaScript SDK', + ClickId: 'wEWU47yhtzBnU-CTug3:7Wv4UkAzMbzkZ2lTz80', + OrderId: '9217374917471', + ItemSku1: 'G-32', + EventDate: 'NOW', + ItemName1: 'Monopoly', + UserAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + AppPackage: '1.0.0', + CampaignId: '23224', + CustomerId: 'Ujjwalab', + ItemBrand1: 'zara', + ItemPrice1: 332, + EventTypeId: '56446', + ImpactAppId: '2323', + DeviceLocale: 'en-US', + EventTypeCode: 'Order Completed', + ItemQuantity1: 1, + OrderPromoCode: '10OFF-ROCKET', + CustomProfileId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + JSON: {}, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + Authorization: + 'Basic ZGZzZ2VydHJ0ZmYzZXJmYzM0cmZ3ZjpmZ2hzZGZnZWd2Y2VyZ2Z2ZmRmc2Fn', + }, + version: '1', + endpoint: 'https://api.impact.com/Advertisers/dfsgertrtff3erfc34rfwf/Conversions', + }, + ], + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + accountSID: 'dfsgertrtff3erfc34rfwf', + apiKey: 'fghsdfgegvcergfvfdfsag', + campaignId: '23224', + impactAppId: '2323', + eventTypeId: '56446', + enableEmailHashing: true, + rudderToImpactProperty: [ + { + from: 'properties.profit', + to: 'Money1', + }, + ], + productsMapping: [ + { + from: 'variant', + to: 'ItemCategory', + }, + ], + enableIdentifyEvents: false, + enablePageEvents: false, + enableScreenEvents: false, + actionEventNames: [{ eventName: 'Product Purchased' }], + installEventNames: [{ eventName: 'App Installed' }], + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/indicative/processor/data.ts b/test/integrations/destinations/indicative/processor/data.ts new file mode 100644 index 00000000000..706fd25664b --- /dev/null +++ b/test/integrations/destinations/indicative/processor/data.ts @@ -0,0 +1,3284 @@ +export const data = [ + { + name: 'indicative', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + versionSessionCount: 2, + win_amount: 0, + }, + userId: 'test_user_id', + timestamp: '2019-09-01T15:46:51.693Z', + type: 'track', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/event', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + eventUniqueId: 'test_user_id', + eventName: 'spin_result', + properties: { + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + versionSessionCount: 2, + win_amount: 0, + }, + eventTime: 1567352811693, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'test_user_id', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + userId: '123456', + type: 'identify', + traits: { + anonymousId: 'anon_id', + email: 'sayan@gmail.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/identify', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + uniqueId: '123456', + properties: { + email: 'sayan@gmail.com', + 'address.city': 'kolkata', + 'address.country': 'India', + 'address.postalCode': 712136, + 'address.state': 'WB', + 'address.street': '', + browser: 'Chrome', + browser_version: '77.0.3865.90', + device: 'Macintosh', + os: 'Mac OS', + }, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '123456', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/alias', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + previousId: 'anon_id', + newId: '123456', + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '123456', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '123456', + email: 'sayan@gmail.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + ip: '0.0.0.0', + age: 26, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/identify', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + uniqueId: '123456', + properties: { + email: 'sayan@gmail.com', + 'address.city': 'kolkata', + 'address.country': 'India', + 'address.postalCode': 712136, + 'address.state': 'WB', + 'address.street': '', + ip: '0.0.0.0', + age: 26, + browser: 'Chrome', + browser_version: '77.0.3865.90', + device: 'Macintosh', + os: 'Mac OS', + }, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '123456', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/alias', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + previousId: '123456', + newId: '123456', + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '123456', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + request_ip: '1.1.1.1', + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/event', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + eventUniqueId: '12345', + eventName: 'Page View ApplicationLoaded', + properties: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + browser: 'Chrome', + browser_version: '77.0.3865.90', + device: 'Macintosh', + os: 'Mac OS', + }, + eventTime: 1571051718299, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '12345', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + request_ip: '1.1.1.1', + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + name: 'ApplicationLoaded', + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/event', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + eventUniqueId: '12345', + eventName: 'Page View ApplicationLoaded', + properties: { + name: 'ApplicationLoaded', + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + browser: 'Chrome', + browser_version: '77.0.3865.90', + device: 'Macintosh', + os: 'Mac OS', + }, + eventTime: 1571051718299, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '12345', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + request_ip: '1.1.1.1', + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/event', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + eventUniqueId: '12345', + eventName: 'Page View', + properties: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + browser: 'Chrome', + browser_version: '77.0.3865.90', + device: 'Macintosh', + os: 'Mac OS', + }, + eventTime: 1571051718299, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '12345', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + request_ip: '1.1.1.1', + type: 'screen', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + }, + integrations: { + All: true, + }, + name: 'Home', + sentAt: '2019-10-14T11:15:53.296Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/event', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + eventUniqueId: '12345', + eventName: 'Screen View Home', + properties: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + browser: 'Chrome', + browser_version: '77.0.3865.90', + device: 'Macintosh', + os: 'Mac OS', + }, + eventTime: 1571051718299, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '12345', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + versionSessionCount: 2, + win_amount: 0, + }, + userId: 'test_user_id', + timestamp: '2019-09-01T15:46:51.693Z', + originalTimestamp: '2019-09-01T15:46:51.693Z', + type: 'track', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/event', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + eventUniqueId: 'test_user_id', + eventName: 'spin_result', + properties: { + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + versionSessionCount: 2, + win_amount: 0, + }, + eventTime: 1567352811693, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'test_user_id', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstname: 'Mickey', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '79313729-7fe5-4204-963a-dc46f4205e4e', + originalTimestamp: '2020-01-24T06:29:02.366Z', + previousId: 'test_previous_id', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53711', + sentAt: '2020-01-24T06:29:02.366Z', + timestamp: '2020-01-24T11:59:02.403+05:30', + type: 'alias', + userId: 'test_new_user_id', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/alias', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + previousId: 'test_previous_id', + newId: 'test_new_user_id', + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'test_new_user_id', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstname: 'Mickey', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '79313729-7fe5-4204-963a-dc46f4205e4e', + originalTimestamp: '2020-01-24T06:29:02.366Z', + previousId: 'test_previous_id', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53711', + sentAt: '2020-01-24T06:29:02.366Z', + timestamp: '2020-01-24T11:59:02.403+05:30', + userId: 'test_new_user_id', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Message Type is not present. Aborting message.', + statTags: { + destType: 'INDICATIVE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: '123456', + type: 'group', + traits: { + anonymousId: '123456', + email: 'sayan@gmail.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Message type group not supported', + statTags: { + destType: 'INDICATIVE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'test_anon_id', + type: 'identify', + traits: { + anonymousId: 'test_anon_id', + email: 'sayan@gmail.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/identify', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + uniqueId: 'test_anon_id', + properties: { + email: 'sayan@gmail.com', + 'address.city': 'kolkata', + 'address.country': 'India', + 'address.postalCode': 712136, + 'address.state': 'WB', + 'address.street': '', + browser: 'Chrome', + browser_version: '77.0.3865.90', + device: 'Macintosh', + os: 'Mac OS', + }, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + userId: 'test_anon_id', + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + searchResponse: { + hits: [ + { + Vrm: '026067', + Make: 'AUDI', + Year: 2010, + DName: 'PISCA PROFESSIONAL INDUSTRIAL SOLUTION Consulting & Acquisition GmbH', + Model: 'A5', + Price: 13990, + Mileage: 163000, + DealerId: '1f338e5b-740f-6a38-bee1-ecff97acda69', + Derivative: 'A5 Cabrio 1.8 TFSI Cabrio', + }, + { + Vrm: '4527', + Make: 'AUDI', + Year: 2009, + DName: 'Stephan Walters - Autohaus Walters', + Model: 'A5', + Price: 14450, + Mileage: 99990, + DealerId: '68c7b5ae-8cf0-6595-9fd2-8644b9682838', + Derivative: 'A5 Cabrio 40 TFSI S tronic S line Cabrio', + }, + { + Vrm: '10007', + Make: 'AUDI', + Year: 2017, + DName: 'ps kfz-vertrieb GmbH', + Model: 'A5', + Price: 14580, + Mileage: 151500, + DealerId: 'a107e9a8-ac3c-6790-bb84-052dd5eed5e8', + Derivative: 'A5 Sportback 2.0 TDI ultra S tronic Coupe', + }, + { + Vrm: '031983', + Make: 'AUDI', + Year: 2012, + DName: 'Hüseyin Zan Fahrzeughandel "Autopark Grendelmatt"', + Model: 'A5', + Price: 10980, + Mileage: 197335, + DealerId: '8a574713-2fbe-6f0c-b1a8-39ba7ee683fc', + Derivative: 'A5 2.0 TDI Sportback DPF multitronic Coupe', + }, + { + Vrm: '042012', + Make: 'AUDI', + Year: 2015, + DName: 'Hüseyin Zan Fahrzeughandel "Autopark Grendelmatt"', + Model: 'A5', + Price: 15980, + Mileage: 144205, + DealerId: '8a574713-2fbe-6f0c-b1a8-39ba7ee683fc', + Derivative: 'A5 Coupe 35 TDI S tronic S line Coupe', + }, + { + Vrm: '002743', + Make: 'AUDI', + Year: 2010, + DName: 'Auto Mayer e.K.Inh. Skelcim Imeri', + Model: 'A5', + Price: 13980, + Mileage: 121015, + DealerId: '972258cb-132f-62a9-bd31-e02f9f70fa7b', + Derivative: 'A5 Cabrio 2.0 TDI DPF Cabrio', + }, + { + Vrm: '205536_3895', + Make: 'AUDI', + Year: 2011, + DName: 'Autohaus Löbau GmbH', + Model: 'A5', + Price: 12790, + Mileage: 89236, + DealerId: '9e697219-293e-63a0-884a-2d03f77bbbef', + Derivative: 'A5 2.0 TDI Sportback DPF Coupe', + }, + { + Vrm: '116265', + Make: 'AUDI', + Year: 2016, + DName: 'Elspass Autoland GmbH & Co. KG', + Model: 'A1', + Price: 14690, + Mileage: 42800, + DealerId: '00c1bf3f-b19d-6198-a509-c7f2ff73c29a', + Derivative: 'A1 1.0 TFSI ultra Limousine', + }, + { + Vrm: '010159', + Make: 'AUDI', + Year: 2013, + DName: 'Hermann Meyer GmbH & Co. KG', + Model: 'A1', + Price: 9950, + Mileage: 93996, + DealerId: '35d4fe7e-81a0-6e99-a575-6f62bffb8900', + Derivative: 'A1 1.4 TFSI Ambition Limousine', + }, + { + Vrm: '010178', + Make: 'AUDI', + Year: 2016, + DName: 'Hermann Meyer GmbH & Co. KG', + Model: 'A1', + Price: 12950, + Mileage: 69454, + DealerId: '35d4fe7e-81a0-6e99-a575-6f62bffb8900', + Derivative: 'A1 1.4 TFSI Sportback S tronic Attraction Limousine', + }, + ], + page: 0, + merge: { + nbHitsMax: 1000, + nbHitslimit: 1000, + nbSearchers: 2, + nbHitsProcessed: 10, + personalization: { + impact: 100, + enabled: true, + profile: { + time: 0, + facets: {}, + taskID: 0, + }, + percentile: 0, + nbPersoScanned: 0, + nbPersoSkipped: 0, + nbPersoReranked: 0, + nbPersoReturned: 0, + nbPersoSelected: 0, + nbRelevanceBuckets: 8, + }, + lastHitToDisplay: 10, + nbHitsNumberingEnd: 10, + }, + nbHits: 13, + nbPages: 2, + queryID: 'c5a176f8493236fcbfe69c3298d41659', + indexUsed: 'Germany_prod_stock_Finance_0', + serverUsed: 'd85-de-1.algolia.net', + hitsPerPage: 10, + parsedQuery: 'audi a5', + timeoutHits: false, + appliedRules: [ + { + objectID: '1539345377254', + }, + { + objectID: '1548767806494', + }, + ], + facets_stats: { + Doors: { + avg: 3, + max: 5, + min: 2, + sum: 48, + }, + Price: { + avg: 13210, + max: 15980, + min: 9950, + sum: 171730, + }, + VrmYear: { + avg: 2013, + max: 2017, + min: 2009, + sum: 26171, + }, + }, + timeoutCounts: false, + }, + }, + userId: 'test_user_id', + timestamp: '2019-09-01T15:46:51.693Z', + type: 'track', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/event', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + eventUniqueId: 'test_user_id', + eventName: 'spin_result', + properties: { + 'searchResponse.hits.Vrm': + '026067,4527,10007,031983,042012,002743,205536_3895,116265,010159,010178', + 'searchResponse.hits.Make': 'AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI', + 'searchResponse.hits.Year': '2010,2009,2017,2012,2015,2010,2011,2016,2013,2016', + 'searchResponse.hits.DName': + 'PISCA PROFESSIONAL INDUSTRIAL SOLUTION Consulting & Acquisition GmbH,Stephan Walters - Autohaus Walters,ps kfz-vertrieb GmbH,Hüseyin Zan Fahrzeughandel "Autopark Grendelmatt",Hüseyin Zan Fahrzeughandel "Autopark Grendelmatt",Auto Mayer e.K.Inh. Skelcim Imeri,Autohaus Löbau GmbH,Elspass Autoland GmbH & Co. KG,Hermann Meyer GmbH & Co. KG,Hermann Meyer GmbH & Co. KG', + 'searchResponse.hits.Model': 'A5,A5,A5,A5,A5,A5,A5,A1,A1,A1', + 'searchResponse.hits.Price': + '13990,14450,14580,10980,15980,13980,12790,14690,9950,12950', + 'searchResponse.hits.Mileage': + '163000,99990,151500,197335,144205,121015,89236,42800,93996,69454', + 'searchResponse.hits.DealerId': + '1f338e5b-740f-6a38-bee1-ecff97acda69,68c7b5ae-8cf0-6595-9fd2-8644b9682838,a107e9a8-ac3c-6790-bb84-052dd5eed5e8,8a574713-2fbe-6f0c-b1a8-39ba7ee683fc,8a574713-2fbe-6f0c-b1a8-39ba7ee683fc,972258cb-132f-62a9-bd31-e02f9f70fa7b,9e697219-293e-63a0-884a-2d03f77bbbef,00c1bf3f-b19d-6198-a509-c7f2ff73c29a,35d4fe7e-81a0-6e99-a575-6f62bffb8900,35d4fe7e-81a0-6e99-a575-6f62bffb8900', + 'searchResponse.hits.Derivative': + 'A5 Cabrio 1.8 TFSI Cabrio,A5 Cabrio 40 TFSI S tronic S line Cabrio,A5 Sportback 2.0 TDI ultra S tronic Coupe,A5 2.0 TDI Sportback DPF multitronic Coupe,A5 Coupe 35 TDI S tronic S line Coupe,A5 Cabrio 2.0 TDI DPF Cabrio,A5 2.0 TDI Sportback DPF Coupe,A1 1.0 TFSI ultra Limousine,A1 1.4 TFSI Ambition Limousine,A1 1.4 TFSI Sportback S tronic Attraction Limousine', + 'searchResponse.page': 0, + 'searchResponse.merge.nbHitsMax': 1000, + 'searchResponse.merge.nbHitslimit': 1000, + 'searchResponse.merge.nbSearchers': 2, + 'searchResponse.merge.nbHitsProcessed': 10, + 'searchResponse.merge.personalization.impact': 100, + 'searchResponse.merge.personalization.enabled': true, + 'searchResponse.merge.personalization.profile.time': 0, + 'searchResponse.merge.personalization.profile.taskID': 0, + 'searchResponse.merge.personalization.percentile': 0, + 'searchResponse.merge.personalization.nbPersoScanned': 0, + 'searchResponse.merge.personalization.nbPersoSkipped': 0, + 'searchResponse.merge.personalization.nbPersoReranked': 0, + 'searchResponse.merge.personalization.nbPersoReturned': 0, + 'searchResponse.merge.personalization.nbPersoSelected': 0, + 'searchResponse.merge.personalization.nbRelevanceBuckets': 8, + 'searchResponse.merge.lastHitToDisplay': 10, + 'searchResponse.merge.nbHitsNumberingEnd': 10, + 'searchResponse.nbHits': 13, + 'searchResponse.nbPages': 2, + 'searchResponse.queryID': 'c5a176f8493236fcbfe69c3298d41659', + 'searchResponse.indexUsed': 'Germany_prod_stock_Finance_0', + 'searchResponse.serverUsed': 'd85-de-1.algolia.net', + 'searchResponse.hitsPerPage': 10, + 'searchResponse.parsedQuery': 'audi a5', + 'searchResponse.timeoutHits': false, + 'searchResponse.appliedRules.objectID': '1539345377254,1548767806494', + 'searchResponse.facets_stats.Doors.avg': 3, + 'searchResponse.facets_stats.Doors.max': 5, + 'searchResponse.facets_stats.Doors.min': 2, + 'searchResponse.facets_stats.Doors.sum': 48, + 'searchResponse.facets_stats.Price.avg': 13210, + 'searchResponse.facets_stats.Price.max': 15980, + 'searchResponse.facets_stats.Price.min': 9950, + 'searchResponse.facets_stats.Price.sum': 171730, + 'searchResponse.facets_stats.VrmYear.avg': 2013, + 'searchResponse.facets_stats.VrmYear.max': 2017, + 'searchResponse.facets_stats.VrmYear.min': 2009, + 'searchResponse.facets_stats.VrmYear.sum': 26171, + 'searchResponse.timeoutCounts': false, + }, + eventTime: 1567352811693, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'test_user_id', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1afmecIpsJm7D72aRTksxyODrwR', + Name: 'Segment', + DestinationDefinition: { + ID: '1afjjahf0X5lSyNze7Xh7aqJs11', + Name: 'SEGMENT', + DisplayName: 'Segment', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + writeKey: 'abcdefghijklmnopqrstuvwxyz', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.2', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.2', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index4.html', + }, + screen: { + density: 2, + }, + traits: { + age: 23, + email: 'testmp@email.com', + firstname: 'Test Transformer', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36', + }, + event: 'JuhuSearchResults', + integrations: { + All: true, + }, + messageId: '584fde02-901a-4964-a4a0-4078b999d5b2', + originalTimestamp: '2020-04-17T14:55:31.372Z', + traits: { + searchResponse: { + hits: [ + { + Vrm: '026067', + Make: 'AUDI', + Year: 2010, + DName: 'PISCA PROFESSIONAL INDUSTRIAL SOLUTION Consulting & Acquisition GmbH', + Model: 'A5', + Price: 13990, + Mileage: 163000, + DealerId: '1f338e5b-740f-6a38-bee1-ecff97acda69', + Derivative: 'A5 Cabrio 1.8 TFSI Cabrio', + }, + { + Vrm: '4527', + Make: 'AUDI', + Year: 2009, + DName: 'Stephan Walters - Autohaus Walters', + Model: 'A5', + Price: 14450, + Mileage: 99990, + DealerId: '68c7b5ae-8cf0-6595-9fd2-8644b9682838', + Derivative: 'A5 Cabrio 40 TFSI S tronic S line Cabrio', + }, + { + Vrm: '10007', + Make: 'AUDI', + Year: 2017, + DName: 'ps kfz-vertrieb GmbH', + Model: 'A5', + Price: 14580, + Mileage: 151500, + DealerId: 'a107e9a8-ac3c-6790-bb84-052dd5eed5e8', + Derivative: 'A5 Sportback 2.0 TDI ultra S tronic Coupe', + }, + { + Vrm: '031983', + Make: 'AUDI', + Year: 2012, + DName: 'Hüseyin Zan Fahrzeughandel "Autopark Grendelmatt"', + Model: 'A5', + Price: 10980, + Mileage: 197335, + DealerId: '8a574713-2fbe-6f0c-b1a8-39ba7ee683fc', + Derivative: 'A5 2.0 TDI Sportback DPF multitronic Coupe', + }, + { + Vrm: '042012', + Make: 'AUDI', + Year: 2015, + DName: 'Hüseyin Zan Fahrzeughandel "Autopark Grendelmatt"', + Model: 'A5', + Price: 15980, + Mileage: 144205, + DealerId: '8a574713-2fbe-6f0c-b1a8-39ba7ee683fc', + Derivative: 'A5 Coupe 35 TDI S tronic S line Coupe', + }, + { + Vrm: '002743', + Make: 'AUDI', + Year: 2010, + DName: 'Auto Mayer e.K.Inh. Skelcim Imeri', + Model: 'A5', + Price: 13980, + Mileage: 121015, + DealerId: '972258cb-132f-62a9-bd31-e02f9f70fa7b', + Derivative: 'A5 Cabrio 2.0 TDI DPF Cabrio', + }, + { + Vrm: '205536_3895', + Make: 'AUDI', + Year: 2011, + DName: 'Autohaus Löbau GmbH', + Model: 'A5', + Price: 12790, + Mileage: 89236, + DealerId: '9e697219-293e-63a0-884a-2d03f77bbbef', + Derivative: 'A5 2.0 TDI Sportback DPF Coupe', + }, + { + Vrm: '116265', + Make: 'AUDI', + Year: 2016, + DName: 'Elspass Autoland GmbH & Co. KG', + Model: 'A1', + Price: 14690, + Mileage: 42800, + DealerId: '00c1bf3f-b19d-6198-a509-c7f2ff73c29a', + Derivative: 'A1 1.0 TFSI ultra Limousine', + }, + { + Vrm: '010159', + Make: 'AUDI', + Year: 2013, + DName: 'Hermann Meyer GmbH & Co. KG', + Model: 'A1', + Price: 9950, + Mileage: 93996, + DealerId: '35d4fe7e-81a0-6e99-a575-6f62bffb8900', + Derivative: 'A1 1.4 TFSI Ambition Limousine', + }, + { + Vrm: '010178', + Make: 'AUDI', + Year: 2016, + DName: 'Hermann Meyer GmbH & Co. KG', + Model: 'A1', + Price: 12950, + Mileage: 69454, + DealerId: '35d4fe7e-81a0-6e99-a575-6f62bffb8900', + Derivative: 'A1 1.4 TFSI Sportback S tronic Attraction Limousine', + }, + ], + page: 0, + merge: { + nbHitsMax: 1000, + nbHitslimit: 1000, + nbSearchers: 2, + nbHitsProcessed: 10, + personalization: { + impact: 100, + enabled: true, + profile: { + time: 0, + facets: {}, + taskID: 0, + }, + percentile: 0, + nbPersoScanned: 0, + nbPersoSkipped: 0, + nbPersoReranked: 0, + nbPersoReturned: 0, + nbPersoSelected: 0, + nbRelevanceBuckets: 8, + }, + lastHitToDisplay: 10, + nbHitsNumberingEnd: 10, + }, + nbHits: 13, + nbPages: 2, + queryID: 'c5a176f8493236fcbfe69c3298d41659', + indexUsed: 'Germany_prod_stock_Finance_0', + serverUsed: 'd85-de-1.algolia.net', + hitsPerPage: 10, + parsedQuery: 'audi a5', + timeoutHits: false, + appliedRules: [ + { + objectID: '1539345377254', + }, + { + objectID: '1548767806494', + }, + ], + facets_stats: { + Doors: { + avg: 3, + max: 5, + min: 2, + sum: 48, + }, + Price: { + avg: 13210, + max: 15980, + min: 9950, + sum: 171730, + }, + VrmYear: { + avg: 2013, + max: 2017, + min: 2009, + sum: 26171, + }, + }, + timeoutCounts: false, + }, + }, + receivedAt: '2020-04-17T20:25:31.401+05:30', + request_ip: '[::1]:57365', + sentAt: '2020-04-17T14:55:31.372Z', + timestamp: '2020-04-17T20:25:31.401+05:30', + name: 'test page', + type: 'identify', + userId: 'user12345', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/identify', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + uniqueId: 'user12345', + properties: { + 'searchResponse.hits.Vrm': + '026067,4527,10007,031983,042012,002743,205536_3895,116265,010159,010178', + 'searchResponse.hits.Make': 'AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI', + 'searchResponse.hits.Year': '2010,2009,2017,2012,2015,2010,2011,2016,2013,2016', + 'searchResponse.hits.DName': + 'PISCA PROFESSIONAL INDUSTRIAL SOLUTION Consulting & Acquisition GmbH,Stephan Walters - Autohaus Walters,ps kfz-vertrieb GmbH,Hüseyin Zan Fahrzeughandel "Autopark Grendelmatt",Hüseyin Zan Fahrzeughandel "Autopark Grendelmatt",Auto Mayer e.K.Inh. Skelcim Imeri,Autohaus Löbau GmbH,Elspass Autoland GmbH & Co. KG,Hermann Meyer GmbH & Co. KG,Hermann Meyer GmbH & Co. KG', + 'searchResponse.hits.Model': 'A5,A5,A5,A5,A5,A5,A5,A1,A1,A1', + 'searchResponse.hits.Price': + '13990,14450,14580,10980,15980,13980,12790,14690,9950,12950', + 'searchResponse.hits.Mileage': + '163000,99990,151500,197335,144205,121015,89236,42800,93996,69454', + 'searchResponse.hits.DealerId': + '1f338e5b-740f-6a38-bee1-ecff97acda69,68c7b5ae-8cf0-6595-9fd2-8644b9682838,a107e9a8-ac3c-6790-bb84-052dd5eed5e8,8a574713-2fbe-6f0c-b1a8-39ba7ee683fc,8a574713-2fbe-6f0c-b1a8-39ba7ee683fc,972258cb-132f-62a9-bd31-e02f9f70fa7b,9e697219-293e-63a0-884a-2d03f77bbbef,00c1bf3f-b19d-6198-a509-c7f2ff73c29a,35d4fe7e-81a0-6e99-a575-6f62bffb8900,35d4fe7e-81a0-6e99-a575-6f62bffb8900', + 'searchResponse.hits.Derivative': + 'A5 Cabrio 1.8 TFSI Cabrio,A5 Cabrio 40 TFSI S tronic S line Cabrio,A5 Sportback 2.0 TDI ultra S tronic Coupe,A5 2.0 TDI Sportback DPF multitronic Coupe,A5 Coupe 35 TDI S tronic S line Coupe,A5 Cabrio 2.0 TDI DPF Cabrio,A5 2.0 TDI Sportback DPF Coupe,A1 1.0 TFSI ultra Limousine,A1 1.4 TFSI Ambition Limousine,A1 1.4 TFSI Sportback S tronic Attraction Limousine', + 'searchResponse.page': 0, + 'searchResponse.merge.nbHitsMax': 1000, + 'searchResponse.merge.nbHitslimit': 1000, + 'searchResponse.merge.nbSearchers': 2, + 'searchResponse.merge.nbHitsProcessed': 10, + 'searchResponse.merge.personalization.impact': 100, + 'searchResponse.merge.personalization.enabled': true, + 'searchResponse.merge.personalization.profile.time': 0, + 'searchResponse.merge.personalization.profile.taskID': 0, + 'searchResponse.merge.personalization.percentile': 0, + 'searchResponse.merge.personalization.nbPersoScanned': 0, + 'searchResponse.merge.personalization.nbPersoSkipped': 0, + 'searchResponse.merge.personalization.nbPersoReranked': 0, + 'searchResponse.merge.personalization.nbPersoReturned': 0, + 'searchResponse.merge.personalization.nbPersoSelected': 0, + 'searchResponse.merge.personalization.nbRelevanceBuckets': 8, + 'searchResponse.merge.lastHitToDisplay': 10, + 'searchResponse.merge.nbHitsNumberingEnd': 10, + 'searchResponse.nbHits': 13, + 'searchResponse.nbPages': 2, + 'searchResponse.queryID': 'c5a176f8493236fcbfe69c3298d41659', + 'searchResponse.indexUsed': 'Germany_prod_stock_Finance_0', + 'searchResponse.serverUsed': 'd85-de-1.algolia.net', + 'searchResponse.hitsPerPage': 10, + 'searchResponse.parsedQuery': 'audi a5', + 'searchResponse.timeoutHits': false, + 'searchResponse.appliedRules.objectID': '1539345377254,1548767806494', + 'searchResponse.facets_stats.Doors.avg': 3, + 'searchResponse.facets_stats.Doors.max': 5, + 'searchResponse.facets_stats.Doors.min': 2, + 'searchResponse.facets_stats.Doors.sum': 48, + 'searchResponse.facets_stats.Price.avg': 13210, + 'searchResponse.facets_stats.Price.max': 15980, + 'searchResponse.facets_stats.Price.min': 9950, + 'searchResponse.facets_stats.Price.sum': 171730, + 'searchResponse.facets_stats.VrmYear.avg': 2013, + 'searchResponse.facets_stats.VrmYear.max': 2017, + 'searchResponse.facets_stats.VrmYear.min': 2009, + 'searchResponse.facets_stats.VrmYear.sum': 26171, + 'searchResponse.timeoutCounts': false, + browser: 'Chrome', + browser_version: '80.0.3987.163', + device: 'Macintosh', + os: 'Mac OS', + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'user12345', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/alias', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + previousId: 'ac7722c2-ccb6-4ae2-baf6-1effe861f4cd', + newId: 'user12345', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'user12345', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: 'abc', + title: 'Test Page', + url: 'http://localhost/tests/html/index4.html', + }, + }, + request_ip: '1.1.1.1', + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/event', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + eventUniqueId: '12345', + eventName: 'Page View ApplicationLoaded', + properties: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + browser: 'Chrome', + browser_version: '77.0.3865.90', + device: 'Macintosh', + os: 'Mac OS', + }, + eventTime: 1571051718299, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '12345', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: 'abc', + title: 'Test Page', + url: 'http://localhost/tests/html/index4.html', + }, + }, + request_ip: '1.1.1.1', + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/event', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + eventUniqueId: '12345', + eventName: 'Page View ApplicationLoaded', + properties: { + path: '/tests/html/index4.html', + referrer: '', + search: 'abc', + title: 'Test Page', + url: 'http://localhost/tests/html/index4.html', + browser: 'Chrome', + browser_version: '77.0.3865.90', + device: 'Macintosh', + os: 'Mac OS', + }, + eventTime: 1571051718299, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '12345', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 16', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: 'abc', + title: 'Test Page', + url: 'http://localhost/tests/html/index4.html', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + versionSessionCount: 2, + win_amount: 0, + }, + userId: 'test_user_id', + timestamp: '2019-09-01T15:46:51.693Z', + type: 'track', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/event', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + eventUniqueId: 'test_user_id', + eventName: 'spin_result', + properties: { + path: '/tests/html/index4.html', + referrer: '', + search: 'abc', + title: 'Test Page', + url: 'http://localhost/tests/html/index4.html', + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + versionSessionCount: 2, + win_amount: 0, + }, + eventTime: 1567352811693, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'test_user_id', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 17', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: 'abc', + title: 'Test Page', + url: 'http://localhost/tests/html/index4.html', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + searchResponse: { + hits: [ + { + Vrm: '026067', + Make: 'AUDI', + Year: 2010, + DName: 'PISCA PROFESSIONAL INDUSTRIAL SOLUTION Consulting & Acquisition GmbH', + Model: 'A5', + Price: 13990, + Mileage: 163000, + DealerId: '1f338e5b-740f-6a38-bee1-ecff97acda69', + Derivative: 'A5 Cabrio 1.8 TFSI Cabrio', + }, + { + Vrm: '4527', + Make: 'AUDI', + Year: 2009, + DName: 'Stephan Walters - Autohaus Walters', + Model: 'A5', + Price: 14450, + Mileage: 99990, + DealerId: '68c7b5ae-8cf0-6595-9fd2-8644b9682838', + Derivative: 'A5 Cabrio 40 TFSI S tronic S line Cabrio', + }, + { + Vrm: '10007', + Make: 'AUDI', + Year: 2017, + DName: 'ps kfz-vertrieb GmbH', + Model: 'A5', + Price: 14580, + Mileage: 151500, + DealerId: 'a107e9a8-ac3c-6790-bb84-052dd5eed5e8', + Derivative: 'A5 Sportback 2.0 TDI ultra S tronic Coupe', + }, + { + Vrm: '031983', + Make: 'AUDI', + Year: 2012, + DName: 'Hüseyin Zan Fahrzeughandel "Autopark Grendelmatt"', + Model: 'A5', + Price: 10980, + Mileage: 197335, + DealerId: '8a574713-2fbe-6f0c-b1a8-39ba7ee683fc', + Derivative: 'A5 2.0 TDI Sportback DPF multitronic Coupe', + }, + { + Vrm: '042012', + Make: 'AUDI', + Year: 2015, + DName: 'Hüseyin Zan Fahrzeughandel "Autopark Grendelmatt"', + Model: 'A5', + Price: 15980, + Mileage: 144205, + DealerId: '8a574713-2fbe-6f0c-b1a8-39ba7ee683fc', + Derivative: 'A5 Coupe 35 TDI S tronic S line Coupe', + }, + { + Vrm: '002743', + Make: 'AUDI', + Year: 2010, + DName: 'Auto Mayer e.K.Inh. Skelcim Imeri', + Model: 'A5', + Price: 13980, + Mileage: 121015, + DealerId: '972258cb-132f-62a9-bd31-e02f9f70fa7b', + Derivative: 'A5 Cabrio 2.0 TDI DPF Cabrio', + }, + { + Vrm: '205536_3895', + Make: 'AUDI', + Year: 2011, + DName: 'Autohaus Löbau GmbH', + Model: 'A5', + Price: 12790, + Mileage: 89236, + DealerId: '9e697219-293e-63a0-884a-2d03f77bbbef', + Derivative: 'A5 2.0 TDI Sportback DPF Coupe', + }, + { + Vrm: '116265', + Make: 'AUDI', + Year: 2016, + DName: 'Elspass Autoland GmbH & Co. KG', + Model: 'A1', + Price: 14690, + Mileage: 42800, + DealerId: '00c1bf3f-b19d-6198-a509-c7f2ff73c29a', + Derivative: 'A1 1.0 TFSI ultra Limousine', + }, + { + Vrm: '010159', + Make: 'AUDI', + Year: 2013, + DName: 'Hermann Meyer GmbH & Co. KG', + Model: 'A1', + Price: 9950, + Mileage: 93996, + DealerId: '35d4fe7e-81a0-6e99-a575-6f62bffb8900', + Derivative: 'A1 1.4 TFSI Ambition Limousine', + }, + { + Vrm: '010178', + Make: 'AUDI', + Year: 2016, + DName: 'Hermann Meyer GmbH & Co. KG', + Model: 'A1', + Price: 12950, + Mileage: 69454, + DealerId: '35d4fe7e-81a0-6e99-a575-6f62bffb8900', + Derivative: 'A1 1.4 TFSI Sportback S tronic Attraction Limousine', + }, + ], + page: 0, + merge: { + nbHitsMax: 1000, + nbHitslimit: 1000, + nbSearchers: 2, + nbHitsProcessed: 10, + personalization: { + impact: 100, + enabled: true, + profile: { + time: 0, + facets: {}, + taskID: 0, + }, + percentile: 0, + nbPersoScanned: 0, + nbPersoSkipped: 0, + nbPersoReranked: 0, + nbPersoReturned: 0, + nbPersoSelected: 0, + nbRelevanceBuckets: 8, + }, + lastHitToDisplay: 10, + nbHitsNumberingEnd: 10, + }, + nbHits: 13, + nbPages: 2, + queryID: 'c5a176f8493236fcbfe69c3298d41659', + indexUsed: 'Germany_prod_stock_Finance_0', + serverUsed: 'd85-de-1.algolia.net', + hitsPerPage: 10, + parsedQuery: 'audi a5', + timeoutHits: false, + appliedRules: [ + { + objectID: '1539345377254', + }, + { + objectID: '1548767806494', + }, + ], + facets_stats: { + Doors: { + avg: 3, + max: 5, + min: 2, + sum: 48, + }, + Price: { + avg: 13210, + max: 15980, + min: 9950, + sum: 171730, + }, + VrmYear: { + avg: 2013, + max: 2017, + min: 2009, + sum: 26171, + }, + }, + timeoutCounts: false, + }, + }, + userId: 'test_user_id', + timestamp: '2019-09-01T15:46:51.693Z', + type: 'track', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/event', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + eventUniqueId: 'test_user_id', + eventName: 'spin_result', + properties: { + path: '/tests/html/index4.html', + referrer: '', + search: 'abc', + title: 'Test Page', + url: 'http://localhost/tests/html/index4.html', + 'searchResponse.hits.Vrm': + '026067,4527,10007,031983,042012,002743,205536_3895,116265,010159,010178', + 'searchResponse.hits.Make': 'AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI,AUDI', + 'searchResponse.hits.Year': '2010,2009,2017,2012,2015,2010,2011,2016,2013,2016', + 'searchResponse.hits.DName': + 'PISCA PROFESSIONAL INDUSTRIAL SOLUTION Consulting & Acquisition GmbH,Stephan Walters - Autohaus Walters,ps kfz-vertrieb GmbH,Hüseyin Zan Fahrzeughandel "Autopark Grendelmatt",Hüseyin Zan Fahrzeughandel "Autopark Grendelmatt",Auto Mayer e.K.Inh. Skelcim Imeri,Autohaus Löbau GmbH,Elspass Autoland GmbH & Co. KG,Hermann Meyer GmbH & Co. KG,Hermann Meyer GmbH & Co. KG', + 'searchResponse.hits.Model': 'A5,A5,A5,A5,A5,A5,A5,A1,A1,A1', + 'searchResponse.hits.Price': + '13990,14450,14580,10980,15980,13980,12790,14690,9950,12950', + 'searchResponse.hits.Mileage': + '163000,99990,151500,197335,144205,121015,89236,42800,93996,69454', + 'searchResponse.hits.DealerId': + '1f338e5b-740f-6a38-bee1-ecff97acda69,68c7b5ae-8cf0-6595-9fd2-8644b9682838,a107e9a8-ac3c-6790-bb84-052dd5eed5e8,8a574713-2fbe-6f0c-b1a8-39ba7ee683fc,8a574713-2fbe-6f0c-b1a8-39ba7ee683fc,972258cb-132f-62a9-bd31-e02f9f70fa7b,9e697219-293e-63a0-884a-2d03f77bbbef,00c1bf3f-b19d-6198-a509-c7f2ff73c29a,35d4fe7e-81a0-6e99-a575-6f62bffb8900,35d4fe7e-81a0-6e99-a575-6f62bffb8900', + 'searchResponse.hits.Derivative': + 'A5 Cabrio 1.8 TFSI Cabrio,A5 Cabrio 40 TFSI S tronic S line Cabrio,A5 Sportback 2.0 TDI ultra S tronic Coupe,A5 2.0 TDI Sportback DPF multitronic Coupe,A5 Coupe 35 TDI S tronic S line Coupe,A5 Cabrio 2.0 TDI DPF Cabrio,A5 2.0 TDI Sportback DPF Coupe,A1 1.0 TFSI ultra Limousine,A1 1.4 TFSI Ambition Limousine,A1 1.4 TFSI Sportback S tronic Attraction Limousine', + 'searchResponse.page': 0, + 'searchResponse.merge.nbHitsMax': 1000, + 'searchResponse.merge.nbHitslimit': 1000, + 'searchResponse.merge.nbSearchers': 2, + 'searchResponse.merge.nbHitsProcessed': 10, + 'searchResponse.merge.personalization.impact': 100, + 'searchResponse.merge.personalization.enabled': true, + 'searchResponse.merge.personalization.profile.time': 0, + 'searchResponse.merge.personalization.profile.taskID': 0, + 'searchResponse.merge.personalization.percentile': 0, + 'searchResponse.merge.personalization.nbPersoScanned': 0, + 'searchResponse.merge.personalization.nbPersoSkipped': 0, + 'searchResponse.merge.personalization.nbPersoReranked': 0, + 'searchResponse.merge.personalization.nbPersoReturned': 0, + 'searchResponse.merge.personalization.nbPersoSelected': 0, + 'searchResponse.merge.personalization.nbRelevanceBuckets': 8, + 'searchResponse.merge.lastHitToDisplay': 10, + 'searchResponse.merge.nbHitsNumberingEnd': 10, + 'searchResponse.nbHits': 13, + 'searchResponse.nbPages': 2, + 'searchResponse.queryID': 'c5a176f8493236fcbfe69c3298d41659', + 'searchResponse.indexUsed': 'Germany_prod_stock_Finance_0', + 'searchResponse.serverUsed': 'd85-de-1.algolia.net', + 'searchResponse.hitsPerPage': 10, + 'searchResponse.parsedQuery': 'audi a5', + 'searchResponse.timeoutHits': false, + 'searchResponse.appliedRules.objectID': '1539345377254,1548767806494', + 'searchResponse.facets_stats.Doors.avg': 3, + 'searchResponse.facets_stats.Doors.max': 5, + 'searchResponse.facets_stats.Doors.min': 2, + 'searchResponse.facets_stats.Doors.sum': 48, + 'searchResponse.facets_stats.Price.avg': 13210, + 'searchResponse.facets_stats.Price.max': 15980, + 'searchResponse.facets_stats.Price.min': 9950, + 'searchResponse.facets_stats.Price.sum': 171730, + 'searchResponse.facets_stats.VrmYear.avg': 2013, + 'searchResponse.facets_stats.VrmYear.max': 2017, + 'searchResponse.facets_stats.VrmYear.min': 2009, + 'searchResponse.facets_stats.VrmYear.sum': 26171, + 'searchResponse.timeoutCounts': false, + }, + eventTime: 1567352811693, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'test_user_id', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 18', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + page: { + path: '/tests/html/index4.html', + referrer: '', + search: 'abc', + title: 'Test Page', + url: 'http://localhost/tests/html/index4.html', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + searchResponse: { + primitiveArr1: ['abc', 'def'], + primitiveArr2: [1, 2, 3], + arrOfArr: [ + ['abc', 'def'], + [1, 2, 3], + ], + emptyArr: [], + complexArr1: [ + { + crr1K1: { + discardK1: 'discardV1', + }, + }, + ], + }, + }, + userId: 'test_user_id', + timestamp: '2019-09-01T15:46:51.693Z', + type: 'track', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/event', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + eventUniqueId: 'test_user_id', + eventName: 'spin_result', + properties: { + path: '/tests/html/index4.html', + referrer: '', + search: 'abc', + title: 'Test Page', + url: 'http://localhost/tests/html/index4.html', + 'searchResponse.primitiveArr1': 'abc,def', + 'searchResponse.primitiveArr2': '1,2,3', + }, + eventTime: 1567352811693, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'test_user_id', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 19', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + campaign: {}, + }, + event: 'spin_result', + integrations: { + AM: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + versionSessionCount: 2, + win_amount: 0, + }, + userId: 'test_user_id', + timestamp: '2019-09-01T15:46:51.693Z', + type: 'track', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/event', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + eventUniqueId: 'test_user_id', + eventName: 'spin_result', + properties: { + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + versionSessionCount: 2, + win_amount: 0, + }, + eventTime: 1567352811693, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'test_user_id', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'indicative', + description: 'Test 20', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + message: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSPonIAEmulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + address: { + city: 'kolkata', + country: 'India', + }, + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + event: 'Product Clicked', + integrations: { + All: true, + }, + messageId: '1590431830915-73bed370-5889-436d-9a9e-0c0e0c809d06', + properties: { + revenue: '30', + currency: 'USD', + quantity: '5', + test_key_2: { + test_child_key_1: 'test_child_value_1', + }, + price: '58.0', + }, + originalTimestamp: '2020-05-25T18:37:10.917Z', + type: 'track', + userId: 'sample_user_id', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/event', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + eventUniqueId: 'sample_user_id', + eventName: 'Product Clicked', + properties: { + revenue: '30', + currency: 'USD', + quantity: '5', + 'test_key_2.test_child_key_1': 'test_child_value_1', + price: '58.0', + device: 'Android 9', + os: 'Android', + }, + eventTime: 1590431830917, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'sample_user_id', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/indicative/router/data.ts b/test/integrations/destinations/indicative/router/data.ts new file mode 100644 index 00000000000..037d5d5c3dd --- /dev/null +++ b/test/integrations/destinations/indicative/router/data.ts @@ -0,0 +1,314 @@ +export const data = [ + { + name: 'fb', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + metadata: { + jobId: 2, + }, + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + AM: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + versionSessionCount: 2, + win_amount: 0, + }, + userId: 'test_user_id', + timestamp: '2019-09-01T15:46:51.693Z', + type: 'track', + }, + }, + { + destination: { + Config: { + apiKey: 'abcde', + }, + }, + metadata: { + jobId: 2, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + userId: '123456', + type: 'identify', + traits: { + anonymousId: 'anon_id', + email: 'sayan@gmail.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + }, + ], + destType: 'indicative', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/event', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + eventUniqueId: 'test_user_id', + eventName: 'spin_result', + properties: { + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + versionSessionCount: 2, + win_amount: 0, + }, + eventTime: 1567352811693, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'test_user_id', + }, + ], + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: 'abcde', + }, + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/identify', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + uniqueId: '123456', + properties: { + email: 'sayan@gmail.com', + 'address.city': 'kolkata', + 'address.country': 'India', + 'address.postalCode': 712136, + 'address.state': 'WB', + 'address.street': '', + browser: 'Chrome', + browser_version: '77.0.3865.90', + device: 'Macintosh', + os: 'Mac OS', + }, + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '123456', + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.indicative.com/service/alias', + headers: { + 'Indicative-Client': 'RudderStack', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + previousId: 'anon_id', + newId: '123456', + apiKey: 'abcde', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '123456', + }, + ], + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: 'abcde', + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/intercom/dataDelivery/data.ts b/test/integrations/destinations/intercom/dataDelivery/data.ts new file mode 100644 index 00000000000..23bcdc6af24 --- /dev/null +++ b/test/integrations/destinations/intercom/dataDelivery/data.ts @@ -0,0 +1,90 @@ +export const data = [ + { + "name": "intercom", + "description": "Test 0", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.intercom.io/users/test1", + "headers": { + "Content-Type": "application/json", + "Authorization": "Bearer intercomApiKey", + "Accept": "application/json", + "Intercom-Version": "1.4" + }, + "params": {}, + "body": { + "JSON": { + "email": "test_1@test.com", + "phone": "9876543210", + "name": "Test Name", + "signed_up_at": 1601493060, + "last_seen_user_agent": "unknown", + "update_last_request_at": true, + "user_id": "test_user_id_1", + "custom_attributes": { + "anonymousId": "58b21c2d-f8d5-4410-a2d0-b268a26b7e33", + "key1": "value1", + "address.city": "Kolkata", + "address.state": "West Bengal", + "originalArray[0].nested_field": "nested value", + "originalArray[0].tags[0]": "tag_1", + "originalArray[0].tags[1]": "tag_2", + "originalArray[0].tags[2]": "tag_3", + "originalArray[1].nested_field": "nested value", + "originalArray[1].tags[0]": "tag_1", + "originalArray[2].nested_field": "nested value" + } + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "58b21c2d-f8d5-4410-a2d0-b268a26b7e33" + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 500, + "body": { + "output": { + "status": 500, + "message": "[Intercom Response Handler] Request failed for destination intercom with status: 408", + "destinationResponse": { + "response": { + "type": "error.list", + "request_id": "000on04msi4jpk7d3u60", + "errors": [ + { + "code": "Request Timeout", + "message": "The server would not wait any longer for the client" + } + ] + }, + "status": 408 + }, + "statTags": { + "destType": "INTERCOM", + "errorCategory": "network", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "errorType": "retryable", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination" + } + } + } + } + } + } +] \ No newline at end of file diff --git a/test/integrations/destinations/intercom/deleteUsers/data.ts b/test/integrations/destinations/intercom/deleteUsers/data.ts new file mode 100644 index 00000000000..a45af0a98f4 --- /dev/null +++ b/test/integrations/destinations/intercom/deleteUsers/data.ts @@ -0,0 +1,180 @@ +export const data = [ + { + name: 'intercom', + description: 'Test 0', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'INTERCOM', + userAttributes: [ + { + userId: '1', + }, + { + userId: '12', + }, + ], + config: { + apiKey: 'API_KEY', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Test 1', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'INTERCOM', + userAttributes: [ + { + userId: '7', + }, + { + userId: '9', + }, + ], + config: { + apiKey: 'API_KEY', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Test 2', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'INTERCOM', + userAttributes: [ + { + userId: '6188c2c5f47e464b4abf3235', + }, + { + userId: 'user_sdk2', + }, + ], + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'Config for deletion not present', + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Test 3', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'INTERCOM', + userAttributes: [ + { + userId: '6188c2c5f47e464b4abf3235', + }, + { + userId: 'user_sdk2', + }, + ], + config: {}, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'api key for deletion not present', + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Test 4', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'INTERCOM', + userAttributes: [{}], + config: { + apiKey: 'a=', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/intercom/network.ts b/test/integrations/destinations/intercom/network.ts new file mode 100644 index 00000000000..e3bba3f2601 --- /dev/null +++ b/test/integrations/destinations/intercom/network.ts @@ -0,0 +1,145 @@ +const deleteNwData = [ + { + httpReq: { + method: 'post', + url: 'https://api.intercom.io/user_delete_requests', + data: { + intercom_user_id: '1', + }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer API_KEY', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + type: 'error.list', + request_id: '0022e6v5qc7m04jeu5pg', + errors: [ + { + code: 'unauthorized', + message: 'Access Token Invalid', + }, + ], + }, + status: 400, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://api.intercom.io/user_delete_requests', + data: { + intercom_user_id: '12', + }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer API_KEY', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + status: 200, + statusText: 'ok', + data: { + id: 12, + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://api.intercom.io/user_delete_requests', + data: { + intercom_user_id: '7', + }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer API_KEY', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + status: 200, + statusText: 'ok', + data: { + id: 7, + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://api.intercom.io/user_delete_requests', + data: { + intercom_user_id: '9', + }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer API_KEY', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + status: 200, + statusText: 'ok', + data: { + id: 9, + }, + }, + }, +]; +const deliveryCallsData = [ + { + httpReq: { + url: 'https://api.intercom.io/users/test1', + data: { + email: 'test_1@test.com', + phone: '9876543210', + name: 'Test Name', + signed_up_at: 1601493060, + last_seen_user_agent: 'unknown', + update_last_request_at: true, + user_id: 'test_user_id_1', + custom_attributes: { + anonymousId: '58b21c2d-f8d5-4410-a2d0-b268a26b7e33', + key1: 'value1', + 'address.city': 'Kolkata', + 'address.state': 'West Bengal', + 'originalArray[0].nested_field': 'nested value', + 'originalArray[0].tags[0]': 'tag_1', + 'originalArray[0].tags[1]': 'tag_2', + 'originalArray[0].tags[2]': 'tag_3', + 'originalArray[1].nested_field': 'nested value', + 'originalArray[1].tags[0]': 'tag_1', + 'originalArray[2].nested_field': 'nested value', + }, + }, + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer intercomApiKey', + Accept: 'application/json', + 'Intercom-Version': '1.4', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + type: 'error.list', + request_id: '000on04msi4jpk7d3u60', + errors: [ + { + code: 'Request Timeout', + message: 'The server would not wait any longer for the client', + }, + ], + }, + status: 408, + }, + }, +]; +export const networkCallsData = [...deleteNwData, ...deliveryCallsData]; + diff --git a/test/integrations/destinations/iterable/processor/data.ts b/test/integrations/destinations/iterable/processor/data.ts new file mode 100644 index 00000000000..19b370b5130 --- /dev/null +++ b/test/integrations/destinations/iterable/processor/data.ts @@ -0,0 +1,3784 @@ +export const data = [ + { + name: 'iterable', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + sentAt: '2020-08-28T16:26:16.473Z', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + _metadata: { + nodeVersion: '10.22.0', + }, + messageId: + 'node-6f62b91e789a636929ca38aed01c5f6e-103c720d-81bd-4742-98d6-d45a65aed23e', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: false, + trackCategorisedPages: true, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Invalid page call', + statTags: { + destType: 'ITERABLE', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + sentAt: '2020-08-28T16:26:06.466Z', + traits: { + city: 'Bangalore', + name: 'manashi', + email: 'manashi@website.com', + country: 'India', + }, + context: { + traits: { + city: 'Bangalore', + name: 'manashi', + email: 'manashi@website.com', + country: 'India', + preferUserId: false, + }, + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + _metadata: { + nodeVersion: '10.22.0', + }, + messageId: + 'node-cc3ef811f686139ee527b806ee0129ef-163a3a88-266f-447e-8cce-34a8f42f8dcd', + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.462Z', + }, + destination: { + Config: { + preferUserId: false, + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + email: 'manashi@website.com', + userId: 'abcdeeeeeeeexxxx102', + dataFields: { + city: 'Bangalore', + name: 'manashi', + email: 'manashi@website.com', + country: 'India', + }, + preferUserId: false, + mergeNestedObjects: true, + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + api_key: '62d12498c37c4fd8a1a546c2d35c2f60', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.iterable.com/api/users/update', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Email Opened', + sentAt: '2020-08-28T16:26:16.473Z', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + _metadata: { + nodeVersion: '10.22.0', + }, + messageId: + 'node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453', + properties: { + subject: 'resume validate', + sendtime: '2020-01-01', + sendlocation: 'akashdeep@gmail.com', + }, + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + userId: 'abcdeeeeeeeexxxx102', + createdAt: 1598631966468, + eventName: 'Email Opened', + dataFields: { + subject: 'resume validate', + sendtime: '2020-01-01', + sendlocation: 'akashdeep@gmail.com', + }, + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + api_key: '62d12498c37c4fd8a1a546c2d35c2f60', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.iterable.com/api/events/track', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + category: 'test-category', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: false, + trackCategorisedPages: true, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/events/track', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + email: 'sayan@gmail.com', + dataFields: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + category: 'test-category', + }, + userId: '12345', + eventName: 'ApplicationLoaded page', + createdAt: 1571051718299, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + category: 'test-category', + campaignId: '123456', + templateId: '1213458', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: true, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/events/track', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + email: 'sayan@gmail.com', + dataFields: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + category: 'test-category', + campaignId: '123456', + templateId: '1213458', + }, + userId: '12345', + eventName: 'Loaded a Page', + createdAt: 1571051718299, + campaignId: 123456, + templateId: 1213458, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + name: 'test-name', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: false, + trackCategorisedPages: false, + trackNamedPages: true, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/events/track', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + email: 'sayan@gmail.com', + dataFields: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + name: 'test-name', + }, + userId: '12345', + eventName: 'ApplicationLoaded page', + createdAt: 1571051718299, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/events/track', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + email: 'sayan@gmail.com', + dataFields: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + }, + userId: '12345', + eventName: 'ApplicationLoaded page', + createdAt: 1571051718299, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'screen', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + category: 'test-category', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: false, + trackCategorisedPages: true, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/events/track', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + email: 'sayan@gmail.com', + dataFields: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + category: 'test-category', + }, + userId: '12345', + eventName: 'ApplicationLoaded screen', + createdAt: 1571051718299, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'screen', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + category: 'test-category', + campaignId: '123456', + templateId: '1213458', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: true, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/events/track', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + email: 'sayan@gmail.com', + dataFields: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + category: 'test-category', + campaignId: '123456', + templateId: '1213458', + }, + userId: '12345', + eventName: 'Loaded a Screen', + createdAt: 1571051718299, + campaignId: 123456, + templateId: 1213458, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'screen', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + name: 'test-name', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: false, + trackCategorisedPages: false, + trackNamedPages: true, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/events/track', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + email: 'sayan@gmail.com', + dataFields: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + name: 'test-name', + }, + userId: '12345', + eventName: 'ApplicationLoaded screen', + createdAt: 1571051718299, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'screen', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/events/track', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + email: 'sayan@gmail.com', + dataFields: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + }, + userId: '12345', + eventName: 'ApplicationLoaded screen', + createdAt: 1571051718299, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'group', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Message type group not supported', + statTags: { + destType: 'ITERABLE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + mergeNestedObjects: false, + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/users/update', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + email: 'ruchira@rudderlabs.com', + dataFields: { + email: 'ruchira@rudderlabs.com', + }, + userId: '123456', + preferUserId: true, + mergeNestedObjects: false, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + token: 'sample_push_token', + name: 'sample_device_name', + model: 'sample_device_model', + manufacturer: 'sample_device_manufacturer', + type: 'ios', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/users/update', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + email: 'ruchira@rudderlabs.com', + dataFields: { + email: 'ruchira@rudderlabs.com', + }, + userId: '123456', + preferUserId: true, + mergeNestedObjects: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + token: 'sample_push_token', + name: 'sample_device_name', + model: 'sample_device_model', + manufacturer: 'sample_device_manufacturer', + type: 'android', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/users/update', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + email: 'ruchira@rudderlabs.com', + dataFields: { + email: 'ruchira@rudderlabs.com', + }, + userId: '123456', + preferUserId: true, + mergeNestedObjects: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'product added', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + campaignId: '1', + templateId: '0', + orderId: 10000, + total: 1000, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + price: '19', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + quantity: '2', + }, + { + product_id: '507f1f77bcf86cd7994390112', + sku: '45790-322', + name: 'Monopoly: 3rd Edition2', + price: '192', + quantity: 22, + position: '12', + category: 'Cars2', + url: 'https://www.example.com/product/path2', + image_url: 'https://www.example.com/product/path.jpg2', + }, + ], + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/commerce/updateCart', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + user: { + email: 'sayan@gmail.com', + dataFields: { + email: 'sayan@gmail.com', + }, + userId: '12345', + preferUserId: true, + mergeNestedObjects: true, + }, + items: [ + { + id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + categories: ['cars'], + price: 19, + quantity: 2, + imageUrl: 'https://www.example.com/product/path.jpg', + url: 'https://www.example.com/product/path', + }, + { + id: '507f1f77bcf86cd7994390112', + sku: '45790-322', + name: 'Monopoly: 3rd Edition2', + categories: ['Cars2'], + price: 192, + quantity: 22, + imageUrl: 'https://www.example.com/product/path.jpg2', + url: 'https://www.example.com/product/path2', + }, + ], + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 16', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'order completed', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + orderId: 10000, + total: '1000', + campaignId: '123456', + templateId: '1213458', + products: [ + { + product_id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + price: '19', + position: '1', + category: 'Cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + quantity: 2, + }, + { + product_id: '507f1f77bcf86cd7994390112', + sku: '45790-322', + name: 'Monopoly: 3rd Edition2', + price: '192', + quantity: '22', + position: '12', + category: 'Cars2', + url: 'https://www.example.com/product/path2', + image_url: 'https://www.example.com/product/path.jpg2', + }, + ], + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/commerce/trackPurchase', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + dataFields: { + orderId: 10000, + total: '1000', + campaignId: '123456', + templateId: '1213458', + products: [ + { + product_id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + price: '19', + position: '1', + category: 'Cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + quantity: 2, + }, + { + product_id: '507f1f77bcf86cd7994390112', + sku: '45790-322', + name: 'Monopoly: 3rd Edition2', + price: '192', + quantity: '22', + position: '12', + category: 'Cars2', + url: 'https://www.example.com/product/path2', + image_url: 'https://www.example.com/product/path.jpg2', + }, + ], + }, + id: '10000', + createdAt: 1571051718299, + campaignId: 123456, + templateId: 1213458, + total: 1000, + user: { + email: 'sayan@gmail.com', + dataFields: { + email: 'sayan@gmail.com', + }, + userId: '12345', + preferUserId: true, + mergeNestedObjects: true, + }, + items: [ + { + id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + categories: ['Cars'], + price: 19, + quantity: 2, + imageUrl: 'https://www.example.com/product/path.jpg', + url: 'https://www.example.com/product/path', + }, + { + id: '507f1f77bcf86cd7994390112', + sku: '45790-322', + name: 'Monopoly: 3rd Edition2', + categories: ['Cars2'], + price: 192, + quantity: 22, + imageUrl: 'https://www.example.com/product/path.jpg2', + url: 'https://www.example.com/product/path2', + }, + ], + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 17', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'test track event GA3', + properties: { + email: 'ruchira@rudderlabs.com', + campaignId: '1', + templateId: '0', + category: 'test-category', + user_actual_role: 'system_admin, system_user', + user_actual_id: 12345, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/events/track', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + email: 'ruchira@rudderlabs.com', + dataFields: { + campaignId: '1', + templateId: '0', + category: 'test-category', + user_actual_role: 'system_admin, system_user', + user_actual_id: 12345, + email: 'ruchira@rudderlabs.com', + }, + userId: '12345', + eventName: 'test track event GA3', + createdAt: 1571051718300, + campaignId: 1, + templateId: 0, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 18', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/users/update', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + email: 'ruchira@rudderlabs.com', + dataFields: { + email: 'ruchira@rudderlabs.com', + }, + userId: '123456', + preferUserId: true, + mergeNestedObjects: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 19', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + id: '72e528f869711c3d', + manufacturer: 'Google', + model: 'sdk_gphone_x86', + name: 'generic_x86_arm', + token: 'some_device_token', + type: 'android', + }, + screen: { + density: 2, + }, + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'userId or email is mandatory for this request', + statTags: { + destType: 'ITERABLE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 20', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + sentAt: '2020-08-28T16:26:16.473Z', + _metadata: { + nodeVersion: '10.22.0', + }, + messageId: + 'node-6f62b91e789a636929ca38aed01c5f6e-103c720d-81bd-4742-98d6-d45a65aed23e', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: false, + trackCategorisedPages: true, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Invalid page call', + statTags: { + destType: 'ITERABLE', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 21', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Product Added', + sentAt: '2021-07-09T05:27:17.908Z', + userId: '8751', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.0.16', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'https://joybird.com/cabinets/vira-console-cabinet/', + path: '/cabinets/vira-console-cabinet/', + title: 'Vira Console Cabinet | Joybird', + search: '', + referrer: '$direct', + referring_domain: '', + }, + locale: 'en-us', + screen: { + density: 2, + }, + traits: { + email: 'jessica@jlpdesign.net', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.16', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Safari/605.1.15', + }, + rudderId: '1c42e104-97ec-4f54-a328-2379623583fe', + messageId: 'e58f6624-a1c3-48f4-a6af-610389602304', + timestamp: '2021-07-09T05:27:18.131Z', + properties: { + sku: 'JB24691400-W05', + name: 'Vira Console Cabinet', + price: 797, + cart_id: 'bd9b8dbf4ef8ee01d4206b04fe2ee6ae', + variant: 'Oak', + quantity: 1, + quickship: true, + full_price: 1328, + product_id: 10606, + non_interaction: 1, + }, + receivedAt: '2021-07-09T05:27:18.131Z', + request_ip: '162.224.233.114', + anonymousId: '8a7ff986-62d8-45ca-9a16-8895b3f9d341', + integrations: { + All: true, + }, + originalTimestamp: '2021-07-09T05:27:17.908Z', + }, + destination: { + Config: { + credentials: 'abc', + eventToTopicMap: [ + { + from: 'track', + to: 'projects/big-query-integration-poc/topics/test', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/commerce/updateCart', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + user: { + email: 'jessica@jlpdesign.net', + dataFields: { + email: 'jessica@jlpdesign.net', + }, + userId: '8751', + preferUserId: true, + mergeNestedObjects: true, + }, + items: [ + { + id: 10606, + sku: 'JB24691400-W05', + name: 'Vira Console Cabinet', + price: 797, + quantity: 1, + }, + ], + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 22', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'sources', + context: { + externalId: [ + { + id: 'lynnanderson@smith.net', + identifierType: 'email', + type: 'ITERABLE-users', + }, + ], + mappedToDestination: 'true', + sources: { + batch_id: 'f5f240d0-0acb-46e0-b043-57fb0aabbadd', + job_id: '1zAj94bEy8komdqnYtSoDp0VmGs/Syncher', + job_run_id: 'c5tar6cqgmgmcjvupdhg', + task_id: 'tt_10_rows_check', + task_run_id: 'c5tar6cqgmgmcjvupdi0', + version: 'release.v1.6.8', + }, + }, + messageId: '2f052f7c-f694-4849-a7ed-a432f7ffa0a4', + originalTimestamp: '2021-10-28T14:03:50.503Z', + receivedAt: '2021-10-28T14:03:46.567Z', + recordId: '8', + request_ip: '10.1.94.92', + rudderId: 'c0f6843e-e3d6-4946-9752-fa339fbadef2', + sentAt: '2021-10-28T14:03:50.503Z', + timestamp: '2021-10-28T14:03:46.566Z', + traits: { + administrative_unit: 'Minnesota', + am_pm: 'AM', + boolean: true, + firstname: 'Jacqueline', + pPower: 'AM', + userId: 'Jacqueline', + }, + type: 'identify', + userId: 'lynnanderson@smith.net', + }, + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_iterable', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'ITERABLE', + DisplayName: 'Iterable', + Config: { + destConfig: { + defaultConfig: [ + 'apiKey', + 'mapToSingleEvent', + 'trackAllPages', + 'trackCategorisedPages', + 'trackNamedPages', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + apiKey: '12345', + mapToSingleEvent: true, + trackAllPages: false, + trackCategorisedPages: true, + trackNamedPages: true, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/users/update', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + email: 'lynnanderson@smith.net', + dataFields: { + administrative_unit: 'Minnesota', + am_pm: 'AM', + boolean: true, + firstname: 'Jacqueline', + pPower: 'AM', + userId: 'Jacqueline', + email: 'lynnanderson@smith.net', + }, + userId: 'lynnanderson@smith.net', + preferUserId: true, + mergeNestedObjects: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 23', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'sources', + context: { + externalId: [ + { + id: 'Matthew', + identifierType: 'userId', + type: 'ITERABLE-users', + }, + ], + mappedToDestination: 'true', + sources: { + batch_id: '230d7c79-a2c2-4b2a-90bb-06ba988d3bb4', + job_id: '1zjj9aF5UkmavBi4HtM3kWOGvy0/Syncher', + job_run_id: 'c5tb4gsqgmgmcjvuplhg', + task_id: 'tt_10_rows', + task_run_id: 'c5tb4gsqgmgmcjvupli0', + version: 'release.v1.6.8', + }, + }, + messageId: 'c4c97310-463b-4300-9215-5cfddcb2a769', + originalTimestamp: '2021-10-28T14:23:43.254Z', + receivedAt: '2021-10-28T14:23:38.300Z', + recordId: '3', + request_ip: '10.1.94.92', + rudderId: '7300f5e3-bdb5-489e-ac7e-47876e487de9', + sentAt: '2021-10-28T14:23:43.254Z', + timestamp: '2021-10-28T14:23:38.299Z', + traits: { + price: 'GB', + }, + type: 'identify', + userId: 'Matthew', + }, + destination: { + ID: '1zjjHN4RQ6t4DPj3HVpp0b6XW4A', + Name: 'test_userId_uniq', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'ITERABLE', + DisplayName: 'Iterable', + Config: { + destConfig: { + defaultConfig: [ + 'apiKey', + 'mapToSingleEvent', + 'trackAllPages', + 'trackCategorisedPages', + 'trackNamedPages', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + apiKey: '12345', + mapToSingleEvent: true, + trackAllPages: false, + trackCategorisedPages: true, + trackNamedPages: true, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/users/update', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + dataFields: { + price: 'GB', + userId: 'Matthew', + }, + userId: 'Matthew', + preferUserId: true, + mergeNestedObjects: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 24', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + token: 'sample_push_token', + name: 'sample_device_name', + model: 'sample_device_model', + manufacturer: 'sample_device_manufacturer', + type: 'watchos', + }, + traits: { + email: 'ruchira@rudderlabs.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + screen: { + density: 2, + }, + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/users/update', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + email: 'ruchira@rudderlabs.com', + dataFields: { + email: 'ruchira@rudderlabs.com', + }, + userId: '123456', + preferUserId: true, + mergeNestedObjects: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 25', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'alias', + sentAt: '2020-08-28T16:26:16.473Z', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + _metadata: { + nodeVersion: '10.22.0', + }, + messageId: + 'node-6f62b91e789a636929ca38aed01c5f6e-103c720d-81bd-4742-98d6-d45a65aed23e', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + userId: 'new@email.com', + previousId: 'old@email.com', + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: false, + trackCategorisedPages: true, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + currentEmail: 'old@email.com', + newEmail: 'new@email.com', + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + api_key: '62d12498c37c4fd8a1a546c2d35c2f60', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.iterable.com/api/users/updateEmail', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 26', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'alias', + sentAt: '2020-08-28T16:26:16.473Z', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + _metadata: { + nodeVersion: '10.22.0', + }, + messageId: + 'node-6f62b91e789a636929ca38aed01c5f6e-103c720d-81bd-4742-98d6-d45a65aed23e', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + userId: 'new@email.com', + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: false, + trackCategorisedPages: true, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from "previousId"', + statTags: { + destType: 'ITERABLE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 27', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'alias', + sentAt: '2020-08-28T16:26:16.473Z', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + _metadata: { + nodeVersion: '10.22.0', + }, + messageId: + 'node-6f62b91e789a636929ca38aed01c5f6e-103c720d-81bd-4742-98d6-d45a65aed23e', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + previousId: 'old@email.com', + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: false, + trackCategorisedPages: true, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from "userId"', + statTags: { + destType: 'ITERABLE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 28', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'john@gmail.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'product added', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + campaignId: '1', + templateId: '0', + orderId: 10000, + total: 1000, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + price: '19', + position: '1', + category: ['bikes', 'cars', 'motors'], + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + quantity: '2', + }, + { + product_id: '507f1f77bcf86cd7994390112', + sku: '45790-322', + name: 'Monopoly: 3rd Edition2', + price: '192', + quantity: 22, + position: '12', + category: ['Bikes2', 'cars2', 'motors2'], + url: 'https://www.example.com/product/path2', + image_url: 'https://www.example.com/product/path.jpg2', + }, + ], + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/commerce/updateCart', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + user: { + email: 'john@gmail.com', + dataFields: { + email: 'john@gmail.com', + }, + userId: '12345', + preferUserId: true, + mergeNestedObjects: true, + }, + items: [ + { + id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + categories: ['bikes', 'cars', 'motors'], + price: 19, + quantity: 2, + imageUrl: 'https://www.example.com/product/path.jpg', + url: 'https://www.example.com/product/path', + }, + { + id: '507f1f77bcf86cd7994390112', + sku: '45790-322', + name: 'Monopoly: 3rd Edition2', + categories: ['Bikes2', 'cars2', 'motors2'], + price: 192, + quantity: 22, + imageUrl: 'https://www.example.com/product/path.jpg2', + url: 'https://www.example.com/product/path2', + }, + ], + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 29', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'product added', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + campaignId: '1', + templateId: '0', + orderId: 10000, + total: 1000, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + price: '19', + position: '1', + category: 'shirts,pants,trousers', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + quantity: '2', + }, + { + product_id: '507f1f77bcf86cd7994390112', + sku: '45790-322', + name: 'Monopoly: 3rd Edition2', + price: '192', + quantity: 22, + position: '12', + category: 'Cars2', + url: 'https://www.example.com/product/path2', + image_url: 'https://www.example.com/product/path.jpg2', + }, + ], + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/commerce/updateCart', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + user: { + email: 'sayan@gmail.com', + dataFields: { + email: 'sayan@gmail.com', + }, + userId: '12345', + preferUserId: true, + mergeNestedObjects: true, + }, + items: [ + { + id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + categories: ['shirts', 'pants', 'trousers'], + price: 19, + quantity: 2, + imageUrl: 'https://www.example.com/product/path.jpg', + url: 'https://www.example.com/product/path', + }, + { + id: '507f1f77bcf86cd7994390112', + sku: '45790-322', + name: 'Monopoly: 3rd Edition2', + categories: ['Cars2'], + price: 192, + quantity: 22, + imageUrl: 'https://www.example.com/product/path.jpg2', + url: 'https://www.example.com/product/path2', + }, + ], + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 30', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'product added', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + campaignId: '1', + templateId: '0', + orderId: 10000, + total: 1000, + product_id: '507f1f77bcf86cd7994390112', + sku: '45790-322', + name: 'Monopoly: 3rd Edition2', + price: '192', + quantity: 22, + position: '12', + category: 'Cars2', + url: 'https://www.example.com/product/path2', + image_url: 'https://www.example.com/product/path.jpg2', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/commerce/updateCart', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + user: { + email: 'sayan@gmail.com', + dataFields: { + email: 'sayan@gmail.com', + }, + userId: '12345', + preferUserId: true, + mergeNestedObjects: true, + }, + items: [ + { + id: '507f1f77bcf86cd7994390112', + sku: '45790-322', + name: 'Monopoly: 3rd Edition2', + categories: ['Cars2'], + price: 192, + quantity: 22, + imageUrl: 'https://www.example.com/product/path.jpg2', + url: 'https://www.example.com/product/path2', + }, + ], + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 31', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + passcode: + 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + accountId: '476550467', + trackAnonymous: true, + enableObjectIdMapping: false, + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'order completed', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + product_id: 1234, + name: 'Shoes', + price: 45, + quantity: 1, + orderId: 10000, + total: '1000', + campaignId: '123456', + templateId: '1213458', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/commerce/trackPurchase', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + dataFields: { + product_id: 1234, + name: 'Shoes', + price: 45, + quantity: 1, + orderId: 10000, + total: '1000', + campaignId: '123456', + templateId: '1213458', + }, + id: '10000', + createdAt: 1571051718299, + campaignId: 123456, + templateId: 1213458, + total: 1000, + user: { + email: 'sayan@gmail.com', + dataFields: { + email: 'sayan@gmail.com', + }, + userId: '12345', + preferUserId: true, + mergeNestedObjects: true, + }, + items: [ + { + id: 1234, + name: 'Shoes', + price: 45, + quantity: 1, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 32', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + sentAt: '2020-08-28T16:26:16.473Z', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + _metadata: { + nodeVersion: '10.22.0', + }, + messageId: + 'node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453', + properties: { + subject: 'resume validate', + sendtime: '2020-01-01', + sendlocation: 'akashdeep@gmail.com', + }, + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + userId: 'abcdeeeeeeeexxxx102', + createdAt: 1598631966468, + dataFields: { + subject: 'resume validate', + sendtime: '2020-01-01', + sendlocation: 'akashdeep@gmail.com', + }, + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + api_key: '62d12498c37c4fd8a1a546c2d35c2f60', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.iterable.com/api/events/track', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'iterable', + description: 'Test 33', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: '', + sentAt: '2020-08-28T16:26:16.473Z', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + _metadata: { + nodeVersion: '10.22.0', + }, + messageId: + 'node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453', + properties: { + subject: 'resume validate', + sendtime: '2020-01-01', + sendlocation: 'akashdeep@gmail.com', + }, + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + userId: 'abcdeeeeeeeexxxx102', + createdAt: 1598631966468, + dataFields: { + subject: 'resume validate', + sendtime: '2020-01-01', + sendlocation: 'akashdeep@gmail.com', + }, + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + api_key: '62d12498c37c4fd8a1a546c2d35c2f60', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.iterable.com/api/events/track', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/iterable/router/data.ts b/test/integrations/destinations/iterable/router/data.ts new file mode 100644 index 00000000000..7cd19381d61 --- /dev/null +++ b/test/integrations/destinations/iterable/router/data.ts @@ -0,0 +1,1014 @@ +export const data = [ + { + name: 'iterable', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + receivedAt: '2022-09-27T11:12:59.080Z', + sentAt: '2022-09-27T11:13:03.777Z', + messageId: '9ad41366-8060-4c9f-b181-f6bea67d5469', + originalTimestamp: '2022-09-27T11:13:03.777Z', + traits: { + ruchira: 'donaldbaker@ellis.com', + new_field2: 'GB', + }, + channel: 'sources', + rudderId: '3d51640c-ab09-42c1-b7b2-db6ab433b35e', + context: { + sources: { + version: 'feat.SupportForTrack', + job_run_id: 'ccpdlajh6cfi19mr1vs0', + task_run_id: 'ccpdlajh6cfi19mr1vsg', + batch_id: '4917ad78-280b-40d2-a30d-119434152a0f', + job_id: '2FLKJDcTdjPHQpq7pUjB34dQ5w6/Syncher', + task_id: 'rows_100', + }, + mappedToDestination: 'true', + externalId: [ + { + id: 'Tiffany', + type: 'ITERABLE-test-ruchira', + identifierType: 'itemId', + }, + ], + }, + timestamp: '2022-09-27T11:12:59.079Z', + type: 'identify', + userId: 'Tiffany', + recordId: '10', + request_ip: '10.1.86.248', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + apiKey: '583af2f8-15ba-49c0-8511-76383e7de07e', + hubID: '22066036', + }, + Enabled: true, + }, + }, + { + message: { + receivedAt: '2022-09-27T11:12:59.080Z', + sentAt: '2022-09-27T11:13:03.777Z', + messageId: '9ad41366-8060-4c9f-b181-f6bea67d5469', + originalTimestamp: '2022-09-27T11:13:03.777Z', + traits: { + ruchira: 'abc@ellis.com', + new_field2: 'GB1', + }, + channel: 'sources', + rudderId: '3d51640c-ab09-42c1-b7b2-db6ab433b35e', + context: { + sources: { + version: 'feat.SupportForTrack', + job_run_id: 'ccpdlajh6cfi19mr1vs0', + task_run_id: 'ccpdlajh6cfi19mr1vsg', + batch_id: '4917ad78-280b-40d2-a30d-119434152a0f', + job_id: '2FLKJDcTdjPHQpq7pUjB34dQ5w6/Syncher', + task_id: 'rows_100', + }, + mappedToDestination: 'true', + externalId: [ + { + id: 'ABC', + type: 'ITERABLE-test-ruchira', + identifierType: 'itemId', + }, + ], + }, + timestamp: '2022-09-27T11:12:59.079Z', + type: 'identify', + userId: 'Tiffany', + recordId: '10', + request_ip: '10.1.86.248', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + apiKey: '583af2f8-15ba-49c0-8511-76383e7de07e', + hubID: '22066036', + }, + Enabled: true, + }, + }, + ], + destType: 'iterable', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/catalogs/test-ruchira/items', + headers: { + 'Content-Type': 'application/json', + api_key: '583af2f8-15ba-49c0-8511-76383e7de07e', + }, + params: {}, + body: { + JSON: { + documents: { + Tiffany: { + ruchira: 'donaldbaker@ellis.com', + new_field2: 'GB', + }, + ABC: { + ruchira: 'abc@ellis.com', + new_field2: 'GB1', + }, + }, + replaceUploadedFieldsOnly: true, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 2, + }, + { + jobId: 2, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: '583af2f8-15ba-49c0-8511-76383e7de07e', + hubID: '22066036', + }, + Enabled: true, + }, + }, + ], + }, + }, + }, + }, + { + name: 'iterable', + description: 'routerTest 1', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'track', + event: 'Email Opened', + sentAt: '2020-08-28T16:26:16.473Z', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + _metadata: { + nodeVersion: '10.22.0', + }, + messageId: + 'node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453', + properties: { + subject: 'resume validate', + sendtime: '2020-01-01', + sendlocation: 'akashdeep@gmail.com', + }, + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + { + message: { + type: 'identify', + event: 'Details', + sentAt: '2020-08-28T16:26:06.466Z', + traits: { + city: 'Bangalore', + name: 'manashi', + email: 'manashi@website.com', + country: 'India', + }, + context: { + traits: { + city: 'Bangalore', + name: 'manashi', + email: 'manashi@website.com', + country: 'India', + }, + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + _metadata: { + nodeVersion: '10.22.0', + }, + messageId: + 'node-cc3ef811f686139ee527b806ee0129ef-163a3a88-266f-447e-8cce-34a8f42f8dcd', + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.462Z', + }, + metadata: { + jobId: 3, + }, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + category: 'test-category', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + jobId: 4, + }, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: false, + trackCategorisedPages: true, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + { + message: { + channel: 'sources', + context: { + externalId: [ + { + id: 'lynnanderson@smith.net', + identifierType: 'email', + type: 'ITERABLE-users', + }, + ], + mappedToDestination: 'true', + sources: { + batch_id: 'f5f240d0-0acb-46e0-b043-57fb0aabbadd', + job_id: '1zAj94bEy8komdqnYtSoDp0VmGs/Syncher', + job_run_id: 'c5tar6cqgmgmcjvupdhg', + task_id: 'tt_10_rows_check', + task_run_id: 'c5tar6cqgmgmcjvupdi0', + version: 'release.v1.6.8', + }, + device: { + token: 54321, + }, + }, + messageId: '2f052f7c-f694-4849-a7ed-a432f7ffa0a4', + originalTimestamp: '2021-10-28T14:03:50.503Z', + receivedAt: '2021-10-28T14:03:46.567Z', + recordId: '8', + request_ip: '10.1.94.92', + rudderId: 'c0f6843e-e3d6-4946-9752-fa339fbadef2', + sentAt: '2021-10-28T14:03:50.503Z', + timestamp: '2021-10-28T14:03:46.566Z', + traits: { + administrative_unit: 'Minnesota', + am_pm: 'AM', + boolean: true, + firstname: 'Jacqueline', + pPower: 'AM', + userId: 'Jacqueline', + }, + type: 'identify', + userId: 'lynnanderson@smith.net', + }, + metadata: { + jobId: 5, + }, + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_iterable', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'ITERABLE', + DisplayName: 'Iterable', + Config: { + destConfig: { + defaultConfig: [ + 'apiKey', + 'mapToSingleEvent', + 'trackAllPages', + 'trackCategorisedPages', + 'trackNamedPages', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + apiKey: '12345', + mapToSingleEvent: true, + trackAllPages: false, + trackCategorisedPages: true, + trackNamedPages: true, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { + query: {}, + }, + }, + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + event: 'product added', + type: 'track', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + campaignId: '1', + templateId: '0', + orderId: 10000, + total: 1000, + products: [ + { + product_id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + price: '19', + position: '1', + category: 'cars', + url: 'https://www.example.com/product/path', + image_url: 'https://www.example.com/product/path.jpg', + quantity: '2', + }, + { + product_id: '507f1f77bcf86cd7994390112', + sku: '45790-322', + name: 'Monopoly: 3rd Edition2', + price: '192', + quantity: 22, + position: '12', + category: 'Cars2', + url: 'https://www.example.com/product/path2', + image_url: 'https://www.example.com/product/path.jpg2', + }, + ], + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + jobId: 6, + }, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + { + message: { + type: 'page', + sentAt: '2020-08-28T16:26:16.473Z', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + _metadata: { + nodeVersion: '10.22.0', + }, + messageId: + 'node-6f62b91e789a636929ca38aed01c5f6e-103c720d-81bd-4742-98d6-d45a65aed23e', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + metadata: { + jobId: 7, + }, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + { + message: { + type: 'alias', + sentAt: '2020-08-28T16:26:16.473Z', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + _metadata: { + nodeVersion: '10.22.0', + }, + messageId: + 'node-6f62b91e789a636929ca38aed01c5f6e-103c720d-81bd-4742-98d6-d45a65aed23e', + properties: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + userId: 'new@email.com', + previousId: 'old@email.com', + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + metadata: { + jobId: 8, + }, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: false, + trackCategorisedPages: true, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + ], + destType: 'iterable', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/events/trackBulk', + headers: { + 'Content-Type': 'application/json', + api_key: '62d12498c37c4fd8a1a546c2d35c2f60', + }, + params: {}, + body: { + JSON: { + events: [ + { + dataFields: { + subject: 'resume validate', + sendtime: '2020-01-01', + sendlocation: 'akashdeep@gmail.com', + }, + userId: 'abcdeeeeeeeexxxx102', + eventName: 'Email Opened', + createdAt: 1598631966468, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/users/bulkUpdate', + headers: { + 'Content-Type': 'application/json', + api_key: '62d12498c37c4fd8a1a546c2d35c2f60', + }, + params: {}, + body: { + JSON: { + users: [ + { + email: 'manashi@website.com', + dataFields: { + city: 'Bangalore', + name: 'manashi', + email: 'manashi@website.com', + country: 'India', + }, + userId: 'abcdeeeeeeeexxxx102', + preferUserId: true, + mergeNestedObjects: true, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 3, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/events/trackBulk', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + events: [ + { + email: 'sayan@gmail.com', + dataFields: { + path: '/abc', + referrer: '', + search: '', + title: '', + url: '', + category: 'test-category', + }, + userId: '12345', + eventName: 'ApplicationLoaded page', + createdAt: 1571051718299, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 4, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: '12345', + mapToSingleEvent: false, + trackAllPages: false, + trackCategorisedPages: true, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/commerce/updateCart', + headers: { + 'Content-Type': 'application/json', + api_key: '62d12498c37c4fd8a1a546c2d35c2f60', + }, + params: {}, + body: { + JSON: { + user: { + email: 'sayan@gmail.com', + dataFields: { + email: 'sayan@gmail.com', + }, + userId: '12345', + preferUserId: true, + mergeNestedObjects: true, + }, + items: [ + { + id: '507f1f77bcf86cd799439011', + sku: '45790-32', + name: 'Monopoly: 3rd Edition', + categories: ['cars'], + price: 19, + quantity: 2, + imageUrl: 'https://www.example.com/product/path.jpg', + url: 'https://www.example.com/product/path', + }, + { + id: '507f1f77bcf86cd7994390112', + sku: '45790-322', + name: 'Monopoly: 3rd Edition2', + categories: ['Cars2'], + price: 192, + quantity: 22, + imageUrl: 'https://www.example.com/product/path.jpg2', + url: 'https://www.example.com/product/path2', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 6, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/events/trackBulk', + headers: { + 'Content-Type': 'application/json', + api_key: '62d12498c37c4fd8a1a546c2d35c2f60', + }, + params: {}, + body: { + JSON: { + events: [ + { + dataFields: { + url: 'https://dominos.com', + title: 'Pizza', + referrer: 'https://google.com', + }, + userId: 'abcdeeeeeeeexxxx102', + createdAt: 1598631966468, + eventName: 'undefined page', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 7, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: true, + trackCategorisedPages: false, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/users/updateEmail', + headers: { + 'Content-Type': 'application/json', + api_key: '62d12498c37c4fd8a1a546c2d35c2f60', + }, + params: {}, + body: { + JSON: { + currentEmail: 'old@email.com', + newEmail: 'new@email.com', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 8, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: '62d12498c37c4fd8a1a546c2d35c2f60', + mapToSingleEvent: false, + trackAllPages: false, + trackCategorisedPages: true, + trackNamedPages: false, + }, + Enabled: true, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.iterable.com/api/users/bulkUpdate', + headers: { + 'Content-Type': 'application/json', + api_key: '12345', + }, + params: {}, + body: { + JSON: { + users: [ + { + email: 'lynnanderson@smith.net', + dataFields: { + administrative_unit: 'Minnesota', + am_pm: 'AM', + boolean: true, + firstname: 'Jacqueline', + pPower: 'AM', + userId: 'Jacqueline', + email: 'lynnanderson@smith.net', + }, + userId: 'lynnanderson@smith.net', + preferUserId: true, + mergeNestedObjects: true, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 5, + }, + ], + batched: true, + statusCode: 200, + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_iterable', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'ITERABLE', + DisplayName: 'Iterable', + Config: { + destConfig: { + defaultConfig: [ + 'apiKey', + 'mapToSingleEvent', + 'trackAllPages', + 'trackCategorisedPages', + 'trackNamedPages', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: [], + supportedMessageTypes: ['identify', 'page', 'screen', 'track'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + supportsVisualMapper: true, + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + apiKey: '12345', + mapToSingleEvent: true, + trackAllPages: false, + trackCategorisedPages: true, + trackNamedPages: true, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/june/processor/data.ts b/test/integrations/destinations/june/processor/data.ts new file mode 100644 index 00000000000..dfe35ed0a34 --- /dev/null +++ b/test/integrations/destinations/june/processor/data.ts @@ -0,0 +1,755 @@ +export const data = [ + { + name: 'june', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: '93EMyDLvfpbRxxYn', + }, + ID: 'june123', + }, + message: { + type: 'identify', + context: { + traits: { + name: 'John Doe', + email: 'johndoe@gmail.com', + age: 25, + }, + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from "userIdOnly"', + statTags: { + destType: 'JUNE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'june', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: '93EMyDLvfpbRxxYn', + }, + ID: 'june123', + }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + channel: 'web', + userId: '5136633649', + context: { + traits: { + name: 'John Doe', + email: 'johndoe@gmail.com', + age: 25, + }, + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.june.so/api/identify', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic 93EMyDLvfpbRxxYn', + }, + params: {}, + body: { + JSON: { + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + userId: '5136633649', + traits: { + name: 'John Doe', + email: 'johndoe@gmail.com', + age: 25, + }, + timestamp: '2022-01-20T13:39:21.032Z', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'june', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: '93EMyDLvfpbRxxYn', + }, + ID: 'june123', + }, + message: { + type: 'track', + event: 'Product Reviewed', + properties: { + review_id: '12345', + product_id: '123', + rating: 3, + review_body: 'Average product, expected much more.', + groupId: '91Yb32830', + }, + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from "userIdOnly"', + statTags: { + destType: 'JUNE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'june', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: '93EMyDLvfpbRxxYn', + }, + ID: 'june123', + }, + message: { + type: 'track', + event: 'Product Reviewed', + userId: '5136633649', + properties: { + review_id: '12345', + product_id: '123', + rating: 3, + review_body: 'Average product, expected much more.', + }, + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.june.so/api/track', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic 93EMyDLvfpbRxxYn', + }, + params: {}, + body: { + JSON: { + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + userId: '5136633649', + event: 'Product Reviewed', + properties: { + review_id: '12345', + product_id: '123', + rating: 3, + review_body: 'Average product, expected much more.', + }, + timestamp: '2022-01-20T13:39:21.032Z', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'june', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: '93EMyDLvfpbRxxYn', + }, + ID: 'june123', + }, + message: { + type: 'track', + event: 'Product Reviewed', + userId: '5136633649', + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.june.so/api/track', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic 93EMyDLvfpbRxxYn', + }, + params: {}, + body: { + JSON: { + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + userId: '5136633649', + event: 'Product Reviewed', + timestamp: '2022-01-20T13:39:21.032Z', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'june', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: '93EMyDLvfpbRxxYn', + }, + ID: 'june123', + }, + message: { + type: 'track', + event: 'Product Reviewed', + userId: '5136633649', + properties: { + review_id: '12345', + product_id: '123', + rating: 3, + review_body: 'Average product, expected much more.', + groupId: '91Yb32830', + }, + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.june.so/api/track', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic 93EMyDLvfpbRxxYn', + }, + params: {}, + body: { + JSON: { + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + userId: '5136633649', + event: 'Product Reviewed', + properties: { + review_id: '12345', + product_id: '123', + rating: 3, + review_body: 'Average product, expected much more.', + }, + timestamp: '2022-01-20T13:39:21.032Z', + context: { + groupId: '91Yb32830', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'june', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: '93EMyDLvfpbRxxYn', + }, + ID: 'june123', + }, + message: { + type: 'track', + event: 'Product Reviewed', + userId: '5136633649', + properties: { + review_id: '12345', + product_id: '123', + rating: 3, + review_body: 'Average product, expected much more.', + groupId: 'test-12345', + }, + context: { + externalId: [ + { + type: 'juneGroupId', + id: '91Yb32830', + }, + ], + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.june.so/api/track', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic 93EMyDLvfpbRxxYn', + }, + params: {}, + body: { + JSON: { + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + userId: '5136633649', + event: 'Product Reviewed', + properties: { + review_id: '12345', + product_id: '123', + rating: 3, + review_body: 'Average product, expected much more.', + }, + timestamp: '2022-01-20T13:39:21.032Z', + context: { + groupId: '91Yb32830', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'june', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: '93EMyDLvfpbRxxYn', + }, + ID: 'june123', + }, + message: { + type: 'group', + userId: '5136633649', + traits: { + name: 'Initech', + employees: 500, + headquarters: 'Redwood City, California, United States', + ceo: 'John Doe', + revenue: 70000000, + currency: 'USD', + groupId: '9230AUbd2138h', + }, + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.june.so/api/group', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic 93EMyDLvfpbRxxYn', + }, + params: {}, + body: { + JSON: { + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + userId: '5136633649', + groupId: '9230AUbd2138h', + traits: { + name: 'Initech', + employees: 500, + headquarters: 'Redwood City, California, United States', + ceo: 'John Doe', + revenue: 70000000, + currency: 'USD', + }, + timestamp: '2022-01-20T13:39:21.032Z', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'june', + description: 'should fail with no message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: '93EMyDLvfpbRxxYn', + }, + ID: 'june123', + }, + message: { + event: 'Product Reviewed', + properties: { + review_id: '12345', + product_id: '123', + rating: 3, + review_body: 'Average product, expected much more.', + groupId: '91Yb32830', + }, + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type is required', + statTags: { + destType: 'JUNE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'june', + description: 'should fail for alias message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: '93EMyDLvfpbRxxYn', + }, + ID: 'june123', + }, + message: { + type: 'alias', + event: 'Product Reviewed', + properties: { + review_id: '12345', + product_id: '123', + rating: 3, + review_body: 'Average product, expected much more.', + groupId: '91Yb32830', + }, + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type "alias" is not supported', + statTags: { + destType: 'JUNE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'june', + description: 'should transform for page event with fully populated properties', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: '93EMyDLvfpbRxxYn', + }, + ID: 'june123', + }, + message: { + type: 'page', + event: 'Product Reviewed', + properties: { + review_id: '12345', + product_id: '123', + rating: 3, + review_body: 'Average product, expected much more.', + groupId: '91Yb32830', + }, + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.june.so/api/page', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic 93EMyDLvfpbRxxYn', + }, + params: {}, + body: { + JSON: { + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + properties: { + review_id: '12345', + product_id: '123', + rating: 3, + review_body: 'Average product, expected much more.', + }, + timestamp: '2022-01-20T13:39:21.032Z', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/june/router/data.ts b/test/integrations/destinations/june/router/data.ts new file mode 100644 index 00000000000..cf8c4f00110 --- /dev/null +++ b/test/integrations/destinations/june/router/data.ts @@ -0,0 +1,146 @@ +export const data = [ + { + name: 'fb', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + apiKey: '93EMyDLvfpbRxxYn', + }, + ID: 'june123', + }, + metadata: { + jobId: 1, + }, + message: { + type: 'identify', + sentAt: '2022-01-20T13:39:21.033Z', + channel: 'web', + userId: '5136633649', + context: { + traits: { + name: 'John Doe', + email: 'johndoe@gmail.com', + age: 25, + }, + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + { + destination: { + Config: { + apiKey: '93EMyDLvfpbRxxYn', + }, + ID: 'june123', + }, + metadata: { + jobId: 2, + }, + message: { + type: 'track', + event: 'Product Reviewed', + properties: { + review_id: '12345', + product_id: '123', + rating: 3.0, + review_body: 'Average product, expected much more.', + groupId: '91Yb32830', + }, + context: {}, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + destType: 'june', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + batchedRequest: { + body: { + FORM: {}, + JSON: { + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + timestamp: '2022-01-20T13:39:21.032Z', + traits: { + age: 25, + email: 'johndoe@gmail.com', + name: 'John Doe', + }, + userId: '5136633649', + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://api.june.so/api/identify', + files: {}, + headers: { + Authorization: 'Basic 93EMyDLvfpbRxxYn', + 'Content-Type': 'application/json', + }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + destination: { + Config: { + apiKey: '93EMyDLvfpbRxxYn', + }, + ID: 'june123', + }, + metadata: [ + { + jobId: 1, + }, + ], + statusCode: 200, + }, + { + destination: { + Config: { + apiKey: '93EMyDLvfpbRxxYn', + }, + ID: 'june123', + }, + batched: false, + error: 'Missing required value from "userIdOnly"', + metadata: [ + { + jobId: 2, + }, + ], + statTags: { + destType: 'JUNE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/kafka/batch/data.ts b/test/integrations/destinations/kafka/batch/data.ts new file mode 100644 index 00000000000..0cc1d75c242 --- /dev/null +++ b/test/integrations/destinations/kafka/batch/data.ts @@ -0,0 +1,1492 @@ +export const data = [ + { + name: 'kafka', + description: 'Test 0', + feature: 'batch', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + destType: 'kafka', + input: [ + { + message: { + userId: 'user1', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user1', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + messageId: '6f27a4da-cefb-4800-acf1-f467e8aab91c', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'new-topic', + }, + metadata: { + rudderId: 'user1<<>>new-topic', + jobId: 1, + }, + destination: { + ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', + Name: 'local-kafka-test', + DestinationDefinition: { + ID: '1c81NzcId5roSqvQ1R57zhIsC01', + Name: 'KAFKA', + DisplayName: 'Apache Kafka', + Config: { + destConfig: { + defaultConfig: [ + 'hostName', + 'port', + 'topic', + 'sslEnabled', + 'caCertificate', + 'useSASL', + 'saslType', + 'username', + 'password', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['password'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + ], + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + caCertificate: 'caCertificate', + hostName: 'localhost', + password: 'password', + port: '29092', + saslType: 'sha256', + sslEnabled: true, + topic: 'new-topic', + useSASL: true, + username: 'username', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + message: { + userId: 'user2', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user2', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + messageId: 'fe182d9e-e86e-4db5-ae12-f4b399555fcc', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'new-topic', + }, + metadata: { + rudderId: 'user2<<>>new-topic', + jobId: 2, + }, + destination: { + ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', + Name: 'local-kafka-test', + DestinationDefinition: { + ID: '1c81NzcId5roSqvQ1R57zhIsC01', + Name: 'KAFKA', + DisplayName: 'Apache Kafka', + Config: { + destConfig: { + defaultConfig: [ + 'hostName', + 'port', + 'topic', + 'sslEnabled', + 'caCertificate', + 'useSASL', + 'saslType', + 'username', + 'password', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['password'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + ], + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + caCertificate: 'caCertificate', + hostName: 'localhost', + password: 'password', + port: '29092', + saslType: 'sha256', + sslEnabled: true, + topic: 'new-topic', + useSASL: true, + username: 'username', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + message: { + userId: 'user3', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user3', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + messageId: '2803e656-77ff-47ca-9606-90663f9aed38', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'new-topic', + }, + metadata: { + rudderId: 'user3<<>>new-topic', + jobId: 3, + }, + destination: { + ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', + Name: 'local-kafka-test', + DestinationDefinition: { + ID: '1c81NzcId5roSqvQ1R57zhIsC01', + Name: 'KAFKA', + DisplayName: 'Apache Kafka', + Config: { + destConfig: { + defaultConfig: [ + 'hostName', + 'port', + 'topic', + 'sslEnabled', + 'caCertificate', + 'useSASL', + 'saslType', + 'username', + 'password', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['password'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + ], + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + caCertificate: 'caCertificate', + hostName: 'localhost', + password: 'password', + port: '29092', + saslType: 'sha256', + sslEnabled: true, + topic: 'new-topic', + useSASL: true, + username: 'username', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + message: { + userId: 'user4', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user4', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'new-topic', + }, + metadata: { + rudderId: 'user4<<>>new-topic', + jobId: 4, + }, + destination: { + ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', + Name: 'local-kafka-test', + DestinationDefinition: { + ID: '1c81NzcId5roSqvQ1R57zhIsC01', + Name: 'KAFKA', + DisplayName: 'Apache Kafka', + Config: { + destConfig: { + defaultConfig: [ + 'hostName', + 'port', + 'topic', + 'sslEnabled', + 'caCertificate', + 'useSASL', + 'saslType', + 'username', + 'password', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['password'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + ], + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + caCertificate: 'caCertificate', + hostName: 'localhost', + password: 'password', + port: '29092', + saslType: 'sha256', + sslEnabled: true, + topic: 'new-topic', + useSASL: true, + username: 'username', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + message: { + userId: 'user5', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user5', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + integrations: { + All: true, + KAFKA: { + schemaId: 'schema001', + }, + }, + messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + schemaId: 'schema001', + topic: 'new-topic', + }, + metadata: { + rudderId: 'user5<<>>new-topic', + jobId: 5, + }, + destination: { + ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', + Name: 'local-kafka-test', + DestinationDefinition: { + ID: '1c81NzcId5roSqvQ1R57zhIsC01', + Name: 'KAFKA', + DisplayName: 'Apache Kafka', + Config: { + destConfig: { + defaultConfig: [ + 'hostName', + 'port', + 'topic', + 'sslEnabled', + 'caCertificate', + 'useSASL', + 'saslType', + 'username', + 'password', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['password'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + ], + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + caCertificate: 'caCertificate', + hostName: 'localhost', + password: 'password', + port: '29092', + saslType: 'sha256', + sslEnabled: true, + topic: 'new-topic', + useSASL: true, + username: 'username', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + message: { + userId: 'user6', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user6', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + integrations: { + All: true, + KAFKA: { + topic: 'topic-1', + }, + }, + messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'topic-1', + }, + metadata: { + rudderId: 'user6<<>>topic-1', + jobId: 6, + }, + destination: { + ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', + Name: 'local-kafka-test', + DestinationDefinition: { + ID: '1c81NzcId5roSqvQ1R57zhIsC01', + Name: 'KAFKA', + DisplayName: 'Apache Kafka', + Config: { + destConfig: { + defaultConfig: [ + 'hostName', + 'port', + 'topic', + 'sslEnabled', + 'caCertificate', + 'useSASL', + 'saslType', + 'username', + 'password', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['password'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + ], + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + caCertificate: 'caCertificate', + hostName: 'localhost', + password: 'password', + port: '29092', + saslType: 'sha256', + sslEnabled: true, + topic: 'new-topic', + useSASL: true, + username: 'username', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + message: { + userId: 'user7', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user7', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + integrations: { + All: true, + KAFKA: { + topic: 'topic-1', + }, + }, + messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'topic-1', + }, + metadata: { + rudderId: 'user7<<>>topic-1', + jobId: 7, + }, + destination: { + ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', + Name: 'local-kafka-test', + DestinationDefinition: { + ID: '1c81NzcId5roSqvQ1R57zhIsC01', + Name: 'KAFKA', + DisplayName: 'Apache Kafka', + Config: { + destConfig: { + defaultConfig: [ + 'hostName', + 'port', + 'topic', + 'sslEnabled', + 'caCertificate', + 'useSASL', + 'saslType', + 'username', + 'password', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['password'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + ], + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + caCertificate: 'caCertificate', + hostName: 'localhost', + password: 'password', + port: '29092', + saslType: 'sha256', + sslEnabled: true, + topic: 'new-topic', + useSASL: true, + username: 'username', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + message: { + userId: 'user8', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user8', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + integrations: { + All: true, + KAFKA: { + topic: 'topic-2', + }, + }, + messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'topic-2', + }, + metadata: { + rudderId: 'user8<<>>topic-2', + jobId: 8, + }, + destination: { + ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', + Name: 'local-kafka-test', + DestinationDefinition: { + ID: '1c81NzcId5roSqvQ1R57zhIsC01', + Name: 'KAFKA', + DisplayName: 'Apache Kafka', + Config: { + destConfig: { + defaultConfig: [ + 'hostName', + 'port', + 'topic', + 'sslEnabled', + 'caCertificate', + 'useSASL', + 'saslType', + 'username', + 'password', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['password'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + ], + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + caCertificate: 'caCertificate', + hostName: 'localhost', + password: 'password', + port: '29092', + saslType: 'sha256', + sslEnabled: true, + topic: 'new-topic', + useSASL: true, + username: 'username', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + message: { + userId: 'user8', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user8', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + integrations: { + All: true, + KAFKA: { + topic: 'topic-2', + }, + }, + messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'topic-2', + }, + metadata: { + rudderId: 'user8<<>>topic-2', + jobId: 9, + }, + destination: { + ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', + Name: 'local-kafka-test', + DestinationDefinition: { + ID: '1c81NzcId5roSqvQ1R57zhIsC01', + Name: 'KAFKA', + DisplayName: 'Apache Kafka', + Config: { + destConfig: { + defaultConfig: [ + 'hostName', + 'port', + 'topic', + 'sslEnabled', + 'caCertificate', + 'useSASL', + 'saslType', + 'username', + 'password', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['password'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + ], + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + caCertificate: 'caCertificate', + hostName: 'localhost', + password: 'password', + port: '29092', + saslType: 'sha256', + sslEnabled: true, + topic: 'new-topic', + useSASL: true, + username: 'username', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + message: { + userId: 'user8', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user8', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + integrations: { + All: true, + KAFKA: { + topic: 'topic-3', + }, + }, + messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'topic-3', + }, + metadata: { + rudderId: 'user8<<>>topic-3', + jobId: 10, + }, + destination: { + ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', + Name: 'local-kafka-test', + DestinationDefinition: { + ID: '1c81NzcId5roSqvQ1R57zhIsC01', + Name: 'KAFKA', + DisplayName: 'Apache Kafka', + Config: { + destConfig: { + defaultConfig: [ + 'hostName', + 'port', + 'topic', + 'sslEnabled', + 'caCertificate', + 'useSASL', + 'saslType', + 'username', + 'password', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['password'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + ], + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + caCertificate: 'caCertificate', + hostName: 'localhost', + password: 'password', + port: '29092', + saslType: 'sha256', + sslEnabled: true, + topic: 'new-topic', + useSASL: true, + username: 'username', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + }, + output: { + response: { + status: 200, + body: [ + { + batched: true, + statusCode: 200, + batchedRequest: [ + { + userId: 'user1', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user1', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + messageId: '6f27a4da-cefb-4800-acf1-f467e8aab91c', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'new-topic', + }, + { + userId: 'user2', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user2', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + messageId: 'fe182d9e-e86e-4db5-ae12-f4b399555fcc', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'new-topic', + }, + { + userId: 'user3', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user3', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + messageId: '2803e656-77ff-47ca-9606-90663f9aed38', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'new-topic', + }, + { + userId: 'user4', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user4', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'new-topic', + }, + { + userId: 'user5', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user5', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + integrations: { + All: true, + KAFKA: { + schemaId: 'schema001', + }, + }, + messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + schemaId: 'schema001', + topic: 'new-topic', + }, + ], + metadata: [ + { rudderId: 'user1<<>>new-topic', jobId: 1 }, + { + rudderId: 'user2<<>>new-topic', + jobId: 2, + }, + { + rudderId: 'user3<<>>new-topic', + jobId: 3, + }, + { + rudderId: 'user4<<>>new-topic', + jobId: 4, + }, + { + rudderId: 'user5<<>>new-topic', + jobId: 5, + }, + ], + destination: { + ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', + Name: 'local-kafka-test', + DestinationDefinition: { + ID: '1c81NzcId5roSqvQ1R57zhIsC01', + Name: 'KAFKA', + DisplayName: 'Apache Kafka', + Config: { + destConfig: { + defaultConfig: [ + 'hostName', + 'port', + 'topic', + 'sslEnabled', + 'caCertificate', + 'useSASL', + 'saslType', + 'username', + 'password', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['password'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + ], + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + caCertificate: 'caCertificate', + hostName: 'localhost', + password: 'password', + port: '29092', + saslType: 'sha256', + sslEnabled: true, + topic: 'new-topic', + useSASL: true, + username: 'username', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + batched: true, + statusCode: 200, + batchedRequest: [ + { + userId: 'user6', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user6', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + integrations: { + All: true, + KAFKA: { + topic: 'topic-1', + }, + }, + messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'topic-1', + }, + { + userId: 'user7', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user7', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + integrations: { + All: true, + KAFKA: { + topic: 'topic-1', + }, + }, + messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'topic-1', + }, + ], + metadata: [ + { + rudderId: 'user6<<>>topic-1', + jobId: 6, + }, + { + rudderId: 'user7<<>>topic-1', + jobId: 7, + }, + ], + destination: { + ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', + Name: 'local-kafka-test', + DestinationDefinition: { + ID: '1c81NzcId5roSqvQ1R57zhIsC01', + Name: 'KAFKA', + DisplayName: 'Apache Kafka', + Config: { + destConfig: { + defaultConfig: [ + 'hostName', + 'port', + 'topic', + 'sslEnabled', + 'caCertificate', + 'useSASL', + 'saslType', + 'username', + 'password', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['password'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + ], + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + caCertificate: 'caCertificate', + hostName: 'localhost', + password: 'password', + port: '29092', + saslType: 'sha256', + sslEnabled: true, + topic: 'new-topic', + useSASL: true, + username: 'username', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + batched: true, + statusCode: 200, + batchedRequest: [ + { + userId: 'user8', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user8', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + integrations: { + All: true, + KAFKA: { + topic: 'topic-2', + }, + }, + messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'topic-2', + }, + { + userId: 'user8', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user8', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + integrations: { + All: true, + KAFKA: { + topic: 'topic-2', + }, + }, + messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'topic-2', + }, + ], + metadata: [ + { + rudderId: 'user8<<>>topic-2', + jobId: 8, + }, + { + rudderId: 'user8<<>>topic-2', + jobId: 9, + }, + ], + destination: { + ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', + Name: 'local-kafka-test', + DestinationDefinition: { + ID: '1c81NzcId5roSqvQ1R57zhIsC01', + Name: 'KAFKA', + DisplayName: 'Apache Kafka', + Config: { + destConfig: { + defaultConfig: [ + 'hostName', + 'port', + 'topic', + 'sslEnabled', + 'caCertificate', + 'useSASL', + 'saslType', + 'username', + 'password', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['password'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + ], + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + caCertificate: 'caCertificate', + hostName: 'localhost', + password: 'password', + port: '29092', + saslType: 'sha256', + sslEnabled: true, + topic: 'new-topic', + useSASL: true, + username: 'username', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + batched: true, + statusCode: 200, + batchedRequest: [ + { + userId: 'user8', + message: { + type: 'identify', + sentAt: '2021-07-08T02:45:11.329+05:30', + userId: 'user8', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + integrations: { + All: true, + KAFKA: { + topic: 'topic-3', + }, + }, + messageId: '87c98fc2-561b-4631-8cd6-1d02cdd1429f', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2021-07-08T02:45:06.851+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2021-07-08T02:45:11.329+05:30', + }, + topic: 'topic-3', + }, + ], + metadata: [ + { + rudderId: 'user8<<>>topic-3', + jobId: 10, + }, + ], + destination: { + ID: '1uzGR4rn915R6Xts9KRfWAzmgGL', + Name: 'local-kafka-test', + DestinationDefinition: { + ID: '1c81NzcId5roSqvQ1R57zhIsC01', + Name: 'KAFKA', + DisplayName: 'Apache Kafka', + Config: { + destConfig: { + defaultConfig: [ + 'hostName', + 'port', + 'topic', + 'sslEnabled', + 'caCertificate', + 'useSASL', + 'saslType', + 'username', + 'password', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['password'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + ], + transformAt: 'processor', + transformAtV1: 'processor', + }, + ResponseRules: null, + }, + Config: { + caCertificate: 'caCertificate', + hostName: 'localhost', + password: 'password', + port: '29092', + saslType: 'sha256', + sslEnabled: true, + topic: 'new-topic', + useSASL: true, + username: 'username', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/kafka/processor/data.ts b/test/integrations/destinations/kafka/processor/data.ts new file mode 100644 index 00000000000..1d5ce820d00 --- /dev/null +++ b/test/integrations/destinations/kafka/processor/data.ts @@ -0,0 +1,795 @@ +export const data = [ + { + name: 'kafka', + description: 'Test case with null destination config', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: 'kafkadestinationid', + Name: 'Kafka', + Config: null, + Enabled: true, + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'anonymousId', + context: { + library: { + name: 'analytics-go', + version: '3.0.0', + }, + }, + event: 'event', + integrations: { + Kafka: true, + }, + messageId: 'messageId', + originalTimestamp: '2019-07-18T15:00:00Z', + properties: { + key: 'value', + }, + receivedAt: '2019-07-18T15:00:00Z', + sentAt: '2019-07-18T15:00:00Z', + timestamp: '2019-07-18T15:00:00Z', + type: 'track', + userId: 'userId', + }, + metadata: { + jobId: 'jobId 0', + rudderId: 'randomRudderId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 'jobId 0', + rudderId: 'randomRudderId', + }, + output: { + message: { + anonymousId: 'anonymousId', + context: { + library: { + name: 'analytics-go', + version: '3.0.0', + }, + }, + event: 'event', + integrations: { + Kafka: true, + }, + messageId: 'messageId', + originalTimestamp: '2019-07-18T15:00:00Z', + properties: { + key: 'value', + }, + receivedAt: '2019-07-18T15:00:00Z', + sentAt: '2019-07-18T15:00:00Z', + timestamp: '2019-07-18T15:00:00Z', + type: 'track', + userId: 'userId', + }, + userId: 'userId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'kafka', + description: 'Test case without userId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: 'kafkadestinationid', + Name: 'Kafka', + Config: null, + Enabled: true, + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'anonymousId', + context: { + library: { + name: 'analytics-go', + version: '3.0.0', + }, + }, + event: 'event', + integrations: { + Kafka: true, + }, + messageId: 'messageId', + originalTimestamp: '2019-07-18T15:00:00Z', + properties: { + key: 'value', + }, + receivedAt: '2019-07-18T15:00:00Z', + sentAt: '2019-07-18T15:00:00Z', + timestamp: '2019-07-18T15:00:00Z', + type: 'track', + }, + metadata: { + jobId: 'jobId 1', + rudderId: 'randomRudderId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 'jobId 1', + rudderId: 'randomRudderId', + }, + output: { + message: { + anonymousId: 'anonymousId', + context: { + library: { + name: 'analytics-go', + version: '3.0.0', + }, + }, + event: 'event', + integrations: { + Kafka: true, + }, + messageId: 'messageId', + originalTimestamp: '2019-07-18T15:00:00Z', + properties: { + key: 'value', + }, + receivedAt: '2019-07-18T15:00:00Z', + sentAt: '2019-07-18T15:00:00Z', + timestamp: '2019-07-18T15:00:00Z', + type: 'track', + }, + userId: 'anonymousId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'kafka', + description: 'Test case with null dest config and avro schema', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: 'kafkadestinationid', + Name: 'Kafka', + Config: null, + Enabled: true, + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'anonymousId', + context: { + library: { + name: 'analytics-go', + version: '3.0.0', + }, + }, + event: 'event', + integrations: { + Kafka: { + schemaId: 'schema001', + }, + }, + messageId: 'messageId', + originalTimestamp: '2019-07-18T15:00:00Z', + properties: { + key: 'value', + }, + receivedAt: '2019-07-18T15:00:00Z', + sentAt: '2019-07-18T15:00:00Z', + timestamp: '2019-07-18T15:00:00Z', + type: 'track', + userId: 'userId', + }, + metadata: { + jobId: 'jobId 2', + rudderId: 'randomRudderId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 'jobId 2', + rudderId: 'randomRudderId', + }, + output: { + message: { + anonymousId: 'anonymousId', + context: { + library: { + name: 'analytics-go', + version: '3.0.0', + }, + }, + event: 'event', + integrations: { + Kafka: { + schemaId: 'schema001', + }, + }, + messageId: 'messageId', + originalTimestamp: '2019-07-18T15:00:00Z', + properties: { + key: 'value', + }, + receivedAt: '2019-07-18T15:00:00Z', + sentAt: '2019-07-18T15:00:00Z', + timestamp: '2019-07-18T15:00:00Z', + type: 'track', + userId: 'userId', + }, + userId: 'userId', + schemaId: 'schema001', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'kafka', + description: 'Test case with null dest config and integrations topic', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: 'kafkadestinationid', + Name: 'Kafka', + Config: null, + Enabled: true, + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'anonymousId', + context: { + library: { + name: 'analytics-go', + version: '3.0.0', + }, + }, + event: 'event', + integrations: { + Kafka: { + topic: 'specific-topic', + }, + }, + messageId: 'messageId', + originalTimestamp: '2019-07-18T15:00:00Z', + properties: { + key: 'value', + }, + receivedAt: '2019-07-18T15:00:00Z', + sentAt: '2019-07-18T15:00:00Z', + timestamp: '2019-07-18T15:00:00Z', + type: 'track', + userId: 'userId', + }, + metadata: { + jobId: 'jobId 3', + rudderId: 'randomRudderId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 'jobId 3', + rudderId: 'randomRudderId<<>>specific-topic', + }, + output: { + message: { + anonymousId: 'anonymousId', + context: { + library: { + name: 'analytics-go', + version: '3.0.0', + }, + }, + event: 'event', + integrations: { + Kafka: { + topic: 'specific-topic', + }, + }, + messageId: 'messageId', + originalTimestamp: '2019-07-18T15:00:00Z', + properties: { + key: 'value', + }, + receivedAt: '2019-07-18T15:00:00Z', + sentAt: '2019-07-18T15:00:00Z', + timestamp: '2019-07-18T15:00:00Z', + type: 'track', + userId: 'userId', + }, + userId: 'userId', + topic: 'specific-topic', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'kafka', + description: 'Test case with dest config with default topic', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: 'kafkadestinationid', + Name: 'Kafka', + Config: { + topic: 'default-topic', + }, + Enabled: true, + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'anonymousId', + context: { + library: { + name: 'analytics-go', + version: '3.0.0', + }, + }, + event: 'event', + messageId: 'messageId', + originalTimestamp: '2019-07-18T15:00:00Z', + properties: { + key: 'value', + }, + receivedAt: '2019-07-18T15:00:00Z', + sentAt: '2019-07-18T15:00:00Z', + timestamp: '2019-07-18T15:00:00Z', + type: 'track', + userId: 'userId', + }, + metadata: { + jobId: 'jobId 4', + rudderId: 'randomRudderId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 'jobId 4', + rudderId: 'randomRudderId<<>>default-topic', + }, + output: { + message: { + anonymousId: 'anonymousId', + context: { + library: { + name: 'analytics-go', + version: '3.0.0', + }, + }, + event: 'event', + messageId: 'messageId', + originalTimestamp: '2019-07-18T15:00:00Z', + properties: { + key: 'value', + }, + receivedAt: '2019-07-18T15:00:00Z', + sentAt: '2019-07-18T15:00:00Z', + timestamp: '2019-07-18T15:00:00Z', + type: 'track', + userId: 'userId', + }, + userId: 'userId', + topic: 'default-topic', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'kafka', + description: 'Test case with dest config with event type topic', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: 'kafkadestinationid', + Name: 'Kafka', + Config: { + topic: 'default-topic', + enableMultiTopic: true, + eventTypeToTopicMap: [ + { + from: 'identify', + to: 'identify-topic', + }, + { + from: 'page', + to: 'page-topic', + }, + { + from: 'screen', + to: 'screen-topic', + }, + { + from: 'group', + to: 'group-topic', + }, + { + from: 'alias', + to: 'alias-topic', + }, + ], + eventToTopicMap: [ + { + from: 'Product Added', + to: 'product-added', + }, + ], + }, + Enabled: true, + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'anonymousId', + context: { + library: { + name: 'analytics-go', + version: '3.0.0', + }, + }, + messageId: 'messageId', + originalTimestamp: '2019-07-18T15:00:00Z', + properties: { + key: 'value', + }, + receivedAt: '2019-07-18T15:00:00Z', + sentAt: '2019-07-18T15:00:00Z', + timestamp: '2019-07-18T15:00:00Z', + type: 'identify', + userId: 'userId', + }, + metadata: { + jobId: 'jobId 5', + rudderId: 'randomRudderId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 'jobId 5', + rudderId: 'randomRudderId<<>>identify-topic', + }, + output: { + message: { + anonymousId: 'anonymousId', + context: { + library: { + name: 'analytics-go', + version: '3.0.0', + }, + }, + messageId: 'messageId', + originalTimestamp: '2019-07-18T15:00:00Z', + properties: { + key: 'value', + }, + receivedAt: '2019-07-18T15:00:00Z', + sentAt: '2019-07-18T15:00:00Z', + timestamp: '2019-07-18T15:00:00Z', + type: 'identify', + userId: 'userId', + }, + userId: 'userId', + topic: 'identify-topic', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'kafka', + description: 'Test case with dest config with event name topic', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: 'kafkadestinationid', + Name: 'Kafka', + Config: { + topic: 'default-topic', + enableMultiTopic: true, + eventTypeToTopicMap: [ + { + from: 'identify', + to: 'identify-topic', + }, + { + from: 'page', + to: 'page-topic', + }, + { + from: 'screen', + to: 'screen-topic', + }, + { + from: 'group', + to: 'group-topic', + }, + { + from: 'alias', + to: 'alias-topic', + }, + ], + eventToTopicMap: [ + { + from: 'Product Added', + to: 'product-added', + }, + ], + }, + Enabled: true, + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'anonymousId', + context: { + library: { + name: 'analytics-go', + version: '3.0.0', + }, + }, + event: 'Product Added', + messageId: 'messageId', + originalTimestamp: '2019-07-18T15:00:00Z', + properties: { + key: 'value', + }, + receivedAt: '2019-07-18T15:00:00Z', + sentAt: '2019-07-18T15:00:00Z', + timestamp: '2019-07-18T15:00:00Z', + type: 'track', + userId: 'userId', + }, + metadata: { + jobId: 'jobId 6', + rudderId: 'randomRudderId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 'jobId 6', + rudderId: 'randomRudderId<<>>product-added', + }, + output: { + message: { + anonymousId: 'anonymousId', + context: { + library: { + name: 'analytics-go', + version: '3.0.0', + }, + }, + event: 'Product Added', + messageId: 'messageId', + originalTimestamp: '2019-07-18T15:00:00Z', + properties: { + key: 'value', + }, + receivedAt: '2019-07-18T15:00:00Z', + sentAt: '2019-07-18T15:00:00Z', + timestamp: '2019-07-18T15:00:00Z', + type: 'track', + userId: 'userId', + }, + userId: 'userId', + topic: 'product-added', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'kafka', + description: 'Test case with dest config with event name topic no match', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: 'kafkadestinationid', + Name: 'Kafka', + Config: { + topic: 'default-topic', + enableMultiTopic: true, + eventTypeToTopicMap: [ + { + from: 'identify', + to: 'identify-topic', + }, + { + from: 'page', + to: 'page-topic', + }, + { + from: 'screen', + to: 'screen-topic', + }, + { + from: 'group', + to: 'group-topic', + }, + { + from: 'alias', + to: 'alias-topic', + }, + ], + eventToTopicMap: [ + { + from: 'Product Added', + to: 'product-added', + }, + ], + }, + Enabled: true, + IsProcessorEnabled: true, + }, + message: { + anonymousId: 'anonymousId', + context: { + library: { + name: 'analytics-go', + version: '3.0.0', + }, + }, + event: 'Product Added No match', + messageId: 'messageId', + originalTimestamp: '2019-07-18T15:00:00Z', + properties: { + key: 'value', + }, + receivedAt: '2019-07-18T15:00:00Z', + sentAt: '2019-07-18T15:00:00Z', + timestamp: '2019-07-18T15:00:00Z', + type: 'track', + userId: 'userId', + }, + metadata: { + jobId: 'jobId 7', + rudderId: 'randomRudderId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 'jobId 7', + rudderId: 'randomRudderId<<>>default-topic', + }, + output: { + message: { + anonymousId: 'anonymousId', + context: { + library: { + name: 'analytics-go', + version: '3.0.0', + }, + }, + event: 'Product Added No match', + messageId: 'messageId', + originalTimestamp: '2019-07-18T15:00:00Z', + properties: { + key: 'value', + }, + receivedAt: '2019-07-18T15:00:00Z', + sentAt: '2019-07-18T15:00:00Z', + timestamp: '2019-07-18T15:00:00Z', + type: 'track', + userId: 'userId', + }, + userId: 'userId', + topic: 'default-topic', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/keen/processor/data.ts b/test/integrations/destinations/keen/processor/data.ts new file mode 100644 index 00000000000..c785decb8ec --- /dev/null +++ b/test/integrations/destinations/keen/processor/data.ts @@ -0,0 +1,489 @@ +export const data = [ + { + name: 'keen', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + type: 'page', + context: null, + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + }, + traits: { + email: 'test@gmail.com', + anonymousId: 'anon-id', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + projectID: 'abcde', + writeKey: 'xyz', + ipAddon: true, + uaAddon: true, + urlAddon: true, + referrerAddon: true, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + userId: '12345', + keen: { + addons: [], + }, + anonymousId: '00000000000000000000000000', + user: { + traits: { + anonymousId: 'anon-id', + email: 'test@gmail.com', + }, + userId: '12345', + }, + }, + FORM: {}, + }, + files: {}, + endpoint: + 'https://api.keen.io/3.0/projects/abcde/events/Viewed ApplicationLoaded page', + userId: '12345', + headers: { + 'Content-Type': 'application/json', + Authorization: 'xyz', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'keen', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '123456', + email: 'sayan@gmail.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + ip: '0.0.0.0', + age: 26, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: '123456', + integrations: { + All: true, + }, + traits: { + anonymousId: 'my-anon-id', + email: 'test@gmail.com', + address: { + city: 'kolkata-1', + country: 'US', + postalCode: 712136, + state: 'CA', + street: '', + }, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + projectID: 'abcde', + writeKey: 'xyz', + ipAddon: true, + uaAddon: true, + urlAddon: true, + referrerAddon: true, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type identify is not supported', + statTags: { + destType: 'KEEN', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'keen', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + }, + traits: { + email: 'test@gmail.com', + anonymousId: 'anon-id', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + projectID: 'abcde', + writeKey: 'xyz', + ipAddon: true, + uaAddon: true, + urlAddon: true, + referrerAddon: true, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + search: 'abc', + request_ip: '0.0.0.0', + title: 'Test Page', + url: 'www.rudderlabs.com', + referrer: 'Rudder', + userId: '12345', + keen: { + addons: [ + { + input: { + ip: 'request_ip', + }, + name: 'keen:ip_to_geo', + output: 'ip_geo_info', + }, + { + input: { + ua_string: 'user_agent', + }, + name: 'keen:ua_parser', + output: 'parsed_user_agent', + }, + ], + }, + anonymousId: '00000000000000000000000000', + user: { + traits: { + anonymousId: 'anon-id', + email: 'test@gmail.com', + }, + userId: '12345', + }, + path: '/test', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + }, + FORM: {}, + }, + files: {}, + endpoint: + 'https://api.keen.io/3.0/projects/abcde/events/Viewed ApplicationLoaded page', + userId: '12345', + headers: { + 'Content-Type': 'application/json', + Authorization: 'xyz', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'keen', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'test track event', + request_ip: '1.1.1.1', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + traits: { + email: 'test@gmail.com', + anonymousId: 'anon-id', + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + destination: { + Config: { + projectID: 'abcde', + writeKey: 'xyz', + ipAddon: true, + uaAddon: true, + urlAddon: true, + referrerAddon: true, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + user_actual_id: 12345, + user_actual_role: 'system_admin', + request_ip: '1.1.1.1', + user_time_spent: 50000, + userId: '12345', + keen: { + addons: [ + { + input: { + ip: 'request_ip', + }, + name: 'keen:ip_to_geo', + output: 'ip_geo_info', + }, + { + input: { + ua_string: 'user_agent', + }, + name: 'keen:ua_parser', + output: 'parsed_user_agent', + }, + ], + }, + anonymousId: '00000000000000000000000000', + user: { + traits: { + anonymousId: 'anon-id', + email: 'test@gmail.com', + }, + userId: '12345', + }, + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://api.keen.io/3.0/projects/abcde/events/test track event', + userId: '12345', + headers: { + 'Content-Type': 'application/json', + Authorization: 'xyz', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/keen/router/data.ts b/test/integrations/destinations/keen/router/data.ts new file mode 100644 index 00000000000..d46d2363e27 --- /dev/null +++ b/test/integrations/destinations/keen/router/data.ts @@ -0,0 +1,308 @@ +export const data = [ + { + name: 'fb', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'test track event', + request_ip: '1.1.1.1', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + traits: { + email: 'test@gmail.com', + anonymousId: 'anon-id', + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + projectID: 'abcde', + writeKey: 'xyz', + ipAddon: true, + uaAddon: true, + urlAddon: true, + referrerAddon: true, + }, + }, + }, + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'sayan@gmail.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'page', + messageId: '5e10d13a-bf9a-44bf-b884-43a9e591ea71', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T11:15:18.299Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { + path: '/test', + referrer: 'Rudder', + search: 'abc', + title: 'Test Page', + url: 'www.rudderlabs.com', + }, + traits: { + email: 'test@gmail.com', + anonymousId: 'anon-id', + }, + integrations: { + All: true, + }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + projectID: 'abcde', + writeKey: 'xyz', + ipAddon: true, + uaAddon: true, + urlAddon: true, + referrerAddon: true, + }, + }, + }, + ], + destType: 'keen', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + user_actual_id: 12345, + user_actual_role: 'system_admin', + request_ip: '1.1.1.1', + user_time_spent: 50000, + userId: '12345', + keen: { + addons: [ + { + input: { + ip: 'request_ip', + }, + name: 'keen:ip_to_geo', + output: 'ip_geo_info', + }, + { + input: { + ua_string: 'user_agent', + }, + name: 'keen:ua_parser', + output: 'parsed_user_agent', + }, + ], + }, + anonymousId: '00000000000000000000000000', + user: { + traits: { + anonymousId: 'anon-id', + email: 'test@gmail.com', + }, + userId: '12345', + }, + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://api.keen.io/3.0/projects/abcde/events/test track event', + userId: '12345', + headers: { + 'Content-Type': 'application/json', + Authorization: 'xyz', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + projectID: 'abcde', + writeKey: 'xyz', + ipAddon: true, + uaAddon: true, + urlAddon: true, + referrerAddon: true, + }, + }, + }, + { + batchedRequest: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + search: 'abc', + request_ip: '0.0.0.0', + title: 'Test Page', + url: 'www.rudderlabs.com', + referrer: 'Rudder', + userId: '12345', + keen: { + addons: [ + { + input: { + ip: 'request_ip', + }, + name: 'keen:ip_to_geo', + output: 'ip_geo_info', + }, + { + input: { + ua_string: 'user_agent', + }, + name: 'keen:ua_parser', + output: 'parsed_user_agent', + }, + ], + }, + anonymousId: '00000000000000000000000000', + user: { + traits: { + anonymousId: 'anon-id', + email: 'test@gmail.com', + }, + userId: '12345', + }, + path: '/test', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + }, + FORM: {}, + }, + files: {}, + endpoint: + 'https://api.keen.io/3.0/projects/abcde/events/Viewed ApplicationLoaded page', + userId: '12345', + headers: { + 'Content-Type': 'application/json', + Authorization: 'xyz', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + statusCode: 200, + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + projectID: 'abcde', + writeKey: 'xyz', + ipAddon: true, + uaAddon: true, + urlAddon: true, + referrerAddon: true, + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/kissmetrics/processor/data.ts b/test/integrations/destinations/kissmetrics/processor/data.ts new file mode 100644 index 00000000000..ecd247a956d --- /dev/null +++ b/test/integrations/destinations/kissmetrics/processor/data.ts @@ -0,0 +1,894 @@ +export const data = [ + { + name: 'kissmetrics', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + prefixProperties: true, + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Kiss Metrics', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'KISSMETRICS', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Kiss Metrics', + Transformations: [], + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originalTimestamp: '2020-01-24T06:29:02.358Z', + properties: { + path: '/tests/html/index2.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index2.html', + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.359Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'page', + userId: '', + }, + metadata: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 1, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: 'https://trk.kissmetrics.com/e', + headers: {}, + params: { + 'Page-path': '/tests/html/index2.html', + 'Page-referrer': '', + 'Page-search': '', + 'Page-title': '', + 'Page-url': 'http://localhost/tests/html/index2.html', + _k: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + _p: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + _n: 'Loaded a Page', + _t: '1579847342', + _d: 1, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + statusCode: 200, + }, + statusCode: 200, + metadata: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 1, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + }, + ], + }, + }, + }, + { + name: 'kissmetrics', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + prefixProperties: true, + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Kiss Metrics', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'KISSMETRICS', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Kiss Metrics', + Transformations: [], + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstname: 'Mickey', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + city: 'Disney-1', + country: 'India', + email: 'sayan@disney.com', + firstname: 'Sayan', + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + metadata: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 2, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: 'https://trk.kissmetrics.com/s', + headers: {}, + params: { + city: 'Disney-1', + country: 'India', + email: 'sayan@disney.com', + firstname: 'Sayan', + _k: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + _p: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + _t: '1579847342', + _d: 1, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + statusCode: 200, + }, + statusCode: 200, + metadata: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 2, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + }, + ], + }, + }, + }, + { + name: 'kissmetrics', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + prefixProperties: true, + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Kiss Metrics', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'KISSMETRICS', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Kiss Metrics', + Transformations: [], + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstname: 'Mickey', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + metadata: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 2, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: 'https://trk.kissmetrics.com/s', + headers: {}, + params: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstname: 'Mickey', + _k: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + _p: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + _t: '1579847342', + _d: 1, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + statusCode: 200, + }, + statusCode: 200, + metadata: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 2, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + }, + ], + }, + }, + }, + { + name: 'kissmetrics', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + prefixProperties: true, + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Kiss Metrics', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'KISSMETRICS', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Kiss Metrics', + Transformations: [], + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstname: 'Mickey', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: 'test revenue kissmetrics', + integrations: { + All: true, + }, + messageId: 'a6a0ad5a-bd26-4f19-8f75-38484e580fc7', + originalTimestamp: '2020-01-24T06:29:02.364Z', + properties: { + currency: 'USD', + revenue: 50, + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53710', + sentAt: '2020-01-24T06:29:02.364Z', + timestamp: '2020-01-24T11:59:02.403+05:30', + type: 'track', + userId: '', + }, + metadata: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 3, + messageId: 'a6a0ad5a-bd26-4f19-8f75-38484e580fc7', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: 'https://trk.kissmetrics.com/e', + headers: {}, + params: { + 'test revenue kissmetrics-currency': 'USD', + 'test revenue kissmetrics - revenue': 50, + 'Billing Amount': 50, + _k: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + _p: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + _n: 'test revenue kissmetrics', + _t: '1579847342', + _d: 1, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + statusCode: 200, + }, + statusCode: 200, + metadata: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 3, + messageId: 'a6a0ad5a-bd26-4f19-8f75-38484e580fc7', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + }, + ], + }, + }, + }, + { + name: 'kissmetrics', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + prefixProperties: true, + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Kiss Metrics', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'KISSMETRICS', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Kiss Metrics', + Transformations: [], + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstname: 'Mickey', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '79313729-7fe5-4204-963a-dc46f4205e4e', + originalTimestamp: '2020-01-24T06:29:02.366Z', + previousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53711', + sentAt: '2020-01-24T06:29:02.366Z', + timestamp: '2020-01-24T11:59:02.403+05:30', + type: 'alias', + userId: '1234abc', + }, + metadata: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 4, + messageId: '79313729-7fe5-4204-963a-dc46f4205e4e', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: 'https://trk.kissmetrics.com/a', + headers: {}, + params: { + _k: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + _p: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + _n: '1234abc', + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '1234abc', + statusCode: 200, + }, + statusCode: 200, + metadata: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 4, + messageId: '79313729-7fe5-4204-963a-dc46f4205e4e', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + }, + ], + }, + }, + }, + { + name: 'kissmetrics', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKey: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + prefixProperties: true, + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Kiss Metrics', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'KISSMETRICS', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Kiss Metrics', + Transformations: [], + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstname: 'Mickey', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: 'KM Order Completed', + integrations: { + All: true, + }, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + originalTimestamp: '2020-01-24T06:29:02.367Z', + properties: { + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + coupon: 'hasbros', + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + products: [ + { + category: 'Games', + image_url: 'https:///www.example.com/product/path.jpg', + name: 'Monopoly: 3rd Edition', + price: 19, + product_id: '507f1f77bcf86cd799439011', + quantity: 1, + sku: '45790-32', + url: 'https://www.example.com/product/path', + }, + { + category: 'Games', + name: 'Uno Card Game', + price: 3, + product_id: '505bd76785ebb509fc183733', + quantity: 2, + sku: '46493-32', + }, + ], + revenue: 25, + shipping: 3, + subtotal: 22.5, + tax: 2, + total: 27.5, + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53712', + sentAt: '2020-01-24T06:29:02.368Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'track', + userId: '', + }, + metadata: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 5, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: 'https://trk.kissmetrics.com/e', + headers: {}, + params: { + 'KM Order Completed-affiliation': 'Google Store', + 'KM Order Completed-checkout_id': 'fksdjfsdjfisjf9sdfjsd9f', + 'KM Order Completed-coupon': 'hasbros', + 'KM Order Completed-currency': 'USD', + 'KM Order Completed-discount': 2.5, + 'KM Order Completed-order_id': '50314b8e9bcf000000000000', + 'KM Order Completed - revenue': 25, + 'Billing Amount': 25, + 'KM Order Completed-shipping': 3, + 'KM Order Completed-subtotal': 22.5, + 'KM Order Completed-tax': 2, + 'KM Order Completed-total': 27.5, + _k: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + _p: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + _n: 'KM Order Completed', + _t: '1579847342', + _d: 1, + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + statusCode: 200, + }, + metadata: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 5, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: 'https://trk.kissmetrics.com/s', + headers: {}, + params: { + 'KM Order Completed-category': 'Games', + 'KM Order Completed-image_url': 'https:///www.example.com/product/path.jpg', + 'KM Order Completed-name': 'Monopoly: 3rd Edition', + 'KM Order Completed-price': 19, + 'KM Order Completed-product_id': '507f1f77bcf86cd799439011', + 'KM Order Completed-quantity': 1, + 'KM Order Completed-sku': '45790-32', + 'KM Order Completed-url': 'https://www.example.com/product/path', + _k: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + _p: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + statusCode: 200, + }, + metadata: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 5, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'GET', + endpoint: 'https://trk.kissmetrics.com/s', + headers: {}, + params: { + 'KM Order Completed-category': 'Games', + 'KM Order Completed-name': 'Uno Card Game', + 'KM Order Completed-price': 3, + 'KM Order Completed-product_id': '505bd76785ebb509fc183733', + 'KM Order Completed-quantity': 2, + 'KM Order Completed-sku': '46493-32', + _k: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + _p: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + statusCode: 200, + }, + metadata: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 5, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/kissmetrics/router/data.ts b/test/integrations/destinations/kissmetrics/router/data.ts new file mode 100644 index 00000000000..bba00edf961 --- /dev/null +++ b/test/integrations/destinations/kissmetrics/router/data.ts @@ -0,0 +1,293 @@ +export const data = [ + { + name: 'fb', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + apiKey: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + prefixProperties: true, + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Kiss Metrics', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'KISSMETRICS', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Kiss Metrics', + Transformations: [], + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originalTimestamp: '2020-01-24T06:29:02.358Z', + properties: { + path: '/tests/html/index2.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index2.html', + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.359Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'page', + userId: '', + }, + metadata: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 1, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + }, + { + destination: { + Config: { + apiKey: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + prefixProperties: true, + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Kiss Metrics', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'KISSMETRICS', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Kiss Metrics', + Transformations: [], + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstname: 'Mickey', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + city: 'Disney-1', + country: 'India', + email: 'sayan@disney.com', + firstname: 'Sayan', + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + metadata: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 2, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + }, + ], + destType: 'kissmetrics', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'GET', + endpoint: 'https://trk.kissmetrics.com/e', + headers: {}, + params: { + 'Page-path': '/tests/html/index2.html', + 'Page-referrer': '', + 'Page-search': '', + 'Page-title': '', + 'Page-url': 'http://localhost/tests/html/index2.html', + _k: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + _p: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + _n: 'Loaded a Page', + _t: '1579847342', + _d: 1, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + statusCode: 200, + }, + ], + metadata: [ + { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 1, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + prefixProperties: true, + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Kiss Metrics', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'KISSMETRICS', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Kiss Metrics', + Transformations: [], + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'GET', + endpoint: 'https://trk.kissmetrics.com/s', + headers: {}, + params: { + city: 'Disney-1', + country: 'India', + email: 'sayan@disney.com', + firstname: 'Sayan', + _k: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + _p: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + _t: '1579847342', + _d: 1, + }, + body: { + JSON: {}, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + statusCode: 200, + }, + ], + metadata: [ + { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + destinationId: '1WhcOCGgj9asZu850HvugU2C3Aq', + destinationType: 'KISSMETRICS', + jobId: 2, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + sourceId: '1WjrlZIy1d41MCceOrFbDVPnOPY', + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: '9432f11f70f8ce386f5110c8c924b3ec4f825256', + prefixProperties: true, + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Kiss Metrics', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'KISSMETRICS', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Kiss Metrics', + Transformations: [], + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/kochava/processor/data.ts b/test/integrations/destinations/kochava/processor/data.ts new file mode 100644 index 00000000000..06b5667c2a8 --- /dev/null +++ b/test/integrations/destinations/kochava/processor/data.ts @@ -0,0 +1,1504 @@ +export const data = [ + { + name: 'kochava', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { apiKey: '' }, + DestinationDefinition: { + Config: { cdkV2Enabled: true }, + DisplayName: 'Kochava', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'KOCHAVA', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'kochava test', + Transformations: [], + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + message: { + anonymousId: 'sampath', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '1.1.1.1', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + locale: 'en-US', + os: { name: 'macOS', version: '15.9' }, + screen: { density: 2 }, + traits: { anonymousId: 'sampath', email: 'sampath@gmail.com' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + event: 'product added', + integrations: { All: true }, + messageId: 'ea5cfab2-3961-4d8a-8187-3d1858c90a9f', + originalTimestamp: '2020-01-17T04:53:51.185Z', + properties: { name: 'sampath' }, + receivedAt: '2020-01-17T10:23:52.688+05:30', + request_ip: '0.0.0.0', + sentAt: '2020-01-17T04:53:52.667Z', + timestamp: '2020-01-17T10:23:51.206+05:30', + type: 'track', + userId: 'sampath', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://control.kochava.com/track/json', + headers: {}, + params: {}, + body: { + JSON: { + action: 'event', + kochava_app_id: '', + kochava_device_id: 'sampath', + data: { + app_tracking_transparency: { att: false }, + currency: 'USD', + device_ids: { idfa: '', idfv: '', adid: '', android_id: '' }, + device_ver: '', + usertime: 1579236831206, + origination_ip: '1.1.1.1', + device_ua: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + app_name: 'RudderLabs JavaScript SDK', + app_version: '1.0.0', + app_short_string: '1.0.0', + os_version: '15.9', + screen_dpi: 2, + locale: 'en-US', + event_name: 'Add to Cart', + event_data: { name: 'sampath' }, + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'sampath', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'kochava', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '1.1.1.1', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + Config: { apiKey: '' }, + DestinationDefinition: { + Config: { cdkV2Enabled: true }, + DisplayName: 'Kochava', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'KOCHAVA', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'kochava test', + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'message type identify is not supported: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message type identify is not supported', + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statTags: { + destType: 'KOCHAVA', + errorCategory: 'dataValidation', + destinationId: 'destId', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + workspaceId: 'wspId', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'kochava', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '1.1.1.1', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + type: 'screen', + name: 'Home Screen', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + Config: { apiKey: '' }, + DestinationDefinition: { + Config: { cdkV2Enabled: true }, + DisplayName: 'Kochava', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'KOCHAVA', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'kochava test', + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://control.kochava.com/track/json', + headers: {}, + params: {}, + body: { + JSON: { + action: 'event', + kochava_app_id: '', + kochava_device_id: '00000000000000000000000000', + data: { + app_tracking_transparency: { att: false }, + currency: 'USD', + device_ids: { idfa: '', idfv: '', adid: '', android_id: '' }, + device_ver: '', + os_version: '', + usertime: 1571043797562, + device_ua: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + app_name: 'RudderLabs JavaScript SDK', + app_version: '1.0.0', + app_short_string: '1.0.0', + screen_dpi: 2, + locale: 'en-US', + event_name: 'screen view', + event_data: {}, + origination_ip: '1.1.1.1', + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'kochava', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '1.1.1.1', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + type: 'screen', + properties: { name: 'Home Screen' }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + Config: { apiKey: '' }, + DestinationDefinition: { + Config: { cdkV2Enabled: true }, + DisplayName: 'Kochava', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'KOCHAVA', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'kochava test', + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://control.kochava.com/track/json', + headers: {}, + params: {}, + body: { + JSON: { + action: 'event', + kochava_app_id: '', + kochava_device_id: '00000000000000000000000000', + data: { + app_tracking_transparency: { att: false }, + currency: 'USD', + device_ids: { idfa: '', idfv: '', adid: '', android_id: '' }, + device_ver: '', + os_version: '', + usertime: 1571043797562, + device_ua: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + app_name: 'RudderLabs JavaScript SDK', + app_version: '1.0.0', + app_short_string: '1.0.0', + screen_dpi: 2, + locale: 'en-US', + event_name: 'screen view Home Screen', + event_data: { name: 'Home Screen' }, + origination_ip: '1.1.1.1', + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'kochava', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + adTrackingEnabled: true, + advertisingId: 'some_adid', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + messageId: 'id1', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + sentAt: '2020-03-12T09:05:13.042Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + Config: { apiKey: '' }, + DestinationDefinition: { + Config: { cdkV2Enabled: true }, + DisplayName: 'Kochava', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'KOCHAVA', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'kochava test', + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://control.kochava.com/track/json', + headers: {}, + params: {}, + body: { + JSON: { + action: 'event', + kochava_app_id: '', + kochava_device_id: '5094f5704b9cf2b3', + data: { + app_tracking_transparency: { att: false }, + usertime: 1584003903421, + app_version: '1', + device_ver: 'Android SDK built for x86-Android-8.1.0', + device_ids: { + idfa: '', + idfv: '', + adid: 'some_adid', + android_id: '5094f5704b9cf2b3', + }, + device_ua: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + event_name: 'screen view MainActivity', + currency: 'USD', + event_data: { name: 'MainActivity', automatic: true }, + app_name: 'LeanPlumIntegrationAndroid', + app_short_string: '1.0', + locale: 'en-US', + os_version: '8.1.0', + screen_dpi: 420, + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'kochava', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + adTrackingEnabled: true, + advertisingId: 'some_adid', + attTrackingStatus: 3, + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'iOS', version: '14.5' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + messageId: 'id1', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + sentAt: '2020-03-12T09:05:13.042Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + Config: { apiKey: '' }, + DestinationDefinition: { + Config: { cdkV2Enabled: true }, + DisplayName: 'Kochava', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'KOCHAVA', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'kochava test', + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://control.kochava.com/track/json', + headers: {}, + params: {}, + body: { + JSON: { + action: 'event', + kochava_app_id: '', + kochava_device_id: '5094f5704b9cf2b3', + data: { + app_tracking_transparency: { att: true }, + usertime: 1584003903421, + app_version: '1', + device_ver: 'Android SDK built for x86-iOS-14.5', + device_ids: { + idfa: 'some_adid', + idfv: '5094f5704b9cf2b3', + adid: '', + android_id: '', + }, + device_ua: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + event_name: 'screen view MainActivity', + currency: 'USD', + event_data: { name: 'MainActivity', automatic: true }, + app_name: 'LeanPlumIntegrationAndroid', + app_short_string: '1.0', + locale: 'en-US', + os_version: '14.5', + screen_dpi: 420, + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'kochava', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'ipados', + adTrackingEnabled: true, + advertisingId: 'some_adid', + attTrackingStatus: 3, + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'ipados' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + messageId: 'id1', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { apiKey: '' }, + DestinationDefinition: { + Config: { cdkV2Enabled: true }, + DisplayName: 'Kochava', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'KOCHAVA', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'kochava test', + Transformations: [], + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://control.kochava.com/track/json', + headers: {}, + params: {}, + body: { + JSON: { + action: 'event', + kochava_app_id: '', + kochava_device_id: '5094f5704b9cf2b3', + data: { + app_tracking_transparency: { att: true }, + usertime: 1584003903421, + app_version: '1', + device_ver: '', + device_ids: { + idfa: 'some_adid', + idfv: '5094f5704b9cf2b3', + adid: '', + android_id: '', + }, + device_ua: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + event_name: 'screen view MainActivity', + currency: 'USD', + event_data: { name: 'MainActivity', automatic: true }, + app_name: 'LeanPlumIntegrationAndroid', + app_short_string: '1.0', + locale: 'en-US', + screen_dpi: 420, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'kochava', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + adTrackingEnabled: true, + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + messageId: 'id1', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + sentAt: '2020-03-12T09:05:13.042Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + Config: { apiKey: '' }, + DestinationDefinition: { + Config: { cdkV2Enabled: true }, + DisplayName: 'Kochava', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'KOCHAVA', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'kochava test', + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://control.kochava.com/track/json', + headers: {}, + params: {}, + body: { + JSON: { + action: 'event', + kochava_app_id: '', + kochava_device_id: '5094f5704b9cf2b3', + data: { + app_tracking_transparency: { att: false }, + usertime: 1584003903421, + app_version: '1', + device_ver: 'Android SDK built for x86-Android-8.1.0', + device_ids: { idfa: '', idfv: '', adid: '', android_id: '5094f5704b9cf2b3' }, + device_ua: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + event_name: 'screen view MainActivity', + currency: 'USD', + event_data: { name: 'MainActivity', automatic: true }, + app_name: 'LeanPlumIntegrationAndroid', + app_short_string: '1.0', + locale: 'en-US', + os_version: '8.1.0', + screen_dpi: 420, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'kochava', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + adTrackingEnabled: true, + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + messageId: 'id1', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { apiKey: '' }, + DestinationDefinition: { + Config: { cdkV2Enabled: true }, + DisplayName: 'Kochava', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'KOCHAVA', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'kochava test', + Transformations: [], + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://control.kochava.com/track/json', + headers: {}, + params: {}, + body: { + JSON: { + action: 'event', + kochava_app_id: '', + kochava_device_id: '5094f5704b9cf2b3', + data: { + app_tracking_transparency: { att: false }, + usertime: 1584003903421, + app_version: '1', + device_ver: '', + device_ids: { idfa: '', idfv: '', adid: '', android_id: '' }, + device_ua: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + event_name: 'screen view MainActivity', + currency: 'USD', + event_data: { name: 'MainActivity', automatic: true }, + app_name: 'LeanPlumIntegrationAndroid', + app_short_string: '1.0', + locale: 'en-US', + screen_dpi: 420, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'kochava', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + locale: 'en-US', + ip: '1.1.1.1', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + type: 'screen', + name: 'Home Screen', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + timestamp: '2019-10-14T09:03:17.562Z', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + Config: { apiKey: '' }, + DestinationDefinition: { + Config: { cdkV2Enabled: true }, + DisplayName: 'Kochava', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'KOCHAVA', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'kochava test', + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://control.kochava.com/track/json', + headers: {}, + params: {}, + body: { + JSON: { + action: 'event', + kochava_app_id: '', + kochava_device_id: '00000000000000000000000000', + data: { + app_tracking_transparency: { att: false }, + usertime: 1571043797562, + app_version: '1.0.0', + device_ver: '', + device_ids: { idfa: '', idfv: '', adid: '', android_id: '' }, + device_ua: '', + event_name: 'screen view', + origination_ip: '1.1.1.1', + currency: 'USD', + event_data: {}, + app_name: 'RudderLabs JavaScript SDK', + app_short_string: '1.0.0', + locale: 'en-US', + os_version: '', + screen_dpi: 2, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'kochava', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + locale: 'en-US', + ip: '1.1.1.1', + os: { name: 'ios', version: '' }, + device: { attTrackingStatus: 3 }, + screen: { density: 2 }, + }, + type: 'screen', + name: 'Home Screen', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + timestamp: '2019-10-14T09:03:17.562Z', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + Config: { apiKey: '' }, + DestinationDefinition: { + Config: { cdkV2Enabled: true }, + DisplayName: 'Kochava', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'KOCHAVA', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'kochava test', + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://control.kochava.com/track/json', + headers: {}, + params: {}, + body: { + JSON: { + action: 'event', + kochava_app_id: '', + kochava_device_id: '00000000000000000000000000', + data: { + app_tracking_transparency: { att: true }, + usertime: 1571043797562, + app_version: '1.0.0', + device_ver: '', + device_ids: { + idfa: '', + idfv: '00000000000000000000000000', + adid: '', + android_id: '', + }, + device_ua: '', + event_name: 'screen view', + origination_ip: '1.1.1.1', + currency: 'USD', + event_data: {}, + app_name: 'RudderLabs JavaScript SDK', + app_short_string: '1.0.0', + locale: 'en-US', + os_version: '', + screen_dpi: 2, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'kochava', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + locale: 'en-US', + ip: '1.1.1.1', + os: { name: 'tvOS', version: '' }, + screen: { density: 2 }, + }, + type: 'screen', + name: 'Home Screen', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + timestamp: '2019-10-14T09:03:17.562Z', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + Config: { apiKey: '' }, + DestinationDefinition: { + Config: { cdkV2Enabled: true }, + DisplayName: 'Kochava', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'KOCHAVA', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'kochava test', + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://control.kochava.com/track/json', + headers: {}, + params: {}, + body: { + JSON: { + action: 'event', + kochava_app_id: '', + kochava_device_id: '00000000000000000000000000', + data: { + app_tracking_transparency: { att: false }, + usertime: 1571043797562, + app_version: '1.0.0', + device_ver: '', + device_ids: { + idfa: '', + idfv: '00000000000000000000000000', + adid: '', + android_id: '', + }, + device_ua: '', + event_name: 'screen view', + origination_ip: '1.1.1.1', + currency: 'USD', + event_data: {}, + app_name: 'RudderLabs JavaScript SDK', + app_short_string: '1.0.0', + locale: 'en-US', + os_version: '', + screen_dpi: 2, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'kochava', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + locale: 'en-US', + ip: '1.1.1.1', + os: { name: 'android', version: '' }, + screen: { density: 2 }, + }, + type: 'screen', + name: 'Home Screen', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + timestamp: '2019-10-14T09:03:17.562Z', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + userId: '123456', + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + destination: { + Config: { apiKey: '' }, + DestinationDefinition: { + Config: { cdkV2Enabled: true }, + DisplayName: 'Kochava', + ID: '1WTpBSTiL3iAUHUdW7rHT4sawgU', + Name: 'KOCHAVA', + }, + Enabled: true, + ID: '1WTpIHpH7NTBgjeiUPW1kCUgZGI', + Name: 'kochava test', + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://control.kochava.com/track/json', + headers: {}, + params: {}, + body: { + JSON: { + action: 'event', + kochava_app_id: '', + kochava_device_id: '00000000000000000000000000', + data: { + app_tracking_transparency: { att: false }, + usertime: 1571043797562, + app_version: '1.0.0', + device_ver: '', + device_ids: { + idfa: '', + idfv: '', + adid: '', + android_id: '00000000000000000000000000', + }, + device_ua: '', + event_name: 'screen view', + origination_ip: '1.1.1.1', + currency: 'USD', + event_data: {}, + app_name: 'RudderLabs JavaScript SDK', + app_short_string: '1.0.0', + locale: 'en-US', + os_version: '', + screen_dpi: 2, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/lambda/processor/data.ts b/test/integrations/destinations/lambda/processor/data.ts new file mode 100644 index 00000000000..540de25417d --- /dev/null +++ b/test/integrations/destinations/lambda/processor/data.ts @@ -0,0 +1,498 @@ +export const data = [ + { + name: 'lambda', + description: 'Simple Identify call', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + sentAt: '2022-08-03T10:44:55.382+05:30', + userId: 'user113', + context: { + os: { name: 'android' }, + device: { name: 'Mi', token: 'qwertyuioprtyuiop' }, + traits: { name: 'User2', email: 'user112@mail.com' }, + }, + rudderId: 'ed33ef22-569d-44b1-a6cb-063c69dca8f0', + messageId: '29beef33-2771-45fd-adb4-4376aa6d72d9', + timestamp: '2022-08-03T10:44:54.942+05:30', + receivedAt: '2022-08-03T10:44:54.943+05:30', + request_ip: '[::1]', + originalTimestamp: '2022-08-03T10:44:55.382+05:30', + }, + metadata: { + userId: 'user113<<>>user113', + jobId: 10, + sourceId: '2CFEootdF2eQh0CGeD0jdVybP5A', + destinationId: '2CojwY2YqpiTqfBPrMAUN8orgHA', + attemptNum: 0, + receivedAt: '2022-08-03T10:44:54.943+05:30', + createdAt: '2022-08-03T05:14:55.384Z', + firstAttemptedAt: '', + transformAt: 'router', + workspaceId: '2ANaDOTAzxboCOF86FkRGMEJ5F7', + secret: null, + jobsT: { + UUID: '53927e88-2d5c-4274-ad72-2e1c14a96301', + JobID: 10, + UserID: 'user113<<>>user113', + CreatedAt: '2022-08-03T05:14:55.384207Z', + ExpireAt: '2022-08-03T05:14:55.384207Z', + CustomVal: 'LAMBDA', + EventCount: 1, + EventPayload: { + type: 'identify', + sentAt: '2022-08-03T10:44:55.382+05:30', + userId: 'user113', + context: { + os: { name: 'android' }, + device: { name: 'Mi', token: 'qwertyuioprtyuiop' }, + traits: { name: 'User2', email: 'user112@mail.com' }, + }, + rudderId: 'ed33ef22-569d-44b1-a6cb-063c69dca8f0', + messageId: '29beef33-2771-45fd-adb4-4376aa6d72d9', + timestamp: '2022-08-03T10:44:54.942+05:30', + receivedAt: '2022-08-03T10:44:54.943+05:30', + request_ip: '[::1]', + originalTimestamp: '2022-08-03T10:44:55.382+05:30', + }, + PayloadSize: 550, + LastJobStatus: { + JobID: 0, + JobState: '', + AttemptNum: 0, + ExecTime: '0001-01-01T00:00:00Z', + RetryTime: '0001-01-01T00:00:00Z', + ErrorCode: '', + ErrorResponse: null, + Parameters: null, + WorkspaceId: '', + }, + Parameters: { + record_id: null, + source_id: '2CFEootdF2eQh0CGeD0jdVybP5A', + event_name: '', + event_type: 'identify', + message_id: '29beef33-2771-45fd-adb4-4376aa6d72d9', + received_at: '2022-08-03T10:44:54.943+05:30', + workspaceId: '2ANaDOTAzxboCOF86FkRGMEJ5F7', + transform_at: 'router', + source_job_id: '', + destination_id: '2CojwY2YqpiTqfBPrMAUN8orgHA', + gateway_job_id: 10, + source_task_id: '', + source_batch_id: '', + source_category: '', + source_job_run_id: '', + source_task_run_id: '', + source_definition_id: '2CCxgViQJACgWABA6h83wlXnE1k', + destination_definition_id: '', + }, + WorkspaceId: '2ANaDOTAzxboCOF86FkRGMEJ5F7', + }, + pickedAtTime: '2022-08-03T10:44:56.193361+05:30', + resultSetID: 10, + }, + destination: { + ID: '2CojwY2YqpiTqfBPrMAUN8orgHA', + Name: 'Lambda test', + DestinationDefinition: { + ID: '2CoiaHPaRb79wpSG3wZWfrG3B0n', + Name: 'LAMBDA', + DisplayName: 'AWS Lambda', + Config: { + destConfig: { + defaultConfig: [ + 'region', + 'accessKeyId', + 'accessKey', + 'lambda', + 'invocationType', + 'enableBatchInput', + 'clientContext', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'accessKey'], + supportedMessageTypes: ['identify', 'page', 'screen', 'track', 'alias', 'group'], + supportedSourceTypes: [ + 'amp', + 'android', + 'cordova', + 'cloud', + 'flutter', + 'ios', + 'reactnative', + 'unity', + 'warehouse', + 'web', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + accessKeyId: '', + clientContext: '', + enableBatchInput: false, + invocationType: 'Event', + lambda: 'testFunction', + region: 'us-west-2', + accessKey: '', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + RevisionID: '2CojwWiWjNghiGbfuRcwfs6Bt5q', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + userId: 'user113<<>>user113', + jobId: 10, + sourceId: '2CFEootdF2eQh0CGeD0jdVybP5A', + destinationId: '2CojwY2YqpiTqfBPrMAUN8orgHA', + attemptNum: 0, + receivedAt: '2022-08-03T10:44:54.943+05:30', + createdAt: '2022-08-03T05:14:55.384Z', + firstAttemptedAt: '', + transformAt: 'router', + workspaceId: '2ANaDOTAzxboCOF86FkRGMEJ5F7', + secret: null, + jobsT: { + UUID: '53927e88-2d5c-4274-ad72-2e1c14a96301', + JobID: 10, + UserID: 'user113<<>>user113', + CreatedAt: '2022-08-03T05:14:55.384207Z', + ExpireAt: '2022-08-03T05:14:55.384207Z', + CustomVal: 'LAMBDA', + EventCount: 1, + EventPayload: { + type: 'identify', + sentAt: '2022-08-03T10:44:55.382+05:30', + userId: 'user113', + context: { + os: { name: 'android' }, + device: { name: 'Mi', token: 'qwertyuioprtyuiop' }, + traits: { name: 'User2', email: 'user112@mail.com' }, + }, + rudderId: 'ed33ef22-569d-44b1-a6cb-063c69dca8f0', + messageId: '29beef33-2771-45fd-adb4-4376aa6d72d9', + timestamp: '2022-08-03T10:44:54.942+05:30', + receivedAt: '2022-08-03T10:44:54.943+05:30', + request_ip: '[::1]', + originalTimestamp: '2022-08-03T10:44:55.382+05:30', + }, + PayloadSize: 550, + LastJobStatus: { + JobID: 0, + JobState: '', + AttemptNum: 0, + ExecTime: '0001-01-01T00:00:00Z', + RetryTime: '0001-01-01T00:00:00Z', + ErrorCode: '', + ErrorResponse: null, + Parameters: null, + WorkspaceId: '', + }, + Parameters: { + record_id: null, + source_id: '2CFEootdF2eQh0CGeD0jdVybP5A', + event_name: '', + event_type: 'identify', + message_id: '29beef33-2771-45fd-adb4-4376aa6d72d9', + received_at: '2022-08-03T10:44:54.943+05:30', + workspaceId: '2ANaDOTAzxboCOF86FkRGMEJ5F7', + transform_at: 'router', + source_job_id: '', + destination_id: '2CojwY2YqpiTqfBPrMAUN8orgHA', + gateway_job_id: 10, + source_task_id: '', + source_batch_id: '', + source_category: '', + source_job_run_id: '', + source_task_run_id: '', + source_definition_id: '2CCxgViQJACgWABA6h83wlXnE1k', + destination_definition_id: '', + }, + WorkspaceId: '2ANaDOTAzxboCOF86FkRGMEJ5F7', + }, + pickedAtTime: '2022-08-03T10:44:56.193361+05:30', + resultSetID: 10, + }, + output: { + payload: + '{"type":"identify","sentAt":"2022-08-03T10:44:55.382+05:30","userId":"user113","context":{"os":{"name":"android"},"device":{"name":"Mi","token":"qwertyuioprtyuiop"},"traits":{"name":"User2","email":"user112@mail.com"}},"rudderId":"ed33ef22-569d-44b1-a6cb-063c69dca8f0","messageId":"29beef33-2771-45fd-adb4-4376aa6d72d9","timestamp":"2022-08-03T10:44:54.942+05:30","receivedAt":"2022-08-03T10:44:54.943+05:30","request_ip":"[::1]","originalTimestamp":"2022-08-03T10:44:55.382+05:30"}', + destConfig: { clientContext: '', invocationType: 'Event', lambda: 'testFunction' }, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'lambda', + description: 'Destination config not present', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + sentAt: '2022-08-03T10:44:55.382+05:30', + userId: 'user113', + context: { + os: { name: 'android' }, + device: { name: 'Mi', token: 'qwertyuioprtyuiop' }, + traits: { name: 'User2', email: 'user112@mail.com' }, + }, + rudderId: 'ed33ef22-569d-44b1-a6cb-063c69dca8f0', + messageId: '29beef33-2771-45fd-adb4-4376aa6d72d9', + timestamp: '2022-08-03T10:44:54.942+05:30', + receivedAt: '2022-08-03T10:44:54.943+05:30', + request_ip: '[::1]', + originalTimestamp: '2022-08-03T10:44:55.382+05:30', + }, + metadata: { + userId: 'user113<<>>user113', + jobId: 10, + sourceId: '2CFEootdF2eQh0CGeD0jdVybP5A', + destinationId: '2CojwY2YqpiTqfBPrMAUN8orgHA', + attemptNum: 0, + receivedAt: '2022-08-03T10:44:54.943+05:30', + createdAt: '2022-08-03T05:14:55.384Z', + firstAttemptedAt: '', + transformAt: 'router', + workspaceId: '2ANaDOTAzxboCOF86FkRGMEJ5F7', + secret: null, + jobsT: { + UUID: '53927e88-2d5c-4274-ad72-2e1c14a96301', + JobID: 10, + UserID: 'user113<<>>user113', + CreatedAt: '2022-08-03T05:14:55.384207Z', + ExpireAt: '2022-08-03T05:14:55.384207Z', + CustomVal: 'LAMBDA', + EventCount: 1, + EventPayload: { + type: 'identify', + sentAt: '2022-08-03T10:44:55.382+05:30', + userId: 'user113', + context: { + os: { name: 'android' }, + device: { name: 'Mi', token: 'qwertyuioprtyuiop' }, + traits: { name: 'User2', email: 'user112@mail.com' }, + }, + rudderId: 'ed33ef22-569d-44b1-a6cb-063c69dca8f0', + messageId: '29beef33-2771-45fd-adb4-4376aa6d72d9', + timestamp: '2022-08-03T10:44:54.942+05:30', + receivedAt: '2022-08-03T10:44:54.943+05:30', + request_ip: '[::1]', + originalTimestamp: '2022-08-03T10:44:55.382+05:30', + }, + PayloadSize: 550, + LastJobStatus: { + JobID: 0, + JobState: '', + AttemptNum: 0, + ExecTime: '0001-01-01T00:00:00Z', + RetryTime: '0001-01-01T00:00:00Z', + ErrorCode: '', + ErrorResponse: null, + Parameters: null, + WorkspaceId: '', + }, + Parameters: { + record_id: null, + source_id: '2CFEootdF2eQh0CGeD0jdVybP5A', + event_name: '', + event_type: 'identify', + message_id: '29beef33-2771-45fd-adb4-4376aa6d72d9', + received_at: '2022-08-03T10:44:54.943+05:30', + workspaceId: '2ANaDOTAzxboCOF86FkRGMEJ5F7', + transform_at: 'router', + source_job_id: '', + destination_id: '2CojwY2YqpiTqfBPrMAUN8orgHA', + gateway_job_id: 10, + source_task_id: '', + source_batch_id: '', + source_category: '', + source_job_run_id: '', + source_task_run_id: '', + source_definition_id: '2CCxgViQJACgWABA6h83wlXnE1k', + destination_definition_id: '', + }, + WorkspaceId: '2ANaDOTAzxboCOF86FkRGMEJ5F7', + }, + pickedAtTime: '2022-08-03T10:44:56.193361+05:30', + resultSetID: 10, + }, + destination: { + ID: '2CojwY2YqpiTqfBPrMAUN8orgHA', + Name: 'Lambda test', + DestinationDefinition: { + ID: '2CoiaHPaRb79wpSG3wZWfrG3B0n', + Name: 'LAMBDA', + DisplayName: 'AWS Lambda', + Config: { + destConfig: { + defaultConfig: [ + 'region', + 'accessKeyId', + 'accessKey', + 'lambda', + 'invocationType', + 'enableBatchInput', + 'clientContext', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'accessKey'], + supportedMessageTypes: ['identify', 'page', 'screen', 'track', 'alias', 'group'], + supportedSourceTypes: [ + 'amp', + 'android', + 'cordova', + 'cloud', + 'flutter', + 'ios', + 'reactnative', + 'unity', + 'warehouse', + 'web', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + RevisionID: '2CojwWiWjNghiGbfuRcwfs6Bt5q', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'destination.Config cannot be undefined', + metadata: { + userId: 'user113<<>>user113', + jobId: 10, + sourceId: '2CFEootdF2eQh0CGeD0jdVybP5A', + destinationId: '2CojwY2YqpiTqfBPrMAUN8orgHA', + attemptNum: 0, + receivedAt: '2022-08-03T10:44:54.943+05:30', + createdAt: '2022-08-03T05:14:55.384Z', + firstAttemptedAt: '', + transformAt: 'router', + workspaceId: '2ANaDOTAzxboCOF86FkRGMEJ5F7', + secret: null, + jobsT: { + UUID: '53927e88-2d5c-4274-ad72-2e1c14a96301', + JobID: 10, + UserID: 'user113<<>>user113', + CreatedAt: '2022-08-03T05:14:55.384207Z', + ExpireAt: '2022-08-03T05:14:55.384207Z', + CustomVal: 'LAMBDA', + EventCount: 1, + EventPayload: { + type: 'identify', + sentAt: '2022-08-03T10:44:55.382+05:30', + userId: 'user113', + context: { + os: { name: 'android' }, + device: { name: 'Mi', token: 'qwertyuioprtyuiop' }, + traits: { name: 'User2', email: 'user112@mail.com' }, + }, + rudderId: 'ed33ef22-569d-44b1-a6cb-063c69dca8f0', + messageId: '29beef33-2771-45fd-adb4-4376aa6d72d9', + timestamp: '2022-08-03T10:44:54.942+05:30', + receivedAt: '2022-08-03T10:44:54.943+05:30', + request_ip: '[::1]', + originalTimestamp: '2022-08-03T10:44:55.382+05:30', + }, + PayloadSize: 550, + LastJobStatus: { + JobID: 0, + JobState: '', + AttemptNum: 0, + ExecTime: '0001-01-01T00:00:00Z', + RetryTime: '0001-01-01T00:00:00Z', + ErrorCode: '', + ErrorResponse: null, + Parameters: null, + WorkspaceId: '', + }, + Parameters: { + record_id: null, + source_id: '2CFEootdF2eQh0CGeD0jdVybP5A', + event_name: '', + event_type: 'identify', + message_id: '29beef33-2771-45fd-adb4-4376aa6d72d9', + received_at: '2022-08-03T10:44:54.943+05:30', + workspaceId: '2ANaDOTAzxboCOF86FkRGMEJ5F7', + transform_at: 'router', + source_job_id: '', + destination_id: '2CojwY2YqpiTqfBPrMAUN8orgHA', + gateway_job_id: 10, + source_task_id: '', + source_batch_id: '', + source_category: '', + source_job_run_id: '', + source_task_run_id: '', + source_definition_id: '2CCxgViQJACgWABA6h83wlXnE1k', + destination_definition_id: '', + }, + WorkspaceId: '2ANaDOTAzxboCOF86FkRGMEJ5F7', + }, + pickedAtTime: '2022-08-03T10:44:56.193361+05:30', + resultSetID: 10, + }, + statTags: { + destType: 'LAMBDA', + errorCategory: 'dataValidation', + destinationId: '2CojwY2YqpiTqfBPrMAUN8orgHA', + workspaceId: '2ANaDOTAzxboCOF86FkRGMEJ5F7', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/lambda/router/data.ts b/test/integrations/destinations/lambda/router/data.ts new file mode 100644 index 00000000000..37b13e4d2a4 --- /dev/null +++ b/test/integrations/destinations/lambda/router/data.ts @@ -0,0 +1,38788 @@ +export const data = [ + { + name: 'lambda', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'identify', + sentAt: '2022-08-18T08:43:15.539+05:30', + userId: 'identified user id', + context: { + ip: '14.5.67.21', + traits: { + data: [ + { + id: 6104546, + url: 'https://api.github.com/repos/mralexgray/-REPONAME', + fork: false, + name: '-REPONAME', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/-REPONAME.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk2MTA0NTQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/-REPONAME.git', + svn_url: 'https://github.com/mralexgray/-REPONAME', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/-REPONAME', + keys_url: 'https://api.github.com/repos/mralexgray/-REPONAME/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/-REPONAME/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/-REPONAME.git', + forks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/forks', + full_name: 'mralexgray/-REPONAME', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/pulls{/number}', + pushed_at: '2012-10-06T16:37:39Z', + teams_url: 'https://api.github.com/repos/mralexgray/-REPONAME/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/trees{/sha}', + created_at: '2012-10-06T16:37:39Z', + events_url: 'https://api.github.com/repos/mralexgray/-REPONAME/events', + has_issues: true, + issues_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/-REPONAME/merges', + mirror_url: null, + updated_at: '2013-01-12T13:39:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 104510411, + url: 'https://api.github.com/repos/mralexgray/...', + fork: true, + name: '...', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/....git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ1MTA0MTE=', + private: false, + ssh_url: 'git@github.com:mralexgray/....git', + svn_url: 'https://github.com/mralexgray/...', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'https://driesvints.com/blog/getting-started-with-dotfiles', + html_url: 'https://github.com/mralexgray/...', + keys_url: 'https://api.github.com/repos/mralexgray/.../keys{/key_id}', + language: 'Shell', + tags_url: 'https://api.github.com/repos/mralexgray/.../tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/.../git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/....git', + forks_url: 'https://api.github.com/repos/mralexgray/.../forks', + full_name: 'mralexgray/...', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/.../hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/.../pulls{/number}', + pushed_at: '2017-09-15T08:27:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/.../teams', + trees_url: 'https://api.github.com/repos/mralexgray/.../git/trees{/sha}', + created_at: '2017-09-22T19:19:42Z', + events_url: 'https://api.github.com/repos/mralexgray/.../events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/.../issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/.../labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/.../merges', + mirror_url: null, + updated_at: '2017-09-22T19:20:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/.../{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/.../commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/.../compare/{base}...{head}', + description: ':computer: Public repo for my personal dotfiles.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/.../branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/.../comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/.../contents/{+path}', + git_refs_url: 'https://api.github.com/repos/mralexgray/.../git/refs{/sha}', + git_tags_url: 'https://api.github.com/repos/mralexgray/.../git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/.../releases{/id}', + statuses_url: 'https://api.github.com/repos/mralexgray/.../statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/.../assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/.../downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/.../languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/.../milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/.../stargazers', + watchers_count: 0, + deployments_url: 'https://api.github.com/repos/mralexgray/.../deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/.../git/commits{/sha}', + subscribers_url: 'https://api.github.com/repos/mralexgray/.../subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/.../contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/.../issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/.../subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/.../collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/.../issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/.../notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 58656723, + url: 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol', + fork: true, + name: '2200087-Serial-Protocol', + size: 41, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/2200087-Serial-Protocol.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1ODY1NjcyMw==', + private: false, + ssh_url: 'git@github.com:mralexgray/2200087-Serial-Protocol.git', + svn_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://daviddworken.com', + html_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + keys_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/keys{/key_id}', + language: 'Python', + tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/2200087-Serial-Protocol.git', + forks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/forks', + full_name: 'mralexgray/2200087-Serial-Protocol', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/pulls{/number}', + pushed_at: '2016-05-12T16:07:24Z', + teams_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/trees{/sha}', + created_at: '2016-05-12T16:05:28Z', + events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/merges', + mirror_url: null, + updated_at: '2016-05-12T16:05:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/compare/{base}...{head}', + description: + "A reverse engineered protocol description and accompanying code for Radioshack's 2200087 multimeter", + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13121042, + url: 'https://api.github.com/repos/mralexgray/ace', + fork: true, + name: 'ace', + size: 21080, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ace.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzEyMTA0Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/ace.git', + svn_url: 'https://github.com/mralexgray/ace', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ace.c9.io', + html_url: 'https://github.com/mralexgray/ace', + keys_url: 'https://api.github.com/repos/mralexgray/ace/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/ace/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/ace/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ace.git', + forks_url: 'https://api.github.com/repos/mralexgray/ace/forks', + full_name: 'mralexgray/ace', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ace/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/ace/pulls{/number}', + pushed_at: '2013-10-26T12:34:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/ace/teams', + trees_url: 'https://api.github.com/repos/mralexgray/ace/git/trees{/sha}', + created_at: '2013-09-26T11:58:10Z', + events_url: 'https://api.github.com/repos/mralexgray/ace/events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/ace/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/ace/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ace/merges', + mirror_url: null, + updated_at: '2013-10-26T12:34:49Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ace/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/ace/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ace/compare/{base}...{head}', + description: 'Ace (Ajax.org Cloud9 Editor)', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ace/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ace/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ace/contents/{+path}', + git_refs_url: 'https://api.github.com/repos/mralexgray/ace/git/refs{/sha}', + git_tags_url: 'https://api.github.com/repos/mralexgray/ace/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/ace/releases{/id}', + statuses_url: 'https://api.github.com/repos/mralexgray/ace/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ace/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/ace/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/ace/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ace/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/ace/stargazers', + watchers_count: 0, + deployments_url: 'https://api.github.com/repos/mralexgray/ace/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ace/git/commits{/sha}', + subscribers_url: 'https://api.github.com/repos/mralexgray/ace/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ace/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ace/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ace/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ace/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ace/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ace/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10791045, + url: 'https://api.github.com/repos/mralexgray/ACEView', + fork: true, + name: 'ACEView', + size: 1733, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ACEView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDc5MTA0NQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ACEView.git', + svn_url: 'https://github.com/mralexgray/ACEView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/ACEView', + keys_url: 'https://api.github.com/repos/mralexgray/ACEView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ACEView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ACEView.git', + forks_url: 'https://api.github.com/repos/mralexgray/ACEView/forks', + full_name: 'mralexgray/ACEView', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ACEView/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/ACEView/pulls{/number}', + pushed_at: '2014-05-09T01:36:23Z', + teams_url: 'https://api.github.com/repos/mralexgray/ACEView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/trees{/sha}', + created_at: '2013-06-19T12:15:04Z', + events_url: 'https://api.github.com/repos/mralexgray/ACEView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/ACEView/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ACEView/merges', + mirror_url: null, + updated_at: '2015-11-24T01:14:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ACEView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ACEView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ACEView/compare/{base}...{head}', + description: 'Use the wonderful ACE editor in your Cocoa applications', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ACEView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ACEView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ACEView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ACEView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ACEView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ACEView/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/ACEView/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/ACEView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ACEView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ACEView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ACEView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ACEView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ACEView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ACEView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13623648, + url: 'https://api.github.com/repos/mralexgray/ActiveLog', + fork: true, + name: 'ActiveLog', + size: 60, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ActiveLog.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzYyMzY0OA==', + private: false, + ssh_url: 'git@github.com:mralexgray/ActiveLog.git', + svn_url: 'https://github.com/mralexgray/ActiveLog', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://deepitpro.com/en/articles/ActiveLog/info/', + html_url: 'https://github.com/mralexgray/ActiveLog', + keys_url: 'https://api.github.com/repos/mralexgray/ActiveLog/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ActiveLog/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ActiveLog.git', + forks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/forks', + full_name: 'mralexgray/ActiveLog', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/pulls{/number}', + pushed_at: '2011-07-03T06:28:59Z', + teams_url: 'https://api.github.com/repos/mralexgray/ActiveLog/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/trees{/sha}', + created_at: '2013-10-16T15:52:37Z', + events_url: 'https://api.github.com/repos/mralexgray/ActiveLog/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ActiveLog/merges', + mirror_url: null, + updated_at: '2013-10-16T15:52:37Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/compare/{base}...{head}', + description: 'Shut up all logs with active filter.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9716210, + url: 'https://api.github.com/repos/mralexgray/adium', + fork: false, + name: 'adium', + size: 277719, + forks: 37, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/adium.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk5NzE2MjEw', + private: false, + ssh_url: 'git@github.com:mralexgray/adium.git', + svn_url: 'https://github.com/mralexgray/adium', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/adium', + keys_url: 'https://api.github.com/repos/mralexgray/adium/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/adium/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/adium/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/adium.git', + forks_url: 'https://api.github.com/repos/mralexgray/adium/forks', + full_name: 'mralexgray/adium', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/adium/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/adium/pulls{/number}', + pushed_at: '2013-04-26T16:43:53Z', + teams_url: 'https://api.github.com/repos/mralexgray/adium/teams', + trees_url: 'https://api.github.com/repos/mralexgray/adium/git/trees{/sha}', + created_at: '2013-04-27T14:59:33Z', + events_url: 'https://api.github.com/repos/mralexgray/adium/events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/adium/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/adium/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/adium/merges', + mirror_url: null, + updated_at: '2019-12-11T06:51:45Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/adium/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/adium/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/adium/compare/{base}...{head}', + description: 'Official mirror of hg.adium.im', + forks_count: 37, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/adium/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/adium/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/adium/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/adium/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/adium/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/adium/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/adium/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/adium/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/adium/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/adium/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/adium/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/adium/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/adium/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/adium/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/adium/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/adium/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/adium/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/adium/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/adium/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/adium/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/adium/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12752329, + url: 'https://api.github.com/repos/mralexgray/ADLivelyTableView', + fork: true, + name: 'ADLivelyTableView', + size: 73, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ADLivelyTableView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc1MjMyOQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ADLivelyTableView.git', + svn_url: 'https://github.com/mralexgray/ADLivelyTableView', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://applidium.com/en/news/lively_uitableview/', + html_url: 'https://github.com/mralexgray/ADLivelyTableView', + keys_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ADLivelyTableView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ADLivelyTableView.git', + forks_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/forks', + full_name: 'mralexgray/ADLivelyTableView', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/pulls{/number}', + pushed_at: '2012-05-10T10:40:15Z', + teams_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/trees{/sha}', + created_at: '2013-09-11T09:18:01Z', + events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/merges', + mirror_url: null, + updated_at: '2013-09-11T09:18:03Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/compare/{base}...{head}', + description: 'Lively UITableView', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5697379, + url: 'https://api.github.com/repos/mralexgray/AFIncrementalStore', + fork: true, + name: 'AFIncrementalStore', + size: 139, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFIncrementalStore.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1Njk3Mzc5', + private: false, + ssh_url: 'git@github.com:mralexgray/AFIncrementalStore.git', + svn_url: 'https://github.com/mralexgray/AFIncrementalStore', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AFIncrementalStore', + keys_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AFIncrementalStore/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFIncrementalStore.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/forks', + full_name: 'mralexgray/AFIncrementalStore', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/pulls{/number}', + pushed_at: '2012-09-01T22:46:25Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/trees{/sha}', + created_at: '2012-09-06T04:20:33Z', + events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/merges', + mirror_url: null, + updated_at: '2013-01-12T03:15:29Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/compare/{base}...{head}', + description: 'Core Data Persistence with AFNetworking, Done Right', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 6969621, + url: 'https://api.github.com/repos/mralexgray/AFNetworking', + fork: true, + name: 'AFNetworking', + size: 4341, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFNetworking.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk2OTY5NjIx', + private: false, + ssh_url: 'git@github.com:mralexgray/AFNetworking.git', + svn_url: 'https://github.com/mralexgray/AFNetworking', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://afnetworking.com', + html_url: 'https://github.com/mralexgray/AFNetworking', + keys_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AFNetworking/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFNetworking.git', + forks_url: 'https://api.github.com/repos/mralexgray/AFNetworking/forks', + full_name: 'mralexgray/AFNetworking', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AFNetworking/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/pulls{/number}', + pushed_at: '2014-01-24T07:14:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/AFNetworking/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/trees{/sha}', + created_at: '2012-12-02T17:00:04Z', + events_url: 'https://api.github.com/repos/mralexgray/AFNetworking/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AFNetworking/merges', + mirror_url: null, + updated_at: '2014-01-24T07:14:33Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/compare/{base}...{head}', + description: 'A delightful iOS and OS X networking framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9485541, + url: 'https://api.github.com/repos/mralexgray/AGNSSplitView', + fork: true, + name: 'AGNSSplitView', + size: 68, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGNSSplitView.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5NDg1NTQx', + private: false, + ssh_url: 'git@github.com:mralexgray/AGNSSplitView.git', + svn_url: 'https://github.com/mralexgray/AGNSSplitView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGNSSplitView', + keys_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGNSSplitView.git', + forks_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/forks', + full_name: 'mralexgray/AGNSSplitView', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/pulls{/number}', + pushed_at: '2013-02-26T00:32:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/trees{/sha}', + created_at: '2013-04-17T00:10:13Z', + events_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/merges', + mirror_url: null, + updated_at: '2013-04-17T00:10:13Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/compare/{base}...{head}', + description: 'Simple NSSplitView additions.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12767784, + url: 'https://api.github.com/repos/mralexgray/AGScopeBar', + fork: true, + name: 'AGScopeBar', + size: 64, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGScopeBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc2Nzc4NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AGScopeBar.git', + svn_url: 'https://github.com/mralexgray/AGScopeBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGScopeBar', + keys_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGScopeBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/forks', + full_name: 'mralexgray/AGScopeBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/pulls{/number}', + pushed_at: '2013-05-07T03:35:29Z', + teams_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/trees{/sha}', + created_at: '2013-09-11T21:06:54Z', + events_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/merges', + mirror_url: null, + updated_at: '2013-09-11T21:06:54Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/compare/{base}...{head}', + description: 'Custom scope bar implementation for Cocoa', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 31829499, + url: 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin', + fork: true, + name: 'agvtool-xcode-plugin', + size: 102, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/agvtool-xcode-plugin.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkzMTgyOTQ5OQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/agvtool-xcode-plugin.git', + svn_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + keys_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/agvtool-xcode-plugin.git', + forks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/forks', + full_name: 'mralexgray/agvtool-xcode-plugin', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/pulls{/number}', + pushed_at: '2015-03-08T00:04:31Z', + teams_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/trees{/sha}', + created_at: '2015-03-07T22:15:38Z', + events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/merges', + mirror_url: null, + updated_at: '2015-03-07T22:15:41Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/compare/{base}...{head}', + description: 'this is a plugin wrapper for agvtool for xcode.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9227846, + url: 'https://api.github.com/repos/mralexgray/AHContentBrowser', + fork: true, + name: 'AHContentBrowser', + size: 223, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHContentBrowser.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MjI3ODQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/AHContentBrowser.git', + svn_url: 'https://github.com/mralexgray/AHContentBrowser', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHContentBrowser', + keys_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHContentBrowser/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHContentBrowser.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHContentBrowser/forks', + full_name: 'mralexgray/AHContentBrowser', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHContentBrowser/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/pulls{/number}', + pushed_at: '2013-03-13T17:38:23Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHContentBrowser/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/trees{/sha}', + created_at: '2013-04-04T20:56:16Z', + events_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/merges', + mirror_url: null, + updated_at: '2015-10-22T05:00:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/compare/{base}...{head}', + description: + 'A Mac only webview that loads a fast readable version of the website if available.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 37430328, + url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl', + fork: true, + name: 'AHLaunchCtl', + size: 592, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLaunchCtl.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNzQzMDMyOA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLaunchCtl.git', + svn_url: 'https://github.com/mralexgray/AHLaunchCtl', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHLaunchCtl', + keys_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLaunchCtl.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/forks', + full_name: 'mralexgray/AHLaunchCtl', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/pulls{/number}', + pushed_at: '2015-05-26T18:50:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/trees{/sha}', + created_at: '2015-06-14T21:31:03Z', + events_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/merges', + mirror_url: null, + updated_at: '2015-06-14T21:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/compare/{base}...{head}', + description: 'LaunchD Framework for Cocoa Apps', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9167473, + url: 'https://api.github.com/repos/mralexgray/AHLayout', + fork: true, + name: 'AHLayout', + size: 359, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLayout.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MTY3NDcz', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLayout.git', + svn_url: 'https://github.com/mralexgray/AHLayout', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AHLayout', + keys_url: 'https://api.github.com/repos/mralexgray/AHLayout/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLayout/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLayout.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHLayout/forks', + full_name: 'mralexgray/AHLayout', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHLayout/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHLayout/pulls{/number}', + pushed_at: '2013-07-08T02:31:14Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHLayout/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/trees{/sha}', + created_at: '2013-04-02T10:10:30Z', + events_url: 'https://api.github.com/repos/mralexgray/AHLayout/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHLayout/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AHLayout/merges', + mirror_url: null, + updated_at: '2013-07-08T02:31:17Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLayout/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHLayout/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLayout/compare/{base}...{head}', + description: 'AHLayout', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLayout/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLayout/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLayout/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLayout/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/AHLayout/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/AHLayout/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLayout/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHLayout/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLayout/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLayout/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 18450201, + url: 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework', + fork: true, + name: 'Airmail-Plug-In-Framework', + size: 888, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Airmail-Plug-In-Framework.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxODQ1MDIwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Airmail-Plug-In-Framework.git', + svn_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + keys_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/keys{/key_id}', + language: null, + tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/forks', + full_name: 'mralexgray/Airmail-Plug-In-Framework', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/pulls{/number}', + pushed_at: '2014-03-27T15:42:19Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/trees{/sha}', + created_at: '2014-04-04T19:33:54Z', + events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/merges', + mirror_url: null, + updated_at: '2014-11-23T19:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5203219, + url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API', + fork: true, + name: 'AJS-iTunes-API', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AJS-iTunes-API.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MjAzMjE5', + private: false, + ssh_url: 'git@github.com:mralexgray/AJS-iTunes-API.git', + svn_url: 'https://github.com/mralexgray/AJS-iTunes-API', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AJS-iTunes-API', + keys_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AJS-iTunes-API.git', + forks_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/forks', + full_name: 'mralexgray/AJS-iTunes-API', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/pulls{/number}', + pushed_at: '2011-10-30T22:26:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/trees{/sha}', + created_at: '2012-07-27T10:20:58Z', + events_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/merges', + mirror_url: null, + updated_at: '2013-01-11T11:00:05Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/compare/{base}...{head}', + description: + 'Cocoa wrapper for the iTunes search API - for iOS and Mac OSX projects', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10093801, + url: 'https://api.github.com/repos/mralexgray/Alcatraz', + fork: true, + name: 'Alcatraz', + size: 3668, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alcatraz.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDA5MzgwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alcatraz.git', + svn_url: 'https://github.com/mralexgray/Alcatraz', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/Alcatraz', + keys_url: 'https://api.github.com/repos/mralexgray/Alcatraz/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Alcatraz/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Alcatraz.git', + forks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/forks', + full_name: 'mralexgray/Alcatraz', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/pulls{/number}', + pushed_at: '2014-03-19T12:50:37Z', + teams_url: 'https://api.github.com/repos/mralexgray/Alcatraz/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/trees{/sha}', + created_at: '2013-05-16T04:41:13Z', + events_url: 'https://api.github.com/repos/mralexgray/Alcatraz/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Alcatraz/merges', + mirror_url: null, + updated_at: '2014-03-19T20:38:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/compare/{base}...{head}', + description: 'The most awesome (and only) Xcode package manager!', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/Alcatraz/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/Alcatraz/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12916552, + url: 'https://api.github.com/repos/mralexgray/alcatraz-packages', + fork: true, + name: 'alcatraz-packages', + size: 826, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alcatraz-packages.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjkxNjU1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alcatraz-packages.git', + svn_url: 'https://github.com/mralexgray/alcatraz-packages', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/alcatraz-packages', + keys_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/keys{/key_id}', + language: 'Ruby', + tags_url: 'https://api.github.com/repos/mralexgray/alcatraz-packages/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alcatraz-packages.git', + forks_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/forks', + full_name: 'mralexgray/alcatraz-packages', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/pulls{/number}', + pushed_at: '2015-12-14T16:21:31Z', + teams_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/trees{/sha}', + created_at: '2013-09-18T07:15:24Z', + events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/merges', + mirror_url: null, + updated_at: '2015-11-10T20:52:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/compare/{base}...{head}', + description: 'Package list repository for Alcatraz', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 44278362, + url: 'https://api.github.com/repos/mralexgray/alexicons', + fork: true, + name: 'alexicons', + size: 257, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alexicons.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk0NDI3ODM2Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alexicons.git', + svn_url: 'https://github.com/mralexgray/alexicons', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/alexicons', + keys_url: 'https://api.github.com/repos/mralexgray/alexicons/keys{/key_id}', + language: 'CoffeeScript', + tags_url: 'https://api.github.com/repos/mralexgray/alexicons/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alexicons.git', + forks_url: 'https://api.github.com/repos/mralexgray/alexicons/forks', + full_name: 'mralexgray/alexicons', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/alexicons/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/alexicons/pulls{/number}', + pushed_at: '2015-10-16T03:57:51Z', + teams_url: 'https://api.github.com/repos/mralexgray/alexicons/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/trees{/sha}', + created_at: '2015-10-14T21:49:39Z', + events_url: 'https://api.github.com/repos/mralexgray/alexicons/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/alexicons/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/alexicons/merges', + mirror_url: null, + updated_at: '2015-10-15T06:20:08Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alexicons/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alexicons/compare/{base}...{head}', + description: 'Get popular cat names', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alexicons/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alexicons/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alexicons/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alexicons/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alexicons/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alexicons/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/alexicons/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/alexicons/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alexicons/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alexicons/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alexicons/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alexicons/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alexicons/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alexicons/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10476467, + url: 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate', + fork: true, + name: 'Alfred-Google-Translate', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alfred-Google-Translate.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ3NjQ2Nw==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alfred-Google-Translate.git', + svn_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + keys_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/keys{/key_id}', + language: 'Shell', + tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Alfred-Google-Translate.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/forks', + full_name: 'mralexgray/Alfred-Google-Translate', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/pulls{/number}', + pushed_at: '2013-01-12T19:39:03Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/trees{/sha}', + created_at: '2013-06-04T10:45:10Z', + events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/merges', + mirror_url: null, + updated_at: '2013-06-04T10:45:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/compare/{base}...{head}', + description: 'Extension for Alfred that will do a Google translate for you', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5524019, + url: 'https://api.github.com/repos/mralexgray/Amber', + fork: false, + name: 'Amber', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amber.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1NTI0MDE5', + private: false, + ssh_url: 'git@github.com:mralexgray/Amber.git', + svn_url: 'https://github.com/mralexgray/Amber', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Amber', + keys_url: 'https://api.github.com/repos/mralexgray/Amber/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/Amber/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/Amber/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amber.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amber/forks', + full_name: 'mralexgray/Amber', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amber/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/Amber/pulls{/number}', + pushed_at: '2012-08-23T10:38:25Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amber/teams', + trees_url: 'https://api.github.com/repos/mralexgray/Amber/git/trees{/sha}', + created_at: '2012-08-23T10:38:24Z', + events_url: 'https://api.github.com/repos/mralexgray/Amber/events', + has_issues: true, + issues_url: 'https://api.github.com/repos/mralexgray/Amber/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/Amber/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amber/merges', + mirror_url: null, + updated_at: '2013-01-11T22:25:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amber/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/Amber/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amber/compare/{base}...{head}', + description: 'Fork of the difficult-to-deal-with Amber.framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amber/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amber/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amber/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Amber/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Amber/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/Amber/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Amber/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amber/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/Amber/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/Amber/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amber/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/Amber/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Amber/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amber/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Amber/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amber/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amber/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amber/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amber/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10809060, + url: 'https://api.github.com/repos/mralexgray/Amethyst', + fork: true, + name: 'Amethyst', + size: 12623, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amethyst.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDgwOTA2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/Amethyst.git', + svn_url: 'https://github.com/mralexgray/Amethyst', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ianyh.github.io/Amethyst/', + html_url: 'https://github.com/mralexgray/Amethyst', + keys_url: 'https://api.github.com/repos/mralexgray/Amethyst/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Amethyst/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amethyst.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amethyst/forks', + full_name: 'mralexgray/Amethyst', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amethyst/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Amethyst/pulls{/number}', + pushed_at: '2013-06-18T02:54:11Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amethyst/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/trees{/sha}', + created_at: '2013-06-20T00:34:22Z', + events_url: 'https://api.github.com/repos/mralexgray/Amethyst/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Amethyst/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amethyst/merges', + mirror_url: null, + updated_at: '2013-06-20T00:34:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amethyst/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Amethyst/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amethyst/compare/{base}...{head}', + description: 'Tiling window manager for OS X.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amethyst/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Amethyst/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Amethyst/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amethyst/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/Amethyst/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/Amethyst/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amethyst/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Amethyst/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amethyst/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amethyst/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 3684286, + url: 'https://api.github.com/repos/mralexgray/Animated-Paths', + fork: true, + name: 'Animated-Paths', + size: 411, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Animated-Paths.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNjg0Mjg2', + private: false, + ssh_url: 'git@github.com:mralexgray/Animated-Paths.git', + svn_url: 'https://github.com/mralexgray/Animated-Paths', + archived: false, + disabled: false, + has_wiki: true, + homepage: + 'http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/', + html_url: 'https://github.com/mralexgray/Animated-Paths', + keys_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Animated-Paths.git', + forks_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/forks', + full_name: 'mralexgray/Animated-Paths', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/pulls{/number}', + pushed_at: '2010-12-30T20:56:51Z', + teams_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/trees{/sha}', + created_at: '2012-03-11T02:56:38Z', + events_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/merges', + mirror_url: null, + updated_at: '2013-01-08T04:12:21Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/compare/{base}...{head}', + description: + 'Demo project: Animating the drawing of a CGPath with CAShapeLayer.strokeEnd', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16662874, + url: 'https://api.github.com/repos/mralexgray/AnsiLove.framework', + fork: true, + name: 'AnsiLove.framework', + size: 3780, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AnsiLove.framework.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjY2Mjg3NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AnsiLove.framework.git', + svn_url: 'https://github.com/mralexgray/AnsiLove.framework', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'http://byteproject.net', + html_url: 'https://github.com/mralexgray/AnsiLove.framework', + keys_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/keys{/key_id}', + language: 'M', + tags_url: 'https://api.github.com/repos/mralexgray/AnsiLove.framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AnsiLove.framework.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/forks', + full_name: 'mralexgray/AnsiLove.framework', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/pulls{/number}', + pushed_at: '2013-10-04T14:08:38Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/trees{/sha}', + created_at: '2014-02-09T08:30:27Z', + events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/merges', + mirror_url: null, + updated_at: '2015-01-13T20:41:46Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/compare/{base}...{head}', + description: 'Cocoa Framework for rendering ANSi / ASCII art', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5189563, + url: 'https://api.github.com/repos/mralexgray/ANTrackBar', + fork: true, + name: 'ANTrackBar', + size: 94, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ANTrackBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MTg5NTYz', + private: false, + ssh_url: 'git@github.com:mralexgray/ANTrackBar.git', + svn_url: 'https://github.com/mralexgray/ANTrackBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/ANTrackBar', + keys_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ANTrackBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/forks', + full_name: 'mralexgray/ANTrackBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/pulls{/number}', + pushed_at: '2012-03-09T01:40:02Z', + teams_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/trees{/sha}', + created_at: '2012-07-26T08:17:22Z', + events_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/merges', + mirror_url: null, + updated_at: '2013-01-11T10:29:56Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/compare/{base}...{head}', + description: 'An easy-to-use Cocoa seek bar with a pleasing appearance', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16240152, + url: 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C', + fork: true, + name: 'AOP-in-Objective-C', + size: 340, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AOP-in-Objective-C.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjI0MDE1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/AOP-in-Objective-C.git', + svn_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://innoli.hu/en/opensource/', + html_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + keys_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AOP-in-Objective-C.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/forks', + full_name: 'mralexgray/AOP-in-Objective-C', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/pulls{/number}', + pushed_at: '2014-02-12T16:23:20Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/trees{/sha}', + created_at: '2014-01-25T21:18:04Z', + events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/merges', + mirror_url: null, + updated_at: '2014-06-19T19:38:12Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/compare/{base}...{head}', + description: + 'An NSProxy based library for easily enabling AOP like functionality in Objective-C.', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/languages', + default_branch: 'travis-coveralls', + milestones_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13141936, + url: 'https://api.github.com/repos/mralexgray/Apaxy', + fork: true, + name: 'Apaxy', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Apaxy.git', + license: { + key: 'unlicense', + url: 'https://api.github.com/licenses/unlicense', + name: 'The Unlicense', + node_id: 'MDc6TGljZW5zZTE1', + spdx_id: 'Unlicense', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzE0MTkzNg==', + private: false, + ssh_url: 'git@github.com:mralexgray/Apaxy.git', + svn_url: 'https://github.com/mralexgray/Apaxy', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Apaxy', + keys_url: 'https://api.github.com/repos/mralexgray/Apaxy/keys{/key_id}', + language: 'CSS', + tags_url: 'https://api.github.com/repos/mralexgray/Apaxy/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/Apaxy/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Apaxy.git', + forks_url: 'https://api.github.com/repos/mralexgray/Apaxy/forks', + full_name: 'mralexgray/Apaxy', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Apaxy/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/Apaxy/pulls{/number}', + pushed_at: '2013-08-02T16:01:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/Apaxy/teams', + trees_url: 'https://api.github.com/repos/mralexgray/Apaxy/git/trees{/sha}', + created_at: '2013-09-27T05:05:35Z', + events_url: 'https://api.github.com/repos/mralexgray/Apaxy/events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/Apaxy/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/Apaxy/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Apaxy/merges', + mirror_url: null, + updated_at: '2018-02-16T21:40:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Apaxy/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/Apaxy/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Apaxy/compare/{base}...{head}', + description: + 'A simple, customisable theme for your Apache directory listing.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Apaxy/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Apaxy/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/Apaxy/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Apaxy/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Apaxy/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/Apaxy/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/Apaxy/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Apaxy/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/Apaxy/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Apaxy/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Apaxy/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Apaxy/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Apaxy/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Apaxy/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 20027360, + url: 'https://api.github.com/repos/mralexgray/app', + fork: true, + name: 'app', + size: 1890, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/app.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkyMDAyNzM2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/app.git', + svn_url: 'https://github.com/mralexgray/app', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/app', + keys_url: 'https://api.github.com/repos/mralexgray/app/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/app/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/app/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/app.git', + forks_url: 'https://api.github.com/repos/mralexgray/app/forks', + full_name: 'mralexgray/app', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/app/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/app/pulls{/number}', + pushed_at: '2014-05-20T19:51:38Z', + teams_url: 'https://api.github.com/repos/mralexgray/app/teams', + trees_url: 'https://api.github.com/repos/mralexgray/app/git/trees{/sha}', + created_at: '2014-05-21T15:54:20Z', + events_url: 'https://api.github.com/repos/mralexgray/app/events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/app/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/app/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/app/merges', + mirror_url: null, + updated_at: '2014-05-21T15:54:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/app/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/app/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/app/compare/{base}...{head}', + description: 'Instant mobile web app creation', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/app/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/app/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/app/contents/{+path}', + git_refs_url: 'https://api.github.com/repos/mralexgray/app/git/refs{/sha}', + git_tags_url: 'https://api.github.com/repos/mralexgray/app/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/app/releases{/id}', + statuses_url: 'https://api.github.com/repos/mralexgray/app/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/app/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/app/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/app/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/app/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/app/stargazers', + watchers_count: 0, + deployments_url: 'https://api.github.com/repos/mralexgray/app/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/app/git/commits{/sha}', + subscribers_url: 'https://api.github.com/repos/mralexgray/app/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/app/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/app/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/app/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/app/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/app/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/app/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + ], + data2: [ + { + id: 6104546, + url: 'https://api.github.com/repos/mralexgray/-REPONAME', + fork: false, + name: '-REPONAME', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/-REPONAME.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk2MTA0NTQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/-REPONAME.git', + svn_url: 'https://github.com/mralexgray/-REPONAME', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/-REPONAME', + keys_url: 'https://api.github.com/repos/mralexgray/-REPONAME/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/-REPONAME/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/-REPONAME.git', + forks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/forks', + full_name: 'mralexgray/-REPONAME', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/pulls{/number}', + pushed_at: '2012-10-06T16:37:39Z', + teams_url: 'https://api.github.com/repos/mralexgray/-REPONAME/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/trees{/sha}', + created_at: '2012-10-06T16:37:39Z', + events_url: 'https://api.github.com/repos/mralexgray/-REPONAME/events', + has_issues: true, + issues_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/-REPONAME/merges', + mirror_url: null, + updated_at: '2013-01-12T13:39:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 104510411, + url: 'https://api.github.com/repos/mralexgray/...', + fork: true, + name: '...', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/....git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ1MTA0MTE=', + private: false, + ssh_url: 'git@github.com:mralexgray/....git', + svn_url: 'https://github.com/mralexgray/...', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'https://driesvints.com/blog/getting-started-with-dotfiles', + html_url: 'https://github.com/mralexgray/...', + keys_url: 'https://api.github.com/repos/mralexgray/.../keys{/key_id}', + language: 'Shell', + tags_url: 'https://api.github.com/repos/mralexgray/.../tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/.../git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/....git', + forks_url: 'https://api.github.com/repos/mralexgray/.../forks', + full_name: 'mralexgray/...', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/.../hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/.../pulls{/number}', + pushed_at: '2017-09-15T08:27:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/.../teams', + trees_url: 'https://api.github.com/repos/mralexgray/.../git/trees{/sha}', + created_at: '2017-09-22T19:19:42Z', + events_url: 'https://api.github.com/repos/mralexgray/.../events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/.../issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/.../labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/.../merges', + mirror_url: null, + updated_at: '2017-09-22T19:20:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/.../{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/.../commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/.../compare/{base}...{head}', + description: ':computer: Public repo for my personal dotfiles.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/.../branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/.../comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/.../contents/{+path}', + git_refs_url: 'https://api.github.com/repos/mralexgray/.../git/refs{/sha}', + git_tags_url: 'https://api.github.com/repos/mralexgray/.../git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/.../releases{/id}', + statuses_url: 'https://api.github.com/repos/mralexgray/.../statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/.../assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/.../downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/.../languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/.../milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/.../stargazers', + watchers_count: 0, + deployments_url: 'https://api.github.com/repos/mralexgray/.../deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/.../git/commits{/sha}', + subscribers_url: 'https://api.github.com/repos/mralexgray/.../subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/.../contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/.../issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/.../subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/.../collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/.../issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/.../notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 58656723, + url: 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol', + fork: true, + name: '2200087-Serial-Protocol', + size: 41, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/2200087-Serial-Protocol.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1ODY1NjcyMw==', + private: false, + ssh_url: 'git@github.com:mralexgray/2200087-Serial-Protocol.git', + svn_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://daviddworken.com', + html_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + keys_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/keys{/key_id}', + language: 'Python', + tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/2200087-Serial-Protocol.git', + forks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/forks', + full_name: 'mralexgray/2200087-Serial-Protocol', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/pulls{/number}', + pushed_at: '2016-05-12T16:07:24Z', + teams_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/trees{/sha}', + created_at: '2016-05-12T16:05:28Z', + events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/merges', + mirror_url: null, + updated_at: '2016-05-12T16:05:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/compare/{base}...{head}', + description: + "A reverse engineered protocol description and accompanying code for Radioshack's 2200087 multimeter", + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13121042, + url: 'https://api.github.com/repos/mralexgray/ace', + fork: true, + name: 'ace', + size: 21080, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ace.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzEyMTA0Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/ace.git', + svn_url: 'https://github.com/mralexgray/ace', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ace.c9.io', + html_url: 'https://github.com/mralexgray/ace', + keys_url: 'https://api.github.com/repos/mralexgray/ace/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/ace/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/ace/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ace.git', + forks_url: 'https://api.github.com/repos/mralexgray/ace/forks', + full_name: 'mralexgray/ace', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ace/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/ace/pulls{/number}', + pushed_at: '2013-10-26T12:34:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/ace/teams', + trees_url: 'https://api.github.com/repos/mralexgray/ace/git/trees{/sha}', + created_at: '2013-09-26T11:58:10Z', + events_url: 'https://api.github.com/repos/mralexgray/ace/events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/ace/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/ace/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ace/merges', + mirror_url: null, + updated_at: '2013-10-26T12:34:49Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ace/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/ace/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ace/compare/{base}...{head}', + description: 'Ace (Ajax.org Cloud9 Editor)', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ace/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ace/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ace/contents/{+path}', + git_refs_url: 'https://api.github.com/repos/mralexgray/ace/git/refs{/sha}', + git_tags_url: 'https://api.github.com/repos/mralexgray/ace/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/ace/releases{/id}', + statuses_url: 'https://api.github.com/repos/mralexgray/ace/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ace/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/ace/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/ace/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ace/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/ace/stargazers', + watchers_count: 0, + deployments_url: 'https://api.github.com/repos/mralexgray/ace/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ace/git/commits{/sha}', + subscribers_url: 'https://api.github.com/repos/mralexgray/ace/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ace/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ace/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ace/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ace/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ace/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ace/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10791045, + url: 'https://api.github.com/repos/mralexgray/ACEView', + fork: true, + name: 'ACEView', + size: 1733, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ACEView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDc5MTA0NQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ACEView.git', + svn_url: 'https://github.com/mralexgray/ACEView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/ACEView', + keys_url: 'https://api.github.com/repos/mralexgray/ACEView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ACEView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ACEView.git', + forks_url: 'https://api.github.com/repos/mralexgray/ACEView/forks', + full_name: 'mralexgray/ACEView', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ACEView/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/ACEView/pulls{/number}', + pushed_at: '2014-05-09T01:36:23Z', + teams_url: 'https://api.github.com/repos/mralexgray/ACEView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/trees{/sha}', + created_at: '2013-06-19T12:15:04Z', + events_url: 'https://api.github.com/repos/mralexgray/ACEView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/ACEView/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ACEView/merges', + mirror_url: null, + updated_at: '2015-11-24T01:14:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ACEView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ACEView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ACEView/compare/{base}...{head}', + description: 'Use the wonderful ACE editor in your Cocoa applications', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ACEView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ACEView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ACEView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ACEView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ACEView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ACEView/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/ACEView/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/ACEView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ACEView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ACEView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ACEView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ACEView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ACEView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ACEView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13623648, + url: 'https://api.github.com/repos/mralexgray/ActiveLog', + fork: true, + name: 'ActiveLog', + size: 60, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ActiveLog.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzYyMzY0OA==', + private: false, + ssh_url: 'git@github.com:mralexgray/ActiveLog.git', + svn_url: 'https://github.com/mralexgray/ActiveLog', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://deepitpro.com/en/articles/ActiveLog/info/', + html_url: 'https://github.com/mralexgray/ActiveLog', + keys_url: 'https://api.github.com/repos/mralexgray/ActiveLog/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ActiveLog/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ActiveLog.git', + forks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/forks', + full_name: 'mralexgray/ActiveLog', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/pulls{/number}', + pushed_at: '2011-07-03T06:28:59Z', + teams_url: 'https://api.github.com/repos/mralexgray/ActiveLog/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/trees{/sha}', + created_at: '2013-10-16T15:52:37Z', + events_url: 'https://api.github.com/repos/mralexgray/ActiveLog/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ActiveLog/merges', + mirror_url: null, + updated_at: '2013-10-16T15:52:37Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/compare/{base}...{head}', + description: 'Shut up all logs with active filter.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9716210, + url: 'https://api.github.com/repos/mralexgray/adium', + fork: false, + name: 'adium', + size: 277719, + forks: 37, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/adium.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk5NzE2MjEw', + private: false, + ssh_url: 'git@github.com:mralexgray/adium.git', + svn_url: 'https://github.com/mralexgray/adium', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/adium', + keys_url: 'https://api.github.com/repos/mralexgray/adium/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/adium/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/adium/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/adium.git', + forks_url: 'https://api.github.com/repos/mralexgray/adium/forks', + full_name: 'mralexgray/adium', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/adium/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/adium/pulls{/number}', + pushed_at: '2013-04-26T16:43:53Z', + teams_url: 'https://api.github.com/repos/mralexgray/adium/teams', + trees_url: 'https://api.github.com/repos/mralexgray/adium/git/trees{/sha}', + created_at: '2013-04-27T14:59:33Z', + events_url: 'https://api.github.com/repos/mralexgray/adium/events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/adium/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/adium/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/adium/merges', + mirror_url: null, + updated_at: '2019-12-11T06:51:45Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/adium/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/adium/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/adium/compare/{base}...{head}', + description: 'Official mirror of hg.adium.im', + forks_count: 37, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/adium/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/adium/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/adium/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/adium/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/adium/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/adium/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/adium/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/adium/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/adium/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/adium/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/adium/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/adium/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/adium/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/adium/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/adium/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/adium/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/adium/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/adium/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/adium/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/adium/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/adium/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12752329, + url: 'https://api.github.com/repos/mralexgray/ADLivelyTableView', + fork: true, + name: 'ADLivelyTableView', + size: 73, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ADLivelyTableView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc1MjMyOQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ADLivelyTableView.git', + svn_url: 'https://github.com/mralexgray/ADLivelyTableView', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://applidium.com/en/news/lively_uitableview/', + html_url: 'https://github.com/mralexgray/ADLivelyTableView', + keys_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ADLivelyTableView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ADLivelyTableView.git', + forks_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/forks', + full_name: 'mralexgray/ADLivelyTableView', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/pulls{/number}', + pushed_at: '2012-05-10T10:40:15Z', + teams_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/trees{/sha}', + created_at: '2013-09-11T09:18:01Z', + events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/merges', + mirror_url: null, + updated_at: '2013-09-11T09:18:03Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/compare/{base}...{head}', + description: 'Lively UITableView', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5697379, + url: 'https://api.github.com/repos/mralexgray/AFIncrementalStore', + fork: true, + name: 'AFIncrementalStore', + size: 139, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFIncrementalStore.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1Njk3Mzc5', + private: false, + ssh_url: 'git@github.com:mralexgray/AFIncrementalStore.git', + svn_url: 'https://github.com/mralexgray/AFIncrementalStore', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AFIncrementalStore', + keys_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AFIncrementalStore/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFIncrementalStore.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/forks', + full_name: 'mralexgray/AFIncrementalStore', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/pulls{/number}', + pushed_at: '2012-09-01T22:46:25Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/trees{/sha}', + created_at: '2012-09-06T04:20:33Z', + events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/merges', + mirror_url: null, + updated_at: '2013-01-12T03:15:29Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/compare/{base}...{head}', + description: 'Core Data Persistence with AFNetworking, Done Right', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 6969621, + url: 'https://api.github.com/repos/mralexgray/AFNetworking', + fork: true, + name: 'AFNetworking', + size: 4341, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFNetworking.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk2OTY5NjIx', + private: false, + ssh_url: 'git@github.com:mralexgray/AFNetworking.git', + svn_url: 'https://github.com/mralexgray/AFNetworking', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://afnetworking.com', + html_url: 'https://github.com/mralexgray/AFNetworking', + keys_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AFNetworking/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFNetworking.git', + forks_url: 'https://api.github.com/repos/mralexgray/AFNetworking/forks', + full_name: 'mralexgray/AFNetworking', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AFNetworking/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/pulls{/number}', + pushed_at: '2014-01-24T07:14:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/AFNetworking/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/trees{/sha}', + created_at: '2012-12-02T17:00:04Z', + events_url: 'https://api.github.com/repos/mralexgray/AFNetworking/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AFNetworking/merges', + mirror_url: null, + updated_at: '2014-01-24T07:14:33Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/compare/{base}...{head}', + description: 'A delightful iOS and OS X networking framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9485541, + url: 'https://api.github.com/repos/mralexgray/AGNSSplitView', + fork: true, + name: 'AGNSSplitView', + size: 68, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGNSSplitView.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5NDg1NTQx', + private: false, + ssh_url: 'git@github.com:mralexgray/AGNSSplitView.git', + svn_url: 'https://github.com/mralexgray/AGNSSplitView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGNSSplitView', + keys_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGNSSplitView.git', + forks_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/forks', + full_name: 'mralexgray/AGNSSplitView', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/pulls{/number}', + pushed_at: '2013-02-26T00:32:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/trees{/sha}', + created_at: '2013-04-17T00:10:13Z', + events_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/merges', + mirror_url: null, + updated_at: '2013-04-17T00:10:13Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/compare/{base}...{head}', + description: 'Simple NSSplitView additions.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12767784, + url: 'https://api.github.com/repos/mralexgray/AGScopeBar', + fork: true, + name: 'AGScopeBar', + size: 64, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGScopeBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc2Nzc4NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AGScopeBar.git', + svn_url: 'https://github.com/mralexgray/AGScopeBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGScopeBar', + keys_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGScopeBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/forks', + full_name: 'mralexgray/AGScopeBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/pulls{/number}', + pushed_at: '2013-05-07T03:35:29Z', + teams_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/trees{/sha}', + created_at: '2013-09-11T21:06:54Z', + events_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/merges', + mirror_url: null, + updated_at: '2013-09-11T21:06:54Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/compare/{base}...{head}', + description: 'Custom scope bar implementation for Cocoa', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 31829499, + url: 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin', + fork: true, + name: 'agvtool-xcode-plugin', + size: 102, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/agvtool-xcode-plugin.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkzMTgyOTQ5OQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/agvtool-xcode-plugin.git', + svn_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + keys_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/agvtool-xcode-plugin.git', + forks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/forks', + full_name: 'mralexgray/agvtool-xcode-plugin', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/pulls{/number}', + pushed_at: '2015-03-08T00:04:31Z', + teams_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/trees{/sha}', + created_at: '2015-03-07T22:15:38Z', + events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/merges', + mirror_url: null, + updated_at: '2015-03-07T22:15:41Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/compare/{base}...{head}', + description: 'this is a plugin wrapper for agvtool for xcode.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9227846, + url: 'https://api.github.com/repos/mralexgray/AHContentBrowser', + fork: true, + name: 'AHContentBrowser', + size: 223, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHContentBrowser.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MjI3ODQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/AHContentBrowser.git', + svn_url: 'https://github.com/mralexgray/AHContentBrowser', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHContentBrowser', + keys_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHContentBrowser/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHContentBrowser.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHContentBrowser/forks', + full_name: 'mralexgray/AHContentBrowser', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHContentBrowser/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/pulls{/number}', + pushed_at: '2013-03-13T17:38:23Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHContentBrowser/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/trees{/sha}', + created_at: '2013-04-04T20:56:16Z', + events_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/merges', + mirror_url: null, + updated_at: '2015-10-22T05:00:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/compare/{base}...{head}', + description: + 'A Mac only webview that loads a fast readable version of the website if available.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 37430328, + url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl', + fork: true, + name: 'AHLaunchCtl', + size: 592, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLaunchCtl.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNzQzMDMyOA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLaunchCtl.git', + svn_url: 'https://github.com/mralexgray/AHLaunchCtl', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHLaunchCtl', + keys_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLaunchCtl.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/forks', + full_name: 'mralexgray/AHLaunchCtl', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/pulls{/number}', + pushed_at: '2015-05-26T18:50:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/trees{/sha}', + created_at: '2015-06-14T21:31:03Z', + events_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/merges', + mirror_url: null, + updated_at: '2015-06-14T21:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/compare/{base}...{head}', + description: 'LaunchD Framework for Cocoa Apps', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9167473, + url: 'https://api.github.com/repos/mralexgray/AHLayout', + fork: true, + name: 'AHLayout', + size: 359, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLayout.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MTY3NDcz', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLayout.git', + svn_url: 'https://github.com/mralexgray/AHLayout', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AHLayout', + keys_url: 'https://api.github.com/repos/mralexgray/AHLayout/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLayout/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLayout.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHLayout/forks', + full_name: 'mralexgray/AHLayout', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHLayout/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHLayout/pulls{/number}', + pushed_at: '2013-07-08T02:31:14Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHLayout/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/trees{/sha}', + created_at: '2013-04-02T10:10:30Z', + events_url: 'https://api.github.com/repos/mralexgray/AHLayout/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHLayout/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AHLayout/merges', + mirror_url: null, + updated_at: '2013-07-08T02:31:17Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLayout/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHLayout/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLayout/compare/{base}...{head}', + description: 'AHLayout', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLayout/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLayout/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLayout/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLayout/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/AHLayout/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/AHLayout/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLayout/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHLayout/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLayout/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLayout/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 18450201, + url: 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework', + fork: true, + name: 'Airmail-Plug-In-Framework', + size: 888, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Airmail-Plug-In-Framework.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxODQ1MDIwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Airmail-Plug-In-Framework.git', + svn_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + keys_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/keys{/key_id}', + language: null, + tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/forks', + full_name: 'mralexgray/Airmail-Plug-In-Framework', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/pulls{/number}', + pushed_at: '2014-03-27T15:42:19Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/trees{/sha}', + created_at: '2014-04-04T19:33:54Z', + events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/merges', + mirror_url: null, + updated_at: '2014-11-23T19:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5203219, + url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API', + fork: true, + name: 'AJS-iTunes-API', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AJS-iTunes-API.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MjAzMjE5', + private: false, + ssh_url: 'git@github.com:mralexgray/AJS-iTunes-API.git', + svn_url: 'https://github.com/mralexgray/AJS-iTunes-API', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AJS-iTunes-API', + keys_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AJS-iTunes-API.git', + forks_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/forks', + full_name: 'mralexgray/AJS-iTunes-API', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/pulls{/number}', + pushed_at: '2011-10-30T22:26:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/trees{/sha}', + created_at: '2012-07-27T10:20:58Z', + events_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/merges', + mirror_url: null, + updated_at: '2013-01-11T11:00:05Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/compare/{base}...{head}', + description: + 'Cocoa wrapper for the iTunes search API - for iOS and Mac OSX projects', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10093801, + url: 'https://api.github.com/repos/mralexgray/Alcatraz', + fork: true, + name: 'Alcatraz', + size: 3668, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alcatraz.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDA5MzgwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alcatraz.git', + svn_url: 'https://github.com/mralexgray/Alcatraz', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/Alcatraz', + keys_url: 'https://api.github.com/repos/mralexgray/Alcatraz/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Alcatraz/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Alcatraz.git', + forks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/forks', + full_name: 'mralexgray/Alcatraz', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/pulls{/number}', + pushed_at: '2014-03-19T12:50:37Z', + teams_url: 'https://api.github.com/repos/mralexgray/Alcatraz/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/trees{/sha}', + created_at: '2013-05-16T04:41:13Z', + events_url: 'https://api.github.com/repos/mralexgray/Alcatraz/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Alcatraz/merges', + mirror_url: null, + updated_at: '2014-03-19T20:38:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/compare/{base}...{head}', + description: 'The most awesome (and only) Xcode package manager!', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/Alcatraz/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/Alcatraz/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12916552, + url: 'https://api.github.com/repos/mralexgray/alcatraz-packages', + fork: true, + name: 'alcatraz-packages', + size: 826, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alcatraz-packages.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjkxNjU1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alcatraz-packages.git', + svn_url: 'https://github.com/mralexgray/alcatraz-packages', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/alcatraz-packages', + keys_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/keys{/key_id}', + language: 'Ruby', + tags_url: 'https://api.github.com/repos/mralexgray/alcatraz-packages/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alcatraz-packages.git', + forks_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/forks', + full_name: 'mralexgray/alcatraz-packages', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/pulls{/number}', + pushed_at: '2015-12-14T16:21:31Z', + teams_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/trees{/sha}', + created_at: '2013-09-18T07:15:24Z', + events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/merges', + mirror_url: null, + updated_at: '2015-11-10T20:52:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/compare/{base}...{head}', + description: 'Package list repository for Alcatraz', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 44278362, + url: 'https://api.github.com/repos/mralexgray/alexicons', + fork: true, + name: 'alexicons', + size: 257, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alexicons.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk0NDI3ODM2Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alexicons.git', + svn_url: 'https://github.com/mralexgray/alexicons', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/alexicons', + keys_url: 'https://api.github.com/repos/mralexgray/alexicons/keys{/key_id}', + language: 'CoffeeScript', + tags_url: 'https://api.github.com/repos/mralexgray/alexicons/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alexicons.git', + forks_url: 'https://api.github.com/repos/mralexgray/alexicons/forks', + full_name: 'mralexgray/alexicons', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/alexicons/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/alexicons/pulls{/number}', + pushed_at: '2015-10-16T03:57:51Z', + teams_url: 'https://api.github.com/repos/mralexgray/alexicons/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/trees{/sha}', + created_at: '2015-10-14T21:49:39Z', + events_url: 'https://api.github.com/repos/mralexgray/alexicons/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/alexicons/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/alexicons/merges', + mirror_url: null, + updated_at: '2015-10-15T06:20:08Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alexicons/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alexicons/compare/{base}...{head}', + description: 'Get popular cat names', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alexicons/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alexicons/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alexicons/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alexicons/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alexicons/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alexicons/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/alexicons/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/alexicons/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alexicons/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alexicons/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alexicons/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alexicons/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alexicons/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alexicons/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10476467, + url: 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate', + fork: true, + name: 'Alfred-Google-Translate', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alfred-Google-Translate.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ3NjQ2Nw==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alfred-Google-Translate.git', + svn_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + keys_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/keys{/key_id}', + language: 'Shell', + tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Alfred-Google-Translate.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/forks', + full_name: 'mralexgray/Alfred-Google-Translate', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/pulls{/number}', + pushed_at: '2013-01-12T19:39:03Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/trees{/sha}', + created_at: '2013-06-04T10:45:10Z', + events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/merges', + mirror_url: null, + updated_at: '2013-06-04T10:45:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/compare/{base}...{head}', + description: 'Extension for Alfred that will do a Google translate for you', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5524019, + url: 'https://api.github.com/repos/mralexgray/Amber', + fork: false, + name: 'Amber', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amber.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1NTI0MDE5', + private: false, + ssh_url: 'git@github.com:mralexgray/Amber.git', + svn_url: 'https://github.com/mralexgray/Amber', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Amber', + keys_url: 'https://api.github.com/repos/mralexgray/Amber/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/Amber/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/Amber/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amber.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amber/forks', + full_name: 'mralexgray/Amber', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amber/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/Amber/pulls{/number}', + pushed_at: '2012-08-23T10:38:25Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amber/teams', + trees_url: 'https://api.github.com/repos/mralexgray/Amber/git/trees{/sha}', + created_at: '2012-08-23T10:38:24Z', + events_url: 'https://api.github.com/repos/mralexgray/Amber/events', + has_issues: true, + issues_url: 'https://api.github.com/repos/mralexgray/Amber/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/Amber/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amber/merges', + mirror_url: null, + updated_at: '2013-01-11T22:25:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amber/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/Amber/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amber/compare/{base}...{head}', + description: 'Fork of the difficult-to-deal-with Amber.framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amber/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amber/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amber/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Amber/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Amber/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/Amber/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Amber/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amber/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/Amber/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/Amber/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amber/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/Amber/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Amber/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amber/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Amber/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amber/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amber/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amber/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amber/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10809060, + url: 'https://api.github.com/repos/mralexgray/Amethyst', + fork: true, + name: 'Amethyst', + size: 12623, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amethyst.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDgwOTA2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/Amethyst.git', + svn_url: 'https://github.com/mralexgray/Amethyst', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ianyh.github.io/Amethyst/', + html_url: 'https://github.com/mralexgray/Amethyst', + keys_url: 'https://api.github.com/repos/mralexgray/Amethyst/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Amethyst/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amethyst.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amethyst/forks', + full_name: 'mralexgray/Amethyst', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amethyst/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Amethyst/pulls{/number}', + pushed_at: '2013-06-18T02:54:11Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amethyst/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/trees{/sha}', + created_at: '2013-06-20T00:34:22Z', + events_url: 'https://api.github.com/repos/mralexgray/Amethyst/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Amethyst/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amethyst/merges', + mirror_url: null, + updated_at: '2013-06-20T00:34:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amethyst/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Amethyst/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amethyst/compare/{base}...{head}', + description: 'Tiling window manager for OS X.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amethyst/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Amethyst/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Amethyst/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amethyst/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/Amethyst/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/Amethyst/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amethyst/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Amethyst/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amethyst/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amethyst/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 3684286, + url: 'https://api.github.com/repos/mralexgray/Animated-Paths', + fork: true, + name: 'Animated-Paths', + size: 411, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Animated-Paths.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNjg0Mjg2', + private: false, + ssh_url: 'git@github.com:mralexgray/Animated-Paths.git', + svn_url: 'https://github.com/mralexgray/Animated-Paths', + archived: false, + disabled: false, + has_wiki: true, + homepage: + 'http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/', + html_url: 'https://github.com/mralexgray/Animated-Paths', + keys_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Animated-Paths.git', + forks_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/forks', + full_name: 'mralexgray/Animated-Paths', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/pulls{/number}', + pushed_at: '2010-12-30T20:56:51Z', + teams_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/trees{/sha}', + created_at: '2012-03-11T02:56:38Z', + events_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/merges', + mirror_url: null, + updated_at: '2013-01-08T04:12:21Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/compare/{base}...{head}', + description: + 'Demo project: Animating the drawing of a CGPath with CAShapeLayer.strokeEnd', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16662874, + url: 'https://api.github.com/repos/mralexgray/AnsiLove.framework', + fork: true, + name: 'AnsiLove.framework', + size: 3780, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AnsiLove.framework.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjY2Mjg3NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AnsiLove.framework.git', + svn_url: 'https://github.com/mralexgray/AnsiLove.framework', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'http://byteproject.net', + html_url: 'https://github.com/mralexgray/AnsiLove.framework', + keys_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/keys{/key_id}', + language: 'M', + tags_url: 'https://api.github.com/repos/mralexgray/AnsiLove.framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AnsiLove.framework.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/forks', + full_name: 'mralexgray/AnsiLove.framework', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/pulls{/number}', + pushed_at: '2013-10-04T14:08:38Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/trees{/sha}', + created_at: '2014-02-09T08:30:27Z', + events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/merges', + mirror_url: null, + updated_at: '2015-01-13T20:41:46Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/compare/{base}...{head}', + description: 'Cocoa Framework for rendering ANSi / ASCII art', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5189563, + url: 'https://api.github.com/repos/mralexgray/ANTrackBar', + fork: true, + name: 'ANTrackBar', + size: 94, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ANTrackBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MTg5NTYz', + private: false, + ssh_url: 'git@github.com:mralexgray/ANTrackBar.git', + svn_url: 'https://github.com/mralexgray/ANTrackBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/ANTrackBar', + keys_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ANTrackBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/forks', + full_name: 'mralexgray/ANTrackBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/pulls{/number}', + pushed_at: '2012-03-09T01:40:02Z', + teams_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/trees{/sha}', + created_at: '2012-07-26T08:17:22Z', + events_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/merges', + mirror_url: null, + updated_at: '2013-01-11T10:29:56Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/compare/{base}...{head}', + description: 'An easy-to-use Cocoa seek bar with a pleasing appearance', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16240152, + url: 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C', + fork: true, + name: 'AOP-in-Objective-C', + size: 340, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AOP-in-Objective-C.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjI0MDE1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/AOP-in-Objective-C.git', + svn_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://innoli.hu/en/opensource/', + html_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + keys_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AOP-in-Objective-C.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/forks', + full_name: 'mralexgray/AOP-in-Objective-C', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/pulls{/number}', + pushed_at: '2014-02-12T16:23:20Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/trees{/sha}', + created_at: '2014-01-25T21:18:04Z', + events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/merges', + mirror_url: null, + updated_at: '2014-06-19T19:38:12Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/compare/{base}...{head}', + description: + 'An NSProxy based library for easily enabling AOP like functionality in Objective-C.', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/languages', + default_branch: 'travis-coveralls', + milestones_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13141936, + url: 'https://api.github.com/repos/mralexgray/Apaxy', + fork: true, + name: 'Apaxy', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Apaxy.git', + license: { + key: 'unlicense', + url: 'https://api.github.com/licenses/unlicense', + name: 'The Unlicense', + node_id: 'MDc6TGljZW5zZTE1', + spdx_id: 'Unlicense', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzE0MTkzNg==', + private: false, + ssh_url: 'git@github.com:mralexgray/Apaxy.git', + svn_url: 'https://github.com/mralexgray/Apaxy', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Apaxy', + keys_url: 'https://api.github.com/repos/mralexgray/Apaxy/keys{/key_id}', + language: 'CSS', + tags_url: 'https://api.github.com/repos/mralexgray/Apaxy/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/Apaxy/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Apaxy.git', + forks_url: 'https://api.github.com/repos/mralexgray/Apaxy/forks', + full_name: 'mralexgray/Apaxy', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Apaxy/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/Apaxy/pulls{/number}', + pushed_at: '2013-08-02T16:01:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/Apaxy/teams', + trees_url: 'https://api.github.com/repos/mralexgray/Apaxy/git/trees{/sha}', + created_at: '2013-09-27T05:05:35Z', + events_url: 'https://api.github.com/repos/mralexgray/Apaxy/events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/Apaxy/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/Apaxy/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Apaxy/merges', + mirror_url: null, + updated_at: '2018-02-16T21:40:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Apaxy/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/Apaxy/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Apaxy/compare/{base}...{head}', + description: + 'A simple, customisable theme for your Apache directory listing.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Apaxy/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Apaxy/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/Apaxy/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Apaxy/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Apaxy/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/Apaxy/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/Apaxy/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Apaxy/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/Apaxy/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Apaxy/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Apaxy/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Apaxy/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Apaxy/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Apaxy/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 20027360, + url: 'https://api.github.com/repos/mralexgray/app', + fork: true, + name: 'app', + size: 1890, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/app.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkyMDAyNzM2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/app.git', + svn_url: 'https://github.com/mralexgray/app', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/app', + keys_url: 'https://api.github.com/repos/mralexgray/app/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/app/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/app/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/app.git', + forks_url: 'https://api.github.com/repos/mralexgray/app/forks', + full_name: 'mralexgray/app', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/app/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/app/pulls{/number}', + pushed_at: '2014-05-20T19:51:38Z', + teams_url: 'https://api.github.com/repos/mralexgray/app/teams', + trees_url: 'https://api.github.com/repos/mralexgray/app/git/trees{/sha}', + created_at: '2014-05-21T15:54:20Z', + events_url: 'https://api.github.com/repos/mralexgray/app/events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/app/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/app/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/app/merges', + mirror_url: null, + updated_at: '2014-05-21T15:54:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/app/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/app/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/app/compare/{base}...{head}', + description: 'Instant mobile web app creation', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/app/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/app/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/app/contents/{+path}', + git_refs_url: 'https://api.github.com/repos/mralexgray/app/git/refs{/sha}', + git_tags_url: 'https://api.github.com/repos/mralexgray/app/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/app/releases{/id}', + statuses_url: 'https://api.github.com/repos/mralexgray/app/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/app/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/app/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/app/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/app/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/app/stargazers', + watchers_count: 0, + deployments_url: 'https://api.github.com/repos/mralexgray/app/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/app/git/commits{/sha}', + subscribers_url: 'https://api.github.com/repos/mralexgray/app/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/app/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/app/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/app/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/app/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/app/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/app/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + ], + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + messageId: 'c864b4cd-8f07-4922-b3d0-82ef04c987d3', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + metadata: { + userId: 'anon-id-new<<>>identified user id', + jobId: 31, + sourceId: '2DTlLPQxignYp4ag9sISgGN2uY7', + destinationId: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + attemptNum: 0, + receivedAt: '2022-08-18T08:43:13.521+05:30', + createdAt: '2022-08-18T03:13:15.549Z', + firstAttemptedAt: '', + transformAt: 'router', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + secret: null, + jobsT: { + UUID: '47b3937a-1fef-49fa-85c8-649673bd7170', + JobID: 31, + UserID: 'anon-id-new<<>>identified user id', + CreatedAt: '2022-08-18T03:13:15.549078Z', + ExpireAt: '2022-08-18T03:13:15.549078Z', + CustomVal: 'LAMBDA', + EventCount: 1, + EventPayload: { + type: 'identify', + sentAt: '2022-08-18T08:43:15.539+05:30', + userId: 'identified user id', + context: { + ip: '14.5.67.21', + traits: { + data: [ + { + id: 6104546, + url: 'https://api.github.com/repos/mralexgray/-REPONAME', + fork: false, + name: '-REPONAME', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/-REPONAME.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk2MTA0NTQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/-REPONAME.git', + svn_url: 'https://github.com/mralexgray/-REPONAME', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/-REPONAME', + keys_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/-REPONAME/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/-REPONAME.git', + forks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/forks', + full_name: 'mralexgray/-REPONAME', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/pulls{/number}', + pushed_at: '2012-10-06T16:37:39Z', + teams_url: 'https://api.github.com/repos/mralexgray/-REPONAME/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/trees{/sha}', + created_at: '2012-10-06T16:37:39Z', + events_url: 'https://api.github.com/repos/mralexgray/-REPONAME/events', + has_issues: true, + issues_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/-REPONAME/merges', + mirror_url: null, + updated_at: '2013-01-12T13:39:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 104510411, + url: 'https://api.github.com/repos/mralexgray/...', + fork: true, + name: '...', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/....git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ1MTA0MTE=', + private: false, + ssh_url: 'git@github.com:mralexgray/....git', + svn_url: 'https://github.com/mralexgray/...', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'https://driesvints.com/blog/getting-started-with-dotfiles', + html_url: 'https://github.com/mralexgray/...', + keys_url: 'https://api.github.com/repos/mralexgray/.../keys{/key_id}', + language: 'Shell', + tags_url: 'https://api.github.com/repos/mralexgray/.../tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/.../git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/....git', + forks_url: 'https://api.github.com/repos/mralexgray/.../forks', + full_name: 'mralexgray/...', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/.../hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/.../pulls{/number}', + pushed_at: '2017-09-15T08:27:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/.../teams', + trees_url: + 'https://api.github.com/repos/mralexgray/.../git/trees{/sha}', + created_at: '2017-09-22T19:19:42Z', + events_url: 'https://api.github.com/repos/mralexgray/.../events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/.../issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/.../labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/.../merges', + mirror_url: null, + updated_at: '2017-09-22T19:20:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/.../{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/.../commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/.../compare/{base}...{head}', + description: ':computer: Public repo for my personal dotfiles.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/.../branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/.../comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/.../contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/.../git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/.../git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/.../releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/.../statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/.../assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/.../downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/.../languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/.../milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/.../stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/.../deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/.../git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/.../subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/.../contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/.../issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/.../subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/.../collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/.../issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/.../notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 58656723, + url: 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol', + fork: true, + name: '2200087-Serial-Protocol', + size: 41, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/2200087-Serial-Protocol.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1ODY1NjcyMw==', + private: false, + ssh_url: 'git@github.com:mralexgray/2200087-Serial-Protocol.git', + svn_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://daviddworken.com', + html_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + keys_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/keys{/key_id}', + language: 'Python', + tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/2200087-Serial-Protocol.git', + forks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/forks', + full_name: 'mralexgray/2200087-Serial-Protocol', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/pulls{/number}', + pushed_at: '2016-05-12T16:07:24Z', + teams_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/trees{/sha}', + created_at: '2016-05-12T16:05:28Z', + events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/merges', + mirror_url: null, + updated_at: '2016-05-12T16:05:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/compare/{base}...{head}', + description: + "A reverse engineered protocol description and accompanying code for Radioshack's 2200087 multimeter", + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13121042, + url: 'https://api.github.com/repos/mralexgray/ace', + fork: true, + name: 'ace', + size: 21080, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ace.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzEyMTA0Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/ace.git', + svn_url: 'https://github.com/mralexgray/ace', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ace.c9.io', + html_url: 'https://github.com/mralexgray/ace', + keys_url: 'https://api.github.com/repos/mralexgray/ace/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/ace/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ace/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ace.git', + forks_url: 'https://api.github.com/repos/mralexgray/ace/forks', + full_name: 'mralexgray/ace', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ace/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/ace/pulls{/number}', + pushed_at: '2013-10-26T12:34:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/ace/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ace/git/trees{/sha}', + created_at: '2013-09-26T11:58:10Z', + events_url: 'https://api.github.com/repos/mralexgray/ace/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ace/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/ace/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ace/merges', + mirror_url: null, + updated_at: '2013-10-26T12:34:49Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ace/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ace/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ace/compare/{base}...{head}', + description: 'Ace (Ajax.org Cloud9 Editor)', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ace/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ace/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ace/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ace/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ace/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ace/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ace/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ace/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/ace/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/ace/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ace/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ace/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ace/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ace/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ace/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ace/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ace/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ace/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ace/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ace/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ace/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10791045, + url: 'https://api.github.com/repos/mralexgray/ACEView', + fork: true, + name: 'ACEView', + size: 1733, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ACEView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDc5MTA0NQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ACEView.git', + svn_url: 'https://github.com/mralexgray/ACEView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/ACEView', + keys_url: + 'https://api.github.com/repos/mralexgray/ACEView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ACEView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ACEView.git', + forks_url: 'https://api.github.com/repos/mralexgray/ACEView/forks', + full_name: 'mralexgray/ACEView', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ACEView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ACEView/pulls{/number}', + pushed_at: '2014-05-09T01:36:23Z', + teams_url: 'https://api.github.com/repos/mralexgray/ACEView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/trees{/sha}', + created_at: '2013-06-19T12:15:04Z', + events_url: 'https://api.github.com/repos/mralexgray/ACEView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ACEView/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ACEView/merges', + mirror_url: null, + updated_at: '2015-11-24T01:14:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ACEView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ACEView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ACEView/compare/{base}...{head}', + description: 'Use the wonderful ACE editor in your Cocoa applications', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ACEView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ACEView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ACEView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ACEView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ACEView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ACEView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ACEView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ACEView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ACEView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ACEView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ACEView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ACEView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ACEView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ACEView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13623648, + url: 'https://api.github.com/repos/mralexgray/ActiveLog', + fork: true, + name: 'ActiveLog', + size: 60, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ActiveLog.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzYyMzY0OA==', + private: false, + ssh_url: 'git@github.com:mralexgray/ActiveLog.git', + svn_url: 'https://github.com/mralexgray/ActiveLog', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://deepitpro.com/en/articles/ActiveLog/info/', + html_url: 'https://github.com/mralexgray/ActiveLog', + keys_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ActiveLog/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ActiveLog.git', + forks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/forks', + full_name: 'mralexgray/ActiveLog', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/pulls{/number}', + pushed_at: '2011-07-03T06:28:59Z', + teams_url: 'https://api.github.com/repos/mralexgray/ActiveLog/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/trees{/sha}', + created_at: '2013-10-16T15:52:37Z', + events_url: 'https://api.github.com/repos/mralexgray/ActiveLog/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ActiveLog/merges', + mirror_url: null, + updated_at: '2013-10-16T15:52:37Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/compare/{base}...{head}', + description: 'Shut up all logs with active filter.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9716210, + url: 'https://api.github.com/repos/mralexgray/adium', + fork: false, + name: 'adium', + size: 277719, + forks: 37, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/adium.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk5NzE2MjEw', + private: false, + ssh_url: 'git@github.com:mralexgray/adium.git', + svn_url: 'https://github.com/mralexgray/adium', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/adium', + keys_url: 'https://api.github.com/repos/mralexgray/adium/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/adium/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/adium/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/adium.git', + forks_url: 'https://api.github.com/repos/mralexgray/adium/forks', + full_name: 'mralexgray/adium', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/adium/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/adium/pulls{/number}', + pushed_at: '2013-04-26T16:43:53Z', + teams_url: 'https://api.github.com/repos/mralexgray/adium/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/adium/git/trees{/sha}', + created_at: '2013-04-27T14:59:33Z', + events_url: 'https://api.github.com/repos/mralexgray/adium/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/adium/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/adium/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/adium/merges', + mirror_url: null, + updated_at: '2019-12-11T06:51:45Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/adium/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/adium/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/adium/compare/{base}...{head}', + description: 'Official mirror of hg.adium.im', + forks_count: 37, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/adium/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/adium/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/adium/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/adium/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/adium/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/adium/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/adium/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/adium/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/adium/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/adium/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/adium/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/adium/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/adium/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/adium/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/adium/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/adium/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/adium/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/adium/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/adium/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/adium/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/adium/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12752329, + url: 'https://api.github.com/repos/mralexgray/ADLivelyTableView', + fork: true, + name: 'ADLivelyTableView', + size: 73, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ADLivelyTableView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc1MjMyOQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ADLivelyTableView.git', + svn_url: 'https://github.com/mralexgray/ADLivelyTableView', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://applidium.com/en/news/lively_uitableview/', + html_url: 'https://github.com/mralexgray/ADLivelyTableView', + keys_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ADLivelyTableView.git', + forks_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/forks', + full_name: 'mralexgray/ADLivelyTableView', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/pulls{/number}', + pushed_at: '2012-05-10T10:40:15Z', + teams_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/trees{/sha}', + created_at: '2013-09-11T09:18:01Z', + events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/merges', + mirror_url: null, + updated_at: '2013-09-11T09:18:03Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/compare/{base}...{head}', + description: 'Lively UITableView', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5697379, + url: 'https://api.github.com/repos/mralexgray/AFIncrementalStore', + fork: true, + name: 'AFIncrementalStore', + size: 139, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFIncrementalStore.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1Njk3Mzc5', + private: false, + ssh_url: 'git@github.com:mralexgray/AFIncrementalStore.git', + svn_url: 'https://github.com/mralexgray/AFIncrementalStore', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AFIncrementalStore', + keys_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFIncrementalStore.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/forks', + full_name: 'mralexgray/AFIncrementalStore', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/pulls{/number}', + pushed_at: '2012-09-01T22:46:25Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/trees{/sha}', + created_at: '2012-09-06T04:20:33Z', + events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/merges', + mirror_url: null, + updated_at: '2013-01-12T03:15:29Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/compare/{base}...{head}', + description: 'Core Data Persistence with AFNetworking, Done Right', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 6969621, + url: 'https://api.github.com/repos/mralexgray/AFNetworking', + fork: true, + name: 'AFNetworking', + size: 4341, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFNetworking.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk2OTY5NjIx', + private: false, + ssh_url: 'git@github.com:mralexgray/AFNetworking.git', + svn_url: 'https://github.com/mralexgray/AFNetworking', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://afnetworking.com', + html_url: 'https://github.com/mralexgray/AFNetworking', + keys_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AFNetworking/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFNetworking.git', + forks_url: 'https://api.github.com/repos/mralexgray/AFNetworking/forks', + full_name: 'mralexgray/AFNetworking', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AFNetworking/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/pulls{/number}', + pushed_at: '2014-01-24T07:14:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/AFNetworking/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/trees{/sha}', + created_at: '2012-12-02T17:00:04Z', + events_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/merges', + mirror_url: null, + updated_at: '2014-01-24T07:14:33Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/compare/{base}...{head}', + description: 'A delightful iOS and OS X networking framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9485541, + url: 'https://api.github.com/repos/mralexgray/AGNSSplitView', + fork: true, + name: 'AGNSSplitView', + size: 68, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGNSSplitView.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5NDg1NTQx', + private: false, + ssh_url: 'git@github.com:mralexgray/AGNSSplitView.git', + svn_url: 'https://github.com/mralexgray/AGNSSplitView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGNSSplitView', + keys_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGNSSplitView.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/forks', + full_name: 'mralexgray/AGNSSplitView', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/pulls{/number}', + pushed_at: '2013-02-26T00:32:32Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/trees{/sha}', + created_at: '2013-04-17T00:10:13Z', + events_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/merges', + mirror_url: null, + updated_at: '2013-04-17T00:10:13Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/compare/{base}...{head}', + description: 'Simple NSSplitView additions.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12767784, + url: 'https://api.github.com/repos/mralexgray/AGScopeBar', + fork: true, + name: 'AGScopeBar', + size: 64, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGScopeBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc2Nzc4NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AGScopeBar.git', + svn_url: 'https://github.com/mralexgray/AGScopeBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGScopeBar', + keys_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGScopeBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/forks', + full_name: 'mralexgray/AGScopeBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/pulls{/number}', + pushed_at: '2013-05-07T03:35:29Z', + teams_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/trees{/sha}', + created_at: '2013-09-11T21:06:54Z', + events_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/merges', + mirror_url: null, + updated_at: '2013-09-11T21:06:54Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/compare/{base}...{head}', + description: 'Custom scope bar implementation for Cocoa', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 31829499, + url: 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin', + fork: true, + name: 'agvtool-xcode-plugin', + size: 102, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/agvtool-xcode-plugin.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkzMTgyOTQ5OQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/agvtool-xcode-plugin.git', + svn_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + keys_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/agvtool-xcode-plugin.git', + forks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/forks', + full_name: 'mralexgray/agvtool-xcode-plugin', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/pulls{/number}', + pushed_at: '2015-03-08T00:04:31Z', + teams_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/trees{/sha}', + created_at: '2015-03-07T22:15:38Z', + events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/merges', + mirror_url: null, + updated_at: '2015-03-07T22:15:41Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/compare/{base}...{head}', + description: 'this is a plugin wrapper for agvtool for xcode.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9227846, + url: 'https://api.github.com/repos/mralexgray/AHContentBrowser', + fork: true, + name: 'AHContentBrowser', + size: 223, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHContentBrowser.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MjI3ODQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/AHContentBrowser.git', + svn_url: 'https://github.com/mralexgray/AHContentBrowser', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHContentBrowser', + keys_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHContentBrowser.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/forks', + full_name: 'mralexgray/AHContentBrowser', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/pulls{/number}', + pushed_at: '2013-03-13T17:38:23Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/trees{/sha}', + created_at: '2013-04-04T20:56:16Z', + events_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/merges', + mirror_url: null, + updated_at: '2015-10-22T05:00:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/compare/{base}...{head}', + description: + 'A Mac only webview that loads a fast readable version of the website if available.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 37430328, + url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl', + fork: true, + name: 'AHLaunchCtl', + size: 592, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLaunchCtl.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNzQzMDMyOA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLaunchCtl.git', + svn_url: 'https://github.com/mralexgray/AHLaunchCtl', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHLaunchCtl', + keys_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLaunchCtl.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/forks', + full_name: 'mralexgray/AHLaunchCtl', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/pulls{/number}', + pushed_at: '2015-05-26T18:50:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/trees{/sha}', + created_at: '2015-06-14T21:31:03Z', + events_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/merges', + mirror_url: null, + updated_at: '2015-06-14T21:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/compare/{base}...{head}', + description: 'LaunchD Framework for Cocoa Apps', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9167473, + url: 'https://api.github.com/repos/mralexgray/AHLayout', + fork: true, + name: 'AHLayout', + size: 359, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLayout.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MTY3NDcz', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLayout.git', + svn_url: 'https://github.com/mralexgray/AHLayout', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AHLayout', + keys_url: + 'https://api.github.com/repos/mralexgray/AHLayout/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLayout/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLayout.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHLayout/forks', + full_name: 'mralexgray/AHLayout', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHLayout/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHLayout/pulls{/number}', + pushed_at: '2013-07-08T02:31:14Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHLayout/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/trees{/sha}', + created_at: '2013-04-02T10:10:30Z', + events_url: 'https://api.github.com/repos/mralexgray/AHLayout/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHLayout/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AHLayout/merges', + mirror_url: null, + updated_at: '2013-07-08T02:31:17Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLayout/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHLayout/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLayout/compare/{base}...{head}', + description: 'AHLayout', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLayout/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLayout/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLayout/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLayout/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHLayout/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHLayout/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLayout/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHLayout/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLayout/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLayout/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 18450201, + url: 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework', + fork: true, + name: 'Airmail-Plug-In-Framework', + size: 888, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Airmail-Plug-In-Framework.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxODQ1MDIwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Airmail-Plug-In-Framework.git', + svn_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + keys_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/keys{/key_id}', + language: null, + tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/blobs{/sha}', + clone_url: + 'https://github.com/mralexgray/Airmail-Plug-In-Framework.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/forks', + full_name: 'mralexgray/Airmail-Plug-In-Framework', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/pulls{/number}', + pushed_at: '2014-03-27T15:42:19Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/trees{/sha}', + created_at: '2014-04-04T19:33:54Z', + events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/merges', + mirror_url: null, + updated_at: '2014-11-23T19:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5203219, + url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API', + fork: true, + name: 'AJS-iTunes-API', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AJS-iTunes-API.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MjAzMjE5', + private: false, + ssh_url: 'git@github.com:mralexgray/AJS-iTunes-API.git', + svn_url: 'https://github.com/mralexgray/AJS-iTunes-API', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AJS-iTunes-API', + keys_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AJS-iTunes-API.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/forks', + full_name: 'mralexgray/AJS-iTunes-API', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/pulls{/number}', + pushed_at: '2011-10-30T22:26:48Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/trees{/sha}', + created_at: '2012-07-27T10:20:58Z', + events_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/merges', + mirror_url: null, + updated_at: '2013-01-11T11:00:05Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/compare/{base}...{head}', + description: + 'Cocoa wrapper for the iTunes search API - for iOS and Mac OSX projects', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10093801, + url: 'https://api.github.com/repos/mralexgray/Alcatraz', + fork: true, + name: 'Alcatraz', + size: 3668, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alcatraz.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDA5MzgwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alcatraz.git', + svn_url: 'https://github.com/mralexgray/Alcatraz', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/Alcatraz', + keys_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Alcatraz/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Alcatraz.git', + forks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/forks', + full_name: 'mralexgray/Alcatraz', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/pulls{/number}', + pushed_at: '2014-03-19T12:50:37Z', + teams_url: 'https://api.github.com/repos/mralexgray/Alcatraz/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/trees{/sha}', + created_at: '2013-05-16T04:41:13Z', + events_url: 'https://api.github.com/repos/mralexgray/Alcatraz/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Alcatraz/merges', + mirror_url: null, + updated_at: '2014-03-19T20:38:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/compare/{base}...{head}', + description: 'The most awesome (and only) Xcode package manager!', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12916552, + url: 'https://api.github.com/repos/mralexgray/alcatraz-packages', + fork: true, + name: 'alcatraz-packages', + size: 826, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alcatraz-packages.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjkxNjU1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alcatraz-packages.git', + svn_url: 'https://github.com/mralexgray/alcatraz-packages', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/alcatraz-packages', + keys_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/keys{/key_id}', + language: 'Ruby', + tags_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alcatraz-packages.git', + forks_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/forks', + full_name: 'mralexgray/alcatraz-packages', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/pulls{/number}', + pushed_at: '2015-12-14T16:21:31Z', + teams_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/trees{/sha}', + created_at: '2013-09-18T07:15:24Z', + events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/merges', + mirror_url: null, + updated_at: '2015-11-10T20:52:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/compare/{base}...{head}', + description: 'Package list repository for Alcatraz', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 44278362, + url: 'https://api.github.com/repos/mralexgray/alexicons', + fork: true, + name: 'alexicons', + size: 257, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alexicons.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk0NDI3ODM2Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alexicons.git', + svn_url: 'https://github.com/mralexgray/alexicons', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/alexicons', + keys_url: + 'https://api.github.com/repos/mralexgray/alexicons/keys{/key_id}', + language: 'CoffeeScript', + tags_url: 'https://api.github.com/repos/mralexgray/alexicons/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alexicons.git', + forks_url: 'https://api.github.com/repos/mralexgray/alexicons/forks', + full_name: 'mralexgray/alexicons', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/alexicons/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/alexicons/pulls{/number}', + pushed_at: '2015-10-16T03:57:51Z', + teams_url: 'https://api.github.com/repos/mralexgray/alexicons/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/trees{/sha}', + created_at: '2015-10-14T21:49:39Z', + events_url: 'https://api.github.com/repos/mralexgray/alexicons/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/alexicons/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/alexicons/merges', + mirror_url: null, + updated_at: '2015-10-15T06:20:08Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alexicons/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alexicons/compare/{base}...{head}', + description: 'Get popular cat names', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alexicons/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alexicons/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alexicons/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alexicons/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alexicons/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alexicons/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/alexicons/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/alexicons/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alexicons/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alexicons/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alexicons/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alexicons/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alexicons/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alexicons/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10476467, + url: 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate', + fork: true, + name: 'Alfred-Google-Translate', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alfred-Google-Translate.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ3NjQ2Nw==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alfred-Google-Translate.git', + svn_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + keys_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/keys{/key_id}', + language: 'Shell', + tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Alfred-Google-Translate.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/forks', + full_name: 'mralexgray/Alfred-Google-Translate', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/pulls{/number}', + pushed_at: '2013-01-12T19:39:03Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/trees{/sha}', + created_at: '2013-06-04T10:45:10Z', + events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/merges', + mirror_url: null, + updated_at: '2013-06-04T10:45:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/compare/{base}...{head}', + description: + 'Extension for Alfred that will do a Google translate for you', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5524019, + url: 'https://api.github.com/repos/mralexgray/Amber', + fork: false, + name: 'Amber', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amber.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1NTI0MDE5', + private: false, + ssh_url: 'git@github.com:mralexgray/Amber.git', + svn_url: 'https://github.com/mralexgray/Amber', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Amber', + keys_url: 'https://api.github.com/repos/mralexgray/Amber/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/Amber/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Amber/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amber.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amber/forks', + full_name: 'mralexgray/Amber', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amber/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Amber/pulls{/number}', + pushed_at: '2012-08-23T10:38:25Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amber/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Amber/git/trees{/sha}', + created_at: '2012-08-23T10:38:24Z', + events_url: 'https://api.github.com/repos/mralexgray/Amber/events', + has_issues: true, + issues_url: + 'https://api.github.com/repos/mralexgray/Amber/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Amber/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amber/merges', + mirror_url: null, + updated_at: '2013-01-11T22:25:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amber/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Amber/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amber/compare/{base}...{head}', + description: 'Fork of the difficult-to-deal-with Amber.framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amber/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amber/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amber/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Amber/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Amber/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Amber/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Amber/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amber/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Amber/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Amber/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amber/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Amber/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Amber/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amber/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Amber/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amber/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amber/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amber/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amber/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10809060, + url: 'https://api.github.com/repos/mralexgray/Amethyst', + fork: true, + name: 'Amethyst', + size: 12623, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amethyst.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDgwOTA2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/Amethyst.git', + svn_url: 'https://github.com/mralexgray/Amethyst', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ianyh.github.io/Amethyst/', + html_url: 'https://github.com/mralexgray/Amethyst', + keys_url: + 'https://api.github.com/repos/mralexgray/Amethyst/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Amethyst/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amethyst.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amethyst/forks', + full_name: 'mralexgray/Amethyst', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amethyst/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Amethyst/pulls{/number}', + pushed_at: '2013-06-18T02:54:11Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amethyst/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/trees{/sha}', + created_at: '2013-06-20T00:34:22Z', + events_url: 'https://api.github.com/repos/mralexgray/Amethyst/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Amethyst/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amethyst/merges', + mirror_url: null, + updated_at: '2013-06-20T00:34:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amethyst/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Amethyst/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amethyst/compare/{base}...{head}', + description: 'Tiling window manager for OS X.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amethyst/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Amethyst/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Amethyst/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amethyst/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Amethyst/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Amethyst/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amethyst/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Amethyst/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amethyst/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amethyst/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 3684286, + url: 'https://api.github.com/repos/mralexgray/Animated-Paths', + fork: true, + name: 'Animated-Paths', + size: 411, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Animated-Paths.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNjg0Mjg2', + private: false, + ssh_url: 'git@github.com:mralexgray/Animated-Paths.git', + svn_url: 'https://github.com/mralexgray/Animated-Paths', + archived: false, + disabled: false, + has_wiki: true, + homepage: + 'http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/', + html_url: 'https://github.com/mralexgray/Animated-Paths', + keys_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Animated-Paths.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/forks', + full_name: 'mralexgray/Animated-Paths', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/pulls{/number}', + pushed_at: '2010-12-30T20:56:51Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/trees{/sha}', + created_at: '2012-03-11T02:56:38Z', + events_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/merges', + mirror_url: null, + updated_at: '2013-01-08T04:12:21Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/compare/{base}...{head}', + description: + 'Demo project: Animating the drawing of a CGPath with CAShapeLayer.strokeEnd', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16662874, + url: 'https://api.github.com/repos/mralexgray/AnsiLove.framework', + fork: true, + name: 'AnsiLove.framework', + size: 3780, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AnsiLove.framework.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjY2Mjg3NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AnsiLove.framework.git', + svn_url: 'https://github.com/mralexgray/AnsiLove.framework', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'http://byteproject.net', + html_url: 'https://github.com/mralexgray/AnsiLove.framework', + keys_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/keys{/key_id}', + language: 'M', + tags_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AnsiLove.framework.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/forks', + full_name: 'mralexgray/AnsiLove.framework', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/pulls{/number}', + pushed_at: '2013-10-04T14:08:38Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/trees{/sha}', + created_at: '2014-02-09T08:30:27Z', + events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/merges', + mirror_url: null, + updated_at: '2015-01-13T20:41:46Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/compare/{base}...{head}', + description: 'Cocoa Framework for rendering ANSi / ASCII art', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5189563, + url: 'https://api.github.com/repos/mralexgray/ANTrackBar', + fork: true, + name: 'ANTrackBar', + size: 94, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ANTrackBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MTg5NTYz', + private: false, + ssh_url: 'git@github.com:mralexgray/ANTrackBar.git', + svn_url: 'https://github.com/mralexgray/ANTrackBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/ANTrackBar', + keys_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ANTrackBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/forks', + full_name: 'mralexgray/ANTrackBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/pulls{/number}', + pushed_at: '2012-03-09T01:40:02Z', + teams_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/trees{/sha}', + created_at: '2012-07-26T08:17:22Z', + events_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/merges', + mirror_url: null, + updated_at: '2013-01-11T10:29:56Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/compare/{base}...{head}', + description: 'An easy-to-use Cocoa seek bar with a pleasing appearance', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16240152, + url: 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C', + fork: true, + name: 'AOP-in-Objective-C', + size: 340, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AOP-in-Objective-C.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjI0MDE1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/AOP-in-Objective-C.git', + svn_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://innoli.hu/en/opensource/', + html_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + keys_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AOP-in-Objective-C.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/forks', + full_name: 'mralexgray/AOP-in-Objective-C', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/pulls{/number}', + pushed_at: '2014-02-12T16:23:20Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/trees{/sha}', + created_at: '2014-01-25T21:18:04Z', + events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/merges', + mirror_url: null, + updated_at: '2014-06-19T19:38:12Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/compare/{base}...{head}', + description: + 'An NSProxy based library for easily enabling AOP like functionality in Objective-C.', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/languages', + default_branch: 'travis-coveralls', + milestones_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13141936, + url: 'https://api.github.com/repos/mralexgray/Apaxy', + fork: true, + name: 'Apaxy', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Apaxy.git', + license: { + key: 'unlicense', + url: 'https://api.github.com/licenses/unlicense', + name: 'The Unlicense', + node_id: 'MDc6TGljZW5zZTE1', + spdx_id: 'Unlicense', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzE0MTkzNg==', + private: false, + ssh_url: 'git@github.com:mralexgray/Apaxy.git', + svn_url: 'https://github.com/mralexgray/Apaxy', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Apaxy', + keys_url: 'https://api.github.com/repos/mralexgray/Apaxy/keys{/key_id}', + language: 'CSS', + tags_url: 'https://api.github.com/repos/mralexgray/Apaxy/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Apaxy.git', + forks_url: 'https://api.github.com/repos/mralexgray/Apaxy/forks', + full_name: 'mralexgray/Apaxy', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Apaxy/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Apaxy/pulls{/number}', + pushed_at: '2013-08-02T16:01:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/Apaxy/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/trees{/sha}', + created_at: '2013-09-27T05:05:35Z', + events_url: 'https://api.github.com/repos/mralexgray/Apaxy/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Apaxy/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Apaxy/merges', + mirror_url: null, + updated_at: '2018-02-16T21:40:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Apaxy/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Apaxy/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Apaxy/compare/{base}...{head}', + description: + 'A simple, customisable theme for your Apache directory listing.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Apaxy/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Apaxy/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Apaxy/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Apaxy/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Apaxy/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Apaxy/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Apaxy/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Apaxy/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Apaxy/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Apaxy/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Apaxy/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Apaxy/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Apaxy/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Apaxy/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 20027360, + url: 'https://api.github.com/repos/mralexgray/app', + fork: true, + name: 'app', + size: 1890, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/app.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkyMDAyNzM2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/app.git', + svn_url: 'https://github.com/mralexgray/app', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/app', + keys_url: 'https://api.github.com/repos/mralexgray/app/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/app/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/app/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/app.git', + forks_url: 'https://api.github.com/repos/mralexgray/app/forks', + full_name: 'mralexgray/app', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/app/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/app/pulls{/number}', + pushed_at: '2014-05-20T19:51:38Z', + teams_url: 'https://api.github.com/repos/mralexgray/app/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/app/git/trees{/sha}', + created_at: '2014-05-21T15:54:20Z', + events_url: 'https://api.github.com/repos/mralexgray/app/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/app/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/app/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/app/merges', + mirror_url: null, + updated_at: '2014-05-21T15:54:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/app/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/app/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/app/compare/{base}...{head}', + description: 'Instant mobile web app creation', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/app/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/app/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/app/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/app/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/app/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/app/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/app/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/app/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/app/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/app/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/app/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/app/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/app/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/app/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/app/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/app/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/app/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/app/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/app/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/app/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/app/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + ], + data2: [ + { + id: 6104546, + url: 'https://api.github.com/repos/mralexgray/-REPONAME', + fork: false, + name: '-REPONAME', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/-REPONAME.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk2MTA0NTQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/-REPONAME.git', + svn_url: 'https://github.com/mralexgray/-REPONAME', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/-REPONAME', + keys_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/-REPONAME/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/-REPONAME.git', + forks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/forks', + full_name: 'mralexgray/-REPONAME', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/pulls{/number}', + pushed_at: '2012-10-06T16:37:39Z', + teams_url: 'https://api.github.com/repos/mralexgray/-REPONAME/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/trees{/sha}', + created_at: '2012-10-06T16:37:39Z', + events_url: 'https://api.github.com/repos/mralexgray/-REPONAME/events', + has_issues: true, + issues_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/-REPONAME/merges', + mirror_url: null, + updated_at: '2013-01-12T13:39:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 104510411, + url: 'https://api.github.com/repos/mralexgray/...', + fork: true, + name: '...', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/....git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ1MTA0MTE=', + private: false, + ssh_url: 'git@github.com:mralexgray/....git', + svn_url: 'https://github.com/mralexgray/...', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'https://driesvints.com/blog/getting-started-with-dotfiles', + html_url: 'https://github.com/mralexgray/...', + keys_url: 'https://api.github.com/repos/mralexgray/.../keys{/key_id}', + language: 'Shell', + tags_url: 'https://api.github.com/repos/mralexgray/.../tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/.../git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/....git', + forks_url: 'https://api.github.com/repos/mralexgray/.../forks', + full_name: 'mralexgray/...', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/.../hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/.../pulls{/number}', + pushed_at: '2017-09-15T08:27:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/.../teams', + trees_url: + 'https://api.github.com/repos/mralexgray/.../git/trees{/sha}', + created_at: '2017-09-22T19:19:42Z', + events_url: 'https://api.github.com/repos/mralexgray/.../events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/.../issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/.../labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/.../merges', + mirror_url: null, + updated_at: '2017-09-22T19:20:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/.../{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/.../commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/.../compare/{base}...{head}', + description: ':computer: Public repo for my personal dotfiles.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/.../branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/.../comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/.../contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/.../git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/.../git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/.../releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/.../statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/.../assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/.../downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/.../languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/.../milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/.../stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/.../deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/.../git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/.../subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/.../contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/.../issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/.../subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/.../collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/.../issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/.../notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 58656723, + url: 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol', + fork: true, + name: '2200087-Serial-Protocol', + size: 41, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/2200087-Serial-Protocol.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1ODY1NjcyMw==', + private: false, + ssh_url: 'git@github.com:mralexgray/2200087-Serial-Protocol.git', + svn_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://daviddworken.com', + html_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + keys_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/keys{/key_id}', + language: 'Python', + tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/2200087-Serial-Protocol.git', + forks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/forks', + full_name: 'mralexgray/2200087-Serial-Protocol', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/pulls{/number}', + pushed_at: '2016-05-12T16:07:24Z', + teams_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/trees{/sha}', + created_at: '2016-05-12T16:05:28Z', + events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/merges', + mirror_url: null, + updated_at: '2016-05-12T16:05:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/compare/{base}...{head}', + description: + "A reverse engineered protocol description and accompanying code for Radioshack's 2200087 multimeter", + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13121042, + url: 'https://api.github.com/repos/mralexgray/ace', + fork: true, + name: 'ace', + size: 21080, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ace.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzEyMTA0Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/ace.git', + svn_url: 'https://github.com/mralexgray/ace', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ace.c9.io', + html_url: 'https://github.com/mralexgray/ace', + keys_url: 'https://api.github.com/repos/mralexgray/ace/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/ace/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ace/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ace.git', + forks_url: 'https://api.github.com/repos/mralexgray/ace/forks', + full_name: 'mralexgray/ace', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ace/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/ace/pulls{/number}', + pushed_at: '2013-10-26T12:34:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/ace/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ace/git/trees{/sha}', + created_at: '2013-09-26T11:58:10Z', + events_url: 'https://api.github.com/repos/mralexgray/ace/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ace/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/ace/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ace/merges', + mirror_url: null, + updated_at: '2013-10-26T12:34:49Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ace/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ace/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ace/compare/{base}...{head}', + description: 'Ace (Ajax.org Cloud9 Editor)', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ace/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ace/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ace/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ace/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ace/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ace/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ace/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ace/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/ace/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/ace/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ace/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ace/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ace/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ace/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ace/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ace/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ace/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ace/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ace/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ace/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ace/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10791045, + url: 'https://api.github.com/repos/mralexgray/ACEView', + fork: true, + name: 'ACEView', + size: 1733, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ACEView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDc5MTA0NQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ACEView.git', + svn_url: 'https://github.com/mralexgray/ACEView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/ACEView', + keys_url: + 'https://api.github.com/repos/mralexgray/ACEView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ACEView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ACEView.git', + forks_url: 'https://api.github.com/repos/mralexgray/ACEView/forks', + full_name: 'mralexgray/ACEView', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ACEView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ACEView/pulls{/number}', + pushed_at: '2014-05-09T01:36:23Z', + teams_url: 'https://api.github.com/repos/mralexgray/ACEView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/trees{/sha}', + created_at: '2013-06-19T12:15:04Z', + events_url: 'https://api.github.com/repos/mralexgray/ACEView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ACEView/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ACEView/merges', + mirror_url: null, + updated_at: '2015-11-24T01:14:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ACEView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ACEView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ACEView/compare/{base}...{head}', + description: 'Use the wonderful ACE editor in your Cocoa applications', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ACEView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ACEView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ACEView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ACEView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ACEView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ACEView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ACEView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ACEView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ACEView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ACEView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ACEView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ACEView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ACEView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ACEView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13623648, + url: 'https://api.github.com/repos/mralexgray/ActiveLog', + fork: true, + name: 'ActiveLog', + size: 60, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ActiveLog.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzYyMzY0OA==', + private: false, + ssh_url: 'git@github.com:mralexgray/ActiveLog.git', + svn_url: 'https://github.com/mralexgray/ActiveLog', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://deepitpro.com/en/articles/ActiveLog/info/', + html_url: 'https://github.com/mralexgray/ActiveLog', + keys_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ActiveLog/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ActiveLog.git', + forks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/forks', + full_name: 'mralexgray/ActiveLog', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/pulls{/number}', + pushed_at: '2011-07-03T06:28:59Z', + teams_url: 'https://api.github.com/repos/mralexgray/ActiveLog/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/trees{/sha}', + created_at: '2013-10-16T15:52:37Z', + events_url: 'https://api.github.com/repos/mralexgray/ActiveLog/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ActiveLog/merges', + mirror_url: null, + updated_at: '2013-10-16T15:52:37Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/compare/{base}...{head}', + description: 'Shut up all logs with active filter.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9716210, + url: 'https://api.github.com/repos/mralexgray/adium', + fork: false, + name: 'adium', + size: 277719, + forks: 37, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/adium.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk5NzE2MjEw', + private: false, + ssh_url: 'git@github.com:mralexgray/adium.git', + svn_url: 'https://github.com/mralexgray/adium', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/adium', + keys_url: 'https://api.github.com/repos/mralexgray/adium/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/adium/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/adium/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/adium.git', + forks_url: 'https://api.github.com/repos/mralexgray/adium/forks', + full_name: 'mralexgray/adium', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/adium/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/adium/pulls{/number}', + pushed_at: '2013-04-26T16:43:53Z', + teams_url: 'https://api.github.com/repos/mralexgray/adium/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/adium/git/trees{/sha}', + created_at: '2013-04-27T14:59:33Z', + events_url: 'https://api.github.com/repos/mralexgray/adium/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/adium/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/adium/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/adium/merges', + mirror_url: null, + updated_at: '2019-12-11T06:51:45Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/adium/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/adium/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/adium/compare/{base}...{head}', + description: 'Official mirror of hg.adium.im', + forks_count: 37, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/adium/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/adium/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/adium/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/adium/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/adium/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/adium/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/adium/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/adium/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/adium/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/adium/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/adium/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/adium/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/adium/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/adium/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/adium/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/adium/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/adium/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/adium/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/adium/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/adium/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/adium/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12752329, + url: 'https://api.github.com/repos/mralexgray/ADLivelyTableView', + fork: true, + name: 'ADLivelyTableView', + size: 73, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ADLivelyTableView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc1MjMyOQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ADLivelyTableView.git', + svn_url: 'https://github.com/mralexgray/ADLivelyTableView', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://applidium.com/en/news/lively_uitableview/', + html_url: 'https://github.com/mralexgray/ADLivelyTableView', + keys_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ADLivelyTableView.git', + forks_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/forks', + full_name: 'mralexgray/ADLivelyTableView', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/pulls{/number}', + pushed_at: '2012-05-10T10:40:15Z', + teams_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/trees{/sha}', + created_at: '2013-09-11T09:18:01Z', + events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/merges', + mirror_url: null, + updated_at: '2013-09-11T09:18:03Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/compare/{base}...{head}', + description: 'Lively UITableView', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5697379, + url: 'https://api.github.com/repos/mralexgray/AFIncrementalStore', + fork: true, + name: 'AFIncrementalStore', + size: 139, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFIncrementalStore.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1Njk3Mzc5', + private: false, + ssh_url: 'git@github.com:mralexgray/AFIncrementalStore.git', + svn_url: 'https://github.com/mralexgray/AFIncrementalStore', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AFIncrementalStore', + keys_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFIncrementalStore.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/forks', + full_name: 'mralexgray/AFIncrementalStore', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/pulls{/number}', + pushed_at: '2012-09-01T22:46:25Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/trees{/sha}', + created_at: '2012-09-06T04:20:33Z', + events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/merges', + mirror_url: null, + updated_at: '2013-01-12T03:15:29Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/compare/{base}...{head}', + description: 'Core Data Persistence with AFNetworking, Done Right', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 6969621, + url: 'https://api.github.com/repos/mralexgray/AFNetworking', + fork: true, + name: 'AFNetworking', + size: 4341, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFNetworking.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk2OTY5NjIx', + private: false, + ssh_url: 'git@github.com:mralexgray/AFNetworking.git', + svn_url: 'https://github.com/mralexgray/AFNetworking', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://afnetworking.com', + html_url: 'https://github.com/mralexgray/AFNetworking', + keys_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AFNetworking/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFNetworking.git', + forks_url: 'https://api.github.com/repos/mralexgray/AFNetworking/forks', + full_name: 'mralexgray/AFNetworking', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AFNetworking/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/pulls{/number}', + pushed_at: '2014-01-24T07:14:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/AFNetworking/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/trees{/sha}', + created_at: '2012-12-02T17:00:04Z', + events_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/merges', + mirror_url: null, + updated_at: '2014-01-24T07:14:33Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/compare/{base}...{head}', + description: 'A delightful iOS and OS X networking framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9485541, + url: 'https://api.github.com/repos/mralexgray/AGNSSplitView', + fork: true, + name: 'AGNSSplitView', + size: 68, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGNSSplitView.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5NDg1NTQx', + private: false, + ssh_url: 'git@github.com:mralexgray/AGNSSplitView.git', + svn_url: 'https://github.com/mralexgray/AGNSSplitView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGNSSplitView', + keys_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGNSSplitView.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/forks', + full_name: 'mralexgray/AGNSSplitView', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/pulls{/number}', + pushed_at: '2013-02-26T00:32:32Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/trees{/sha}', + created_at: '2013-04-17T00:10:13Z', + events_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/merges', + mirror_url: null, + updated_at: '2013-04-17T00:10:13Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/compare/{base}...{head}', + description: 'Simple NSSplitView additions.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12767784, + url: 'https://api.github.com/repos/mralexgray/AGScopeBar', + fork: true, + name: 'AGScopeBar', + size: 64, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGScopeBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc2Nzc4NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AGScopeBar.git', + svn_url: 'https://github.com/mralexgray/AGScopeBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGScopeBar', + keys_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGScopeBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/forks', + full_name: 'mralexgray/AGScopeBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/pulls{/number}', + pushed_at: '2013-05-07T03:35:29Z', + teams_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/trees{/sha}', + created_at: '2013-09-11T21:06:54Z', + events_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/merges', + mirror_url: null, + updated_at: '2013-09-11T21:06:54Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/compare/{base}...{head}', + description: 'Custom scope bar implementation for Cocoa', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 31829499, + url: 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin', + fork: true, + name: 'agvtool-xcode-plugin', + size: 102, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/agvtool-xcode-plugin.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkzMTgyOTQ5OQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/agvtool-xcode-plugin.git', + svn_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + keys_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/agvtool-xcode-plugin.git', + forks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/forks', + full_name: 'mralexgray/agvtool-xcode-plugin', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/pulls{/number}', + pushed_at: '2015-03-08T00:04:31Z', + teams_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/trees{/sha}', + created_at: '2015-03-07T22:15:38Z', + events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/merges', + mirror_url: null, + updated_at: '2015-03-07T22:15:41Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/compare/{base}...{head}', + description: 'this is a plugin wrapper for agvtool for xcode.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9227846, + url: 'https://api.github.com/repos/mralexgray/AHContentBrowser', + fork: true, + name: 'AHContentBrowser', + size: 223, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHContentBrowser.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MjI3ODQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/AHContentBrowser.git', + svn_url: 'https://github.com/mralexgray/AHContentBrowser', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHContentBrowser', + keys_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHContentBrowser.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/forks', + full_name: 'mralexgray/AHContentBrowser', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/pulls{/number}', + pushed_at: '2013-03-13T17:38:23Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/trees{/sha}', + created_at: '2013-04-04T20:56:16Z', + events_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/merges', + mirror_url: null, + updated_at: '2015-10-22T05:00:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/compare/{base}...{head}', + description: + 'A Mac only webview that loads a fast readable version of the website if available.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 37430328, + url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl', + fork: true, + name: 'AHLaunchCtl', + size: 592, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLaunchCtl.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNzQzMDMyOA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLaunchCtl.git', + svn_url: 'https://github.com/mralexgray/AHLaunchCtl', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHLaunchCtl', + keys_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLaunchCtl.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/forks', + full_name: 'mralexgray/AHLaunchCtl', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/pulls{/number}', + pushed_at: '2015-05-26T18:50:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/trees{/sha}', + created_at: '2015-06-14T21:31:03Z', + events_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/merges', + mirror_url: null, + updated_at: '2015-06-14T21:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/compare/{base}...{head}', + description: 'LaunchD Framework for Cocoa Apps', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9167473, + url: 'https://api.github.com/repos/mralexgray/AHLayout', + fork: true, + name: 'AHLayout', + size: 359, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLayout.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MTY3NDcz', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLayout.git', + svn_url: 'https://github.com/mralexgray/AHLayout', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AHLayout', + keys_url: + 'https://api.github.com/repos/mralexgray/AHLayout/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLayout/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLayout.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHLayout/forks', + full_name: 'mralexgray/AHLayout', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHLayout/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHLayout/pulls{/number}', + pushed_at: '2013-07-08T02:31:14Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHLayout/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/trees{/sha}', + created_at: '2013-04-02T10:10:30Z', + events_url: 'https://api.github.com/repos/mralexgray/AHLayout/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHLayout/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AHLayout/merges', + mirror_url: null, + updated_at: '2013-07-08T02:31:17Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLayout/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHLayout/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLayout/compare/{base}...{head}', + description: 'AHLayout', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLayout/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLayout/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLayout/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLayout/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHLayout/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHLayout/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLayout/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHLayout/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLayout/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLayout/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 18450201, + url: 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework', + fork: true, + name: 'Airmail-Plug-In-Framework', + size: 888, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Airmail-Plug-In-Framework.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxODQ1MDIwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Airmail-Plug-In-Framework.git', + svn_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + keys_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/keys{/key_id}', + language: null, + tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/blobs{/sha}', + clone_url: + 'https://github.com/mralexgray/Airmail-Plug-In-Framework.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/forks', + full_name: 'mralexgray/Airmail-Plug-In-Framework', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/pulls{/number}', + pushed_at: '2014-03-27T15:42:19Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/trees{/sha}', + created_at: '2014-04-04T19:33:54Z', + events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/merges', + mirror_url: null, + updated_at: '2014-11-23T19:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5203219, + url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API', + fork: true, + name: 'AJS-iTunes-API', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AJS-iTunes-API.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MjAzMjE5', + private: false, + ssh_url: 'git@github.com:mralexgray/AJS-iTunes-API.git', + svn_url: 'https://github.com/mralexgray/AJS-iTunes-API', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AJS-iTunes-API', + keys_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AJS-iTunes-API.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/forks', + full_name: 'mralexgray/AJS-iTunes-API', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/pulls{/number}', + pushed_at: '2011-10-30T22:26:48Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/trees{/sha}', + created_at: '2012-07-27T10:20:58Z', + events_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/merges', + mirror_url: null, + updated_at: '2013-01-11T11:00:05Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/compare/{base}...{head}', + description: + 'Cocoa wrapper for the iTunes search API - for iOS and Mac OSX projects', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10093801, + url: 'https://api.github.com/repos/mralexgray/Alcatraz', + fork: true, + name: 'Alcatraz', + size: 3668, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alcatraz.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDA5MzgwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alcatraz.git', + svn_url: 'https://github.com/mralexgray/Alcatraz', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/Alcatraz', + keys_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Alcatraz/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Alcatraz.git', + forks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/forks', + full_name: 'mralexgray/Alcatraz', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/pulls{/number}', + pushed_at: '2014-03-19T12:50:37Z', + teams_url: 'https://api.github.com/repos/mralexgray/Alcatraz/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/trees{/sha}', + created_at: '2013-05-16T04:41:13Z', + events_url: 'https://api.github.com/repos/mralexgray/Alcatraz/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Alcatraz/merges', + mirror_url: null, + updated_at: '2014-03-19T20:38:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/compare/{base}...{head}', + description: 'The most awesome (and only) Xcode package manager!', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12916552, + url: 'https://api.github.com/repos/mralexgray/alcatraz-packages', + fork: true, + name: 'alcatraz-packages', + size: 826, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alcatraz-packages.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjkxNjU1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alcatraz-packages.git', + svn_url: 'https://github.com/mralexgray/alcatraz-packages', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/alcatraz-packages', + keys_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/keys{/key_id}', + language: 'Ruby', + tags_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alcatraz-packages.git', + forks_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/forks', + full_name: 'mralexgray/alcatraz-packages', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/pulls{/number}', + pushed_at: '2015-12-14T16:21:31Z', + teams_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/trees{/sha}', + created_at: '2013-09-18T07:15:24Z', + events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/merges', + mirror_url: null, + updated_at: '2015-11-10T20:52:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/compare/{base}...{head}', + description: 'Package list repository for Alcatraz', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 44278362, + url: 'https://api.github.com/repos/mralexgray/alexicons', + fork: true, + name: 'alexicons', + size: 257, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alexicons.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk0NDI3ODM2Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alexicons.git', + svn_url: 'https://github.com/mralexgray/alexicons', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/alexicons', + keys_url: + 'https://api.github.com/repos/mralexgray/alexicons/keys{/key_id}', + language: 'CoffeeScript', + tags_url: 'https://api.github.com/repos/mralexgray/alexicons/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alexicons.git', + forks_url: 'https://api.github.com/repos/mralexgray/alexicons/forks', + full_name: 'mralexgray/alexicons', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/alexicons/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/alexicons/pulls{/number}', + pushed_at: '2015-10-16T03:57:51Z', + teams_url: 'https://api.github.com/repos/mralexgray/alexicons/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/trees{/sha}', + created_at: '2015-10-14T21:49:39Z', + events_url: 'https://api.github.com/repos/mralexgray/alexicons/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/alexicons/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/alexicons/merges', + mirror_url: null, + updated_at: '2015-10-15T06:20:08Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alexicons/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alexicons/compare/{base}...{head}', + description: 'Get popular cat names', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alexicons/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alexicons/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alexicons/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alexicons/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alexicons/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alexicons/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/alexicons/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/alexicons/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alexicons/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alexicons/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alexicons/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alexicons/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alexicons/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alexicons/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10476467, + url: 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate', + fork: true, + name: 'Alfred-Google-Translate', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alfred-Google-Translate.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ3NjQ2Nw==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alfred-Google-Translate.git', + svn_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + keys_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/keys{/key_id}', + language: 'Shell', + tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Alfred-Google-Translate.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/forks', + full_name: 'mralexgray/Alfred-Google-Translate', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/pulls{/number}', + pushed_at: '2013-01-12T19:39:03Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/trees{/sha}', + created_at: '2013-06-04T10:45:10Z', + events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/merges', + mirror_url: null, + updated_at: '2013-06-04T10:45:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/compare/{base}...{head}', + description: + 'Extension for Alfred that will do a Google translate for you', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5524019, + url: 'https://api.github.com/repos/mralexgray/Amber', + fork: false, + name: 'Amber', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amber.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1NTI0MDE5', + private: false, + ssh_url: 'git@github.com:mralexgray/Amber.git', + svn_url: 'https://github.com/mralexgray/Amber', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Amber', + keys_url: 'https://api.github.com/repos/mralexgray/Amber/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/Amber/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Amber/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amber.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amber/forks', + full_name: 'mralexgray/Amber', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amber/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Amber/pulls{/number}', + pushed_at: '2012-08-23T10:38:25Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amber/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Amber/git/trees{/sha}', + created_at: '2012-08-23T10:38:24Z', + events_url: 'https://api.github.com/repos/mralexgray/Amber/events', + has_issues: true, + issues_url: + 'https://api.github.com/repos/mralexgray/Amber/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Amber/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amber/merges', + mirror_url: null, + updated_at: '2013-01-11T22:25:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amber/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Amber/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amber/compare/{base}...{head}', + description: 'Fork of the difficult-to-deal-with Amber.framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amber/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amber/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amber/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Amber/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Amber/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Amber/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Amber/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amber/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Amber/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Amber/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amber/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Amber/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Amber/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amber/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Amber/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amber/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amber/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amber/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amber/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10809060, + url: 'https://api.github.com/repos/mralexgray/Amethyst', + fork: true, + name: 'Amethyst', + size: 12623, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amethyst.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDgwOTA2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/Amethyst.git', + svn_url: 'https://github.com/mralexgray/Amethyst', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ianyh.github.io/Amethyst/', + html_url: 'https://github.com/mralexgray/Amethyst', + keys_url: + 'https://api.github.com/repos/mralexgray/Amethyst/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Amethyst/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amethyst.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amethyst/forks', + full_name: 'mralexgray/Amethyst', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amethyst/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Amethyst/pulls{/number}', + pushed_at: '2013-06-18T02:54:11Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amethyst/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/trees{/sha}', + created_at: '2013-06-20T00:34:22Z', + events_url: 'https://api.github.com/repos/mralexgray/Amethyst/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Amethyst/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amethyst/merges', + mirror_url: null, + updated_at: '2013-06-20T00:34:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amethyst/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Amethyst/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amethyst/compare/{base}...{head}', + description: 'Tiling window manager for OS X.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amethyst/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Amethyst/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Amethyst/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amethyst/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Amethyst/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Amethyst/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amethyst/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Amethyst/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amethyst/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amethyst/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 3684286, + url: 'https://api.github.com/repos/mralexgray/Animated-Paths', + fork: true, + name: 'Animated-Paths', + size: 411, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Animated-Paths.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNjg0Mjg2', + private: false, + ssh_url: 'git@github.com:mralexgray/Animated-Paths.git', + svn_url: 'https://github.com/mralexgray/Animated-Paths', + archived: false, + disabled: false, + has_wiki: true, + homepage: + 'http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/', + html_url: 'https://github.com/mralexgray/Animated-Paths', + keys_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Animated-Paths.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/forks', + full_name: 'mralexgray/Animated-Paths', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/pulls{/number}', + pushed_at: '2010-12-30T20:56:51Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/trees{/sha}', + created_at: '2012-03-11T02:56:38Z', + events_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/merges', + mirror_url: null, + updated_at: '2013-01-08T04:12:21Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/compare/{base}...{head}', + description: + 'Demo project: Animating the drawing of a CGPath with CAShapeLayer.strokeEnd', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16662874, + url: 'https://api.github.com/repos/mralexgray/AnsiLove.framework', + fork: true, + name: 'AnsiLove.framework', + size: 3780, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AnsiLove.framework.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjY2Mjg3NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AnsiLove.framework.git', + svn_url: 'https://github.com/mralexgray/AnsiLove.framework', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'http://byteproject.net', + html_url: 'https://github.com/mralexgray/AnsiLove.framework', + keys_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/keys{/key_id}', + language: 'M', + tags_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AnsiLove.framework.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/forks', + full_name: 'mralexgray/AnsiLove.framework', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/pulls{/number}', + pushed_at: '2013-10-04T14:08:38Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/trees{/sha}', + created_at: '2014-02-09T08:30:27Z', + events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/merges', + mirror_url: null, + updated_at: '2015-01-13T20:41:46Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/compare/{base}...{head}', + description: 'Cocoa Framework for rendering ANSi / ASCII art', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5189563, + url: 'https://api.github.com/repos/mralexgray/ANTrackBar', + fork: true, + name: 'ANTrackBar', + size: 94, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ANTrackBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MTg5NTYz', + private: false, + ssh_url: 'git@github.com:mralexgray/ANTrackBar.git', + svn_url: 'https://github.com/mralexgray/ANTrackBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/ANTrackBar', + keys_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ANTrackBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/forks', + full_name: 'mralexgray/ANTrackBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/pulls{/number}', + pushed_at: '2012-03-09T01:40:02Z', + teams_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/trees{/sha}', + created_at: '2012-07-26T08:17:22Z', + events_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/merges', + mirror_url: null, + updated_at: '2013-01-11T10:29:56Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/compare/{base}...{head}', + description: 'An easy-to-use Cocoa seek bar with a pleasing appearance', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16240152, + url: 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C', + fork: true, + name: 'AOP-in-Objective-C', + size: 340, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AOP-in-Objective-C.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjI0MDE1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/AOP-in-Objective-C.git', + svn_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://innoli.hu/en/opensource/', + html_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + keys_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AOP-in-Objective-C.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/forks', + full_name: 'mralexgray/AOP-in-Objective-C', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/pulls{/number}', + pushed_at: '2014-02-12T16:23:20Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/trees{/sha}', + created_at: '2014-01-25T21:18:04Z', + events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/merges', + mirror_url: null, + updated_at: '2014-06-19T19:38:12Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/compare/{base}...{head}', + description: + 'An NSProxy based library for easily enabling AOP like functionality in Objective-C.', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/languages', + default_branch: 'travis-coveralls', + milestones_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13141936, + url: 'https://api.github.com/repos/mralexgray/Apaxy', + fork: true, + name: 'Apaxy', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Apaxy.git', + license: { + key: 'unlicense', + url: 'https://api.github.com/licenses/unlicense', + name: 'The Unlicense', + node_id: 'MDc6TGljZW5zZTE1', + spdx_id: 'Unlicense', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzE0MTkzNg==', + private: false, + ssh_url: 'git@github.com:mralexgray/Apaxy.git', + svn_url: 'https://github.com/mralexgray/Apaxy', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Apaxy', + keys_url: 'https://api.github.com/repos/mralexgray/Apaxy/keys{/key_id}', + language: 'CSS', + tags_url: 'https://api.github.com/repos/mralexgray/Apaxy/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Apaxy.git', + forks_url: 'https://api.github.com/repos/mralexgray/Apaxy/forks', + full_name: 'mralexgray/Apaxy', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Apaxy/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Apaxy/pulls{/number}', + pushed_at: '2013-08-02T16:01:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/Apaxy/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/trees{/sha}', + created_at: '2013-09-27T05:05:35Z', + events_url: 'https://api.github.com/repos/mralexgray/Apaxy/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Apaxy/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Apaxy/merges', + mirror_url: null, + updated_at: '2018-02-16T21:40:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Apaxy/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Apaxy/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Apaxy/compare/{base}...{head}', + description: + 'A simple, customisable theme for your Apache directory listing.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Apaxy/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Apaxy/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Apaxy/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Apaxy/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Apaxy/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Apaxy/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Apaxy/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Apaxy/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Apaxy/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Apaxy/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Apaxy/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Apaxy/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Apaxy/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Apaxy/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 20027360, + url: 'https://api.github.com/repos/mralexgray/app', + fork: true, + name: 'app', + size: 1890, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/app.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkyMDAyNzM2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/app.git', + svn_url: 'https://github.com/mralexgray/app', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/app', + keys_url: 'https://api.github.com/repos/mralexgray/app/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/app/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/app/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/app.git', + forks_url: 'https://api.github.com/repos/mralexgray/app/forks', + full_name: 'mralexgray/app', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/app/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/app/pulls{/number}', + pushed_at: '2014-05-20T19:51:38Z', + teams_url: 'https://api.github.com/repos/mralexgray/app/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/app/git/trees{/sha}', + created_at: '2014-05-21T15:54:20Z', + events_url: 'https://api.github.com/repos/mralexgray/app/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/app/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/app/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/app/merges', + mirror_url: null, + updated_at: '2014-05-21T15:54:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/app/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/app/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/app/compare/{base}...{head}', + description: 'Instant mobile web app creation', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/app/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/app/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/app/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/app/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/app/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/app/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/app/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/app/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/app/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/app/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/app/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/app/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/app/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/app/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/app/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/app/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/app/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/app/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/app/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/app/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/app/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + ], + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + messageId: 'c864b4cd-8f07-4922-b3d0-82ef04c987d3', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + PayloadSize: 95943, + LastJobStatus: { + JobID: 0, + JobState: '', + AttemptNum: 0, + ExecTime: '0001-01-01T00:00:00Z', + RetryTime: '0001-01-01T00:00:00Z', + ErrorCode: '', + ErrorResponse: null, + Parameters: null, + WorkspaceId: '', + }, + Parameters: { + record_id: null, + source_id: '2DTlLPQxignYp4ag9sISgGN2uY7', + event_name: '', + event_type: 'identify', + message_id: 'c864b4cd-8f07-4922-b3d0-82ef04c987d3', + received_at: '2022-08-18T08:43:13.521+05:30', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + transform_at: 'router', + source_job_id: '', + destination_id: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + gateway_job_id: 6, + source_task_id: '', + source_batch_id: '', + source_category: '', + source_job_run_id: '', + source_task_run_id: '', + source_definition_id: '2DTlJaW1jHhM8B27Et2CMTZoxZF', + destination_definition_id: '', + }, + WorkspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + }, + workerAssignedTime: '2022-08-18T08:43:16.586825+05:30', + }, + destination: { + ID: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + Name: 'Lambda test', + DestinationDefinition: { + ID: '2DTlHvPWOzBUksUQUvggRnalUkj', + Name: 'LAMBDA', + DisplayName: 'AWS Lambda', + Config: { + destConfig: { + defaultConfig: [ + 'region', + 'iamRoleARN', + 'externalID', + 'accessKeyId', + 'accessKey', + 'lambda', + 'enableBatchInput', + 'clientContext', + 'roleBasedAuth', + 'maxBatchSize', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'accessKey', 'iamRoleARN', 'externalID'], + supportedMessageTypes: [ + 'identify', + 'page', + 'screen', + 'track', + 'alias', + 'group', + ], + supportedSourceTypes: [ + 'amp', + 'android', + 'cordova', + 'cloud', + 'flutter', + 'ios', + 'reactnative', + 'unity', + 'warehouse', + 'web', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + accessKey: '', + accessKeyId: '', + clientContext: '', + enableBatchInput: true, + externalID: '', + iamRoleARN: '', + lambda: 'testFunction', + maxBatchSize: '2', + region: 'us-west-2', + roleBasedAuth: false, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + RevisionID: '2DVji2YjKiWRL0Qdx73xg9r8ReQ', + }, + }, + { + message: { + type: 'track', + event: 'Product Purchased new', + sentAt: '2022-08-18T08:43:15.539+05:30', + userId: 'identified user id', + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + messageId: '9f8fb785-c720-4381-a009-bf22a13f4ced', + timestamp: '2020-02-02T00:23:09.544Z', + properties: { + data: [ + { + id: 6104546, + url: 'https://api.github.com/repos/mralexgray/-REPONAME', + fork: false, + name: '-REPONAME', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/-REPONAME.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk2MTA0NTQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/-REPONAME.git', + svn_url: 'https://github.com/mralexgray/-REPONAME', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/-REPONAME', + keys_url: 'https://api.github.com/repos/mralexgray/-REPONAME/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/-REPONAME/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/-REPONAME.git', + forks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/forks', + full_name: 'mralexgray/-REPONAME', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/-REPONAME/pulls{/number}', + pushed_at: '2012-10-06T16:37:39Z', + teams_url: 'https://api.github.com/repos/mralexgray/-REPONAME/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/trees{/sha}', + created_at: '2012-10-06T16:37:39Z', + events_url: 'https://api.github.com/repos/mralexgray/-REPONAME/events', + has_issues: true, + issues_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/-REPONAME/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/-REPONAME/merges', + mirror_url: null, + updated_at: '2013-01-12T13:39:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/-REPONAME/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/-REPONAME/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 104510411, + url: 'https://api.github.com/repos/mralexgray/...', + fork: true, + name: '...', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/....git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ1MTA0MTE=', + private: false, + ssh_url: 'git@github.com:mralexgray/....git', + svn_url: 'https://github.com/mralexgray/...', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'https://driesvints.com/blog/getting-started-with-dotfiles', + html_url: 'https://github.com/mralexgray/...', + keys_url: 'https://api.github.com/repos/mralexgray/.../keys{/key_id}', + language: 'Shell', + tags_url: 'https://api.github.com/repos/mralexgray/.../tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/.../git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/....git', + forks_url: 'https://api.github.com/repos/mralexgray/.../forks', + full_name: 'mralexgray/...', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/.../hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/.../pulls{/number}', + pushed_at: '2017-09-15T08:27:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/.../teams', + trees_url: 'https://api.github.com/repos/mralexgray/.../git/trees{/sha}', + created_at: '2017-09-22T19:19:42Z', + events_url: 'https://api.github.com/repos/mralexgray/.../events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/.../issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/.../labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/.../merges', + mirror_url: null, + updated_at: '2017-09-22T19:20:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/.../{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/.../commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/.../compare/{base}...{head}', + description: ':computer: Public repo for my personal dotfiles.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: 'https://api.github.com/repos/mralexgray/.../branches{/branch}', + comments_url: 'https://api.github.com/repos/mralexgray/.../comments{/number}', + contents_url: 'https://api.github.com/repos/mralexgray/.../contents/{+path}', + git_refs_url: 'https://api.github.com/repos/mralexgray/.../git/refs{/sha}', + git_tags_url: 'https://api.github.com/repos/mralexgray/.../git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/.../releases{/id}', + statuses_url: 'https://api.github.com/repos/mralexgray/.../statuses/{sha}', + allow_forking: true, + assignees_url: 'https://api.github.com/repos/mralexgray/.../assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/.../downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/.../languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/.../milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/.../stargazers', + watchers_count: 0, + deployments_url: 'https://api.github.com/repos/mralexgray/.../deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/.../git/commits{/sha}', + subscribers_url: 'https://api.github.com/repos/mralexgray/.../subscribers', + contributors_url: 'https://api.github.com/repos/mralexgray/.../contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/.../issues/events{/number}', + stargazers_count: 0, + subscription_url: 'https://api.github.com/repos/mralexgray/.../subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/.../collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/.../issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/.../notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 58656723, + url: 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol', + fork: true, + name: '2200087-Serial-Protocol', + size: 41, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/2200087-Serial-Protocol.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1ODY1NjcyMw==', + private: false, + ssh_url: 'git@github.com:mralexgray/2200087-Serial-Protocol.git', + svn_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://daviddworken.com', + html_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + keys_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/keys{/key_id}', + language: 'Python', + tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/2200087-Serial-Protocol.git', + forks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/forks', + full_name: 'mralexgray/2200087-Serial-Protocol', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/pulls{/number}', + pushed_at: '2016-05-12T16:07:24Z', + teams_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/trees{/sha}', + created_at: '2016-05-12T16:05:28Z', + events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/merges', + mirror_url: null, + updated_at: '2016-05-12T16:05:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/compare/{base}...{head}', + description: + "A reverse engineered protocol description and accompanying code for Radioshack's 2200087 multimeter", + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13121042, + url: 'https://api.github.com/repos/mralexgray/ace', + fork: true, + name: 'ace', + size: 21080, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ace.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzEyMTA0Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/ace.git', + svn_url: 'https://github.com/mralexgray/ace', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ace.c9.io', + html_url: 'https://github.com/mralexgray/ace', + keys_url: 'https://api.github.com/repos/mralexgray/ace/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/ace/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/ace/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ace.git', + forks_url: 'https://api.github.com/repos/mralexgray/ace/forks', + full_name: 'mralexgray/ace', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ace/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/ace/pulls{/number}', + pushed_at: '2013-10-26T12:34:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/ace/teams', + trees_url: 'https://api.github.com/repos/mralexgray/ace/git/trees{/sha}', + created_at: '2013-09-26T11:58:10Z', + events_url: 'https://api.github.com/repos/mralexgray/ace/events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/ace/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/ace/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ace/merges', + mirror_url: null, + updated_at: '2013-10-26T12:34:49Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ace/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/ace/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ace/compare/{base}...{head}', + description: 'Ace (Ajax.org Cloud9 Editor)', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: 'https://api.github.com/repos/mralexgray/ace/branches{/branch}', + comments_url: 'https://api.github.com/repos/mralexgray/ace/comments{/number}', + contents_url: 'https://api.github.com/repos/mralexgray/ace/contents/{+path}', + git_refs_url: 'https://api.github.com/repos/mralexgray/ace/git/refs{/sha}', + git_tags_url: 'https://api.github.com/repos/mralexgray/ace/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/ace/releases{/id}', + statuses_url: 'https://api.github.com/repos/mralexgray/ace/statuses/{sha}', + allow_forking: true, + assignees_url: 'https://api.github.com/repos/mralexgray/ace/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/ace/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/ace/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ace/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/ace/stargazers', + watchers_count: 0, + deployments_url: 'https://api.github.com/repos/mralexgray/ace/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ace/git/commits{/sha}', + subscribers_url: 'https://api.github.com/repos/mralexgray/ace/subscribers', + contributors_url: 'https://api.github.com/repos/mralexgray/ace/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ace/issues/events{/number}', + stargazers_count: 0, + subscription_url: 'https://api.github.com/repos/mralexgray/ace/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ace/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ace/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ace/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10791045, + url: 'https://api.github.com/repos/mralexgray/ACEView', + fork: true, + name: 'ACEView', + size: 1733, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ACEView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDc5MTA0NQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ACEView.git', + svn_url: 'https://github.com/mralexgray/ACEView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/ACEView', + keys_url: 'https://api.github.com/repos/mralexgray/ACEView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ACEView/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/ACEView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ACEView.git', + forks_url: 'https://api.github.com/repos/mralexgray/ACEView/forks', + full_name: 'mralexgray/ACEView', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ACEView/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/ACEView/pulls{/number}', + pushed_at: '2014-05-09T01:36:23Z', + teams_url: 'https://api.github.com/repos/mralexgray/ACEView/teams', + trees_url: 'https://api.github.com/repos/mralexgray/ACEView/git/trees{/sha}', + created_at: '2013-06-19T12:15:04Z', + events_url: 'https://api.github.com/repos/mralexgray/ACEView/events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/ACEView/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/ACEView/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ACEView/merges', + mirror_url: null, + updated_at: '2015-11-24T01:14:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ACEView/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/ACEView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ACEView/compare/{base}...{head}', + description: 'Use the wonderful ACE editor in your Cocoa applications', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ACEView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ACEView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ACEView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/ACEView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ACEView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ACEView/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/ACEView/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/ACEView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ACEView/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/ACEView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ACEView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ACEView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ACEView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ACEView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13623648, + url: 'https://api.github.com/repos/mralexgray/ActiveLog', + fork: true, + name: 'ActiveLog', + size: 60, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ActiveLog.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzYyMzY0OA==', + private: false, + ssh_url: 'git@github.com:mralexgray/ActiveLog.git', + svn_url: 'https://github.com/mralexgray/ActiveLog', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://deepitpro.com/en/articles/ActiveLog/info/', + html_url: 'https://github.com/mralexgray/ActiveLog', + keys_url: 'https://api.github.com/repos/mralexgray/ActiveLog/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ActiveLog/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ActiveLog.git', + forks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/forks', + full_name: 'mralexgray/ActiveLog', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/ActiveLog/pulls{/number}', + pushed_at: '2011-07-03T06:28:59Z', + teams_url: 'https://api.github.com/repos/mralexgray/ActiveLog/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/trees{/sha}', + created_at: '2013-10-16T15:52:37Z', + events_url: 'https://api.github.com/repos/mralexgray/ActiveLog/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/ActiveLog/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ActiveLog/merges', + mirror_url: null, + updated_at: '2013-10-16T15:52:37Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/compare/{base}...{head}', + description: 'Shut up all logs with active filter.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/ActiveLog/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/ActiveLog/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9716210, + url: 'https://api.github.com/repos/mralexgray/adium', + fork: false, + name: 'adium', + size: 277719, + forks: 37, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/adium.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk5NzE2MjEw', + private: false, + ssh_url: 'git@github.com:mralexgray/adium.git', + svn_url: 'https://github.com/mralexgray/adium', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/adium', + keys_url: 'https://api.github.com/repos/mralexgray/adium/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/adium/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/adium/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/adium.git', + forks_url: 'https://api.github.com/repos/mralexgray/adium/forks', + full_name: 'mralexgray/adium', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/adium/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/adium/pulls{/number}', + pushed_at: '2013-04-26T16:43:53Z', + teams_url: 'https://api.github.com/repos/mralexgray/adium/teams', + trees_url: 'https://api.github.com/repos/mralexgray/adium/git/trees{/sha}', + created_at: '2013-04-27T14:59:33Z', + events_url: 'https://api.github.com/repos/mralexgray/adium/events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/adium/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/adium/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/adium/merges', + mirror_url: null, + updated_at: '2019-12-11T06:51:45Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/adium/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/adium/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/adium/compare/{base}...{head}', + description: 'Official mirror of hg.adium.im', + forks_count: 37, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/adium/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/adium/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/adium/contents/{+path}', + git_refs_url: 'https://api.github.com/repos/mralexgray/adium/git/refs{/sha}', + git_tags_url: 'https://api.github.com/repos/mralexgray/adium/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/adium/releases{/id}', + statuses_url: 'https://api.github.com/repos/mralexgray/adium/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/adium/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/adium/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/adium/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/adium/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/adium/stargazers', + watchers_count: 0, + deployments_url: 'https://api.github.com/repos/mralexgray/adium/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/adium/git/commits{/sha}', + subscribers_url: 'https://api.github.com/repos/mralexgray/adium/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/adium/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/adium/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/adium/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/adium/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/adium/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/adium/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12752329, + url: 'https://api.github.com/repos/mralexgray/ADLivelyTableView', + fork: true, + name: 'ADLivelyTableView', + size: 73, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ADLivelyTableView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc1MjMyOQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ADLivelyTableView.git', + svn_url: 'https://github.com/mralexgray/ADLivelyTableView', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://applidium.com/en/news/lively_uitableview/', + html_url: 'https://github.com/mralexgray/ADLivelyTableView', + keys_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ADLivelyTableView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ADLivelyTableView.git', + forks_url: 'https://api.github.com/repos/mralexgray/ADLivelyTableView/forks', + full_name: 'mralexgray/ADLivelyTableView', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ADLivelyTableView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/pulls{/number}', + pushed_at: '2012-05-10T10:40:15Z', + teams_url: 'https://api.github.com/repos/mralexgray/ADLivelyTableView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/trees{/sha}', + created_at: '2013-09-11T09:18:01Z', + events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/merges', + mirror_url: null, + updated_at: '2013-09-11T09:18:03Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/compare/{base}...{head}', + description: 'Lively UITableView', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5697379, + url: 'https://api.github.com/repos/mralexgray/AFIncrementalStore', + fork: true, + name: 'AFIncrementalStore', + size: 139, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFIncrementalStore.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1Njk3Mzc5', + private: false, + ssh_url: 'git@github.com:mralexgray/AFIncrementalStore.git', + svn_url: 'https://github.com/mralexgray/AFIncrementalStore', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AFIncrementalStore', + keys_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AFIncrementalStore/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFIncrementalStore.git', + forks_url: 'https://api.github.com/repos/mralexgray/AFIncrementalStore/forks', + full_name: 'mralexgray/AFIncrementalStore', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AFIncrementalStore/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/pulls{/number}', + pushed_at: '2012-09-01T22:46:25Z', + teams_url: 'https://api.github.com/repos/mralexgray/AFIncrementalStore/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/trees{/sha}', + created_at: '2012-09-06T04:20:33Z', + events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/merges', + mirror_url: null, + updated_at: '2013-01-12T03:15:29Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/compare/{base}...{head}', + description: 'Core Data Persistence with AFNetworking, Done Right', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 6969621, + url: 'https://api.github.com/repos/mralexgray/AFNetworking', + fork: true, + name: 'AFNetworking', + size: 4341, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFNetworking.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk2OTY5NjIx', + private: false, + ssh_url: 'git@github.com:mralexgray/AFNetworking.git', + svn_url: 'https://github.com/mralexgray/AFNetworking', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://afnetworking.com', + html_url: 'https://github.com/mralexgray/AFNetworking', + keys_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AFNetworking/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFNetworking.git', + forks_url: 'https://api.github.com/repos/mralexgray/AFNetworking/forks', + full_name: 'mralexgray/AFNetworking', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AFNetworking/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/pulls{/number}', + pushed_at: '2014-01-24T07:14:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/AFNetworking/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/trees{/sha}', + created_at: '2012-12-02T17:00:04Z', + events_url: 'https://api.github.com/repos/mralexgray/AFNetworking/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AFNetworking/merges', + mirror_url: null, + updated_at: '2014-01-24T07:14:33Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/compare/{base}...{head}', + description: 'A delightful iOS and OS X networking framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9485541, + url: 'https://api.github.com/repos/mralexgray/AGNSSplitView', + fork: true, + name: 'AGNSSplitView', + size: 68, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGNSSplitView.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5NDg1NTQx', + private: false, + ssh_url: 'git@github.com:mralexgray/AGNSSplitView.git', + svn_url: 'https://github.com/mralexgray/AGNSSplitView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGNSSplitView', + keys_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGNSSplitView.git', + forks_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/forks', + full_name: 'mralexgray/AGNSSplitView', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/pulls{/number}', + pushed_at: '2013-02-26T00:32:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/trees{/sha}', + created_at: '2013-04-17T00:10:13Z', + events_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/merges', + mirror_url: null, + updated_at: '2013-04-17T00:10:13Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/compare/{base}...{head}', + description: 'Simple NSSplitView additions.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12767784, + url: 'https://api.github.com/repos/mralexgray/AGScopeBar', + fork: true, + name: 'AGScopeBar', + size: 64, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGScopeBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc2Nzc4NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AGScopeBar.git', + svn_url: 'https://github.com/mralexgray/AGScopeBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGScopeBar', + keys_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGScopeBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/forks', + full_name: 'mralexgray/AGScopeBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/pulls{/number}', + pushed_at: '2013-05-07T03:35:29Z', + teams_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/trees{/sha}', + created_at: '2013-09-11T21:06:54Z', + events_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/merges', + mirror_url: null, + updated_at: '2013-09-11T21:06:54Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/compare/{base}...{head}', + description: 'Custom scope bar implementation for Cocoa', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 31829499, + url: 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin', + fork: true, + name: 'agvtool-xcode-plugin', + size: 102, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/agvtool-xcode-plugin.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkzMTgyOTQ5OQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/agvtool-xcode-plugin.git', + svn_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + keys_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/agvtool-xcode-plugin.git', + forks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/forks', + full_name: 'mralexgray/agvtool-xcode-plugin', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/pulls{/number}', + pushed_at: '2015-03-08T00:04:31Z', + teams_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/trees{/sha}', + created_at: '2015-03-07T22:15:38Z', + events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/merges', + mirror_url: null, + updated_at: '2015-03-07T22:15:41Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/compare/{base}...{head}', + description: 'this is a plugin wrapper for agvtool for xcode.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9227846, + url: 'https://api.github.com/repos/mralexgray/AHContentBrowser', + fork: true, + name: 'AHContentBrowser', + size: 223, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHContentBrowser.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MjI3ODQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/AHContentBrowser.git', + svn_url: 'https://github.com/mralexgray/AHContentBrowser', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHContentBrowser', + keys_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHContentBrowser/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHContentBrowser.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHContentBrowser/forks', + full_name: 'mralexgray/AHContentBrowser', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHContentBrowser/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/pulls{/number}', + pushed_at: '2013-03-13T17:38:23Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHContentBrowser/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/trees{/sha}', + created_at: '2013-04-04T20:56:16Z', + events_url: 'https://api.github.com/repos/mralexgray/AHContentBrowser/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AHContentBrowser/merges', + mirror_url: null, + updated_at: '2015-10-22T05:00:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/compare/{base}...{head}', + description: + 'A Mac only webview that loads a fast readable version of the website if available.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 37430328, + url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl', + fork: true, + name: 'AHLaunchCtl', + size: 592, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLaunchCtl.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNzQzMDMyOA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLaunchCtl.git', + svn_url: 'https://github.com/mralexgray/AHLaunchCtl', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHLaunchCtl', + keys_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLaunchCtl.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/forks', + full_name: 'mralexgray/AHLaunchCtl', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/pulls{/number}', + pushed_at: '2015-05-26T18:50:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/trees{/sha}', + created_at: '2015-06-14T21:31:03Z', + events_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/merges', + mirror_url: null, + updated_at: '2015-06-14T21:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/compare/{base}...{head}', + description: 'LaunchD Framework for Cocoa Apps', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9167473, + url: 'https://api.github.com/repos/mralexgray/AHLayout', + fork: true, + name: 'AHLayout', + size: 359, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLayout.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MTY3NDcz', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLayout.git', + svn_url: 'https://github.com/mralexgray/AHLayout', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AHLayout', + keys_url: 'https://api.github.com/repos/mralexgray/AHLayout/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLayout/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/AHLayout/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLayout.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHLayout/forks', + full_name: 'mralexgray/AHLayout', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHLayout/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/AHLayout/pulls{/number}', + pushed_at: '2013-07-08T02:31:14Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHLayout/teams', + trees_url: 'https://api.github.com/repos/mralexgray/AHLayout/git/trees{/sha}', + created_at: '2013-04-02T10:10:30Z', + events_url: 'https://api.github.com/repos/mralexgray/AHLayout/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/AHLayout/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AHLayout/merges', + mirror_url: null, + updated_at: '2013-07-08T02:31:17Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLayout/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/AHLayout/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLayout/compare/{base}...{head}', + description: 'AHLayout', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLayout/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLayout/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLayout/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLayout/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/AHLayout/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/AHLayout/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLayout/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/AHLayout/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLayout/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLayout/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 18450201, + url: 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework', + fork: true, + name: 'Airmail-Plug-In-Framework', + size: 888, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Airmail-Plug-In-Framework.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxODQ1MDIwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Airmail-Plug-In-Framework.git', + svn_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + keys_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/keys{/key_id}', + language: null, + tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/forks', + full_name: 'mralexgray/Airmail-Plug-In-Framework', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/pulls{/number}', + pushed_at: '2014-03-27T15:42:19Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/trees{/sha}', + created_at: '2014-04-04T19:33:54Z', + events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/merges', + mirror_url: null, + updated_at: '2014-11-23T19:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5203219, + url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API', + fork: true, + name: 'AJS-iTunes-API', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AJS-iTunes-API.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MjAzMjE5', + private: false, + ssh_url: 'git@github.com:mralexgray/AJS-iTunes-API.git', + svn_url: 'https://github.com/mralexgray/AJS-iTunes-API', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AJS-iTunes-API', + keys_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AJS-iTunes-API.git', + forks_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/forks', + full_name: 'mralexgray/AJS-iTunes-API', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/pulls{/number}', + pushed_at: '2011-10-30T22:26:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/trees{/sha}', + created_at: '2012-07-27T10:20:58Z', + events_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/merges', + mirror_url: null, + updated_at: '2013-01-11T11:00:05Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/compare/{base}...{head}', + description: + 'Cocoa wrapper for the iTunes search API - for iOS and Mac OSX projects', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10093801, + url: 'https://api.github.com/repos/mralexgray/Alcatraz', + fork: true, + name: 'Alcatraz', + size: 3668, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alcatraz.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDA5MzgwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alcatraz.git', + svn_url: 'https://github.com/mralexgray/Alcatraz', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/Alcatraz', + keys_url: 'https://api.github.com/repos/mralexgray/Alcatraz/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Alcatraz/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/Alcatraz/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Alcatraz.git', + forks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/forks', + full_name: 'mralexgray/Alcatraz', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/Alcatraz/pulls{/number}', + pushed_at: '2014-03-19T12:50:37Z', + teams_url: 'https://api.github.com/repos/mralexgray/Alcatraz/teams', + trees_url: 'https://api.github.com/repos/mralexgray/Alcatraz/git/trees{/sha}', + created_at: '2013-05-16T04:41:13Z', + events_url: 'https://api.github.com/repos/mralexgray/Alcatraz/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/Alcatraz/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Alcatraz/merges', + mirror_url: null, + updated_at: '2014-03-19T20:38:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/Alcatraz/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/compare/{base}...{head}', + description: 'The most awesome (and only) Xcode package manager!', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/Alcatraz/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/Alcatraz/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/Alcatraz/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12916552, + url: 'https://api.github.com/repos/mralexgray/alcatraz-packages', + fork: true, + name: 'alcatraz-packages', + size: 826, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alcatraz-packages.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjkxNjU1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alcatraz-packages.git', + svn_url: 'https://github.com/mralexgray/alcatraz-packages', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/alcatraz-packages', + keys_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/keys{/key_id}', + language: 'Ruby', + tags_url: 'https://api.github.com/repos/mralexgray/alcatraz-packages/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alcatraz-packages.git', + forks_url: 'https://api.github.com/repos/mralexgray/alcatraz-packages/forks', + full_name: 'mralexgray/alcatraz-packages', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/alcatraz-packages/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/pulls{/number}', + pushed_at: '2015-12-14T16:21:31Z', + teams_url: 'https://api.github.com/repos/mralexgray/alcatraz-packages/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/trees{/sha}', + created_at: '2013-09-18T07:15:24Z', + events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/merges', + mirror_url: null, + updated_at: '2015-11-10T20:52:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/compare/{base}...{head}', + description: 'Package list repository for Alcatraz', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 44278362, + url: 'https://api.github.com/repos/mralexgray/alexicons', + fork: true, + name: 'alexicons', + size: 257, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alexicons.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk0NDI3ODM2Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alexicons.git', + svn_url: 'https://github.com/mralexgray/alexicons', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/alexicons', + keys_url: 'https://api.github.com/repos/mralexgray/alexicons/keys{/key_id}', + language: 'CoffeeScript', + tags_url: 'https://api.github.com/repos/mralexgray/alexicons/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alexicons.git', + forks_url: 'https://api.github.com/repos/mralexgray/alexicons/forks', + full_name: 'mralexgray/alexicons', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/alexicons/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/alexicons/pulls{/number}', + pushed_at: '2015-10-16T03:57:51Z', + teams_url: 'https://api.github.com/repos/mralexgray/alexicons/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/trees{/sha}', + created_at: '2015-10-14T21:49:39Z', + events_url: 'https://api.github.com/repos/mralexgray/alexicons/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/alexicons/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/alexicons/merges', + mirror_url: null, + updated_at: '2015-10-15T06:20:08Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alexicons/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alexicons/compare/{base}...{head}', + description: 'Get popular cat names', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alexicons/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alexicons/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alexicons/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alexicons/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alexicons/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alexicons/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/alexicons/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/alexicons/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alexicons/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alexicons/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alexicons/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alexicons/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alexicons/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alexicons/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10476467, + url: 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate', + fork: true, + name: 'Alfred-Google-Translate', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alfred-Google-Translate.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ3NjQ2Nw==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alfred-Google-Translate.git', + svn_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + keys_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/keys{/key_id}', + language: 'Shell', + tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Alfred-Google-Translate.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/forks', + full_name: 'mralexgray/Alfred-Google-Translate', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/pulls{/number}', + pushed_at: '2013-01-12T19:39:03Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/trees{/sha}', + created_at: '2013-06-04T10:45:10Z', + events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/merges', + mirror_url: null, + updated_at: '2013-06-04T10:45:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/compare/{base}...{head}', + description: 'Extension for Alfred that will do a Google translate for you', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5524019, + url: 'https://api.github.com/repos/mralexgray/Amber', + fork: false, + name: 'Amber', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amber.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1NTI0MDE5', + private: false, + ssh_url: 'git@github.com:mralexgray/Amber.git', + svn_url: 'https://github.com/mralexgray/Amber', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Amber', + keys_url: 'https://api.github.com/repos/mralexgray/Amber/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/Amber/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/Amber/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amber.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amber/forks', + full_name: 'mralexgray/Amber', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amber/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/Amber/pulls{/number}', + pushed_at: '2012-08-23T10:38:25Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amber/teams', + trees_url: 'https://api.github.com/repos/mralexgray/Amber/git/trees{/sha}', + created_at: '2012-08-23T10:38:24Z', + events_url: 'https://api.github.com/repos/mralexgray/Amber/events', + has_issues: true, + issues_url: 'https://api.github.com/repos/mralexgray/Amber/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/Amber/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amber/merges', + mirror_url: null, + updated_at: '2013-01-11T22:25:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amber/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/Amber/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amber/compare/{base}...{head}', + description: 'Fork of the difficult-to-deal-with Amber.framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amber/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amber/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amber/contents/{+path}', + git_refs_url: 'https://api.github.com/repos/mralexgray/Amber/git/refs{/sha}', + git_tags_url: 'https://api.github.com/repos/mralexgray/Amber/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/Amber/releases{/id}', + statuses_url: 'https://api.github.com/repos/mralexgray/Amber/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amber/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/Amber/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/Amber/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amber/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/Amber/stargazers', + watchers_count: 0, + deployments_url: 'https://api.github.com/repos/mralexgray/Amber/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amber/git/commits{/sha}', + subscribers_url: 'https://api.github.com/repos/mralexgray/Amber/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amber/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amber/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amber/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amber/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10809060, + url: 'https://api.github.com/repos/mralexgray/Amethyst', + fork: true, + name: 'Amethyst', + size: 12623, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amethyst.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDgwOTA2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/Amethyst.git', + svn_url: 'https://github.com/mralexgray/Amethyst', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ianyh.github.io/Amethyst/', + html_url: 'https://github.com/mralexgray/Amethyst', + keys_url: 'https://api.github.com/repos/mralexgray/Amethyst/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Amethyst/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/Amethyst/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amethyst.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amethyst/forks', + full_name: 'mralexgray/Amethyst', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amethyst/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/Amethyst/pulls{/number}', + pushed_at: '2013-06-18T02:54:11Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amethyst/teams', + trees_url: 'https://api.github.com/repos/mralexgray/Amethyst/git/trees{/sha}', + created_at: '2013-06-20T00:34:22Z', + events_url: 'https://api.github.com/repos/mralexgray/Amethyst/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/Amethyst/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amethyst/merges', + mirror_url: null, + updated_at: '2013-06-20T00:34:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amethyst/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/Amethyst/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amethyst/compare/{base}...{head}', + description: 'Tiling window manager for OS X.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amethyst/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Amethyst/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Amethyst/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amethyst/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/Amethyst/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/Amethyst/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amethyst/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/Amethyst/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amethyst/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amethyst/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 3684286, + url: 'https://api.github.com/repos/mralexgray/Animated-Paths', + fork: true, + name: 'Animated-Paths', + size: 411, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Animated-Paths.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNjg0Mjg2', + private: false, + ssh_url: 'git@github.com:mralexgray/Animated-Paths.git', + svn_url: 'https://github.com/mralexgray/Animated-Paths', + archived: false, + disabled: false, + has_wiki: true, + homepage: + 'http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/', + html_url: 'https://github.com/mralexgray/Animated-Paths', + keys_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Animated-Paths.git', + forks_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/forks', + full_name: 'mralexgray/Animated-Paths', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/pulls{/number}', + pushed_at: '2010-12-30T20:56:51Z', + teams_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/trees{/sha}', + created_at: '2012-03-11T02:56:38Z', + events_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/merges', + mirror_url: null, + updated_at: '2013-01-08T04:12:21Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/compare/{base}...{head}', + description: + 'Demo project: Animating the drawing of a CGPath with CAShapeLayer.strokeEnd', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16662874, + url: 'https://api.github.com/repos/mralexgray/AnsiLove.framework', + fork: true, + name: 'AnsiLove.framework', + size: 3780, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AnsiLove.framework.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjY2Mjg3NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AnsiLove.framework.git', + svn_url: 'https://github.com/mralexgray/AnsiLove.framework', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'http://byteproject.net', + html_url: 'https://github.com/mralexgray/AnsiLove.framework', + keys_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/keys{/key_id}', + language: 'M', + tags_url: 'https://api.github.com/repos/mralexgray/AnsiLove.framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AnsiLove.framework.git', + forks_url: 'https://api.github.com/repos/mralexgray/AnsiLove.framework/forks', + full_name: 'mralexgray/AnsiLove.framework', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AnsiLove.framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/pulls{/number}', + pushed_at: '2013-10-04T14:08:38Z', + teams_url: 'https://api.github.com/repos/mralexgray/AnsiLove.framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/trees{/sha}', + created_at: '2014-02-09T08:30:27Z', + events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/merges', + mirror_url: null, + updated_at: '2015-01-13T20:41:46Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/compare/{base}...{head}', + description: 'Cocoa Framework for rendering ANSi / ASCII art', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5189563, + url: 'https://api.github.com/repos/mralexgray/ANTrackBar', + fork: true, + name: 'ANTrackBar', + size: 94, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ANTrackBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MTg5NTYz', + private: false, + ssh_url: 'git@github.com:mralexgray/ANTrackBar.git', + svn_url: 'https://github.com/mralexgray/ANTrackBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/ANTrackBar', + keys_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ANTrackBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/forks', + full_name: 'mralexgray/ANTrackBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/pulls{/number}', + pushed_at: '2012-03-09T01:40:02Z', + teams_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/trees{/sha}', + created_at: '2012-07-26T08:17:22Z', + events_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/merges', + mirror_url: null, + updated_at: '2013-01-11T10:29:56Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/compare/{base}...{head}', + description: 'An easy-to-use Cocoa seek bar with a pleasing appearance', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16240152, + url: 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C', + fork: true, + name: 'AOP-in-Objective-C', + size: 340, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AOP-in-Objective-C.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjI0MDE1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/AOP-in-Objective-C.git', + svn_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://innoli.hu/en/opensource/', + html_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + keys_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AOP-in-Objective-C.git', + forks_url: 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/forks', + full_name: 'mralexgray/AOP-in-Objective-C', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/pulls{/number}', + pushed_at: '2014-02-12T16:23:20Z', + teams_url: 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/trees{/sha}', + created_at: '2014-01-25T21:18:04Z', + events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/merges', + mirror_url: null, + updated_at: '2014-06-19T19:38:12Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/compare/{base}...{head}', + description: + 'An NSProxy based library for easily enabling AOP like functionality in Objective-C.', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/languages', + default_branch: 'travis-coveralls', + milestones_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13141936, + url: 'https://api.github.com/repos/mralexgray/Apaxy', + fork: true, + name: 'Apaxy', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Apaxy.git', + license: { + key: 'unlicense', + url: 'https://api.github.com/licenses/unlicense', + name: 'The Unlicense', + node_id: 'MDc6TGljZW5zZTE1', + spdx_id: 'Unlicense', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzE0MTkzNg==', + private: false, + ssh_url: 'git@github.com:mralexgray/Apaxy.git', + svn_url: 'https://github.com/mralexgray/Apaxy', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Apaxy', + keys_url: 'https://api.github.com/repos/mralexgray/Apaxy/keys{/key_id}', + language: 'CSS', + tags_url: 'https://api.github.com/repos/mralexgray/Apaxy/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/Apaxy/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Apaxy.git', + forks_url: 'https://api.github.com/repos/mralexgray/Apaxy/forks', + full_name: 'mralexgray/Apaxy', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Apaxy/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/Apaxy/pulls{/number}', + pushed_at: '2013-08-02T16:01:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/Apaxy/teams', + trees_url: 'https://api.github.com/repos/mralexgray/Apaxy/git/trees{/sha}', + created_at: '2013-09-27T05:05:35Z', + events_url: 'https://api.github.com/repos/mralexgray/Apaxy/events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/Apaxy/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/Apaxy/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Apaxy/merges', + mirror_url: null, + updated_at: '2018-02-16T21:40:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Apaxy/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/Apaxy/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Apaxy/compare/{base}...{head}', + description: + 'A simple, customisable theme for your Apache directory listing.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Apaxy/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Apaxy/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contents/{+path}', + git_refs_url: 'https://api.github.com/repos/mralexgray/Apaxy/git/refs{/sha}', + git_tags_url: 'https://api.github.com/repos/mralexgray/Apaxy/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/Apaxy/releases{/id}', + statuses_url: 'https://api.github.com/repos/mralexgray/Apaxy/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Apaxy/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/Apaxy/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/Apaxy/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Apaxy/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/Apaxy/stargazers', + watchers_count: 0, + deployments_url: 'https://api.github.com/repos/mralexgray/Apaxy/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/commits{/sha}', + subscribers_url: 'https://api.github.com/repos/mralexgray/Apaxy/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Apaxy/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Apaxy/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Apaxy/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 20027360, + url: 'https://api.github.com/repos/mralexgray/app', + fork: true, + name: 'app', + size: 1890, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/app.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkyMDAyNzM2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/app.git', + svn_url: 'https://github.com/mralexgray/app', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/app', + keys_url: 'https://api.github.com/repos/mralexgray/app/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/app/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/app/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/app.git', + forks_url: 'https://api.github.com/repos/mralexgray/app/forks', + full_name: 'mralexgray/app', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/app/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/app/pulls{/number}', + pushed_at: '2014-05-20T19:51:38Z', + teams_url: 'https://api.github.com/repos/mralexgray/app/teams', + trees_url: 'https://api.github.com/repos/mralexgray/app/git/trees{/sha}', + created_at: '2014-05-21T15:54:20Z', + events_url: 'https://api.github.com/repos/mralexgray/app/events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/app/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/app/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/app/merges', + mirror_url: null, + updated_at: '2014-05-21T15:54:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/app/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/app/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/app/compare/{base}...{head}', + description: 'Instant mobile web app creation', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: 'https://api.github.com/repos/mralexgray/app/branches{/branch}', + comments_url: 'https://api.github.com/repos/mralexgray/app/comments{/number}', + contents_url: 'https://api.github.com/repos/mralexgray/app/contents/{+path}', + git_refs_url: 'https://api.github.com/repos/mralexgray/app/git/refs{/sha}', + git_tags_url: 'https://api.github.com/repos/mralexgray/app/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/app/releases{/id}', + statuses_url: 'https://api.github.com/repos/mralexgray/app/statuses/{sha}', + allow_forking: true, + assignees_url: 'https://api.github.com/repos/mralexgray/app/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/app/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/app/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/app/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/app/stargazers', + watchers_count: 0, + deployments_url: 'https://api.github.com/repos/mralexgray/app/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/app/git/commits{/sha}', + subscribers_url: 'https://api.github.com/repos/mralexgray/app/subscribers', + contributors_url: 'https://api.github.com/repos/mralexgray/app/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/app/issues/events{/number}', + stargazers_count: 0, + subscription_url: 'https://api.github.com/repos/mralexgray/app/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/app/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/app/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/app/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + ], + name: 'Shirt', + revenue: 4.99, + }, + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + metadata: { + userId: 'anon-id-new<<>>identified user id', + jobId: 32, + sourceId: '2DTlLPQxignYp4ag9sISgGN2uY7', + destinationId: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + attemptNum: 0, + receivedAt: '2022-08-18T08:43:13.521+05:30', + createdAt: '2022-08-18T03:13:15.549Z', + firstAttemptedAt: '', + transformAt: 'router', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + secret: null, + jobsT: { + UUID: 'dc239cd1-bef4-4999-88e1-7332c64bf78c', + JobID: 32, + UserID: 'anon-id-new<<>>identified user id', + CreatedAt: '2022-08-18T03:13:15.549078Z', + ExpireAt: '2022-08-18T03:13:15.549078Z', + CustomVal: 'LAMBDA', + EventCount: 1, + EventPayload: { + type: 'track', + event: 'Product Purchased new', + sentAt: '2022-08-18T08:43:15.539+05:30', + userId: 'identified user id', + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + messageId: '9f8fb785-c720-4381-a009-bf22a13f4ced', + timestamp: '2020-02-02T00:23:09.544Z', + properties: { + data: [ + { + id: 6104546, + url: 'https://api.github.com/repos/mralexgray/-REPONAME', + fork: false, + name: '-REPONAME', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/-REPONAME.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk2MTA0NTQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/-REPONAME.git', + svn_url: 'https://github.com/mralexgray/-REPONAME', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/-REPONAME', + keys_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/-REPONAME/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/-REPONAME.git', + forks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/forks', + full_name: 'mralexgray/-REPONAME', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/pulls{/number}', + pushed_at: '2012-10-06T16:37:39Z', + teams_url: 'https://api.github.com/repos/mralexgray/-REPONAME/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/trees{/sha}', + created_at: '2012-10-06T16:37:39Z', + events_url: 'https://api.github.com/repos/mralexgray/-REPONAME/events', + has_issues: true, + issues_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/-REPONAME/merges', + mirror_url: null, + updated_at: '2013-01-12T13:39:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 104510411, + url: 'https://api.github.com/repos/mralexgray/...', + fork: true, + name: '...', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/....git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ1MTA0MTE=', + private: false, + ssh_url: 'git@github.com:mralexgray/....git', + svn_url: 'https://github.com/mralexgray/...', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'https://driesvints.com/blog/getting-started-with-dotfiles', + html_url: 'https://github.com/mralexgray/...', + keys_url: 'https://api.github.com/repos/mralexgray/.../keys{/key_id}', + language: 'Shell', + tags_url: 'https://api.github.com/repos/mralexgray/.../tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/.../git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/....git', + forks_url: 'https://api.github.com/repos/mralexgray/.../forks', + full_name: 'mralexgray/...', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/.../hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/.../pulls{/number}', + pushed_at: '2017-09-15T08:27:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/.../teams', + trees_url: 'https://api.github.com/repos/mralexgray/.../git/trees{/sha}', + created_at: '2017-09-22T19:19:42Z', + events_url: 'https://api.github.com/repos/mralexgray/.../events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/.../issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/.../labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/.../merges', + mirror_url: null, + updated_at: '2017-09-22T19:20:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/.../{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/.../commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/.../compare/{base}...{head}', + description: ':computer: Public repo for my personal dotfiles.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/.../branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/.../comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/.../contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/.../git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/.../git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/.../releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/.../statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/.../assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/.../downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/.../languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/.../milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/.../stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/.../deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/.../git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/.../subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/.../contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/.../issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/.../subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/.../collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/.../issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/.../notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 58656723, + url: 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol', + fork: true, + name: '2200087-Serial-Protocol', + size: 41, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/2200087-Serial-Protocol.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1ODY1NjcyMw==', + private: false, + ssh_url: 'git@github.com:mralexgray/2200087-Serial-Protocol.git', + svn_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://daviddworken.com', + html_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + keys_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/keys{/key_id}', + language: 'Python', + tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/2200087-Serial-Protocol.git', + forks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/forks', + full_name: 'mralexgray/2200087-Serial-Protocol', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/pulls{/number}', + pushed_at: '2016-05-12T16:07:24Z', + teams_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/trees{/sha}', + created_at: '2016-05-12T16:05:28Z', + events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/merges', + mirror_url: null, + updated_at: '2016-05-12T16:05:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/compare/{base}...{head}', + description: + "A reverse engineered protocol description and accompanying code for Radioshack's 2200087 multimeter", + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13121042, + url: 'https://api.github.com/repos/mralexgray/ace', + fork: true, + name: 'ace', + size: 21080, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ace.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzEyMTA0Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/ace.git', + svn_url: 'https://github.com/mralexgray/ace', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ace.c9.io', + html_url: 'https://github.com/mralexgray/ace', + keys_url: 'https://api.github.com/repos/mralexgray/ace/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/ace/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/ace/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ace.git', + forks_url: 'https://api.github.com/repos/mralexgray/ace/forks', + full_name: 'mralexgray/ace', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ace/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/ace/pulls{/number}', + pushed_at: '2013-10-26T12:34:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/ace/teams', + trees_url: 'https://api.github.com/repos/mralexgray/ace/git/trees{/sha}', + created_at: '2013-09-26T11:58:10Z', + events_url: 'https://api.github.com/repos/mralexgray/ace/events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/ace/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/ace/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ace/merges', + mirror_url: null, + updated_at: '2013-10-26T12:34:49Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ace/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/ace/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ace/compare/{base}...{head}', + description: 'Ace (Ajax.org Cloud9 Editor)', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ace/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ace/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ace/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ace/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ace/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/ace/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ace/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ace/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/ace/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/ace/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ace/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/ace/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ace/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ace/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ace/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ace/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ace/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ace/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ace/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ace/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ace/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10791045, + url: 'https://api.github.com/repos/mralexgray/ACEView', + fork: true, + name: 'ACEView', + size: 1733, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ACEView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDc5MTA0NQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ACEView.git', + svn_url: 'https://github.com/mralexgray/ACEView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/ACEView', + keys_url: 'https://api.github.com/repos/mralexgray/ACEView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ACEView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ACEView.git', + forks_url: 'https://api.github.com/repos/mralexgray/ACEView/forks', + full_name: 'mralexgray/ACEView', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ACEView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ACEView/pulls{/number}', + pushed_at: '2014-05-09T01:36:23Z', + teams_url: 'https://api.github.com/repos/mralexgray/ACEView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/trees{/sha}', + created_at: '2013-06-19T12:15:04Z', + events_url: 'https://api.github.com/repos/mralexgray/ACEView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ACEView/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ACEView/merges', + mirror_url: null, + updated_at: '2015-11-24T01:14:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ACEView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ACEView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ACEView/compare/{base}...{head}', + description: 'Use the wonderful ACE editor in your Cocoa applications', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ACEView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ACEView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ACEView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ACEView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ACEView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ACEView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ACEView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ACEView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ACEView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ACEView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ACEView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ACEView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ACEView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ACEView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13623648, + url: 'https://api.github.com/repos/mralexgray/ActiveLog', + fork: true, + name: 'ActiveLog', + size: 60, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ActiveLog.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzYyMzY0OA==', + private: false, + ssh_url: 'git@github.com:mralexgray/ActiveLog.git', + svn_url: 'https://github.com/mralexgray/ActiveLog', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://deepitpro.com/en/articles/ActiveLog/info/', + html_url: 'https://github.com/mralexgray/ActiveLog', + keys_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ActiveLog/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ActiveLog.git', + forks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/forks', + full_name: 'mralexgray/ActiveLog', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/pulls{/number}', + pushed_at: '2011-07-03T06:28:59Z', + teams_url: 'https://api.github.com/repos/mralexgray/ActiveLog/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/trees{/sha}', + created_at: '2013-10-16T15:52:37Z', + events_url: 'https://api.github.com/repos/mralexgray/ActiveLog/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ActiveLog/merges', + mirror_url: null, + updated_at: '2013-10-16T15:52:37Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/compare/{base}...{head}', + description: 'Shut up all logs with active filter.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9716210, + url: 'https://api.github.com/repos/mralexgray/adium', + fork: false, + name: 'adium', + size: 277719, + forks: 37, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/adium.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk5NzE2MjEw', + private: false, + ssh_url: 'git@github.com:mralexgray/adium.git', + svn_url: 'https://github.com/mralexgray/adium', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/adium', + keys_url: 'https://api.github.com/repos/mralexgray/adium/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/adium/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/adium/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/adium.git', + forks_url: 'https://api.github.com/repos/mralexgray/adium/forks', + full_name: 'mralexgray/adium', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/adium/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/adium/pulls{/number}', + pushed_at: '2013-04-26T16:43:53Z', + teams_url: 'https://api.github.com/repos/mralexgray/adium/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/adium/git/trees{/sha}', + created_at: '2013-04-27T14:59:33Z', + events_url: 'https://api.github.com/repos/mralexgray/adium/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/adium/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/adium/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/adium/merges', + mirror_url: null, + updated_at: '2019-12-11T06:51:45Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/adium/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/adium/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/adium/compare/{base}...{head}', + description: 'Official mirror of hg.adium.im', + forks_count: 37, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/adium/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/adium/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/adium/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/adium/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/adium/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/adium/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/adium/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/adium/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/adium/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/adium/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/adium/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/adium/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/adium/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/adium/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/adium/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/adium/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/adium/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/adium/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/adium/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/adium/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/adium/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12752329, + url: 'https://api.github.com/repos/mralexgray/ADLivelyTableView', + fork: true, + name: 'ADLivelyTableView', + size: 73, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ADLivelyTableView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc1MjMyOQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ADLivelyTableView.git', + svn_url: 'https://github.com/mralexgray/ADLivelyTableView', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://applidium.com/en/news/lively_uitableview/', + html_url: 'https://github.com/mralexgray/ADLivelyTableView', + keys_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ADLivelyTableView.git', + forks_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/forks', + full_name: 'mralexgray/ADLivelyTableView', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/pulls{/number}', + pushed_at: '2012-05-10T10:40:15Z', + teams_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/trees{/sha}', + created_at: '2013-09-11T09:18:01Z', + events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/merges', + mirror_url: null, + updated_at: '2013-09-11T09:18:03Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/compare/{base}...{head}', + description: 'Lively UITableView', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5697379, + url: 'https://api.github.com/repos/mralexgray/AFIncrementalStore', + fork: true, + name: 'AFIncrementalStore', + size: 139, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFIncrementalStore.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1Njk3Mzc5', + private: false, + ssh_url: 'git@github.com:mralexgray/AFIncrementalStore.git', + svn_url: 'https://github.com/mralexgray/AFIncrementalStore', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AFIncrementalStore', + keys_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFIncrementalStore.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/forks', + full_name: 'mralexgray/AFIncrementalStore', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/pulls{/number}', + pushed_at: '2012-09-01T22:46:25Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/trees{/sha}', + created_at: '2012-09-06T04:20:33Z', + events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/merges', + mirror_url: null, + updated_at: '2013-01-12T03:15:29Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/compare/{base}...{head}', + description: 'Core Data Persistence with AFNetworking, Done Right', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 6969621, + url: 'https://api.github.com/repos/mralexgray/AFNetworking', + fork: true, + name: 'AFNetworking', + size: 4341, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFNetworking.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk2OTY5NjIx', + private: false, + ssh_url: 'git@github.com:mralexgray/AFNetworking.git', + svn_url: 'https://github.com/mralexgray/AFNetworking', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://afnetworking.com', + html_url: 'https://github.com/mralexgray/AFNetworking', + keys_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AFNetworking/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFNetworking.git', + forks_url: 'https://api.github.com/repos/mralexgray/AFNetworking/forks', + full_name: 'mralexgray/AFNetworking', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AFNetworking/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/pulls{/number}', + pushed_at: '2014-01-24T07:14:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/AFNetworking/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/trees{/sha}', + created_at: '2012-12-02T17:00:04Z', + events_url: 'https://api.github.com/repos/mralexgray/AFNetworking/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AFNetworking/merges', + mirror_url: null, + updated_at: '2014-01-24T07:14:33Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/compare/{base}...{head}', + description: 'A delightful iOS and OS X networking framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9485541, + url: 'https://api.github.com/repos/mralexgray/AGNSSplitView', + fork: true, + name: 'AGNSSplitView', + size: 68, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGNSSplitView.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5NDg1NTQx', + private: false, + ssh_url: 'git@github.com:mralexgray/AGNSSplitView.git', + svn_url: 'https://github.com/mralexgray/AGNSSplitView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGNSSplitView', + keys_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGNSSplitView.git', + forks_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/forks', + full_name: 'mralexgray/AGNSSplitView', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/pulls{/number}', + pushed_at: '2013-02-26T00:32:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/trees{/sha}', + created_at: '2013-04-17T00:10:13Z', + events_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/merges', + mirror_url: null, + updated_at: '2013-04-17T00:10:13Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/compare/{base}...{head}', + description: 'Simple NSSplitView additions.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12767784, + url: 'https://api.github.com/repos/mralexgray/AGScopeBar', + fork: true, + name: 'AGScopeBar', + size: 64, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGScopeBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc2Nzc4NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AGScopeBar.git', + svn_url: 'https://github.com/mralexgray/AGScopeBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGScopeBar', + keys_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGScopeBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/forks', + full_name: 'mralexgray/AGScopeBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/pulls{/number}', + pushed_at: '2013-05-07T03:35:29Z', + teams_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/trees{/sha}', + created_at: '2013-09-11T21:06:54Z', + events_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/merges', + mirror_url: null, + updated_at: '2013-09-11T21:06:54Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/compare/{base}...{head}', + description: 'Custom scope bar implementation for Cocoa', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 31829499, + url: 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin', + fork: true, + name: 'agvtool-xcode-plugin', + size: 102, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/agvtool-xcode-plugin.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkzMTgyOTQ5OQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/agvtool-xcode-plugin.git', + svn_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + keys_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/agvtool-xcode-plugin.git', + forks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/forks', + full_name: 'mralexgray/agvtool-xcode-plugin', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/pulls{/number}', + pushed_at: '2015-03-08T00:04:31Z', + teams_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/trees{/sha}', + created_at: '2015-03-07T22:15:38Z', + events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/merges', + mirror_url: null, + updated_at: '2015-03-07T22:15:41Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/compare/{base}...{head}', + description: 'this is a plugin wrapper for agvtool for xcode.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9227846, + url: 'https://api.github.com/repos/mralexgray/AHContentBrowser', + fork: true, + name: 'AHContentBrowser', + size: 223, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHContentBrowser.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MjI3ODQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/AHContentBrowser.git', + svn_url: 'https://github.com/mralexgray/AHContentBrowser', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHContentBrowser', + keys_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHContentBrowser/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHContentBrowser.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/forks', + full_name: 'mralexgray/AHContentBrowser', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/pulls{/number}', + pushed_at: '2013-03-13T17:38:23Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/trees{/sha}', + created_at: '2013-04-04T20:56:16Z', + events_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/merges', + mirror_url: null, + updated_at: '2015-10-22T05:00:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/compare/{base}...{head}', + description: + 'A Mac only webview that loads a fast readable version of the website if available.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 37430328, + url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl', + fork: true, + name: 'AHLaunchCtl', + size: 592, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLaunchCtl.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNzQzMDMyOA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLaunchCtl.git', + svn_url: 'https://github.com/mralexgray/AHLaunchCtl', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHLaunchCtl', + keys_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLaunchCtl.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/forks', + full_name: 'mralexgray/AHLaunchCtl', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/pulls{/number}', + pushed_at: '2015-05-26T18:50:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/trees{/sha}', + created_at: '2015-06-14T21:31:03Z', + events_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/merges', + mirror_url: null, + updated_at: '2015-06-14T21:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/compare/{base}...{head}', + description: 'LaunchD Framework for Cocoa Apps', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9167473, + url: 'https://api.github.com/repos/mralexgray/AHLayout', + fork: true, + name: 'AHLayout', + size: 359, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLayout.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MTY3NDcz', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLayout.git', + svn_url: 'https://github.com/mralexgray/AHLayout', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AHLayout', + keys_url: + 'https://api.github.com/repos/mralexgray/AHLayout/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLayout/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLayout.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHLayout/forks', + full_name: 'mralexgray/AHLayout', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHLayout/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHLayout/pulls{/number}', + pushed_at: '2013-07-08T02:31:14Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHLayout/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/trees{/sha}', + created_at: '2013-04-02T10:10:30Z', + events_url: 'https://api.github.com/repos/mralexgray/AHLayout/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHLayout/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AHLayout/merges', + mirror_url: null, + updated_at: '2013-07-08T02:31:17Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLayout/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHLayout/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLayout/compare/{base}...{head}', + description: 'AHLayout', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLayout/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLayout/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLayout/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLayout/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHLayout/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHLayout/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLayout/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHLayout/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLayout/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLayout/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 18450201, + url: 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework', + fork: true, + name: 'Airmail-Plug-In-Framework', + size: 888, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Airmail-Plug-In-Framework.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxODQ1MDIwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Airmail-Plug-In-Framework.git', + svn_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + keys_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/keys{/key_id}', + language: null, + tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/forks', + full_name: 'mralexgray/Airmail-Plug-In-Framework', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/pulls{/number}', + pushed_at: '2014-03-27T15:42:19Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/trees{/sha}', + created_at: '2014-04-04T19:33:54Z', + events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/merges', + mirror_url: null, + updated_at: '2014-11-23T19:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5203219, + url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API', + fork: true, + name: 'AJS-iTunes-API', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AJS-iTunes-API.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MjAzMjE5', + private: false, + ssh_url: 'git@github.com:mralexgray/AJS-iTunes-API.git', + svn_url: 'https://github.com/mralexgray/AJS-iTunes-API', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AJS-iTunes-API', + keys_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AJS-iTunes-API.git', + forks_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/forks', + full_name: 'mralexgray/AJS-iTunes-API', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/pulls{/number}', + pushed_at: '2011-10-30T22:26:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/trees{/sha}', + created_at: '2012-07-27T10:20:58Z', + events_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/merges', + mirror_url: null, + updated_at: '2013-01-11T11:00:05Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/compare/{base}...{head}', + description: + 'Cocoa wrapper for the iTunes search API - for iOS and Mac OSX projects', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10093801, + url: 'https://api.github.com/repos/mralexgray/Alcatraz', + fork: true, + name: 'Alcatraz', + size: 3668, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alcatraz.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDA5MzgwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alcatraz.git', + svn_url: 'https://github.com/mralexgray/Alcatraz', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/Alcatraz', + keys_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Alcatraz/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Alcatraz.git', + forks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/forks', + full_name: 'mralexgray/Alcatraz', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/pulls{/number}', + pushed_at: '2014-03-19T12:50:37Z', + teams_url: 'https://api.github.com/repos/mralexgray/Alcatraz/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/trees{/sha}', + created_at: '2013-05-16T04:41:13Z', + events_url: 'https://api.github.com/repos/mralexgray/Alcatraz/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Alcatraz/merges', + mirror_url: null, + updated_at: '2014-03-19T20:38:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/compare/{base}...{head}', + description: 'The most awesome (and only) Xcode package manager!', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12916552, + url: 'https://api.github.com/repos/mralexgray/alcatraz-packages', + fork: true, + name: 'alcatraz-packages', + size: 826, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alcatraz-packages.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjkxNjU1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alcatraz-packages.git', + svn_url: 'https://github.com/mralexgray/alcatraz-packages', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/alcatraz-packages', + keys_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/keys{/key_id}', + language: 'Ruby', + tags_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alcatraz-packages.git', + forks_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/forks', + full_name: 'mralexgray/alcatraz-packages', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/pulls{/number}', + pushed_at: '2015-12-14T16:21:31Z', + teams_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/trees{/sha}', + created_at: '2013-09-18T07:15:24Z', + events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/merges', + mirror_url: null, + updated_at: '2015-11-10T20:52:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/compare/{base}...{head}', + description: 'Package list repository for Alcatraz', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 44278362, + url: 'https://api.github.com/repos/mralexgray/alexicons', + fork: true, + name: 'alexicons', + size: 257, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alexicons.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk0NDI3ODM2Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alexicons.git', + svn_url: 'https://github.com/mralexgray/alexicons', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/alexicons', + keys_url: + 'https://api.github.com/repos/mralexgray/alexicons/keys{/key_id}', + language: 'CoffeeScript', + tags_url: 'https://api.github.com/repos/mralexgray/alexicons/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alexicons.git', + forks_url: 'https://api.github.com/repos/mralexgray/alexicons/forks', + full_name: 'mralexgray/alexicons', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/alexicons/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/alexicons/pulls{/number}', + pushed_at: '2015-10-16T03:57:51Z', + teams_url: 'https://api.github.com/repos/mralexgray/alexicons/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/trees{/sha}', + created_at: '2015-10-14T21:49:39Z', + events_url: 'https://api.github.com/repos/mralexgray/alexicons/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/alexicons/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/alexicons/merges', + mirror_url: null, + updated_at: '2015-10-15T06:20:08Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alexicons/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alexicons/compare/{base}...{head}', + description: 'Get popular cat names', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alexicons/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alexicons/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alexicons/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alexicons/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alexicons/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alexicons/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/alexicons/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/alexicons/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alexicons/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alexicons/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alexicons/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alexicons/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alexicons/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alexicons/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10476467, + url: 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate', + fork: true, + name: 'Alfred-Google-Translate', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alfred-Google-Translate.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ3NjQ2Nw==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alfred-Google-Translate.git', + svn_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + keys_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/keys{/key_id}', + language: 'Shell', + tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Alfred-Google-Translate.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/forks', + full_name: 'mralexgray/Alfred-Google-Translate', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/pulls{/number}', + pushed_at: '2013-01-12T19:39:03Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/trees{/sha}', + created_at: '2013-06-04T10:45:10Z', + events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/merges', + mirror_url: null, + updated_at: '2013-06-04T10:45:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/compare/{base}...{head}', + description: + 'Extension for Alfred that will do a Google translate for you', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5524019, + url: 'https://api.github.com/repos/mralexgray/Amber', + fork: false, + name: 'Amber', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amber.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1NTI0MDE5', + private: false, + ssh_url: 'git@github.com:mralexgray/Amber.git', + svn_url: 'https://github.com/mralexgray/Amber', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Amber', + keys_url: 'https://api.github.com/repos/mralexgray/Amber/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/Amber/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Amber/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amber.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amber/forks', + full_name: 'mralexgray/Amber', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amber/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/Amber/pulls{/number}', + pushed_at: '2012-08-23T10:38:25Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amber/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Amber/git/trees{/sha}', + created_at: '2012-08-23T10:38:24Z', + events_url: 'https://api.github.com/repos/mralexgray/Amber/events', + has_issues: true, + issues_url: + 'https://api.github.com/repos/mralexgray/Amber/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/Amber/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amber/merges', + mirror_url: null, + updated_at: '2013-01-11T22:25:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amber/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Amber/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amber/compare/{base}...{head}', + description: 'Fork of the difficult-to-deal-with Amber.framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amber/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amber/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amber/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Amber/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Amber/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Amber/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Amber/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amber/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/Amber/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/Amber/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amber/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Amber/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Amber/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amber/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Amber/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amber/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amber/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amber/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amber/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10809060, + url: 'https://api.github.com/repos/mralexgray/Amethyst', + fork: true, + name: 'Amethyst', + size: 12623, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amethyst.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDgwOTA2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/Amethyst.git', + svn_url: 'https://github.com/mralexgray/Amethyst', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ianyh.github.io/Amethyst/', + html_url: 'https://github.com/mralexgray/Amethyst', + keys_url: + 'https://api.github.com/repos/mralexgray/Amethyst/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Amethyst/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amethyst.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amethyst/forks', + full_name: 'mralexgray/Amethyst', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amethyst/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Amethyst/pulls{/number}', + pushed_at: '2013-06-18T02:54:11Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amethyst/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/trees{/sha}', + created_at: '2013-06-20T00:34:22Z', + events_url: 'https://api.github.com/repos/mralexgray/Amethyst/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Amethyst/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amethyst/merges', + mirror_url: null, + updated_at: '2013-06-20T00:34:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amethyst/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Amethyst/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amethyst/compare/{base}...{head}', + description: 'Tiling window manager for OS X.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amethyst/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Amethyst/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Amethyst/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amethyst/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Amethyst/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Amethyst/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amethyst/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Amethyst/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amethyst/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amethyst/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 3684286, + url: 'https://api.github.com/repos/mralexgray/Animated-Paths', + fork: true, + name: 'Animated-Paths', + size: 411, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Animated-Paths.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNjg0Mjg2', + private: false, + ssh_url: 'git@github.com:mralexgray/Animated-Paths.git', + svn_url: 'https://github.com/mralexgray/Animated-Paths', + archived: false, + disabled: false, + has_wiki: true, + homepage: + 'http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/', + html_url: 'https://github.com/mralexgray/Animated-Paths', + keys_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Animated-Paths.git', + forks_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/forks', + full_name: 'mralexgray/Animated-Paths', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/pulls{/number}', + pushed_at: '2010-12-30T20:56:51Z', + teams_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/trees{/sha}', + created_at: '2012-03-11T02:56:38Z', + events_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/merges', + mirror_url: null, + updated_at: '2013-01-08T04:12:21Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/compare/{base}...{head}', + description: + 'Demo project: Animating the drawing of a CGPath with CAShapeLayer.strokeEnd', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16662874, + url: 'https://api.github.com/repos/mralexgray/AnsiLove.framework', + fork: true, + name: 'AnsiLove.framework', + size: 3780, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AnsiLove.framework.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjY2Mjg3NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AnsiLove.framework.git', + svn_url: 'https://github.com/mralexgray/AnsiLove.framework', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'http://byteproject.net', + html_url: 'https://github.com/mralexgray/AnsiLove.framework', + keys_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/keys{/key_id}', + language: 'M', + tags_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AnsiLove.framework.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/forks', + full_name: 'mralexgray/AnsiLove.framework', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/pulls{/number}', + pushed_at: '2013-10-04T14:08:38Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/trees{/sha}', + created_at: '2014-02-09T08:30:27Z', + events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/merges', + mirror_url: null, + updated_at: '2015-01-13T20:41:46Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/compare/{base}...{head}', + description: 'Cocoa Framework for rendering ANSi / ASCII art', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5189563, + url: 'https://api.github.com/repos/mralexgray/ANTrackBar', + fork: true, + name: 'ANTrackBar', + size: 94, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ANTrackBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MTg5NTYz', + private: false, + ssh_url: 'git@github.com:mralexgray/ANTrackBar.git', + svn_url: 'https://github.com/mralexgray/ANTrackBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/ANTrackBar', + keys_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ANTrackBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/forks', + full_name: 'mralexgray/ANTrackBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/pulls{/number}', + pushed_at: '2012-03-09T01:40:02Z', + teams_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/trees{/sha}', + created_at: '2012-07-26T08:17:22Z', + events_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/merges', + mirror_url: null, + updated_at: '2013-01-11T10:29:56Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/compare/{base}...{head}', + description: 'An easy-to-use Cocoa seek bar with a pleasing appearance', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16240152, + url: 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C', + fork: true, + name: 'AOP-in-Objective-C', + size: 340, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AOP-in-Objective-C.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjI0MDE1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/AOP-in-Objective-C.git', + svn_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://innoli.hu/en/opensource/', + html_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + keys_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AOP-in-Objective-C.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/forks', + full_name: 'mralexgray/AOP-in-Objective-C', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/pulls{/number}', + pushed_at: '2014-02-12T16:23:20Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/trees{/sha}', + created_at: '2014-01-25T21:18:04Z', + events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/merges', + mirror_url: null, + updated_at: '2014-06-19T19:38:12Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/compare/{base}...{head}', + description: + 'An NSProxy based library for easily enabling AOP like functionality in Objective-C.', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/languages', + default_branch: 'travis-coveralls', + milestones_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13141936, + url: 'https://api.github.com/repos/mralexgray/Apaxy', + fork: true, + name: 'Apaxy', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Apaxy.git', + license: { + key: 'unlicense', + url: 'https://api.github.com/licenses/unlicense', + name: 'The Unlicense', + node_id: 'MDc6TGljZW5zZTE1', + spdx_id: 'Unlicense', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzE0MTkzNg==', + private: false, + ssh_url: 'git@github.com:mralexgray/Apaxy.git', + svn_url: 'https://github.com/mralexgray/Apaxy', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Apaxy', + keys_url: 'https://api.github.com/repos/mralexgray/Apaxy/keys{/key_id}', + language: 'CSS', + tags_url: 'https://api.github.com/repos/mralexgray/Apaxy/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Apaxy.git', + forks_url: 'https://api.github.com/repos/mralexgray/Apaxy/forks', + full_name: 'mralexgray/Apaxy', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Apaxy/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/Apaxy/pulls{/number}', + pushed_at: '2013-08-02T16:01:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/Apaxy/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/trees{/sha}', + created_at: '2013-09-27T05:05:35Z', + events_url: 'https://api.github.com/repos/mralexgray/Apaxy/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/Apaxy/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Apaxy/merges', + mirror_url: null, + updated_at: '2018-02-16T21:40:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Apaxy/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Apaxy/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Apaxy/compare/{base}...{head}', + description: + 'A simple, customisable theme for your Apache directory listing.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Apaxy/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Apaxy/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Apaxy/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Apaxy/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Apaxy/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/Apaxy/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/Apaxy/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Apaxy/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Apaxy/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Apaxy/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Apaxy/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Apaxy/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Apaxy/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Apaxy/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 20027360, + url: 'https://api.github.com/repos/mralexgray/app', + fork: true, + name: 'app', + size: 1890, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/app.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkyMDAyNzM2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/app.git', + svn_url: 'https://github.com/mralexgray/app', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/app', + keys_url: 'https://api.github.com/repos/mralexgray/app/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/app/tags', + watchers: 0, + blobs_url: 'https://api.github.com/repos/mralexgray/app/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/app.git', + forks_url: 'https://api.github.com/repos/mralexgray/app/forks', + full_name: 'mralexgray/app', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/app/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/app/pulls{/number}', + pushed_at: '2014-05-20T19:51:38Z', + teams_url: 'https://api.github.com/repos/mralexgray/app/teams', + trees_url: 'https://api.github.com/repos/mralexgray/app/git/trees{/sha}', + created_at: '2014-05-21T15:54:20Z', + events_url: 'https://api.github.com/repos/mralexgray/app/events', + has_issues: false, + issues_url: 'https://api.github.com/repos/mralexgray/app/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/app/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/app/merges', + mirror_url: null, + updated_at: '2014-05-21T15:54:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/app/{archive_format}{/ref}', + commits_url: 'https://api.github.com/repos/mralexgray/app/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/app/compare/{base}...{head}', + description: 'Instant mobile web app creation', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/app/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/app/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/app/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/app/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/app/git/tags{/sha}', + has_projects: true, + releases_url: 'https://api.github.com/repos/mralexgray/app/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/app/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/app/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/app/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/app/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/app/milestones{/number}', + stargazers_url: 'https://api.github.com/repos/mralexgray/app/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/app/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/app/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/app/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/app/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/app/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/app/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/app/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/app/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/app/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + ], + name: 'Shirt', + revenue: 4.99, + }, + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + PayloadSize: 48375, + LastJobStatus: { + JobID: 0, + JobState: '', + AttemptNum: 0, + ExecTime: '0001-01-01T00:00:00Z', + RetryTime: '0001-01-01T00:00:00Z', + ErrorCode: '', + ErrorResponse: null, + Parameters: null, + WorkspaceId: '', + }, + Parameters: { + record_id: null, + source_id: '2DTlLPQxignYp4ag9sISgGN2uY7', + event_name: 'Product Purchased new', + event_type: 'track', + message_id: '9f8fb785-c720-4381-a009-bf22a13f4ced', + received_at: '2022-08-18T08:43:13.521+05:30', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + transform_at: 'router', + source_job_id: '', + destination_id: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + gateway_job_id: 6, + source_task_id: '', + source_batch_id: '', + source_category: '', + source_job_run_id: '', + source_task_run_id: '', + source_definition_id: '2DTlJaW1jHhM8B27Et2CMTZoxZF', + destination_definition_id: '', + }, + WorkspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + }, + workerAssignedTime: '2022-08-18T08:43:16.586825+05:30', + }, + destination: { + ID: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + Name: 'Lambda test', + DestinationDefinition: { + ID: '2DTlHvPWOzBUksUQUvggRnalUkj', + Name: 'LAMBDA', + DisplayName: 'AWS Lambda', + Config: { + destConfig: { + defaultConfig: [ + 'region', + 'iamRoleARN', + 'externalID', + 'accessKeyId', + 'accessKey', + 'lambda', + 'enableBatchInput', + 'clientContext', + 'roleBasedAuth', + 'maxBatchSize', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'accessKey', 'iamRoleARN', 'externalID'], + supportedMessageTypes: [ + 'identify', + 'page', + 'screen', + 'track', + 'alias', + 'group', + ], + supportedSourceTypes: [ + 'amp', + 'android', + 'cordova', + 'cloud', + 'flutter', + 'ios', + 'reactnative', + 'unity', + 'warehouse', + 'web', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + accessKey: '', + accessKeyId: '', + clientContext: '', + enableBatchInput: true, + externalID: '', + iamRoleARN: '', + lambda: 'testFunction', + maxBatchSize: '2', + region: 'us-west-2', + roleBasedAuth: false, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + RevisionID: '2DVji2YjKiWRL0Qdx73xg9r8ReQ', + }, + }, + { + message: { + name: 'Page View', + type: 'page', + sentAt: '2022-08-18T08:43:15.539+05:30', + userId: 'identified user id', + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + messageId: '5f58d1f7-cbd6-4bff-8571-9933be7210b1', + timestamp: '2020-02-02T00:23:09.544Z', + properties: { + path: '/', + title: 'Home', + }, + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + metadata: { + userId: 'anon-id-new<<>>identified user id', + jobId: 33, + sourceId: '2DTlLPQxignYp4ag9sISgGN2uY7', + destinationId: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + attemptNum: 0, + receivedAt: '2022-08-18T08:43:13.521+05:30', + createdAt: '2022-08-18T03:13:15.549Z', + firstAttemptedAt: '', + transformAt: 'router', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + secret: null, + jobsT: { + UUID: 'bf616af4-2c6b-495f-8b2d-b522c93bdca2', + JobID: 33, + UserID: 'anon-id-new<<>>identified user id', + CreatedAt: '2022-08-18T03:13:15.549078Z', + ExpireAt: '2022-08-18T03:13:15.549078Z', + CustomVal: 'LAMBDA', + EventCount: 1, + EventPayload: { + name: 'Page View', + type: 'page', + sentAt: '2022-08-18T08:43:15.539+05:30', + userId: 'identified user id', + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + messageId: '5f58d1f7-cbd6-4bff-8571-9933be7210b1', + timestamp: '2020-02-02T00:23:09.544Z', + properties: { + path: '/', + title: 'Home', + }, + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + PayloadSize: 548, + LastJobStatus: { + JobID: 0, + JobState: '', + AttemptNum: 0, + ExecTime: '0001-01-01T00:00:00Z', + RetryTime: '0001-01-01T00:00:00Z', + ErrorCode: '', + ErrorResponse: null, + Parameters: null, + WorkspaceId: '', + }, + Parameters: { + record_id: null, + source_id: '2DTlLPQxignYp4ag9sISgGN2uY7', + event_name: '', + event_type: 'page', + message_id: '5f58d1f7-cbd6-4bff-8571-9933be7210b1', + received_at: '2022-08-18T08:43:13.521+05:30', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + transform_at: 'router', + source_job_id: '', + destination_id: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + gateway_job_id: 6, + source_task_id: '', + source_batch_id: '', + source_category: '', + source_job_run_id: '', + source_task_run_id: '', + source_definition_id: '2DTlJaW1jHhM8B27Et2CMTZoxZF', + destination_definition_id: '', + }, + WorkspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + }, + workerAssignedTime: '2022-08-18T08:43:16.586825+05:30', + }, + destination: { + ID: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + Name: 'Lambda test', + DestinationDefinition: { + ID: '2DTlHvPWOzBUksUQUvggRnalUkj', + Name: 'LAMBDA', + DisplayName: 'AWS Lambda', + Config: { + destConfig: { + defaultConfig: [ + 'region', + 'iamRoleARN', + 'externalID', + 'accessKeyId', + 'accessKey', + 'lambda', + 'enableBatchInput', + 'clientContext', + 'roleBasedAuth', + 'maxBatchSize', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'accessKey', 'iamRoleARN', 'externalID'], + supportedMessageTypes: [ + 'identify', + 'page', + 'screen', + 'track', + 'alias', + 'group', + ], + supportedSourceTypes: [ + 'amp', + 'android', + 'cordova', + 'cloud', + 'flutter', + 'ios', + 'reactnative', + 'unity', + 'warehouse', + 'web', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + accessKey: '', + accessKeyId: '', + clientContext: '', + enableBatchInput: true, + externalID: '', + iamRoleARN: '', + lambda: 'testFunction', + maxBatchSize: '2', + region: 'us-west-2', + roleBasedAuth: false, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + RevisionID: '2DVji2YjKiWRL0Qdx73xg9r8ReQ', + }, + }, + { + message: { + name: 'Screen View', + type: 'screen', + sentAt: '2022-08-18T08:43:15.539+05:30', + userId: 'identified user id', + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + messageId: '1b8ee4c3-ffad-4457-b453-31b32da1dfea', + timestamp: '2020-02-02T00:23:09.544Z', + properties: { + prop1: '5', + }, + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + metadata: { + userId: 'anon-id-new<<>>identified user id', + jobId: 34, + sourceId: '2DTlLPQxignYp4ag9sISgGN2uY7', + destinationId: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + attemptNum: 0, + receivedAt: '2022-08-18T08:43:13.521+05:30', + createdAt: '2022-08-18T03:13:15.549Z', + firstAttemptedAt: '', + transformAt: 'router', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + secret: null, + jobsT: { + UUID: '8faa9d6d-d8a8-468c-bef4-c2db52f6101b', + JobID: 34, + UserID: 'anon-id-new<<>>identified user id', + CreatedAt: '2022-08-18T03:13:15.549078Z', + ExpireAt: '2022-08-18T03:13:15.549078Z', + CustomVal: 'LAMBDA', + EventCount: 1, + EventPayload: { + name: 'Screen View', + type: 'screen', + sentAt: '2022-08-18T08:43:15.539+05:30', + userId: 'identified user id', + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + messageId: '1b8ee4c3-ffad-4457-b453-31b32da1dfea', + timestamp: '2020-02-02T00:23:09.544Z', + properties: { + prop1: '5', + }, + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + PayloadSize: 536, + LastJobStatus: { + JobID: 0, + JobState: '', + AttemptNum: 0, + ExecTime: '0001-01-01T00:00:00Z', + RetryTime: '0001-01-01T00:00:00Z', + ErrorCode: '', + ErrorResponse: null, + Parameters: null, + WorkspaceId: '', + }, + Parameters: { + record_id: null, + source_id: '2DTlLPQxignYp4ag9sISgGN2uY7', + event_name: '', + event_type: 'screen', + message_id: '1b8ee4c3-ffad-4457-b453-31b32da1dfea', + received_at: '2022-08-18T08:43:13.521+05:30', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + transform_at: 'router', + source_job_id: '', + destination_id: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + gateway_job_id: 6, + source_task_id: '', + source_batch_id: '', + source_category: '', + source_job_run_id: '', + source_task_run_id: '', + source_definition_id: '2DTlJaW1jHhM8B27Et2CMTZoxZF', + destination_definition_id: '', + }, + WorkspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + }, + workerAssignedTime: '2022-08-18T08:43:16.586825+05:30', + }, + destination: { + ID: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + Name: 'Lambda test', + DestinationDefinition: { + ID: '2DTlHvPWOzBUksUQUvggRnalUkj', + Name: 'LAMBDA', + DisplayName: 'AWS Lambda', + Config: { + destConfig: { + defaultConfig: [ + 'region', + 'iamRoleARN', + 'externalID', + 'accessKeyId', + 'accessKey', + 'lambda', + 'enableBatchInput', + 'clientContext', + 'roleBasedAuth', + 'maxBatchSize', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'accessKey', 'iamRoleARN', 'externalID'], + supportedMessageTypes: [ + 'identify', + 'page', + 'screen', + 'track', + 'alias', + 'group', + ], + supportedSourceTypes: [ + 'amp', + 'android', + 'cordova', + 'cloud', + 'flutter', + 'ios', + 'reactnative', + 'unity', + 'warehouse', + 'web', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + accessKey: '', + accessKeyId: '', + clientContext: '', + enableBatchInput: true, + externalID: '', + iamRoleARN: '', + lambda: 'testFunction', + maxBatchSize: '2', + region: 'us-west-2', + roleBasedAuth: false, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + RevisionID: '2DVji2YjKiWRL0Qdx73xg9r8ReQ', + }, + }, + { + message: { + type: 'group', + sentAt: '2022-08-18T08:43:15.539+05:30', + traits: { + name: 'Company', + industry: 'Industry', + employees: 123, + }, + userId: 'user123', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + groupId: 'group1', + rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', + messageId: '2c59b527-3235-4fc2-9680-f41ec52ebb51', + timestamp: '2020-01-21T00:21:34.208Z', + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + metadata: { + userId: 'anon-id-new<<>>identified user id', + jobId: 35, + sourceId: '2DTlLPQxignYp4ag9sISgGN2uY7', + destinationId: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + attemptNum: 0, + receivedAt: '2022-08-18T08:43:13.521+05:30', + createdAt: '2022-08-18T03:13:15.549Z', + firstAttemptedAt: '', + transformAt: 'router', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + secret: null, + jobsT: { + UUID: '73cea314-998a-4b72-8004-34b0618093a3', + JobID: 35, + UserID: 'anon-id-new<<>>identified user id', + CreatedAt: '2022-08-18T03:13:15.549078Z', + ExpireAt: '2022-08-18T03:13:15.549078Z', + CustomVal: 'LAMBDA', + EventCount: 1, + EventPayload: { + type: 'group', + sentAt: '2022-08-18T08:43:15.539+05:30', + traits: { + name: 'Company', + industry: 'Industry', + employees: 123, + }, + userId: 'user123', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + groupId: 'group1', + rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', + messageId: '2c59b527-3235-4fc2-9680-f41ec52ebb51', + timestamp: '2020-01-21T00:21:34.208Z', + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + PayloadSize: 589, + LastJobStatus: { + JobID: 0, + JobState: '', + AttemptNum: 0, + ExecTime: '0001-01-01T00:00:00Z', + RetryTime: '0001-01-01T00:00:00Z', + ErrorCode: '', + ErrorResponse: null, + Parameters: null, + WorkspaceId: '', + }, + Parameters: { + record_id: null, + source_id: '2DTlLPQxignYp4ag9sISgGN2uY7', + event_name: '', + event_type: 'group', + message_id: '2c59b527-3235-4fc2-9680-f41ec52ebb51', + received_at: '2022-08-18T08:43:13.521+05:30', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + transform_at: 'router', + source_job_id: '', + destination_id: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + gateway_job_id: 6, + source_task_id: '', + source_batch_id: '', + source_category: '', + source_job_run_id: '', + source_task_run_id: '', + source_definition_id: '2DTlJaW1jHhM8B27Et2CMTZoxZF', + destination_definition_id: '', + }, + WorkspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + }, + workerAssignedTime: '2022-08-18T08:43:16.586825+05:30', + }, + destination: { + ID: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + Name: 'Lambda test', + DestinationDefinition: { + ID: '2DTlHvPWOzBUksUQUvggRnalUkj', + Name: 'LAMBDA', + DisplayName: 'AWS Lambda', + Config: { + destConfig: { + defaultConfig: [ + 'region', + 'iamRoleARN', + 'externalID', + 'accessKeyId', + 'accessKey', + 'lambda', + 'enableBatchInput', + 'clientContext', + 'roleBasedAuth', + 'maxBatchSize', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'accessKey', 'iamRoleARN', 'externalID'], + supportedMessageTypes: [ + 'identify', + 'page', + 'screen', + 'track', + 'alias', + 'group', + ], + supportedSourceTypes: [ + 'amp', + 'android', + 'cordova', + 'cloud', + 'flutter', + 'ios', + 'reactnative', + 'unity', + 'warehouse', + 'web', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + accessKey: '', + accessKeyId: '', + clientContext: '', + enableBatchInput: true, + externalID: '', + iamRoleARN: '', + lambda: 'testFunction', + maxBatchSize: '2', + region: 'us-west-2', + roleBasedAuth: false, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + RevisionID: '2DVji2YjKiWRL0Qdx73xg9r8ReQ', + }, + }, + { + message: { + type: 'alias', + sentAt: '2022-08-18T08:43:15.539+05:30', + userId: 'user123', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', + messageId: '3ff8d400-b6d4-43a4-a0ff-1bc7ae8b5f7d', + timestamp: '2020-01-21T00:21:34.208Z', + previousId: 'previd1', + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + metadata: { + userId: 'anon-id-new<<>>identified user id', + jobId: 36, + sourceId: '2DTlLPQxignYp4ag9sISgGN2uY7', + destinationId: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + attemptNum: 0, + receivedAt: '2022-08-18T08:43:13.521+05:30', + createdAt: '2022-08-18T03:13:15.549Z', + firstAttemptedAt: '', + transformAt: 'router', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + secret: null, + jobsT: { + UUID: 'ac80629c-9eb6-4e92-bee8-4647e88f7fc0', + JobID: 36, + UserID: 'anon-id-new<<>>identified user id', + CreatedAt: '2022-08-18T03:13:15.549078Z', + ExpireAt: '2022-08-18T03:13:15.549078Z', + CustomVal: 'LAMBDA', + EventCount: 1, + EventPayload: { + type: 'alias', + sentAt: '2022-08-18T08:43:15.539+05:30', + userId: 'user123', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', + messageId: '3ff8d400-b6d4-43a4-a0ff-1bc7ae8b5f7d', + timestamp: '2020-01-21T00:21:34.208Z', + previousId: 'previd1', + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + PayloadSize: 506, + LastJobStatus: { + JobID: 0, + JobState: '', + AttemptNum: 0, + ExecTime: '0001-01-01T00:00:00Z', + RetryTime: '0001-01-01T00:00:00Z', + ErrorCode: '', + ErrorResponse: null, + Parameters: null, + WorkspaceId: '', + }, + Parameters: { + record_id: null, + source_id: '2DTlLPQxignYp4ag9sISgGN2uY7', + event_name: '', + event_type: 'alias', + message_id: '3ff8d400-b6d4-43a4-a0ff-1bc7ae8b5f7d', + received_at: '2022-08-18T08:43:13.521+05:30', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + transform_at: 'router', + source_job_id: '', + destination_id: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + gateway_job_id: 6, + source_task_id: '', + source_batch_id: '', + source_category: '', + source_job_run_id: '', + source_task_run_id: '', + source_definition_id: '2DTlJaW1jHhM8B27Et2CMTZoxZF', + destination_definition_id: '', + }, + WorkspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + }, + workerAssignedTime: '2022-08-18T08:43:16.586825+05:30', + }, + destination: { + ID: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + Name: 'Lambda test', + DestinationDefinition: { + ID: '2DTlHvPWOzBUksUQUvggRnalUkj', + Name: 'LAMBDA', + DisplayName: 'AWS Lambda', + Config: { + destConfig: { + defaultConfig: [ + 'region', + 'iamRoleARN', + 'externalID', + 'accessKeyId', + 'accessKey', + 'lambda', + 'enableBatchInput', + 'clientContext', + 'roleBasedAuth', + 'maxBatchSize', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'accessKey', 'iamRoleARN', 'externalID'], + supportedMessageTypes: [ + 'identify', + 'page', + 'screen', + 'track', + 'alias', + 'group', + ], + supportedSourceTypes: [ + 'amp', + 'android', + 'cordova', + 'cloud', + 'flutter', + 'ios', + 'reactnative', + 'unity', + 'warehouse', + 'web', + ], + transformAt: 'router', + transformAtV1: 'router', + }, + ResponseRules: {}, + }, + Config: { + accessKey: '', + accessKeyId: '', + clientContext: '', + enableBatchInput: true, + externalID: '', + iamRoleARN: '', + lambda: 'testFunction', + maxBatchSize: '2', + region: 'us-west-2', + roleBasedAuth: false, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + RevisionID: '2DVji2YjKiWRL0Qdx73xg9r8ReQ', + }, + }, + ], + destType: 'lambda', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + payload: + '[{"type":"track","event":"Product Purchased new","sentAt":"2022-08-18T08:43:15.539+05:30","userId":"identified user id","context":{"ip":"14.5.67.21","library":{"name":"http"}},"rudderId":"daf823fb-e8d3-413a-8313-d34cd756f968","messageId":"9f8fb785-c720-4381-a009-bf22a13f4ced","timestamp":"2020-02-02T00:23:09.544Z","properties":{"data":[{"id":6104546,"url":"https://api.github.com/repos/mralexgray/-REPONAME","fork":false,"name":"-REPONAME","size":48,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/-REPONAME.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnk2MTA0NTQ2","private":false,"ssh_url":"git@github.com:mralexgray/-REPONAME.git","svn_url":"https://github.com/mralexgray/-REPONAME","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/-REPONAME","keys_url":"https://api.github.com/repos/mralexgray/-REPONAME/keys{/key_id}","language":null,"tags_url":"https://api.github.com/repos/mralexgray/-REPONAME/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/-REPONAME/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/-REPONAME.git","forks_url":"https://api.github.com/repos/mralexgray/-REPONAME/forks","full_name":"mralexgray/-REPONAME","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/-REPONAME/hooks","pulls_url":"https://api.github.com/repos/mralexgray/-REPONAME/pulls{/number}","pushed_at":"2012-10-06T16:37:39Z","teams_url":"https://api.github.com/repos/mralexgray/-REPONAME/teams","trees_url":"https://api.github.com/repos/mralexgray/-REPONAME/git/trees{/sha}","created_at":"2012-10-06T16:37:39Z","events_url":"https://api.github.com/repos/mralexgray/-REPONAME/events","has_issues":true,"issues_url":"https://api.github.com/repos/mralexgray/-REPONAME/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/-REPONAME/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/-REPONAME/merges","mirror_url":null,"updated_at":"2013-01-12T13:39:30Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/-REPONAME/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/-REPONAME/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/-REPONAME/compare/{base}...{head}","description":null,"forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/-REPONAME/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/-REPONAME/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/-REPONAME/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/-REPONAME/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/-REPONAME/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/-REPONAME/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/-REPONAME/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/-REPONAME/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/-REPONAME/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/-REPONAME/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/-REPONAME/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/-REPONAME/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/-REPONAME/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/-REPONAME/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/-REPONAME/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/-REPONAME/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/-REPONAME/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/-REPONAME/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/-REPONAME/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/-REPONAME/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/-REPONAME/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":104510411,"url":"https://api.github.com/repos/mralexgray/...","fork":true,"name":"...","size":113,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/....git","license":{"key":"mit","url":"https://api.github.com/licenses/mit","name":"MIT License","node_id":"MDc6TGljZW5zZTEz","spdx_id":"MIT"},"node_id":"MDEwOlJlcG9zaXRvcnkxMDQ1MTA0MTE=","private":false,"ssh_url":"git@github.com:mralexgray/....git","svn_url":"https://github.com/mralexgray/...","archived":false,"disabled":false,"has_wiki":false,"homepage":"https://driesvints.com/blog/getting-started-with-dotfiles","html_url":"https://github.com/mralexgray/...","keys_url":"https://api.github.com/repos/mralexgray/.../keys{/key_id}","language":"Shell","tags_url":"https://api.github.com/repos/mralexgray/.../tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/.../git/blobs{/sha}","clone_url":"https://github.com/mralexgray/....git","forks_url":"https://api.github.com/repos/mralexgray/.../forks","full_name":"mralexgray/...","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/.../hooks","pulls_url":"https://api.github.com/repos/mralexgray/.../pulls{/number}","pushed_at":"2017-09-15T08:27:32Z","teams_url":"https://api.github.com/repos/mralexgray/.../teams","trees_url":"https://api.github.com/repos/mralexgray/.../git/trees{/sha}","created_at":"2017-09-22T19:19:42Z","events_url":"https://api.github.com/repos/mralexgray/.../events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/.../issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/.../labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/.../merges","mirror_url":null,"updated_at":"2017-09-22T19:20:22Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/.../{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/.../commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/.../compare/{base}...{head}","description":":computer: Public repo for my personal dotfiles.","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/.../branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/.../comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/.../contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/.../git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/.../git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/.../releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/.../statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/.../assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/.../downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/.../languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/.../milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/.../stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/.../deployments","git_commits_url":"https://api.github.com/repos/mralexgray/.../git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/.../subscribers","contributors_url":"https://api.github.com/repos/mralexgray/.../contributors","issue_events_url":"https://api.github.com/repos/mralexgray/.../issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/.../subscription","collaborators_url":"https://api.github.com/repos/mralexgray/.../collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/.../issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/.../notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":58656723,"url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol","fork":true,"name":"2200087-Serial-Protocol","size":41,"forks":1,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/2200087-Serial-Protocol.git","license":{"key":"gpl-2.0","url":"https://api.github.com/licenses/gpl-2.0","name":"GNU General Public License v2.0","node_id":"MDc6TGljZW5zZTg=","spdx_id":"GPL-2.0"},"node_id":"MDEwOlJlcG9zaXRvcnk1ODY1NjcyMw==","private":false,"ssh_url":"git@github.com:mralexgray/2200087-Serial-Protocol.git","svn_url":"https://github.com/mralexgray/2200087-Serial-Protocol","archived":false,"disabled":false,"has_wiki":true,"homepage":"http://daviddworken.com","html_url":"https://github.com/mralexgray/2200087-Serial-Protocol","keys_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/keys{/key_id}","language":"Python","tags_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/2200087-Serial-Protocol.git","forks_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/forks","full_name":"mralexgray/2200087-Serial-Protocol","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/hooks","pulls_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/pulls{/number}","pushed_at":"2016-05-12T16:07:24Z","teams_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/teams","trees_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/trees{/sha}","created_at":"2016-05-12T16:05:28Z","events_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/merges","mirror_url":null,"updated_at":"2016-05-12T16:05:30Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/compare/{base}...{head}","description":"A reverse engineered protocol description and accompanying code for Radioshack\'s 2200087 multimeter","forks_count":1,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":13121042,"url":"https://api.github.com/repos/mralexgray/ace","fork":true,"name":"ace","size":21080,"forks":1,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/ace.git","license":{"key":"other","url":null,"name":"Other","node_id":"MDc6TGljZW5zZTA=","spdx_id":"NOASSERTION"},"node_id":"MDEwOlJlcG9zaXRvcnkxMzEyMTA0Mg==","private":false,"ssh_url":"git@github.com:mralexgray/ace.git","svn_url":"https://github.com/mralexgray/ace","archived":false,"disabled":false,"has_wiki":true,"homepage":"http://ace.c9.io","html_url":"https://github.com/mralexgray/ace","keys_url":"https://api.github.com/repos/mralexgray/ace/keys{/key_id}","language":"JavaScript","tags_url":"https://api.github.com/repos/mralexgray/ace/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/ace/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/ace.git","forks_url":"https://api.github.com/repos/mralexgray/ace/forks","full_name":"mralexgray/ace","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/ace/hooks","pulls_url":"https://api.github.com/repos/mralexgray/ace/pulls{/number}","pushed_at":"2013-10-26T12:34:48Z","teams_url":"https://api.github.com/repos/mralexgray/ace/teams","trees_url":"https://api.github.com/repos/mralexgray/ace/git/trees{/sha}","created_at":"2013-09-26T11:58:10Z","events_url":"https://api.github.com/repos/mralexgray/ace/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/ace/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/ace/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/ace/merges","mirror_url":null,"updated_at":"2013-10-26T12:34:49Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/ace/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/ace/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/ace/compare/{base}...{head}","description":"Ace (Ajax.org Cloud9 Editor)","forks_count":1,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/ace/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/ace/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/ace/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/ace/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/ace/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/ace/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/ace/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/ace/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/ace/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/ace/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/ace/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/ace/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/ace/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/ace/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/ace/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/ace/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/ace/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/ace/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/ace/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/ace/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/ace/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":10791045,"url":"https://api.github.com/repos/mralexgray/ACEView","fork":true,"name":"ACEView","size":1733,"forks":1,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/ACEView.git","license":{"key":"other","url":null,"name":"Other","node_id":"MDc6TGljZW5zZTA=","spdx_id":"NOASSERTION"},"node_id":"MDEwOlJlcG9zaXRvcnkxMDc5MTA0NQ==","private":false,"ssh_url":"git@github.com:mralexgray/ACEView.git","svn_url":"https://github.com/mralexgray/ACEView","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/ACEView","keys_url":"https://api.github.com/repos/mralexgray/ACEView/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/ACEView/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/ACEView/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/ACEView.git","forks_url":"https://api.github.com/repos/mralexgray/ACEView/forks","full_name":"mralexgray/ACEView","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/ACEView/hooks","pulls_url":"https://api.github.com/repos/mralexgray/ACEView/pulls{/number}","pushed_at":"2014-05-09T01:36:23Z","teams_url":"https://api.github.com/repos/mralexgray/ACEView/teams","trees_url":"https://api.github.com/repos/mralexgray/ACEView/git/trees{/sha}","created_at":"2013-06-19T12:15:04Z","events_url":"https://api.github.com/repos/mralexgray/ACEView/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/ACEView/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/ACEView/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/ACEView/merges","mirror_url":null,"updated_at":"2015-11-24T01:14:10Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/ACEView/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/ACEView/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/ACEView/compare/{base}...{head}","description":"Use the wonderful ACE editor in your Cocoa applications","forks_count":1,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/ACEView/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/ACEView/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/ACEView/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/ACEView/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/ACEView/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/ACEView/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/ACEView/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/ACEView/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/ACEView/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/ACEView/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/ACEView/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/ACEView/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/ACEView/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/ACEView/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/ACEView/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/ACEView/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/ACEView/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/ACEView/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/ACEView/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/ACEView/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/ACEView/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":13623648,"url":"https://api.github.com/repos/mralexgray/ActiveLog","fork":true,"name":"ActiveLog","size":60,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/ActiveLog.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnkxMzYyMzY0OA==","private":false,"ssh_url":"git@github.com:mralexgray/ActiveLog.git","svn_url":"https://github.com/mralexgray/ActiveLog","archived":false,"disabled":false,"has_wiki":true,"homepage":"http://deepitpro.com/en/articles/ActiveLog/info/","html_url":"https://github.com/mralexgray/ActiveLog","keys_url":"https://api.github.com/repos/mralexgray/ActiveLog/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/ActiveLog/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/ActiveLog/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/ActiveLog.git","forks_url":"https://api.github.com/repos/mralexgray/ActiveLog/forks","full_name":"mralexgray/ActiveLog","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/ActiveLog/hooks","pulls_url":"https://api.github.com/repos/mralexgray/ActiveLog/pulls{/number}","pushed_at":"2011-07-03T06:28:59Z","teams_url":"https://api.github.com/repos/mralexgray/ActiveLog/teams","trees_url":"https://api.github.com/repos/mralexgray/ActiveLog/git/trees{/sha}","created_at":"2013-10-16T15:52:37Z","events_url":"https://api.github.com/repos/mralexgray/ActiveLog/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/ActiveLog/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/ActiveLog/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/ActiveLog/merges","mirror_url":null,"updated_at":"2013-10-16T15:52:37Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/ActiveLog/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/ActiveLog/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/ActiveLog/compare/{base}...{head}","description":"Shut up all logs with active filter.","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/ActiveLog/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/ActiveLog/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/ActiveLog/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/ActiveLog/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/ActiveLog/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/ActiveLog/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/ActiveLog/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/ActiveLog/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/ActiveLog/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/ActiveLog/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/ActiveLog/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/ActiveLog/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/ActiveLog/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/ActiveLog/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/ActiveLog/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/ActiveLog/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/ActiveLog/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/ActiveLog/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/ActiveLog/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/ActiveLog/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/ActiveLog/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":9716210,"url":"https://api.github.com/repos/mralexgray/adium","fork":false,"name":"adium","size":277719,"forks":37,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/adium.git","license":{"key":"other","url":null,"name":"Other","node_id":"MDc6TGljZW5zZTA=","spdx_id":"NOASSERTION"},"node_id":"MDEwOlJlcG9zaXRvcnk5NzE2MjEw","private":false,"ssh_url":"git@github.com:mralexgray/adium.git","svn_url":"https://github.com/mralexgray/adium","archived":false,"disabled":false,"has_wiki":false,"homepage":null,"html_url":"https://github.com/mralexgray/adium","keys_url":"https://api.github.com/repos/mralexgray/adium/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/adium/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/adium/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/adium.git","forks_url":"https://api.github.com/repos/mralexgray/adium/forks","full_name":"mralexgray/adium","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/adium/hooks","pulls_url":"https://api.github.com/repos/mralexgray/adium/pulls{/number}","pushed_at":"2013-04-26T16:43:53Z","teams_url":"https://api.github.com/repos/mralexgray/adium/teams","trees_url":"https://api.github.com/repos/mralexgray/adium/git/trees{/sha}","created_at":"2013-04-27T14:59:33Z","events_url":"https://api.github.com/repos/mralexgray/adium/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/adium/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/adium/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/adium/merges","mirror_url":null,"updated_at":"2019-12-11T06:51:45Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/adium/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/adium/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/adium/compare/{base}...{head}","description":"Official mirror of hg.adium.im","forks_count":37,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/adium/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/adium/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/adium/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/adium/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/adium/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/adium/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/adium/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/adium/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/adium/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/adium/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/adium/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/adium/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/adium/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/adium/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/adium/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/adium/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/adium/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/adium/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/adium/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/adium/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/adium/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":12752329,"url":"https://api.github.com/repos/mralexgray/ADLivelyTableView","fork":true,"name":"ADLivelyTableView","size":73,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/ADLivelyTableView.git","license":{"key":"other","url":null,"name":"Other","node_id":"MDc6TGljZW5zZTA=","spdx_id":"NOASSERTION"},"node_id":"MDEwOlJlcG9zaXRvcnkxMjc1MjMyOQ==","private":false,"ssh_url":"git@github.com:mralexgray/ADLivelyTableView.git","svn_url":"https://github.com/mralexgray/ADLivelyTableView","archived":false,"disabled":false,"has_wiki":true,"homepage":"http://applidium.com/en/news/lively_uitableview/","html_url":"https://github.com/mralexgray/ADLivelyTableView","keys_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/ADLivelyTableView.git","forks_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/forks","full_name":"mralexgray/ADLivelyTableView","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/hooks","pulls_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/pulls{/number}","pushed_at":"2012-05-10T10:40:15Z","teams_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/teams","trees_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/git/trees{/sha}","created_at":"2013-09-11T09:18:01Z","events_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/merges","mirror_url":null,"updated_at":"2013-09-11T09:18:03Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/compare/{base}...{head}","description":"Lively UITableView","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/ADLivelyTableView/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":5697379,"url":"https://api.github.com/repos/mralexgray/AFIncrementalStore","fork":true,"name":"AFIncrementalStore","size":139,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AFIncrementalStore.git","license":{"key":"mit","url":"https://api.github.com/licenses/mit","name":"MIT License","node_id":"MDc6TGljZW5zZTEz","spdx_id":"MIT"},"node_id":"MDEwOlJlcG9zaXRvcnk1Njk3Mzc5","private":false,"ssh_url":"git@github.com:mralexgray/AFIncrementalStore.git","svn_url":"https://github.com/mralexgray/AFIncrementalStore","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/AFIncrementalStore","keys_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AFIncrementalStore.git","forks_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/forks","full_name":"mralexgray/AFIncrementalStore","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/pulls{/number}","pushed_at":"2012-09-01T22:46:25Z","teams_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/teams","trees_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/git/trees{/sha}","created_at":"2012-09-06T04:20:33Z","events_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/merges","mirror_url":null,"updated_at":"2013-01-12T03:15:29Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/compare/{base}...{head}","description":"Core Data Persistence with AFNetworking, Done Right","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AFIncrementalStore/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":6969621,"url":"https://api.github.com/repos/mralexgray/AFNetworking","fork":true,"name":"AFNetworking","size":4341,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AFNetworking.git","license":{"key":"mit","url":"https://api.github.com/licenses/mit","name":"MIT License","node_id":"MDc6TGljZW5zZTEz","spdx_id":"MIT"},"node_id":"MDEwOlJlcG9zaXRvcnk2OTY5NjIx","private":false,"ssh_url":"git@github.com:mralexgray/AFNetworking.git","svn_url":"https://github.com/mralexgray/AFNetworking","archived":false,"disabled":false,"has_wiki":true,"homepage":"http://afnetworking.com","html_url":"https://github.com/mralexgray/AFNetworking","keys_url":"https://api.github.com/repos/mralexgray/AFNetworking/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AFNetworking/tags","watchers":2,"blobs_url":"https://api.github.com/repos/mralexgray/AFNetworking/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AFNetworking.git","forks_url":"https://api.github.com/repos/mralexgray/AFNetworking/forks","full_name":"mralexgray/AFNetworking","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AFNetworking/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AFNetworking/pulls{/number}","pushed_at":"2014-01-24T07:14:32Z","teams_url":"https://api.github.com/repos/mralexgray/AFNetworking/teams","trees_url":"https://api.github.com/repos/mralexgray/AFNetworking/git/trees{/sha}","created_at":"2012-12-02T17:00:04Z","events_url":"https://api.github.com/repos/mralexgray/AFNetworking/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AFNetworking/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AFNetworking/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AFNetworking/merges","mirror_url":null,"updated_at":"2014-01-24T07:14:33Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AFNetworking/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AFNetworking/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AFNetworking/compare/{base}...{head}","description":"A delightful iOS and OS X networking framework","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AFNetworking/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AFNetworking/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AFNetworking/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AFNetworking/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AFNetworking/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AFNetworking/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AFNetworking/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AFNetworking/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AFNetworking/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AFNetworking/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AFNetworking/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AFNetworking/stargazers","watchers_count":2,"deployments_url":"https://api.github.com/repos/mralexgray/AFNetworking/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AFNetworking/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AFNetworking/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AFNetworking/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AFNetworking/issues/events{/number}","stargazers_count":2,"subscription_url":"https://api.github.com/repos/mralexgray/AFNetworking/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AFNetworking/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AFNetworking/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AFNetworking/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":9485541,"url":"https://api.github.com/repos/mralexgray/AGNSSplitView","fork":true,"name":"AGNSSplitView","size":68,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AGNSSplitView.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnk5NDg1NTQx","private":false,"ssh_url":"git@github.com:mralexgray/AGNSSplitView.git","svn_url":"https://github.com/mralexgray/AGNSSplitView","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/AGNSSplitView","keys_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AGNSSplitView.git","forks_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/forks","full_name":"mralexgray/AGNSSplitView","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/pulls{/number}","pushed_at":"2013-02-26T00:32:32Z","teams_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/teams","trees_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/git/trees{/sha}","created_at":"2013-04-17T00:10:13Z","events_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/merges","mirror_url":null,"updated_at":"2013-04-17T00:10:13Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/compare/{base}...{head}","description":"Simple NSSplitView additions.","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AGNSSplitView/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":12767784,"url":"https://api.github.com/repos/mralexgray/AGScopeBar","fork":true,"name":"AGScopeBar","size":64,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AGScopeBar.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnkxMjc2Nzc4NA==","private":false,"ssh_url":"git@github.com:mralexgray/AGScopeBar.git","svn_url":"https://github.com/mralexgray/AGScopeBar","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/AGScopeBar","keys_url":"https://api.github.com/repos/mralexgray/AGScopeBar/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AGScopeBar/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/AGScopeBar/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AGScopeBar.git","forks_url":"https://api.github.com/repos/mralexgray/AGScopeBar/forks","full_name":"mralexgray/AGScopeBar","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AGScopeBar/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AGScopeBar/pulls{/number}","pushed_at":"2013-05-07T03:35:29Z","teams_url":"https://api.github.com/repos/mralexgray/AGScopeBar/teams","trees_url":"https://api.github.com/repos/mralexgray/AGScopeBar/git/trees{/sha}","created_at":"2013-09-11T21:06:54Z","events_url":"https://api.github.com/repos/mralexgray/AGScopeBar/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AGScopeBar/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AGScopeBar/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AGScopeBar/merges","mirror_url":null,"updated_at":"2013-09-11T21:06:54Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AGScopeBar/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AGScopeBar/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AGScopeBar/compare/{base}...{head}","description":"Custom scope bar implementation for Cocoa","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AGScopeBar/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AGScopeBar/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AGScopeBar/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AGScopeBar/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AGScopeBar/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AGScopeBar/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AGScopeBar/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AGScopeBar/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AGScopeBar/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AGScopeBar/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AGScopeBar/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AGScopeBar/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/AGScopeBar/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AGScopeBar/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AGScopeBar/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AGScopeBar/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AGScopeBar/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/AGScopeBar/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AGScopeBar/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AGScopeBar/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AGScopeBar/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":31829499,"url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin","fork":true,"name":"agvtool-xcode-plugin","size":102,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/agvtool-xcode-plugin.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnkzMTgyOTQ5OQ==","private":false,"ssh_url":"git@github.com:mralexgray/agvtool-xcode-plugin.git","svn_url":"https://github.com/mralexgray/agvtool-xcode-plugin","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/agvtool-xcode-plugin","keys_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/agvtool-xcode-plugin.git","forks_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/forks","full_name":"mralexgray/agvtool-xcode-plugin","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/hooks","pulls_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/pulls{/number}","pushed_at":"2015-03-08T00:04:31Z","teams_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/teams","trees_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/trees{/sha}","created_at":"2015-03-07T22:15:38Z","events_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/merges","mirror_url":null,"updated_at":"2015-03-07T22:15:41Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/compare/{base}...{head}","description":"this is a plugin wrapper for agvtool for xcode.","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":9227846,"url":"https://api.github.com/repos/mralexgray/AHContentBrowser","fork":true,"name":"AHContentBrowser","size":223,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AHContentBrowser.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnk5MjI3ODQ2","private":false,"ssh_url":"git@github.com:mralexgray/AHContentBrowser.git","svn_url":"https://github.com/mralexgray/AHContentBrowser","archived":false,"disabled":false,"has_wiki":true,"homepage":"","html_url":"https://github.com/mralexgray/AHContentBrowser","keys_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AHContentBrowser.git","forks_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/forks","full_name":"mralexgray/AHContentBrowser","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/pulls{/number}","pushed_at":"2013-03-13T17:38:23Z","teams_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/teams","trees_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/git/trees{/sha}","created_at":"2013-04-04T20:56:16Z","events_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/merges","mirror_url":null,"updated_at":"2015-10-22T05:00:24Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/compare/{base}...{head}","description":"A Mac only webview that loads a fast readable version of the website if available.","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AHContentBrowser/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":37430328,"url":"https://api.github.com/repos/mralexgray/AHLaunchCtl","fork":true,"name":"AHLaunchCtl","size":592,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AHLaunchCtl.git","license":{"key":"mit","url":"https://api.github.com/licenses/mit","name":"MIT License","node_id":"MDc6TGljZW5zZTEz","spdx_id":"MIT"},"node_id":"MDEwOlJlcG9zaXRvcnkzNzQzMDMyOA==","private":false,"ssh_url":"git@github.com:mralexgray/AHLaunchCtl.git","svn_url":"https://github.com/mralexgray/AHLaunchCtl","archived":false,"disabled":false,"has_wiki":true,"homepage":"","html_url":"https://github.com/mralexgray/AHLaunchCtl","keys_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AHLaunchCtl.git","forks_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/forks","full_name":"mralexgray/AHLaunchCtl","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/pulls{/number}","pushed_at":"2015-05-26T18:50:48Z","teams_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/teams","trees_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/git/trees{/sha}","created_at":"2015-06-14T21:31:03Z","events_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/merges","mirror_url":null,"updated_at":"2015-06-14T21:31:04Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/compare/{base}...{head}","description":"LaunchD Framework for Cocoa Apps","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AHLaunchCtl/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":9167473,"url":"https://api.github.com/repos/mralexgray/AHLayout","fork":true,"name":"AHLayout","size":359,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AHLayout.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnk5MTY3NDcz","private":false,"ssh_url":"git@github.com:mralexgray/AHLayout.git","svn_url":"https://github.com/mralexgray/AHLayout","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/AHLayout","keys_url":"https://api.github.com/repos/mralexgray/AHLayout/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AHLayout/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/AHLayout/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AHLayout.git","forks_url":"https://api.github.com/repos/mralexgray/AHLayout/forks","full_name":"mralexgray/AHLayout","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AHLayout/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AHLayout/pulls{/number}","pushed_at":"2013-07-08T02:31:14Z","teams_url":"https://api.github.com/repos/mralexgray/AHLayout/teams","trees_url":"https://api.github.com/repos/mralexgray/AHLayout/git/trees{/sha}","created_at":"2013-04-02T10:10:30Z","events_url":"https://api.github.com/repos/mralexgray/AHLayout/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AHLayout/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AHLayout/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AHLayout/merges","mirror_url":null,"updated_at":"2013-07-08T02:31:17Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AHLayout/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AHLayout/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AHLayout/compare/{base}...{head}","description":"AHLayout","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AHLayout/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AHLayout/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AHLayout/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AHLayout/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AHLayout/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AHLayout/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AHLayout/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AHLayout/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AHLayout/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AHLayout/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AHLayout/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AHLayout/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/AHLayout/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AHLayout/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AHLayout/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AHLayout/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AHLayout/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/AHLayout/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AHLayout/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AHLayout/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AHLayout/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":18450201,"url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework","fork":true,"name":"Airmail-Plug-In-Framework","size":888,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/Airmail-Plug-In-Framework.git","license":{"key":"gpl-2.0","url":"https://api.github.com/licenses/gpl-2.0","name":"GNU General Public License v2.0","node_id":"MDc6TGljZW5zZTg=","spdx_id":"GPL-2.0"},"node_id":"MDEwOlJlcG9zaXRvcnkxODQ1MDIwMQ==","private":false,"ssh_url":"git@github.com:mralexgray/Airmail-Plug-In-Framework.git","svn_url":"https://github.com/mralexgray/Airmail-Plug-In-Framework","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/Airmail-Plug-In-Framework","keys_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/keys{/key_id}","language":null,"tags_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/Airmail-Plug-In-Framework.git","forks_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/forks","full_name":"mralexgray/Airmail-Plug-In-Framework","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/hooks","pulls_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/pulls{/number}","pushed_at":"2014-03-27T15:42:19Z","teams_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/teams","trees_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/trees{/sha}","created_at":"2014-04-04T19:33:54Z","events_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/merges","mirror_url":null,"updated_at":"2014-11-23T19:31:04Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/compare/{base}...{head}","description":null,"forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":5203219,"url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API","fork":true,"name":"AJS-iTunes-API","size":103,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AJS-iTunes-API.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnk1MjAzMjE5","private":false,"ssh_url":"git@github.com:mralexgray/AJS-iTunes-API.git","svn_url":"https://github.com/mralexgray/AJS-iTunes-API","archived":false,"disabled":false,"has_wiki":true,"homepage":"","html_url":"https://github.com/mralexgray/AJS-iTunes-API","keys_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/tags","watchers":2,"blobs_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AJS-iTunes-API.git","forks_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/forks","full_name":"mralexgray/AJS-iTunes-API","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/pulls{/number}","pushed_at":"2011-10-30T22:26:48Z","teams_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/teams","trees_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/trees{/sha}","created_at":"2012-07-27T10:20:58Z","events_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/merges","mirror_url":null,"updated_at":"2013-01-11T11:00:05Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/compare/{base}...{head}","description":"Cocoa wrapper for the iTunes search API - for iOS and Mac OSX projects","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/stargazers","watchers_count":2,"deployments_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/events{/number}","stargazers_count":2,"subscription_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AJS-iTunes-API/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":10093801,"url":"https://api.github.com/repos/mralexgray/Alcatraz","fork":true,"name":"Alcatraz","size":3668,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/Alcatraz.git","license":{"key":"mit","url":"https://api.github.com/licenses/mit","name":"MIT License","node_id":"MDc6TGljZW5zZTEz","spdx_id":"MIT"},"node_id":"MDEwOlJlcG9zaXRvcnkxMDA5MzgwMQ==","private":false,"ssh_url":"git@github.com:mralexgray/Alcatraz.git","svn_url":"https://github.com/mralexgray/Alcatraz","archived":false,"disabled":false,"has_wiki":false,"homepage":"mneorr.github.com/Alcatraz","html_url":"https://github.com/mralexgray/Alcatraz","keys_url":"https://api.github.com/repos/mralexgray/Alcatraz/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/Alcatraz/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/Alcatraz/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/Alcatraz.git","forks_url":"https://api.github.com/repos/mralexgray/Alcatraz/forks","full_name":"mralexgray/Alcatraz","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/Alcatraz/hooks","pulls_url":"https://api.github.com/repos/mralexgray/Alcatraz/pulls{/number}","pushed_at":"2014-03-19T12:50:37Z","teams_url":"https://api.github.com/repos/mralexgray/Alcatraz/teams","trees_url":"https://api.github.com/repos/mralexgray/Alcatraz/git/trees{/sha}","created_at":"2013-05-16T04:41:13Z","events_url":"https://api.github.com/repos/mralexgray/Alcatraz/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/Alcatraz/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/Alcatraz/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/Alcatraz/merges","mirror_url":null,"updated_at":"2014-03-19T20:38:35Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/Alcatraz/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/Alcatraz/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/Alcatraz/compare/{base}...{head}","description":"The most awesome (and only) Xcode package manager!","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/Alcatraz/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/Alcatraz/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/Alcatraz/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/Alcatraz/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/Alcatraz/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/Alcatraz/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/Alcatraz/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/Alcatraz/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/Alcatraz/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/Alcatraz/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/Alcatraz/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/Alcatraz/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/Alcatraz/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/Alcatraz/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/Alcatraz/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/Alcatraz/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/Alcatraz/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/Alcatraz/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/Alcatraz/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/Alcatraz/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/Alcatraz/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":12916552,"url":"https://api.github.com/repos/mralexgray/alcatraz-packages","fork":true,"name":"alcatraz-packages","size":826,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/alcatraz-packages.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnkxMjkxNjU1Mg==","private":false,"ssh_url":"git@github.com:mralexgray/alcatraz-packages.git","svn_url":"https://github.com/mralexgray/alcatraz-packages","archived":false,"disabled":false,"has_wiki":true,"homepage":"mneorr.github.com/Alcatraz","html_url":"https://github.com/mralexgray/alcatraz-packages","keys_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/keys{/key_id}","language":"Ruby","tags_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/alcatraz-packages.git","forks_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/forks","full_name":"mralexgray/alcatraz-packages","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/hooks","pulls_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/pulls{/number}","pushed_at":"2015-12-14T16:21:31Z","teams_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/teams","trees_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/git/trees{/sha}","created_at":"2013-09-18T07:15:24Z","events_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/merges","mirror_url":null,"updated_at":"2015-11-10T20:52:30Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/compare/{base}...{head}","description":"Package list repository for Alcatraz","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/alcatraz-packages/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":44278362,"url":"https://api.github.com/repos/mralexgray/alexicons","fork":true,"name":"alexicons","size":257,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/alexicons.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnk0NDI3ODM2Mg==","private":false,"ssh_url":"git@github.com:mralexgray/alexicons.git","svn_url":"https://github.com/mralexgray/alexicons","archived":false,"disabled":false,"has_wiki":false,"homepage":null,"html_url":"https://github.com/mralexgray/alexicons","keys_url":"https://api.github.com/repos/mralexgray/alexicons/keys{/key_id}","language":"CoffeeScript","tags_url":"https://api.github.com/repos/mralexgray/alexicons/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/alexicons/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/alexicons.git","forks_url":"https://api.github.com/repos/mralexgray/alexicons/forks","full_name":"mralexgray/alexicons","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/alexicons/hooks","pulls_url":"https://api.github.com/repos/mralexgray/alexicons/pulls{/number}","pushed_at":"2015-10-16T03:57:51Z","teams_url":"https://api.github.com/repos/mralexgray/alexicons/teams","trees_url":"https://api.github.com/repos/mralexgray/alexicons/git/trees{/sha}","created_at":"2015-10-14T21:49:39Z","events_url":"https://api.github.com/repos/mralexgray/alexicons/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/alexicons/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/alexicons/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/alexicons/merges","mirror_url":null,"updated_at":"2015-10-15T06:20:08Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/alexicons/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/alexicons/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/alexicons/compare/{base}...{head}","description":"Get popular cat names","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/alexicons/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/alexicons/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/alexicons/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/alexicons/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/alexicons/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/alexicons/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/alexicons/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/alexicons/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/alexicons/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/alexicons/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/alexicons/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/alexicons/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/alexicons/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/alexicons/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/alexicons/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/alexicons/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/alexicons/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/alexicons/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/alexicons/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/alexicons/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/alexicons/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":10476467,"url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate","fork":true,"name":"Alfred-Google-Translate","size":103,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/Alfred-Google-Translate.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnkxMDQ3NjQ2Nw==","private":false,"ssh_url":"git@github.com:mralexgray/Alfred-Google-Translate.git","svn_url":"https://github.com/mralexgray/Alfred-Google-Translate","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/Alfred-Google-Translate","keys_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/keys{/key_id}","language":"Shell","tags_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/Alfred-Google-Translate.git","forks_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/forks","full_name":"mralexgray/Alfred-Google-Translate","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/hooks","pulls_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/pulls{/number}","pushed_at":"2013-01-12T19:39:03Z","teams_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/teams","trees_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/trees{/sha}","created_at":"2013-06-04T10:45:10Z","events_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/merges","mirror_url":null,"updated_at":"2013-06-04T10:45:10Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/compare/{base}...{head}","description":"Extension for Alfred that will do a Google translate for you","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/Alfred-Google-Translate/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":5524019,"url":"https://api.github.com/repos/mralexgray/Amber","fork":false,"name":"Amber","size":48,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/Amber.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnk1NTI0MDE5","private":false,"ssh_url":"git@github.com:mralexgray/Amber.git","svn_url":"https://github.com/mralexgray/Amber","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/Amber","keys_url":"https://api.github.com/repos/mralexgray/Amber/keys{/key_id}","language":null,"tags_url":"https://api.github.com/repos/mralexgray/Amber/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/Amber/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/Amber.git","forks_url":"https://api.github.com/repos/mralexgray/Amber/forks","full_name":"mralexgray/Amber","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/Amber/hooks","pulls_url":"https://api.github.com/repos/mralexgray/Amber/pulls{/number}","pushed_at":"2012-08-23T10:38:25Z","teams_url":"https://api.github.com/repos/mralexgray/Amber/teams","trees_url":"https://api.github.com/repos/mralexgray/Amber/git/trees{/sha}","created_at":"2012-08-23T10:38:24Z","events_url":"https://api.github.com/repos/mralexgray/Amber/events","has_issues":true,"issues_url":"https://api.github.com/repos/mralexgray/Amber/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/Amber/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/Amber/merges","mirror_url":null,"updated_at":"2013-01-11T22:25:35Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/Amber/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/Amber/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/Amber/compare/{base}...{head}","description":"Fork of the difficult-to-deal-with Amber.framework","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/Amber/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/Amber/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/Amber/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/Amber/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/Amber/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/Amber/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/Amber/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/Amber/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/Amber/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/Amber/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/Amber/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/Amber/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/Amber/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/Amber/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/Amber/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/Amber/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/Amber/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/Amber/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/Amber/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/Amber/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/Amber/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":10809060,"url":"https://api.github.com/repos/mralexgray/Amethyst","fork":true,"name":"Amethyst","size":12623,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/Amethyst.git","license":{"key":"mit","url":"https://api.github.com/licenses/mit","name":"MIT License","node_id":"MDc6TGljZW5zZTEz","spdx_id":"MIT"},"node_id":"MDEwOlJlcG9zaXRvcnkxMDgwOTA2MA==","private":false,"ssh_url":"git@github.com:mralexgray/Amethyst.git","svn_url":"https://github.com/mralexgray/Amethyst","archived":false,"disabled":false,"has_wiki":true,"homepage":"http://ianyh.github.io/Amethyst/","html_url":"https://github.com/mralexgray/Amethyst","keys_url":"https://api.github.com/repos/mralexgray/Amethyst/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/Amethyst/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/Amethyst/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/Amethyst.git","forks_url":"https://api.github.com/repos/mralexgray/Amethyst/forks","full_name":"mralexgray/Amethyst","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/Amethyst/hooks","pulls_url":"https://api.github.com/repos/mralexgray/Amethyst/pulls{/number}","pushed_at":"2013-06-18T02:54:11Z","teams_url":"https://api.github.com/repos/mralexgray/Amethyst/teams","trees_url":"https://api.github.com/repos/mralexgray/Amethyst/git/trees{/sha}","created_at":"2013-06-20T00:34:22Z","events_url":"https://api.github.com/repos/mralexgray/Amethyst/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/Amethyst/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/Amethyst/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/Amethyst/merges","mirror_url":null,"updated_at":"2013-06-20T00:34:22Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/Amethyst/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/Amethyst/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/Amethyst/compare/{base}...{head}","description":"Tiling window manager for OS X.","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/Amethyst/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/Amethyst/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/Amethyst/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/Amethyst/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/Amethyst/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/Amethyst/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/Amethyst/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/Amethyst/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/Amethyst/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/Amethyst/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/Amethyst/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/Amethyst/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/Amethyst/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/Amethyst/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/Amethyst/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/Amethyst/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/Amethyst/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/Amethyst/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/Amethyst/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/Amethyst/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/Amethyst/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":3684286,"url":"https://api.github.com/repos/mralexgray/Animated-Paths","fork":true,"name":"Animated-Paths","size":411,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/Animated-Paths.git","license":{"key":"other","url":null,"name":"Other","node_id":"MDc6TGljZW5zZTA=","spdx_id":"NOASSERTION"},"node_id":"MDEwOlJlcG9zaXRvcnkzNjg0Mjg2","private":false,"ssh_url":"git@github.com:mralexgray/Animated-Paths.git","svn_url":"https://github.com/mralexgray/Animated-Paths","archived":false,"disabled":false,"has_wiki":true,"homepage":"http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/","html_url":"https://github.com/mralexgray/Animated-Paths","keys_url":"https://api.github.com/repos/mralexgray/Animated-Paths/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/Animated-Paths/tags","watchers":2,"blobs_url":"https://api.github.com/repos/mralexgray/Animated-Paths/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/Animated-Paths.git","forks_url":"https://api.github.com/repos/mralexgray/Animated-Paths/forks","full_name":"mralexgray/Animated-Paths","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/Animated-Paths/hooks","pulls_url":"https://api.github.com/repos/mralexgray/Animated-Paths/pulls{/number}","pushed_at":"2010-12-30T20:56:51Z","teams_url":"https://api.github.com/repos/mralexgray/Animated-Paths/teams","trees_url":"https://api.github.com/repos/mralexgray/Animated-Paths/git/trees{/sha}","created_at":"2012-03-11T02:56:38Z","events_url":"https://api.github.com/repos/mralexgray/Animated-Paths/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/Animated-Paths/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/Animated-Paths/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/Animated-Paths/merges","mirror_url":null,"updated_at":"2013-01-08T04:12:21Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/Animated-Paths/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/Animated-Paths/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/Animated-Paths/compare/{base}...{head}","description":"Demo project: Animating the drawing of a CGPath with CAShapeLayer.strokeEnd","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/Animated-Paths/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/Animated-Paths/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/Animated-Paths/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/Animated-Paths/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/Animated-Paths/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/Animated-Paths/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/Animated-Paths/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/Animated-Paths/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/Animated-Paths/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/Animated-Paths/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/Animated-Paths/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/Animated-Paths/stargazers","watchers_count":2,"deployments_url":"https://api.github.com/repos/mralexgray/Animated-Paths/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/Animated-Paths/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/Animated-Paths/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/Animated-Paths/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/Animated-Paths/issues/events{/number}","stargazers_count":2,"subscription_url":"https://api.github.com/repos/mralexgray/Animated-Paths/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/Animated-Paths/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/Animated-Paths/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/Animated-Paths/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":16662874,"url":"https://api.github.com/repos/mralexgray/AnsiLove.framework","fork":true,"name":"AnsiLove.framework","size":3780,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AnsiLove.framework.git","license":{"key":"other","url":null,"name":"Other","node_id":"MDc6TGljZW5zZTA=","spdx_id":"NOASSERTION"},"node_id":"MDEwOlJlcG9zaXRvcnkxNjY2Mjg3NA==","private":false,"ssh_url":"git@github.com:mralexgray/AnsiLove.framework.git","svn_url":"https://github.com/mralexgray/AnsiLove.framework","archived":false,"disabled":false,"has_wiki":false,"homepage":"http://byteproject.net","html_url":"https://github.com/mralexgray/AnsiLove.framework","keys_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/keys{/key_id}","language":"M","tags_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AnsiLove.framework.git","forks_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/forks","full_name":"mralexgray/AnsiLove.framework","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/pulls{/number}","pushed_at":"2013-10-04T14:08:38Z","teams_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/teams","trees_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/git/trees{/sha}","created_at":"2014-02-09T08:30:27Z","events_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/merges","mirror_url":null,"updated_at":"2015-01-13T20:41:46Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/compare/{base}...{head}","description":"Cocoa Framework for rendering ANSi / ASCII art","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AnsiLove.framework/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":5189563,"url":"https://api.github.com/repos/mralexgray/ANTrackBar","fork":true,"name":"ANTrackBar","size":94,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/ANTrackBar.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnk1MTg5NTYz","private":false,"ssh_url":"git@github.com:mralexgray/ANTrackBar.git","svn_url":"https://github.com/mralexgray/ANTrackBar","archived":false,"disabled":false,"has_wiki":true,"homepage":"","html_url":"https://github.com/mralexgray/ANTrackBar","keys_url":"https://api.github.com/repos/mralexgray/ANTrackBar/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/ANTrackBar/tags","watchers":2,"blobs_url":"https://api.github.com/repos/mralexgray/ANTrackBar/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/ANTrackBar.git","forks_url":"https://api.github.com/repos/mralexgray/ANTrackBar/forks","full_name":"mralexgray/ANTrackBar","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/ANTrackBar/hooks","pulls_url":"https://api.github.com/repos/mralexgray/ANTrackBar/pulls{/number}","pushed_at":"2012-03-09T01:40:02Z","teams_url":"https://api.github.com/repos/mralexgray/ANTrackBar/teams","trees_url":"https://api.github.com/repos/mralexgray/ANTrackBar/git/trees{/sha}","created_at":"2012-07-26T08:17:22Z","events_url":"https://api.github.com/repos/mralexgray/ANTrackBar/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/ANTrackBar/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/ANTrackBar/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/ANTrackBar/merges","mirror_url":null,"updated_at":"2013-01-11T10:29:56Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/ANTrackBar/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/ANTrackBar/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/ANTrackBar/compare/{base}...{head}","description":"An easy-to-use Cocoa seek bar with a pleasing appearance","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/ANTrackBar/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/ANTrackBar/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/ANTrackBar/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/ANTrackBar/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/ANTrackBar/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/ANTrackBar/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/ANTrackBar/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/ANTrackBar/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/ANTrackBar/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/ANTrackBar/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/ANTrackBar/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/ANTrackBar/stargazers","watchers_count":2,"deployments_url":"https://api.github.com/repos/mralexgray/ANTrackBar/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/ANTrackBar/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/ANTrackBar/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/ANTrackBar/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/ANTrackBar/issues/events{/number}","stargazers_count":2,"subscription_url":"https://api.github.com/repos/mralexgray/ANTrackBar/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/ANTrackBar/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/ANTrackBar/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/ANTrackBar/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":16240152,"url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C","fork":true,"name":"AOP-in-Objective-C","size":340,"forks":1,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/AOP-in-Objective-C.git","license":null,"node_id":"MDEwOlJlcG9zaXRvcnkxNjI0MDE1Mg==","private":false,"ssh_url":"git@github.com:mralexgray/AOP-in-Objective-C.git","svn_url":"https://github.com/mralexgray/AOP-in-Objective-C","archived":false,"disabled":false,"has_wiki":true,"homepage":"http://innoli.hu/en/opensource/","html_url":"https://github.com/mralexgray/AOP-in-Objective-C","keys_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/keys{/key_id}","language":"Objective-C","tags_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/AOP-in-Objective-C.git","forks_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/forks","full_name":"mralexgray/AOP-in-Objective-C","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/hooks","pulls_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/pulls{/number}","pushed_at":"2014-02-12T16:23:20Z","teams_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/teams","trees_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/trees{/sha}","created_at":"2014-01-25T21:18:04Z","events_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/merges","mirror_url":null,"updated_at":"2014-06-19T19:38:12Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/compare/{base}...{head}","description":"An NSProxy based library for easily enabling AOP like functionality in Objective-C.","forks_count":1,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/languages","default_branch":"travis-coveralls","milestones_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/AOP-in-Objective-C/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":13141936,"url":"https://api.github.com/repos/mralexgray/Apaxy","fork":true,"name":"Apaxy","size":113,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/Apaxy.git","license":{"key":"unlicense","url":"https://api.github.com/licenses/unlicense","name":"The Unlicense","node_id":"MDc6TGljZW5zZTE1","spdx_id":"Unlicense"},"node_id":"MDEwOlJlcG9zaXRvcnkxMzE0MTkzNg==","private":false,"ssh_url":"git@github.com:mralexgray/Apaxy.git","svn_url":"https://github.com/mralexgray/Apaxy","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/Apaxy","keys_url":"https://api.github.com/repos/mralexgray/Apaxy/keys{/key_id}","language":"CSS","tags_url":"https://api.github.com/repos/mralexgray/Apaxy/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/Apaxy/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/Apaxy.git","forks_url":"https://api.github.com/repos/mralexgray/Apaxy/forks","full_name":"mralexgray/Apaxy","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/Apaxy/hooks","pulls_url":"https://api.github.com/repos/mralexgray/Apaxy/pulls{/number}","pushed_at":"2013-08-02T16:01:32Z","teams_url":"https://api.github.com/repos/mralexgray/Apaxy/teams","trees_url":"https://api.github.com/repos/mralexgray/Apaxy/git/trees{/sha}","created_at":"2013-09-27T05:05:35Z","events_url":"https://api.github.com/repos/mralexgray/Apaxy/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/Apaxy/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/Apaxy/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/Apaxy/merges","mirror_url":null,"updated_at":"2018-02-16T21:40:24Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/Apaxy/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/Apaxy/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/Apaxy/compare/{base}...{head}","description":"A simple, customisable theme for your Apache directory listing.","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/Apaxy/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/Apaxy/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/Apaxy/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/Apaxy/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/Apaxy/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/Apaxy/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/Apaxy/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/Apaxy/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/Apaxy/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/Apaxy/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/Apaxy/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/Apaxy/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/Apaxy/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/Apaxy/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/Apaxy/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/Apaxy/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/Apaxy/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/Apaxy/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/Apaxy/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/Apaxy/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/Apaxy/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false},{"id":20027360,"url":"https://api.github.com/repos/mralexgray/app","fork":true,"name":"app","size":1890,"forks":0,"owner":{"id":262517,"url":"https://api.github.com/users/mralexgray","type":"User","login":"mralexgray","node_id":"MDQ6VXNlcjI2MjUxNw==","html_url":"https://github.com/mralexgray","gists_url":"https://api.github.com/users/mralexgray/gists{/gist_id}","repos_url":"https://api.github.com/users/mralexgray/repos","avatar_url":"https://avatars.githubusercontent.com/u/262517?v=4","events_url":"https://api.github.com/users/mralexgray/events{/privacy}","site_admin":false,"gravatar_id":"","starred_url":"https://api.github.com/users/mralexgray/starred{/owner}{/repo}","followers_url":"https://api.github.com/users/mralexgray/followers","following_url":"https://api.github.com/users/mralexgray/following{/other_user}","organizations_url":"https://api.github.com/users/mralexgray/orgs","subscriptions_url":"https://api.github.com/users/mralexgray/subscriptions","received_events_url":"https://api.github.com/users/mralexgray/received_events"},"topics":[],"git_url":"git://github.com/mralexgray/app.git","license":{"key":"other","url":null,"name":"Other","node_id":"MDc6TGljZW5zZTA=","spdx_id":"NOASSERTION"},"node_id":"MDEwOlJlcG9zaXRvcnkyMDAyNzM2MA==","private":false,"ssh_url":"git@github.com:mralexgray/app.git","svn_url":"https://github.com/mralexgray/app","archived":false,"disabled":false,"has_wiki":true,"homepage":null,"html_url":"https://github.com/mralexgray/app","keys_url":"https://api.github.com/repos/mralexgray/app/keys{/key_id}","language":"JavaScript","tags_url":"https://api.github.com/repos/mralexgray/app/tags","watchers":0,"blobs_url":"https://api.github.com/repos/mralexgray/app/git/blobs{/sha}","clone_url":"https://github.com/mralexgray/app.git","forks_url":"https://api.github.com/repos/mralexgray/app/forks","full_name":"mralexgray/app","has_pages":false,"hooks_url":"https://api.github.com/repos/mralexgray/app/hooks","pulls_url":"https://api.github.com/repos/mralexgray/app/pulls{/number}","pushed_at":"2014-05-20T19:51:38Z","teams_url":"https://api.github.com/repos/mralexgray/app/teams","trees_url":"https://api.github.com/repos/mralexgray/app/git/trees{/sha}","created_at":"2014-05-21T15:54:20Z","events_url":"https://api.github.com/repos/mralexgray/app/events","has_issues":false,"issues_url":"https://api.github.com/repos/mralexgray/app/issues{/number}","labels_url":"https://api.github.com/repos/mralexgray/app/labels{/name}","merges_url":"https://api.github.com/repos/mralexgray/app/merges","mirror_url":null,"updated_at":"2014-05-21T15:54:22Z","visibility":"public","archive_url":"https://api.github.com/repos/mralexgray/app/{archive_format}{/ref}","commits_url":"https://api.github.com/repos/mralexgray/app/commits{/sha}","compare_url":"https://api.github.com/repos/mralexgray/app/compare/{base}...{head}","description":"Instant mobile web app creation","forks_count":0,"is_template":false,"open_issues":0,"branches_url":"https://api.github.com/repos/mralexgray/app/branches{/branch}","comments_url":"https://api.github.com/repos/mralexgray/app/comments{/number}","contents_url":"https://api.github.com/repos/mralexgray/app/contents/{+path}","git_refs_url":"https://api.github.com/repos/mralexgray/app/git/refs{/sha}","git_tags_url":"https://api.github.com/repos/mralexgray/app/git/tags{/sha}","has_projects":true,"releases_url":"https://api.github.com/repos/mralexgray/app/releases{/id}","statuses_url":"https://api.github.com/repos/mralexgray/app/statuses/{sha}","allow_forking":true,"assignees_url":"https://api.github.com/repos/mralexgray/app/assignees{/user}","downloads_url":"https://api.github.com/repos/mralexgray/app/downloads","has_downloads":true,"languages_url":"https://api.github.com/repos/mralexgray/app/languages","default_branch":"master","milestones_url":"https://api.github.com/repos/mralexgray/app/milestones{/number}","stargazers_url":"https://api.github.com/repos/mralexgray/app/stargazers","watchers_count":0,"deployments_url":"https://api.github.com/repos/mralexgray/app/deployments","git_commits_url":"https://api.github.com/repos/mralexgray/app/git/commits{/sha}","subscribers_url":"https://api.github.com/repos/mralexgray/app/subscribers","contributors_url":"https://api.github.com/repos/mralexgray/app/contributors","issue_events_url":"https://api.github.com/repos/mralexgray/app/issues/events{/number}","stargazers_count":0,"subscription_url":"https://api.github.com/repos/mralexgray/app/subscription","collaborators_url":"https://api.github.com/repos/mralexgray/app/collaborators{/collaborator}","issue_comment_url":"https://api.github.com/repos/mralexgray/app/issues/comments{/number}","notifications_url":"https://api.github.com/repos/mralexgray/app/notifications{?since,all,participating}","open_issues_count":0,"web_commit_signoff_required":false}],"name":"Shirt","revenue":4.99},"receivedAt":"2022-08-18T08:43:13.521+05:30","request_ip":"[::1]","anonymousId":"anon-id-new","originalTimestamp":"2022-08-18T08:43:15.539+05:30"},{"name":"Page View","type":"page","sentAt":"2022-08-18T08:43:15.539+05:30","userId":"identified user id","context":{"ip":"14.5.67.21","library":{"name":"http"}},"rudderId":"daf823fb-e8d3-413a-8313-d34cd756f968","messageId":"5f58d1f7-cbd6-4bff-8571-9933be7210b1","timestamp":"2020-02-02T00:23:09.544Z","properties":{"path":"/","title":"Home"},"receivedAt":"2022-08-18T08:43:13.521+05:30","request_ip":"[::1]","anonymousId":"anon-id-new","originalTimestamp":"2022-08-18T08:43:15.539+05:30"}]', + destConfig: { + clientContext: '', + lambda: 'testFunction', + invocationType: 'Event', + }, + }, + metadata: [ + { + userId: 'anon-id-new<<>>identified user id', + jobId: 32, + sourceId: '2DTlLPQxignYp4ag9sISgGN2uY7', + destinationId: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + attemptNum: 0, + receivedAt: '2022-08-18T08:43:13.521+05:30', + createdAt: '2022-08-18T03:13:15.549Z', + firstAttemptedAt: '', + transformAt: 'router', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + secret: null, + jobsT: { + UUID: 'dc239cd1-bef4-4999-88e1-7332c64bf78c', + JobID: 32, + UserID: 'anon-id-new<<>>identified user id', + CreatedAt: '2022-08-18T03:13:15.549078Z', + ExpireAt: '2022-08-18T03:13:15.549078Z', + CustomVal: 'LAMBDA', + EventCount: 1, + EventPayload: { + type: 'track', + event: 'Product Purchased new', + sentAt: '2022-08-18T08:43:15.539+05:30', + userId: 'identified user id', + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + messageId: '9f8fb785-c720-4381-a009-bf22a13f4ced', + timestamp: '2020-02-02T00:23:09.544Z', + properties: { + data: [ + { + id: 6104546, + url: 'https://api.github.com/repos/mralexgray/-REPONAME', + fork: false, + name: '-REPONAME', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/-REPONAME.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk2MTA0NTQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/-REPONAME.git', + svn_url: 'https://github.com/mralexgray/-REPONAME', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/-REPONAME', + keys_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/-REPONAME/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/-REPONAME.git', + forks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/forks', + full_name: 'mralexgray/-REPONAME', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/pulls{/number}', + pushed_at: '2012-10-06T16:37:39Z', + teams_url: 'https://api.github.com/repos/mralexgray/-REPONAME/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/trees{/sha}', + created_at: '2012-10-06T16:37:39Z', + events_url: 'https://api.github.com/repos/mralexgray/-REPONAME/events', + has_issues: true, + issues_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/-REPONAME/merges', + mirror_url: null, + updated_at: '2013-01-12T13:39:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 104510411, + url: 'https://api.github.com/repos/mralexgray/...', + fork: true, + name: '...', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/....git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ1MTA0MTE=', + private: false, + ssh_url: 'git@github.com:mralexgray/....git', + svn_url: 'https://github.com/mralexgray/...', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'https://driesvints.com/blog/getting-started-with-dotfiles', + html_url: 'https://github.com/mralexgray/...', + keys_url: 'https://api.github.com/repos/mralexgray/.../keys{/key_id}', + language: 'Shell', + tags_url: 'https://api.github.com/repos/mralexgray/.../tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/.../git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/....git', + forks_url: 'https://api.github.com/repos/mralexgray/.../forks', + full_name: 'mralexgray/...', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/.../hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/.../pulls{/number}', + pushed_at: '2017-09-15T08:27:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/.../teams', + trees_url: + 'https://api.github.com/repos/mralexgray/.../git/trees{/sha}', + created_at: '2017-09-22T19:19:42Z', + events_url: 'https://api.github.com/repos/mralexgray/.../events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/.../issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/.../labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/.../merges', + mirror_url: null, + updated_at: '2017-09-22T19:20:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/.../{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/.../commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/.../compare/{base}...{head}', + description: ':computer: Public repo for my personal dotfiles.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/.../branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/.../comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/.../contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/.../git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/.../git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/.../releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/.../statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/.../assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/.../downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/.../languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/.../milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/.../stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/.../deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/.../git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/.../subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/.../contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/.../issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/.../subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/.../collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/.../issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/.../notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 58656723, + url: 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol', + fork: true, + name: '2200087-Serial-Protocol', + size: 41, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/2200087-Serial-Protocol.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1ODY1NjcyMw==', + private: false, + ssh_url: 'git@github.com:mralexgray/2200087-Serial-Protocol.git', + svn_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://daviddworken.com', + html_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + keys_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/keys{/key_id}', + language: 'Python', + tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/2200087-Serial-Protocol.git', + forks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/forks', + full_name: 'mralexgray/2200087-Serial-Protocol', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/pulls{/number}', + pushed_at: '2016-05-12T16:07:24Z', + teams_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/trees{/sha}', + created_at: '2016-05-12T16:05:28Z', + events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/merges', + mirror_url: null, + updated_at: '2016-05-12T16:05:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/compare/{base}...{head}', + description: + "A reverse engineered protocol description and accompanying code for Radioshack's 2200087 multimeter", + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13121042, + url: 'https://api.github.com/repos/mralexgray/ace', + fork: true, + name: 'ace', + size: 21080, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ace.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzEyMTA0Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/ace.git', + svn_url: 'https://github.com/mralexgray/ace', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ace.c9.io', + html_url: 'https://github.com/mralexgray/ace', + keys_url: 'https://api.github.com/repos/mralexgray/ace/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/ace/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ace/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ace.git', + forks_url: 'https://api.github.com/repos/mralexgray/ace/forks', + full_name: 'mralexgray/ace', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ace/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/ace/pulls{/number}', + pushed_at: '2013-10-26T12:34:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/ace/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ace/git/trees{/sha}', + created_at: '2013-09-26T11:58:10Z', + events_url: 'https://api.github.com/repos/mralexgray/ace/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ace/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/ace/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ace/merges', + mirror_url: null, + updated_at: '2013-10-26T12:34:49Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ace/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ace/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ace/compare/{base}...{head}', + description: 'Ace (Ajax.org Cloud9 Editor)', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ace/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ace/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ace/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ace/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ace/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ace/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ace/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ace/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/ace/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/ace/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ace/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ace/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ace/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ace/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ace/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ace/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ace/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ace/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ace/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ace/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ace/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10791045, + url: 'https://api.github.com/repos/mralexgray/ACEView', + fork: true, + name: 'ACEView', + size: 1733, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ACEView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDc5MTA0NQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ACEView.git', + svn_url: 'https://github.com/mralexgray/ACEView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/ACEView', + keys_url: + 'https://api.github.com/repos/mralexgray/ACEView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ACEView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ACEView.git', + forks_url: 'https://api.github.com/repos/mralexgray/ACEView/forks', + full_name: 'mralexgray/ACEView', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ACEView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ACEView/pulls{/number}', + pushed_at: '2014-05-09T01:36:23Z', + teams_url: 'https://api.github.com/repos/mralexgray/ACEView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/trees{/sha}', + created_at: '2013-06-19T12:15:04Z', + events_url: 'https://api.github.com/repos/mralexgray/ACEView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ACEView/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ACEView/merges', + mirror_url: null, + updated_at: '2015-11-24T01:14:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ACEView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ACEView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ACEView/compare/{base}...{head}', + description: 'Use the wonderful ACE editor in your Cocoa applications', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ACEView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ACEView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ACEView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ACEView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ACEView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ACEView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ACEView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ACEView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ACEView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ACEView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ACEView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ACEView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ACEView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ACEView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13623648, + url: 'https://api.github.com/repos/mralexgray/ActiveLog', + fork: true, + name: 'ActiveLog', + size: 60, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ActiveLog.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzYyMzY0OA==', + private: false, + ssh_url: 'git@github.com:mralexgray/ActiveLog.git', + svn_url: 'https://github.com/mralexgray/ActiveLog', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://deepitpro.com/en/articles/ActiveLog/info/', + html_url: 'https://github.com/mralexgray/ActiveLog', + keys_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ActiveLog/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ActiveLog.git', + forks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/forks', + full_name: 'mralexgray/ActiveLog', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/pulls{/number}', + pushed_at: '2011-07-03T06:28:59Z', + teams_url: 'https://api.github.com/repos/mralexgray/ActiveLog/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/trees{/sha}', + created_at: '2013-10-16T15:52:37Z', + events_url: 'https://api.github.com/repos/mralexgray/ActiveLog/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ActiveLog/merges', + mirror_url: null, + updated_at: '2013-10-16T15:52:37Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/compare/{base}...{head}', + description: 'Shut up all logs with active filter.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9716210, + url: 'https://api.github.com/repos/mralexgray/adium', + fork: false, + name: 'adium', + size: 277719, + forks: 37, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/adium.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk5NzE2MjEw', + private: false, + ssh_url: 'git@github.com:mralexgray/adium.git', + svn_url: 'https://github.com/mralexgray/adium', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/adium', + keys_url: 'https://api.github.com/repos/mralexgray/adium/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/adium/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/adium/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/adium.git', + forks_url: 'https://api.github.com/repos/mralexgray/adium/forks', + full_name: 'mralexgray/adium', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/adium/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/adium/pulls{/number}', + pushed_at: '2013-04-26T16:43:53Z', + teams_url: 'https://api.github.com/repos/mralexgray/adium/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/adium/git/trees{/sha}', + created_at: '2013-04-27T14:59:33Z', + events_url: 'https://api.github.com/repos/mralexgray/adium/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/adium/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/adium/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/adium/merges', + mirror_url: null, + updated_at: '2019-12-11T06:51:45Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/adium/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/adium/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/adium/compare/{base}...{head}', + description: 'Official mirror of hg.adium.im', + forks_count: 37, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/adium/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/adium/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/adium/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/adium/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/adium/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/adium/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/adium/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/adium/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/adium/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/adium/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/adium/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/adium/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/adium/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/adium/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/adium/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/adium/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/adium/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/adium/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/adium/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/adium/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/adium/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12752329, + url: 'https://api.github.com/repos/mralexgray/ADLivelyTableView', + fork: true, + name: 'ADLivelyTableView', + size: 73, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ADLivelyTableView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc1MjMyOQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ADLivelyTableView.git', + svn_url: 'https://github.com/mralexgray/ADLivelyTableView', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://applidium.com/en/news/lively_uitableview/', + html_url: 'https://github.com/mralexgray/ADLivelyTableView', + keys_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ADLivelyTableView.git', + forks_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/forks', + full_name: 'mralexgray/ADLivelyTableView', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/pulls{/number}', + pushed_at: '2012-05-10T10:40:15Z', + teams_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/trees{/sha}', + created_at: '2013-09-11T09:18:01Z', + events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/merges', + mirror_url: null, + updated_at: '2013-09-11T09:18:03Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/compare/{base}...{head}', + description: 'Lively UITableView', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5697379, + url: 'https://api.github.com/repos/mralexgray/AFIncrementalStore', + fork: true, + name: 'AFIncrementalStore', + size: 139, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFIncrementalStore.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1Njk3Mzc5', + private: false, + ssh_url: 'git@github.com:mralexgray/AFIncrementalStore.git', + svn_url: 'https://github.com/mralexgray/AFIncrementalStore', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AFIncrementalStore', + keys_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFIncrementalStore.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/forks', + full_name: 'mralexgray/AFIncrementalStore', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/pulls{/number}', + pushed_at: '2012-09-01T22:46:25Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/trees{/sha}', + created_at: '2012-09-06T04:20:33Z', + events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/merges', + mirror_url: null, + updated_at: '2013-01-12T03:15:29Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/compare/{base}...{head}', + description: 'Core Data Persistence with AFNetworking, Done Right', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 6969621, + url: 'https://api.github.com/repos/mralexgray/AFNetworking', + fork: true, + name: 'AFNetworking', + size: 4341, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFNetworking.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk2OTY5NjIx', + private: false, + ssh_url: 'git@github.com:mralexgray/AFNetworking.git', + svn_url: 'https://github.com/mralexgray/AFNetworking', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://afnetworking.com', + html_url: 'https://github.com/mralexgray/AFNetworking', + keys_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AFNetworking/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFNetworking.git', + forks_url: 'https://api.github.com/repos/mralexgray/AFNetworking/forks', + full_name: 'mralexgray/AFNetworking', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AFNetworking/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/pulls{/number}', + pushed_at: '2014-01-24T07:14:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/AFNetworking/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/trees{/sha}', + created_at: '2012-12-02T17:00:04Z', + events_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/merges', + mirror_url: null, + updated_at: '2014-01-24T07:14:33Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/compare/{base}...{head}', + description: 'A delightful iOS and OS X networking framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9485541, + url: 'https://api.github.com/repos/mralexgray/AGNSSplitView', + fork: true, + name: 'AGNSSplitView', + size: 68, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGNSSplitView.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5NDg1NTQx', + private: false, + ssh_url: 'git@github.com:mralexgray/AGNSSplitView.git', + svn_url: 'https://github.com/mralexgray/AGNSSplitView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGNSSplitView', + keys_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AGNSSplitView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGNSSplitView.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/forks', + full_name: 'mralexgray/AGNSSplitView', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/pulls{/number}', + pushed_at: '2013-02-26T00:32:32Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/trees{/sha}', + created_at: '2013-04-17T00:10:13Z', + events_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/merges', + mirror_url: null, + updated_at: '2013-04-17T00:10:13Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/compare/{base}...{head}', + description: 'Simple NSSplitView additions.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12767784, + url: 'https://api.github.com/repos/mralexgray/AGScopeBar', + fork: true, + name: 'AGScopeBar', + size: 64, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGScopeBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc2Nzc4NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AGScopeBar.git', + svn_url: 'https://github.com/mralexgray/AGScopeBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGScopeBar', + keys_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGScopeBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/forks', + full_name: 'mralexgray/AGScopeBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/pulls{/number}', + pushed_at: '2013-05-07T03:35:29Z', + teams_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/trees{/sha}', + created_at: '2013-09-11T21:06:54Z', + events_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/merges', + mirror_url: null, + updated_at: '2013-09-11T21:06:54Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/compare/{base}...{head}', + description: 'Custom scope bar implementation for Cocoa', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 31829499, + url: 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin', + fork: true, + name: 'agvtool-xcode-plugin', + size: 102, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/agvtool-xcode-plugin.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkzMTgyOTQ5OQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/agvtool-xcode-plugin.git', + svn_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + keys_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/agvtool-xcode-plugin.git', + forks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/forks', + full_name: 'mralexgray/agvtool-xcode-plugin', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/pulls{/number}', + pushed_at: '2015-03-08T00:04:31Z', + teams_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/trees{/sha}', + created_at: '2015-03-07T22:15:38Z', + events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/merges', + mirror_url: null, + updated_at: '2015-03-07T22:15:41Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/compare/{base}...{head}', + description: 'this is a plugin wrapper for agvtool for xcode.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9227846, + url: 'https://api.github.com/repos/mralexgray/AHContentBrowser', + fork: true, + name: 'AHContentBrowser', + size: 223, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHContentBrowser.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MjI3ODQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/AHContentBrowser.git', + svn_url: 'https://github.com/mralexgray/AHContentBrowser', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHContentBrowser', + keys_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHContentBrowser.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/forks', + full_name: 'mralexgray/AHContentBrowser', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/pulls{/number}', + pushed_at: '2013-03-13T17:38:23Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/trees{/sha}', + created_at: '2013-04-04T20:56:16Z', + events_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/merges', + mirror_url: null, + updated_at: '2015-10-22T05:00:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/compare/{base}...{head}', + description: + 'A Mac only webview that loads a fast readable version of the website if available.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 37430328, + url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl', + fork: true, + name: 'AHLaunchCtl', + size: 592, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLaunchCtl.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNzQzMDMyOA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLaunchCtl.git', + svn_url: 'https://github.com/mralexgray/AHLaunchCtl', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHLaunchCtl', + keys_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLaunchCtl.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/forks', + full_name: 'mralexgray/AHLaunchCtl', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/pulls{/number}', + pushed_at: '2015-05-26T18:50:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/trees{/sha}', + created_at: '2015-06-14T21:31:03Z', + events_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/merges', + mirror_url: null, + updated_at: '2015-06-14T21:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/compare/{base}...{head}', + description: 'LaunchD Framework for Cocoa Apps', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9167473, + url: 'https://api.github.com/repos/mralexgray/AHLayout', + fork: true, + name: 'AHLayout', + size: 359, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLayout.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MTY3NDcz', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLayout.git', + svn_url: 'https://github.com/mralexgray/AHLayout', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AHLayout', + keys_url: + 'https://api.github.com/repos/mralexgray/AHLayout/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLayout/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLayout.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHLayout/forks', + full_name: 'mralexgray/AHLayout', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHLayout/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHLayout/pulls{/number}', + pushed_at: '2013-07-08T02:31:14Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHLayout/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/trees{/sha}', + created_at: '2013-04-02T10:10:30Z', + events_url: 'https://api.github.com/repos/mralexgray/AHLayout/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHLayout/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AHLayout/merges', + mirror_url: null, + updated_at: '2013-07-08T02:31:17Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLayout/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHLayout/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLayout/compare/{base}...{head}', + description: 'AHLayout', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLayout/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLayout/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLayout/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLayout/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHLayout/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHLayout/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLayout/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHLayout/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLayout/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLayout/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 18450201, + url: 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework', + fork: true, + name: 'Airmail-Plug-In-Framework', + size: 888, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Airmail-Plug-In-Framework.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxODQ1MDIwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Airmail-Plug-In-Framework.git', + svn_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + keys_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/keys{/key_id}', + language: null, + tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/blobs{/sha}', + clone_url: + 'https://github.com/mralexgray/Airmail-Plug-In-Framework.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/forks', + full_name: 'mralexgray/Airmail-Plug-In-Framework', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/pulls{/number}', + pushed_at: '2014-03-27T15:42:19Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/trees{/sha}', + created_at: '2014-04-04T19:33:54Z', + events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/merges', + mirror_url: null, + updated_at: '2014-11-23T19:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5203219, + url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API', + fork: true, + name: 'AJS-iTunes-API', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AJS-iTunes-API.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MjAzMjE5', + private: false, + ssh_url: 'git@github.com:mralexgray/AJS-iTunes-API.git', + svn_url: 'https://github.com/mralexgray/AJS-iTunes-API', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AJS-iTunes-API', + keys_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AJS-iTunes-API.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/forks', + full_name: 'mralexgray/AJS-iTunes-API', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/pulls{/number}', + pushed_at: '2011-10-30T22:26:48Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/trees{/sha}', + created_at: '2012-07-27T10:20:58Z', + events_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/merges', + mirror_url: null, + updated_at: '2013-01-11T11:00:05Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/compare/{base}...{head}', + description: + 'Cocoa wrapper for the iTunes search API - for iOS and Mac OSX projects', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10093801, + url: 'https://api.github.com/repos/mralexgray/Alcatraz', + fork: true, + name: 'Alcatraz', + size: 3668, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alcatraz.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDA5MzgwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alcatraz.git', + svn_url: 'https://github.com/mralexgray/Alcatraz', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/Alcatraz', + keys_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Alcatraz/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Alcatraz.git', + forks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/forks', + full_name: 'mralexgray/Alcatraz', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/pulls{/number}', + pushed_at: '2014-03-19T12:50:37Z', + teams_url: 'https://api.github.com/repos/mralexgray/Alcatraz/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/trees{/sha}', + created_at: '2013-05-16T04:41:13Z', + events_url: 'https://api.github.com/repos/mralexgray/Alcatraz/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Alcatraz/merges', + mirror_url: null, + updated_at: '2014-03-19T20:38:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/compare/{base}...{head}', + description: 'The most awesome (and only) Xcode package manager!', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12916552, + url: 'https://api.github.com/repos/mralexgray/alcatraz-packages', + fork: true, + name: 'alcatraz-packages', + size: 826, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alcatraz-packages.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjkxNjU1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alcatraz-packages.git', + svn_url: 'https://github.com/mralexgray/alcatraz-packages', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/alcatraz-packages', + keys_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/keys{/key_id}', + language: 'Ruby', + tags_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alcatraz-packages.git', + forks_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/forks', + full_name: 'mralexgray/alcatraz-packages', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/pulls{/number}', + pushed_at: '2015-12-14T16:21:31Z', + teams_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/trees{/sha}', + created_at: '2013-09-18T07:15:24Z', + events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/merges', + mirror_url: null, + updated_at: '2015-11-10T20:52:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/compare/{base}...{head}', + description: 'Package list repository for Alcatraz', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 44278362, + url: 'https://api.github.com/repos/mralexgray/alexicons', + fork: true, + name: 'alexicons', + size: 257, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alexicons.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk0NDI3ODM2Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alexicons.git', + svn_url: 'https://github.com/mralexgray/alexicons', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/alexicons', + keys_url: + 'https://api.github.com/repos/mralexgray/alexicons/keys{/key_id}', + language: 'CoffeeScript', + tags_url: 'https://api.github.com/repos/mralexgray/alexicons/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alexicons.git', + forks_url: 'https://api.github.com/repos/mralexgray/alexicons/forks', + full_name: 'mralexgray/alexicons', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/alexicons/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/alexicons/pulls{/number}', + pushed_at: '2015-10-16T03:57:51Z', + teams_url: 'https://api.github.com/repos/mralexgray/alexicons/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/trees{/sha}', + created_at: '2015-10-14T21:49:39Z', + events_url: 'https://api.github.com/repos/mralexgray/alexicons/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/alexicons/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/alexicons/merges', + mirror_url: null, + updated_at: '2015-10-15T06:20:08Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alexicons/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alexicons/compare/{base}...{head}', + description: 'Get popular cat names', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alexicons/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alexicons/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alexicons/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alexicons/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alexicons/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alexicons/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/alexicons/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/alexicons/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alexicons/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alexicons/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alexicons/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alexicons/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alexicons/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alexicons/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10476467, + url: 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate', + fork: true, + name: 'Alfred-Google-Translate', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alfred-Google-Translate.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ3NjQ2Nw==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alfred-Google-Translate.git', + svn_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + keys_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/keys{/key_id}', + language: 'Shell', + tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Alfred-Google-Translate.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/forks', + full_name: 'mralexgray/Alfred-Google-Translate', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/pulls{/number}', + pushed_at: '2013-01-12T19:39:03Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/trees{/sha}', + created_at: '2013-06-04T10:45:10Z', + events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/merges', + mirror_url: null, + updated_at: '2013-06-04T10:45:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/compare/{base}...{head}', + description: + 'Extension for Alfred that will do a Google translate for you', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5524019, + url: 'https://api.github.com/repos/mralexgray/Amber', + fork: false, + name: 'Amber', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amber.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1NTI0MDE5', + private: false, + ssh_url: 'git@github.com:mralexgray/Amber.git', + svn_url: 'https://github.com/mralexgray/Amber', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Amber', + keys_url: 'https://api.github.com/repos/mralexgray/Amber/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/Amber/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Amber/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amber.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amber/forks', + full_name: 'mralexgray/Amber', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amber/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Amber/pulls{/number}', + pushed_at: '2012-08-23T10:38:25Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amber/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Amber/git/trees{/sha}', + created_at: '2012-08-23T10:38:24Z', + events_url: 'https://api.github.com/repos/mralexgray/Amber/events', + has_issues: true, + issues_url: + 'https://api.github.com/repos/mralexgray/Amber/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Amber/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amber/merges', + mirror_url: null, + updated_at: '2013-01-11T22:25:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amber/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Amber/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amber/compare/{base}...{head}', + description: 'Fork of the difficult-to-deal-with Amber.framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amber/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amber/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amber/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Amber/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Amber/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Amber/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Amber/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amber/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Amber/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Amber/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amber/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Amber/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Amber/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amber/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Amber/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amber/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amber/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amber/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amber/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10809060, + url: 'https://api.github.com/repos/mralexgray/Amethyst', + fork: true, + name: 'Amethyst', + size: 12623, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amethyst.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDgwOTA2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/Amethyst.git', + svn_url: 'https://github.com/mralexgray/Amethyst', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ianyh.github.io/Amethyst/', + html_url: 'https://github.com/mralexgray/Amethyst', + keys_url: + 'https://api.github.com/repos/mralexgray/Amethyst/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Amethyst/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amethyst.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amethyst/forks', + full_name: 'mralexgray/Amethyst', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amethyst/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Amethyst/pulls{/number}', + pushed_at: '2013-06-18T02:54:11Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amethyst/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/trees{/sha}', + created_at: '2013-06-20T00:34:22Z', + events_url: 'https://api.github.com/repos/mralexgray/Amethyst/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Amethyst/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amethyst/merges', + mirror_url: null, + updated_at: '2013-06-20T00:34:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amethyst/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Amethyst/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amethyst/compare/{base}...{head}', + description: 'Tiling window manager for OS X.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amethyst/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Amethyst/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Amethyst/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amethyst/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Amethyst/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Amethyst/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amethyst/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Amethyst/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amethyst/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amethyst/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 3684286, + url: 'https://api.github.com/repos/mralexgray/Animated-Paths', + fork: true, + name: 'Animated-Paths', + size: 411, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Animated-Paths.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNjg0Mjg2', + private: false, + ssh_url: 'git@github.com:mralexgray/Animated-Paths.git', + svn_url: 'https://github.com/mralexgray/Animated-Paths', + archived: false, + disabled: false, + has_wiki: true, + homepage: + 'http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/', + html_url: 'https://github.com/mralexgray/Animated-Paths', + keys_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Animated-Paths/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Animated-Paths.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/forks', + full_name: 'mralexgray/Animated-Paths', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/pulls{/number}', + pushed_at: '2010-12-30T20:56:51Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/trees{/sha}', + created_at: '2012-03-11T02:56:38Z', + events_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/merges', + mirror_url: null, + updated_at: '2013-01-08T04:12:21Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/compare/{base}...{head}', + description: + 'Demo project: Animating the drawing of a CGPath with CAShapeLayer.strokeEnd', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16662874, + url: 'https://api.github.com/repos/mralexgray/AnsiLove.framework', + fork: true, + name: 'AnsiLove.framework', + size: 3780, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AnsiLove.framework.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjY2Mjg3NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AnsiLove.framework.git', + svn_url: 'https://github.com/mralexgray/AnsiLove.framework', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'http://byteproject.net', + html_url: 'https://github.com/mralexgray/AnsiLove.framework', + keys_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/keys{/key_id}', + language: 'M', + tags_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AnsiLove.framework.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/forks', + full_name: 'mralexgray/AnsiLove.framework', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/pulls{/number}', + pushed_at: '2013-10-04T14:08:38Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/trees{/sha}', + created_at: '2014-02-09T08:30:27Z', + events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/merges', + mirror_url: null, + updated_at: '2015-01-13T20:41:46Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/compare/{base}...{head}', + description: 'Cocoa Framework for rendering ANSi / ASCII art', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5189563, + url: 'https://api.github.com/repos/mralexgray/ANTrackBar', + fork: true, + name: 'ANTrackBar', + size: 94, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ANTrackBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MTg5NTYz', + private: false, + ssh_url: 'git@github.com:mralexgray/ANTrackBar.git', + svn_url: 'https://github.com/mralexgray/ANTrackBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/ANTrackBar', + keys_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ANTrackBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/forks', + full_name: 'mralexgray/ANTrackBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/pulls{/number}', + pushed_at: '2012-03-09T01:40:02Z', + teams_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/trees{/sha}', + created_at: '2012-07-26T08:17:22Z', + events_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/merges', + mirror_url: null, + updated_at: '2013-01-11T10:29:56Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/compare/{base}...{head}', + description: 'An easy-to-use Cocoa seek bar with a pleasing appearance', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16240152, + url: 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C', + fork: true, + name: 'AOP-in-Objective-C', + size: 340, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AOP-in-Objective-C.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjI0MDE1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/AOP-in-Objective-C.git', + svn_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://innoli.hu/en/opensource/', + html_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + keys_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AOP-in-Objective-C.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/forks', + full_name: 'mralexgray/AOP-in-Objective-C', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/pulls{/number}', + pushed_at: '2014-02-12T16:23:20Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/trees{/sha}', + created_at: '2014-01-25T21:18:04Z', + events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/merges', + mirror_url: null, + updated_at: '2014-06-19T19:38:12Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/compare/{base}...{head}', + description: + 'An NSProxy based library for easily enabling AOP like functionality in Objective-C.', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/languages', + default_branch: 'travis-coveralls', + milestones_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13141936, + url: 'https://api.github.com/repos/mralexgray/Apaxy', + fork: true, + name: 'Apaxy', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Apaxy.git', + license: { + key: 'unlicense', + url: 'https://api.github.com/licenses/unlicense', + name: 'The Unlicense', + node_id: 'MDc6TGljZW5zZTE1', + spdx_id: 'Unlicense', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzE0MTkzNg==', + private: false, + ssh_url: 'git@github.com:mralexgray/Apaxy.git', + svn_url: 'https://github.com/mralexgray/Apaxy', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Apaxy', + keys_url: 'https://api.github.com/repos/mralexgray/Apaxy/keys{/key_id}', + language: 'CSS', + tags_url: 'https://api.github.com/repos/mralexgray/Apaxy/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Apaxy.git', + forks_url: 'https://api.github.com/repos/mralexgray/Apaxy/forks', + full_name: 'mralexgray/Apaxy', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Apaxy/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Apaxy/pulls{/number}', + pushed_at: '2013-08-02T16:01:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/Apaxy/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/trees{/sha}', + created_at: '2013-09-27T05:05:35Z', + events_url: 'https://api.github.com/repos/mralexgray/Apaxy/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Apaxy/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Apaxy/merges', + mirror_url: null, + updated_at: '2018-02-16T21:40:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Apaxy/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Apaxy/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Apaxy/compare/{base}...{head}', + description: + 'A simple, customisable theme for your Apache directory listing.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Apaxy/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Apaxy/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Apaxy/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Apaxy/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Apaxy/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Apaxy/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Apaxy/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Apaxy/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Apaxy/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Apaxy/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Apaxy/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Apaxy/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Apaxy/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Apaxy/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 20027360, + url: 'https://api.github.com/repos/mralexgray/app', + fork: true, + name: 'app', + size: 1890, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/app.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkyMDAyNzM2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/app.git', + svn_url: 'https://github.com/mralexgray/app', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/app', + keys_url: 'https://api.github.com/repos/mralexgray/app/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/app/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/app/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/app.git', + forks_url: 'https://api.github.com/repos/mralexgray/app/forks', + full_name: 'mralexgray/app', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/app/hooks', + pulls_url: 'https://api.github.com/repos/mralexgray/app/pulls{/number}', + pushed_at: '2014-05-20T19:51:38Z', + teams_url: 'https://api.github.com/repos/mralexgray/app/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/app/git/trees{/sha}', + created_at: '2014-05-21T15:54:20Z', + events_url: 'https://api.github.com/repos/mralexgray/app/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/app/issues{/number}', + labels_url: 'https://api.github.com/repos/mralexgray/app/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/app/merges', + mirror_url: null, + updated_at: '2014-05-21T15:54:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/app/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/app/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/app/compare/{base}...{head}', + description: 'Instant mobile web app creation', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/app/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/app/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/app/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/app/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/app/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/app/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/app/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/app/assignees{/user}', + downloads_url: 'https://api.github.com/repos/mralexgray/app/downloads', + has_downloads: true, + languages_url: 'https://api.github.com/repos/mralexgray/app/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/app/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/app/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/app/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/app/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/app/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/app/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/app/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/app/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/app/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/app/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/app/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + ], + name: 'Shirt', + revenue: 4.99, + }, + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + PayloadSize: 48375, + LastJobStatus: { + JobID: 0, + JobState: '', + AttemptNum: 0, + ExecTime: '0001-01-01T00:00:00Z', + RetryTime: '0001-01-01T00:00:00Z', + ErrorCode: '', + ErrorResponse: null, + Parameters: null, + WorkspaceId: '', + }, + Parameters: { + record_id: null, + source_id: '2DTlLPQxignYp4ag9sISgGN2uY7', + event_name: 'Product Purchased new', + event_type: 'track', + message_id: '9f8fb785-c720-4381-a009-bf22a13f4ced', + received_at: '2022-08-18T08:43:13.521+05:30', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + transform_at: 'router', + source_job_id: '', + destination_id: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + gateway_job_id: 6, + source_task_id: '', + source_batch_id: '', + source_category: '', + source_job_run_id: '', + source_task_run_id: '', + source_definition_id: '2DTlJaW1jHhM8B27Et2CMTZoxZF', + destination_definition_id: '', + }, + WorkspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + }, + workerAssignedTime: '2022-08-18T08:43:16.586825+05:30', + }, + { + userId: 'anon-id-new<<>>identified user id', + jobId: 33, + sourceId: '2DTlLPQxignYp4ag9sISgGN2uY7', + destinationId: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + attemptNum: 0, + receivedAt: '2022-08-18T08:43:13.521+05:30', + createdAt: '2022-08-18T03:13:15.549Z', + firstAttemptedAt: '', + transformAt: 'router', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + secret: null, + jobsT: { + UUID: 'bf616af4-2c6b-495f-8b2d-b522c93bdca2', + JobID: 33, + UserID: 'anon-id-new<<>>identified user id', + CreatedAt: '2022-08-18T03:13:15.549078Z', + ExpireAt: '2022-08-18T03:13:15.549078Z', + CustomVal: 'LAMBDA', + EventCount: 1, + EventPayload: { + name: 'Page View', + type: 'page', + sentAt: '2022-08-18T08:43:15.539+05:30', + userId: 'identified user id', + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + messageId: '5f58d1f7-cbd6-4bff-8571-9933be7210b1', + timestamp: '2020-02-02T00:23:09.544Z', + properties: { + path: '/', + title: 'Home', + }, + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + PayloadSize: 548, + LastJobStatus: { + JobID: 0, + JobState: '', + AttemptNum: 0, + ExecTime: '0001-01-01T00:00:00Z', + RetryTime: '0001-01-01T00:00:00Z', + ErrorCode: '', + ErrorResponse: null, + Parameters: null, + WorkspaceId: '', + }, + Parameters: { + record_id: null, + source_id: '2DTlLPQxignYp4ag9sISgGN2uY7', + event_name: '', + event_type: 'page', + message_id: '5f58d1f7-cbd6-4bff-8571-9933be7210b1', + received_at: '2022-08-18T08:43:13.521+05:30', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + transform_at: 'router', + source_job_id: '', + destination_id: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + gateway_job_id: 6, + source_task_id: '', + source_batch_id: '', + source_category: '', + source_job_run_id: '', + source_task_run_id: '', + source_definition_id: '2DTlJaW1jHhM8B27Et2CMTZoxZF', + destination_definition_id: '', + }, + WorkspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + }, + workerAssignedTime: '2022-08-18T08:43:16.586825+05:30', + }, + ], + batched: false, + statusCode: 200, + }, + { + batchedRequest: { + payload: + '[{"name":"Screen View","type":"screen","sentAt":"2022-08-18T08:43:15.539+05:30","userId":"identified user id","context":{"ip":"14.5.67.21","library":{"name":"http"}},"rudderId":"daf823fb-e8d3-413a-8313-d34cd756f968","messageId":"1b8ee4c3-ffad-4457-b453-31b32da1dfea","timestamp":"2020-02-02T00:23:09.544Z","properties":{"prop1":"5"},"receivedAt":"2022-08-18T08:43:13.521+05:30","request_ip":"[::1]","anonymousId":"anon-id-new","originalTimestamp":"2022-08-18T08:43:15.539+05:30"},{"type":"group","sentAt":"2022-08-18T08:43:15.539+05:30","traits":{"name":"Company","industry":"Industry","employees":123},"userId":"user123","context":{"ip":"14.5.67.21","traits":{"trait1":"new-val"},"library":{"name":"http"}},"groupId":"group1","rudderId":"bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5","messageId":"2c59b527-3235-4fc2-9680-f41ec52ebb51","timestamp":"2020-01-21T00:21:34.208Z","receivedAt":"2022-08-18T08:43:13.521+05:30","request_ip":"[::1]","originalTimestamp":"2022-08-18T08:43:15.539+05:30"}]', + destConfig: { + clientContext: '', + lambda: 'testFunction', + invocationType: 'Event', + }, + }, + metadata: [ + { + userId: 'anon-id-new<<>>identified user id', + jobId: 34, + sourceId: '2DTlLPQxignYp4ag9sISgGN2uY7', + destinationId: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + attemptNum: 0, + receivedAt: '2022-08-18T08:43:13.521+05:30', + createdAt: '2022-08-18T03:13:15.549Z', + firstAttemptedAt: '', + transformAt: 'router', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + secret: null, + jobsT: { + UUID: '8faa9d6d-d8a8-468c-bef4-c2db52f6101b', + JobID: 34, + UserID: 'anon-id-new<<>>identified user id', + CreatedAt: '2022-08-18T03:13:15.549078Z', + ExpireAt: '2022-08-18T03:13:15.549078Z', + CustomVal: 'LAMBDA', + EventCount: 1, + EventPayload: { + name: 'Screen View', + type: 'screen', + sentAt: '2022-08-18T08:43:15.539+05:30', + userId: 'identified user id', + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + messageId: '1b8ee4c3-ffad-4457-b453-31b32da1dfea', + timestamp: '2020-02-02T00:23:09.544Z', + properties: { + prop1: '5', + }, + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + PayloadSize: 536, + LastJobStatus: { + JobID: 0, + JobState: '', + AttemptNum: 0, + ExecTime: '0001-01-01T00:00:00Z', + RetryTime: '0001-01-01T00:00:00Z', + ErrorCode: '', + ErrorResponse: null, + Parameters: null, + WorkspaceId: '', + }, + Parameters: { + record_id: null, + source_id: '2DTlLPQxignYp4ag9sISgGN2uY7', + event_name: '', + event_type: 'screen', + message_id: '1b8ee4c3-ffad-4457-b453-31b32da1dfea', + received_at: '2022-08-18T08:43:13.521+05:30', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + transform_at: 'router', + source_job_id: '', + destination_id: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + gateway_job_id: 6, + source_task_id: '', + source_batch_id: '', + source_category: '', + source_job_run_id: '', + source_task_run_id: '', + source_definition_id: '2DTlJaW1jHhM8B27Et2CMTZoxZF', + destination_definition_id: '', + }, + WorkspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + }, + workerAssignedTime: '2022-08-18T08:43:16.586825+05:30', + }, + { + userId: 'anon-id-new<<>>identified user id', + jobId: 35, + sourceId: '2DTlLPQxignYp4ag9sISgGN2uY7', + destinationId: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + attemptNum: 0, + receivedAt: '2022-08-18T08:43:13.521+05:30', + createdAt: '2022-08-18T03:13:15.549Z', + firstAttemptedAt: '', + transformAt: 'router', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + secret: null, + jobsT: { + UUID: '73cea314-998a-4b72-8004-34b0618093a3', + JobID: 35, + UserID: 'anon-id-new<<>>identified user id', + CreatedAt: '2022-08-18T03:13:15.549078Z', + ExpireAt: '2022-08-18T03:13:15.549078Z', + CustomVal: 'LAMBDA', + EventCount: 1, + EventPayload: { + type: 'group', + sentAt: '2022-08-18T08:43:15.539+05:30', + traits: { + name: 'Company', + industry: 'Industry', + employees: 123, + }, + userId: 'user123', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + groupId: 'group1', + rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', + messageId: '2c59b527-3235-4fc2-9680-f41ec52ebb51', + timestamp: '2020-01-21T00:21:34.208Z', + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + PayloadSize: 589, + LastJobStatus: { + JobID: 0, + JobState: '', + AttemptNum: 0, + ExecTime: '0001-01-01T00:00:00Z', + RetryTime: '0001-01-01T00:00:00Z', + ErrorCode: '', + ErrorResponse: null, + Parameters: null, + WorkspaceId: '', + }, + Parameters: { + record_id: null, + source_id: '2DTlLPQxignYp4ag9sISgGN2uY7', + event_name: '', + event_type: 'group', + message_id: '2c59b527-3235-4fc2-9680-f41ec52ebb51', + received_at: '2022-08-18T08:43:13.521+05:30', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + transform_at: 'router', + source_job_id: '', + destination_id: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + gateway_job_id: 6, + source_task_id: '', + source_batch_id: '', + source_category: '', + source_job_run_id: '', + source_task_run_id: '', + source_definition_id: '2DTlJaW1jHhM8B27Et2CMTZoxZF', + destination_definition_id: '', + }, + WorkspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + }, + workerAssignedTime: '2022-08-18T08:43:16.586825+05:30', + }, + ], + batched: false, + statusCode: 200, + }, + { + batchedRequest: { + payload: + '[{"type":"alias","sentAt":"2022-08-18T08:43:15.539+05:30","userId":"user123","context":{"ip":"14.5.67.21","traits":{"trait1":"new-val"},"library":{"name":"http"}},"rudderId":"bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5","messageId":"3ff8d400-b6d4-43a4-a0ff-1bc7ae8b5f7d","timestamp":"2020-01-21T00:21:34.208Z","previousId":"previd1","receivedAt":"2022-08-18T08:43:13.521+05:30","request_ip":"[::1]","originalTimestamp":"2022-08-18T08:43:15.539+05:30"}]', + destConfig: { + clientContext: '', + lambda: 'testFunction', + invocationType: 'Event', + }, + }, + metadata: [ + { + userId: 'anon-id-new<<>>identified user id', + jobId: 36, + sourceId: '2DTlLPQxignYp4ag9sISgGN2uY7', + destinationId: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + attemptNum: 0, + receivedAt: '2022-08-18T08:43:13.521+05:30', + createdAt: '2022-08-18T03:13:15.549Z', + firstAttemptedAt: '', + transformAt: 'router', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + secret: null, + jobsT: { + UUID: 'ac80629c-9eb6-4e92-bee8-4647e88f7fc0', + JobID: 36, + UserID: 'anon-id-new<<>>identified user id', + CreatedAt: '2022-08-18T03:13:15.549078Z', + ExpireAt: '2022-08-18T03:13:15.549078Z', + CustomVal: 'LAMBDA', + EventCount: 1, + EventPayload: { + type: 'alias', + sentAt: '2022-08-18T08:43:15.539+05:30', + userId: 'user123', + context: { + ip: '14.5.67.21', + traits: { + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', + messageId: '3ff8d400-b6d4-43a4-a0ff-1bc7ae8b5f7d', + timestamp: '2020-01-21T00:21:34.208Z', + previousId: 'previd1', + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + PayloadSize: 506, + LastJobStatus: { + JobID: 0, + JobState: '', + AttemptNum: 0, + ExecTime: '0001-01-01T00:00:00Z', + RetryTime: '0001-01-01T00:00:00Z', + ErrorCode: '', + ErrorResponse: null, + Parameters: null, + WorkspaceId: '', + }, + Parameters: { + record_id: null, + source_id: '2DTlLPQxignYp4ag9sISgGN2uY7', + event_name: '', + event_type: 'alias', + message_id: '3ff8d400-b6d4-43a4-a0ff-1bc7ae8b5f7d', + received_at: '2022-08-18T08:43:13.521+05:30', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + transform_at: 'router', + source_job_id: '', + destination_id: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + gateway_job_id: 6, + source_task_id: '', + source_batch_id: '', + source_category: '', + source_job_run_id: '', + source_task_run_id: '', + source_definition_id: '2DTlJaW1jHhM8B27Et2CMTZoxZF', + destination_definition_id: '', + }, + WorkspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + }, + workerAssignedTime: '2022-08-18T08:43:16.586825+05:30', + }, + ], + batched: false, + statusCode: 200, + }, + { + metadata: [ + { + userId: 'anon-id-new<<>>identified user id', + jobId: 31, + sourceId: '2DTlLPQxignYp4ag9sISgGN2uY7', + destinationId: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + attemptNum: 0, + receivedAt: '2022-08-18T08:43:13.521+05:30', + createdAt: '2022-08-18T03:13:15.549Z', + firstAttemptedAt: '', + transformAt: 'router', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + secret: null, + jobsT: { + UUID: '47b3937a-1fef-49fa-85c8-649673bd7170', + JobID: 31, + UserID: 'anon-id-new<<>>identified user id', + CreatedAt: '2022-08-18T03:13:15.549078Z', + ExpireAt: '2022-08-18T03:13:15.549078Z', + CustomVal: 'LAMBDA', + EventCount: 1, + EventPayload: { + type: 'identify', + sentAt: '2022-08-18T08:43:15.539+05:30', + userId: 'identified user id', + context: { + ip: '14.5.67.21', + traits: { + data: [ + { + id: 6104546, + url: 'https://api.github.com/repos/mralexgray/-REPONAME', + fork: false, + name: '-REPONAME', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/-REPONAME.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk2MTA0NTQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/-REPONAME.git', + svn_url: 'https://github.com/mralexgray/-REPONAME', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/-REPONAME', + keys_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/-REPONAME/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/-REPONAME.git', + forks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/forks', + full_name: 'mralexgray/-REPONAME', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/pulls{/number}', + pushed_at: '2012-10-06T16:37:39Z', + teams_url: 'https://api.github.com/repos/mralexgray/-REPONAME/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/trees{/sha}', + created_at: '2012-10-06T16:37:39Z', + events_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/events', + has_issues: true, + issues_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/merges', + mirror_url: null, + updated_at: '2013-01-12T13:39:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 104510411, + url: 'https://api.github.com/repos/mralexgray/...', + fork: true, + name: '...', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/....git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ1MTA0MTE=', + private: false, + ssh_url: 'git@github.com:mralexgray/....git', + svn_url: 'https://github.com/mralexgray/...', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'https://driesvints.com/blog/getting-started-with-dotfiles', + html_url: 'https://github.com/mralexgray/...', + keys_url: 'https://api.github.com/repos/mralexgray/.../keys{/key_id}', + language: 'Shell', + tags_url: 'https://api.github.com/repos/mralexgray/.../tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/.../git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/....git', + forks_url: 'https://api.github.com/repos/mralexgray/.../forks', + full_name: 'mralexgray/...', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/.../hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/.../pulls{/number}', + pushed_at: '2017-09-15T08:27:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/.../teams', + trees_url: + 'https://api.github.com/repos/mralexgray/.../git/trees{/sha}', + created_at: '2017-09-22T19:19:42Z', + events_url: 'https://api.github.com/repos/mralexgray/.../events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/.../issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/.../labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/.../merges', + mirror_url: null, + updated_at: '2017-09-22T19:20:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/.../{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/.../commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/.../compare/{base}...{head}', + description: ':computer: Public repo for my personal dotfiles.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/.../branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/.../comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/.../contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/.../git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/.../git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/.../releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/.../statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/.../assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/.../downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/.../languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/.../milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/.../stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/.../deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/.../git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/.../subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/.../contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/.../issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/.../subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/.../collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/.../issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/.../notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 58656723, + url: 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol', + fork: true, + name: '2200087-Serial-Protocol', + size: 41, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/2200087-Serial-Protocol.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1ODY1NjcyMw==', + private: false, + ssh_url: 'git@github.com:mralexgray/2200087-Serial-Protocol.git', + svn_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://daviddworken.com', + html_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + keys_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/keys{/key_id}', + language: 'Python', + tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/blobs{/sha}', + clone_url: + 'https://github.com/mralexgray/2200087-Serial-Protocol.git', + forks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/forks', + full_name: 'mralexgray/2200087-Serial-Protocol', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/pulls{/number}', + pushed_at: '2016-05-12T16:07:24Z', + teams_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/trees{/sha}', + created_at: '2016-05-12T16:05:28Z', + events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/merges', + mirror_url: null, + updated_at: '2016-05-12T16:05:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/compare/{base}...{head}', + description: + "A reverse engineered protocol description and accompanying code for Radioshack's 2200087 multimeter", + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13121042, + url: 'https://api.github.com/repos/mralexgray/ace', + fork: true, + name: 'ace', + size: 21080, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ace.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzEyMTA0Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/ace.git', + svn_url: 'https://github.com/mralexgray/ace', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ace.c9.io', + html_url: 'https://github.com/mralexgray/ace', + keys_url: 'https://api.github.com/repos/mralexgray/ace/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/ace/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ace/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ace.git', + forks_url: 'https://api.github.com/repos/mralexgray/ace/forks', + full_name: 'mralexgray/ace', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ace/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ace/pulls{/number}', + pushed_at: '2013-10-26T12:34:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/ace/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ace/git/trees{/sha}', + created_at: '2013-09-26T11:58:10Z', + events_url: 'https://api.github.com/repos/mralexgray/ace/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ace/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ace/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ace/merges', + mirror_url: null, + updated_at: '2013-10-26T12:34:49Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ace/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ace/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ace/compare/{base}...{head}', + description: 'Ace (Ajax.org Cloud9 Editor)', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ace/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ace/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ace/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ace/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ace/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ace/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ace/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ace/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ace/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ace/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ace/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ace/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ace/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ace/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ace/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ace/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ace/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ace/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ace/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ace/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ace/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10791045, + url: 'https://api.github.com/repos/mralexgray/ACEView', + fork: true, + name: 'ACEView', + size: 1733, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ACEView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDc5MTA0NQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ACEView.git', + svn_url: 'https://github.com/mralexgray/ACEView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/ACEView', + keys_url: + 'https://api.github.com/repos/mralexgray/ACEView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ACEView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ACEView.git', + forks_url: 'https://api.github.com/repos/mralexgray/ACEView/forks', + full_name: 'mralexgray/ACEView', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ACEView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ACEView/pulls{/number}', + pushed_at: '2014-05-09T01:36:23Z', + teams_url: 'https://api.github.com/repos/mralexgray/ACEView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/trees{/sha}', + created_at: '2013-06-19T12:15:04Z', + events_url: 'https://api.github.com/repos/mralexgray/ACEView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ACEView/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ACEView/merges', + mirror_url: null, + updated_at: '2015-11-24T01:14:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ACEView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ACEView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ACEView/compare/{base}...{head}', + description: + 'Use the wonderful ACE editor in your Cocoa applications', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ACEView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ACEView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ACEView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ACEView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ACEView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ACEView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ACEView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ACEView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ACEView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ACEView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ACEView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ACEView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ACEView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ACEView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13623648, + url: 'https://api.github.com/repos/mralexgray/ActiveLog', + fork: true, + name: 'ActiveLog', + size: 60, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ActiveLog.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzYyMzY0OA==', + private: false, + ssh_url: 'git@github.com:mralexgray/ActiveLog.git', + svn_url: 'https://github.com/mralexgray/ActiveLog', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://deepitpro.com/en/articles/ActiveLog/info/', + html_url: 'https://github.com/mralexgray/ActiveLog', + keys_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ActiveLog/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ActiveLog.git', + forks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/forks', + full_name: 'mralexgray/ActiveLog', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/pulls{/number}', + pushed_at: '2011-07-03T06:28:59Z', + teams_url: 'https://api.github.com/repos/mralexgray/ActiveLog/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/trees{/sha}', + created_at: '2013-10-16T15:52:37Z', + events_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/merges', + mirror_url: null, + updated_at: '2013-10-16T15:52:37Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/compare/{base}...{head}', + description: 'Shut up all logs with active filter.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9716210, + url: 'https://api.github.com/repos/mralexgray/adium', + fork: false, + name: 'adium', + size: 277719, + forks: 37, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/adium.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk5NzE2MjEw', + private: false, + ssh_url: 'git@github.com:mralexgray/adium.git', + svn_url: 'https://github.com/mralexgray/adium', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/adium', + keys_url: + 'https://api.github.com/repos/mralexgray/adium/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/adium/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/adium/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/adium.git', + forks_url: 'https://api.github.com/repos/mralexgray/adium/forks', + full_name: 'mralexgray/adium', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/adium/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/adium/pulls{/number}', + pushed_at: '2013-04-26T16:43:53Z', + teams_url: 'https://api.github.com/repos/mralexgray/adium/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/adium/git/trees{/sha}', + created_at: '2013-04-27T14:59:33Z', + events_url: 'https://api.github.com/repos/mralexgray/adium/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/adium/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/adium/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/adium/merges', + mirror_url: null, + updated_at: '2019-12-11T06:51:45Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/adium/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/adium/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/adium/compare/{base}...{head}', + description: 'Official mirror of hg.adium.im', + forks_count: 37, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/adium/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/adium/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/adium/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/adium/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/adium/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/adium/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/adium/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/adium/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/adium/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/adium/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/adium/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/adium/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/adium/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/adium/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/adium/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/adium/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/adium/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/adium/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/adium/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/adium/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/adium/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12752329, + url: 'https://api.github.com/repos/mralexgray/ADLivelyTableView', + fork: true, + name: 'ADLivelyTableView', + size: 73, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ADLivelyTableView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc1MjMyOQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ADLivelyTableView.git', + svn_url: 'https://github.com/mralexgray/ADLivelyTableView', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://applidium.com/en/news/lively_uitableview/', + html_url: 'https://github.com/mralexgray/ADLivelyTableView', + keys_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ADLivelyTableView.git', + forks_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/forks', + full_name: 'mralexgray/ADLivelyTableView', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/pulls{/number}', + pushed_at: '2012-05-10T10:40:15Z', + teams_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/trees{/sha}', + created_at: '2013-09-11T09:18:01Z', + events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/merges', + mirror_url: null, + updated_at: '2013-09-11T09:18:03Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/compare/{base}...{head}', + description: 'Lively UITableView', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5697379, + url: 'https://api.github.com/repos/mralexgray/AFIncrementalStore', + fork: true, + name: 'AFIncrementalStore', + size: 139, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFIncrementalStore.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1Njk3Mzc5', + private: false, + ssh_url: 'git@github.com:mralexgray/AFIncrementalStore.git', + svn_url: 'https://github.com/mralexgray/AFIncrementalStore', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AFIncrementalStore', + keys_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFIncrementalStore.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/forks', + full_name: 'mralexgray/AFIncrementalStore', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/pulls{/number}', + pushed_at: '2012-09-01T22:46:25Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/trees{/sha}', + created_at: '2012-09-06T04:20:33Z', + events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/merges', + mirror_url: null, + updated_at: '2013-01-12T03:15:29Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/compare/{base}...{head}', + description: 'Core Data Persistence with AFNetworking, Done Right', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 6969621, + url: 'https://api.github.com/repos/mralexgray/AFNetworking', + fork: true, + name: 'AFNetworking', + size: 4341, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFNetworking.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk2OTY5NjIx', + private: false, + ssh_url: 'git@github.com:mralexgray/AFNetworking.git', + svn_url: 'https://github.com/mralexgray/AFNetworking', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://afnetworking.com', + html_url: 'https://github.com/mralexgray/AFNetworking', + keys_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AFNetworking/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFNetworking.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/forks', + full_name: 'mralexgray/AFNetworking', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/pulls{/number}', + pushed_at: '2014-01-24T07:14:32Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/trees{/sha}', + created_at: '2012-12-02T17:00:04Z', + events_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/merges', + mirror_url: null, + updated_at: '2014-01-24T07:14:33Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/compare/{base}...{head}', + description: 'A delightful iOS and OS X networking framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9485541, + url: 'https://api.github.com/repos/mralexgray/AGNSSplitView', + fork: true, + name: 'AGNSSplitView', + size: 68, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGNSSplitView.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5NDg1NTQx', + private: false, + ssh_url: 'git@github.com:mralexgray/AGNSSplitView.git', + svn_url: 'https://github.com/mralexgray/AGNSSplitView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGNSSplitView', + keys_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGNSSplitView.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/forks', + full_name: 'mralexgray/AGNSSplitView', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/pulls{/number}', + pushed_at: '2013-02-26T00:32:32Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/trees{/sha}', + created_at: '2013-04-17T00:10:13Z', + events_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/merges', + mirror_url: null, + updated_at: '2013-04-17T00:10:13Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/compare/{base}...{head}', + description: 'Simple NSSplitView additions.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12767784, + url: 'https://api.github.com/repos/mralexgray/AGScopeBar', + fork: true, + name: 'AGScopeBar', + size: 64, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGScopeBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc2Nzc4NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AGScopeBar.git', + svn_url: 'https://github.com/mralexgray/AGScopeBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGScopeBar', + keys_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGScopeBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/forks', + full_name: 'mralexgray/AGScopeBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/pulls{/number}', + pushed_at: '2013-05-07T03:35:29Z', + teams_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/trees{/sha}', + created_at: '2013-09-11T21:06:54Z', + events_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/merges', + mirror_url: null, + updated_at: '2013-09-11T21:06:54Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/compare/{base}...{head}', + description: 'Custom scope bar implementation for Cocoa', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 31829499, + url: 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin', + fork: true, + name: 'agvtool-xcode-plugin', + size: 102, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/agvtool-xcode-plugin.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkzMTgyOTQ5OQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/agvtool-xcode-plugin.git', + svn_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + keys_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/agvtool-xcode-plugin.git', + forks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/forks', + full_name: 'mralexgray/agvtool-xcode-plugin', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/pulls{/number}', + pushed_at: '2015-03-08T00:04:31Z', + teams_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/trees{/sha}', + created_at: '2015-03-07T22:15:38Z', + events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/merges', + mirror_url: null, + updated_at: '2015-03-07T22:15:41Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/compare/{base}...{head}', + description: 'this is a plugin wrapper for agvtool for xcode.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9227846, + url: 'https://api.github.com/repos/mralexgray/AHContentBrowser', + fork: true, + name: 'AHContentBrowser', + size: 223, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHContentBrowser.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MjI3ODQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/AHContentBrowser.git', + svn_url: 'https://github.com/mralexgray/AHContentBrowser', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHContentBrowser', + keys_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHContentBrowser.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/forks', + full_name: 'mralexgray/AHContentBrowser', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/pulls{/number}', + pushed_at: '2013-03-13T17:38:23Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/trees{/sha}', + created_at: '2013-04-04T20:56:16Z', + events_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/merges', + mirror_url: null, + updated_at: '2015-10-22T05:00:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/compare/{base}...{head}', + description: + 'A Mac only webview that loads a fast readable version of the website if available.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 37430328, + url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl', + fork: true, + name: 'AHLaunchCtl', + size: 592, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLaunchCtl.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNzQzMDMyOA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLaunchCtl.git', + svn_url: 'https://github.com/mralexgray/AHLaunchCtl', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHLaunchCtl', + keys_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLaunchCtl.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/forks', + full_name: 'mralexgray/AHLaunchCtl', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/pulls{/number}', + pushed_at: '2015-05-26T18:50:48Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/trees{/sha}', + created_at: '2015-06-14T21:31:03Z', + events_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/merges', + mirror_url: null, + updated_at: '2015-06-14T21:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/compare/{base}...{head}', + description: 'LaunchD Framework for Cocoa Apps', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9167473, + url: 'https://api.github.com/repos/mralexgray/AHLayout', + fork: true, + name: 'AHLayout', + size: 359, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLayout.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MTY3NDcz', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLayout.git', + svn_url: 'https://github.com/mralexgray/AHLayout', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AHLayout', + keys_url: + 'https://api.github.com/repos/mralexgray/AHLayout/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLayout/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLayout.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHLayout/forks', + full_name: 'mralexgray/AHLayout', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHLayout/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHLayout/pulls{/number}', + pushed_at: '2013-07-08T02:31:14Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHLayout/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/trees{/sha}', + created_at: '2013-04-02T10:10:30Z', + events_url: 'https://api.github.com/repos/mralexgray/AHLayout/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHLayout/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AHLayout/merges', + mirror_url: null, + updated_at: '2013-07-08T02:31:17Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLayout/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHLayout/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLayout/compare/{base}...{head}', + description: 'AHLayout', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLayout/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLayout/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLayout/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLayout/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHLayout/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHLayout/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLayout/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHLayout/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLayout/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLayout/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 18450201, + url: 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework', + fork: true, + name: 'Airmail-Plug-In-Framework', + size: 888, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Airmail-Plug-In-Framework.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxODQ1MDIwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Airmail-Plug-In-Framework.git', + svn_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + keys_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/keys{/key_id}', + language: null, + tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/blobs{/sha}', + clone_url: + 'https://github.com/mralexgray/Airmail-Plug-In-Framework.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/forks', + full_name: 'mralexgray/Airmail-Plug-In-Framework', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/pulls{/number}', + pushed_at: '2014-03-27T15:42:19Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/trees{/sha}', + created_at: '2014-04-04T19:33:54Z', + events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/merges', + mirror_url: null, + updated_at: '2014-11-23T19:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5203219, + url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API', + fork: true, + name: 'AJS-iTunes-API', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AJS-iTunes-API.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MjAzMjE5', + private: false, + ssh_url: 'git@github.com:mralexgray/AJS-iTunes-API.git', + svn_url: 'https://github.com/mralexgray/AJS-iTunes-API', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AJS-iTunes-API', + keys_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AJS-iTunes-API.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/forks', + full_name: 'mralexgray/AJS-iTunes-API', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/pulls{/number}', + pushed_at: '2011-10-30T22:26:48Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/trees{/sha}', + created_at: '2012-07-27T10:20:58Z', + events_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/merges', + mirror_url: null, + updated_at: '2013-01-11T11:00:05Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/compare/{base}...{head}', + description: + 'Cocoa wrapper for the iTunes search API - for iOS and Mac OSX projects', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10093801, + url: 'https://api.github.com/repos/mralexgray/Alcatraz', + fork: true, + name: 'Alcatraz', + size: 3668, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alcatraz.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDA5MzgwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alcatraz.git', + svn_url: 'https://github.com/mralexgray/Alcatraz', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/Alcatraz', + keys_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Alcatraz/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Alcatraz.git', + forks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/forks', + full_name: 'mralexgray/Alcatraz', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/pulls{/number}', + pushed_at: '2014-03-19T12:50:37Z', + teams_url: 'https://api.github.com/repos/mralexgray/Alcatraz/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/trees{/sha}', + created_at: '2013-05-16T04:41:13Z', + events_url: 'https://api.github.com/repos/mralexgray/Alcatraz/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Alcatraz/merges', + mirror_url: null, + updated_at: '2014-03-19T20:38:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/compare/{base}...{head}', + description: 'The most awesome (and only) Xcode package manager!', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12916552, + url: 'https://api.github.com/repos/mralexgray/alcatraz-packages', + fork: true, + name: 'alcatraz-packages', + size: 826, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alcatraz-packages.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjkxNjU1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alcatraz-packages.git', + svn_url: 'https://github.com/mralexgray/alcatraz-packages', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/alcatraz-packages', + keys_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/keys{/key_id}', + language: 'Ruby', + tags_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alcatraz-packages.git', + forks_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/forks', + full_name: 'mralexgray/alcatraz-packages', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/pulls{/number}', + pushed_at: '2015-12-14T16:21:31Z', + teams_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/trees{/sha}', + created_at: '2013-09-18T07:15:24Z', + events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/merges', + mirror_url: null, + updated_at: '2015-11-10T20:52:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/compare/{base}...{head}', + description: 'Package list repository for Alcatraz', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 44278362, + url: 'https://api.github.com/repos/mralexgray/alexicons', + fork: true, + name: 'alexicons', + size: 257, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alexicons.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk0NDI3ODM2Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alexicons.git', + svn_url: 'https://github.com/mralexgray/alexicons', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/alexicons', + keys_url: + 'https://api.github.com/repos/mralexgray/alexicons/keys{/key_id}', + language: 'CoffeeScript', + tags_url: 'https://api.github.com/repos/mralexgray/alexicons/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alexicons.git', + forks_url: 'https://api.github.com/repos/mralexgray/alexicons/forks', + full_name: 'mralexgray/alexicons', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/alexicons/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/alexicons/pulls{/number}', + pushed_at: '2015-10-16T03:57:51Z', + teams_url: 'https://api.github.com/repos/mralexgray/alexicons/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/trees{/sha}', + created_at: '2015-10-14T21:49:39Z', + events_url: + 'https://api.github.com/repos/mralexgray/alexicons/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/alexicons/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/alexicons/merges', + mirror_url: null, + updated_at: '2015-10-15T06:20:08Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alexicons/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alexicons/compare/{base}...{head}', + description: 'Get popular cat names', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alexicons/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alexicons/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alexicons/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alexicons/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alexicons/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alexicons/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/alexicons/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/alexicons/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alexicons/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alexicons/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alexicons/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alexicons/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alexicons/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alexicons/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10476467, + url: 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate', + fork: true, + name: 'Alfred-Google-Translate', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alfred-Google-Translate.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ3NjQ2Nw==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alfred-Google-Translate.git', + svn_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + keys_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/keys{/key_id}', + language: 'Shell', + tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/blobs{/sha}', + clone_url: + 'https://github.com/mralexgray/Alfred-Google-Translate.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/forks', + full_name: 'mralexgray/Alfred-Google-Translate', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/pulls{/number}', + pushed_at: '2013-01-12T19:39:03Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/trees{/sha}', + created_at: '2013-06-04T10:45:10Z', + events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/merges', + mirror_url: null, + updated_at: '2013-06-04T10:45:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/compare/{base}...{head}', + description: + 'Extension for Alfred that will do a Google translate for you', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5524019, + url: 'https://api.github.com/repos/mralexgray/Amber', + fork: false, + name: 'Amber', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amber.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1NTI0MDE5', + private: false, + ssh_url: 'git@github.com:mralexgray/Amber.git', + svn_url: 'https://github.com/mralexgray/Amber', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Amber', + keys_url: + 'https://api.github.com/repos/mralexgray/Amber/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/Amber/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Amber/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amber.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amber/forks', + full_name: 'mralexgray/Amber', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amber/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Amber/pulls{/number}', + pushed_at: '2012-08-23T10:38:25Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amber/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Amber/git/trees{/sha}', + created_at: '2012-08-23T10:38:24Z', + events_url: 'https://api.github.com/repos/mralexgray/Amber/events', + has_issues: true, + issues_url: + 'https://api.github.com/repos/mralexgray/Amber/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Amber/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amber/merges', + mirror_url: null, + updated_at: '2013-01-11T22:25:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amber/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Amber/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amber/compare/{base}...{head}', + description: 'Fork of the difficult-to-deal-with Amber.framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amber/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amber/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amber/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Amber/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Amber/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Amber/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Amber/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amber/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Amber/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Amber/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amber/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Amber/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Amber/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amber/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Amber/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amber/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amber/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amber/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amber/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10809060, + url: 'https://api.github.com/repos/mralexgray/Amethyst', + fork: true, + name: 'Amethyst', + size: 12623, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amethyst.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDgwOTA2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/Amethyst.git', + svn_url: 'https://github.com/mralexgray/Amethyst', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ianyh.github.io/Amethyst/', + html_url: 'https://github.com/mralexgray/Amethyst', + keys_url: + 'https://api.github.com/repos/mralexgray/Amethyst/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Amethyst/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amethyst.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amethyst/forks', + full_name: 'mralexgray/Amethyst', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amethyst/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Amethyst/pulls{/number}', + pushed_at: '2013-06-18T02:54:11Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amethyst/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/trees{/sha}', + created_at: '2013-06-20T00:34:22Z', + events_url: 'https://api.github.com/repos/mralexgray/Amethyst/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Amethyst/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amethyst/merges', + mirror_url: null, + updated_at: '2013-06-20T00:34:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amethyst/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Amethyst/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amethyst/compare/{base}...{head}', + description: 'Tiling window manager for OS X.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amethyst/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Amethyst/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Amethyst/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amethyst/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Amethyst/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Amethyst/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amethyst/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Amethyst/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amethyst/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amethyst/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 3684286, + url: 'https://api.github.com/repos/mralexgray/Animated-Paths', + fork: true, + name: 'Animated-Paths', + size: 411, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Animated-Paths.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNjg0Mjg2', + private: false, + ssh_url: 'git@github.com:mralexgray/Animated-Paths.git', + svn_url: 'https://github.com/mralexgray/Animated-Paths', + archived: false, + disabled: false, + has_wiki: true, + homepage: + 'http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/', + html_url: 'https://github.com/mralexgray/Animated-Paths', + keys_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Animated-Paths.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/forks', + full_name: 'mralexgray/Animated-Paths', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/pulls{/number}', + pushed_at: '2010-12-30T20:56:51Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/trees{/sha}', + created_at: '2012-03-11T02:56:38Z', + events_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/merges', + mirror_url: null, + updated_at: '2013-01-08T04:12:21Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/compare/{base}...{head}', + description: + 'Demo project: Animating the drawing of a CGPath with CAShapeLayer.strokeEnd', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16662874, + url: 'https://api.github.com/repos/mralexgray/AnsiLove.framework', + fork: true, + name: 'AnsiLove.framework', + size: 3780, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AnsiLove.framework.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjY2Mjg3NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AnsiLove.framework.git', + svn_url: 'https://github.com/mralexgray/AnsiLove.framework', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'http://byteproject.net', + html_url: 'https://github.com/mralexgray/AnsiLove.framework', + keys_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/keys{/key_id}', + language: 'M', + tags_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AnsiLove.framework.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/forks', + full_name: 'mralexgray/AnsiLove.framework', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/pulls{/number}', + pushed_at: '2013-10-04T14:08:38Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/trees{/sha}', + created_at: '2014-02-09T08:30:27Z', + events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/merges', + mirror_url: null, + updated_at: '2015-01-13T20:41:46Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/compare/{base}...{head}', + description: 'Cocoa Framework for rendering ANSi / ASCII art', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5189563, + url: 'https://api.github.com/repos/mralexgray/ANTrackBar', + fork: true, + name: 'ANTrackBar', + size: 94, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ANTrackBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MTg5NTYz', + private: false, + ssh_url: 'git@github.com:mralexgray/ANTrackBar.git', + svn_url: 'https://github.com/mralexgray/ANTrackBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/ANTrackBar', + keys_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ANTrackBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/forks', + full_name: 'mralexgray/ANTrackBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/pulls{/number}', + pushed_at: '2012-03-09T01:40:02Z', + teams_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/trees{/sha}', + created_at: '2012-07-26T08:17:22Z', + events_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/merges', + mirror_url: null, + updated_at: '2013-01-11T10:29:56Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/compare/{base}...{head}', + description: + 'An easy-to-use Cocoa seek bar with a pleasing appearance', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16240152, + url: 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C', + fork: true, + name: 'AOP-in-Objective-C', + size: 340, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AOP-in-Objective-C.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjI0MDE1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/AOP-in-Objective-C.git', + svn_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://innoli.hu/en/opensource/', + html_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + keys_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AOP-in-Objective-C.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/forks', + full_name: 'mralexgray/AOP-in-Objective-C', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/pulls{/number}', + pushed_at: '2014-02-12T16:23:20Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/trees{/sha}', + created_at: '2014-01-25T21:18:04Z', + events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/merges', + mirror_url: null, + updated_at: '2014-06-19T19:38:12Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/compare/{base}...{head}', + description: + 'An NSProxy based library for easily enabling AOP like functionality in Objective-C.', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/languages', + default_branch: 'travis-coveralls', + milestones_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13141936, + url: 'https://api.github.com/repos/mralexgray/Apaxy', + fork: true, + name: 'Apaxy', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Apaxy.git', + license: { + key: 'unlicense', + url: 'https://api.github.com/licenses/unlicense', + name: 'The Unlicense', + node_id: 'MDc6TGljZW5zZTE1', + spdx_id: 'Unlicense', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzE0MTkzNg==', + private: false, + ssh_url: 'git@github.com:mralexgray/Apaxy.git', + svn_url: 'https://github.com/mralexgray/Apaxy', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Apaxy', + keys_url: + 'https://api.github.com/repos/mralexgray/Apaxy/keys{/key_id}', + language: 'CSS', + tags_url: 'https://api.github.com/repos/mralexgray/Apaxy/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Apaxy.git', + forks_url: 'https://api.github.com/repos/mralexgray/Apaxy/forks', + full_name: 'mralexgray/Apaxy', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Apaxy/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Apaxy/pulls{/number}', + pushed_at: '2013-08-02T16:01:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/Apaxy/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/trees{/sha}', + created_at: '2013-09-27T05:05:35Z', + events_url: 'https://api.github.com/repos/mralexgray/Apaxy/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Apaxy/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Apaxy/merges', + mirror_url: null, + updated_at: '2018-02-16T21:40:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Apaxy/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Apaxy/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Apaxy/compare/{base}...{head}', + description: + 'A simple, customisable theme for your Apache directory listing.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Apaxy/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Apaxy/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Apaxy/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Apaxy/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Apaxy/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Apaxy/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Apaxy/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Apaxy/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Apaxy/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Apaxy/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Apaxy/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Apaxy/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Apaxy/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Apaxy/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 20027360, + url: 'https://api.github.com/repos/mralexgray/app', + fork: true, + name: 'app', + size: 1890, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/app.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkyMDAyNzM2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/app.git', + svn_url: 'https://github.com/mralexgray/app', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/app', + keys_url: 'https://api.github.com/repos/mralexgray/app/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/app/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/app/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/app.git', + forks_url: 'https://api.github.com/repos/mralexgray/app/forks', + full_name: 'mralexgray/app', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/app/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/app/pulls{/number}', + pushed_at: '2014-05-20T19:51:38Z', + teams_url: 'https://api.github.com/repos/mralexgray/app/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/app/git/trees{/sha}', + created_at: '2014-05-21T15:54:20Z', + events_url: 'https://api.github.com/repos/mralexgray/app/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/app/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/app/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/app/merges', + mirror_url: null, + updated_at: '2014-05-21T15:54:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/app/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/app/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/app/compare/{base}...{head}', + description: 'Instant mobile web app creation', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/app/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/app/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/app/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/app/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/app/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/app/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/app/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/app/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/app/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/app/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/app/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/app/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/app/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/app/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/app/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/app/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/app/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/app/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/app/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/app/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/app/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + ], + data2: [ + { + id: 6104546, + url: 'https://api.github.com/repos/mralexgray/-REPONAME', + fork: false, + name: '-REPONAME', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/-REPONAME.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk2MTA0NTQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/-REPONAME.git', + svn_url: 'https://github.com/mralexgray/-REPONAME', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/-REPONAME', + keys_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/-REPONAME/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/-REPONAME.git', + forks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/forks', + full_name: 'mralexgray/-REPONAME', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/-REPONAME/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/pulls{/number}', + pushed_at: '2012-10-06T16:37:39Z', + teams_url: 'https://api.github.com/repos/mralexgray/-REPONAME/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/trees{/sha}', + created_at: '2012-10-06T16:37:39Z', + events_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/events', + has_issues: true, + issues_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/merges', + mirror_url: null, + updated_at: '2013-01-12T13:39:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/-REPONAME/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 104510411, + url: 'https://api.github.com/repos/mralexgray/...', + fork: true, + name: '...', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/....git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ1MTA0MTE=', + private: false, + ssh_url: 'git@github.com:mralexgray/....git', + svn_url: 'https://github.com/mralexgray/...', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'https://driesvints.com/blog/getting-started-with-dotfiles', + html_url: 'https://github.com/mralexgray/...', + keys_url: 'https://api.github.com/repos/mralexgray/.../keys{/key_id}', + language: 'Shell', + tags_url: 'https://api.github.com/repos/mralexgray/.../tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/.../git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/....git', + forks_url: 'https://api.github.com/repos/mralexgray/.../forks', + full_name: 'mralexgray/...', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/.../hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/.../pulls{/number}', + pushed_at: '2017-09-15T08:27:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/.../teams', + trees_url: + 'https://api.github.com/repos/mralexgray/.../git/trees{/sha}', + created_at: '2017-09-22T19:19:42Z', + events_url: 'https://api.github.com/repos/mralexgray/.../events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/.../issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/.../labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/.../merges', + mirror_url: null, + updated_at: '2017-09-22T19:20:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/.../{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/.../commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/.../compare/{base}...{head}', + description: ':computer: Public repo for my personal dotfiles.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/.../branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/.../comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/.../contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/.../git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/.../git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/.../releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/.../statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/.../assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/.../downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/.../languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/.../milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/.../stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/.../deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/.../git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/.../subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/.../contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/.../issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/.../subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/.../collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/.../issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/.../notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 58656723, + url: 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol', + fork: true, + name: '2200087-Serial-Protocol', + size: 41, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/2200087-Serial-Protocol.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1ODY1NjcyMw==', + private: false, + ssh_url: 'git@github.com:mralexgray/2200087-Serial-Protocol.git', + svn_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://daviddworken.com', + html_url: 'https://github.com/mralexgray/2200087-Serial-Protocol', + keys_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/keys{/key_id}', + language: 'Python', + tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/blobs{/sha}', + clone_url: + 'https://github.com/mralexgray/2200087-Serial-Protocol.git', + forks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/forks', + full_name: 'mralexgray/2200087-Serial-Protocol', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/pulls{/number}', + pushed_at: '2016-05-12T16:07:24Z', + teams_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/trees{/sha}', + created_at: '2016-05-12T16:05:28Z', + events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/merges', + mirror_url: null, + updated_at: '2016-05-12T16:05:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/compare/{base}...{head}', + description: + "A reverse engineered protocol description and accompanying code for Radioshack's 2200087 multimeter", + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/2200087-Serial-Protocol/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13121042, + url: 'https://api.github.com/repos/mralexgray/ace', + fork: true, + name: 'ace', + size: 21080, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ace.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzEyMTA0Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/ace.git', + svn_url: 'https://github.com/mralexgray/ace', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ace.c9.io', + html_url: 'https://github.com/mralexgray/ace', + keys_url: 'https://api.github.com/repos/mralexgray/ace/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/ace/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ace/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ace.git', + forks_url: 'https://api.github.com/repos/mralexgray/ace/forks', + full_name: 'mralexgray/ace', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ace/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ace/pulls{/number}', + pushed_at: '2013-10-26T12:34:48Z', + teams_url: 'https://api.github.com/repos/mralexgray/ace/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ace/git/trees{/sha}', + created_at: '2013-09-26T11:58:10Z', + events_url: 'https://api.github.com/repos/mralexgray/ace/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ace/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ace/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ace/merges', + mirror_url: null, + updated_at: '2013-10-26T12:34:49Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ace/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ace/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ace/compare/{base}...{head}', + description: 'Ace (Ajax.org Cloud9 Editor)', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ace/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ace/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ace/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ace/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ace/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ace/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ace/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ace/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ace/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ace/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ace/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ace/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ace/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ace/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ace/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ace/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ace/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ace/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ace/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ace/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ace/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10791045, + url: 'https://api.github.com/repos/mralexgray/ACEView', + fork: true, + name: 'ACEView', + size: 1733, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ACEView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDc5MTA0NQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ACEView.git', + svn_url: 'https://github.com/mralexgray/ACEView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/ACEView', + keys_url: + 'https://api.github.com/repos/mralexgray/ACEView/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ACEView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ACEView.git', + forks_url: 'https://api.github.com/repos/mralexgray/ACEView/forks', + full_name: 'mralexgray/ACEView', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ACEView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ACEView/pulls{/number}', + pushed_at: '2014-05-09T01:36:23Z', + teams_url: 'https://api.github.com/repos/mralexgray/ACEView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/trees{/sha}', + created_at: '2013-06-19T12:15:04Z', + events_url: 'https://api.github.com/repos/mralexgray/ACEView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ACEView/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/ACEView/merges', + mirror_url: null, + updated_at: '2015-11-24T01:14:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ACEView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ACEView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ACEView/compare/{base}...{head}', + description: + 'Use the wonderful ACE editor in your Cocoa applications', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ACEView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ACEView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ACEView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ACEView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ACEView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ACEView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ACEView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ACEView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ACEView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ACEView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ACEView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ACEView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ACEView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ACEView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ACEView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ACEView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ACEView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13623648, + url: 'https://api.github.com/repos/mralexgray/ActiveLog', + fork: true, + name: 'ActiveLog', + size: 60, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ActiveLog.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzYyMzY0OA==', + private: false, + ssh_url: 'git@github.com:mralexgray/ActiveLog.git', + svn_url: 'https://github.com/mralexgray/ActiveLog', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://deepitpro.com/en/articles/ActiveLog/info/', + html_url: 'https://github.com/mralexgray/ActiveLog', + keys_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ActiveLog/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ActiveLog.git', + forks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/forks', + full_name: 'mralexgray/ActiveLog', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ActiveLog/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/pulls{/number}', + pushed_at: '2011-07-03T06:28:59Z', + teams_url: 'https://api.github.com/repos/mralexgray/ActiveLog/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/trees{/sha}', + created_at: '2013-10-16T15:52:37Z', + events_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/merges', + mirror_url: null, + updated_at: '2013-10-16T15:52:37Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/compare/{base}...{head}', + description: 'Shut up all logs with active filter.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ActiveLog/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9716210, + url: 'https://api.github.com/repos/mralexgray/adium', + fork: false, + name: 'adium', + size: 277719, + forks: 37, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/adium.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk5NzE2MjEw', + private: false, + ssh_url: 'git@github.com:mralexgray/adium.git', + svn_url: 'https://github.com/mralexgray/adium', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/adium', + keys_url: + 'https://api.github.com/repos/mralexgray/adium/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/adium/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/adium/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/adium.git', + forks_url: 'https://api.github.com/repos/mralexgray/adium/forks', + full_name: 'mralexgray/adium', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/adium/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/adium/pulls{/number}', + pushed_at: '2013-04-26T16:43:53Z', + teams_url: 'https://api.github.com/repos/mralexgray/adium/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/adium/git/trees{/sha}', + created_at: '2013-04-27T14:59:33Z', + events_url: 'https://api.github.com/repos/mralexgray/adium/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/adium/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/adium/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/adium/merges', + mirror_url: null, + updated_at: '2019-12-11T06:51:45Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/adium/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/adium/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/adium/compare/{base}...{head}', + description: 'Official mirror of hg.adium.im', + forks_count: 37, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/adium/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/adium/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/adium/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/adium/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/adium/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/adium/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/adium/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/adium/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/adium/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/adium/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/adium/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/adium/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/adium/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/adium/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/adium/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/adium/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/adium/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/adium/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/adium/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/adium/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/adium/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12752329, + url: 'https://api.github.com/repos/mralexgray/ADLivelyTableView', + fork: true, + name: 'ADLivelyTableView', + size: 73, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ADLivelyTableView.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc1MjMyOQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/ADLivelyTableView.git', + svn_url: 'https://github.com/mralexgray/ADLivelyTableView', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://applidium.com/en/news/lively_uitableview/', + html_url: 'https://github.com/mralexgray/ADLivelyTableView', + keys_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ADLivelyTableView.git', + forks_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/forks', + full_name: 'mralexgray/ADLivelyTableView', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/pulls{/number}', + pushed_at: '2012-05-10T10:40:15Z', + teams_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/trees{/sha}', + created_at: '2013-09-11T09:18:01Z', + events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/merges', + mirror_url: null, + updated_at: '2013-09-11T09:18:03Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/compare/{base}...{head}', + description: 'Lively UITableView', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ADLivelyTableView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5697379, + url: 'https://api.github.com/repos/mralexgray/AFIncrementalStore', + fork: true, + name: 'AFIncrementalStore', + size: 139, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFIncrementalStore.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk1Njk3Mzc5', + private: false, + ssh_url: 'git@github.com:mralexgray/AFIncrementalStore.git', + svn_url: 'https://github.com/mralexgray/AFIncrementalStore', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AFIncrementalStore', + keys_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFIncrementalStore.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/forks', + full_name: 'mralexgray/AFIncrementalStore', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/pulls{/number}', + pushed_at: '2012-09-01T22:46:25Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/trees{/sha}', + created_at: '2012-09-06T04:20:33Z', + events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/merges', + mirror_url: null, + updated_at: '2013-01-12T03:15:29Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/compare/{base}...{head}', + description: 'Core Data Persistence with AFNetworking, Done Right', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFIncrementalStore/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 6969621, + url: 'https://api.github.com/repos/mralexgray/AFNetworking', + fork: true, + name: 'AFNetworking', + size: 4341, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AFNetworking.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnk2OTY5NjIx', + private: false, + ssh_url: 'git@github.com:mralexgray/AFNetworking.git', + svn_url: 'https://github.com/mralexgray/AFNetworking', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://afnetworking.com', + html_url: 'https://github.com/mralexgray/AFNetworking', + keys_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AFNetworking/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AFNetworking.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/forks', + full_name: 'mralexgray/AFNetworking', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/pulls{/number}', + pushed_at: '2014-01-24T07:14:32Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/trees{/sha}', + created_at: '2012-12-02T17:00:04Z', + events_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/merges', + mirror_url: null, + updated_at: '2014-01-24T07:14:33Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/compare/{base}...{head}', + description: 'A delightful iOS and OS X networking framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AFNetworking/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9485541, + url: 'https://api.github.com/repos/mralexgray/AGNSSplitView', + fork: true, + name: 'AGNSSplitView', + size: 68, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGNSSplitView.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5NDg1NTQx', + private: false, + ssh_url: 'git@github.com:mralexgray/AGNSSplitView.git', + svn_url: 'https://github.com/mralexgray/AGNSSplitView', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGNSSplitView', + keys_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGNSSplitView.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/forks', + full_name: 'mralexgray/AGNSSplitView', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/pulls{/number}', + pushed_at: '2013-02-26T00:32:32Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/trees{/sha}', + created_at: '2013-04-17T00:10:13Z', + events_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/merges', + mirror_url: null, + updated_at: '2013-04-17T00:10:13Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/compare/{base}...{head}', + description: 'Simple NSSplitView additions.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGNSSplitView/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12767784, + url: 'https://api.github.com/repos/mralexgray/AGScopeBar', + fork: true, + name: 'AGScopeBar', + size: 64, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AGScopeBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjc2Nzc4NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AGScopeBar.git', + svn_url: 'https://github.com/mralexgray/AGScopeBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AGScopeBar', + keys_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AGScopeBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/forks', + full_name: 'mralexgray/AGScopeBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/pulls{/number}', + pushed_at: '2013-05-07T03:35:29Z', + teams_url: 'https://api.github.com/repos/mralexgray/AGScopeBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/trees{/sha}', + created_at: '2013-09-11T21:06:54Z', + events_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/merges', + mirror_url: null, + updated_at: '2013-09-11T21:06:54Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/compare/{base}...{head}', + description: 'Custom scope bar implementation for Cocoa', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AGScopeBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 31829499, + url: 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin', + fork: true, + name: 'agvtool-xcode-plugin', + size: 102, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/agvtool-xcode-plugin.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkzMTgyOTQ5OQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/agvtool-xcode-plugin.git', + svn_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/agvtool-xcode-plugin', + keys_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/agvtool-xcode-plugin.git', + forks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/forks', + full_name: 'mralexgray/agvtool-xcode-plugin', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/pulls{/number}', + pushed_at: '2015-03-08T00:04:31Z', + teams_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/trees{/sha}', + created_at: '2015-03-07T22:15:38Z', + events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/merges', + mirror_url: null, + updated_at: '2015-03-07T22:15:41Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/compare/{base}...{head}', + description: 'this is a plugin wrapper for agvtool for xcode.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/agvtool-xcode-plugin/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9227846, + url: 'https://api.github.com/repos/mralexgray/AHContentBrowser', + fork: true, + name: 'AHContentBrowser', + size: 223, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHContentBrowser.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MjI3ODQ2', + private: false, + ssh_url: 'git@github.com:mralexgray/AHContentBrowser.git', + svn_url: 'https://github.com/mralexgray/AHContentBrowser', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHContentBrowser', + keys_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHContentBrowser.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/forks', + full_name: 'mralexgray/AHContentBrowser', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/pulls{/number}', + pushed_at: '2013-03-13T17:38:23Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/trees{/sha}', + created_at: '2013-04-04T20:56:16Z', + events_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/merges', + mirror_url: null, + updated_at: '2015-10-22T05:00:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/compare/{base}...{head}', + description: + 'A Mac only webview that loads a fast readable version of the website if available.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHContentBrowser/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 37430328, + url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl', + fork: true, + name: 'AHLaunchCtl', + size: 592, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLaunchCtl.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNzQzMDMyOA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLaunchCtl.git', + svn_url: 'https://github.com/mralexgray/AHLaunchCtl', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AHLaunchCtl', + keys_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLaunchCtl/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLaunchCtl.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/forks', + full_name: 'mralexgray/AHLaunchCtl', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/pulls{/number}', + pushed_at: '2015-05-26T18:50:48Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/trees{/sha}', + created_at: '2015-06-14T21:31:03Z', + events_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/merges', + mirror_url: null, + updated_at: '2015-06-14T21:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/compare/{base}...{head}', + description: 'LaunchD Framework for Cocoa Apps', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLaunchCtl/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 9167473, + url: 'https://api.github.com/repos/mralexgray/AHLayout', + fork: true, + name: 'AHLayout', + size: 359, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AHLayout.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk5MTY3NDcz', + private: false, + ssh_url: 'git@github.com:mralexgray/AHLayout.git', + svn_url: 'https://github.com/mralexgray/AHLayout', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/AHLayout', + keys_url: + 'https://api.github.com/repos/mralexgray/AHLayout/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/AHLayout/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AHLayout.git', + forks_url: 'https://api.github.com/repos/mralexgray/AHLayout/forks', + full_name: 'mralexgray/AHLayout', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/AHLayout/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AHLayout/pulls{/number}', + pushed_at: '2013-07-08T02:31:14Z', + teams_url: 'https://api.github.com/repos/mralexgray/AHLayout/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/trees{/sha}', + created_at: '2013-04-02T10:10:30Z', + events_url: 'https://api.github.com/repos/mralexgray/AHLayout/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AHLayout/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/AHLayout/merges', + mirror_url: null, + updated_at: '2013-07-08T02:31:17Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AHLayout/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AHLayout/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AHLayout/compare/{base}...{head}', + description: 'AHLayout', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AHLayout/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AHLayout/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AHLayout/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AHLayout/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AHLayout/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AHLayout/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AHLayout/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AHLayout/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AHLayout/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AHLayout/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AHLayout/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AHLayout/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AHLayout/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AHLayout/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AHLayout/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 18450201, + url: 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework', + fork: true, + name: 'Airmail-Plug-In-Framework', + size: 888, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Airmail-Plug-In-Framework.git', + license: { + key: 'gpl-2.0', + url: 'https://api.github.com/licenses/gpl-2.0', + name: 'GNU General Public License v2.0', + node_id: 'MDc6TGljZW5zZTg=', + spdx_id: 'GPL-2.0', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxODQ1MDIwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Airmail-Plug-In-Framework.git', + svn_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Airmail-Plug-In-Framework', + keys_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/keys{/key_id}', + language: null, + tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/blobs{/sha}', + clone_url: + 'https://github.com/mralexgray/Airmail-Plug-In-Framework.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/forks', + full_name: 'mralexgray/Airmail-Plug-In-Framework', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/pulls{/number}', + pushed_at: '2014-03-27T15:42:19Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/trees{/sha}', + created_at: '2014-04-04T19:33:54Z', + events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/merges', + mirror_url: null, + updated_at: '2014-11-23T19:31:04Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/compare/{base}...{head}', + description: null, + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Airmail-Plug-In-Framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5203219, + url: 'https://api.github.com/repos/mralexgray/AJS-iTunes-API', + fork: true, + name: 'AJS-iTunes-API', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AJS-iTunes-API.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MjAzMjE5', + private: false, + ssh_url: 'git@github.com:mralexgray/AJS-iTunes-API.git', + svn_url: 'https://github.com/mralexgray/AJS-iTunes-API', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/AJS-iTunes-API', + keys_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AJS-iTunes-API.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/forks', + full_name: 'mralexgray/AJS-iTunes-API', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/pulls{/number}', + pushed_at: '2011-10-30T22:26:48Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/trees{/sha}', + created_at: '2012-07-27T10:20:58Z', + events_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/merges', + mirror_url: null, + updated_at: '2013-01-11T11:00:05Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/compare/{base}...{head}', + description: + 'Cocoa wrapper for the iTunes search API - for iOS and Mac OSX projects', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AJS-iTunes-API/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10093801, + url: 'https://api.github.com/repos/mralexgray/Alcatraz', + fork: true, + name: 'Alcatraz', + size: 3668, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alcatraz.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDA5MzgwMQ==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alcatraz.git', + svn_url: 'https://github.com/mralexgray/Alcatraz', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/Alcatraz', + keys_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Alcatraz/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Alcatraz.git', + forks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/forks', + full_name: 'mralexgray/Alcatraz', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Alcatraz/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/pulls{/number}', + pushed_at: '2014-03-19T12:50:37Z', + teams_url: 'https://api.github.com/repos/mralexgray/Alcatraz/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/trees{/sha}', + created_at: '2013-05-16T04:41:13Z', + events_url: 'https://api.github.com/repos/mralexgray/Alcatraz/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Alcatraz/merges', + mirror_url: null, + updated_at: '2014-03-19T20:38:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/compare/{base}...{head}', + description: 'The most awesome (and only) Xcode package manager!', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alcatraz/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 12916552, + url: 'https://api.github.com/repos/mralexgray/alcatraz-packages', + fork: true, + name: 'alcatraz-packages', + size: 826, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alcatraz-packages.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMjkxNjU1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alcatraz-packages.git', + svn_url: 'https://github.com/mralexgray/alcatraz-packages', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'mneorr.github.com/Alcatraz', + html_url: 'https://github.com/mralexgray/alcatraz-packages', + keys_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/keys{/key_id}', + language: 'Ruby', + tags_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alcatraz-packages.git', + forks_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/forks', + full_name: 'mralexgray/alcatraz-packages', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/pulls{/number}', + pushed_at: '2015-12-14T16:21:31Z', + teams_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/trees{/sha}', + created_at: '2013-09-18T07:15:24Z', + events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/merges', + mirror_url: null, + updated_at: '2015-11-10T20:52:30Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/compare/{base}...{head}', + description: 'Package list repository for Alcatraz', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alcatraz-packages/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 44278362, + url: 'https://api.github.com/repos/mralexgray/alexicons', + fork: true, + name: 'alexicons', + size: 257, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/alexicons.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk0NDI3ODM2Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/alexicons.git', + svn_url: 'https://github.com/mralexgray/alexicons', + archived: false, + disabled: false, + has_wiki: false, + homepage: null, + html_url: 'https://github.com/mralexgray/alexicons', + keys_url: + 'https://api.github.com/repos/mralexgray/alexicons/keys{/key_id}', + language: 'CoffeeScript', + tags_url: 'https://api.github.com/repos/mralexgray/alexicons/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/alexicons.git', + forks_url: 'https://api.github.com/repos/mralexgray/alexicons/forks', + full_name: 'mralexgray/alexicons', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/alexicons/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/alexicons/pulls{/number}', + pushed_at: '2015-10-16T03:57:51Z', + teams_url: 'https://api.github.com/repos/mralexgray/alexicons/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/trees{/sha}', + created_at: '2015-10-14T21:49:39Z', + events_url: + 'https://api.github.com/repos/mralexgray/alexicons/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/alexicons/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/alexicons/merges', + mirror_url: null, + updated_at: '2015-10-15T06:20:08Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/alexicons/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/alexicons/compare/{base}...{head}', + description: 'Get popular cat names', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/alexicons/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/alexicons/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/alexicons/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/alexicons/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/alexicons/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/alexicons/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/alexicons/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/alexicons/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/alexicons/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/alexicons/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/alexicons/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/alexicons/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/alexicons/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/alexicons/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/alexicons/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/alexicons/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/alexicons/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10476467, + url: 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate', + fork: true, + name: 'Alfred-Google-Translate', + size: 103, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Alfred-Google-Translate.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDQ3NjQ2Nw==', + private: false, + ssh_url: 'git@github.com:mralexgray/Alfred-Google-Translate.git', + svn_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Alfred-Google-Translate', + keys_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/keys{/key_id}', + language: 'Shell', + tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/blobs{/sha}', + clone_url: + 'https://github.com/mralexgray/Alfred-Google-Translate.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/forks', + full_name: 'mralexgray/Alfred-Google-Translate', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/pulls{/number}', + pushed_at: '2013-01-12T19:39:03Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/trees{/sha}', + created_at: '2013-06-04T10:45:10Z', + events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/merges', + mirror_url: null, + updated_at: '2013-06-04T10:45:10Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/compare/{base}...{head}', + description: + 'Extension for Alfred that will do a Google translate for you', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Alfred-Google-Translate/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5524019, + url: 'https://api.github.com/repos/mralexgray/Amber', + fork: false, + name: 'Amber', + size: 48, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amber.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1NTI0MDE5', + private: false, + ssh_url: 'git@github.com:mralexgray/Amber.git', + svn_url: 'https://github.com/mralexgray/Amber', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Amber', + keys_url: + 'https://api.github.com/repos/mralexgray/Amber/keys{/key_id}', + language: null, + tags_url: 'https://api.github.com/repos/mralexgray/Amber/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Amber/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amber.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amber/forks', + full_name: 'mralexgray/Amber', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amber/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Amber/pulls{/number}', + pushed_at: '2012-08-23T10:38:25Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amber/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Amber/git/trees{/sha}', + created_at: '2012-08-23T10:38:24Z', + events_url: 'https://api.github.com/repos/mralexgray/Amber/events', + has_issues: true, + issues_url: + 'https://api.github.com/repos/mralexgray/Amber/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Amber/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amber/merges', + mirror_url: null, + updated_at: '2013-01-11T22:25:35Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amber/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Amber/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amber/compare/{base}...{head}', + description: 'Fork of the difficult-to-deal-with Amber.framework', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amber/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amber/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amber/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Amber/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Amber/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Amber/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Amber/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amber/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Amber/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Amber/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amber/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Amber/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Amber/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amber/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Amber/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amber/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amber/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amber/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amber/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amber/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 10809060, + url: 'https://api.github.com/repos/mralexgray/Amethyst', + fork: true, + name: 'Amethyst', + size: 12623, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Amethyst.git', + license: { + key: 'mit', + url: 'https://api.github.com/licenses/mit', + name: 'MIT License', + node_id: 'MDc6TGljZW5zZTEz', + spdx_id: 'MIT', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMDgwOTA2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/Amethyst.git', + svn_url: 'https://github.com/mralexgray/Amethyst', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://ianyh.github.io/Amethyst/', + html_url: 'https://github.com/mralexgray/Amethyst', + keys_url: + 'https://api.github.com/repos/mralexgray/Amethyst/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/Amethyst/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Amethyst.git', + forks_url: 'https://api.github.com/repos/mralexgray/Amethyst/forks', + full_name: 'mralexgray/Amethyst', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Amethyst/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Amethyst/pulls{/number}', + pushed_at: '2013-06-18T02:54:11Z', + teams_url: 'https://api.github.com/repos/mralexgray/Amethyst/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/trees{/sha}', + created_at: '2013-06-20T00:34:22Z', + events_url: 'https://api.github.com/repos/mralexgray/Amethyst/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Amethyst/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Amethyst/merges', + mirror_url: null, + updated_at: '2013-06-20T00:34:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Amethyst/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Amethyst/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Amethyst/compare/{base}...{head}', + description: 'Tiling window manager for OS X.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Amethyst/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Amethyst/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Amethyst/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Amethyst/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Amethyst/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Amethyst/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Amethyst/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Amethyst/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Amethyst/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Amethyst/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Amethyst/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Amethyst/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Amethyst/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Amethyst/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Amethyst/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 3684286, + url: 'https://api.github.com/repos/mralexgray/Animated-Paths', + fork: true, + name: 'Animated-Paths', + size: 411, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Animated-Paths.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkzNjg0Mjg2', + private: false, + ssh_url: 'git@github.com:mralexgray/Animated-Paths.git', + svn_url: 'https://github.com/mralexgray/Animated-Paths', + archived: false, + disabled: false, + has_wiki: true, + homepage: + 'http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/', + html_url: 'https://github.com/mralexgray/Animated-Paths', + keys_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Animated-Paths.git', + forks_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/forks', + full_name: 'mralexgray/Animated-Paths', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/pulls{/number}', + pushed_at: '2010-12-30T20:56:51Z', + teams_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/trees{/sha}', + created_at: '2012-03-11T02:56:38Z', + events_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/merges', + mirror_url: null, + updated_at: '2013-01-08T04:12:21Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/compare/{base}...{head}', + description: + 'Demo project: Animating the drawing of a CGPath with CAShapeLayer.strokeEnd', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Animated-Paths/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16662874, + url: 'https://api.github.com/repos/mralexgray/AnsiLove.framework', + fork: true, + name: 'AnsiLove.framework', + size: 3780, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AnsiLove.framework.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjY2Mjg3NA==', + private: false, + ssh_url: 'git@github.com:mralexgray/AnsiLove.framework.git', + svn_url: 'https://github.com/mralexgray/AnsiLove.framework', + archived: false, + disabled: false, + has_wiki: false, + homepage: 'http://byteproject.net', + html_url: 'https://github.com/mralexgray/AnsiLove.framework', + keys_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/keys{/key_id}', + language: 'M', + tags_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AnsiLove.framework.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/forks', + full_name: 'mralexgray/AnsiLove.framework', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/pulls{/number}', + pushed_at: '2013-10-04T14:08:38Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/trees{/sha}', + created_at: '2014-02-09T08:30:27Z', + events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/merges', + mirror_url: null, + updated_at: '2015-01-13T20:41:46Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/compare/{base}...{head}', + description: 'Cocoa Framework for rendering ANSi / ASCII art', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AnsiLove.framework/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 5189563, + url: 'https://api.github.com/repos/mralexgray/ANTrackBar', + fork: true, + name: 'ANTrackBar', + size: 94, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/ANTrackBar.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnk1MTg5NTYz', + private: false, + ssh_url: 'git@github.com:mralexgray/ANTrackBar.git', + svn_url: 'https://github.com/mralexgray/ANTrackBar', + archived: false, + disabled: false, + has_wiki: true, + homepage: '', + html_url: 'https://github.com/mralexgray/ANTrackBar', + keys_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/keys{/key_id}', + language: 'Objective-C', + tags_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/tags', + watchers: 2, + blobs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/ANTrackBar.git', + forks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/forks', + full_name: 'mralexgray/ANTrackBar', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/pulls{/number}', + pushed_at: '2012-03-09T01:40:02Z', + teams_url: 'https://api.github.com/repos/mralexgray/ANTrackBar/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/trees{/sha}', + created_at: '2012-07-26T08:17:22Z', + events_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/merges', + mirror_url: null, + updated_at: '2013-01-11T10:29:56Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/compare/{base}...{head}', + description: + 'An easy-to-use Cocoa seek bar with a pleasing appearance', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/stargazers', + watchers_count: 2, + deployments_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/events{/number}', + stargazers_count: 2, + subscription_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/ANTrackBar/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 16240152, + url: 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C', + fork: true, + name: 'AOP-in-Objective-C', + size: 340, + forks: 1, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/AOP-in-Objective-C.git', + license: null, + node_id: 'MDEwOlJlcG9zaXRvcnkxNjI0MDE1Mg==', + private: false, + ssh_url: 'git@github.com:mralexgray/AOP-in-Objective-C.git', + svn_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + archived: false, + disabled: false, + has_wiki: true, + homepage: 'http://innoli.hu/en/opensource/', + html_url: 'https://github.com/mralexgray/AOP-in-Objective-C', + keys_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/keys{/key_id}', + language: 'Objective-C', + tags_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/AOP-in-Objective-C.git', + forks_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/forks', + full_name: 'mralexgray/AOP-in-Objective-C', + has_pages: false, + hooks_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/pulls{/number}', + pushed_at: '2014-02-12T16:23:20Z', + teams_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/trees{/sha}', + created_at: '2014-01-25T21:18:04Z', + events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/labels{/name}', + merges_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/merges', + mirror_url: null, + updated_at: '2014-06-19T19:38:12Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/compare/{base}...{head}', + description: + 'An NSProxy based library for easily enabling AOP like functionality in Objective-C.', + forks_count: 1, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/languages', + default_branch: 'travis-coveralls', + milestones_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/AOP-in-Objective-C/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 13141936, + url: 'https://api.github.com/repos/mralexgray/Apaxy', + fork: true, + name: 'Apaxy', + size: 113, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/Apaxy.git', + license: { + key: 'unlicense', + url: 'https://api.github.com/licenses/unlicense', + name: 'The Unlicense', + node_id: 'MDc6TGljZW5zZTE1', + spdx_id: 'Unlicense', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkxMzE0MTkzNg==', + private: false, + ssh_url: 'git@github.com:mralexgray/Apaxy.git', + svn_url: 'https://github.com/mralexgray/Apaxy', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/Apaxy', + keys_url: + 'https://api.github.com/repos/mralexgray/Apaxy/keys{/key_id}', + language: 'CSS', + tags_url: 'https://api.github.com/repos/mralexgray/Apaxy/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/Apaxy.git', + forks_url: 'https://api.github.com/repos/mralexgray/Apaxy/forks', + full_name: 'mralexgray/Apaxy', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/Apaxy/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/Apaxy/pulls{/number}', + pushed_at: '2013-08-02T16:01:32Z', + teams_url: 'https://api.github.com/repos/mralexgray/Apaxy/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/trees{/sha}', + created_at: '2013-09-27T05:05:35Z', + events_url: 'https://api.github.com/repos/mralexgray/Apaxy/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/Apaxy/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/Apaxy/merges', + mirror_url: null, + updated_at: '2018-02-16T21:40:24Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/Apaxy/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/Apaxy/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/Apaxy/compare/{base}...{head}', + description: + 'A simple, customisable theme for your Apache directory listing.', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/Apaxy/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/Apaxy/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/Apaxy/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/Apaxy/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/Apaxy/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/Apaxy/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/Apaxy/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/Apaxy/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/Apaxy/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/Apaxy/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/Apaxy/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/Apaxy/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/Apaxy/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/Apaxy/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/Apaxy/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/Apaxy/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/Apaxy/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + { + id: 20027360, + url: 'https://api.github.com/repos/mralexgray/app', + fork: true, + name: 'app', + size: 1890, + forks: 0, + owner: { + id: 262517, + url: 'https://api.github.com/users/mralexgray', + type: 'User', + login: 'mralexgray', + node_id: 'MDQ6VXNlcjI2MjUxNw==', + html_url: 'https://github.com/mralexgray', + gists_url: + 'https://api.github.com/users/mralexgray/gists{/gist_id}', + repos_url: 'https://api.github.com/users/mralexgray/repos', + avatar_url: 'https://avatars.githubusercontent.com/u/262517?v=4', + events_url: + 'https://api.github.com/users/mralexgray/events{/privacy}', + site_admin: false, + gravatar_id: '', + starred_url: + 'https://api.github.com/users/mralexgray/starred{/owner}{/repo}', + followers_url: 'https://api.github.com/users/mralexgray/followers', + following_url: + 'https://api.github.com/users/mralexgray/following{/other_user}', + organizations_url: 'https://api.github.com/users/mralexgray/orgs', + subscriptions_url: + 'https://api.github.com/users/mralexgray/subscriptions', + received_events_url: + 'https://api.github.com/users/mralexgray/received_events', + }, + topics: [], + git_url: 'git://github.com/mralexgray/app.git', + license: { + key: 'other', + url: null, + name: 'Other', + node_id: 'MDc6TGljZW5zZTA=', + spdx_id: 'NOASSERTION', + }, + node_id: 'MDEwOlJlcG9zaXRvcnkyMDAyNzM2MA==', + private: false, + ssh_url: 'git@github.com:mralexgray/app.git', + svn_url: 'https://github.com/mralexgray/app', + archived: false, + disabled: false, + has_wiki: true, + homepage: null, + html_url: 'https://github.com/mralexgray/app', + keys_url: 'https://api.github.com/repos/mralexgray/app/keys{/key_id}', + language: 'JavaScript', + tags_url: 'https://api.github.com/repos/mralexgray/app/tags', + watchers: 0, + blobs_url: + 'https://api.github.com/repos/mralexgray/app/git/blobs{/sha}', + clone_url: 'https://github.com/mralexgray/app.git', + forks_url: 'https://api.github.com/repos/mralexgray/app/forks', + full_name: 'mralexgray/app', + has_pages: false, + hooks_url: 'https://api.github.com/repos/mralexgray/app/hooks', + pulls_url: + 'https://api.github.com/repos/mralexgray/app/pulls{/number}', + pushed_at: '2014-05-20T19:51:38Z', + teams_url: 'https://api.github.com/repos/mralexgray/app/teams', + trees_url: + 'https://api.github.com/repos/mralexgray/app/git/trees{/sha}', + created_at: '2014-05-21T15:54:20Z', + events_url: 'https://api.github.com/repos/mralexgray/app/events', + has_issues: false, + issues_url: + 'https://api.github.com/repos/mralexgray/app/issues{/number}', + labels_url: + 'https://api.github.com/repos/mralexgray/app/labels{/name}', + merges_url: 'https://api.github.com/repos/mralexgray/app/merges', + mirror_url: null, + updated_at: '2014-05-21T15:54:22Z', + visibility: 'public', + archive_url: + 'https://api.github.com/repos/mralexgray/app/{archive_format}{/ref}', + commits_url: + 'https://api.github.com/repos/mralexgray/app/commits{/sha}', + compare_url: + 'https://api.github.com/repos/mralexgray/app/compare/{base}...{head}', + description: 'Instant mobile web app creation', + forks_count: 0, + is_template: false, + open_issues: 0, + branches_url: + 'https://api.github.com/repos/mralexgray/app/branches{/branch}', + comments_url: + 'https://api.github.com/repos/mralexgray/app/comments{/number}', + contents_url: + 'https://api.github.com/repos/mralexgray/app/contents/{+path}', + git_refs_url: + 'https://api.github.com/repos/mralexgray/app/git/refs{/sha}', + git_tags_url: + 'https://api.github.com/repos/mralexgray/app/git/tags{/sha}', + has_projects: true, + releases_url: + 'https://api.github.com/repos/mralexgray/app/releases{/id}', + statuses_url: + 'https://api.github.com/repos/mralexgray/app/statuses/{sha}', + allow_forking: true, + assignees_url: + 'https://api.github.com/repos/mralexgray/app/assignees{/user}', + downloads_url: + 'https://api.github.com/repos/mralexgray/app/downloads', + has_downloads: true, + languages_url: + 'https://api.github.com/repos/mralexgray/app/languages', + default_branch: 'master', + milestones_url: + 'https://api.github.com/repos/mralexgray/app/milestones{/number}', + stargazers_url: + 'https://api.github.com/repos/mralexgray/app/stargazers', + watchers_count: 0, + deployments_url: + 'https://api.github.com/repos/mralexgray/app/deployments', + git_commits_url: + 'https://api.github.com/repos/mralexgray/app/git/commits{/sha}', + subscribers_url: + 'https://api.github.com/repos/mralexgray/app/subscribers', + contributors_url: + 'https://api.github.com/repos/mralexgray/app/contributors', + issue_events_url: + 'https://api.github.com/repos/mralexgray/app/issues/events{/number}', + stargazers_count: 0, + subscription_url: + 'https://api.github.com/repos/mralexgray/app/subscription', + collaborators_url: + 'https://api.github.com/repos/mralexgray/app/collaborators{/collaborator}', + issue_comment_url: + 'https://api.github.com/repos/mralexgray/app/issues/comments{/number}', + notifications_url: + 'https://api.github.com/repos/mralexgray/app/notifications{?since,all,participating}', + open_issues_count: 0, + web_commit_signoff_required: false, + }, + ], + trait1: 'new-val', + }, + library: { + name: 'http', + }, + }, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + messageId: 'c864b4cd-8f07-4922-b3d0-82ef04c987d3', + timestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2022-08-18T08:43:13.521+05:30', + request_ip: '[::1]', + anonymousId: 'anon-id-new', + originalTimestamp: '2022-08-18T08:43:15.539+05:30', + }, + PayloadSize: 95943, + LastJobStatus: { + JobID: 0, + JobState: '', + AttemptNum: 0, + ExecTime: '0001-01-01T00:00:00Z', + RetryTime: '0001-01-01T00:00:00Z', + ErrorCode: '', + ErrorResponse: null, + Parameters: null, + WorkspaceId: '', + }, + Parameters: { + record_id: null, + source_id: '2DTlLPQxignYp4ag9sISgGN2uY7', + event_name: '', + event_type: 'identify', + message_id: 'c864b4cd-8f07-4922-b3d0-82ef04c987d3', + received_at: '2022-08-18T08:43:13.521+05:30', + workspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + transform_at: 'router', + source_job_id: '', + destination_id: '2DTozIMGtBwTGNJtuvdPByFSL2Z', + gateway_job_id: 6, + source_task_id: '', + source_batch_id: '', + source_category: '', + source_job_run_id: '', + source_task_run_id: '', + source_definition_id: '2DTlJaW1jHhM8B27Et2CMTZoxZF', + destination_definition_id: '', + }, + WorkspaceId: '2DTlBMipxWfJZzZ1SsjELQWvkwd', + }, + workerAssignedTime: '2022-08-18T08:43:16.586825+05:30', + }, + ], + batched: false, + statusCode: 400, + error: 'payload size limit exceeded', + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/launchdarkly_audience/processor/data.ts b/test/integrations/destinations/launchdarkly_audience/processor/data.ts new file mode 100644 index 00000000000..b26cf60f4c8 --- /dev/null +++ b/test/integrations/destinations/launchdarkly_audience/processor/data.ts @@ -0,0 +1,611 @@ +export const data = [ + { + name: 'launchdarkly_audience', + description: 'Unsupported event type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user123', + type: 'abc', + properties: { + listData: { + add: [ + { + identifier: 'alex@email.com', + }, + { + identifier: 'ryan@email.com', + }, + { + identifier: 'van@email.com', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + audienceId: 'test-audienceId', + audienceName: 'test-audienceName', + accessToken: 'test-accessToken', + clientSideId: 'test-clientSideId', + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + 'Event type abc is not supported. Aborting message.: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Event type abc is not supported. Aborting message.', + statTags: { + destType: 'LAUNCHDARKLY_AUDIENCE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'launchdarkly_audience', + description: 'List data is not passed', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user123', + type: 'audiencelist', + properties: {}, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + audienceId: 'test-audienceId', + audienceName: 'test-audienceName', + accessToken: 'test-accessToken', + clientSideId: 'test-clientSideId', + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + '`listData` is not present inside properties. Aborting message.: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: `listData` is not present inside properties. Aborting message.', + statTags: { + destType: 'LAUNCHDARKLY_AUDIENCE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'launchdarkly_audience', + description: 'List data is empty', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user123', + type: 'audiencelist', + properties: { + listData: {}, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + audienceId: 'test-audienceId', + audienceName: 'test-audienceName', + accessToken: 'test-accessToken', + clientSideId: 'test-clientSideId', + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + '`listData` is empty. Aborting message.: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: `listData` is empty. Aborting message.', + statTags: { + destType: 'LAUNCHDARKLY_AUDIENCE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'launchdarkly_audience', + description: 'Unsupported action type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user123', + type: 'audiencelist', + properties: { + listData: { + update: [ + { + identifier: 'alex@email.com', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + audienceId: 'test-audienceId', + audienceName: 'test-audienceName', + accessToken: 'test-accessToken', + clientSideId: 'test-clientSideId', + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + 'Unsupported action type. Aborting message.: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Unsupported action type. Aborting message.', + statTags: { + destType: 'LAUNCHDARKLY_AUDIENCE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'launchdarkly_audience', + description: 'Add members to the audience list', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user123', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + identifier: 'alex@email.com', + }, + { + identifier: 'ryan@email.com', + }, + { + identifier: 'van@email.com', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + audienceId: 'test-audienceId', + audienceName: 'test-audienceName', + accessToken: 'test-accessToken', + clientSideId: 'test-clientSideId', + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://app.launchdarkly.com/api/v2/segment-targets/rudderstack', + headers: { + Authorization: 'test-accessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + environmentId: 'test-clientSideId', + cohortId: 'test-audienceId', + cohortName: 'test-audienceName', + listData: { + add: [ + { + id: 'alex@email.com', + }, + { + id: 'ryan@email.com', + }, + { + id: 'van@email.com', + }, + ], + remove: [], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + }, + ], + }, + }, + }, + { + name: 'launchdarkly_audience', + description: 'Remove members from the audience list', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user123', + type: 'audiencelist', + properties: { + listData: { + remove: [ + { + identifier: 'alex@email.com', + }, + { + identifier: 'ryan@email.com', + }, + { + identifier: 'van@email.com', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + audienceId: 'test-audienceId', + audienceName: 'test-audienceName', + accessToken: 'test-accessToken', + clientSideId: 'test-clientSideId', + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://app.launchdarkly.com/api/v2/segment-targets/rudderstack', + headers: { + Authorization: 'test-accessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + environmentId: 'test-clientSideId', + cohortId: 'test-audienceId', + cohortName: 'test-audienceName', + listData: { + remove: [ + { + id: 'alex@email.com', + }, + { + id: 'ryan@email.com', + }, + { + id: 'van@email.com', + }, + ], + add: [], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + }, + ], + }, + }, + }, + { + name: 'launchdarkly_audience', + description: 'Add/Remove members', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user123', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + identifier: 'alex@email.com', + }, + { + userId: 'user1', + }, + ], + remove: [ + { + identifier: 'ryan@email.com', + }, + { + identifier: 'van@email.com', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + Config: { + audienceId: 'test-audienceId', + audienceName: 'test-audienceName', + accessToken: 'test-accessToken', + clientSideId: 'test-clientSideId', + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://app.launchdarkly.com/api/v2/segment-targets/rudderstack', + headers: { + Authorization: 'test-accessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + environmentId: 'test-clientSideId', + cohortId: 'test-audienceId', + cohortName: 'test-audienceName', + listData: { + add: [ + { + id: 'alex@email.com', + }, + ], + remove: [ + { + id: 'ryan@email.com', + }, + { + id: 'van@email.com', + }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/leanplum/processor/data.ts b/test/integrations/destinations/leanplum/processor/data.ts new file mode 100644 index 00000000000..207918a864e --- /dev/null +++ b/test/integrations/destinations/leanplum/processor/data.ts @@ -0,0 +1,1708 @@ +export const data = [ + { + name: 'leanplum', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + messageId: 'id1', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'start' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + deviceId: '5094f5704b9cf2b3', + appVersion: '1.0', + systemName: 'Android', + systemVersion: '8.1.0', + deviceName: 'generic_x86', + deviceModel: 'Android SDK built for x86', + userAttributes: { anonymousId: '5094f5704b9cf2b3' }, + locale: 'en-US', + timezone: 'Asia/Kolkata', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'advance' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + state: 'MainActivity', + deviceId: '5094f5704b9cf2b3', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'leanplum', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + messageId: 'id2', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key__', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'start' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key__', + userId: '5094f5704b9cf2b3', + deviceId: '5094f5704b9cf2b3', + appVersion: '1.0', + systemName: 'Android', + systemVersion: '8.1.0', + deviceName: 'generic_x86', + deviceModel: 'Android SDK built for x86', + userAttributes: { anonymousId: '5094f5704b9cf2b3' }, + locale: 'en-US', + timezone: 'Asia/Kolkata', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'advance' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key__', + userId: '5094f5704b9cf2b3', + state: 'MainActivity', + deviceId: '5094f5704b9cf2b3', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'leanplum', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + messageId: 'id3', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'start' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + deviceId: '5094f5704b9cf2b3', + appVersion: '1.0', + systemName: 'Android', + systemVersion: '8.1.0', + deviceName: 'generic_x86', + deviceModel: 'Android SDK built for x86', + userAttributes: { anonymousId: '5094f5704b9cf2b3' }, + locale: 'en-US', + timezone: 'Asia/Kolkata', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'advance' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + state: 'MainActivity', + deviceId: '5094f5704b9cf2b3', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'leanplum', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + messageId: 'id3', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'page', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'start' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + deviceId: '5094f5704b9cf2b3', + appVersion: '1.0', + systemName: 'Android', + systemVersion: '8.1.0', + deviceName: 'generic_x86', + deviceModel: 'Android SDK built for x86', + userAttributes: { anonymousId: '5094f5704b9cf2b3' }, + locale: 'en-US', + timezone: 'Asia/Kolkata', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'advance' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + state: 'MainActivity', + deviceId: '5094f5704b9cf2b3', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'leanplum', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + name: 'Test Page Name', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + messageId: 'id3', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'page', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'start' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + deviceId: '5094f5704b9cf2b3', + appVersion: '1.0', + systemName: 'Android', + systemVersion: '8.1.0', + deviceName: 'generic_x86', + deviceModel: 'Android SDK built for x86', + userAttributes: { anonymousId: '5094f5704b9cf2b3' }, + locale: 'en-US', + timezone: 'Asia/Kolkata', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'advance' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + state: 'Test Page Name', + deviceId: '5094f5704b9cf2b3', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'leanplum', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + messageId: 'id4', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'start' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + deviceId: '5094f5704b9cf2b3', + appVersion: '1.0', + systemName: 'Android', + systemVersion: '8.1.0', + deviceName: 'generic_x86', + deviceModel: 'Android SDK built for x86', + userAttributes: { anonymousId: '5094f5704b9cf2b3' }, + locale: 'en-US', + timezone: 'Asia/Kolkata', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'advance' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + state: 'MainActivity', + deviceId: '5094f5704b9cf2b3', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'leanplum', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + messageId: 'id5', + properties: { automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'start' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + deviceId: '5094f5704b9cf2b3', + appVersion: '1.0', + systemName: 'Android', + systemVersion: '8.1.0', + deviceName: 'generic_x86', + deviceModel: 'Android SDK built for x86', + userAttributes: { anonymousId: '5094f5704b9cf2b3' }, + locale: 'en-US', + timezone: 'Asia/Kolkata', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'advance' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + state: 'MainActivity', + deviceId: '5094f5704b9cf2b3', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'leanplum', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + integrations: { All: true }, + messageId: 'id6', + properties: { automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from ["properties.name","event"]', + statTags: { + destType: 'LEANPLUM', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'leanplum', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + id: 'some_developer_id', + createAt: '2019-10-14T09:03:17.562Z', + address: { country: 'USA', city: 'NY' }, + country: 'India', + city: 'Delhi', + }, + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '00000000000000000000000000', + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'setUserAttributes' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '00000000000000000000000000', + newUserId: 'some_developer_id', + userAttributes: { + id: 'some_developer_id', + createAt: '2019-10-14T09:03:17.562Z', + address: { country: 'USA', city: 'NY' }, + country: 'India', + city: 'Delhi', + }, + created: 1571043798, + locale: 'en-US', + country: 'USA', + city: 'NY', + time: 1571043798, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '00000000000000000000000000', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'leanplum', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + messageId: 'id1', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'start' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + deviceId: '5094f5704b9cf2b3', + appVersion: '1.0', + systemName: 'Android', + systemVersion: '8.1.0', + deviceName: 'generic_x86', + deviceModel: 'Android SDK built for x86', + userAttributes: { anonymousId: '5094f5704b9cf2b3' }, + locale: 'en-US', + timezone: 'Asia/Kolkata', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'advance' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + state: 'MainActivity', + deviceId: '5094f5704b9cf2b3', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'leanplum', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + messageId: 'id1', + properties: { automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'start' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + deviceId: '5094f5704b9cf2b3', + appVersion: '1.0', + systemName: 'Android', + systemVersion: '8.1.0', + deviceName: 'generic_x86', + deviceModel: 'Android SDK built for x86', + userAttributes: { anonymousId: '5094f5704b9cf2b3' }, + locale: 'en-US', + timezone: 'Asia/Kolkata', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'advance' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + state: 'MainActivity', + deviceId: '5094f5704b9cf2b3', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'leanplum', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + integrations: { All: true }, + messageId: 'id1', + properties: { automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from ["properties.name","event"]', + statTags: { + destType: 'LEANPLUM', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'leanplum', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'account: logged out', + integrations: { All: true }, + messageId: 'id1', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'track', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'start' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + deviceId: '5094f5704b9cf2b3', + appVersion: '1.0', + systemName: 'Android', + systemVersion: '8.1.0', + deviceName: 'generic_x86', + deviceModel: 'Android SDK built for x86', + userAttributes: { anonymousId: '5094f5704b9cf2b3' }, + locale: 'en-US', + timezone: 'Asia/Kolkata', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'track' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + event: 'account: logged out', + deviceId: '5094f5704b9cf2b3', + params: { name: 'MainActivity', automatic: true }, + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'leanplum', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'account: logged out', + integrations: { All: true }, + messageId: 'id1', + properties: { name: 'MainActivity', automatic: true, total: 2.45, currency: 'USD' }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'track', + sentAt: '2020-03-12T09:05:13.042Z', + }, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'start' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + deviceId: '5094f5704b9cf2b3', + appVersion: '1.0', + systemName: 'Android', + systemVersion: '8.1.0', + deviceName: 'generic_x86', + deviceModel: 'Android SDK built for x86', + userAttributes: { anonymousId: '5094f5704b9cf2b3' }, + locale: 'en-US', + timezone: 'Asia/Kolkata', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { 'Content-Type': 'application/json' }, + params: { action: 'track' }, + body: { + JSON: { + apiVersion: '1.0.6', + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + userId: '5094f5704b9cf2b3', + event: 'account: logged out', + deviceId: '5094f5704b9cf2b3', + params: { name: 'MainActivity', automatic: true, total: 2.45, currency: 'USD' }, + value: 2.45, + currencyCode: 'USD', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/leanplum/router/data.ts b/test/integrations/destinations/leanplum/router/data.ts new file mode 100644 index 00000000000..db75a7fdc47 --- /dev/null +++ b/test/integrations/destinations/leanplum/router/data.ts @@ -0,0 +1,370 @@ +export const data = [ + { + name: 'leanplum', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.1-beta.1', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '8.1.0', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5094f5704b9cf2b3', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { + All: true, + }, + messageId: 'id1', + properties: { + name: 'MainActivity', + automatic: true, + }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + sentAt: '2020-03-12T09:05:13.042Z', + }, + metadata: { + jobId: 1, + }, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + destType: 'leanplum', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { + 'Content-Type': 'application/json', + }, + params: { + action: 'start', + }, + body: { + JSON: { + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + apiVersion: '1.0.6', + userId: '5094f5704b9cf2b3', + deviceId: '5094f5704b9cf2b3', + appVersion: '1.0', + systemName: 'Android', + systemVersion: '8.1.0', + deviceName: 'generic_x86', + deviceModel: 'Android SDK built for x86', + userAttributes: { + anonymousId: '5094f5704b9cf2b3', + }, + locale: 'en-US', + timezone: 'Asia/Kolkata', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { + 'Content-Type': 'application/json', + }, + params: { + action: 'advance', + }, + body: { + JSON: { + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + apiVersion: '1.0.6', + userId: '5094f5704b9cf2b3', + state: 'MainActivity', + deviceId: '5094f5704b9cf2b3', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + ], + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + }, + }, + }, + }, + { + name: 'leanplum', + description: 'Test 1', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.1-beta.1', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '8.1.0', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5094f5704b9cf2b3', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { + All: true, + }, + messageId: 'id2', + properties: { + name: 'MainActivity', + automatic: true, + }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'screen', + sentAt: '2020-03-12T09:05:13.042Z', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key__', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + destType: 'leanplum', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { + 'Content-Type': 'application/json', + }, + params: { + action: 'start', + }, + body: { + JSON: { + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key__', + apiVersion: '1.0.6', + userId: '5094f5704b9cf2b3', + deviceId: '5094f5704b9cf2b3', + appVersion: '1.0', + systemName: 'Android', + systemVersion: '8.1.0', + deviceName: 'generic_x86', + deviceModel: 'Android SDK built for x86', + userAttributes: { + anonymousId: '5094f5704b9cf2b3', + }, + locale: 'en-US', + timezone: 'Asia/Kolkata', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.leanplum.com/api', + headers: { + 'Content-Type': 'application/json', + }, + params: { + action: 'advance', + }, + body: { + JSON: { + appId: 'leanplum_application_id', + clientKey: 'leanplum_client_key__', + apiVersion: '1.0.6', + userId: '5094f5704b9cf2b3', + state: 'MainActivity', + deviceId: '5094f5704b9cf2b3', + time: 1584003903, + devMode: true, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + ], + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + applicationId: 'leanplum_application_id', + clientKey: 'leanplum_client_key__', + isDevelop: true, + useNativeSDK: false, + sendEvents: false, + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/lemnisk/processor/data.ts b/test/integrations/destinations/lemnisk/processor/data.ts new file mode 100644 index 00000000000..9127e247c85 --- /dev/null +++ b/test/integrations/destinations/lemnisk/processor/data.ts @@ -0,0 +1,1088 @@ +export const data = [ + { + name: 'lemnisk', + description: 'Error: Event Type is required ', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user123', + event: 'Product Reviewed', + properties: { review_body: 'Average product, expected much more.' }, + context: { + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + timestamp: '2020-02-02T00:23:09.544Z', + messageId: '1578564113557-af022c68-429e-4af4-b99b-2b9174056383', + }, + destination: { + id: '2JAdls99p6UxoFNSKGwvh0aIt7E', + name: 'Lemnisk Marketing Automation', + enabled: true, + Config: { + plWriteKey: 'pl_writeKey', + pl: 'http://10.11.36.17:8080/analyze/analyze.php', + passKey: '', + apiKey: '', + diapi: '', + cloudMode: 'web', + srcId: '', + diapiWriteKey: '', + }, + destinationDefinition: { + config: { + transformAt: 'processor', + transformAtV1: 'processor', + saveDestinationResponse: true, + includeKeys: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'srcId', + ], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + 'warehouse', + ], + supportedMessageTypes: ['track', 'identify', 'page'], + destConfig: { + defaultConfig: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'deviceModeWriteKey', + 'srcId', + ], + }, + secretKeys: ['apiKey', 'passKey', 'plWriteKey', 'diapiWriteKey'], + }, + responseRules: null, + id: '1j9dYVEplxUC5swbXkpK9fYT7uk', + name: 'LEMNISK_MARKETING_AUTOMATION', + displayName: 'Lemnisk Marketing Automation', + createdAt: '2022-12-12T21:58:08.637Z', + }, + rootStore: null, + isProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type is required', + statTags: { + destType: 'LEMNISK', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'lemnisk', + description: 'Error: Pl Track: Invalid Configuration', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + properties: { + product_id: 'ab1234', + rating: 3, + review_body: 'Average product, expected much more.', + review_id: '12345', + }, + event: 'Product Reviewed', + context: { + library: { name: 'RudderLabs JavaScript SDK', version: '2.9.1' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + timestamp: '2020-02-02T00:23:09.544Z', + messageId: '1578564113557-af022c68-429e-4af4-b99b-2b9174056383', + }, + destination: { + id: '2JAdls99p6UxoFNSKGwvh0aIt7E', + name: 'Lemnisk Marketing Automation', + enabled: true, + Config: { + plWriteKey: 'pl_writeKey', + pl: '', + passKey: '', + apiKey: '', + diapi: '', + cloudMode: 'web', + srcId: '', + diapiWriteKey: '', + }, + destinationDefinition: { + config: { + transformAt: 'processor', + transformAtV1: 'processor', + saveDestinationResponse: true, + includeKeys: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'srcId', + ], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + 'warehouse', + ], + supportedMessageTypes: ['track', 'identify', 'page'], + destConfig: { + defaultConfig: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'deviceModeWriteKey', + 'srcId', + ], + }, + secretKeys: ['apiKey', 'passKey', 'plWriteKey', 'diapiWriteKey'], + }, + responseRules: null, + id: '1j9dYVEplxUC5swbXkpK9fYT7uk', + name: 'LEMNISK_MARKETING_AUTOMATION', + displayName: 'Lemnisk Marketing Automation', + createdAt: '2022-12-12T21:58:08.637Z', + }, + rootStore: null, + isProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Configuration for Web Mode requires write key and region url', + statTags: { + destType: 'LEMNISK', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'lemnisk', + description: 'Error: Invalid Configs for Diapi', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { + ip: '14.5.67.21', + library: { name: 'http' }, + traits: { + firstName: 'test', + lastName: 'rudderlabs', + role: 'Manager', + address: 'Flat No 58 ABC building XYZ Area near PQRS , 354408', + hasPurchased: 'yes', + email: 'abc@xyz.com', + title: 'Mr', + phone: '9876543212', + state: 'Uttar Pradesh', + zipcode: '243001', + prospectOrCustomer: 'Prospect', + country: 'India', + website: 'abc.com', + subscriptionStatus: 'New', + }, + }, + messageId: '25ea6605-c788-4cab-8fed-2cf0b831c4a8', + originalTimestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2022-08-17T10:40:21.162+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2022-08-17T10:40:21.728+05:30', + timestamp: '2020-02-02T05:53:08.977+05:30', + type: 'track', + userId: 'identified user id', + }, + destination: { + id: '2JAdls99p6UxoFNSKGwvh0aIt7E', + name: 'Lemnisk Marketing Automation', + enabled: true, + Config: { + plWriteKey: '', + pl: '', + passKey: '1234', + apiKey: '', + diapi: 'https://crux.lemnisk.co/v3/data', + cloudMode: 'server', + srcId: '1', + diapiWriteKey: '', + }, + destinationDefinition: { + config: { + transformAt: 'processor', + transformAtV1: 'processor', + saveDestinationResponse: true, + includeKeys: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'srcId', + ], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + 'warehouse', + ], + supportedMessageTypes: ['track', 'identify', 'page'], + destConfig: { + defaultConfig: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'deviceModeWriteKey', + 'srcId', + ], + }, + secretKeys: ['apiKey', 'passKey', 'plWriteKey', 'diapiWriteKey'], + }, + responseRules: null, + id: '1j9dYVEplxUC5swbXkpK9fYT7uk', + name: 'LEMNISK_MARKETING_AUTOMATION', + displayName: 'Lemnisk Marketing Automation', + createdAt: '2022-12-12T21:58:08.637Z', + }, + rootStore: null, + isProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Configuration for Server Mode requires Api key, Pass Key and region url', + statTags: { + destType: 'LEMNISK', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'lemnisk', + description: 'Diapi Platform: Track Call', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + properties: { + product_id: 'ab1234', + rating: 3, + review_body: 'Average product, expected much more.', + review_id: '12345', + }, + event: 'Product Reviewed', + context: { + library: { name: 'RudderLabs JavaScript SDK', version: '2.9.1' }, + traits: { email: 'a@example.com' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + timestamp: '2020-02-02T00:23:09.544Z', + messageId: '1578564113557-af022c68-429e-4af4-b99b-2b9174056383', + userId: 'user123', + }, + destination: { + id: '2JAdls99p6UxoFNSKGwvh0aIt7E', + name: 'Lemnisk Marketing Automation', + enabled: true, + Config: { + plWriteKey: '', + pl: '', + passKey: '1234', + apiKey: 'abcd', + diapi: 'https://crux.lemnisk.co/v3/data', + cloudMode: 'server', + srcId: '1', + diapiWriteKey: 'diapi_write_key', + }, + destinationDefinition: { + config: { + transformAt: 'processor', + transformAtV1: 'processor', + saveDestinationResponse: true, + includeKeys: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'srcId', + ], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + 'warehouse', + ], + supportedMessageTypes: ['track', 'identify', 'page'], + destConfig: { + defaultConfig: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'deviceModeWriteKey', + 'srcId', + ], + }, + secretKeys: ['apiKey', 'passKey', 'plWriteKey', 'diapiWriteKey'], + }, + responseRules: null, + id: '1j9dYVEplxUC5swbXkpK9fYT7uk', + name: 'LEMNISK_MARKETING_AUTOMATION', + displayName: 'Lemnisk Marketing Automation', + createdAt: '2022-12-12T21:58:08.637Z', + }, + rootStore: null, + isProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://crux.lemnisk.co/v3/data', + headers: { + 'Content-Type': 'application/json', + 'x-api-passKey': '1234', + 'x-api-key': 'abcd', + }, + params: {}, + body: { + JSON: { + type: 'track', + properties: { + product_id: 'ab1234', + rating: 3, + review_body: 'Average product, expected much more.', + review_id: '12345', + }, + WriteKey: 'diapi_write_key', + eventname: 'Product Reviewed', + userId: 'user123', + email: 'a@example.com', + srcid: '1', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'user123', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'lemnisk', + description: 'Error: Message type not supported', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { + ip: '14.5.67.21', + library: { name: 'http' }, + traits: { state: 'uttar pradesh' }, + }, + messageId: '25ea6605-c788-4cab-8fed-2cf0b831c4a8', + originalTimestamp: '2020-02-02T00:23:09.544Z', + receivedAt: '2022-08-17T10:40:21.162+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2022-08-17T10:40:21.728+05:30', + timestamp: '2020-02-02T05:53:08.977+05:30', + userId: 'identified user id', + type: 'Alias', + }, + destination: { + id: '2JAdls99p6UxoFNSKGwvh0aIt7E', + name: 'Lemnisk Marketing Automation', + enabled: true, + Config: { + plWriteKey: 'pl_writeKey', + pl: 'http://10.11.36.17:8080/analyze/analyze.php', + passKey: '', + apiKey: '', + diapi: '', + cloudMode: 'web', + srcId: '', + diapiWriteKey: '', + }, + destinationDefinition: { + config: { + transformAt: 'processor', + transformAtV1: 'processor', + saveDestinationResponse: true, + includeKeys: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'srcId', + ], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + 'warehouse', + ], + supportedMessageTypes: ['track', 'identify', 'page'], + destConfig: { + defaultConfig: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'deviceModeWriteKey', + 'srcId', + ], + }, + secretKeys: ['apiKey', 'passKey', 'plWriteKey', 'diapiWriteKey'], + }, + responseRules: null, + id: '1j9dYVEplxUC5swbXkpK9fYT7uk', + name: 'LEMNISK_MARKETING_AUTOMATION', + displayName: 'Lemnisk Marketing Automation', + createdAt: '2022-12-12T21:58:08.637Z', + }, + rootStore: null, + isProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type alias is not supported in Web Cloud Mode', + statTags: { + destType: 'LEMNISK', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'lemnisk', + description: ' Page Call -> pl Platform ', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + channel: 'mobile', + context: { + app: { build: '4', name: 'RuddCDN' }, + page: { referrer: 'google.com' }, + device: { id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', name: 'generic_x86_arm' }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.6' }, + os: { name: 'Android', version: '9' }, + timezone: 'Asia/Kolkata', + traits: { customProp: 'customValue' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + name: 'Home', + category: 'Profile', + messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', + originalTimestamp: '2020-09-28T19:53:31.900Z', + properties: { title: 'Home | RudderStack', url: 'http://www.rudderstack.com' }, + receivedAt: '2020-09-29T14:50:43.005+05:30', + sentAt: '2020-09-28T19:53:44.998Z', + timestamp: '2020-09-29T14:50:29.907+05:30', + type: 'page', + }, + destination: { + id: '2JAdls99p6UxoFNSKGwvh0aIt7E', + name: 'Lemnisk Marketing Automation', + enabled: true, + Config: { + plWriteKey: 'pl_writeKey', + pl: 'http://10.11.36.17:8080/analyze/analyze.php', + passKey: '', + apiKey: '', + diapi: '', + cloudMode: 'web', + srcId: '', + diapiWriteKey: '', + }, + destinationDefinition: { + config: { + transformAt: 'processor', + transformAtV1: 'processor', + saveDestinationResponse: true, + includeKeys: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'srcId', + ], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + 'warehouse', + ], + supportedMessageTypes: ['track', 'identify', 'page'], + destConfig: { + defaultConfig: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'deviceModeWriteKey', + 'srcId', + ], + }, + secretKeys: ['apiKey', 'passKey', 'plWriteKey', 'diapiWriteKey'], + }, + responseRules: null, + id: '1j9dYVEplxUC5swbXkpK9fYT7uk', + name: 'LEMNISK_MARKETING_AUTOMATION', + displayName: 'Lemnisk Marketing Automation', + createdAt: '2022-12-12T21:58:08.637Z', + }, + rootStore: null, + isProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'http://10.11.36.17:8080/analyze/analyze.php', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + type: 'page', + context: { + app: { build: '4', name: 'RuddCDN' }, + page: { referrer: 'google.com' }, + device: { id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', name: 'generic_x86_arm' }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.6' }, + os: { name: 'Android', version: '9' }, + timezone: 'Asia/Kolkata', + traits: { customProp: 'customValue' }, + userAgent: { + ua: 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + }, + properties: { title: 'Home | RudderStack', url: 'http://www.rudderstack.com' }, + name: 'Home', + id: 'anon-id-new', + userId: 'anon-id-new', + messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', + originalTimestamp: '2020-09-29T14:50:29.907+05:30', + writeKey: 'pl_writeKey', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'anon-id-new', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'lemnisk', + description: ' Identify Call -> pl Platform ', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + channel: 'mobile', + context: { + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + event: 'Visited Home', + messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', + originalTimestamp: '2020-09-28T19:53:31.900Z', + traits: { name: 'Home | RudderStack', url: 'http://www.rudderstack.com' }, + receivedAt: '2020-09-29T14:50:43.005+05:30', + sentAt: '2020-09-28T19:53:44.998Z', + timestamp: '2020-09-29T14:50:29.907+05:30', + type: 'identify', + }, + destination: { + id: '2JAdls99p6UxoFNSKGwvh0aIt7E', + name: 'Lemnisk Marketing Automation', + enabled: true, + Config: { + plWriteKey: 'pl_writeKey', + pl: 'http://10.11.36.17:8080/analyze/analyze.php', + passKey: '', + apiKey: '', + diapi: '', + cloudMode: 'web', + srcId: '', + diapiWriteKey: '', + }, + destinationDefinition: { + config: { + transformAt: 'processor', + transformAtV1: 'processor', + saveDestinationResponse: true, + includeKeys: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'srcId', + ], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + 'warehouse', + ], + supportedMessageTypes: ['track', 'identify', 'page'], + destConfig: { + defaultConfig: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'deviceModeWriteKey', + 'srcId', + ], + }, + secretKeys: ['apiKey', 'passKey', 'plWriteKey', 'diapiWriteKey'], + }, + responseRules: null, + id: '1j9dYVEplxUC5swbXkpK9fYT7uk', + name: 'LEMNISK_MARKETING_AUTOMATION', + displayName: 'Lemnisk Marketing Automation', + createdAt: '2022-12-12T21:58:08.637Z', + }, + rootStore: null, + isProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'http://10.11.36.17:8080/analyze/analyze.php', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + type: 'identify', + context: { + userAgent: { + ua: 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + }, + customerProperties: { + name: 'Home | RudderStack', + url: 'http://www.rudderstack.com', + }, + id: 'anon-id-new', + userId: 'anon-id-new', + messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', + originalTimestamp: '2020-09-29T14:50:29.907+05:30', + writeKey: 'pl_writeKey', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'anon-id-new', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'lemnisk', + description: ' Track Call -> pl Platform ', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + channel: 'mobile', + context: { + app: { build: '4', name: 'RuddCDN' }, + page: { referrer: 'google.com' }, + device: { id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', name: 'generic_x86_arm' }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.6' }, + os: { name: 'Android', version: '9' }, + timezone: 'Asia/Kolkata', + traits: { customProp: 'customValue' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + event: 'Visited Home', + messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', + originalTimestamp: '2020-09-28T19:53:31.900Z', + properties: { title: 'Home | RudderStack', url: 'http://www.rudderstack.com' }, + receivedAt: '2020-09-29T14:50:43.005+05:30', + sentAt: '2020-09-28T19:53:44.998Z', + timestamp: '2020-09-29T14:50:29.907+05:30', + type: 'track', + }, + destination: { + id: '2JAdls99p6UxoFNSKGwvh0aIt7E', + name: 'Lemnisk Marketing Automation', + enabled: true, + Config: { + plWriteKey: 'pl_writeKey', + pl: 'http://10.11.36.17:8080/analyze/analyze.php', + passKey: '', + apiKey: '', + diapi: '', + cloudMode: 'web', + srcId: '', + diapiWriteKey: '', + }, + destinationDefinition: { + config: { + transformAt: 'processor', + transformAtV1: 'processor', + saveDestinationResponse: true, + includeKeys: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'srcId', + ], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + 'warehouse', + ], + supportedMessageTypes: ['track', 'identify', 'page'], + destConfig: { + defaultConfig: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'deviceModeWriteKey', + 'srcId', + ], + }, + secretKeys: ['apiKey', 'passKey', 'plWriteKey', 'diapiWriteKey'], + }, + responseRules: null, + id: '1j9dYVEplxUC5swbXkpK9fYT7uk', + name: 'LEMNISK_MARKETING_AUTOMATION', + displayName: 'Lemnisk Marketing Automation', + createdAt: '2022-12-12T21:58:08.637Z', + }, + rootStore: null, + isProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'http://10.11.36.17:8080/analyze/analyze.php', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + type: 'track', + context: { + app: { build: '4', name: 'RuddCDN' }, + page: { referrer: 'google.com' }, + device: { id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', name: 'generic_x86_arm' }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.6' }, + os: { name: 'Android', version: '9' }, + timezone: 'Asia/Kolkata', + traits: { customProp: 'customValue' }, + userAgent: { + ua: 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + }, + properties: { title: 'Home | RudderStack', url: 'http://www.rudderstack.com' }, + event: 'Visited Home', + id: 'anon-id-new', + userId: 'anon-id-new', + messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', + originalTimestamp: '2020-09-29T14:50:29.907+05:30', + writeKey: 'pl_writeKey', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'anon-id-new', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/lemnisk/router/data.ts b/test/integrations/destinations/lemnisk/router/data.ts new file mode 100644 index 00000000000..1a1b84f180f --- /dev/null +++ b/test/integrations/destinations/lemnisk/router/data.ts @@ -0,0 +1,664 @@ +export const data = [ + { + name: 'lemnisk', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: 'anon-id-new', + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + type: 'identify', + }, + destination: { + id: '2JAdls99p6UxoFNSKGwvh0aIt7E', + name: 'Lemnisk Marketing Automation', + enabled: true, + Config: { + plWriteKey: '', + pl: 'https://crux.lemnisk.co/v2/data', + passKey: '', + apiKey: '', + diapi: ' ', + cloudMode: 'web', + srcId: '', + diapiWriteKey: '', + }, + destinationDefinition: { + config: { + transformAt: 'processor', + transformAtV1: 'processor', + saveDestinationResponse: true, + includeKeys: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'srcId', + ], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + 'warehouse', + ], + supportedMessageTypes: ['track', 'identify', 'page'], + destConfig: { + defaultConfig: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'deviceModeWriteKey', + 'srcId', + ], + }, + secretKeys: ['apiKey', 'passKey', 'plWriteKey', 'diapiWriteKey'], + }, + responseRules: null, + id: '1j9dYVEplxUC5swbXkpK9fYT7uk', + name: 'LEMNISK_MARKETING_AUTOMATION', + displayName: 'Lemnisk Marketing Automation', + createdAt: '2022-12-12T21:58:08.637Z', + }, + rootStore: null, + isProcessorEnabled: true, + }, + metadata: { + jobId: 1, + }, + }, + { + message: { + anonymousId: 'anon-id-new', + channel: 'mobile', + context: { + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + event: 'Visited Home', + messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', + originalTimestamp: '2020-09-29T14:50:29.907+05:30', + traits: { + name: 'Home | RudderStack', + url: 'http://www.rudderstack.com', + }, + receivedAt: '2020-09-29T14:50:43.005+05:30', + sentAt: '2020-09-28T19:53:44.998Z', + timestamp: '2020-09-29T14:50:29.907+05:30', + type: 'identify', + }, + destination: { + id: '2JAdls99p6UxoFNSKGwvh0aIt7E', + name: 'Lemnisk Marketing Automation', + enabled: true, + Config: { + plWriteKey: 'pl_writeKey', + pl: 'http://10.11.36.17:8080/analyze/analyze.php', + passKey: '', + apiKey: '', + diapi: '', + cloudMode: 'web', + srcId: '', + diapiWriteKey: '', + }, + destinationDefinition: { + config: { + transformAt: 'processor', + transformAtV1: 'processor', + saveDestinationResponse: true, + includeKeys: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'srcId', + ], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + 'warehouse', + ], + supportedMessageTypes: ['track', 'identify', 'page'], + destConfig: { + defaultConfig: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'deviceModeWriteKey', + 'srcId', + ], + }, + secretKeys: ['apiKey', 'passKey', 'plWriteKey', 'diapiWriteKey'], + }, + responseRules: null, + id: '1j9dYVEplxUC5swbXkpK9fYT7uk', + name: 'LEMNISK_MARKETING_AUTOMATION', + displayName: 'Lemnisk Marketing Automation', + createdAt: '2022-12-12T21:58:08.637Z', + }, + rootStore: null, + isProcessorEnabled: true, + }, + metadata: { + anonymousId: '12345', + destinationId: '1ZQVSU9SXNg6KYgZALaqjAO3PIL', + destinationType: 'DISCORD', + jobId: 123, + messageId: '4aaecff2-a513-4bbf-9824-c471f4ac9777', + sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + }, + }, + { + message: { + anonymousId: 'anon-id-new', + channel: 'mobile', + context: { + app: { + build: '4', + name: 'RuddCDN', + }, + page: { + referrer: 'google.com', + }, + device: { + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + name: 'generic_x86_arm', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.6', + }, + os: { + name: 'Android', + version: '9', + }, + timezone: 'Asia/Kolkata', + traits: { + customProp: 'customValue', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + event: 'Visited Home', + messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', + originalTimestamp: '2020-09-28T19:53:31.900Z', + properties: { + title: 'Home | RudderStack', + url: 'http://www.rudderstack.com', + }, + receivedAt: '2020-09-29T14:50:43.005+05:30', + sentAt: '2020-09-28T19:53:44.998Z', + timestamp: '2020-09-29T14:50:29.907+05:30', + type: 'track', + }, + destination: { + id: '2JAdls99p6UxoFNSKGwvh0aIt7E', + name: 'Lemnisk Marketing Automation', + enabled: true, + Config: { + plWriteKey: 'pl_writeKey', + pl: 'http://10.11.36.17:8080/analyze/analyze.php', + passKey: '', + apiKey: '', + diapi: '', + cloudMode: 'web', + srcId: '', + diapiWriteKey: '', + }, + destinationDefinition: { + config: { + transformAt: 'processor', + transformAtV1: 'processor', + saveDestinationResponse: true, + includeKeys: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'srcId', + ], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + 'warehouse', + ], + supportedMessageTypes: ['track', 'identify', 'page'], + destConfig: { + defaultConfig: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'deviceModeWriteKey', + 'srcId', + ], + }, + secretKeys: ['apiKey', 'passKey', 'plWriteKey', 'diapiWriteKey'], + }, + responseRules: null, + id: '1j9dYVEplxUC5swbXkpK9fYT7uk', + name: 'LEMNISK_MARKETING_AUTOMATION', + displayName: 'Lemnisk Marketing Automation', + createdAt: '2022-12-12T21:58:08.637Z', + }, + rootStore: null, + isProcessorEnabled: true, + }, + metadata: { + anonymousId: '00000000000000000000000000', + destinationId: '1ZQVSU9SXNg6KYgZALaqjAO3PIL', + destinationType: 'DISCORD', + jobId: 129, + messageId: '8b8d5937-09bc-49dc-a35e-8cd6370575f8', + sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + }, + }, + ], + destType: 'lemnisk', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + destination: { + id: '2JAdls99p6UxoFNSKGwvh0aIt7E', + name: 'Lemnisk Marketing Automation', + enabled: true, + Config: { + plWriteKey: '', + pl: 'https://crux.lemnisk.co/v2/data', + passKey: '', + apiKey: '', + diapi: ' ', + cloudMode: 'web', + srcId: '', + diapiWriteKey: '', + }, + destinationDefinition: { + config: { + transformAt: 'processor', + transformAtV1: 'processor', + saveDestinationResponse: true, + includeKeys: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'srcId', + ], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + 'warehouse', + ], + supportedMessageTypes: ['track', 'identify', 'page'], + destConfig: { + defaultConfig: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'deviceModeWriteKey', + 'srcId', + ], + }, + secretKeys: ['apiKey', 'passKey', 'plWriteKey', 'diapiWriteKey'], + }, + responseRules: null, + id: '1j9dYVEplxUC5swbXkpK9fYT7uk', + name: 'LEMNISK_MARKETING_AUTOMATION', + displayName: 'Lemnisk Marketing Automation', + createdAt: '2022-12-12T21:58:08.637Z', + }, + rootStore: null, + isProcessorEnabled: true, + }, + metadata: [ + { + jobId: 1, + }, + ], + statTags: { + destType: 'LEMNISK', + feature: 'router', + implementation: 'native', + module: 'destination', + errorCategory: 'dataValidation', + errorType: 'configuration', + }, + batched: false, + statusCode: 400, + error: 'Configuration for Web Mode requires write key and region url', + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'http://10.11.36.17:8080/analyze/analyze.php', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + type: 'identify', + context: { + userAgent: { + ua: 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + }, + customerProperties: { + name: 'Home | RudderStack', + url: 'http://www.rudderstack.com', + }, + id: 'anon-id-new', + userId: 'anon-id-new', + messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', + originalTimestamp: '2020-09-29T14:50:29.907+05:30', + writeKey: 'pl_writeKey', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'anon-id-new', + }, + destination: { + id: '2JAdls99p6UxoFNSKGwvh0aIt7E', + name: 'Lemnisk Marketing Automation', + enabled: true, + Config: { + plWriteKey: 'pl_writeKey', + pl: 'http://10.11.36.17:8080/analyze/analyze.php', + passKey: '', + apiKey: '', + diapi: '', + cloudMode: 'web', + srcId: '', + diapiWriteKey: '', + }, + destinationDefinition: { + config: { + transformAt: 'processor', + transformAtV1: 'processor', + saveDestinationResponse: true, + includeKeys: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'srcId', + ], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + 'warehouse', + ], + supportedMessageTypes: ['track', 'identify', 'page'], + destConfig: { + defaultConfig: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'deviceModeWriteKey', + 'srcId', + ], + }, + secretKeys: ['apiKey', 'passKey', 'plWriteKey', 'diapiWriteKey'], + }, + responseRules: null, + id: '1j9dYVEplxUC5swbXkpK9fYT7uk', + name: 'LEMNISK_MARKETING_AUTOMATION', + displayName: 'Lemnisk Marketing Automation', + createdAt: '2022-12-12T21:58:08.637Z', + }, + rootStore: null, + isProcessorEnabled: true, + }, + metadata: [ + { + anonymousId: '12345', + destinationId: '1ZQVSU9SXNg6KYgZALaqjAO3PIL', + destinationType: 'DISCORD', + jobId: 123, + messageId: '4aaecff2-a513-4bbf-9824-c471f4ac9777', + sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + }, + ], + batched: false, + statusCode: 200, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'http://10.11.36.17:8080/analyze/analyze.php', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + type: 'track', + context: { + app: { + build: '4', + name: 'RuddCDN', + }, + page: { + referrer: 'google.com', + }, + device: { + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + name: 'generic_x86_arm', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.6', + }, + os: { + name: 'Android', + version: '9', + }, + timezone: 'Asia/Kolkata', + traits: { + customProp: 'customValue', + }, + userAgent: { + ua: 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + }, + properties: { + title: 'Home | RudderStack', + url: 'http://www.rudderstack.com', + }, + event: 'Visited Home', + id: 'anon-id-new', + userId: 'anon-id-new', + messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', + originalTimestamp: '2020-09-29T14:50:29.907+05:30', + writeKey: 'pl_writeKey', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'anon-id-new', + }, + destination: { + id: '2JAdls99p6UxoFNSKGwvh0aIt7E', + name: 'Lemnisk Marketing Automation', + enabled: true, + Config: { + plWriteKey: 'pl_writeKey', + pl: 'http://10.11.36.17:8080/analyze/analyze.php', + passKey: '', + apiKey: '', + diapi: '', + cloudMode: 'web', + srcId: '', + diapiWriteKey: '', + }, + destinationDefinition: { + config: { + transformAt: 'processor', + transformAtV1: 'processor', + saveDestinationResponse: true, + includeKeys: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'srcId', + ], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + 'warehouse', + ], + supportedMessageTypes: ['track', 'identify', 'page'], + destConfig: { + defaultConfig: [ + 'apiKey', + 'passKey', + 'cloudMode', + 'diapi', + 'pl', + 'diapiWriteKey', + 'plWriteKey', + 'deviceModeWriteKey', + 'srcId', + ], + }, + secretKeys: ['apiKey', 'passKey', 'plWriteKey', 'diapiWriteKey'], + }, + responseRules: null, + id: '1j9dYVEplxUC5swbXkpK9fYT7uk', + name: 'LEMNISK_MARKETING_AUTOMATION', + displayName: 'Lemnisk Marketing Automation', + createdAt: '2022-12-12T21:58:08.637Z', + }, + rootStore: null, + isProcessorEnabled: true, + }, + metadata: [ + { + anonymousId: '00000000000000000000000000', + destinationId: '1ZQVSU9SXNg6KYgZALaqjAO3PIL', + destinationType: 'DISCORD', + jobId: 129, + messageId: '8b8d5937-09bc-49dc-a35e-8cd6370575f8', + sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + }, + ], + batched: false, + statusCode: 200, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/lytics/processor/data.ts b/test/integrations/destinations/lytics/processor/data.ts new file mode 100644 index 00000000000..344eecc3cdc --- /dev/null +++ b/test/integrations/destinations/lytics/processor/data.ts @@ -0,0 +1,1443 @@ +export const data = [ + { + name: 'lytics', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + event: 'Order Completed', + integrations: { All: true }, + messageId: 'a0adfab9-baf7-4e09-a2ce-bbe2844c324a', + timestamp: '2020-10-16T08:10:12.782Z', + originalTimestamp: '2020-10-16T08:10:12.782Z', + properties: { + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + products: [ + { + brand: '', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/bacon-jam.jpg', + name: 'Food/Drink', + position: 1, + price: 3, + product_id: 'product-bacon-jam', + quantity: 2, + sku: 'sku-1', + typeOfProduct: 'Food', + url: 'https://www.example.com/product/bacon-jam', + value: 6, + variant: 'Extra topped', + }, + { + brand: 'Levis', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/t-shirt.jpg', + name: 'T-Shirt', + position: 2, + price: 12.99, + product_id: 'product-t-shirt', + quantity: 1, + sku: 'sku-2', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/t-shirt', + value: 12.99, + variant: 'White', + }, + { + brand: 'Levis', + category: 'Merch', + coupon: 'APPARELSALE', + currency: 'GBP', + image_url: 'https://www.example.com/product/offer-t-shirt.jpg', + name: 'T-Shirt-on-offer', + position: 1, + price: 12.99, + product_id: 'offer-t-shirt', + quantity: 1, + sku: 'sku-3', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/offer-t-shirt', + value: 12.99, + variant: 'Black', + }, + ], + revenue: 31.98, + shipping: 4, + value: 31.98, + }, + receivedAt: '2020-10-16T13:40:12.792+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:10:12.783Z', + type: 'track', + userId: 'rudder123', + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { apiKey: 'dummyApiKey', stream: 'default' }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.lytics.io/collect/json/default?access_token=dummyApiKey', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + _e: 'Order Completed', + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + 'products[0].brand': '', + 'products[0].category': 'Merch', + 'products[0].currency': 'GBP', + 'products[0].image_url': 'https://www.example.com/product/bacon-jam.jpg', + 'products[0].name': 'Food/Drink', + 'products[0].position': 1, + 'products[0].price': 3, + 'products[0].product_id': 'product-bacon-jam', + 'products[0].quantity': 2, + 'products[0].sku': 'sku-1', + 'products[0].typeOfProduct': 'Food', + 'products[0].url': 'https://www.example.com/product/bacon-jam', + 'products[0].value': 6, + 'products[0].variant': 'Extra topped', + 'products[1].brand': 'Levis', + 'products[1].category': 'Merch', + 'products[1].currency': 'GBP', + 'products[1].image_url': 'https://www.example.com/product/t-shirt.jpg', + 'products[1].name': 'T-Shirt', + 'products[1].position': 2, + 'products[1].price': 12.99, + 'products[1].product_id': 'product-t-shirt', + 'products[1].quantity': 1, + 'products[1].sku': 'sku-2', + 'products[1].typeOfProduct': 'Shirt', + 'products[1].url': 'https://www.example.com/product/t-shirt', + 'products[1].value': 12.99, + 'products[1].variant': 'White', + 'products[2].brand': 'Levis', + 'products[2].category': 'Merch', + 'products[2].coupon': 'APPARELSALE', + 'products[2].currency': 'GBP', + 'products[2].image_url': 'https://www.example.com/product/offer-t-shirt.jpg', + 'products[2].name': 'T-Shirt-on-offer', + 'products[2].position': 1, + 'products[2].price': 12.99, + 'products[2].product_id': 'offer-t-shirt', + 'products[2].quantity': 1, + 'products[2].sku': 'sku-3', + 'products[2].typeOfProduct': 'Shirt', + 'products[2].url': 'https://www.example.com/product/offer-t-shirt', + 'products[2].value': 12.99, + 'products[2].variant': 'Black', + revenue: 31.98, + shipping: 4, + value: 31.98, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'lytics', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'e108eb05-f6cd-4624-ba8c-568f2e2b3f92', + originalTimestamp: '2020-10-16T08:26:14.938Z', + receivedAt: '2020-10-16T13:56:14.945+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:26:14.939Z', + timestamp: '2020-10-16T13:56:14.944+05:30', + type: 'identify', + userId: 'rudder123', + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { apiKey: 'dummyApiKey', stream: 'default' }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.lytics.io/collect/json/default?access_token=dummyApiKey', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + user_id: 'rudder123', + 'company.id': 'abc123', + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'lytics', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + token: 'desuhere', + type: 'android', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { All: true }, + messageId: '531e3507-1ef5-4a06-b83c-cb521ff34f0c', + originalTimestamp: '2020-10-16T08:53:29.386Z', + receivedAt: '2020-10-16T14:23:29.402+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:53:29.387Z', + timestamp: '2020-10-16T14:23:29.401+05:30', + type: 'identify', + userId: 'rudder123', + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { apiKey: 'dummyApiKey', stream: 'default' }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.lytics.io/collect/json/default?access_token=dummyApiKey', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + user_id: 'rudder123', + 'company.id': 'abc123', + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'lytics', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'a61357dd-e29e-4033-b1af-029625947fec', + originalTimestamp: '2020-10-16T09:05:11.001Z', + receivedAt: '2020-10-16T14:35:11.014+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T09:05:11.002Z', + timestamp: '2020-10-16T14:35:11.013+05:30', + type: 'identify', + userId: 'rudder123', + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { apiKey: 'dummyApiKey', stream: 'default' }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.lytics.io/collect/json/default?access_token=dummyApiKey', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + user_id: 'rudder123', + 'company.id': 'abc123', + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'lytics', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { All: true }, + messageId: '9eb2f7c0-d896-494e-b105-60f604ce2906', + originalTimestamp: '2020-10-16T09:09:31.465Z', + receivedAt: '2020-10-16T14:39:31.468+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T09:09:31.466Z', + timestamp: '2020-10-16T14:39:31.467+05:30', + type: 'identify', + userId: 'rudder123', + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { apiKey: 'dummyApiKey', stream: 'default' }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.lytics.io/collect/json/default?access_token=dummyApiKey', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + user_id: 'rudder123', + 'company.id': 'abc123', + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'lytics', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { All: true }, + messageId: '9eb2f7c0-d896-494e-b105-60f604ce2906', + originalTimestamp: '2020-10-16T09:09:31.465Z', + receivedAt: '2020-10-16T14:39:31.468+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T09:09:31.466Z', + timestamp: '2020-10-16T14:39:31.467+05:30', + type: 'identify', + userId: 'rudder123', + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { apiKey: 'dummyApiKey', stream: 'default' }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.lytics.io/collect/json/default?access_token=dummyApiKey', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + user_id: 'rudder123', + 'company.id': 'abc123', + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'lytics', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { All: true }, + messageId: '9eb2f7c0-d896-494e-b105-60f604ce2906', + originalTimestamp: '2020-10-16T09:09:31.465Z', + receivedAt: '2020-10-16T14:39:31.468+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T09:09:31.466Z', + timestamp: '2020-10-16T14:39:31.467+05:30', + userId: 'rudder123', + }, + metadata: { destinationID: 'ewksfdgDFSdvzsdmwsdfvcxj' }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { apiKey: 'dummyApiKey', stream: 'default' }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'message Type is not present. Aborting message.: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message Type is not present. Aborting message.', + metadata: { destinationID: 'ewksfdgDFSdvzsdmwsdfvcxj' }, + statTags: { + destType: 'LYTICS', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'lytics', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { All: true }, + messageId: '9eb2f7c0-d896-494e-b105-60f604ce2906', + originalTimestamp: '2020-10-16T09:09:31.465Z', + receivedAt: '2020-10-16T14:39:31.468+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T09:09:31.466Z', + timestamp: '2020-10-16T14:39:31.467+05:30', + type: 'gone', + userId: 'rudder123', + }, + metadata: { destinationID: 'ewksfdgDFSdvzsdmwsdfvcxj' }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { apiKey: 'dummyApiKey', stream: 'default' }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'message type gone is not supported: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message type gone is not supported', + metadata: { destinationID: 'ewksfdgDFSdvzsdmwsdfvcxj' }, + statTags: { + destType: 'LYTICS', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'lytics', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + event: 'Order Completed', + integrations: { All: true }, + messageId: 'a0adfab9-baf7-4e09-a2ce-bbe2844c324a', + originalTimestamp: '2020-10-16T08:10:12.782Z', + properties: { + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + products: [ + { + brand: '', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/bacon-jam.jpg', + name: 'Food/Drink', + position: 1, + price: 3, + product_id: 'product-bacon-jam', + quantity: 2, + sku: 'sku-1', + typeOfProduct: 'Food', + url: 'https://www.example.com/product/bacon-jam', + value: 6, + variant: 'Extra topped', + }, + { + brand: 'Levis', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/t-shirt.jpg', + name: 'T-Shirt', + position: 2, + price: 12.99, + product_id: 'product-t-shirt', + quantity: 1, + sku: 'sku-2', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/t-shirt', + value: 12.99, + variant: 'White', + }, + { + brand: 'Levis', + category: 'Merch', + coupon: 'APPARELSALE', + currency: 'GBP', + image_url: 'https://www.example.com/product/offer-t-shirt.jpg', + name: 'T-Shirt-on-offer', + position: 1, + price: 12.99, + product_id: 'offer-t-shirt', + quantity: 1, + sku: 'sku-3', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/offer-t-shirt', + value: 12.99, + variant: 'Black', + }, + ], + revenue: 31.98, + shipping: 4, + value: 31.98, + }, + receivedAt: '2020-10-16T13:40:12.792+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:10:12.783Z', + timestamp: '2020-10-16T13:40:12.791+05:30', + type: 'track', + userId: 'rudder123', + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { apiKey: 'dummyApiKey', stream: 'default' }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.lytics.io/collect/json/default?access_token=dummyApiKey', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + _e: 'Order Completed', + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + 'products[0].brand': '', + 'products[0].category': 'Merch', + 'products[0].currency': 'GBP', + 'products[0].image_url': 'https://www.example.com/product/bacon-jam.jpg', + 'products[0].name': 'Food/Drink', + 'products[0].position': 1, + 'products[0].price': 3, + 'products[0].product_id': 'product-bacon-jam', + 'products[0].quantity': 2, + 'products[0].sku': 'sku-1', + 'products[0].typeOfProduct': 'Food', + 'products[0].url': 'https://www.example.com/product/bacon-jam', + 'products[0].value': 6, + 'products[0].variant': 'Extra topped', + 'products[1].brand': 'Levis', + 'products[1].category': 'Merch', + 'products[1].currency': 'GBP', + 'products[1].image_url': 'https://www.example.com/product/t-shirt.jpg', + 'products[1].name': 'T-Shirt', + 'products[1].position': 2, + 'products[1].price': 12.99, + 'products[1].product_id': 'product-t-shirt', + 'products[1].quantity': 1, + 'products[1].sku': 'sku-2', + 'products[1].typeOfProduct': 'Shirt', + 'products[1].url': 'https://www.example.com/product/t-shirt', + 'products[1].value': 12.99, + 'products[1].variant': 'White', + 'products[2].brand': 'Levis', + 'products[2].category': 'Merch', + 'products[2].coupon': 'APPARELSALE', + 'products[2].currency': 'GBP', + 'products[2].image_url': 'https://www.example.com/product/offer-t-shirt.jpg', + 'products[2].name': 'T-Shirt-on-offer', + 'products[2].position': 1, + 'products[2].price': 12.99, + 'products[2].product_id': 'offer-t-shirt', + 'products[2].quantity': 1, + 'products[2].sku': 'sku-3', + 'products[2].typeOfProduct': 'Shirt', + 'products[2].url': 'https://www.example.com/product/offer-t-shirt', + 'products[2].value': 12.99, + 'products[2].variant': 'Black', + revenue: 31.98, + shipping: 4, + value: 31.98, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'lytics', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'testhubspot2@email.com', + name: 'Test Hubspot', + anonymousId: '12345', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-GB', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + type: 'screen', + messageId: 'e8585d9a-7137-4223-b295-68ab1b17dad7', + originalTimestamp: '2019-10-15T09:35:31.289Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { path: '', referrer: '', search: '', title: '', url: '' }, + integrations: { All: true }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + destination_props: { AF: { af_uid: 'afUid' } }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { apiKey: 'dummyApiKey', stream: 'default' }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.lytics.io/collect/json/default?access_token=dummyApiKey', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event: 'ApplicationLoaded', + path: '', + referrer: '', + search: '', + title: '', + url: '', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'lytics', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'testhubspot2@email.com', + name: 'Test Hubspot', + anonymousId: '12345', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-GB', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + type: 'page', + messageId: 'e8585d9a-7137-4223-b295-68ab1b17dad7', + originalTimestamp: '2019-10-15T09:35:31.289Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + properties: { path: '', referrer: '', search: '', title: '', url: '' }, + integrations: { All: true }, + name: 'ApplicationLoaded', + sentAt: '2019-10-14T11:15:53.296Z', + destination_props: { AF: { af_uid: 'afUid' } }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { apiKey: 'dummyApiKey', stream: 'default' }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.lytics.io/collect/json/default?access_token=dummyApiKey', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event: 'ApplicationLoaded', + path: '', + referrer: '', + search: '', + title: '', + url: '', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'lytics', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + firstName: 'Rudderstack', + lastname: 'Test', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'e108eb05-f6cd-4624-ba8c-568f2e2b3f92', + originalTimestamp: '2020-10-16T08:26:14.938Z', + receivedAt: '2020-10-16T13:56:14.945+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:26:14.939Z', + timestamp: '2020-10-16T13:56:14.944+05:30', + type: 'identify', + userId: 'rudder123', + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { apiKey: 'dummyApiKey', stream: 'default' }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.lytics.io/collect/json/default?access_token=dummyApiKey', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + user_id: 'rudder123', + 'company.id': 'abc123', + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + first_name: 'Rudderstack', + last_name: 'Test', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/lytics/router/data.ts b/test/integrations/destinations/lytics/router/data.ts new file mode 100644 index 00000000000..98aded20bfc --- /dev/null +++ b/test/integrations/destinations/lytics/router/data.ts @@ -0,0 +1,351 @@ +export const data = [ + { + name: 'lytics', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.6', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { + density: 2, + }, + traits: { + company: { + id: 'abc123', + }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + event: 'Order Completed', + integrations: { + All: true, + }, + messageId: 'a0adfab9-baf7-4e09-a2ce-bbe2844c324a', + timestamp: '2020-10-16T08:10:12.782Z', + properties: { + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + products: [ + { + brand: '', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/bacon-jam.jpg', + name: 'Food/Drink', + position: 1, + price: 3, + product_id: 'product-bacon-jam', + quantity: 2, + sku: 'sku-1', + typeOfProduct: 'Food', + url: 'https://www.example.com/product/bacon-jam', + value: 6, + variant: 'Extra topped', + }, + { + brand: 'Levis', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/t-shirt.jpg', + name: 'T-Shirt', + position: 2, + price: 12.99, + product_id: 'product-t-shirt', + quantity: 1, + sku: 'sku-2', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/t-shirt', + value: 12.99, + variant: 'White', + }, + { + brand: 'Levis', + category: 'Merch', + coupon: 'APPARELSALE', + currency: 'GBP', + image_url: 'https://www.example.com/product/offer-t-shirt.jpg', + name: 'T-Shirt-on-offer', + position: 1, + price: 12.99, + product_id: 'offer-t-shirt', + quantity: 1, + sku: 'sku-3', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/offer-t-shirt', + value: 12.99, + variant: 'Black', + }, + ], + revenue: 31.98, + shipping: 4, + value: 31.98, + }, + receivedAt: '2020-10-16T13:40:12.792+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:10:12.783Z', + type: 'track', + userId: 'rudder123', + }, + metadata: { + jobId: 1, + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + stream: 'default', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.6', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { + density: 2, + }, + traits: { + company: { + id: 'abc123', + }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'e108eb05-f6cd-4624-ba8c-568f2e2b3f92', + originalTimestamp: '2020-10-16T08:26:14.938Z', + receivedAt: '2020-10-16T13:56:14.945+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:26:14.939Z', + timestamp: '2020-10-16T13:56:14.944+05:30', + type: 'identify', + userId: 'rudder123', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + stream: 'default', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + destType: 'lytics', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.lytics.io/collect/json/default?access_token=dummyApiKey', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + _e: 'Order Completed', + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + 'products[0].brand': '', + 'products[0].category': 'Merch', + 'products[0].currency': 'GBP', + 'products[0].image_url': 'https://www.example.com/product/bacon-jam.jpg', + 'products[0].name': 'Food/Drink', + 'products[0].position': 1, + 'products[0].price': 3, + 'products[0].product_id': 'product-bacon-jam', + 'products[0].quantity': 2, + 'products[0].sku': 'sku-1', + 'products[0].typeOfProduct': 'Food', + 'products[0].url': 'https://www.example.com/product/bacon-jam', + 'products[0].value': 6, + 'products[0].variant': 'Extra topped', + 'products[1].brand': 'Levis', + 'products[1].category': 'Merch', + 'products[1].currency': 'GBP', + 'products[1].image_url': 'https://www.example.com/product/t-shirt.jpg', + 'products[1].name': 'T-Shirt', + 'products[1].position': 2, + 'products[1].price': 12.99, + 'products[1].product_id': 'product-t-shirt', + 'products[1].quantity': 1, + 'products[1].sku': 'sku-2', + 'products[1].typeOfProduct': 'Shirt', + 'products[1].url': 'https://www.example.com/product/t-shirt', + 'products[1].value': 12.99, + 'products[1].variant': 'White', + 'products[2].brand': 'Levis', + 'products[2].category': 'Merch', + 'products[2].coupon': 'APPARELSALE', + 'products[2].currency': 'GBP', + 'products[2].image_url': 'https://www.example.com/product/offer-t-shirt.jpg', + 'products[2].name': 'T-Shirt-on-offer', + 'products[2].position': 1, + 'products[2].price': 12.99, + 'products[2].product_id': 'offer-t-shirt', + 'products[2].quantity': 1, + 'products[2].sku': 'sku-3', + 'products[2].typeOfProduct': 'Shirt', + 'products[2].url': 'https://www.example.com/product/offer-t-shirt', + 'products[2].value': 12.99, + 'products[2].variant': 'Black', + revenue: 31.98, + shipping: 4, + value: 31.98, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + stream: 'default', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.lytics.io/collect/json/default?access_token=dummyApiKey', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + user_id: 'rudder123', + 'company.id': 'abc123', + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + stream: 'default', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/mailjet/processor/data.ts b/test/integrations/destinations/mailjet/processor/data.ts new file mode 100644 index 00000000000..71e06dc14e9 --- /dev/null +++ b/test/integrations/destinations/mailjet/processor/data.ts @@ -0,0 +1,229 @@ +export const data = [ + { + name: 'mailjet', + description: 'No Message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'test@123', + context: { + traits: { + email: 'test@rudderstack.com', + username: 'Samle_putUserName', + firstName: 'uday', + }, + }, + integrations: { All: true, 'user.com': { lookup: 'email' } }, + }, + destination: { Config: { apiKey: 'dummyApiKey', apiSecret: 'dummyApiSecret' } }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type is required', + statTags: { + destType: 'MAILJET', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'mailjet', + description: 'Unsupported Type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'test@123', + type: 'trackUser', + context: { + traits: { + email: 'test@rudderstack.com', + firstName: 'test', + lastName: 'rudderstack', + age: 15, + gender: 'male', + status: 'user', + city: 'Kalkata', + country: 'india', + tags: ['productuser'], + phone: '9225467887', + }, + }, + }, + destination: { Config: { apiKey: 'dummyApiKey', apiSecret: 'dummyApiSecret' } }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type "trackuser" is not supported', + statTags: { + destType: 'MAILJET', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'mailjet', + description: 'MailJet identify call without an email', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'test@123', + type: 'identify', + context: { + traits: { + firstName: 'test', + lastName: 'rudderstack', + age: 15, + gender: 'male', + status: 'user', + city: 'Kalkata', + country: 'india', + tags: ['productuser'], + phone: '9225467887', + }, + }, + }, + destination: { Config: { apiKey: 'dummyApiKey', apiSecret: 'dummyApiSecret' } }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from "email"', + statTags: { + destType: 'MAILJET', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'mailjet', + description: 'Mailjet identify call without batching', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user@45', + type: 'identify', + context: { + traits: { + age: '30', + email: 'test@user.com', + phone: '7267286346802347827', + userId: 'sajal', + city: 'gondal', + userCountry: 'india', + lastName: 'dev', + username: 'Samle_putUserName', + firstName: 'rudderlabs', + }, + }, + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'dummyApiSecret', + listId: '58578', + contactPropertiesMapping: [{ from: 'userCountry', to: 'country' }], + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: '', + headers: {}, + params: {}, + body: { + JSON: { email: 'test@user.com', properties: { country: 'india' } }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + listId: '58578', + action: 'addnoforce', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/mailjet/router/data.ts b/test/integrations/destinations/mailjet/router/data.ts new file mode 100644 index 00000000000..85c96629ffe --- /dev/null +++ b/test/integrations/destinations/mailjet/router/data.ts @@ -0,0 +1,106 @@ +export const data = [ + { + name: 'mailjet', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'dummyApiSecret', + listId: '58578', + contactPropertiesMapping: [{ from: 'userCountry', to: 'country' }], + }, + }, + metadata: { + jobId: 1, + }, + message: { + userId: 'user@45', + type: 'identify', + context: { + traits: { + age: '30', + email: 'test@user.com', + phone: '7267286346802347827', + userId: 'sajal', + city: 'gondal', + userCountry: 'india', + lastName: 'dev', + username: 'Samle_putUserName', + firstName: 'rudderlabs', + }, + }, + }, + }, + ], + destType: 'mailjet', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mailjet.com/v3/REST/contactslist/58578/managemanycontacts', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic ZHVtbXlBcGlLZXk6ZHVtbXlBcGlTZWNyZXQ=', + }, + params: {}, + body: { + FORM: {}, + JSON: { + Action: 'addnoforce', + Contacts: [ + { + email: 'test@user.com', + properties: { country: 'india' }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'dummyApiSecret', + listId: '58578', + contactPropertiesMapping: [ + { + from: 'userCountry', + to: 'country', + }, + ], + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/mailmodo/processor/data.ts b/test/integrations/destinations/mailmodo/processor/data.ts new file mode 100644 index 00000000000..45a14e2a52e --- /dev/null +++ b/test/integrations/destinations/mailmodo/processor/data.ts @@ -0,0 +1,648 @@ +export const data = [ + { + name: 'mailmodo', + description: 'Track call', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { Config: { apiKey: 'dummyApiKey' } }, + message: { + event: 'trackevent', + type: 'track', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'user123456001', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { width: 1440, height: 900, density: 2, innerWidth: 536, innerHeight: 689 }, + traits: { + city: 'Pune', + name: 'First User', + email: 'firstUser@testmail.com', + title: 'VP', + gender: 'female', + avatar: 'https://i.pravatar.cc/300', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mailmodo.com/api/v1/addEvent', + headers: { mmApiKey: 'dummyApiKey', 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { email: 'firstUser@testmail.com', event_name: 'trackevent' }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mailmodo', + description: 'Providing empty API Key', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { Config: { apiKey: '' } }, + message: { + event: 'trackevent', + type: 'track', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'user123456001', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { width: 1440, height: 900, density: 2, innerWidth: 536, innerHeight: 689 }, + traits: { + city: 'Pune', + name: 'First User', + email: 'firstUser@testmail.com', + title: 'VP', + gender: 'female', + avatar: 'https://i.pravatar.cc/300', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'API Key is not present, Aborting event', + statTags: { + destType: 'MAILMODO', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'mailmodo', + description: 'Not providing event type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { Config: { apiKey: 'ahj' } }, + message: { + event: 'trackevent', + sentAt: '2022-01-20T13:39:21.033Z', + userId: 'user123456001', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + path: '/Testing/App_for_LaunchDarkly/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/App_for_LaunchDarkly/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { width: 1440, height: 900, density: 2, innerWidth: 536, innerHeight: 689 }, + traits: { + city: 'Pune', + name: 'First User', + email: 'firstUser@testmail.com', + title: 'VP', + gender: 'female', + avatar: 'https://i.pravatar.cc/300', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.2.20' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + messageId: '831f1fa5-de84-4f22-880a-4c3f23fc3f04', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + integrations: { All: true }, + originalTimestamp: '2022-01-20T13:39:21.032Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type is required', + statTags: { + destType: 'MAILMODO', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'mailmodo', + description: 'Page call- not supported', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { Config: { apiKey: 'dummyApiKey', listName: 'abcdef' } }, + message: { + type: 'page', + event: 'Email Opened', + sentAt: '2020-08-28T16:26:16.473Z', + context: { library: { name: 'analytics-node', version: '0.0.3' } }, + _metadata: { nodeVersion: '10.22.0' }, + messageId: + 'node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453', + properties: { + subject: 'resume validate', + sendtime: '2020-01-01', + sendlocation: 'akashdeep@gmail.com', + }, + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type page is not supported', + statTags: { + destType: 'MAILMODO', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'mailmodo', + description: 'Identify call- with empty listName', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { Config: { apiKey: 'dummyApiKey', listName: '' } }, + message: { + type: 'identify', + event: 'Email Opened', + sentAt: '2020-08-28T16:26:16.473Z', + context: { library: { name: 'analytics-node', version: '0.0.3' } }, + _metadata: { nodeVersion: '10.22.0' }, + messageId: + 'node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453', + properties: { + email: 'test3@abc.com', + subject: 'resume validate', + sendtime: '2020-01-01', + sendlocation: 'akashdeep@gmail.com', + }, + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mailmodo.com/api/v1/addToList/batch', + headers: { mmApiKey: 'dummyApiKey', 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { listName: 'Rudderstack', values: [{ email: 'test3@abc.com' }] }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mailmodo', + description: 'Identify call- with listName', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { Config: { apiKey: 'dummyApiKey', listName: 'abcdef' } }, + message: { + type: 'identify', + event: 'Email Opened', + sentAt: '2020-08-28T16:26:16.473Z', + context: { library: { name: 'analytics-node', version: '0.0.3' } }, + _metadata: { nodeVersion: '10.22.0' }, + messageId: + 'node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453', + properties: { + email: 'test3@abc.com', + subject: 'resume validate', + sendtime: '2020-01-01', + sendlocation: 'akashdeep@gmail.com', + }, + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mailmodo.com/api/v1/addToList/batch', + headers: { mmApiKey: 'dummyApiKey', 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { listName: 'abcdef', values: [{ email: 'test3@abc.com' }] }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mailmodo', + description: 'Identify call- without email', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { Config: { apiKey: 'dummyApiKey', listName: 'abcdef' } }, + message: { + type: 'identify', + event: 'Email Opened', + sentAt: '2020-08-28T16:26:16.473Z', + context: { library: { name: 'analytics-node', version: '0.0.3' } }, + _metadata: { nodeVersion: '10.22.0' }, + messageId: + 'node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453', + properties: { + subject: 'resume validate', + sendtime: '2020-01-01', + sendlocation: 'akashdeep@gmail.com', + }, + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Missing required value from ["traits.email","context.traits.email","properties.email"]', + statTags: { + destType: 'MAILMODO', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'mailmodo', + description: 'Identify call- with user properties(address as an object)', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { Config: { apiKey: 'dummyApiKey', listName: 'abcdef' } }, + message: { + type: 'identify', + userId: 'identified user id', + anonymousId: 'anon-id-new', + context: { + traits: { trait1: 'new-val' }, + ip: '14.5.67.21', + library: { name: 'http' }, + }, + traits: { + email: 'testabc2@abcd.com', + name: 'Rudder Test', + firstName: 'Test', + lastName: 'Rudderlabs', + age: 21, + phone: '9876543210', + address: { street: 'A street', city: 'Vijayawada', country: 'India' }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mailmodo.com/api/v1/addToList/batch', + headers: { mmApiKey: 'dummyApiKey', 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + listName: 'abcdef', + values: [ + { + email: 'testabc2@abcd.com', + data: { + age: 21, + first_name: 'Test', + last_name: 'Rudderlabs', + name: 'Rudder Test', + phone: '9876543210', + trait1: 'new-val', + city: 'Vijayawada', + country: 'India', + address1: 'A street Vijayawada India ', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mailmodo', + description: 'Identify call- with user properties(address as a string)', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { Config: { apiKey: 'dummyApiKey', listName: 'abcdef' } }, + message: { + type: 'identify', + userId: 'identified user id', + anonymousId: 'anon-id-new', + context: { + traits: { trait1: 'new-val' }, + ip: '14.5.67.21', + library: { name: 'http' }, + }, + traits: { + email: 'testabc2@abcd.com', + name: 'Rudder Test', + firstName: 'Test', + lastName: 'Rudderlabs', + age: 21, + phone: '9876543210', + address: 'welcome to home', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mailmodo.com/api/v1/addToList/batch', + headers: { mmApiKey: 'dummyApiKey', 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + listName: 'abcdef', + values: [ + { + email: 'testabc2@abcd.com', + data: { + age: 21, + first_name: 'Test', + last_name: 'Rudderlabs', + name: 'Rudder Test', + phone: '9876543210', + trait1: 'new-val', + address1: 'welcome to home', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/mailmodo/router/data.ts b/test/integrations/destinations/mailmodo/router/data.ts new file mode 100644 index 00000000000..c341259bbed --- /dev/null +++ b/test/integrations/destinations/mailmodo/router/data.ts @@ -0,0 +1,294 @@ +export const data = [ + { + name: 'mailmodo', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'identify', + event: 'Email Opened', + sentAt: '2020-08-28T16:26:16.473Z', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + _metadata: { + nodeVersion: '10.22.0', + }, + messageId: + 'node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453', + properties: { + email: 'test@abc.com', + subject: 'resume validate', + sendtime: '2020-01-01', + sendlocation: 'akashdeep@gmail.com', + }, + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + listName: 'abc', + }, + Enabled: true, + }, + }, + { + message: { + type: 'track', + event: 'Email Opened', + sentAt: '2020-08-28T16:26:16.473Z', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + _metadata: { + nodeVersion: '10.22.0', + }, + messageId: + 'node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453', + properties: { + email: 'test@abc.com', + subject: 'resume validate', + sendtime: '2020-01-01', + sendlocation: 'akashdeep@gmail.com', + }, + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + metadata: { + jobId: 3, + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + listName: 'abc', + }, + Enabled: true, + }, + }, + { + message: { + type: 'identify', + userId: 'identified user id', + anonymousId: 'anon-id-new', + context: { + traits: { + trait1: 'new-val', + }, + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + traits: { + email: 'test@abc.com', + name: 'Rudder Test', + firstName: 'Test', + lastName: 'Rudderlabs', + age: 21, + phone: '9876543210', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 4, + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + listName: 'abc', + }, + Enabled: true, + }, + }, + { + message: { + type: 'identify', + event: 'Email Opened', + sentAt: '2020-08-28T16:26:16.473Z', + context: { + library: { + name: 'analytics-node', + version: '0.0.3', + }, + }, + _metadata: { + nodeVersion: '10.22.0', + }, + messageId: + 'node-570110489d3e99b234b18af9a9eca9d4-6009779e-82d7-469d-aaeb-5ccf162b0453', + properties: { + subject: 'resume validate', + sendtime: '2020-01-01', + sendlocation: 'akashdeep@gmail.com', + }, + anonymousId: 'abcdeeeeeeeexxxx102', + originalTimestamp: '2020-08-28T16:26:06.468Z', + }, + metadata: { + jobId: 5, + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + listName: '', + }, + Enabled: true, + }, + }, + ], + destType: 'mailmodo', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + listName: 'abc', + values: [ + { + email: 'test@abc.com', + }, + { + email: 'test@abc.com', + data: { + name: 'Rudder Test', + first_name: 'Test', + last_name: 'Rudderlabs', + age: 21, + phone: '9876543210', + trait1: 'new-val', + }, + }, + ], + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + mmApiKey: 'dummyApiKey', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.mailmodo.com/api/v1/addToList/batch', + }, + metadata: [ + { + jobId: 2, + }, + { + jobId: 4, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + listName: 'abc', + }, + Enabled: true, + }, + }, + { + batchedRequest: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + email: 'test@abc.com', + event_name: 'Email Opened', + event_properties: { + email: 'test@abc.com', + sendlocation: 'akashdeep@gmail.com', + sendtime: '2020-01-01', + subject: 'resume validate', + }, + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + mmApiKey: 'dummyApiKey', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://api.mailmodo.com/api/v1/addEvent', + }, + metadata: [ + { + jobId: 3, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + listName: 'abc', + }, + Enabled: true, + }, + }, + { + batched: false, + error: + 'Missing required value from ["traits.email","context.traits.email","properties.email"]', + metadata: [ + { + jobId: 5, + }, + ], + statTags: { + destType: 'MAILMODO', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + destination: { + Config: { + apiKey: 'dummyApiKey', + listName: '', + }, + Enabled: true, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/marketo/dataDelivery/data.ts b/test/integrations/destinations/marketo/dataDelivery/data.ts new file mode 100644 index 00000000000..47dd8e92362 --- /dev/null +++ b/test/integrations/destinations/marketo/dataDelivery/data.ts @@ -0,0 +1,490 @@ +export const data = [ + { + name: 'marketo', + description: 'Test 0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://mktId.mktorest.com/rest/v1/leads.json/test1', + method: 'POST', + userId: '', + headers: { + Authorization: 'Bearer test_token_1', + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + action: 'createOrUpdate', + input: [ + { + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', + }, + ], + lookupField: 'id', + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'marketo', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + message: 'Request Processed Successfully', + destinationResponse: { + response: { + requestId: '664#17dae8c3d48', + result: [ + { + id: 1328328, + status: 'updated', + }, + ], + success: true, + }, + status: 200, + }, + }, + }, + }, + { + name: 'marketo', + description: 'Test 1', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://mktId.mktorest.com/rest/v1/leads.json/test2', + method: 'POST', + userId: '', + headers: { + Authorization: 'Bearer test_token_2', + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + action: 'createOrUpdate', + input: [ + { + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', + }, + ], + lookupField: 'id', + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'marketo', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + message: + 'Request Failed for marketo, Access token invalid (Retryable).during Marketo Response Handling', + destinationResponse: { + response: { + requestId: 'a61c#17daea5968a', + success: false, + errors: [ + { + code: '601', + message: 'Access token invalid', + }, + ], + }, + status: 200, + }, + statTags: { + destType: 'MARKETO', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + { + name: 'marketo', + description: 'Test 2', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://mktId.mktorest.com/rest/v1/leads.json/test3', + method: 'POST', + userId: '', + headers: { + Authorization: 'Bearer test_token_3', + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + action: 'createOrUpdate', + input: [ + { + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', + }, + ], + lookupField: 'id', + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'marketo', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + message: + 'Request Failed for marketo, Requested resource not found (Aborted).during Marketo Response Handling', + destinationResponse: { + response: { + requestId: 'a61c#17daea5968a', + success: false, + errors: [ + { + code: '610', + message: 'Requested resource not found', + }, + ], + }, + status: 200, + }, + statTags: { + destType: 'MARKETO', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + { + name: 'marketo', + description: 'Test 3', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://mktId.mktorest.com/rest/v1/leads.json/test4', + method: 'POST', + userId: '', + headers: { + Authorization: 'Bearer test_token_4', + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + action: 'createOrUpdate', + input: [ + { + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', + }, + ], + lookupField: 'id', + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'marketo', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + message: 'Request failed with status: 500', + destinationResponse: { + response: '', + status: 500, + }, + statTags: { + destType: 'MARKETO', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + { + name: 'marketo', + description: 'Test 4', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://mktId.mktorest.com/rest/v1/leads.json/test5', + method: 'POST', + userId: '', + headers: { + Authorization: 'Bearer test_token_5', + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + action: 'createOrUpdate', + input: [ + { + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', + }, + ], + lookupField: 'id', + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'marketo', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + message: 'Request failed with status: 500', + destinationResponse: { + response: '', + status: 500, + }, + statTags: { + destType: 'MARKETO', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + { + name: 'marketo', + description: 'Test 5', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + endpoint: 'https://mktId.mktorest.com/rest/v1/leads.json/test6', + method: 'POST', + userId: '', + headers: { + Authorization: 'Bearer test_token_6', + 'Content-Type': 'application/json', + }, + body: { + FORM: {}, + JSON: { + action: 'createOrUpdate', + input: [ + { + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', + }, + ], + lookupField: 'id', + }, + JSON_ARRAY: {}, + XML: {}, + }, + files: {}, + params: { + destination: 'marketo', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + message: 'Request failed with status: 400', + destinationResponse: { + response: '[[ENOTFOUND] :: DNS lookup failed]', + status: 400, + }, + statTags: { + destType: 'MARKETO', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + { + name: 'marketo', + description: 'Test 6', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://unhandled_exception_in_proxy_req.mktorest.com/rest/v1/leads.json', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer access_token_success', + }, + body: { + JSON: { + action: 'createOrUpdate', + input: [ + { + Email: '0c7b8b80-9c43-4f8e-b2d2-5e2448a25040@j.mail', + FirstName: 'A', + LastName: 'M', + id: 4, + userId: 'e17c5a5e-5e2f-430b-b497-fe3f1ea3a704', + }, + ], + lookupField: 'id', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + params: { + destination: 'marketo', + }, + }, + }, + }, + output: { + response: { + status: 400, + message: 'Error occurred during Marketo Response Handling -> problem', + destinationResponse: { + response: { + requestId: '142e4#1835b117b76', + success: false, + errors: [ + { + code: 'random_marketo_code', + message: 'problem', + }, + ], + }, + status: 200, + }, + statTags: { + destType: 'MARKETO', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + meta: 'unhandledStatusCode', + module: 'destination', + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/marketo/network.ts b/test/integrations/destinations/marketo/network.ts new file mode 100644 index 00000000000..b0c61742815 --- /dev/null +++ b/test/integrations/destinations/marketo/network.ts @@ -0,0 +1,244 @@ +export const networkCallsData = [ + { + httpReq: { + url: 'https://mktId.mktorest.com/rest/v1/leads.json/test1', + data: { + action: 'createOrUpdate', + input: [ + { + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', + }, + ], + lookupField: 'id', + }, + headers: { + Authorization: 'Bearer test_token_1', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + requestId: '664#17dae8c3d48', + result: [ + { + id: 1328328, + status: 'updated', + }, + ], + success: true, + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + url: 'https://mktId.mktorest.com/rest/v1/leads.json/test2', + data: { + action: 'createOrUpdate', + input: [ + { + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', + }, + ], + lookupField: 'id', + }, + headers: { + Authorization: 'Bearer test_token_2', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + requestId: 'a61c#17daea5968a', + success: false, + errors: [ + { + code: '601', + message: 'Access token invalid', + }, + ], + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + url: 'https://mktId.mktorest.com/rest/v1/leads.json/test3', + data: { + action: 'createOrUpdate', + input: [ + { + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', + }, + ], + lookupField: 'id', + }, + headers: { + Authorization: 'Bearer test_token_3', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + requestId: 'a61c#17daea5968a', + success: false, + errors: [ + { + code: '610', + message: 'Requested resource not found', + }, + ], + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + url: 'https://mktId.mktorest.com/rest/v1/leads.json/test4', + data: { + action: 'createOrUpdate', + input: [ + { + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', + }, + ], + lookupField: 'id', + }, + headers: { + Authorization: 'Bearer test_token_4', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: {}, + }, + { + httpReq: { + url: 'https://mktId.mktorest.com/rest/v1/leads.json/test5', + data: { + action: 'createOrUpdate', + input: [ + { + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', + }, + ], + lookupField: 'id', + }, + headers: { + Authorization: 'Bearer test_token_5', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: '', + }, + { + httpReq: { + url: 'https://mktId.mktorest.com/rest/v1/leads.json/test6', + data: { + action: 'createOrUpdate', + input: [ + { + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', + }, + ], + lookupField: 'id', + }, + headers: { + Authorization: 'Bearer test_token_6', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + code: '[ENOTFOUND] :: DNS lookup failed', + status: 400, + }, + }, + { + httpReq: { + url: 'https://unhandled_exception_in_proxy_req.mktorest.com/rest/v1/leads.json', + data: { + action: 'createOrUpdate', + input: [ + { + Email: '0c7b8b80-9c43-4f8e-b2d2-5e2448a25040@j.mail', + FirstName: 'A', + LastName: 'M', + id: 4, + userId: 'e17c5a5e-5e2f-430b-b497-fe3f1ea3a704', + }, + ], + lookupField: 'id', + }, + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + requestId: '142e4#1835b117b76', + success: false, + errors: [ + { + code: 'random_marketo_code', + message: 'problem', + }, + ], + }, + status: 200, + statusText: 'OK', + }, + }, +]; diff --git a/test/integrations/destinations/marketo_static_list/dataDelivery/data.ts b/test/integrations/destinations/marketo_static_list/dataDelivery/data.ts new file mode 100644 index 00000000000..e3deebca9b3 --- /dev/null +++ b/test/integrations/destinations/marketo_static_list/dataDelivery/data.ts @@ -0,0 +1,368 @@ +export const data = [ + { + "name": "marketo_static_list", + "description": "Test 0", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "type": "REST", + "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=110&id=111&id=112", + "method": "POST", + "userId": "", + "headers": { + "Authorization": "Bearer Incorrect_token", + "Content-Type": "application/json" + }, + "body": { + "FORM": {}, + "JSON": {}, + "JSON_ARRAY": {}, + "XML": {} + }, + "files": {}, + "params": { + "destination": "marketo_static_list" + } + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 200, + "body": { + "output": { + "message": "Request Processed Successfully", + "destinationResponse": { + "response": { + "requestId": "b6d1#18a8d2c10e7", + "result": [ + { + "id": 110, + "status": "skipped", + "reasons": [ + { + "code": "1015", + "message": "Lead not in list" + } + ] + }, + { + "id": 111, + "status": "removed" + }, + { + "id": 112, + "status": "removed" + } + ], + "success": true + }, + "status": 200 + }, + "status": 200 + } + } + } + } + }, + { + "name": "marketo_static_list", + "description": "Test 1", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "type": "REST", + "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=1&id=2&id=3", + "method": "POST", + "userId": "", + "headers": { + "Authorization": "Bearer Incorrect_token", + "Content-Type": "application/json" + }, + "body": { + "FORM": {}, + "JSON": {}, + "JSON_ARRAY": {}, + "XML": {} + }, + "files": {}, + "params": { + "destination": "marketo_static_list" + } + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 500, + "body": { + "output": { + "status": 500, + "message": "Request Failed for Marketo Static List, Access token invalid (Retryable).during Marketo Static List Response Handling", + "destinationResponse": { + "response": { + "requestId": "68d8#1846058ee27", + "success": false, + "errors": [ + { + "code": "601", + "message": "Access token invalid" + } + ] + }, + "status": 200 + }, + "statTags": { + "destType": "MARKETO_STATIC_LIST", + "errorCategory": "network", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "errorType": "retryable", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination" + } + } + } + } + } + }, + { + "name": "marketo_static_list", + "description": "Test 2", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "type": "REST", + "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=1&id=2", + "method": "POST", + "userId": "", + "headers": { + "Authorization": "Bearer token", + "Content-Type": "application/json" + }, + "body": { + "FORM": {}, + "JSON": { + "action": "createOrUpdate", + "input": [ + { + "City": "Tokyo", + "Country": "JP", + "Email": "gabi29@gmail.com", + "PostalCode": "100-0001", + "Title": "Owner", + "id": 1328328, + "userId": "gabi_userId_45" + } + ], + "lookupField": "id" + }, + "JSON_ARRAY": {}, + "XML": {} + }, + "files": {}, + "params": { + "destination": "marketo_static_list" + } + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 200, + "body": { + "output": { + "status": 200, + "message": "Request Processed Successfully", + "destinationResponse": { + "response": { + "requestId": "12d3c#1846057dce2", + "success": true, + "result": [ + { + "id": 1, + "status": "added" + }, + { + "id": 2, + "status": "added" + } + ] + }, + "status": 200 + } + } + } + } + } + }, + { + "name": "marketo_static_list", + "description": "Test 3", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "type": "REST", + "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=3&id=4", + "method": "POST", + "userId": "", + "headers": { + "Authorization": "Bearer token", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "FORM": {}, + "JSON": { + "action": "createOrUpdate", + "input": [ + { + "City": "Tokyo", + "Country": "JP", + "Email": "gabi29@gmail.com", + "PostalCode": "100-0001", + "Title": "Owner", + "id": 1328328, + "userId": "gabi_userId_45" + }, + { + "City": "Tokyo", + "Country": "JP", + "Email": "b@s.com", + "PostalCode": "100-0001", + "Title": "Owner", + "id": 1328329, + "userId": "ben_userId_45" + } + ], + "lookupField": "id" + }, + "JSON_ARRAY": {}, + "XML": {} + }, + "files": {} + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 400, + "body": { + "output": { + "destinationResponse": "", + "message": "Request failed during: during Marketo Static List Response Handling, error: [{\"code\":\"1004\",\"message\":\"Lead not found\"}]", + "statTags": { + "destType": "MARKETO_STATIC_LIST", + "errorCategory": "dataValidation", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "errorType": "instrumentation", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination" + }, + "status": 400 + } + } + } + } + }, + { + "name": "marketo_static_list", + "description": "Test 4", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "type": "REST", + "endpoint": "https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=5&id=6", + "method": "POST", + "userId": "", + "headers": { + "Authorization": "Bearer token", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "FORM": {}, + "JSON": { + "action": "createOrUpdate", + "input": [ + { + "City": "Tokyo", + "Country": "JP", + "Email": "gabi29@gmail.com", + "PostalCode": "100-0001", + "Title": "Owner", + "id": 1328328, + "userId": "gabi_userId_45" + }, + { + "City": "Tokyo", + "Country": "JP", + "Email": "b@s.com", + "PostalCode": "100-0001", + "Title": "Owner", + "id": 1328329, + "userId": "ben_userId_45" + } + ], + "lookupField": "id" + }, + "JSON_ARRAY": {}, + "XML": {} + }, + "files": {} + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 200, + "body": { + "output": { + "status": 200, + "message": "Request Processed Successfully", + "destinationResponse": { + "response": { + "requestId": "12d3c#1846057dce2", + "result": { + "id": 5, + "status": "skipped", + "reasons": [ + { + "code": "1015", + "message": "Lead not in list" + } + ] + }, + "success": true + }, + "status": 200 + } + } + } + } + } + } +] \ No newline at end of file diff --git a/test/integrations/destinations/marketo_static_list/network.ts b/test/integrations/destinations/marketo_static_list/network.ts new file mode 100644 index 00000000000..5c132738595 --- /dev/null +++ b/test/integrations/destinations/marketo_static_list/network.ts @@ -0,0 +1,202 @@ +const deliveryCallsData = [ + { + httpReq: { + url: 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=110&id=111&id=112', + params: { destination: 'marketo_static_list' }, + headers: { + Authorization: 'Bearer Incorrect_token', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + requestId: 'b6d1#18a8d2c10e7', + result: [ + { id: 110, status: 'skipped', reasons: [{ code: '1015', message: 'Lead not in list' }] }, + { id: 111, status: 'removed' }, + { id: 112, status: 'removed' }, + ], + success: true, + }, + status: 200, + }, + }, + { + httpReq: { + url: 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=1&id=2&id=3', + params: { destination: 'marketo_static_list' }, + headers: { + Authorization: 'Bearer Incorrect_token', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + requestId: '68d8#1846058ee27', + success: false, + errors: [{ code: '601', message: 'Access token invalid' }], + }, + status: 200, + }, + }, + { + httpReq: { + url: 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=1&id=2', + data: { + action: 'createOrUpdate', + input: [ + { + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', + }, + ], + lookupField: 'id', + }, + params: { destination: 'marketo_static_list' }, + headers: { + Authorization: 'Bearer token', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + requestId: '12d3c#1846057dce2', + result: [ + { id: 1, status: 'added' }, + { id: 2, status: 'added' }, + ], + success: true, + }, + status: 200, + }, + }, + { + httpReq: { + url: 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=3&id=4', + data: { + action: 'createOrUpdate', + input: [ + { + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', + }, + { + City: 'Tokyo', + Country: 'JP', + Email: 'b@s.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328329, + userId: 'ben_userId_45', + }, + ], + lookupField: 'id', + }, + params: {}, + headers: { + Authorization: 'Bearer token', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + requestId: '12d3c#1846057dce2', + result: [ + { id: 1, status: 'added' }, + { id: 4, status: 'skipped', reasons: [{ code: '1004', message: 'Lead not found' }] }, + ], + success: true, + }, + status: 200, + }, + }, + { + httpReq: { + url: 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=5&id=6', + data: { + action: 'createOrUpdate', + input: [ + { + City: 'Tokyo', + Country: 'JP', + Email: 'gabi29@gmail.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328328, + userId: 'gabi_userId_45', + }, + { + City: 'Tokyo', + Country: 'JP', + Email: 'b@s.com', + PostalCode: '100-0001', + Title: 'Owner', + id: 1328329, + userId: 'ben_userId_45', + }, + ], + lookupField: 'id', + }, + params: {}, + headers: { + Authorization: 'Bearer token', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + requestId: '12d3c#1846057dce2', + result: { + id: 5, + status: 'skipped', + reasons: [{ code: '1015', message: 'Lead not in list' }], + }, + success: true, + }, + status: 200, + }, + }, +]; +export const networkCallsData = [ + { + httpReq: { + method: 'GET', + params: { + client_id: 'marketo_client_id_success', + client_secret: 'marketo_client_secret_success', + grant_type: 'client_credentials', + }, + url: 'https://marketo_acct_id_success.mktorest.com/identity/oauth/token', + }, + httpRes: { + data: { + access_token: 'access_token_success', + expires_in: 3599, + scope: 'integrations@rudderstack.com', + token_type: 'bearer', + }, + status: 200, + }, + }, + ...deliveryCallsData, +]; diff --git a/test/integrations/destinations/marketo_static_list/processor/data.ts b/test/integrations/destinations/marketo_static_list/processor/data.ts new file mode 100644 index 00000000000..05fba54f6a5 --- /dev/null +++ b/test/integrations/destinations/marketo_static_list/processor/data.ts @@ -0,0 +1,1194 @@ +export const data = [ + { + name: 'marketo_static_list', + description: 'adding and removing users and getting staticListId from externalId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 3421, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [{ id: 1 }, { id: 2 }, { id: 3 }], + remove: [{ id: 4 }, { id: 5 }, { id: 6 }], + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { name: 'http' }, + externalId: [{ type: 'marketoStaticListId', id: 1234 }], + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=4&id=5&id=6', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=1&id=2&id=3', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'marketo_static_list', + description: 'adding more than max limit users', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1234, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { id: 0 }, + { id: 1 }, + { id: 2 }, + { id: 3 }, + { id: 4 }, + { id: 5 }, + { id: 6 }, + { id: 7 }, + { id: 8 }, + { id: 9 }, + { id: 10 }, + { id: 11 }, + { id: 12 }, + { id: 13 }, + { id: 14 }, + { id: 15 }, + { id: 16 }, + { id: 17 }, + { id: 18 }, + { id: 19 }, + { id: 20 }, + { id: 21 }, + { id: 22 }, + { id: 23 }, + { id: 24 }, + { id: 25 }, + { id: 26 }, + { id: 27 }, + { id: 28 }, + { id: 29 }, + { id: 30 }, + { id: 31 }, + { id: 32 }, + { id: 33 }, + { id: 34 }, + { id: 35 }, + { id: 36 }, + { id: 37 }, + { id: 38 }, + { id: 39 }, + { id: 40 }, + { id: 41 }, + { id: 42 }, + { id: 43 }, + { id: 44 }, + { id: 45 }, + { id: 46 }, + { id: 47 }, + { id: 48 }, + { id: 49 }, + { id: 50 }, + { id: 51 }, + { id: 52 }, + { id: 53 }, + { id: 54 }, + { id: 55 }, + { id: 56 }, + { id: 57 }, + { id: 58 }, + { id: 59 }, + { id: 60 }, + { id: 61 }, + { id: 62 }, + { id: 63 }, + { id: 64 }, + { id: 65 }, + { id: 66 }, + { id: 67 }, + { id: 68 }, + { id: 69 }, + { id: 70 }, + { id: 71 }, + { id: 72 }, + { id: 73 }, + { id: 74 }, + { id: 75 }, + { id: 76 }, + { id: 77 }, + { id: 78 }, + { id: 79 }, + { id: 80 }, + { id: 81 }, + { id: 82 }, + { id: 83 }, + { id: 84 }, + { id: 85 }, + { id: 86 }, + { id: 87 }, + { id: 88 }, + { id: 89 }, + { id: 90 }, + { id: 91 }, + { id: 92 }, + { id: 93 }, + { id: 94 }, + { id: 95 }, + { id: 96 }, + { id: 97 }, + { id: 98 }, + { id: 99 }, + { id: 100 }, + { id: 101 }, + { id: 102 }, + { id: 103 }, + { id: 104 }, + { id: 105 }, + { id: 106 }, + { id: 107 }, + { id: 108 }, + { id: 109 }, + { id: 110 }, + { id: 111 }, + { id: 112 }, + { id: 113 }, + { id: 114 }, + { id: 115 }, + { id: 116 }, + { id: 117 }, + { id: 118 }, + { id: 119 }, + { id: 120 }, + { id: 121 }, + { id: 122 }, + { id: 123 }, + { id: 124 }, + { id: 125 }, + { id: 126 }, + { id: 127 }, + { id: 128 }, + { id: 129 }, + { id: 130 }, + { id: 131 }, + { id: 132 }, + { id: 133 }, + { id: 134 }, + { id: 135 }, + { id: 136 }, + { id: 137 }, + { id: 138 }, + { id: 139 }, + { id: 140 }, + { id: 141 }, + { id: 142 }, + { id: 143 }, + { id: 144 }, + { id: 145 }, + { id: 146 }, + { id: 147 }, + { id: 148 }, + { id: 149 }, + { id: 150 }, + { id: 151 }, + { id: 152 }, + { id: 153 }, + { id: 154 }, + { id: 155 }, + { id: 156 }, + { id: 157 }, + { id: 158 }, + { id: 159 }, + { id: 160 }, + { id: 161 }, + { id: 162 }, + { id: 163 }, + { id: 164 }, + { id: 165 }, + { id: 166 }, + { id: 167 }, + { id: 168 }, + { id: 169 }, + { id: 170 }, + { id: 171 }, + { id: 172 }, + { id: 173 }, + { id: 174 }, + { id: 175 }, + { id: 176 }, + { id: 177 }, + { id: 178 }, + { id: 179 }, + { id: 180 }, + { id: 181 }, + { id: 182 }, + { id: 183 }, + { id: 184 }, + { id: 185 }, + { id: 186 }, + { id: 187 }, + { id: 188 }, + { id: 189 }, + { id: 190 }, + { id: 191 }, + { id: 192 }, + { id: 193 }, + { id: 194 }, + { id: 195 }, + { id: 196 }, + { id: 197 }, + { id: 198 }, + { id: 199 }, + { id: 200 }, + { id: 201 }, + { id: 202 }, + { id: 203 }, + { id: 204 }, + { id: 205 }, + { id: 206 }, + { id: 207 }, + { id: 208 }, + { id: 209 }, + { id: 210 }, + { id: 211 }, + { id: 212 }, + { id: 213 }, + { id: 214 }, + { id: 215 }, + { id: 216 }, + { id: 217 }, + { id: 218 }, + { id: 219 }, + { id: 220 }, + { id: 221 }, + { id: 222 }, + { id: 223 }, + { id: 224 }, + { id: 225 }, + { id: 226 }, + { id: 227 }, + { id: 228 }, + { id: 229 }, + { id: 230 }, + { id: 231 }, + { id: 232 }, + { id: 233 }, + { id: 234 }, + { id: 235 }, + { id: 236 }, + { id: 237 }, + { id: 238 }, + { id: 239 }, + { id: 240 }, + { id: 241 }, + { id: 242 }, + { id: 243 }, + { id: 244 }, + { id: 245 }, + { id: 246 }, + { id: 247 }, + { id: 248 }, + { id: 249 }, + { id: 250 }, + { id: 251 }, + { id: 252 }, + { id: 253 }, + { id: 254 }, + { id: 255 }, + { id: 256 }, + { id: 257 }, + { id: 258 }, + { id: 259 }, + { id: 260 }, + { id: 261 }, + { id: 262 }, + { id: 263 }, + { id: 264 }, + { id: 265 }, + { id: 266 }, + { id: 267 }, + { id: 268 }, + { id: 269 }, + { id: 270 }, + { id: 271 }, + { id: 272 }, + { id: 273 }, + { id: 274 }, + { id: 275 }, + { id: 276 }, + { id: 277 }, + { id: 278 }, + { id: 279 }, + { id: 280 }, + { id: 281 }, + { id: 282 }, + { id: 283 }, + { id: 284 }, + { id: 285 }, + { id: 286 }, + { id: 287 }, + { id: 288 }, + { id: 289 }, + { id: 290 }, + { id: 291 }, + { id: 292 }, + { id: 293 }, + { id: 294 }, + { id: 295 }, + { id: 296 }, + { id: 297 }, + { id: 298 }, + { id: 299 }, + { id: 300 }, + { id: 301 }, + { id: 302 }, + { id: 303 }, + { id: 304 }, + { id: 305 }, + { id: 306 }, + { id: 307 }, + { id: 308 }, + { id: 309 }, + { id: 310 }, + { id: 311 }, + { id: 312 }, + { id: 313 }, + { id: 314 }, + { id: 315 }, + { id: 316 }, + { id: 317 }, + { id: 318 }, + { id: 319 }, + { id: 320 }, + { id: 321 }, + { id: 322 }, + { id: 323 }, + { id: 324 }, + { id: 325 }, + { id: 326 }, + { id: 327 }, + { id: 328 }, + { id: 329 }, + { id: 330 }, + { id: 331 }, + { id: 332 }, + { id: 333 }, + { id: 334 }, + { id: 335 }, + { id: 336 }, + { id: 337 }, + { id: 338 }, + { id: 339 }, + { id: 340 }, + { id: 341 }, + { id: 342 }, + { id: 343 }, + { id: 344 }, + { id: 345 }, + { id: 346 }, + { id: 347 }, + { id: 348 }, + { id: 349 }, + { id: 350 }, + ], + }, + enablePartialFailure: true, + }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=0&id=1&id=2&id=3&id=4&id=5&id=6&id=7&id=8&id=9&id=10&id=11&id=12&id=13&id=14&id=15&id=16&id=17&id=18&id=19&id=20&id=21&id=22&id=23&id=24&id=25&id=26&id=27&id=28&id=29&id=30&id=31&id=32&id=33&id=34&id=35&id=36&id=37&id=38&id=39&id=40&id=41&id=42&id=43&id=44&id=45&id=46&id=47&id=48&id=49&id=50&id=51&id=52&id=53&id=54&id=55&id=56&id=57&id=58&id=59&id=60&id=61&id=62&id=63&id=64&id=65&id=66&id=67&id=68&id=69&id=70&id=71&id=72&id=73&id=74&id=75&id=76&id=77&id=78&id=79&id=80&id=81&id=82&id=83&id=84&id=85&id=86&id=87&id=88&id=89&id=90&id=91&id=92&id=93&id=94&id=95&id=96&id=97&id=98&id=99&id=100&id=101&id=102&id=103&id=104&id=105&id=106&id=107&id=108&id=109&id=110&id=111&id=112&id=113&id=114&id=115&id=116&id=117&id=118&id=119&id=120&id=121&id=122&id=123&id=124&id=125&id=126&id=127&id=128&id=129&id=130&id=131&id=132&id=133&id=134&id=135&id=136&id=137&id=138&id=139&id=140&id=141&id=142&id=143&id=144&id=145&id=146&id=147&id=148&id=149&id=150&id=151&id=152&id=153&id=154&id=155&id=156&id=157&id=158&id=159&id=160&id=161&id=162&id=163&id=164&id=165&id=166&id=167&id=168&id=169&id=170&id=171&id=172&id=173&id=174&id=175&id=176&id=177&id=178&id=179&id=180&id=181&id=182&id=183&id=184&id=185&id=186&id=187&id=188&id=189&id=190&id=191&id=192&id=193&id=194&id=195&id=196&id=197&id=198&id=199&id=200&id=201&id=202&id=203&id=204&id=205&id=206&id=207&id=208&id=209&id=210&id=211&id=212&id=213&id=214&id=215&id=216&id=217&id=218&id=219&id=220&id=221&id=222&id=223&id=224&id=225&id=226&id=227&id=228&id=229&id=230&id=231&id=232&id=233&id=234&id=235&id=236&id=237&id=238&id=239&id=240&id=241&id=242&id=243&id=244&id=245&id=246&id=247&id=248&id=249&id=250&id=251&id=252&id=253&id=254&id=255&id=256&id=257&id=258&id=259&id=260&id=261&id=262&id=263&id=264&id=265&id=266&id=267&id=268&id=269&id=270&id=271&id=272&id=273&id=274&id=275&id=276&id=277&id=278&id=279&id=280&id=281&id=282&id=283&id=284&id=285&id=286&id=287&id=288&id=289&id=290&id=291&id=292&id=293&id=294&id=295&id=296&id=297&id=298&id=299', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=300&id=301&id=302&id=303&id=304&id=305&id=306&id=307&id=308&id=309&id=310&id=311&id=312&id=313&id=314&id=315&id=316&id=317&id=318&id=319&id=320&id=321&id=322&id=323&id=324&id=325&id=326&id=327&id=328&id=329&id=330&id=331&id=332&id=333&id=334&id=335&id=336&id=337&id=338&id=339&id=340&id=341&id=342&id=343&id=344&id=345&id=346&id=347&id=348&id=349&id=350', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'marketo_static_list', + description: 'removing more than max limit users', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1234, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + remove: [ + { id: 0 }, + { id: 1 }, + { id: 2 }, + { id: 3 }, + { id: 4 }, + { id: 5 }, + { id: 6 }, + { id: 7 }, + { id: 8 }, + { id: 9 }, + { id: 10 }, + { id: 11 }, + { id: 12 }, + { id: 13 }, + { id: 14 }, + { id: 15 }, + { id: 16 }, + { id: 17 }, + { id: 18 }, + { id: 19 }, + { id: 20 }, + { id: 21 }, + { id: 22 }, + { id: 23 }, + { id: 24 }, + { id: 25 }, + { id: 26 }, + { id: 27 }, + { id: 28 }, + { id: 29 }, + { id: 30 }, + { id: 31 }, + { id: 32 }, + { id: 33 }, + { id: 34 }, + { id: 35 }, + { id: 36 }, + { id: 37 }, + { id: 38 }, + { id: 39 }, + { id: 40 }, + { id: 41 }, + { id: 42 }, + { id: 43 }, + { id: 44 }, + { id: 45 }, + { id: 46 }, + { id: 47 }, + { id: 48 }, + { id: 49 }, + { id: 50 }, + { id: 51 }, + { id: 52 }, + { id: 53 }, + { id: 54 }, + { id: 55 }, + { id: 56 }, + { id: 57 }, + { id: 58 }, + { id: 59 }, + { id: 60 }, + { id: 61 }, + { id: 62 }, + { id: 63 }, + { id: 64 }, + { id: 65 }, + { id: 66 }, + { id: 67 }, + { id: 68 }, + { id: 69 }, + { id: 70 }, + { id: 71 }, + { id: 72 }, + { id: 73 }, + { id: 74 }, + { id: 75 }, + { id: 76 }, + { id: 77 }, + { id: 78 }, + { id: 79 }, + { id: 80 }, + { id: 81 }, + { id: 82 }, + { id: 83 }, + { id: 84 }, + { id: 85 }, + { id: 86 }, + { id: 87 }, + { id: 88 }, + { id: 89 }, + { id: 90 }, + { id: 91 }, + { id: 92 }, + { id: 93 }, + { id: 94 }, + { id: 95 }, + { id: 96 }, + { id: 97 }, + { id: 98 }, + { id: 99 }, + { id: 100 }, + { id: 101 }, + { id: 102 }, + { id: 103 }, + { id: 104 }, + { id: 105 }, + { id: 106 }, + { id: 107 }, + { id: 108 }, + { id: 109 }, + { id: 110 }, + { id: 111 }, + { id: 112 }, + { id: 113 }, + { id: 114 }, + { id: 115 }, + { id: 116 }, + { id: 117 }, + { id: 118 }, + { id: 119 }, + { id: 120 }, + { id: 121 }, + { id: 122 }, + { id: 123 }, + { id: 124 }, + { id: 125 }, + { id: 126 }, + { id: 127 }, + { id: 128 }, + { id: 129 }, + { id: 130 }, + { id: 131 }, + { id: 132 }, + { id: 133 }, + { id: 134 }, + { id: 135 }, + { id: 136 }, + { id: 137 }, + { id: 138 }, + { id: 139 }, + { id: 140 }, + { id: 141 }, + { id: 142 }, + { id: 143 }, + { id: 144 }, + { id: 145 }, + { id: 146 }, + { id: 147 }, + { id: 148 }, + { id: 149 }, + { id: 150 }, + { id: 151 }, + { id: 152 }, + { id: 153 }, + { id: 154 }, + { id: 155 }, + { id: 156 }, + { id: 157 }, + { id: 158 }, + { id: 159 }, + { id: 160 }, + { id: 161 }, + { id: 162 }, + { id: 163 }, + { id: 164 }, + { id: 165 }, + { id: 166 }, + { id: 167 }, + { id: 168 }, + { id: 169 }, + { id: 170 }, + { id: 171 }, + { id: 172 }, + { id: 173 }, + { id: 174 }, + { id: 175 }, + { id: 176 }, + { id: 177 }, + { id: 178 }, + { id: 179 }, + { id: 180 }, + { id: 181 }, + { id: 182 }, + { id: 183 }, + { id: 184 }, + { id: 185 }, + { id: 186 }, + { id: 187 }, + { id: 188 }, + { id: 189 }, + { id: 190 }, + { id: 191 }, + { id: 192 }, + { id: 193 }, + { id: 194 }, + { id: 195 }, + { id: 196 }, + { id: 197 }, + { id: 198 }, + { id: 199 }, + { id: 200 }, + { id: 201 }, + { id: 202 }, + { id: 203 }, + { id: 204 }, + { id: 205 }, + { id: 206 }, + { id: 207 }, + { id: 208 }, + { id: 209 }, + { id: 210 }, + { id: 211 }, + { id: 212 }, + { id: 213 }, + { id: 214 }, + { id: 215 }, + { id: 216 }, + { id: 217 }, + { id: 218 }, + { id: 219 }, + { id: 220 }, + { id: 221 }, + { id: 222 }, + { id: 223 }, + { id: 224 }, + { id: 225 }, + { id: 226 }, + { id: 227 }, + { id: 228 }, + { id: 229 }, + { id: 230 }, + { id: 231 }, + { id: 232 }, + { id: 233 }, + { id: 234 }, + { id: 235 }, + { id: 236 }, + { id: 237 }, + { id: 238 }, + { id: 239 }, + { id: 240 }, + { id: 241 }, + { id: 242 }, + { id: 243 }, + { id: 244 }, + { id: 245 }, + { id: 246 }, + { id: 247 }, + { id: 248 }, + { id: 249 }, + { id: 250 }, + { id: 251 }, + { id: 252 }, + { id: 253 }, + { id: 254 }, + { id: 255 }, + { id: 256 }, + { id: 257 }, + { id: 258 }, + { id: 259 }, + { id: 260 }, + { id: 261 }, + { id: 262 }, + { id: 263 }, + { id: 264 }, + { id: 265 }, + { id: 266 }, + { id: 267 }, + { id: 268 }, + { id: 269 }, + { id: 270 }, + { id: 271 }, + { id: 272 }, + { id: 273 }, + { id: 274 }, + { id: 275 }, + { id: 276 }, + { id: 277 }, + { id: 278 }, + { id: 279 }, + { id: 280 }, + { id: 281 }, + { id: 282 }, + { id: 283 }, + { id: 284 }, + { id: 285 }, + { id: 286 }, + { id: 287 }, + { id: 288 }, + { id: 289 }, + { id: 290 }, + { id: 291 }, + { id: 292 }, + { id: 293 }, + { id: 294 }, + { id: 295 }, + { id: 296 }, + { id: 297 }, + { id: 298 }, + { id: 299 }, + { id: 300 }, + { id: 301 }, + { id: 302 }, + { id: 303 }, + { id: 304 }, + { id: 305 }, + { id: 306 }, + { id: 307 }, + { id: 308 }, + { id: 309 }, + { id: 310 }, + { id: 311 }, + { id: 312 }, + { id: 313 }, + { id: 314 }, + { id: 315 }, + { id: 316 }, + { id: 317 }, + { id: 318 }, + { id: 319 }, + { id: 320 }, + { id: 321 }, + { id: 322 }, + { id: 323 }, + { id: 324 }, + { id: 325 }, + { id: 326 }, + { id: 327 }, + { id: 328 }, + { id: 329 }, + { id: 330 }, + { id: 331 }, + { id: 332 }, + { id: 333 }, + { id: 334 }, + { id: 335 }, + { id: 336 }, + { id: 337 }, + { id: 338 }, + { id: 339 }, + { id: 340 }, + { id: 341 }, + { id: 342 }, + { id: 343 }, + { id: 344 }, + { id: 345 }, + { id: 346 }, + { id: 347 }, + { id: 348 }, + { id: 349 }, + { id: 350 }, + ], + }, + enablePartialFailure: true, + }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=0&id=1&id=2&id=3&id=4&id=5&id=6&id=7&id=8&id=9&id=10&id=11&id=12&id=13&id=14&id=15&id=16&id=17&id=18&id=19&id=20&id=21&id=22&id=23&id=24&id=25&id=26&id=27&id=28&id=29&id=30&id=31&id=32&id=33&id=34&id=35&id=36&id=37&id=38&id=39&id=40&id=41&id=42&id=43&id=44&id=45&id=46&id=47&id=48&id=49&id=50&id=51&id=52&id=53&id=54&id=55&id=56&id=57&id=58&id=59&id=60&id=61&id=62&id=63&id=64&id=65&id=66&id=67&id=68&id=69&id=70&id=71&id=72&id=73&id=74&id=75&id=76&id=77&id=78&id=79&id=80&id=81&id=82&id=83&id=84&id=85&id=86&id=87&id=88&id=89&id=90&id=91&id=92&id=93&id=94&id=95&id=96&id=97&id=98&id=99&id=100&id=101&id=102&id=103&id=104&id=105&id=106&id=107&id=108&id=109&id=110&id=111&id=112&id=113&id=114&id=115&id=116&id=117&id=118&id=119&id=120&id=121&id=122&id=123&id=124&id=125&id=126&id=127&id=128&id=129&id=130&id=131&id=132&id=133&id=134&id=135&id=136&id=137&id=138&id=139&id=140&id=141&id=142&id=143&id=144&id=145&id=146&id=147&id=148&id=149&id=150&id=151&id=152&id=153&id=154&id=155&id=156&id=157&id=158&id=159&id=160&id=161&id=162&id=163&id=164&id=165&id=166&id=167&id=168&id=169&id=170&id=171&id=172&id=173&id=174&id=175&id=176&id=177&id=178&id=179&id=180&id=181&id=182&id=183&id=184&id=185&id=186&id=187&id=188&id=189&id=190&id=191&id=192&id=193&id=194&id=195&id=196&id=197&id=198&id=199&id=200&id=201&id=202&id=203&id=204&id=205&id=206&id=207&id=208&id=209&id=210&id=211&id=212&id=213&id=214&id=215&id=216&id=217&id=218&id=219&id=220&id=221&id=222&id=223&id=224&id=225&id=226&id=227&id=228&id=229&id=230&id=231&id=232&id=233&id=234&id=235&id=236&id=237&id=238&id=239&id=240&id=241&id=242&id=243&id=244&id=245&id=246&id=247&id=248&id=249&id=250&id=251&id=252&id=253&id=254&id=255&id=256&id=257&id=258&id=259&id=260&id=261&id=262&id=263&id=264&id=265&id=266&id=267&id=268&id=269&id=270&id=271&id=272&id=273&id=274&id=275&id=276&id=277&id=278&id=279&id=280&id=281&id=282&id=283&id=284&id=285&id=286&id=287&id=288&id=289&id=290&id=291&id=292&id=293&id=294&id=295&id=296&id=297&id=298&id=299', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=300&id=301&id=302&id=303&id=304&id=305&id=306&id=307&id=308&id=309&id=310&id=311&id=312&id=313&id=314&id=315&id=316&id=317&id=318&id=319&id=320&id=321&id=322&id=323&id=324&id=325&id=326&id=327&id=328&id=329&id=330&id=331&id=332&id=333&id=334&id=335&id=336&id=337&id=338&id=339&id=340&id=341&id=342&id=343&id=344&id=345&id=346&id=347&id=348&id=349&id=350', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'marketo_static_list', + description: 'unsupported message Type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1234, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'track', + properties: { listData: { remove: [1] }, enablePartialFailure: true }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type track is not supported', + statTags: { + destType: 'MARKETO_STATIC_LIST', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'marketo_static_list', + description: 'Invalid leadIds format ', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1234, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { listData: { remove: 1 }, enablePartialFailure: true }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Invalid leadIds format or no leadIds found neither to add nor to remove', + statTags: { + destType: 'MARKETO_STATIC_LIST', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'marketo_static_list', + description: 'Only adding with remove not an array', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1234, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { listData: { add: [{ id: 1 }], remove: 2 }, enablePartialFailure: true }, + context: { ip: '14.5.67.21', library: { name: 'http' } }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=1', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/marketo_static_list/router/data.ts b/test/integrations/destinations/marketo_static_list/router/data.ts new file mode 100644 index 00000000000..840ad773b30 --- /dev/null +++ b/test/integrations/destinations/marketo_static_list/router/data.ts @@ -0,0 +1,3649 @@ +export const data = [ + { + name: 'marketo_static_list', + description: + 'Test 0: Test audiencelist event with add and remove: Test eventtype lowercase and uppercase', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1234, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + id: 1, + }, + { + id: 2, + }, + { + id: 3, + }, + ], + remove: [ + { + id: 4, + }, + { + id: 5, + }, + { + id: 6, + }, + ], + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 1, + }, + }, + { + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1234, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audienceList', + properties: { + listData: { + add: [ + { + id: 0, + }, + { + id: 1, + }, + { + id: 2, + }, + { + id: 3, + }, + { + id: 4, + }, + { + id: 5, + }, + { + id: 6, + }, + { + id: 7, + }, + { + id: 8, + }, + { + id: 9, + }, + { + id: 10, + }, + { + id: 11, + }, + { + id: 12, + }, + { + id: 13, + }, + { + id: 14, + }, + { + id: 15, + }, + { + id: 16, + }, + { + id: 17, + }, + { + id: 18, + }, + { + id: 19, + }, + { + id: 20, + }, + { + id: 21, + }, + { + id: 22, + }, + { + id: 23, + }, + { + id: 24, + }, + { + id: 25, + }, + { + id: 26, + }, + { + id: 27, + }, + { + id: 28, + }, + { + id: 29, + }, + { + id: 30, + }, + { + id: 31, + }, + { + id: 32, + }, + { + id: 33, + }, + { + id: 34, + }, + { + id: 35, + }, + { + id: 36, + }, + { + id: 37, + }, + { + id: 38, + }, + { + id: 39, + }, + { + id: 40, + }, + { + id: 41, + }, + { + id: 42, + }, + { + id: 43, + }, + { + id: 44, + }, + { + id: 45, + }, + { + id: 46, + }, + { + id: 47, + }, + { + id: 48, + }, + { + id: 49, + }, + { + id: 50, + }, + { + id: 51, + }, + { + id: 52, + }, + { + id: 53, + }, + { + id: 54, + }, + { + id: 55, + }, + { + id: 56, + }, + { + id: 57, + }, + { + id: 58, + }, + { + id: 59, + }, + { + id: 60, + }, + { + id: 61, + }, + { + id: 62, + }, + { + id: 63, + }, + { + id: 64, + }, + { + id: 65, + }, + { + id: 66, + }, + { + id: 67, + }, + { + id: 68, + }, + { + id: 69, + }, + { + id: 70, + }, + { + id: 71, + }, + { + id: 72, + }, + { + id: 73, + }, + { + id: 74, + }, + { + id: 75, + }, + { + id: 76, + }, + { + id: 77, + }, + { + id: 78, + }, + { + id: 79, + }, + { + id: 80, + }, + { + id: 81, + }, + { + id: 82, + }, + { + id: 83, + }, + { + id: 84, + }, + { + id: 85, + }, + { + id: 86, + }, + { + id: 87, + }, + { + id: 88, + }, + { + id: 89, + }, + { + id: 90, + }, + { + id: 91, + }, + { + id: 92, + }, + { + id: 93, + }, + { + id: 94, + }, + { + id: 95, + }, + { + id: 96, + }, + { + id: 97, + }, + { + id: 98, + }, + { + id: 99, + }, + { + id: 100, + }, + { + id: 101, + }, + { + id: 102, + }, + { + id: 103, + }, + { + id: 104, + }, + { + id: 105, + }, + { + id: 106, + }, + { + id: 107, + }, + { + id: 108, + }, + { + id: 109, + }, + { + id: 110, + }, + { + id: 111, + }, + { + id: 112, + }, + { + id: 113, + }, + { + id: 114, + }, + { + id: 115, + }, + { + id: 116, + }, + { + id: 117, + }, + { + id: 118, + }, + { + id: 119, + }, + { + id: 120, + }, + { + id: 121, + }, + { + id: 122, + }, + { + id: 123, + }, + { + id: 124, + }, + { + id: 125, + }, + { + id: 126, + }, + { + id: 127, + }, + { + id: 128, + }, + { + id: 129, + }, + { + id: 130, + }, + { + id: 131, + }, + { + id: 132, + }, + { + id: 133, + }, + { + id: 134, + }, + { + id: 135, + }, + { + id: 136, + }, + { + id: 137, + }, + { + id: 138, + }, + { + id: 139, + }, + { + id: 140, + }, + { + id: 141, + }, + { + id: 142, + }, + { + id: 143, + }, + { + id: 144, + }, + { + id: 145, + }, + { + id: 146, + }, + { + id: 147, + }, + { + id: 148, + }, + { + id: 149, + }, + { + id: 150, + }, + { + id: 151, + }, + { + id: 152, + }, + { + id: 153, + }, + { + id: 154, + }, + { + id: 155, + }, + { + id: 156, + }, + { + id: 157, + }, + { + id: 158, + }, + { + id: 159, + }, + { + id: 160, + }, + { + id: 161, + }, + { + id: 162, + }, + { + id: 163, + }, + { + id: 164, + }, + { + id: 165, + }, + { + id: 166, + }, + { + id: 167, + }, + { + id: 168, + }, + { + id: 169, + }, + { + id: 170, + }, + { + id: 171, + }, + { + id: 172, + }, + { + id: 173, + }, + { + id: 174, + }, + { + id: 175, + }, + { + id: 176, + }, + { + id: 177, + }, + { + id: 178, + }, + { + id: 179, + }, + { + id: 180, + }, + { + id: 181, + }, + { + id: 182, + }, + { + id: 183, + }, + { + id: 184, + }, + { + id: 185, + }, + { + id: 186, + }, + { + id: 187, + }, + { + id: 188, + }, + { + id: 189, + }, + { + id: 190, + }, + { + id: 191, + }, + { + id: 192, + }, + { + id: 193, + }, + { + id: 194, + }, + { + id: 195, + }, + { + id: 196, + }, + { + id: 197, + }, + { + id: 198, + }, + { + id: 199, + }, + { + id: 200, + }, + { + id: 201, + }, + { + id: 202, + }, + { + id: 203, + }, + { + id: 204, + }, + { + id: 205, + }, + { + id: 206, + }, + { + id: 207, + }, + { + id: 208, + }, + { + id: 209, + }, + { + id: 210, + }, + { + id: 211, + }, + { + id: 212, + }, + { + id: 213, + }, + { + id: 214, + }, + { + id: 215, + }, + { + id: 216, + }, + { + id: 217, + }, + { + id: 218, + }, + { + id: 219, + }, + { + id: 220, + }, + { + id: 221, + }, + { + id: 222, + }, + { + id: 223, + }, + { + id: 224, + }, + { + id: 225, + }, + { + id: 226, + }, + { + id: 227, + }, + { + id: 228, + }, + { + id: 229, + }, + { + id: 230, + }, + { + id: 231, + }, + { + id: 232, + }, + { + id: 233, + }, + { + id: 234, + }, + { + id: 235, + }, + { + id: 236, + }, + { + id: 237, + }, + { + id: 238, + }, + { + id: 239, + }, + { + id: 240, + }, + { + id: 241, + }, + { + id: 242, + }, + { + id: 243, + }, + { + id: 244, + }, + { + id: 245, + }, + { + id: 246, + }, + { + id: 247, + }, + { + id: 248, + }, + { + id: 249, + }, + { + id: 250, + }, + { + id: 251, + }, + { + id: 252, + }, + { + id: 253, + }, + { + id: 254, + }, + { + id: 255, + }, + { + id: 256, + }, + { + id: 257, + }, + { + id: 258, + }, + { + id: 259, + }, + { + id: 260, + }, + { + id: 261, + }, + { + id: 262, + }, + { + id: 263, + }, + { + id: 264, + }, + { + id: 265, + }, + { + id: 266, + }, + { + id: 267, + }, + { + id: 268, + }, + { + id: 269, + }, + { + id: 270, + }, + { + id: 271, + }, + { + id: 272, + }, + { + id: 273, + }, + { + id: 274, + }, + { + id: 275, + }, + { + id: 276, + }, + { + id: 277, + }, + { + id: 278, + }, + { + id: 279, + }, + { + id: 280, + }, + { + id: 281, + }, + { + id: 282, + }, + { + id: 283, + }, + { + id: 284, + }, + { + id: 285, + }, + { + id: 286, + }, + { + id: 287, + }, + { + id: 288, + }, + { + id: 289, + }, + { + id: 290, + }, + { + id: 291, + }, + { + id: 292, + }, + { + id: 293, + }, + { + id: 294, + }, + { + id: 295, + }, + { + id: 296, + }, + { + id: 297, + }, + { + id: 298, + }, + { + id: 299, + }, + { + id: 300, + }, + { + id: 301, + }, + { + id: 302, + }, + { + id: 303, + }, + { + id: 304, + }, + { + id: 305, + }, + { + id: 306, + }, + { + id: 307, + }, + { + id: 308, + }, + { + id: 309, + }, + { + id: 310, + }, + { + id: 311, + }, + { + id: 312, + }, + { + id: 313, + }, + { + id: 314, + }, + { + id: 315, + }, + { + id: 316, + }, + { + id: 317, + }, + { + id: 318, + }, + { + id: 319, + }, + { + id: 320, + }, + { + id: 321, + }, + { + id: 322, + }, + { + id: 323, + }, + { + id: 324, + }, + { + id: 325, + }, + { + id: 326, + }, + { + id: 327, + }, + { + id: 328, + }, + { + id: 329, + }, + { + id: 330, + }, + { + id: 331, + }, + { + id: 332, + }, + { + id: 333, + }, + { + id: 334, + }, + { + id: 335, + }, + { + id: 336, + }, + { + id: 337, + }, + { + id: 338, + }, + { + id: 339, + }, + { + id: 340, + }, + { + id: 341, + }, + { + id: 342, + }, + { + id: 343, + }, + { + id: 344, + }, + { + id: 345, + }, + { + id: 346, + }, + { + id: 347, + }, + { + id: 348, + }, + { + id: 349, + }, + { + id: 350, + }, + ], + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 2, + }, + }, + ], + destType: 'marketo_static_list', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=4&id=5&id=6', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=1&id=2&id=3', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + destInfo: { + authKey: '1zia9wKshXt80YksLmUdJnr7IHI', + }, + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1234, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=0&id=1&id=2&id=3&id=4&id=5&id=6&id=7&id=8&id=9&id=10&id=11&id=12&id=13&id=14&id=15&id=16&id=17&id=18&id=19&id=20&id=21&id=22&id=23&id=24&id=25&id=26&id=27&id=28&id=29&id=30&id=31&id=32&id=33&id=34&id=35&id=36&id=37&id=38&id=39&id=40&id=41&id=42&id=43&id=44&id=45&id=46&id=47&id=48&id=49&id=50&id=51&id=52&id=53&id=54&id=55&id=56&id=57&id=58&id=59&id=60&id=61&id=62&id=63&id=64&id=65&id=66&id=67&id=68&id=69&id=70&id=71&id=72&id=73&id=74&id=75&id=76&id=77&id=78&id=79&id=80&id=81&id=82&id=83&id=84&id=85&id=86&id=87&id=88&id=89&id=90&id=91&id=92&id=93&id=94&id=95&id=96&id=97&id=98&id=99&id=100&id=101&id=102&id=103&id=104&id=105&id=106&id=107&id=108&id=109&id=110&id=111&id=112&id=113&id=114&id=115&id=116&id=117&id=118&id=119&id=120&id=121&id=122&id=123&id=124&id=125&id=126&id=127&id=128&id=129&id=130&id=131&id=132&id=133&id=134&id=135&id=136&id=137&id=138&id=139&id=140&id=141&id=142&id=143&id=144&id=145&id=146&id=147&id=148&id=149&id=150&id=151&id=152&id=153&id=154&id=155&id=156&id=157&id=158&id=159&id=160&id=161&id=162&id=163&id=164&id=165&id=166&id=167&id=168&id=169&id=170&id=171&id=172&id=173&id=174&id=175&id=176&id=177&id=178&id=179&id=180&id=181&id=182&id=183&id=184&id=185&id=186&id=187&id=188&id=189&id=190&id=191&id=192&id=193&id=194&id=195&id=196&id=197&id=198&id=199&id=200&id=201&id=202&id=203&id=204&id=205&id=206&id=207&id=208&id=209&id=210&id=211&id=212&id=213&id=214&id=215&id=216&id=217&id=218&id=219&id=220&id=221&id=222&id=223&id=224&id=225&id=226&id=227&id=228&id=229&id=230&id=231&id=232&id=233&id=234&id=235&id=236&id=237&id=238&id=239&id=240&id=241&id=242&id=243&id=244&id=245&id=246&id=247&id=248&id=249&id=250&id=251&id=252&id=253&id=254&id=255&id=256&id=257&id=258&id=259&id=260&id=261&id=262&id=263&id=264&id=265&id=266&id=267&id=268&id=269&id=270&id=271&id=272&id=273&id=274&id=275&id=276&id=277&id=278&id=279&id=280&id=281&id=282&id=283&id=284&id=285&id=286&id=287&id=288&id=289&id=290&id=291&id=292&id=293&id=294&id=295&id=296&id=297&id=298&id=299', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=300&id=301&id=302&id=303&id=304&id=305&id=306&id=307&id=308&id=309&id=310&id=311&id=312&id=313&id=314&id=315&id=316&id=317&id=318&id=319&id=320&id=321&id=322&id=323&id=324&id=325&id=326&id=327&id=328&id=329&id=330&id=331&id=332&id=333&id=334&id=335&id=336&id=337&id=338&id=339&id=340&id=341&id=342&id=343&id=344&id=345&id=346&id=347&id=348&id=349&id=350', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + destInfo: { + authKey: '1zia9wKshXt80YksLmUdJnr7IHI', + }, + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1234, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + }, + }, + { + name: 'marketo_static_list', + description: 'Test 1: Test record and audiencelist events in a single batch', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + type: 'record', + action: 'insert', + fields: { + id: 1001, + }, + channel: 'sources', + context: { + sources: { + job_id: '2VsZs4hyPpq7f1p8igrpmHsibHl', + version: 'feat.mirrorRetlEvent', + job_run_id: 'ck99nbd2kqiljdihhkh0', + task_run_id: 'ck99nbd2kqiljdihhkhg', + }, + externalId: [ + { + type: 'marketoStaticListId', + identifierType: 'id', + }, + ], + destinationFields: 'id', + mappedToDestination: 'true', + }, + recordId: '3', + }, + metadata: { + jobId: 1, + }, + }, + { + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + type: 'record', + action: 'insert', + fields: { + id: 1002, + }, + channel: 'sources', + context: { + sources: { + job_id: '2VsZs4hyPpq7f1p8igrpmHsibHl', + version: 'feat.mirrorRetlEvent', + job_run_id: 'ck99nbd2kqiljdihhkh0', + task_run_id: 'ck99nbd2kqiljdihhkhg', + }, + externalId: [ + { + type: 'marketoStaticListId', + identifierType: 'id', + }, + ], + destinationFields: 'id', + mappedToDestination: 'true', + }, + recordId: '3', + }, + metadata: { + jobId: 2, + }, + }, + { + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + type: 'record', + action: 'insert', + fields: { + id: 1003, + }, + channel: 'sources', + context: { + sources: { + job_id: '2VsZs4hyPpq7f1p8igrpmHsibHl', + version: 'feat.mirrorRetlEvent', + job_run_id: 'ck99nbd2kqiljdihhkh0', + task_run_id: 'ck99nbd2kqiljdihhkhg', + }, + externalId: [ + { + type: 'marketoStaticListId', + identifierType: 'id', + }, + ], + destinationFields: 'id', + mappedToDestination: 'true', + }, + recordId: '3', + }, + metadata: { + jobId: 3, + }, + }, + { + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + action: 'delete', + context: { + destinationFields: 'id', + externalId: [ + { + identifierType: 'id', + type: 'marketoStaticListId', + }, + ], + mappedToDestination: 'true', + sources: { + job_id: 'sf', + job_run_id: 'ck985bve58cvnti48120', + task_run_id: 'ck985bve58cvnti4812g', + version: '', + }, + }, + recordId: '2', + rudderId: '2', + fields: { + id: '2001', + }, + type: 'record', + }, + metadata: { + jobId: 4, + }, + }, + { + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + action: 'delete', + context: { + destinationFields: 'id', + externalId: [ + { + identifierType: 'id', + type: 'marketoStaticListId', + }, + ], + mappedToDestination: 'true', + sources: { + job_id: 'sf', + job_run_id: 'ck985bve58cvnti48120', + task_run_id: 'ck985bve58cvnti4812g', + version: '', + }, + }, + recordId: '2', + rudderId: '2', + fields: { + id: '2002', + }, + type: 'record', + }, + metadata: { + jobId: 5, + }, + }, + { + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + action: 'delete', + context: { + destinationFields: 'id', + externalId: [ + { + identifierType: 'id', + type: 'marketoStaticListId', + }, + ], + mappedToDestination: 'true', + sources: { + job_id: 'sf', + job_run_id: 'ck985bve58cvnti48120', + task_run_id: 'ck985bve58cvnti4812g', + version: '', + }, + }, + recordId: '2', + rudderId: '2', + fields: { + id: '2003', + }, + type: 'record', + }, + metadata: { + jobId: 6, + }, + }, + { + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo_al', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1234, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + id: 101, + }, + { + id: 102, + }, + { + id: 103, + }, + ], + remove: [ + { + id: 4, + }, + { + id: 5, + }, + { + id: 6, + }, + ], + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 7, + }, + }, + { + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo_al', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1234, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + id: 0, + }, + { + id: 1, + }, + { + id: 2, + }, + { + id: 3, + }, + { + id: 4, + }, + { + id: 5, + }, + { + id: 6, + }, + { + id: 7, + }, + { + id: 8, + }, + { + id: 9, + }, + { + id: 10, + }, + { + id: 11, + }, + { + id: 12, + }, + { + id: 13, + }, + { + id: 14, + }, + { + id: 15, + }, + { + id: 16, + }, + { + id: 17, + }, + { + id: 18, + }, + { + id: 19, + }, + { + id: 20, + }, + { + id: 21, + }, + { + id: 22, + }, + { + id: 23, + }, + { + id: 24, + }, + { + id: 25, + }, + { + id: 26, + }, + { + id: 27, + }, + { + id: 28, + }, + { + id: 29, + }, + { + id: 30, + }, + { + id: 31, + }, + { + id: 32, + }, + { + id: 33, + }, + { + id: 34, + }, + { + id: 35, + }, + { + id: 36, + }, + { + id: 37, + }, + { + id: 38, + }, + { + id: 39, + }, + { + id: 40, + }, + { + id: 41, + }, + { + id: 42, + }, + { + id: 43, + }, + { + id: 44, + }, + { + id: 45, + }, + { + id: 46, + }, + { + id: 47, + }, + { + id: 48, + }, + { + id: 49, + }, + { + id: 50, + }, + { + id: 51, + }, + { + id: 52, + }, + { + id: 53, + }, + { + id: 54, + }, + { + id: 55, + }, + { + id: 56, + }, + { + id: 57, + }, + { + id: 58, + }, + { + id: 59, + }, + { + id: 60, + }, + { + id: 61, + }, + { + id: 62, + }, + { + id: 63, + }, + { + id: 64, + }, + { + id: 65, + }, + { + id: 66, + }, + { + id: 67, + }, + { + id: 68, + }, + { + id: 69, + }, + { + id: 70, + }, + { + id: 71, + }, + { + id: 72, + }, + { + id: 73, + }, + { + id: 74, + }, + { + id: 75, + }, + { + id: 76, + }, + { + id: 77, + }, + { + id: 78, + }, + { + id: 79, + }, + { + id: 80, + }, + { + id: 81, + }, + { + id: 82, + }, + { + id: 83, + }, + { + id: 84, + }, + { + id: 85, + }, + { + id: 86, + }, + { + id: 87, + }, + { + id: 88, + }, + { + id: 89, + }, + { + id: 90, + }, + { + id: 91, + }, + { + id: 92, + }, + { + id: 93, + }, + { + id: 94, + }, + { + id: 95, + }, + { + id: 96, + }, + { + id: 97, + }, + { + id: 98, + }, + { + id: 99, + }, + { + id: 100, + }, + { + id: 101, + }, + { + id: 102, + }, + { + id: 103, + }, + { + id: 104, + }, + { + id: 105, + }, + { + id: 106, + }, + { + id: 107, + }, + { + id: 108, + }, + { + id: 109, + }, + { + id: 110, + }, + { + id: 111, + }, + { + id: 112, + }, + { + id: 113, + }, + { + id: 114, + }, + { + id: 115, + }, + { + id: 116, + }, + { + id: 117, + }, + { + id: 118, + }, + { + id: 119, + }, + { + id: 120, + }, + { + id: 121, + }, + { + id: 122, + }, + { + id: 123, + }, + { + id: 124, + }, + { + id: 125, + }, + { + id: 126, + }, + { + id: 127, + }, + { + id: 128, + }, + { + id: 129, + }, + { + id: 130, + }, + { + id: 131, + }, + { + id: 132, + }, + { + id: 133, + }, + { + id: 134, + }, + { + id: 135, + }, + { + id: 136, + }, + { + id: 137, + }, + { + id: 138, + }, + { + id: 139, + }, + { + id: 140, + }, + { + id: 141, + }, + { + id: 142, + }, + { + id: 143, + }, + { + id: 144, + }, + { + id: 145, + }, + { + id: 146, + }, + { + id: 147, + }, + { + id: 148, + }, + { + id: 149, + }, + { + id: 150, + }, + { + id: 151, + }, + { + id: 152, + }, + { + id: 153, + }, + { + id: 154, + }, + { + id: 155, + }, + { + id: 156, + }, + { + id: 157, + }, + { + id: 158, + }, + { + id: 159, + }, + { + id: 160, + }, + { + id: 161, + }, + { + id: 162, + }, + { + id: 163, + }, + { + id: 164, + }, + { + id: 165, + }, + { + id: 166, + }, + { + id: 167, + }, + { + id: 168, + }, + { + id: 169, + }, + { + id: 170, + }, + { + id: 171, + }, + { + id: 172, + }, + { + id: 173, + }, + { + id: 174, + }, + { + id: 175, + }, + { + id: 176, + }, + { + id: 177, + }, + { + id: 178, + }, + { + id: 179, + }, + { + id: 180, + }, + { + id: 181, + }, + { + id: 182, + }, + { + id: 183, + }, + { + id: 184, + }, + { + id: 185, + }, + { + id: 186, + }, + { + id: 187, + }, + { + id: 188, + }, + { + id: 189, + }, + { + id: 190, + }, + { + id: 191, + }, + { + id: 192, + }, + { + id: 193, + }, + { + id: 194, + }, + { + id: 195, + }, + { + id: 196, + }, + { + id: 197, + }, + { + id: 198, + }, + { + id: 199, + }, + { + id: 200, + }, + { + id: 201, + }, + { + id: 202, + }, + { + id: 203, + }, + { + id: 204, + }, + { + id: 205, + }, + { + id: 206, + }, + { + id: 207, + }, + { + id: 208, + }, + { + id: 209, + }, + { + id: 210, + }, + { + id: 211, + }, + { + id: 212, + }, + { + id: 213, + }, + { + id: 214, + }, + { + id: 215, + }, + { + id: 216, + }, + { + id: 217, + }, + { + id: 218, + }, + { + id: 219, + }, + { + id: 220, + }, + { + id: 221, + }, + { + id: 222, + }, + { + id: 223, + }, + { + id: 224, + }, + { + id: 225, + }, + { + id: 226, + }, + { + id: 227, + }, + { + id: 228, + }, + { + id: 229, + }, + { + id: 230, + }, + { + id: 231, + }, + { + id: 232, + }, + { + id: 233, + }, + { + id: 234, + }, + { + id: 235, + }, + { + id: 236, + }, + { + id: 237, + }, + { + id: 238, + }, + { + id: 239, + }, + { + id: 240, + }, + { + id: 241, + }, + { + id: 242, + }, + { + id: 243, + }, + { + id: 244, + }, + { + id: 245, + }, + { + id: 246, + }, + { + id: 247, + }, + { + id: 248, + }, + { + id: 249, + }, + { + id: 250, + }, + { + id: 251, + }, + { + id: 252, + }, + { + id: 253, + }, + { + id: 254, + }, + { + id: 255, + }, + { + id: 256, + }, + { + id: 257, + }, + { + id: 258, + }, + { + id: 259, + }, + { + id: 260, + }, + { + id: 261, + }, + { + id: 262, + }, + { + id: 263, + }, + { + id: 264, + }, + { + id: 265, + }, + { + id: 266, + }, + { + id: 267, + }, + { + id: 268, + }, + { + id: 269, + }, + { + id: 270, + }, + { + id: 271, + }, + { + id: 272, + }, + { + id: 273, + }, + { + id: 274, + }, + { + id: 275, + }, + { + id: 276, + }, + { + id: 277, + }, + { + id: 278, + }, + { + id: 279, + }, + { + id: 280, + }, + { + id: 281, + }, + { + id: 282, + }, + { + id: 283, + }, + { + id: 284, + }, + { + id: 285, + }, + { + id: 286, + }, + { + id: 287, + }, + { + id: 288, + }, + { + id: 289, + }, + { + id: 290, + }, + { + id: 291, + }, + { + id: 292, + }, + { + id: 293, + }, + { + id: 294, + }, + { + id: 295, + }, + { + id: 296, + }, + { + id: 297, + }, + { + id: 298, + }, + { + id: 299, + }, + { + id: 300, + }, + { + id: 301, + }, + { + id: 302, + }, + { + id: 303, + }, + { + id: 304, + }, + { + id: 305, + }, + { + id: 306, + }, + { + id: 307, + }, + { + id: 308, + }, + { + id: 309, + }, + { + id: 310, + }, + { + id: 311, + }, + { + id: 312, + }, + { + id: 313, + }, + { + id: 314, + }, + { + id: 315, + }, + { + id: 316, + }, + { + id: 317, + }, + { + id: 318, + }, + { + id: 319, + }, + { + id: 320, + }, + { + id: 321, + }, + { + id: 322, + }, + { + id: 323, + }, + { + id: 324, + }, + { + id: 325, + }, + { + id: 326, + }, + { + id: 327, + }, + { + id: 328, + }, + { + id: 329, + }, + { + id: 330, + }, + { + id: 331, + }, + { + id: 332, + }, + { + id: 333, + }, + { + id: 334, + }, + { + id: 335, + }, + { + id: 336, + }, + { + id: 337, + }, + { + id: 338, + }, + { + id: 339, + }, + { + id: 340, + }, + { + id: 341, + }, + { + id: 342, + }, + { + id: 343, + }, + { + id: 344, + }, + { + id: 345, + }, + { + id: 346, + }, + { + id: 347, + }, + { + id: 348, + }, + { + id: 349, + }, + { + id: 350, + }, + ], + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 8, + }, + }, + ], + destType: 'marketo_static_list', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1122/leads.json?id=2001&id=2002&id=2003', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 4, + destInfo: { + authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', + }, + }, + { + jobId: 5, + destInfo: { + authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', + }, + }, + { + jobId: 6, + destInfo: { + authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', + }, + }, + ], + batched: true, + statusCode: 200, + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1122/leads.json?id=1001&id=1002&id=1003', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 1, + destInfo: { + authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', + }, + }, + { + jobId: 2, + destInfo: { + authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', + }, + }, + { + jobId: 3, + destInfo: { + authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', + }, + }, + ], + batched: true, + statusCode: 200, + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=4&id=5&id=6', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=101&id=102&id=103', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 7, + destInfo: { + authKey: '1zia9wKshXt80YksLmUdJnr7IHI', + }, + }, + ], + batched: false, + statusCode: 200, + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo_al', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1234, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=0&id=1&id=2&id=3&id=4&id=5&id=6&id=7&id=8&id=9&id=10&id=11&id=12&id=13&id=14&id=15&id=16&id=17&id=18&id=19&id=20&id=21&id=22&id=23&id=24&id=25&id=26&id=27&id=28&id=29&id=30&id=31&id=32&id=33&id=34&id=35&id=36&id=37&id=38&id=39&id=40&id=41&id=42&id=43&id=44&id=45&id=46&id=47&id=48&id=49&id=50&id=51&id=52&id=53&id=54&id=55&id=56&id=57&id=58&id=59&id=60&id=61&id=62&id=63&id=64&id=65&id=66&id=67&id=68&id=69&id=70&id=71&id=72&id=73&id=74&id=75&id=76&id=77&id=78&id=79&id=80&id=81&id=82&id=83&id=84&id=85&id=86&id=87&id=88&id=89&id=90&id=91&id=92&id=93&id=94&id=95&id=96&id=97&id=98&id=99&id=100&id=101&id=102&id=103&id=104&id=105&id=106&id=107&id=108&id=109&id=110&id=111&id=112&id=113&id=114&id=115&id=116&id=117&id=118&id=119&id=120&id=121&id=122&id=123&id=124&id=125&id=126&id=127&id=128&id=129&id=130&id=131&id=132&id=133&id=134&id=135&id=136&id=137&id=138&id=139&id=140&id=141&id=142&id=143&id=144&id=145&id=146&id=147&id=148&id=149&id=150&id=151&id=152&id=153&id=154&id=155&id=156&id=157&id=158&id=159&id=160&id=161&id=162&id=163&id=164&id=165&id=166&id=167&id=168&id=169&id=170&id=171&id=172&id=173&id=174&id=175&id=176&id=177&id=178&id=179&id=180&id=181&id=182&id=183&id=184&id=185&id=186&id=187&id=188&id=189&id=190&id=191&id=192&id=193&id=194&id=195&id=196&id=197&id=198&id=199&id=200&id=201&id=202&id=203&id=204&id=205&id=206&id=207&id=208&id=209&id=210&id=211&id=212&id=213&id=214&id=215&id=216&id=217&id=218&id=219&id=220&id=221&id=222&id=223&id=224&id=225&id=226&id=227&id=228&id=229&id=230&id=231&id=232&id=233&id=234&id=235&id=236&id=237&id=238&id=239&id=240&id=241&id=242&id=243&id=244&id=245&id=246&id=247&id=248&id=249&id=250&id=251&id=252&id=253&id=254&id=255&id=256&id=257&id=258&id=259&id=260&id=261&id=262&id=263&id=264&id=265&id=266&id=267&id=268&id=269&id=270&id=271&id=272&id=273&id=274&id=275&id=276&id=277&id=278&id=279&id=280&id=281&id=282&id=283&id=284&id=285&id=286&id=287&id=288&id=289&id=290&id=291&id=292&id=293&id=294&id=295&id=296&id=297&id=298&id=299', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/1234/leads.json?id=300&id=301&id=302&id=303&id=304&id=305&id=306&id=307&id=308&id=309&id=310&id=311&id=312&id=313&id=314&id=315&id=316&id=317&id=318&id=319&id=320&id=321&id=322&id=323&id=324&id=325&id=326&id=327&id=328&id=329&id=330&id=331&id=332&id=333&id=334&id=335&id=336&id=337&id=338&id=339&id=340&id=341&id=342&id=343&id=344&id=345&id=346&id=347&id=348&id=349&id=350', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 8, + destInfo: { + authKey: '1zia9wKshXt80YksLmUdJnr7IHI', + }, + }, + ], + batched: false, + statusCode: 200, + destination: { + ID: '1zia9wKshXt80YksLmUdJnr7IHI', + Name: 'test_marketo_al', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1234, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + }, + }, + { + name: 'marketo_static_list', + description: 'Test 2: Test record evemts', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + destType: 'marketo_static_list', + input: [ + { + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + type: 'record', + action: 'insert', + fields: { + id: 1001, + }, + channel: 'sources', + context: { + sources: { + job_id: '2VsZs4hyPpq7f1p8igrpmHsibHl', + version: 'feat.mirrorRetlEvent', + job_run_id: 'ck99nbd2kqiljdihhkh0', + task_run_id: 'ck99nbd2kqiljdihhkhg', + }, + externalId: [ + { + type: 'marketoStaticListId', + id: 'id001', + }, + ], + destinationFields: 'id', + mappedToDestination: 'true', + }, + recordId: '3', + }, + metadata: { + jobId: 1, + }, + }, + { + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + type: 'record', + action: 'insert', + fields: { + id: 1002, + }, + channel: 'sources', + context: { + sources: { + job_id: '2VsZs4hyPpq7f1p8igrpmHsibHl', + version: 'feat.mirrorRetlEvent', + job_run_id: 'ck99nbd2kqiljdihhkh0', + task_run_id: 'ck99nbd2kqiljdihhkhg', + }, + externalId: [ + { + type: 'marketoStaticListId', + id: 'id002', + }, + ], + destinationFields: 'id', + mappedToDestination: 'true', + }, + recordId: '3', + }, + metadata: { + jobId: 2, + }, + }, + { + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + type: 'record', + action: 'insert', + fields: { + id: 1003, + }, + channel: 'sources', + context: { + sources: { + job_id: '2VsZs4hyPpq7f1p8igrpmHsibHl', + version: 'feat.mirrorRetlEvent', + job_run_id: 'ck99nbd2kqiljdihhkh0', + task_run_id: 'ck99nbd2kqiljdihhkhg', + }, + externalId: [ + { + type: 'marketoStaticListId', + id: 'id001', + }, + ], + destinationFields: 'id', + mappedToDestination: 'true', + }, + recordId: '3', + }, + metadata: { + jobId: 3, + }, + }, + { + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + action: 'delete', + context: { + destinationFields: 'id', + externalId: [ + { + id: 'id002', + type: 'marketoStaticListId', + }, + ], + mappedToDestination: 'true', + sources: { + job_id: 'sf', + job_run_id: 'ck985bve58cvnti48120', + task_run_id: 'ck985bve58cvnti4812g', + version: '', + }, + }, + recordId: '2', + rudderId: '2', + fields: { + id: '2001', + }, + type: 'record', + }, + metadata: { + jobId: 4, + }, + }, + { + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + action: 'delete', + context: { + destinationFields: 'id', + externalId: [ + { + id: 'id001', + type: 'marketoStaticListId', + }, + ], + mappedToDestination: 'true', + sources: { + job_id: 'sf', + job_run_id: 'ck985bve58cvnti48120', + task_run_id: 'ck985bve58cvnti4812g', + version: '', + }, + }, + recordId: '2', + rudderId: '2', + fields: { + id: '2002', + }, + type: 'record', + }, + metadata: { + jobId: 5, + }, + }, + { + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + message: { + action: 'delete', + context: { + destinationFields: 'id', + externalId: [ + { + id: 'id002', + type: 'marketoStaticListId', + }, + ], + mappedToDestination: 'true', + sources: { + job_id: 'sf', + job_run_id: 'ck985bve58cvnti48120', + task_run_id: 'ck985bve58cvnti4812g', + version: '', + }, + }, + recordId: '2', + rudderId: '2', + fields: { + id: '2003', + }, + type: 'record', + }, + metadata: { + jobId: 6, + }, + }, + ], + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/id001/leads.json?id=2002', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 5, + destInfo: { + authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', + }, + }, + ], + batched: true, + statusCode: 200, + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/id001/leads.json?id=1001&id=1003', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 1, + destInfo: { + authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', + }, + }, + { + jobId: 3, + destInfo: { + authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', + }, + }, + ], + batched: true, + statusCode: 200, + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'DELETE', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/id002/leads.json?id=2001&id=2003', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 4, + destInfo: { + authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', + }, + }, + { + jobId: 6, + destInfo: { + authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', + }, + }, + ], + batched: true, + statusCode: 200, + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://marketo_acct_id_success.mktorest.com/rest/v1/lists/id002/leads.json?id=1002', + headers: { + Authorization: 'Bearer access_token_success', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 2, + destInfo: { + authKey: '1zwa1wKshSt81YksKmUdJnr4IOK', + }, + }, + ], + batched: true, + statusCode: 200, + destination: { + ID: '1zwa1wKshSt81YksKmUdJnr4IOK', + Name: 'test_marketo_rc', + DestinationDefinition: { + ID: '1iVQvTRMsPPyJzwol0ifH93QTQ6', + Name: 'MARKETO', + DisplayName: 'Marketo', + transformAt: 'processor', + transformAtV1: 'processor', + }, + Config: { + clientId: 'marketo_client_id_success', + clientSecret: 'marketo_client_secret_success', + accountId: 'marketo_acct_id_success', + staticListId: 1122, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/mautic/network.ts b/test/integrations/destinations/mautic/network.ts new file mode 100644 index 00000000000..593a6306412 --- /dev/null +++ b/test/integrations/destinations/mautic/network.ts @@ -0,0 +1,3232 @@ +export const networkCallsData = [ + { + httpReq: { + headers: { + Authorization: 'Basic VGVzdFJ1ZGRlcmxhYnM0NTgyM0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://ruddertest2.mautic.net/api/contacts?where%5B0%5D%5Bcol%5D=email&where%5B0%5D%5Bexpr%5D=eq&where%5B0%5D%5Bval%5D=abc@xyz.com', + }, + httpRes: { data: { contacts: {}, total: 0 }, status: 200 }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic VGVzdFJ1ZGRlcmxhYnM0NTgyM0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://ruddertest2.mautic.net/api/contacts?where%5B0%5D%5Bcol%5D=email&where%5B0%5D%5Bexpr%5D=eq&where%5B0%5D%5Bval%5D=abc@xyz.com', + }, + httpRes: { data: { contacts: {}, total: 0 }, status: 200 }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic VGVzdFJ1ZGRlcmxhYnM0NTgyM0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://ruddertest2.mautic.net/api/contacts?where%5B0%5D%5Bcol%5D=email&where%5B0%5D%5Bexpr%5D=eq&where%5B0%5D%5Bval%5D=hijibi@gmail.com', + }, + httpRes: { + data: { + contacts: { + '247': { + color: null, + createdBy: 1, + createdByUser: 'shruti rudderlabs', + dateAdded: '2022-08-21T16:30:21+00:00', + dateIdentified: '2022-08-21T16:30:21+00:00', + dateModified: '2022-08-21T18:08:06+00:00', + doNotContact: [], + fields: { + all: { + address1: null, + address2: null, + attribution: null, + attribution_date: null, + b2b_or_b2c: null, + car_or_truck: null, + cart_status: 'Full', + city: 'kolkata', + company: null, + company_size: null, + country: 'India', + crm_id: null, + datetime: null, + email: 'hijibi@gmail.com', + facebook: null, + fax: null, + firstname: 'hijibiji', + foursquare: null, + haspurchased: '0', + id: '247', + instagram: null, + last_active: null, + lastname: 'Test', + linkedin: null, + mobile: null, + nps__recommend: 9, + phone: '123456789', + points: 123, + position: 'lead', + preferred_locale: null, + products: null, + prospect_or_customer: 'Customer', + role: 'Individual Contributor', + sandbox: '0', + skype: null, + state: null, + subscription_status: 'New', + timezone: null, + title: 'abcd', + twitter: null, + website: 'https://test.com', + zipcode: null, + }, + core: { + address1: { + alias: 'address1', + default_value: null, + group: 'core', + id: '11', + is_fixed: '1', + label: 'Address Line 1', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + address2: { + alias: 'address2', + default_value: null, + group: 'core', + id: '12', + is_fixed: '1', + label: 'Address Line 2', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + attribution: { + alias: 'attribution', + default_value: null, + group: 'core', + id: '21', + is_fixed: '1', + label: 'Attribution', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";i:4;s:9:"precision";i:2;}', + type: 'number', + value: null, + }, + attribution_date: { + alias: 'attribution_date', + default_value: null, + group: 'core', + id: '20', + is_fixed: '1', + label: 'Attribution Date', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + b2b_or_b2c: { + alias: 'b2b_or_b2c', + default_value: null, + group: 'core', + id: '47', + is_fixed: '0', + label: 'B2B or B2C', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:3:"B2B";s:5:"value";s:3:"B2B";}i:1;a:2:{s:5:"label";s:3:"B2C";s:5:"value";s:3:"B2C";}}}', + type: 'select', + value: null, + }, + car_or_truck: { + alias: 'car_or_truck', + default_value: null, + group: 'core', + id: '52', + is_fixed: '0', + label: 'Car or Truck', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"Car";s:5:"value";s:3:"Car";}i:1;a:2:{s:5:"label";s:5:"Truck";s:5:"value";s:5:"Truck";}i:2;a:2:{s:5:"label";s:4:"Both";s:5:"value";s:4:"Both";}}}', + type: 'select', + value: null, + }, + cart_status: { + alias: 'cart_status', + default_value: null, + group: 'core', + id: '55', + is_fixed: '0', + label: 'Cart Status', + normalizedValue: 'Full', + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:5:"Empty";s:5:"value";s:5:"Empty";}i:1;a:2:{s:5:"label";s:4:"Full";s:5:"value";s:4:"Full";}}}', + type: 'select', + value: 'Full', + }, + city: { + alias: 'city', + default_value: null, + group: 'core', + id: '13', + is_fixed: '1', + label: 'City', + normalizedValue: 'kolkata', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'kolkata', + }, + company: { + alias: 'company', + default_value: null, + group: 'core', + id: '4', + is_fixed: '1', + label: 'Primary company', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + company_size: { + alias: 'company_size', + default_value: null, + group: 'core', + id: '53', + is_fixed: '0', + label: 'Company size Custom', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:7:{i:0;a:2:{s:5:"label";s:15:"Less than 1,000";s:5:"value";s:15:"Less than 1,000";}i:1;a:2:{s:5:"label";s:14:"1,000 - 10,000";s:5:"value";s:14:"1,000 - 10,000";}i:2;a:2:{s:5:"label";s:16:"10,000 - 100,000";s:5:"value";s:16:"10,000 - 100,000";}i:3;a:2:{s:5:"label";s:17:"100,000 - 500,000";s:5:"value";s:17:"100,000 - 500,000";}i:4;a:2:{s:5:"label";s:12:"500,000 - 1M";s:5:"value";s:12:"500,000 - 1M";}i:5;a:2:{s:5:"label";s:7:"1M - 5M";s:5:"value";s:7:"1M - 5M";}i:6;a:2:{s:5:"label";s:3:"5M+";s:5:"value";s:3:"5M+";}}}', + type: 'select', + value: null, + }, + country: { + alias: 'country', + default_value: null, + group: 'core', + id: '16', + is_fixed: '1', + label: 'Country', + normalizedValue: 'India', + object: 'lead', + properties: 'a:0:{}', + type: 'country', + value: 'India', + }, + crm_id: { + alias: 'crm_id', + default_value: null, + group: 'core', + id: '45', + is_fixed: '0', + label: 'CRM ID', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + datetime: { + alias: 'datetime', + default_value: null, + group: 'core', + id: '50', + is_fixed: '0', + label: 'Webinar date/time signup', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + email: { + alias: 'email', + default_value: null, + group: 'core', + id: '6', + is_fixed: '1', + label: 'Email', + normalizedValue: 'hijibi@gmail.com', + object: 'lead', + properties: 'a:0:{}', + type: 'email', + value: 'hijibi@gmail.com', + }, + fax: { + alias: 'fax', + default_value: null, + group: 'core', + id: '10', + is_fixed: '0', + label: 'Fax', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + firstname: { + alias: 'firstname', + default_value: null, + group: 'core', + id: '2', + is_fixed: '1', + label: 'First Name', + normalizedValue: 'hijibiji', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'hijibiji', + }, + haspurchased: { + alias: 'haspurchased', + default_value: null, + group: 'core', + id: '46', + is_fixed: '0', + label: 'hasPurchased', + normalizedValue: 'No', + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: '0', + }, + last_active: { + alias: 'last_active', + default_value: null, + group: 'core', + id: '58', + is_fixed: '1', + label: 'Date Last Active', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + lastname: { + alias: 'lastname', + default_value: null, + group: 'core', + id: '3', + is_fixed: '1', + label: 'Last Name', + normalizedValue: 'Test', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'Test', + }, + mobile: { + alias: 'mobile', + default_value: null, + group: 'core', + id: '7', + is_fixed: '1', + label: 'Mobile', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + nps__recommend: { + alias: 'nps__recommend', + default_value: null, + group: 'core', + id: '56', + is_fixed: '0', + label: 'NPS - Recommend', + normalizedValue: 9, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";s:1:"3";s:9:"precision";s:0:"";}', + type: 'number', + value: 9, + }, + phone: { + alias: 'phone', + default_value: null, + group: 'core', + id: '8', + is_fixed: '1', + label: 'Phone', + normalizedValue: '123456789', + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: '123456789', + }, + points: { + alias: 'points', + default_value: '0', + group: 'core', + id: '9', + is_fixed: '1', + label: 'Points', + normalizedValue: 123, + object: 'lead', + properties: 'a:0:{}', + type: 'number', + value: 123, + }, + position: { + alias: 'position', + default_value: null, + group: 'core', + id: '5', + is_fixed: '1', + label: 'Position', + normalizedValue: 'lead', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'lead', + }, + preferred_locale: { + alias: 'preferred_locale', + default_value: null, + group: 'core', + id: '17', + is_fixed: '1', + label: 'Preferred Locale', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'locale', + value: null, + }, + products: { + alias: 'products', + default_value: null, + group: 'core', + id: '48', + is_fixed: '0', + label: 'Products', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:27:"Mautic Marketing Automation";s:5:"value";s:27:"Mautic Marketing Automation";}i:1;a:2:{s:5:"label";s:28:"Maven Marketing Intelligence";s:5:"value";s:28:"Maven Marketing Intelligence";}i:2;a:2:{s:5:"label";s:28:"Maestro Marketing Management";s:5:"value";s:28:"Maestro Marketing Management";}}}', + type: 'select', + value: null, + }, + prospect_or_customer: { + alias: 'prospect_or_customer', + default_value: null, + group: 'core', + id: '51', + is_fixed: '0', + label: 'Prospect or Customer', + normalizedValue: 'Customer', + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:8:"Prospect";s:5:"value";s:8:"Prospect";}i:1;a:2:{s:5:"label";s:8:"Customer";s:5:"value";s:8:"Customer";}}}', + type: 'select', + value: 'Customer', + }, + role: { + alias: 'role', + default_value: null, + group: 'core', + id: '57', + is_fixed: '0', + label: 'Role', + normalizedValue: 'Individual Contributor', + object: 'lead', + properties: + 'a:1:{s:4:"list";a:5:{i:0;a:2:{s:5:"label";s:22:"Individual Contributor";s:5:"value";s:22:"Individual Contributor";}i:1;a:2:{s:5:"label";s:7:"Manager";s:5:"value";s:7:"Manager";}i:2;a:2:{s:5:"label";s:8:"Director";s:5:"value";s:8:"Director";}i:3;a:2:{s:5:"label";s:9:"Executive";s:5:"value";s:9:"Executive";}i:4;a:2:{s:5:"label";s:10:"Consultant";s:5:"value";s:10:"Consultant";}}}', + type: 'select', + value: 'Individual Contributor', + }, + sandbox: { + alias: 'sandbox', + default_value: null, + group: 'core', + id: '54', + is_fixed: '0', + label: 'Sandbox', + normalizedValue: 'No', + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: '0', + }, + state: { + alias: 'state', + default_value: null, + group: 'core', + id: '14', + is_fixed: '1', + label: 'State', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'region', + value: null, + }, + subscription_status: { + alias: 'subscription_status', + default_value: null, + group: 'core', + id: '49', + is_fixed: '0', + label: 'Subscription Status', + normalizedValue: 'New', + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"New";s:5:"value";s:3:"New";}i:1;a:2:{s:5:"label";s:8:"Existing";s:5:"value";s:8:"Existing";}i:2;a:2:{s:5:"label";s:6:"Former";s:5:"value";s:6:"Former";}}}', + type: 'select', + value: 'New', + }, + timezone: { + alias: 'timezone', + default_value: null, + group: 'core', + id: '18', + is_fixed: '1', + label: 'Preferred Timezone', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'timezone', + value: null, + }, + title: { + alias: 'title', + default_value: null, + group: 'core', + id: '1', + is_fixed: '1', + label: 'Title', + normalizedValue: 'abcd', + object: 'lead', + properties: 'a:1:{s:4:"list";a:3:{i:0;s:2:"Mr";i:1;s:3:"Mrs";i:2;s:4:"Miss";}}', + type: 'lookup', + value: 'abcd', + }, + website: { + alias: 'website', + default_value: null, + group: 'core', + id: '22', + is_fixed: '0', + label: 'Website', + normalizedValue: 'https://test.com', + object: 'lead', + properties: 'a:0:{}', + type: 'url', + value: 'https://test.com', + }, + zipcode: { + alias: 'zipcode', + default_value: null, + group: 'core', + id: '15', + is_fixed: '1', + label: 'Zip Code', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + personal: [], + professional: [], + social: { + facebook: { + alias: 'facebook', + default_value: null, + group: 'social', + id: '23', + is_fixed: '0', + label: 'Facebook', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + foursquare: { + alias: 'foursquare', + default_value: null, + group: 'social', + id: '24', + is_fixed: '0', + label: 'Foursquare', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + instagram: { + alias: 'instagram', + default_value: null, + group: 'social', + id: '26', + is_fixed: '0', + label: 'Instagram', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + linkedin: { + alias: 'linkedin', + default_value: null, + group: 'social', + id: '27', + is_fixed: '0', + label: 'LinkedIn', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + skype: { + alias: 'skype', + default_value: null, + group: 'social', + id: '28', + is_fixed: '0', + label: 'Skype', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + twitter: { + alias: 'twitter', + default_value: null, + group: 'social', + id: '29', + is_fixed: '0', + label: 'Twitter', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + }, + frequencyRules: [], + id: 247, + ipAddresses: [ + { + id: 1, + ipAddress: '127.0.0.1', + ipDetails: { + city: '', + country: '', + extra: '', + isp: '', + latitude: '', + longitude: '', + organization: '', + region: '', + timezone: '', + zipcode: '', + }, + }, + ], + isPublished: true, + lastActive: null, + modifiedBy: 1, + modifiedByUser: 'shruti rudderlabs', + owner: null, + points: 123, + preferredProfileImage: null, + stage: null, + tags: [], + utmtags: [], + }, + }, + total: 1, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic VGVzdDQ1ODIzUnVkZGVybGFic0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://ruddertest2.mautic.net/api/contacts?where%5B0%5D%5Bcol%5D=email&where%5B0%5D%5Bexpr%5D=eq&where%5B0%5D%5Bval%5D=hijibi@gmail.com', + }, + httpRes: { + data: { + contacts: { + '247': { + color: null, + createdBy: 1, + createdByUser: 'shruti rudderlabs', + dateAdded: '2022-08-21T16:30:21+00:00', + dateIdentified: '2022-08-21T16:30:21+00:00', + dateModified: '2022-08-21T18:08:06+00:00', + doNotContact: [], + fields: { + all: { + address1: null, + address2: null, + attribution: null, + attribution_date: null, + b2b_or_b2c: null, + car_or_truck: null, + cart_status: 'Full', + city: 'kolkata', + company: null, + company_size: null, + country: 'India', + crm_id: null, + datetime: null, + email: 'hijibi@gmail.com', + facebook: null, + fax: null, + firstname: 'hijibiji', + foursquare: null, + haspurchased: '0', + id: '247', + instagram: null, + last_active: null, + lastname: 'Test', + linkedin: null, + mobile: null, + nps__recommend: 9, + phone: '123456789', + points: 123, + position: 'lead', + preferred_locale: null, + products: null, + prospect_or_customer: 'Customer', + role: 'Individual Contributor', + sandbox: '0', + skype: null, + state: null, + subscription_status: 'New', + timezone: null, + title: 'abcd', + twitter: null, + website: 'https://test.com', + zipcode: null, + }, + core: { + address1: { + alias: 'address1', + default_value: null, + group: 'core', + id: '11', + is_fixed: '1', + label: 'Address Line 1', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + address2: { + alias: 'address2', + default_value: null, + group: 'core', + id: '12', + is_fixed: '1', + label: 'Address Line 2', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + attribution: { + alias: 'attribution', + default_value: null, + group: 'core', + id: '21', + is_fixed: '1', + label: 'Attribution', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";i:4;s:9:"precision";i:2;}', + type: 'number', + value: null, + }, + attribution_date: { + alias: 'attribution_date', + default_value: null, + group: 'core', + id: '20', + is_fixed: '1', + label: 'Attribution Date', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + b2b_or_b2c: { + alias: 'b2b_or_b2c', + default_value: null, + group: 'core', + id: '47', + is_fixed: '0', + label: 'B2B or B2C', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:3:"B2B";s:5:"value";s:3:"B2B";}i:1;a:2:{s:5:"label";s:3:"B2C";s:5:"value";s:3:"B2C";}}}', + type: 'select', + value: null, + }, + car_or_truck: { + alias: 'car_or_truck', + default_value: null, + group: 'core', + id: '52', + is_fixed: '0', + label: 'Car or Truck', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"Car";s:5:"value";s:3:"Car";}i:1;a:2:{s:5:"label";s:5:"Truck";s:5:"value";s:5:"Truck";}i:2;a:2:{s:5:"label";s:4:"Both";s:5:"value";s:4:"Both";}}}', + type: 'select', + value: null, + }, + cart_status: { + alias: 'cart_status', + default_value: null, + group: 'core', + id: '55', + is_fixed: '0', + label: 'Cart Status', + normalizedValue: 'Full', + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:5:"Empty";s:5:"value";s:5:"Empty";}i:1;a:2:{s:5:"label";s:4:"Full";s:5:"value";s:4:"Full";}}}', + type: 'select', + value: 'Full', + }, + city: { + alias: 'city', + default_value: null, + group: 'core', + id: '13', + is_fixed: '1', + label: 'City', + normalizedValue: 'kolkata', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'kolkata', + }, + company: { + alias: 'company', + default_value: null, + group: 'core', + id: '4', + is_fixed: '1', + label: 'Primary company', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + company_size: { + alias: 'company_size', + default_value: null, + group: 'core', + id: '53', + is_fixed: '0', + label: 'Company size Custom', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:7:{i:0;a:2:{s:5:"label";s:15:"Less than 1,000";s:5:"value";s:15:"Less than 1,000";}i:1;a:2:{s:5:"label";s:14:"1,000 - 10,000";s:5:"value";s:14:"1,000 - 10,000";}i:2;a:2:{s:5:"label";s:16:"10,000 - 100,000";s:5:"value";s:16:"10,000 - 100,000";}i:3;a:2:{s:5:"label";s:17:"100,000 - 500,000";s:5:"value";s:17:"100,000 - 500,000";}i:4;a:2:{s:5:"label";s:12:"500,000 - 1M";s:5:"value";s:12:"500,000 - 1M";}i:5;a:2:{s:5:"label";s:7:"1M - 5M";s:5:"value";s:7:"1M - 5M";}i:6;a:2:{s:5:"label";s:3:"5M+";s:5:"value";s:3:"5M+";}}}', + type: 'select', + value: null, + }, + country: { + alias: 'country', + default_value: null, + group: 'core', + id: '16', + is_fixed: '1', + label: 'Country', + normalizedValue: 'India', + object: 'lead', + properties: 'a:0:{}', + type: 'country', + value: 'India', + }, + crm_id: { + alias: 'crm_id', + default_value: null, + group: 'core', + id: '45', + is_fixed: '0', + label: 'CRM ID', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + datetime: { + alias: 'datetime', + default_value: null, + group: 'core', + id: '50', + is_fixed: '0', + label: 'Webinar date/time signup', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + email: { + alias: 'email', + default_value: null, + group: 'core', + id: '6', + is_fixed: '1', + label: 'Email', + normalizedValue: 'hijibi@gmail.com', + object: 'lead', + properties: 'a:0:{}', + type: 'email', + value: 'hijibi@gmail.com', + }, + fax: { + alias: 'fax', + default_value: null, + group: 'core', + id: '10', + is_fixed: '0', + label: 'Fax', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + firstname: { + alias: 'firstname', + default_value: null, + group: 'core', + id: '2', + is_fixed: '1', + label: 'First Name', + normalizedValue: 'hijibiji', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'hijibiji', + }, + haspurchased: { + alias: 'haspurchased', + default_value: null, + group: 'core', + id: '46', + is_fixed: '0', + label: 'hasPurchased', + normalizedValue: 'No', + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: '0', + }, + last_active: { + alias: 'last_active', + default_value: null, + group: 'core', + id: '58', + is_fixed: '1', + label: 'Date Last Active', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + lastname: { + alias: 'lastname', + default_value: null, + group: 'core', + id: '3', + is_fixed: '1', + label: 'Last Name', + normalizedValue: 'Test', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'Test', + }, + mobile: { + alias: 'mobile', + default_value: null, + group: 'core', + id: '7', + is_fixed: '1', + label: 'Mobile', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + nps__recommend: { + alias: 'nps__recommend', + default_value: null, + group: 'core', + id: '56', + is_fixed: '0', + label: 'NPS - Recommend', + normalizedValue: 9, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";s:1:"3";s:9:"precision";s:0:"";}', + type: 'number', + value: 9, + }, + phone: { + alias: 'phone', + default_value: null, + group: 'core', + id: '8', + is_fixed: '1', + label: 'Phone', + normalizedValue: '123456789', + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: '123456789', + }, + points: { + alias: 'points', + default_value: '0', + group: 'core', + id: '9', + is_fixed: '1', + label: 'Points', + normalizedValue: 123, + object: 'lead', + properties: 'a:0:{}', + type: 'number', + value: 123, + }, + position: { + alias: 'position', + default_value: null, + group: 'core', + id: '5', + is_fixed: '1', + label: 'Position', + normalizedValue: 'lead', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'lead', + }, + preferred_locale: { + alias: 'preferred_locale', + default_value: null, + group: 'core', + id: '17', + is_fixed: '1', + label: 'Preferred Locale', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'locale', + value: null, + }, + products: { + alias: 'products', + default_value: null, + group: 'core', + id: '48', + is_fixed: '0', + label: 'Products', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:27:"Mautic Marketing Automation";s:5:"value";s:27:"Mautic Marketing Automation";}i:1;a:2:{s:5:"label";s:28:"Maven Marketing Intelligence";s:5:"value";s:28:"Maven Marketing Intelligence";}i:2;a:2:{s:5:"label";s:28:"Maestro Marketing Management";s:5:"value";s:28:"Maestro Marketing Management";}}}', + type: 'select', + value: null, + }, + prospect_or_customer: { + alias: 'prospect_or_customer', + default_value: null, + group: 'core', + id: '51', + is_fixed: '0', + label: 'Prospect or Customer', + normalizedValue: 'Customer', + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:8:"Prospect";s:5:"value";s:8:"Prospect";}i:1;a:2:{s:5:"label";s:8:"Customer";s:5:"value";s:8:"Customer";}}}', + type: 'select', + value: 'Customer', + }, + role: { + alias: 'role', + default_value: null, + group: 'core', + id: '57', + is_fixed: '0', + label: 'Role', + normalizedValue: 'Individual Contributor', + object: 'lead', + properties: + 'a:1:{s:4:"list";a:5:{i:0;a:2:{s:5:"label";s:22:"Individual Contributor";s:5:"value";s:22:"Individual Contributor";}i:1;a:2:{s:5:"label";s:7:"Manager";s:5:"value";s:7:"Manager";}i:2;a:2:{s:5:"label";s:8:"Director";s:5:"value";s:8:"Director";}i:3;a:2:{s:5:"label";s:9:"Executive";s:5:"value";s:9:"Executive";}i:4;a:2:{s:5:"label";s:10:"Consultant";s:5:"value";s:10:"Consultant";}}}', + type: 'select', + value: 'Individual Contributor', + }, + sandbox: { + alias: 'sandbox', + default_value: null, + group: 'core', + id: '54', + is_fixed: '0', + label: 'Sandbox', + normalizedValue: 'No', + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: '0', + }, + state: { + alias: 'state', + default_value: null, + group: 'core', + id: '14', + is_fixed: '1', + label: 'State', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'region', + value: null, + }, + subscription_status: { + alias: 'subscription_status', + default_value: null, + group: 'core', + id: '49', + is_fixed: '0', + label: 'Subscription Status', + normalizedValue: 'New', + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"New";s:5:"value";s:3:"New";}i:1;a:2:{s:5:"label";s:8:"Existing";s:5:"value";s:8:"Existing";}i:2;a:2:{s:5:"label";s:6:"Former";s:5:"value";s:6:"Former";}}}', + type: 'select', + value: 'New', + }, + timezone: { + alias: 'timezone', + default_value: null, + group: 'core', + id: '18', + is_fixed: '1', + label: 'Preferred Timezone', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'timezone', + value: null, + }, + title: { + alias: 'title', + default_value: null, + group: 'core', + id: '1', + is_fixed: '1', + label: 'Title', + normalizedValue: 'abcd', + object: 'lead', + properties: 'a:1:{s:4:"list";a:3:{i:0;s:2:"Mr";i:1;s:3:"Mrs";i:2;s:4:"Miss";}}', + type: 'lookup', + value: 'abcd', + }, + website: { + alias: 'website', + default_value: null, + group: 'core', + id: '22', + is_fixed: '0', + label: 'Website', + normalizedValue: 'https://test.com', + object: 'lead', + properties: 'a:0:{}', + type: 'url', + value: 'https://test.com', + }, + zipcode: { + alias: 'zipcode', + default_value: null, + group: 'core', + id: '15', + is_fixed: '1', + label: 'Zip Code', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + personal: [], + professional: [], + social: { + facebook: { + alias: 'facebook', + default_value: null, + group: 'social', + id: '23', + is_fixed: '0', + label: 'Facebook', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + foursquare: { + alias: 'foursquare', + default_value: null, + group: 'social', + id: '24', + is_fixed: '0', + label: 'Foursquare', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + instagram: { + alias: 'instagram', + default_value: null, + group: 'social', + id: '26', + is_fixed: '0', + label: 'Instagram', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + linkedin: { + alias: 'linkedin', + default_value: null, + group: 'social', + id: '27', + is_fixed: '0', + label: 'LinkedIn', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + skype: { + alias: 'skype', + default_value: null, + group: 'social', + id: '28', + is_fixed: '0', + label: 'Skype', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + twitter: { + alias: 'twitter', + default_value: null, + group: 'social', + id: '29', + is_fixed: '0', + label: 'Twitter', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + }, + frequencyRules: [], + id: 247, + ipAddresses: [ + { + id: 1, + ipAddress: '127.0.0.1', + ipDetails: { + city: '', + country: '', + extra: '', + isp: '', + latitude: '', + longitude: '', + organization: '', + region: '', + timezone: '', + zipcode: '', + }, + }, + ], + isPublished: true, + lastActive: null, + modifiedBy: 1, + modifiedByUser: 'shruti rudderlabs', + owner: null, + points: 123, + preferredProfileImage: null, + stage: null, + tags: [], + utmtags: [], + }, + }, + total: 1, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic VGVzdDQ1ODIzUnVkZGVybGFic0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://ruddertest2.mautic.net/api/contacts?where%5B0%5D%5Bcol%5D=lastname&where%5B0%5D%5Bexpr%5D=eq&where%5B0%5D%5Bval%5D=kumar', + }, + httpRes: { + data: { + contacts: { + '248': { + color: null, + createdBy: 1, + createdByUser: 'test rudderlabs', + dateAdded: '2022-08-18T12:19:27+00:00', + dateIdentified: '2022-08-18T12:19:27+00:00', + dateModified: '2022-08-23T11:46:30+00:00', + doNotContact: [], + fields: { + all: { + address1: null, + address2: null, + attribution: null, + attribution_date: null, + b2b_or_b2c: null, + car_or_truck: null, + cart_status: null, + city: null, + company: null, + company_size: null, + country: null, + crm_id: null, + datetime: null, + email: 'xyz@abc.com', + facebook: null, + fax: null, + firstname: 'rudderstack', + foursquare: null, + haspurchased: '1', + id: '248', + instagram: null, + last_active: '2022-08-23 11:46:27', + lastname: 'kumar', + linkedin: null, + mobile: null, + nps__recommend: null, + phone: null, + points: 0, + position: null, + preferred_locale: null, + products: null, + prospect_or_customer: null, + role: null, + sandbox: null, + skype: null, + state: 'Uttar Pradesh', + subscription_status: null, + timezone: null, + title: null, + twitter: null, + website: null, + zipcode: null, + }, + core: { + address1: { + alias: 'address1', + default_value: null, + group: 'core', + id: '11', + is_fixed: '1', + label: 'Address Line 1', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + address2: { + alias: 'address2', + default_value: null, + group: 'core', + id: '12', + is_fixed: '1', + label: 'Address Line 2', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + attribution: { + alias: 'attribution', + default_value: null, + group: 'core', + id: '21', + is_fixed: '1', + label: 'Attribution', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";i:4;s:9:"precision";i:2;}', + type: 'number', + value: null, + }, + attribution_date: { + alias: 'attribution_date', + default_value: null, + group: 'core', + id: '20', + is_fixed: '1', + label: 'Attribution Date', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + b2b_or_b2c: { + alias: 'b2b_or_b2c', + default_value: null, + group: 'core', + id: '47', + is_fixed: '0', + label: 'B2B or B2C', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:3:"B2B";s:5:"value";s:3:"B2B";}i:1;a:2:{s:5:"label";s:3:"B2C";s:5:"value";s:3:"B2C";}}}', + type: 'select', + value: null, + }, + car_or_truck: { + alias: 'car_or_truck', + default_value: null, + group: 'core', + id: '52', + is_fixed: '0', + label: 'Car or Truck', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"Car";s:5:"value";s:3:"Car";}i:1;a:2:{s:5:"label";s:5:"Truck";s:5:"value";s:5:"Truck";}i:2;a:2:{s:5:"label";s:4:"Both";s:5:"value";s:4:"Both";}}}', + type: 'select', + value: null, + }, + cart_status: { + alias: 'cart_status', + default_value: null, + group: 'core', + id: '55', + is_fixed: '0', + label: 'Cart Status', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:5:"Empty";s:5:"value";s:5:"Empty";}i:1;a:2:{s:5:"label";s:4:"Full";s:5:"value";s:4:"Full";}}}', + type: 'select', + value: null, + }, + city: { + alias: 'city', + default_value: null, + group: 'core', + id: '13', + is_fixed: '1', + label: 'City', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + company: { + alias: 'company', + default_value: null, + group: 'core', + id: '4', + is_fixed: '1', + label: 'Primary company', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + company_size: { + alias: 'company_size', + default_value: null, + group: 'core', + id: '53', + is_fixed: '0', + label: 'Company size Custom', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:7:{i:0;a:2:{s:5:"label";s:15:"Less than 1,000";s:5:"value";s:15:"Less than 1,000";}i:1;a:2:{s:5:"label";s:14:"1,000 - 10,000";s:5:"value";s:14:"1,000 - 10,000";}i:2;a:2:{s:5:"label";s:16:"10,000 - 100,000";s:5:"value";s:16:"10,000 - 100,000";}i:3;a:2:{s:5:"label";s:17:"100,000 - 500,000";s:5:"value";s:17:"100,000 - 500,000";}i:4;a:2:{s:5:"label";s:12:"500,000 - 1M";s:5:"value";s:12:"500,000 - 1M";}i:5;a:2:{s:5:"label";s:7:"1M - 5M";s:5:"value";s:7:"1M - 5M";}i:6;a:2:{s:5:"label";s:3:"5M+";s:5:"value";s:3:"5M+";}}}', + type: 'select', + value: null, + }, + country: { + alias: 'country', + default_value: null, + group: 'core', + id: '16', + is_fixed: '1', + label: 'Country', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'country', + value: null, + }, + crm_id: { + alias: 'crm_id', + default_value: null, + group: 'core', + id: '45', + is_fixed: '0', + label: 'CRM ID', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + datetime: { + alias: 'datetime', + default_value: null, + group: 'core', + id: '50', + is_fixed: '0', + label: 'Webinar date/time signup', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + email: { + alias: 'email', + default_value: null, + group: 'core', + id: '6', + is_fixed: '1', + label: 'Email', + normalizedValue: 'xyz@abc.com', + object: 'lead', + properties: 'a:0:{}', + type: 'email', + value: 'xyz@abc.com', + }, + fax: { + alias: 'fax', + default_value: null, + group: 'core', + id: '10', + is_fixed: '0', + label: 'Fax', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + firstname: { + alias: 'firstname', + default_value: null, + group: 'core', + id: '2', + is_fixed: '1', + label: 'First Name', + normalizedValue: 'rudderstack', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'rudderstack', + }, + haspurchased: { + alias: 'haspurchased', + default_value: null, + group: 'core', + id: '46', + is_fixed: '0', + label: 'hasPurchased', + normalizedValue: 'Yes', + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: '1', + }, + last_active: { + alias: 'last_active', + default_value: null, + group: 'core', + id: '58', + is_fixed: '1', + label: 'Date Last Active', + normalizedValue: '2022-08-23 11:46:27', + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: '2022-08-23 11:46:27', + }, + lastname: { + alias: 'lastname', + default_value: null, + group: 'core', + id: '3', + is_fixed: '1', + label: 'Last Name', + normalizedValue: 'kumar', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'kumar', + }, + mobile: { + alias: 'mobile', + default_value: null, + group: 'core', + id: '7', + is_fixed: '1', + label: 'Mobile', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + nps__recommend: { + alias: 'nps__recommend', + default_value: null, + group: 'core', + id: '56', + is_fixed: '0', + label: 'NPS - Recommend', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";s:1:"3";s:9:"precision";s:0:"";}', + type: 'number', + value: null, + }, + phone: { + alias: 'phone', + default_value: null, + group: 'core', + id: '8', + is_fixed: '1', + label: 'Phone', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + points: { + alias: 'points', + default_value: '0', + group: 'core', + id: '9', + is_fixed: '1', + label: 'Points', + normalizedValue: 0, + object: 'lead', + properties: 'a:0:{}', + type: 'number', + value: 0, + }, + position: { + alias: 'position', + default_value: null, + group: 'core', + id: '5', + is_fixed: '1', + label: 'Position', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + preferred_locale: { + alias: 'preferred_locale', + default_value: null, + group: 'core', + id: '17', + is_fixed: '1', + label: 'Preferred Locale', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'locale', + value: null, + }, + products: { + alias: 'products', + default_value: null, + group: 'core', + id: '48', + is_fixed: '0', + label: 'Products', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:27:"Mautic Marketing Automation";s:5:"value";s:27:"Mautic Marketing Automation";}i:1;a:2:{s:5:"label";s:28:"Maven Marketing Intelligence";s:5:"value";s:28:"Maven Marketing Intelligence";}i:2;a:2:{s:5:"label";s:28:"Maestro Marketing Management";s:5:"value";s:28:"Maestro Marketing Management";}}}', + type: 'select', + value: null, + }, + prospect_or_customer: { + alias: 'prospect_or_customer', + default_value: null, + group: 'core', + id: '51', + is_fixed: '0', + label: 'Prospect or Customer', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:8:"Prospect";s:5:"value";s:8:"Prospect";}i:1;a:2:{s:5:"label";s:8:"Customer";s:5:"value";s:8:"Customer";}}}', + type: 'select', + value: null, + }, + role: { + alias: 'role', + default_value: null, + group: 'core', + id: '57', + is_fixed: '0', + label: 'Role', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:5:{i:0;a:2:{s:5:"label";s:22:"Individual Contributor";s:5:"value";s:22:"Individual Contributor";}i:1;a:2:{s:5:"label";s:7:"Manager";s:5:"value";s:7:"Manager";}i:2;a:2:{s:5:"label";s:8:"Director";s:5:"value";s:8:"Director";}i:3;a:2:{s:5:"label";s:9:"Executive";s:5:"value";s:9:"Executive";}i:4;a:2:{s:5:"label";s:10:"Consultant";s:5:"value";s:10:"Consultant";}}}', + type: 'select', + value: null, + }, + sandbox: { + alias: 'sandbox', + default_value: null, + group: 'core', + id: '54', + is_fixed: '0', + label: 'Sandbox', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: null, + }, + state: { + alias: 'state', + default_value: null, + group: 'core', + id: '14', + is_fixed: '1', + label: 'State', + normalizedValue: 'Uttar Pradesh', + object: 'lead', + properties: 'a:0:{}', + type: 'region', + value: 'Uttar Pradesh', + }, + subscription_status: { + alias: 'subscription_status', + default_value: null, + group: 'core', + id: '49', + is_fixed: '0', + label: 'Subscription Status', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"New";s:5:"value";s:3:"New";}i:1;a:2:{s:5:"label";s:8:"Existing";s:5:"value";s:8:"Existing";}i:2;a:2:{s:5:"label";s:6:"Former";s:5:"value";s:6:"Former";}}}', + type: 'select', + value: null, + }, + timezone: { + alias: 'timezone', + default_value: null, + group: 'core', + id: '18', + is_fixed: '1', + label: 'Preferred Timezone', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'timezone', + value: null, + }, + title: { + alias: 'title', + default_value: null, + group: 'core', + id: '1', + is_fixed: '1', + label: 'Title', + normalizedValue: null, + object: 'lead', + properties: 'a:1:{s:4:"list";a:3:{i:0;s:2:"Mr";i:1;s:3:"Mrs";i:2;s:4:"Miss";}}', + type: 'lookup', + value: null, + }, + website: { + alias: 'website', + default_value: null, + group: 'core', + id: '22', + is_fixed: '0', + label: 'Website', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'url', + value: null, + }, + zipcode: { + alias: 'zipcode', + default_value: null, + group: 'core', + id: '15', + is_fixed: '1', + label: 'Zip Code', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + personal: [], + professional: [], + social: { + facebook: { + alias: 'facebook', + default_value: null, + group: 'social', + id: '23', + is_fixed: '0', + label: 'Facebook', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + foursquare: { + alias: 'foursquare', + default_value: null, + group: 'social', + id: '24', + is_fixed: '0', + label: 'Foursquare', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + instagram: { + alias: 'instagram', + default_value: null, + group: 'social', + id: '26', + is_fixed: '0', + label: 'Instagram', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + linkedin: { + alias: 'linkedin', + default_value: null, + group: 'social', + id: '27', + is_fixed: '0', + label: 'LinkedIn', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + skype: { + alias: 'skype', + default_value: null, + group: 'social', + id: '28', + is_fixed: '0', + label: 'Skype', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + twitter: { + alias: 'twitter', + default_value: null, + group: 'social', + id: '29', + is_fixed: '0', + label: 'Twitter', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + }, + frequencyRules: [], + id: 248, + ipAddresses: [ + { + id: 1, + ipAddress: '130.0.1.21', + ipDetails: { + city: null, + country: 'United Kingdom', + extra: '', + isp: '', + latitude: 51.4964, + longitude: -0.1224, + organization: '', + region: '', + timezone: 'Europe/London', + zipcode: null, + }, + }, + ], + isPublished: true, + lastActive: '2022-08-23T11:46:27+00:00', + modifiedBy: 1, + modifiedByUser: 'test rudderlabs', + owner: null, + points: 0, + preferredProfileImage: null, + stage: null, + tags: [], + utmtags: [], + }, + '249': { + color: null, + createdBy: 1, + createdByUser: 'test rudderlabs', + dateAdded: '2022-08-18T12:20:05+00:00', + dateIdentified: '2022-08-18T12:20:05+00:00', + dateModified: '2022-08-24T09:19:10+00:00', + doNotContact: [], + fields: { + all: { + address1: null, + address2: null, + attribution: null, + attribution_date: null, + b2b_or_b2c: null, + car_or_truck: null, + cart_status: null, + city: null, + company: 'test', + company_size: null, + country: null, + crm_id: null, + datetime: null, + email: 'x1yz@abc.com', + facebook: null, + fax: null, + firstname: 'Kamlesh', + foursquare: null, + haspurchased: null, + id: '249', + instagram: null, + last_active: '2022-08-18 12:20:05', + lastname: 'kumar', + linkedin: null, + mobile: null, + nps__recommend: null, + phone: null, + points: 0, + position: null, + preferred_locale: null, + products: null, + prospect_or_customer: null, + role: null, + sandbox: null, + skype: null, + state: 'Uttar Pradesh', + subscription_status: null, + timezone: null, + title: null, + twitter: null, + website: null, + zipcode: null, + }, + core: { + address1: { + alias: 'address1', + default_value: null, + group: 'core', + id: '11', + is_fixed: '1', + label: 'Address Line 1', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + address2: { + alias: 'address2', + default_value: null, + group: 'core', + id: '12', + is_fixed: '1', + label: 'Address Line 2', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + attribution: { + alias: 'attribution', + default_value: null, + group: 'core', + id: '21', + is_fixed: '1', + label: 'Attribution', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";i:4;s:9:"precision";i:2;}', + type: 'number', + value: null, + }, + attribution_date: { + alias: 'attribution_date', + default_value: null, + group: 'core', + id: '20', + is_fixed: '1', + label: 'Attribution Date', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + b2b_or_b2c: { + alias: 'b2b_or_b2c', + default_value: null, + group: 'core', + id: '47', + is_fixed: '0', + label: 'B2B or B2C', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:3:"B2B";s:5:"value";s:3:"B2B";}i:1;a:2:{s:5:"label";s:3:"B2C";s:5:"value";s:3:"B2C";}}}', + type: 'select', + value: null, + }, + car_or_truck: { + alias: 'car_or_truck', + default_value: null, + group: 'core', + id: '52', + is_fixed: '0', + label: 'Car or Truck', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"Car";s:5:"value";s:3:"Car";}i:1;a:2:{s:5:"label";s:5:"Truck";s:5:"value";s:5:"Truck";}i:2;a:2:{s:5:"label";s:4:"Both";s:5:"value";s:4:"Both";}}}', + type: 'select', + value: null, + }, + cart_status: { + alias: 'cart_status', + default_value: null, + group: 'core', + id: '55', + is_fixed: '0', + label: 'Cart Status', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:5:"Empty";s:5:"value";s:5:"Empty";}i:1;a:2:{s:5:"label";s:4:"Full";s:5:"value";s:4:"Full";}}}', + type: 'select', + value: null, + }, + city: { + alias: 'city', + default_value: null, + group: 'core', + id: '13', + is_fixed: '1', + label: 'City', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + company: { + alias: 'company', + default_value: null, + group: 'core', + id: '4', + is_fixed: '1', + label: 'Primary company', + normalizedValue: 'test', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'test', + }, + company_size: { + alias: 'company_size', + default_value: null, + group: 'core', + id: '53', + is_fixed: '0', + label: 'Company size Custom', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:7:{i:0;a:2:{s:5:"label";s:15:"Less than 1,000";s:5:"value";s:15:"Less than 1,000";}i:1;a:2:{s:5:"label";s:14:"1,000 - 10,000";s:5:"value";s:14:"1,000 - 10,000";}i:2;a:2:{s:5:"label";s:16:"10,000 - 100,000";s:5:"value";s:16:"10,000 - 100,000";}i:3;a:2:{s:5:"label";s:17:"100,000 - 500,000";s:5:"value";s:17:"100,000 - 500,000";}i:4;a:2:{s:5:"label";s:12:"500,000 - 1M";s:5:"value";s:12:"500,000 - 1M";}i:5;a:2:{s:5:"label";s:7:"1M - 5M";s:5:"value";s:7:"1M - 5M";}i:6;a:2:{s:5:"label";s:3:"5M+";s:5:"value";s:3:"5M+";}}}', + type: 'select', + value: null, + }, + country: { + alias: 'country', + default_value: null, + group: 'core', + id: '16', + is_fixed: '1', + label: 'Country', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'country', + value: null, + }, + crm_id: { + alias: 'crm_id', + default_value: null, + group: 'core', + id: '45', + is_fixed: '0', + label: 'CRM ID', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + datetime: { + alias: 'datetime', + default_value: null, + group: 'core', + id: '50', + is_fixed: '0', + label: 'Webinar date/time signup', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + email: { + alias: 'email', + default_value: null, + group: 'core', + id: '6', + is_fixed: '1', + label: 'Email', + normalizedValue: 'x1yz@abc.com', + object: 'lead', + properties: 'a:0:{}', + type: 'email', + value: 'x1yz@abc.com', + }, + fax: { + alias: 'fax', + default_value: null, + group: 'core', + id: '10', + is_fixed: '0', + label: 'Fax', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + firstname: { + alias: 'firstname', + default_value: null, + group: 'core', + id: '2', + is_fixed: '1', + label: 'First Name', + normalizedValue: 'Kamlesh', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'Kamlesh', + }, + haspurchased: { + alias: 'haspurchased', + default_value: null, + group: 'core', + id: '46', + is_fixed: '0', + label: 'hasPurchased', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: null, + }, + last_active: { + alias: 'last_active', + default_value: null, + group: 'core', + id: '58', + is_fixed: '1', + label: 'Date Last Active', + normalizedValue: '2022-08-18 12:20:05', + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: '2022-08-18 12:20:05', + }, + lastname: { + alias: 'lastname', + default_value: null, + group: 'core', + id: '3', + is_fixed: '1', + label: 'Last Name', + normalizedValue: 'kumar', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'kumar', + }, + mobile: { + alias: 'mobile', + default_value: null, + group: 'core', + id: '7', + is_fixed: '1', + label: 'Mobile', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + nps__recommend: { + alias: 'nps__recommend', + default_value: null, + group: 'core', + id: '56', + is_fixed: '0', + label: 'NPS - Recommend', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";s:1:"3";s:9:"precision";s:0:"";}', + type: 'number', + value: null, + }, + phone: { + alias: 'phone', + default_value: null, + group: 'core', + id: '8', + is_fixed: '1', + label: 'Phone', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + points: { + alias: 'points', + default_value: '0', + group: 'core', + id: '9', + is_fixed: '1', + label: 'Points', + normalizedValue: 0, + object: 'lead', + properties: 'a:0:{}', + type: 'number', + value: 0, + }, + position: { + alias: 'position', + default_value: null, + group: 'core', + id: '5', + is_fixed: '1', + label: 'Position', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + preferred_locale: { + alias: 'preferred_locale', + default_value: null, + group: 'core', + id: '17', + is_fixed: '1', + label: 'Preferred Locale', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'locale', + value: null, + }, + products: { + alias: 'products', + default_value: null, + group: 'core', + id: '48', + is_fixed: '0', + label: 'Products', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:27:"Mautic Marketing Automation";s:5:"value";s:27:"Mautic Marketing Automation";}i:1;a:2:{s:5:"label";s:28:"Maven Marketing Intelligence";s:5:"value";s:28:"Maven Marketing Intelligence";}i:2;a:2:{s:5:"label";s:28:"Maestro Marketing Management";s:5:"value";s:28:"Maestro Marketing Management";}}}', + type: 'select', + value: null, + }, + prospect_or_customer: { + alias: 'prospect_or_customer', + default_value: null, + group: 'core', + id: '51', + is_fixed: '0', + label: 'Prospect or Customer', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:8:"Prospect";s:5:"value";s:8:"Prospect";}i:1;a:2:{s:5:"label";s:8:"Customer";s:5:"value";s:8:"Customer";}}}', + type: 'select', + value: null, + }, + role: { + alias: 'role', + default_value: null, + group: 'core', + id: '57', + is_fixed: '0', + label: 'Role', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:5:{i:0;a:2:{s:5:"label";s:22:"Individual Contributor";s:5:"value";s:22:"Individual Contributor";}i:1;a:2:{s:5:"label";s:7:"Manager";s:5:"value";s:7:"Manager";}i:2;a:2:{s:5:"label";s:8:"Director";s:5:"value";s:8:"Director";}i:3;a:2:{s:5:"label";s:9:"Executive";s:5:"value";s:9:"Executive";}i:4;a:2:{s:5:"label";s:10:"Consultant";s:5:"value";s:10:"Consultant";}}}', + type: 'select', + value: null, + }, + sandbox: { + alias: 'sandbox', + default_value: null, + group: 'core', + id: '54', + is_fixed: '0', + label: 'Sandbox', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: null, + }, + state: { + alias: 'state', + default_value: null, + group: 'core', + id: '14', + is_fixed: '1', + label: 'State', + normalizedValue: 'Uttar Pradesh', + object: 'lead', + properties: 'a:0:{}', + type: 'region', + value: 'Uttar Pradesh', + }, + subscription_status: { + alias: 'subscription_status', + default_value: null, + group: 'core', + id: '49', + is_fixed: '0', + label: 'Subscription Status', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"New";s:5:"value";s:3:"New";}i:1;a:2:{s:5:"label";s:8:"Existing";s:5:"value";s:8:"Existing";}i:2;a:2:{s:5:"label";s:6:"Former";s:5:"value";s:6:"Former";}}}', + type: 'select', + value: null, + }, + timezone: { + alias: 'timezone', + default_value: null, + group: 'core', + id: '18', + is_fixed: '1', + label: 'Preferred Timezone', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'timezone', + value: null, + }, + title: { + alias: 'title', + default_value: null, + group: 'core', + id: '1', + is_fixed: '1', + label: 'Title', + normalizedValue: null, + object: 'lead', + properties: 'a:1:{s:4:"list";a:3:{i:0;s:2:"Mr";i:1;s:3:"Mrs";i:2;s:4:"Miss";}}', + type: 'lookup', + value: null, + }, + website: { + alias: 'website', + default_value: null, + group: 'core', + id: '22', + is_fixed: '0', + label: 'Website', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'url', + value: null, + }, + zipcode: { + alias: 'zipcode', + default_value: null, + group: 'core', + id: '15', + is_fixed: '1', + label: 'Zip Code', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + personal: [], + professional: [], + social: { + facebook: { + alias: 'facebook', + default_value: null, + group: 'social', + id: '23', + is_fixed: '0', + label: 'Facebook', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + foursquare: { + alias: 'foursquare', + default_value: null, + group: 'social', + id: '24', + is_fixed: '0', + label: 'Foursquare', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + instagram: { + alias: 'instagram', + default_value: null, + group: 'social', + id: '26', + is_fixed: '0', + label: 'Instagram', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + linkedin: { + alias: 'linkedin', + default_value: null, + group: 'social', + id: '27', + is_fixed: '0', + label: 'LinkedIn', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + skype: { + alias: 'skype', + default_value: null, + group: 'social', + id: '28', + is_fixed: '0', + label: 'Skype', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + twitter: { + alias: 'twitter', + default_value: null, + group: 'social', + id: '29', + is_fixed: '0', + label: 'Twitter', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + }, + frequencyRules: [], + id: 249, + ipAddresses: [ + { + id: 1, + ipAddress: '130.0.1.21', + ipDetails: { + city: null, + country: 'United Kingdom', + extra: '', + isp: '', + latitude: 51.4964, + longitude: -0.1224, + organization: '', + region: '', + timezone: 'Europe/London', + zipcode: null, + }, + }, + ], + isPublished: true, + lastActive: '2022-08-18T12:20:05+00:00', + modifiedBy: 1, + modifiedByUser: 'test rudderlabs', + owner: null, + points: 0, + preferredProfileImage: null, + stage: null, + tags: [], + utmtags: [], + }, + '254': { + color: null, + createdBy: 1, + createdByUser: 'test rudderlabs', + dateAdded: '2022-08-18T13:20:27+00:00', + dateIdentified: '2022-08-18T13:20:27+00:00', + dateModified: '2022-08-18T13:20:27+00:00', + doNotContact: [], + fields: { + all: { + address1: null, + address2: null, + attribution: null, + attribution_date: null, + b2b_or_b2c: null, + car_or_truck: null, + cart_status: null, + city: null, + company: null, + company_size: null, + country: null, + crm_id: null, + datetime: null, + email: null, + facebook: null, + fax: null, + firstname: null, + foursquare: null, + haspurchased: '1', + id: '254', + instagram: null, + last_active: '2020-02-02 00:23:09', + lastname: 'Kumar', + linkedin: null, + mobile: null, + nps__recommend: null, + phone: null, + points: 0, + position: null, + preferred_locale: null, + products: null, + prospect_or_customer: null, + role: null, + sandbox: null, + skype: null, + state: null, + subscription_status: null, + timezone: null, + title: null, + twitter: null, + website: null, + zipcode: null, + }, + core: { + address1: { + alias: 'address1', + default_value: null, + group: 'core', + id: '11', + is_fixed: '1', + label: 'Address Line 1', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + address2: { + alias: 'address2', + default_value: null, + group: 'core', + id: '12', + is_fixed: '1', + label: 'Address Line 2', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + attribution: { + alias: 'attribution', + default_value: null, + group: 'core', + id: '21', + is_fixed: '1', + label: 'Attribution', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";i:4;s:9:"precision";i:2;}', + type: 'number', + value: null, + }, + attribution_date: { + alias: 'attribution_date', + default_value: null, + group: 'core', + id: '20', + is_fixed: '1', + label: 'Attribution Date', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + b2b_or_b2c: { + alias: 'b2b_or_b2c', + default_value: null, + group: 'core', + id: '47', + is_fixed: '0', + label: 'B2B or B2C', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:3:"B2B";s:5:"value";s:3:"B2B";}i:1;a:2:{s:5:"label";s:3:"B2C";s:5:"value";s:3:"B2C";}}}', + type: 'select', + value: null, + }, + car_or_truck: { + alias: 'car_or_truck', + default_value: null, + group: 'core', + id: '52', + is_fixed: '0', + label: 'Car or Truck', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"Car";s:5:"value";s:3:"Car";}i:1;a:2:{s:5:"label";s:5:"Truck";s:5:"value";s:5:"Truck";}i:2;a:2:{s:5:"label";s:4:"Both";s:5:"value";s:4:"Both";}}}', + type: 'select', + value: null, + }, + cart_status: { + alias: 'cart_status', + default_value: null, + group: 'core', + id: '55', + is_fixed: '0', + label: 'Cart Status', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:5:"Empty";s:5:"value";s:5:"Empty";}i:1;a:2:{s:5:"label";s:4:"Full";s:5:"value";s:4:"Full";}}}', + type: 'select', + value: null, + }, + city: { + alias: 'city', + default_value: null, + group: 'core', + id: '13', + is_fixed: '1', + label: 'City', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + company: { + alias: 'company', + default_value: null, + group: 'core', + id: '4', + is_fixed: '1', + label: 'Primary company', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + company_size: { + alias: 'company_size', + default_value: null, + group: 'core', + id: '53', + is_fixed: '0', + label: 'Company size Custom', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:7:{i:0;a:2:{s:5:"label";s:15:"Less than 1,000";s:5:"value";s:15:"Less than 1,000";}i:1;a:2:{s:5:"label";s:14:"1,000 - 10,000";s:5:"value";s:14:"1,000 - 10,000";}i:2;a:2:{s:5:"label";s:16:"10,000 - 100,000";s:5:"value";s:16:"10,000 - 100,000";}i:3;a:2:{s:5:"label";s:17:"100,000 - 500,000";s:5:"value";s:17:"100,000 - 500,000";}i:4;a:2:{s:5:"label";s:12:"500,000 - 1M";s:5:"value";s:12:"500,000 - 1M";}i:5;a:2:{s:5:"label";s:7:"1M - 5M";s:5:"value";s:7:"1M - 5M";}i:6;a:2:{s:5:"label";s:3:"5M+";s:5:"value";s:3:"5M+";}}}', + type: 'select', + value: null, + }, + country: { + alias: 'country', + default_value: null, + group: 'core', + id: '16', + is_fixed: '1', + label: 'Country', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'country', + value: null, + }, + crm_id: { + alias: 'crm_id', + default_value: null, + group: 'core', + id: '45', + is_fixed: '0', + label: 'CRM ID', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + datetime: { + alias: 'datetime', + default_value: null, + group: 'core', + id: '50', + is_fixed: '0', + label: 'Webinar date/time signup', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + email: { + alias: 'email', + default_value: null, + group: 'core', + id: '6', + is_fixed: '1', + label: 'Email', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'email', + value: null, + }, + fax: { + alias: 'fax', + default_value: null, + group: 'core', + id: '10', + is_fixed: '0', + label: 'Fax', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + firstname: { + alias: 'firstname', + default_value: null, + group: 'core', + id: '2', + is_fixed: '1', + label: 'First Name', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + haspurchased: { + alias: 'haspurchased', + default_value: null, + group: 'core', + id: '46', + is_fixed: '0', + label: 'hasPurchased', + normalizedValue: 'Yes', + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: '1', + }, + last_active: { + alias: 'last_active', + default_value: null, + group: 'core', + id: '58', + is_fixed: '1', + label: 'Date Last Active', + normalizedValue: '2020-02-02 00:23:09', + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: '2020-02-02 00:23:09', + }, + lastname: { + alias: 'lastname', + default_value: null, + group: 'core', + id: '3', + is_fixed: '1', + label: 'Last Name', + normalizedValue: 'Kumar', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'Kumar', + }, + mobile: { + alias: 'mobile', + default_value: null, + group: 'core', + id: '7', + is_fixed: '1', + label: 'Mobile', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + nps__recommend: { + alias: 'nps__recommend', + default_value: null, + group: 'core', + id: '56', + is_fixed: '0', + label: 'NPS - Recommend', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";s:1:"3";s:9:"precision";s:0:"";}', + type: 'number', + value: null, + }, + phone: { + alias: 'phone', + default_value: null, + group: 'core', + id: '8', + is_fixed: '1', + label: 'Phone', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + points: { + alias: 'points', + default_value: '0', + group: 'core', + id: '9', + is_fixed: '1', + label: 'Points', + normalizedValue: 0, + object: 'lead', + properties: 'a:0:{}', + type: 'number', + value: 0, + }, + position: { + alias: 'position', + default_value: null, + group: 'core', + id: '5', + is_fixed: '1', + label: 'Position', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + preferred_locale: { + alias: 'preferred_locale', + default_value: null, + group: 'core', + id: '17', + is_fixed: '1', + label: 'Preferred Locale', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'locale', + value: null, + }, + products: { + alias: 'products', + default_value: null, + group: 'core', + id: '48', + is_fixed: '0', + label: 'Products', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:27:"Mautic Marketing Automation";s:5:"value";s:27:"Mautic Marketing Automation";}i:1;a:2:{s:5:"label";s:28:"Maven Marketing Intelligence";s:5:"value";s:28:"Maven Marketing Intelligence";}i:2;a:2:{s:5:"label";s:28:"Maestro Marketing Management";s:5:"value";s:28:"Maestro Marketing Management";}}}', + type: 'select', + value: null, + }, + prospect_or_customer: { + alias: 'prospect_or_customer', + default_value: null, + group: 'core', + id: '51', + is_fixed: '0', + label: 'Prospect or Customer', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:8:"Prospect";s:5:"value";s:8:"Prospect";}i:1;a:2:{s:5:"label";s:8:"Customer";s:5:"value";s:8:"Customer";}}}', + type: 'select', + value: null, + }, + role: { + alias: 'role', + default_value: null, + group: 'core', + id: '57', + is_fixed: '0', + label: 'Role', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:5:{i:0;a:2:{s:5:"label";s:22:"Individual Contributor";s:5:"value";s:22:"Individual Contributor";}i:1;a:2:{s:5:"label";s:7:"Manager";s:5:"value";s:7:"Manager";}i:2;a:2:{s:5:"label";s:8:"Director";s:5:"value";s:8:"Director";}i:3;a:2:{s:5:"label";s:9:"Executive";s:5:"value";s:9:"Executive";}i:4;a:2:{s:5:"label";s:10:"Consultant";s:5:"value";s:10:"Consultant";}}}', + type: 'select', + value: null, + }, + sandbox: { + alias: 'sandbox', + default_value: null, + group: 'core', + id: '54', + is_fixed: '0', + label: 'Sandbox', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: null, + }, + state: { + alias: 'state', + default_value: null, + group: 'core', + id: '14', + is_fixed: '1', + label: 'State', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'region', + value: null, + }, + subscription_status: { + alias: 'subscription_status', + default_value: null, + group: 'core', + id: '49', + is_fixed: '0', + label: 'Subscription Status', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"New";s:5:"value";s:3:"New";}i:1;a:2:{s:5:"label";s:8:"Existing";s:5:"value";s:8:"Existing";}i:2;a:2:{s:5:"label";s:6:"Former";s:5:"value";s:6:"Former";}}}', + type: 'select', + value: null, + }, + timezone: { + alias: 'timezone', + default_value: null, + group: 'core', + id: '18', + is_fixed: '1', + label: 'Preferred Timezone', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'timezone', + value: null, + }, + title: { + alias: 'title', + default_value: null, + group: 'core', + id: '1', + is_fixed: '1', + label: 'Title', + normalizedValue: null, + object: 'lead', + properties: 'a:1:{s:4:"list";a:3:{i:0;s:2:"Mr";i:1;s:3:"Mrs";i:2;s:4:"Miss";}}', + type: 'lookup', + value: null, + }, + website: { + alias: 'website', + default_value: null, + group: 'core', + id: '22', + is_fixed: '0', + label: 'Website', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'url', + value: null, + }, + zipcode: { + alias: 'zipcode', + default_value: null, + group: 'core', + id: '15', + is_fixed: '1', + label: 'Zip Code', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + personal: [], + professional: [], + social: { + facebook: { + alias: 'facebook', + default_value: null, + group: 'social', + id: '23', + is_fixed: '0', + label: 'Facebook', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + foursquare: { + alias: 'foursquare', + default_value: null, + group: 'social', + id: '24', + is_fixed: '0', + label: 'Foursquare', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + instagram: { + alias: 'instagram', + default_value: null, + group: 'social', + id: '26', + is_fixed: '0', + label: 'Instagram', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + linkedin: { + alias: 'linkedin', + default_value: null, + group: 'social', + id: '27', + is_fixed: '0', + label: 'LinkedIn', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + skype: { + alias: 'skype', + default_value: null, + group: 'social', + id: '28', + is_fixed: '0', + label: 'Skype', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + twitter: { + alias: 'twitter', + default_value: null, + group: 'social', + id: '29', + is_fixed: '0', + label: 'Twitter', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + }, + frequencyRules: [], + id: 254, + ipAddresses: [], + isPublished: true, + lastActive: '2020-02-02T00:23:09+00:00', + modifiedBy: 1, + modifiedByUser: 'test rudderlabs', + owner: null, + points: 0, + preferredProfileImage: null, + stage: null, + tags: [], + utmtags: [], + }, + }, + total: '3', + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic VGVzdDQ1ODIzUnVkZGVybGFic0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://ruddertest2.mautic.net/api/contacts?where%5B0%5D%5Bcol%5D=lastname&where%5B0%5D%5Bexpr%5D=eq&where%5B0%5D%5Bval%5D=Singh', + }, + httpRes: { data: { Conatcts: {}, Total: 0 }, status: 200 }, + }, +]; diff --git a/test/integrations/destinations/mautic/processor/data.ts b/test/integrations/destinations/mautic/processor/data.ts index b95a3d83148..fe1dc6c41af 100644 --- a/test/integrations/destinations/mautic/processor/data.ts +++ b/test/integrations/destinations/mautic/processor/data.ts @@ -32,7 +32,7 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'abcdefghij1234', + password: 'dummyPassword', subDomainName: '', domainMethod: 'domainNameOption', domainName: 'https://testmautic.com', @@ -43,7 +43,6 @@ export const data = [ ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -57,7 +56,7 @@ export const data = [ endpoint: 'https://testmautic.com/api/contacts/new', headers: { 'Content-Type': 'application/json', - Authorization: 'Basic YWJjZGVmQGdtYWlsLmNvbTphYmNkZWZnaGlqMTIzNA==', + Authorization: 'Basic YWJjZGVmQGdtYWlsLmNvbTpkdW1teVBhc3N3b3Jk', }, params: {}, body: { @@ -114,7 +113,7 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'abcdefghij1234', + password: 'dummyPassword', subDomainName: 'test', domainMethod: 'subDomainNameOption', domainName: 'https://testmautic.com/', @@ -125,7 +124,6 @@ export const data = [ ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -139,7 +137,7 @@ export const data = [ endpoint: 'https://test.mautic.net/api/contacts/new', headers: { 'Content-Type': 'application/json', - Authorization: 'Basic YWJjZGVmQGdtYWlsLmNvbTphYmNkZWZnaGlqMTIzNA==', + Authorization: 'Basic YWJjZGVmQGdtYWlsLmNvbTpkdW1teVBhc3N3b3Jk', }, params: {}, body: { @@ -195,7 +193,7 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'abcdefghij1234', + password: 'dummyPassword', subDomainName: 'test', domainMethod: 'domainNameOption', domainName: 'https://testmautic.com', @@ -206,7 +204,6 @@ export const data = [ ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -220,7 +217,7 @@ export const data = [ endpoint: 'https://testmautic.com/api/contacts/new', headers: { 'Content-Type': 'application/json', - Authorization: 'Basic YWJjZGVmQGdtYWlsLmNvbTphYmNkZWZnaGlqMTIzNA==', + Authorization: 'Basic YWJjZGVmQGdtYWlsLmNvbTpkdW1teVBhc3N3b3Jk', }, params: {}, body: { @@ -261,8 +258,8 @@ export const data = [ name: 'http', }, traits: { - firstName: 'Anant', - lastName: 'jain', + firstName: 'Test', + lastName: 'Rudderlabs', }, }, messageId: '25ea6605-c788-4cab-8fed-2cf0b831c4a8', @@ -287,7 +284,6 @@ export const data = [ ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -327,8 +323,8 @@ export const data = [ name: 'http', }, traits: { - firstName: 'Anant', - lastName: 'jain', + firstName: 'Test', + lastName: 'Rudderlabs', }, }, messageId: '25ea6605-c788-4cab-8fed-2cf0b831c4a8', @@ -344,7 +340,7 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'abcdefghij1234', + password: 'dummyPassword', subDomainName: '', domainName: '', userName: 'opiogfuebj', @@ -354,7 +350,6 @@ export const data = [ ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -392,14 +387,14 @@ export const data = [ ip: '14.5.67.21', library: { name: 'http' }, traits: { - firstName: 'Anant', - lastName: 'jain', + firstName: 'Test', + lastName: 'Rudderlabs', role: 'Manager', address: 'Flat No 58 ABC building XYZ Area near PQRS , 354408', hasPurchased: 'yes', email: 'abc@xyz.com', title: 'Mr', - phone: '9876543212', + phone: '9876543210', state: 'Uttar Pradesh', zipcode: '243001', prospectOrCustomer: 'Prospect', @@ -421,16 +416,15 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'm3dG325C51C1RPq', + password: 'dummyPassword', subDomainName: 'ruddertest2', - userName: 'anantjain45823@gmail.com', + userName: 'TestRudderlabs45823@gmail.com', }, }, }, ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -444,16 +438,16 @@ export const data = [ endpoint: 'https://ruddertest2.mautic.net/api/contacts/new', headers: { 'Content-Type': 'application/json', - Authorization: 'Basic YW5hbnRqYWluNDU4MjNAZ21haWwuY29tOm0zZEczMjVDNTFDMVJQcQ==', + Authorization: 'Basic VGVzdFJ1ZGRlcmxhYnM0NTgyM0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', }, params: {}, body: { JSON: { email: 'abc@xyz.com', title: 'Mr', - firstname: 'Anant', - lastname: 'jain', - phone: '9876543212', + firstname: 'Test', + lastname: 'Rudderlabs', + phone: '9876543210', website: 'abc.com', state: 'Uttar Pradesh', zipcode: '243001', @@ -496,14 +490,14 @@ export const data = [ ip: '14.5.67.21', library: { name: 'http' }, traits: { - firstName: 'Anant', - lastName: 'jain', + firstName: 'Test', + lastName: 'Rudderlabs', role: 'Manager', address: 'Flat No 58 ABC building XYZ Area near PQRS , 354408', hasPurchased: 'yes', email: 'hijibi@gmail.com', title: 'Mr', - phone: '9876543212', + phone: '9876543210', state: 'Uttar Pradesh', zipcode: '243001', prospectOrCustomer: 'Prospect', @@ -525,16 +519,15 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'm3dG325C51C1RPq', + password: 'dummyPassword', subDomainName: 'ruddertest2', - userName: 'anantjain45823@gmail.com', + userName: 'TestRudderlabs45823@gmail.com', }, }, }, ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -548,7 +541,7 @@ export const data = [ endpoint: 'https://ruddertest2.mautic.net/api/contacts/247/edit', headers: { 'Content-Type': 'application/json', - Authorization: 'Basic YW5hbnRqYWluNDU4MjNAZ21haWwuY29tOm0zZEczMjVDNTFDMVJQcQ==', + Authorization: 'Basic VGVzdFJ1ZGRlcmxhYnM0NTgyM0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', }, params: {}, body: { @@ -556,9 +549,9 @@ export const data = [ email: 'hijibi@gmail.com', title: 'Mr', last_active: '2020-02-02T05:53:08.977+05:30', - firstname: 'Anant', - lastname: 'jain', - phone: '9876543212', + firstname: 'Test', + lastname: 'Rudderlabs', + phone: '9876543210', website: 'abc.com', state: 'Uttar Pradesh', zipcode: '243001', @@ -600,14 +593,14 @@ export const data = [ ip: '14.5.67.21', library: { name: 'http' }, traits: { - firstName: 'Anant', - lastName: 'jain', + firstName: 'Test', + lastName: 'Rudderlabs', role: 'Manager', address: 'Flat No 58 ABC building XYZ Area near PQRS , 354408', hasPurchased: 'yes', email: 'abc@xyz.com', title: 'Mr', - phone: '9876543212', + phone: '9876543210', state: 'Uttar Pradesh', zipcode: '243001', prospectOrCustomer: 'Prospect', @@ -629,7 +622,7 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'abcdefghij1234', + password: 'dummyPassword', subDomainName: 'testapi3', userName: '', }, @@ -638,7 +631,6 @@ export const data = [ ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -675,7 +667,7 @@ export const data = [ context: { ip: '14.5.67.21', library: { name: 'http' }, - traits: { firstName: 'Anant', lastName: 'jain' }, + traits: { firstName: 'Test', lastName: 'Rudderlabs' }, }, messageId: '25ea6605-c788-4cab-8fed-2cf0b831c4a8', originalTimestamp: '2020-02-02T00:23:09.544Z', @@ -699,7 +691,6 @@ export const data = [ ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -737,14 +728,14 @@ export const data = [ ip: '14.5.67.21', library: { name: 'http' }, traits: { - firstName: 'Anant', - lastName: 'jain', + firstName: 'Test', + lastName: 'Rudderlabs', role: 'Manager', address: 'Flat No 58 ABC building XYZ Area near PQRS , 354408', hasPurchased: 'yes', email: 'abc@xyz.com', title: 'Mr', - phone: '9876543212', + phone: '9876543210', state: 'Uttar Pradesh', zipcode: '243001', prospectOrCustomer: 'Prospect', @@ -766,7 +757,7 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'abcdefghij1234', + password: 'dummyPassword', subDomainName: '', userName: 'abcdef@gmail.com', }, @@ -775,7 +766,6 @@ export const data = [ ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -826,7 +816,7 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'm3dG325C51C1RPq', + password: 'dummyPassword', subDomainName: 'testapi3', userName: 'abcdef@gmail.com', }, @@ -835,7 +825,6 @@ export const data = [ ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -887,16 +876,15 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'm3dG325C51C1RPq', + password: 'dummyPassword', subDomainName: 'testapi3', - userName: 'anantjain45823@gmail.com', + userName: 'TestRudderlabs45823@gmail.com', }, }, }, ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -944,7 +932,7 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'abcdefghij1234', + password: 'dummyPassword', subDomainName: 'testapi3', userName: 'abcdef@gmail.com', }, @@ -953,7 +941,6 @@ export const data = [ ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -1001,7 +988,7 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'abcdefghij1234', + password: 'dummyPassword', subDomainName: 'testapi3', userName: 'abcdef@gmail.com', }, @@ -1010,7 +997,6 @@ export const data = [ ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -1062,7 +1048,7 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'abcdefghij1234', + password: 'dummyPassword', subDomainName: 'testapi3', userName: 'abcdef@gmail.com', }, @@ -1071,7 +1057,6 @@ export const data = [ ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -1119,16 +1104,15 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'm3dG325C51C1RPq', + password: 'dummyPassword', subDomainName: 'testapi3', - userName: 'anantjain45823@gmail.com', + userName: 'TestRudderlabs45823@gmail.com', }, }, }, ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -1180,16 +1164,15 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'm3dG325C51C1RPq', + password: 'dummyPassword', subDomainName: 'testapi3', - userName: 'anantjain45823@gmail.com', + userName: 'TestRudderlabs45823@gmail.com', }, }, }, ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -1229,16 +1212,15 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'm3dG325C51C1RPq', + password: 'dummyPassword', subDomainName: 'testapi3', - userName: 'anantjain45823@gmail.com', + userName: 'TestRudderlabs45823@gmail.com', }, }, }, ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -1290,16 +1272,15 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'm3dG325C51C1RPq', + password: 'dummyPassword', subDomainName: 'testapi3', - userName: 'anantjain45823@gmail.com', + userName: 'TestRudderlabs45823@gmail.com', }, }, }, ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -1347,7 +1328,7 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'abcdefghij1234', + password: 'dummyPassword', subDomainName: 'testapi3', userName: 'abcdef@gmail.com', }, @@ -1356,7 +1337,6 @@ export const data = [ ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -1370,7 +1350,7 @@ export const data = [ endpoint: 'https://testapi3.mautic.net/api/contacts/new', headers: { 'Content-Type': 'application/json', - Authorization: 'Basic YWJjZGVmQGdtYWlsLmNvbTphYmNkZWZnaGlqMTIzNA==', + Authorization: 'Basic YWJjZGVmQGdtYWlsLmNvbTpkdW1teVBhc3N3b3Jk', }, params: {}, body: { @@ -1426,7 +1406,7 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'abcdefghij1234', + password: 'dummyPassword', subDomainName: 'testapi3', userName: 'abcdef@gmail.com', }, @@ -1435,7 +1415,6 @@ export const data = [ ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -1449,7 +1428,7 @@ export const data = [ endpoint: 'https://testapi3.mautic.net/api/contacts/new', headers: { 'Content-Type': 'application/json', - Authorization: 'Basic YWJjZGVmQGdtYWlsLmNvbTphYmNkZWZnaGlqMTIzNA==', + Authorization: 'Basic YWJjZGVmQGdtYWlsLmNvbTpkdW1teVBhc3N3b3Jk', }, params: {}, body: { @@ -1485,7 +1464,7 @@ export const data = [ message: { anonymousId: 'anon-id-new', context: { externalId: [{ type: 'mauticContactId', id: '246' }] }, - traits: { firstName: 'Anant', role: 'Manager' }, + traits: { firstName: 'Test', role: 'Manager' }, messageId: '25ea6605-c788-4cab-8fed-2cf0b831c4a8', originalTimestamp: '2020-02-02T00:23:09.544Z', receivedAt: '2022-08-17T10:40:21.162+05:30', @@ -1499,16 +1478,15 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'zzlOylGKJRKVr87', + password: 'dummyPassword', subDomainName: 'testapi5', - userName: 'anant45823jain@gmail.com', + userName: 'Test45823Rudderlabs@gmail.com', }, }, }, ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -1522,13 +1500,13 @@ export const data = [ endpoint: 'https://testapi5.mautic.net/api/contacts/246/edit', headers: { 'Content-Type': 'application/json', - Authorization: 'Basic YW5hbnQ0NTgyM2phaW5AZ21haWwuY29tOnp6bE95bEdLSlJLVnI4Nw==', + Authorization: 'Basic VGVzdDQ1ODIzUnVkZGVybGFic0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', }, params: {}, body: { JSON: { last_active: '2020-02-02T05:53:08.977+05:30', - firstname: 'Anant', + firstname: 'Test', role: 'Manager', }, JSON_ARRAY: {}, @@ -1563,16 +1541,15 @@ export const data = [ destination: { Config: { lookUpField: 'lastName', - password: 'zzlOylGKJRKVr87', + password: 'dummyPassword', subDomainName: 'testapi5', - userName: 'anant45823jain@gmail.com', + userName: 'Test45823Rudderlabs@gmail.com', }, }, }, ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -1615,16 +1592,15 @@ export const data = [ destination: { Config: { lookUpField: 'lastName', - password: 'zzlOylGKJRKVr87', + password: 'dummyPassword', subDomainName: 'testapi5', - userName: 'anant45823jain@gmail.com', + userName: 'Test45823Rudderlabs@gmail.com', }, }, }, ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -1638,7 +1614,7 @@ export const data = [ endpoint: 'https://testapi5.mautic.net/api/segments/17/contact/246/remove', headers: { 'Content-Type': 'application/json', - Authorization: 'Basic YW5hbnQ0NTgyM2phaW5AZ21haWwuY29tOnp6bE95bEdLSlJLVnI4Nw==', + Authorization: 'Basic VGVzdDQ1ODIzUnVkZGVybGFic0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', }, params: {}, body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, @@ -1672,16 +1648,15 @@ export const data = [ destination: { Config: { lookUpField: 'lastName', - password: 'zzlOylGKJRKVr87', + password: 'dummyPassword', subDomainName: 'testapi5', - userName: 'anant45823jain@gmail.com', + userName: 'Test45823Rudderlabs@gmail.com', }, }, }, ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -1695,7 +1670,7 @@ export const data = [ endpoint: 'https://testapi5.mautic.net/api/segments/17/contact/246/add', headers: { 'Content-Type': 'application/json', - Authorization: 'Basic YW5hbnQ0NTgyM2phaW5AZ21haWwuY29tOnp6bE95bEdLSlJLVnI4Nw==', + Authorization: 'Basic VGVzdDQ1ODIzUnVkZGVybGFic0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', }, params: {}, body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, @@ -1727,7 +1702,7 @@ export const data = [ destination: { Config: { lookUpField: 'lastName', - password: 'abcdefghij1234', + password: 'dummyPassword', subDomainName: 'testapi5', userName: 'abcdef@gmail.com', }, @@ -1736,7 +1711,6 @@ export const data = [ ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -1778,7 +1752,7 @@ export const data = [ destination: { Config: { lookUpField: 'lastName', - password: 'abcdefghij1234', + password: 'dummyPassword', subDomainName: 'testapi5', userName: 'abcdef@gmail.com', }, @@ -1787,7 +1761,6 @@ export const data = [ ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -1830,16 +1803,15 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'zzlOylGKJRKVr87', + password: 'dummyPassword', subDomainName: 'ruddertest2', - userName: 'anant45823jain@gmail.com', + userName: 'Test45823Rudderlabs@gmail.com', }, }, }, ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -1853,7 +1825,7 @@ export const data = [ endpoint: 'https://ruddertest2.mautic.net/api/companies/20/contact/247/add', headers: { 'Content-Type': 'application/json', - Authorization: 'Basic YW5hbnQ0NTgyM2phaW5AZ21haWwuY29tOnp6bE95bEdLSlJLVnI4Nw==', + Authorization: 'Basic VGVzdDQ1ODIzUnVkZGVybGFic0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', }, params: {}, body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, @@ -1886,16 +1858,15 @@ export const data = [ destination: { Config: { lookUpField: 'lastName', - password: 'zzlOylGKJRKVr87', + password: 'dummyPassword', subDomainName: 'ruddertest2', - userName: 'anant45823jain@gmail.com', + userName: 'Test45823Rudderlabs@gmail.com', }, }, }, ], method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -1936,16 +1907,15 @@ export const data = [ destination: { Config: { lookUpField: 'lastName', - password: 'zzlOylGKJRKVr87', + password: 'dummyPassword', subDomainName: 'ruddertest2', - userName: 'anant45823jain@gmail.com', + userName: 'Test45823Rudderlabs@gmail.com', }, }, }, ], method: 'POST', }, - pathSuffix: '', }, output: { response: { diff --git a/test/integrations/destinations/mautic/router/data.ts b/test/integrations/destinations/mautic/router/data.ts index 7019b9098b6..9ac6c8714f3 100644 --- a/test/integrations/destinations/mautic/router/data.ts +++ b/test/integrations/destinations/mautic/router/data.ts @@ -18,14 +18,14 @@ export const data = [ name: 'http', }, traits: { - firstName: 'Anant', - lastName: 'jain', + firstName: 'Test', + lastName: 'Rudderlabs', role: 'Manager', address: 'Flat No 58 ABC building XYZ Area near PQRS , 354408', hasPurchased: 'yes', email: 'abc@xyz.com', title: 'Mr', - phone: '9876543212', + phone: '9876543210', state: 'Uttar Pradesh', zipcode: '243001', prospectOrCustomer: 'Prospect', @@ -47,9 +47,9 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'm3dG325C51C1RPq', + password: 'dummyPassword', subDomainName: 'ruddertest2', - userName: 'anantjain45823@gmail.com', + userName: 'TestRudderlabs45823@gmail.com', }, }, metadata: { @@ -61,7 +61,6 @@ export const data = [ }, method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -76,16 +75,17 @@ export const data = [ endpoint: 'https://ruddertest2.mautic.net/api/contacts/new', headers: { 'Content-Type': 'application/json', - Authorization: 'Basic YW5hbnRqYWluNDU4MjNAZ21haWwuY29tOm0zZEczMjVDNTFDMVJQcQ==', + Authorization: + 'Basic VGVzdFJ1ZGRlcmxhYnM0NTgyM0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', }, params: {}, body: { JSON: { email: 'abc@xyz.com', title: 'Mr', - firstname: 'Anant', - lastname: 'jain', - phone: '9876543212', + firstname: 'Test', + lastname: 'Rudderlabs', + phone: '9876543210', website: 'abc.com', state: 'Uttar Pradesh', zipcode: '243001', @@ -115,9 +115,9 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'm3dG325C51C1RPq', + password: 'dummyPassword', subDomainName: 'ruddertest2', - userName: 'anantjain45823@gmail.com', + userName: 'TestRudderlabs45823@gmail.com', }, }, }, @@ -145,14 +145,14 @@ export const data = [ name: 'http', }, traits: { - firstName: 'Anant', - lastName: 'jain', + firstName: 'Test', + lastName: 'Rudderlabs', role: 'Manager', address: 'Flat No 58 ABC building XYZ Area near PQRS , 354408', hasPurchased: 'yes', email: 'abc@xyz.com', title: 'Mr', - phone: '9876543212', + phone: '9876543210', state: 'Uttar Pradesh', zipcode: '243001', prospectOrCustomer: 'Prospect', @@ -174,7 +174,7 @@ export const data = [ destination: { Config: { lookUpField: 'email', - password: 'abcdefghij1234', + password: 'dummyPassword', subDomainName: '', domainName: '', userName: 'abcdef', @@ -189,7 +189,6 @@ export const data = [ }, method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -214,7 +213,7 @@ export const data = [ Config: { domainName: '', lookUpField: 'email', - password: 'abcdefghij1234', + password: 'dummyPassword', subDomainName: '', userName: 'abcdef', }, @@ -258,9 +257,9 @@ export const data = [ destination: { Config: { lookUpField: 'lastName', - password: 'm3dG325C51C1RPq', + password: 'dummyPassword', subDomainName: 'ruddertest2', - userName: 'anantjain45823@gmail.com', + userName: 'TestRudderlabs45823@gmail.com', }, }, metadata: { @@ -272,7 +271,6 @@ export const data = [ }, method: 'POST', }, - pathSuffix: '', }, output: { response: { @@ -287,7 +285,8 @@ export const data = [ endpoint: 'https://ruddertest2.mautic.net/api/segments/17/contact/246/add', headers: { 'Content-Type': 'application/json', - Authorization: 'Basic YW5hbnRqYWluNDU4MjNAZ21haWwuY29tOm0zZEczMjVDNTFDMVJQcQ==', + Authorization: + 'Basic VGVzdFJ1ZGRlcmxhYnM0NTgyM0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', }, params: {}, body: { @@ -308,9 +307,9 @@ export const data = [ destination: { Config: { lookUpField: 'lastName', - password: 'm3dG325C51C1RPq', + password: 'dummyPassword', subDomainName: 'ruddertest2', - userName: 'anantjain45823@gmail.com', + userName: 'TestRudderlabs45823@gmail.com', }, }, }, diff --git a/test/integrations/destinations/moengage/processor/data.ts b/test/integrations/destinations/moengage/processor/data.ts new file mode 100644 index 00000000000..1ce8705f536 --- /dev/null +++ b/test/integrations/destinations/moengage/processor/data.ts @@ -0,0 +1,2881 @@ +export const data = [ + { + name: 'moengage', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + timezone: 'Asia/Tokyo', + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + event: 'Order Completed', + integrations: { All: true }, + messageId: 'a0adfab9-baf7-4e09-a2ce-bbe2844c324a', + originalTimestamp: '2020-10-16T08:10:12.782Z', + properties: { + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + category: 'some category', + originalArray: [ + { nested_field: 'nested value', tags: ['tag_1', 'tag_2', 'tag_3'] }, + { nested_field: 'nested value', tags: ['tag_1', 'tag_2', 'tag_3'] }, + { nested_field: 'nested value', tags: ['tag_1', 'tag_2', 'tag_3'] }, + { nested_field: 'nested value', tags: ['tag_1', 'tag_2', 'tag_3'] }, + { nested_field: 'nested value', tags: ['tag_1', 'tag_2', 'tag_3'] }, + { nested_field: 'nested value', tags: ['tag_1', 'tag_2', 'tag_3'] }, + { nested_field: 'nested value', tags: ['tag_1', 'tag_2', 'tag_3'] }, + { nested_field: 'nested value', tags: ['tag_1', 'tag_2', 'tag_3'] }, + { nested_field: 'nested value', tags: ['tag_1', 'tag_2', 'tag_3'] }, + ], + products: [ + { + brand: '', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/bacon-jam.jpg', + name: 'Food/Drink', + position: 1, + price: 3, + product_id: 'product-bacon-jam', + quantity: 2, + sku: 'sku-1', + typeOfProduct: 'Food', + url: 'https://www.example.com/product/bacon-jam', + value: 6, + variant: 'Extra topped', + }, + { + brand: 'Levis', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/t-shirt.jpg', + name: 'T-Shirt', + position: 2, + price: 12.99, + product_id: 'product-t-shirt', + quantity: 1, + sku: 'sku-2', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/t-shirt', + value: 12.99, + variant: 'White', + }, + { + brand: 'Levis', + category: 'Merch', + coupon: 'APPARELSALE', + currency: 'GBP', + image_url: 'https://www.example.com/product/offer-t-shirt.jpg', + name: 'T-Shirt-on-offer', + position: 1, + price: 12.99, + product_id: 'offer-t-shirt', + quantity: 1, + sku: 'sku-3', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/offer-t-shirt', + value: 12.99, + variant: 'Black', + }, + ], + revenue: 31.98, + shipping: 4, + value: 31.98, + }, + receivedAt: '2020-10-16T13:40:12.792+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:10:12.783Z', + timestamp: '2020-10-16T13:40:12.791+05:30', + type: 'track', + userId: 'rudder123', + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'US', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-01.moengage.com/v1/event/W0ZHNMPI2O4KHJ48ZILZACRA', + headers: { + 'Content-Type': 'application/json', + 'MOE-APPKEY': 'W0ZHNMPI2O4KHJ48ZILZACRA', + Authorization: 'Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5', + }, + params: {}, + body: { + JSON: { + customer_id: 'rudder123', + type: 'event', + actions: [ + { + action: 'Order Completed', + attributes: { + category: 'some category', + 'originalArray[0].nested_field': 'nested value', + 'originalArray[0].tags[0]': 'tag_1', + 'originalArray[0].tags[1]': 'tag_2', + 'originalArray[0].tags[2]': 'tag_3', + 'originalArray[1].nested_field': 'nested value', + 'originalArray[1].tags[0]': 'tag_1', + 'originalArray[1].tags[1]': 'tag_2', + 'originalArray[1].tags[2]': 'tag_3', + 'originalArray[2].nested_field': 'nested value', + 'originalArray[2].tags[0]': 'tag_1', + 'originalArray[2].tags[1]': 'tag_2', + 'originalArray[2].tags[2]': 'tag_3', + 'originalArray[3].nested_field': 'nested value', + 'originalArray[3].tags[0]': 'tag_1', + 'originalArray[3].tags[1]': 'tag_2', + 'originalArray[3].tags[2]': 'tag_3', + 'originalArray[4].nested_field': 'nested value', + 'originalArray[4].tags[0]': 'tag_1', + 'originalArray[4].tags[1]': 'tag_2', + 'originalArray[4].tags[2]': 'tag_3', + 'originalArray[5].nested_field': 'nested value', + 'originalArray[5].tags[0]': 'tag_1', + 'originalArray[5].tags[1]': 'tag_2', + 'originalArray[5].tags[2]': 'tag_3', + 'originalArray[6].nested_field': 'nested value', + 'originalArray[6].tags[0]': 'tag_1', + 'originalArray[6].tags[1]': 'tag_2', + 'originalArray[6].tags[2]': 'tag_3', + 'originalArray[7].nested_field': 'nested value', + 'originalArray[7].tags[0]': 'tag_1', + 'originalArray[7].tags[1]': 'tag_2', + 'originalArray[7].tags[2]': 'tag_3', + 'originalArray[8].nested_field': 'nested value', + 'originalArray[8].tags[0]': 'tag_1', + 'originalArray[8].tags[1]': 'tag_2', + 'originalArray[8].tags[2]': 'tag_3', + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + 'products[0].brand': '', + 'products[0].category': 'Merch', + 'products[0].currency': 'GBP', + 'products[0].image_url': 'https://www.example.com/product/bacon-jam.jpg', + 'products[0].name': 'Food/Drink', + 'products[0].position': 1, + 'products[0].price': 3, + 'products[0].product_id': 'product-bacon-jam', + 'products[0].quantity': 2, + 'products[0].sku': 'sku-1', + 'products[0].typeOfProduct': 'Food', + 'products[0].url': 'https://www.example.com/product/bacon-jam', + 'products[0].value': 6, + 'products[0].variant': 'Extra topped', + 'products[1].brand': 'Levis', + 'products[1].category': 'Merch', + 'products[1].currency': 'GBP', + 'products[1].image_url': 'https://www.example.com/product/t-shirt.jpg', + 'products[1].name': 'T-Shirt', + 'products[1].position': 2, + 'products[1].price': 12.99, + 'products[1].product_id': 'product-t-shirt', + 'products[1].quantity': 1, + 'products[1].sku': 'sku-2', + 'products[1].typeOfProduct': 'Shirt', + 'products[1].url': 'https://www.example.com/product/t-shirt', + 'products[1].value': 12.99, + 'products[1].variant': 'White', + 'products[2].brand': 'Levis', + 'products[2].category': 'Merch', + 'products[2].coupon': 'APPARELSALE', + 'products[2].currency': 'GBP', + 'products[2].image_url': + 'https://www.example.com/product/offer-t-shirt.jpg', + 'products[2].name': 'T-Shirt-on-offer', + 'products[2].position': 1, + 'products[2].price': 12.99, + 'products[2].product_id': 'offer-t-shirt', + 'products[2].quantity': 1, + 'products[2].sku': 'sku-3', + 'products[2].typeOfProduct': 'Shirt', + 'products[2].url': 'https://www.example.com/product/offer-t-shirt', + 'products[2].value': 12.99, + 'products[2].variant': 'Black', + revenue: 31.98, + shipping: 4, + value: 31.98, + }, + app_version: '1.1.6', + current_time: '2020-10-16T13:40:12.791+05:30', + user_timezone_offset: 32400, + platform: 'web', + }, + ], + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'moengage', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'e108eb05-f6cd-4624-ba8c-568f2e2b3f92', + originalTimestamp: '2020-10-16T08:26:14.938Z', + receivedAt: '2020-10-16T13:56:14.945+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:26:14.939Z', + timestamp: '2020-10-16T13:56:14.944+05:30', + type: 'identify', + userId: 'rudder123', + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'US', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + type: 'customer', + attributes: { + name: 'Rudder Test', + plan: 'Enterprise', + email: 'rudderTest@gmail.com', + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + 'company.id': 'abc123', + created_time: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + }, + customer_id: 'rudder123', + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + userId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + headers: { + 'MOE-APPKEY': 'W0ZHNMPI2O4KHJ48ZILZACRA', + 'Content-Type': 'application/json', + Authorization: 'Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5', + }, + version: '1', + endpoint: 'https://api-01.moengage.com/v1/customer/W0ZHNMPI2O4KHJ48ZILZACRA', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'moengage', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { All: true }, + traits: { + CID: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + RC_DATE: '2021-03-22T12:36:34Z', + RC_NO_OF_SKUS: 1, + RC_PN_SKU_LIST: '9317', + }, + messageId: 'e108eb05-f6cd-4624-ba8c-568f2e2b3f92', + originalTimestamp: '2020-10-16T08:26:14.938Z', + receivedAt: '2020-10-16T13:56:14.945+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:26:14.939Z', + timestamp: '2020-10-16T13:56:14.944+05:30', + type: 'identify', + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'US', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + type: 'customer', + attributes: { + CID: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + RC_DATE: '2021-03-22T12:36:34Z', + RC_NO_OF_SKUS: 1, + RC_PN_SKU_LIST: '9317', + }, + customer_id: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + userId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + headers: { + 'MOE-APPKEY': 'W0ZHNMPI2O4KHJ48ZILZACRA', + 'Content-Type': 'application/json', + Authorization: 'Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5', + }, + version: '1', + endpoint: 'https://api-01.moengage.com/v1/customer/W0ZHNMPI2O4KHJ48ZILZACRA', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'moengage', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + token: 'desuhere', + type: 'android', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { All: true }, + messageId: '531e3507-1ef5-4a06-b83c-cb521ff34f0c', + originalTimestamp: '2020-10-16T08:53:29.386Z', + receivedAt: '2020-10-16T14:23:29.402+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:53:29.387Z', + timestamp: '2020-10-16T14:23:29.401+05:30', + type: 'identify', + userId: 'rudder123', + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'US', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + type: 'customer', + attributes: { + name: 'Rudder Test', + plan: 'Enterprise', + email: 'rudderTest@gmail.com', + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + 'company.id': 'abc123', + created_time: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + }, + customer_id: 'rudder123', + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + userId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + headers: { + 'MOE-APPKEY': 'W0ZHNMPI2O4KHJ48ZILZACRA', + 'Content-Type': 'application/json', + Authorization: 'Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5', + }, + version: '1', + endpoint: 'https://api-01.moengage.com/v1/customer/W0ZHNMPI2O4KHJ48ZILZACRA', + }, + statusCode: 200, + }, + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + type: 'device', + device_id: '7e32188a4dab669f', + attributes: { + model: 'Android SDK built for x86', + push_id: 'desuhere', + platform: 'android', + app_version: '1.1.6', + }, + customer_id: 'rudder123', + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + userId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + headers: { + 'MOE-APPKEY': 'W0ZHNMPI2O4KHJ48ZILZACRA', + 'Content-Type': 'application/json', + Authorization: 'Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5', + }, + version: '1', + endpoint: 'https://api-01.moengage.com/v1/device/W0ZHNMPI2O4KHJ48ZILZACRA', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'moengage', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'a61357dd-e29e-4033-b1af-029625947fec', + originalTimestamp: '2020-10-16T09:05:11.001Z', + receivedAt: '2020-10-16T14:35:11.014+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T09:05:11.002Z', + timestamp: '2020-10-16T14:35:11.013+05:30', + type: 'identify', + userId: 'rudder123', + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'EU', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + type: 'customer', + attributes: { + name: 'Rudder Test', + plan: 'Enterprise', + email: 'rudderTest@gmail.com', + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + 'company.id': 'abc123', + created_time: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + }, + customer_id: 'rudder123', + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + userId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + headers: { + 'MOE-APPKEY': 'W0ZHNMPI2O4KHJ48ZILZACRA', + 'Content-Type': 'application/json', + Authorization: 'Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5', + }, + version: '1', + endpoint: 'https://api-02.moengage.com/v1/customer/W0ZHNMPI2O4KHJ48ZILZACRA', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'moengage', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { All: true }, + messageId: '9eb2f7c0-d896-494e-b105-60f604ce2906', + originalTimestamp: '2020-10-16T09:09:31.465Z', + receivedAt: '2020-10-16T14:39:31.468+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T09:09:31.466Z', + timestamp: '2020-10-16T14:39:31.467+05:30', + type: 'identify', + userId: 'rudder123', + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'IND', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + type: 'customer', + attributes: { + name: 'Rudder Test', + plan: 'Enterprise', + email: 'rudderTest@gmail.com', + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + 'company.id': 'abc123', + created_time: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + }, + customer_id: 'rudder123', + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + userId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + headers: { + 'MOE-APPKEY': 'W0ZHNMPI2O4KHJ48ZILZACRA', + 'Content-Type': 'application/json', + Authorization: 'Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5', + }, + version: '1', + endpoint: 'https://api-03.moengage.com/v1/customer/W0ZHNMPI2O4KHJ48ZILZACRA', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'moengage', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { All: true }, + messageId: '9eb2f7c0-d896-494e-b105-60f604ce2906', + originalTimestamp: '2020-10-16T09:09:31.465Z', + receivedAt: '2020-10-16T14:39:31.468+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T09:09:31.466Z', + timestamp: '2020-10-16T14:39:31.467+05:30', + type: 'identify', + userId: 'rudder123', + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'AMA', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'The region is not valid', + statTags: { + destType: 'MOENGAGE', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'moengage', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { All: true }, + messageId: '9eb2f7c0-d896-494e-b105-60f604ce2906', + originalTimestamp: '2020-10-16T09:09:31.465Z', + receivedAt: '2020-10-16T14:39:31.468+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T09:09:31.466Z', + timestamp: '2020-10-16T14:39:31.467+05:30', + userId: 'rudder123', + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'IND', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type is required', + statTags: { + destType: 'MOENGAGE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'moengage', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { All: true }, + messageId: '9eb2f7c0-d896-494e-b105-60f604ce2906', + originalTimestamp: '2020-10-16T09:09:31.465Z', + receivedAt: '2020-10-16T14:39:31.468+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T09:09:31.466Z', + timestamp: '2020-10-16T14:39:31.467+05:30', + type: 'gone', + userId: 'rudder123', + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'IND', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type gone is not supported', + statTags: { + destType: 'MOENGAGE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'moengage', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + timezone: 'Asia/Kolkata', + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + event: 'Order Completed', + integrations: { All: true }, + messageId: 'a0adfab9-baf7-4e09-a2ce-bbe2844c324a', + originalTimestamp: '2020-10-16T08:10:12.782Z', + properties: { + category: 'some category', + originalArray: [ + { nested_field: 'nested value', tags: ['tag_1', 'tag_2', 'tag_3'] }, + { nested_field: 'nested value', tags: ['tag_1', 'tag_2', 'tag_3'] }, + { nested_field: 'nested value', tags: ['tag_1', 'tag_2', 'tag_3'] }, + { nested_field: 'nested value', tags: ['tag_1', 'tag_2', 'tag_3'] }, + { nested_field: 'nested value', tags: ['tag_1', 'tag_2', 'tag_3'] }, + { nested_field: 'nested value', tags: ['tag_1', 'tag_2', 'tag_3'] }, + { nested_field: 'nested value', tags: ['tag_1', 'tag_2', 'tag_3'] }, + { + nested_field: 'nested value', + tags: ['tag_1', 'tag_2', 'tag_3', 'tag_1', 'tag_2', 'tag_3'], + }, + { + nested_field: 'nested value', + tags: ['tag_1', 'tag_2', 'tag_3', 'tag_1', 'tag_2', 'tag_3'], + }, + ], + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + products: [ + { + brand: '', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/bacon-jam.jpg', + name: 'Food/Drink', + position: 1, + price: 3, + product_id: 'product-bacon-jam', + quantity: 2, + sku: 'sku-1', + typeOfProduct: 'Food', + url: 'https://www.example.com/product/bacon-jam', + value: 6, + variant: 'Extra topped', + }, + { + brand: 'Levis', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/t-shirt.jpg', + name: 'T-Shirt', + position: 2, + price: 12.99, + product_id: 'product-t-shirt', + quantity: 1, + sku: 'sku-2', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/t-shirt', + value: 12.99, + variant: 'White', + }, + { + brand: 'Levis', + category: 'Merch', + coupon: 'APPARELSALE', + currency: 'GBP', + image_url: 'https://www.example.com/product/offer-t-shirt.jpg', + name: 'T-Shirt-on-offer', + position: 1, + price: 12.99, + product_id: 'offer-t-shirt', + quantity: 1, + sku: 'sku-3', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/offer-t-shirt', + value: 12.99, + variant: 'Black', + }, + ], + revenue: 31.98, + shipping: 4, + value: 31.98, + }, + receivedAt: '2020-10-16T13:40:12.792+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:10:12.783Z', + timestamp: '2020-10-16T13:40:12.791+05:30', + type: 'track', + userId: 'rudder123', + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'US', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-01.moengage.com/v1/event/W0ZHNMPI2O4KHJ48ZILZACRA', + headers: { + 'Content-Type': 'application/json', + 'MOE-APPKEY': 'W0ZHNMPI2O4KHJ48ZILZACRA', + Authorization: 'Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5', + }, + params: {}, + body: { + JSON: { + customer_id: 'rudder123', + type: 'event', + actions: [ + { + action: 'Order Completed', + attributes: { + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + category: 'some category', + 'originalArray[0].nested_field': 'nested value', + 'originalArray[0].tags[0]': 'tag_1', + 'originalArray[0].tags[1]': 'tag_2', + 'originalArray[0].tags[2]': 'tag_3', + 'originalArray[1].nested_field': 'nested value', + 'originalArray[1].tags[0]': 'tag_1', + 'originalArray[1].tags[1]': 'tag_2', + 'originalArray[1].tags[2]': 'tag_3', + 'originalArray[2].nested_field': 'nested value', + 'originalArray[2].tags[0]': 'tag_1', + 'originalArray[2].tags[1]': 'tag_2', + 'originalArray[2].tags[2]': 'tag_3', + 'originalArray[3].nested_field': 'nested value', + 'originalArray[3].tags[0]': 'tag_1', + 'originalArray[3].tags[1]': 'tag_2', + 'originalArray[3].tags[2]': 'tag_3', + 'originalArray[4].nested_field': 'nested value', + 'originalArray[4].tags[0]': 'tag_1', + 'originalArray[4].tags[1]': 'tag_2', + 'originalArray[4].tags[2]': 'tag_3', + 'originalArray[5].nested_field': 'nested value', + 'originalArray[5].tags[0]': 'tag_1', + 'originalArray[5].tags[1]': 'tag_2', + 'originalArray[5].tags[2]': 'tag_3', + 'originalArray[6].nested_field': 'nested value', + 'originalArray[6].tags[0]': 'tag_1', + 'originalArray[6].tags[1]': 'tag_2', + 'originalArray[6].tags[2]': 'tag_3', + 'originalArray[7].nested_field': 'nested value', + 'originalArray[7].tags[0]': 'tag_1', + 'originalArray[7].tags[1]': 'tag_2', + 'originalArray[7].tags[2]': 'tag_3', + 'originalArray[7].tags[3]': 'tag_1', + 'originalArray[7].tags[4]': 'tag_2', + 'originalArray[7].tags[5]': 'tag_3', + 'originalArray[8].nested_field': 'nested value', + 'originalArray[8].tags[0]': 'tag_1', + 'originalArray[8].tags[1]': 'tag_2', + 'originalArray[8].tags[2]': 'tag_3', + 'originalArray[8].tags[3]': 'tag_1', + 'originalArray[8].tags[4]': 'tag_2', + 'originalArray[8].tags[5]': 'tag_3', + 'products[0].brand': '', + 'products[0].category': 'Merch', + 'products[0].currency': 'GBP', + 'products[0].image_url': 'https://www.example.com/product/bacon-jam.jpg', + 'products[0].name': 'Food/Drink', + 'products[0].position': 1, + 'products[0].price': 3, + 'products[0].product_id': 'product-bacon-jam', + 'products[0].quantity': 2, + 'products[0].sku': 'sku-1', + 'products[0].typeOfProduct': 'Food', + 'products[0].url': 'https://www.example.com/product/bacon-jam', + 'products[0].value': 6, + 'products[0].variant': 'Extra topped', + 'products[1].brand': 'Levis', + 'products[1].category': 'Merch', + 'products[1].currency': 'GBP', + 'products[1].image_url': 'https://www.example.com/product/t-shirt.jpg', + 'products[1].name': 'T-Shirt', + 'products[1].position': 2, + 'products[1].price': 12.99, + 'products[1].product_id': 'product-t-shirt', + 'products[1].quantity': 1, + 'products[1].sku': 'sku-2', + 'products[1].typeOfProduct': 'Shirt', + 'products[1].url': 'https://www.example.com/product/t-shirt', + 'products[1].value': 12.99, + 'products[1].variant': 'White', + 'products[2].brand': 'Levis', + 'products[2].category': 'Merch', + 'products[2].coupon': 'APPARELSALE', + 'products[2].currency': 'GBP', + 'products[2].image_url': + 'https://www.example.com/product/offer-t-shirt.jpg', + 'products[2].name': 'T-Shirt-on-offer', + 'products[2].position': 1, + 'products[2].price': 12.99, + 'products[2].product_id': 'offer-t-shirt', + 'products[2].quantity': 1, + 'products[2].sku': 'sku-3', + 'products[2].typeOfProduct': 'Shirt', + 'products[2].url': 'https://www.example.com/product/offer-t-shirt', + 'products[2].value': 12.99, + 'products[2].variant': 'Black', + revenue: 31.98, + shipping: 4, + value: 31.98, + }, + app_version: '1.1.6', + current_time: '2020-10-16T13:40:12.791+05:30', + user_timezone_offset: 19800, + platform: 'web', + }, + ], + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: 'rudder123', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'moengage', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + timezone: 'Wrong/Timezone', + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + event: 'Order Completed', + integrations: { All: true }, + messageId: 'a0adfab9-baf7-4e09-a2ce-bbe2844c324a', + originalTimestamp: '2020-10-16T08:10:12.782Z', + properties: { + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + products: [ + { + brand: '', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/bacon-jam.jpg', + name: 'Food/Drink', + position: 1, + price: 3, + product_id: 'product-bacon-jam', + quantity: 2, + sku: 'sku-1', + typeOfProduct: 'Food', + url: 'https://www.example.com/product/bacon-jam', + value: 6, + variant: 'Extra topped', + }, + { + brand: 'Levis', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/t-shirt.jpg', + name: 'T-Shirt', + position: 2, + price: 12.99, + product_id: 'product-t-shirt', + quantity: 1, + sku: 'sku-2', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/t-shirt', + value: 12.99, + variant: 'White', + }, + { + brand: 'Levis', + category: 'Merch', + coupon: 'APPARELSALE', + currency: 'GBP', + image_url: 'https://www.example.com/product/offer-t-shirt.jpg', + name: 'T-Shirt-on-offer', + position: 1, + price: 12.99, + product_id: 'offer-t-shirt', + quantity: 1, + sku: 'sku-3', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/offer-t-shirt', + value: 12.99, + variant: 'Black', + }, + ], + revenue: 31.98, + shipping: 4, + value: 31.98, + }, + receivedAt: '2020-10-16T13:40:12.792+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:10:12.783Z', + timestamp: '2020-10-16T13:40:12.791+05:30', + type: 'track', + userId: 'rudder123', + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'US', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-01.moengage.com/v1/event/W0ZHNMPI2O4KHJ48ZILZACRA', + headers: { + 'Content-Type': 'application/json', + 'MOE-APPKEY': 'W0ZHNMPI2O4KHJ48ZILZACRA', + Authorization: 'Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5', + }, + params: {}, + body: { + JSON: { + customer_id: 'rudder123', + type: 'event', + actions: [ + { + action: 'Order Completed', + attributes: { + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + 'products[0].brand': '', + 'products[0].category': 'Merch', + 'products[0].currency': 'GBP', + 'products[0].image_url': 'https://www.example.com/product/bacon-jam.jpg', + 'products[0].name': 'Food/Drink', + 'products[0].position': 1, + 'products[0].price': 3, + 'products[0].product_id': 'product-bacon-jam', + 'products[0].quantity': 2, + 'products[0].sku': 'sku-1', + 'products[0].typeOfProduct': 'Food', + 'products[0].url': 'https://www.example.com/product/bacon-jam', + 'products[0].value': 6, + 'products[0].variant': 'Extra topped', + 'products[1].brand': 'Levis', + 'products[1].category': 'Merch', + 'products[1].currency': 'GBP', + 'products[1].image_url': 'https://www.example.com/product/t-shirt.jpg', + 'products[1].name': 'T-Shirt', + 'products[1].position': 2, + 'products[1].price': 12.99, + 'products[1].product_id': 'product-t-shirt', + 'products[1].quantity': 1, + 'products[1].sku': 'sku-2', + 'products[1].typeOfProduct': 'Shirt', + 'products[1].url': 'https://www.example.com/product/t-shirt', + 'products[1].value': 12.99, + 'products[1].variant': 'White', + 'products[2].brand': 'Levis', + 'products[2].category': 'Merch', + 'products[2].coupon': 'APPARELSALE', + 'products[2].currency': 'GBP', + 'products[2].image_url': + 'https://www.example.com/product/offer-t-shirt.jpg', + 'products[2].name': 'T-Shirt-on-offer', + 'products[2].position': 1, + 'products[2].price': 12.99, + 'products[2].product_id': 'offer-t-shirt', + 'products[2].quantity': 1, + 'products[2].sku': 'sku-3', + 'products[2].typeOfProduct': 'Shirt', + 'products[2].url': 'https://www.example.com/product/offer-t-shirt', + 'products[2].value': 12.99, + 'products[2].variant': 'Black', + revenue: 31.98, + shipping: 4, + value: 31.98, + }, + app_version: '1.1.6', + current_time: '2020-10-16T13:40:12.791+05:30', + platform: 'web', + }, + ], + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'moengage', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + token: 'desuhere', + type: 'ipados', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { All: true }, + messageId: '531e3507-1ef5-4a06-b83c-cb521ff34f0c', + originalTimestamp: '2020-10-16T08:53:29.386Z', + receivedAt: '2020-10-16T14:23:29.402+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:53:29.387Z', + timestamp: '2020-10-16T14:23:29.401+05:30', + type: 'identify', + userId: 'rudder123', + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'US', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + type: 'customer', + attributes: { + name: 'Rudder Test', + plan: 'Enterprise', + email: 'rudderTest@gmail.com', + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + 'company.id': 'abc123', + created_time: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + }, + customer_id: 'rudder123', + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + userId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + headers: { + 'MOE-APPKEY': 'W0ZHNMPI2O4KHJ48ZILZACRA', + 'Content-Type': 'application/json', + Authorization: 'Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5', + }, + version: '1', + endpoint: 'https://api-01.moengage.com/v1/customer/W0ZHNMPI2O4KHJ48ZILZACRA', + }, + statusCode: 200, + }, + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + JSON: { + type: 'device', + device_id: '7e32188a4dab669f', + attributes: { + model: 'AOSP on IA Emulator', + push_id: 'desuhere', + platform: 'iOS', + app_version: '1.1.6', + }, + customer_id: 'rudder123', + }, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + userId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + headers: { + 'MOE-APPKEY': 'W0ZHNMPI2O4KHJ48ZILZACRA', + 'Content-Type': 'application/json', + Authorization: 'Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5', + }, + version: '1', + endpoint: 'https://api-01.moengage.com/v1/device/W0ZHNMPI2O4KHJ48ZILZACRA', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'moengage', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + timezone: 'Wrong/Timezone', + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + token: 'desuhere', + type: 'ipados', + }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + event: 'Order Completed', + integrations: { All: true }, + messageId: 'a0adfab9-baf7-4e09-a2ce-bbe2844c324a', + originalTimestamp: '2020-10-16T08:10:12.782Z', + properties: { + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + products: [ + { + brand: '', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/bacon-jam.jpg', + name: 'Food/Drink', + position: 1, + price: 3, + product_id: 'product-bacon-jam', + quantity: 2, + sku: 'sku-1', + typeOfProduct: 'Food', + url: 'https://www.example.com/product/bacon-jam', + value: 6, + variant: 'Extra topped', + }, + { + brand: 'Levis', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/t-shirt.jpg', + name: 'T-Shirt', + position: 2, + price: 12.99, + product_id: 'product-t-shirt', + quantity: 1, + sku: 'sku-2', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/t-shirt', + value: 12.99, + variant: 'White', + }, + { + brand: 'Levis', + category: 'Merch', + coupon: 'APPARELSALE', + currency: 'GBP', + image_url: 'https://www.example.com/product/offer-t-shirt.jpg', + name: 'T-Shirt-on-offer', + position: 1, + price: 12.99, + product_id: 'offer-t-shirt', + quantity: 1, + sku: 'sku-3', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/offer-t-shirt', + value: 12.99, + variant: 'Black', + }, + ], + category: 'some category', + originalArray: [ + { nested_field: 'nested value', tags: ['tag_1', 'tag_2', 'tag_3'] }, + { nested_field: 'nested value', tags: ['tag_1'] }, + { nested_field: 'nested value' }, + ], + revenue: 31.98, + shipping: 4, + value: 31.98, + }, + receivedAt: '2020-10-16T13:40:12.792+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:10:12.783Z', + timestamp: '2020-10-16T13:40:12.791+05:30', + type: 'track', + userId: 'rudder123', + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'US', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-01.moengage.com/v1/event/W0ZHNMPI2O4KHJ48ZILZACRA', + headers: { + 'Content-Type': 'application/json', + 'MOE-APPKEY': 'W0ZHNMPI2O4KHJ48ZILZACRA', + Authorization: 'Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5', + }, + params: {}, + body: { + JSON: { + customer_id: 'rudder123', + device_id: '7e32188a4dab669f', + type: 'event', + actions: [ + { + action: 'Order Completed', + attributes: { + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + 'products[0].brand': '', + 'products[0].category': 'Merch', + 'products[0].currency': 'GBP', + 'products[0].image_url': 'https://www.example.com/product/bacon-jam.jpg', + 'products[0].name': 'Food/Drink', + 'products[0].position': 1, + 'products[0].price': 3, + 'products[0].product_id': 'product-bacon-jam', + 'products[0].quantity': 2, + 'products[0].sku': 'sku-1', + 'products[0].typeOfProduct': 'Food', + 'products[0].url': 'https://www.example.com/product/bacon-jam', + 'products[0].value': 6, + 'products[0].variant': 'Extra topped', + 'products[1].brand': 'Levis', + 'products[1].category': 'Merch', + 'products[1].currency': 'GBP', + 'products[1].image_url': 'https://www.example.com/product/t-shirt.jpg', + 'products[1].name': 'T-Shirt', + 'products[1].position': 2, + 'products[1].price': 12.99, + 'products[1].product_id': 'product-t-shirt', + 'products[1].quantity': 1, + 'products[1].sku': 'sku-2', + 'products[1].typeOfProduct': 'Shirt', + 'products[1].url': 'https://www.example.com/product/t-shirt', + 'products[1].value': 12.99, + 'products[1].variant': 'White', + 'products[2].brand': 'Levis', + 'products[2].category': 'Merch', + 'products[2].coupon': 'APPARELSALE', + 'products[2].currency': 'GBP', + 'products[2].image_url': + 'https://www.example.com/product/offer-t-shirt.jpg', + 'products[2].name': 'T-Shirt-on-offer', + 'products[2].position': 1, + 'products[2].price': 12.99, + 'products[2].product_id': 'offer-t-shirt', + 'products[2].quantity': 1, + 'products[2].sku': 'sku-3', + 'products[2].typeOfProduct': 'Shirt', + 'products[2].url': 'https://www.example.com/product/offer-t-shirt', + 'products[2].value': 12.99, + 'products[2].variant': 'Black', + revenue: 31.98, + shipping: 4, + value: 31.98, + 'originalArray[0].nested_field': 'nested value', + 'originalArray[0].tags[0]': 'tag_1', + 'originalArray[0].tags[1]': 'tag_2', + 'originalArray[0].tags[2]': 'tag_3', + 'originalArray[1].nested_field': 'nested value', + 'originalArray[1].tags[0]': 'tag_1', + 'originalArray[2].nested_field': 'nested value', + category: 'some category', + }, + platform: 'iOS', + app_version: '1.1.6', + current_time: '2020-10-16T13:40:12.791+05:30', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'moengage', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + timezone: 'Wrong/Timezone', + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.6' }, + locale: 'en-GB', + os: { name: '', version: '' }, + device: { + id: '7e32188a4dab669f', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + token: 'desuhere', + type: 'ipados', + }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { density: 2 }, + traits: { + company: { id: 'abc123' }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + event: 'Order Completed', + integrations: { All: true }, + messageId: 'a0adfab9-baf7-4e09-a2ce-bbe2844c324a', + originalTimestamp: '2020-10-16T08:10:12.782Z', + properties: { + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + products: [ + { + brand: '', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/bacon-jam.jpg', + name: 'Food/Drink', + position: 1, + price: 3, + product_id: 'product-bacon-jam', + quantity: 2, + sku: 'sku-1', + typeOfProduct: 'Food', + url: 'https://www.example.com/product/bacon-jam', + value: 6, + variant: 'Extra topped', + }, + { + brand: 'Levis', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/t-shirt.jpg', + name: 'T-Shirt', + position: 2, + price: 12.99, + product_id: 'product-t-shirt', + quantity: 1, + sku: 'sku-2', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/t-shirt', + value: 12.99, + variant: 'White', + }, + { + brand: 'Levis', + category: 'Merch', + coupon: 'APPARELSALE', + currency: 'GBP', + image_url: 'https://www.example.com/product/offer-t-shirt.jpg', + name: 'T-Shirt-on-offer', + position: 1, + price: 12.99, + product_id: 'offer-t-shirt', + quantity: 1, + sku: 'sku-3', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/offer-t-shirt', + value: 12.99, + variant: 'Black', + }, + ], + category: 'some category', + originalArray: { + nested_field: 'nested value', + tags: ['tag_1', 'tag_2', 'tag_3'], + key1: { + nested_field: 'nested value', + key11: 'val11', + key12: 'val12', + key13: { k1: 'v1', k2: 'v2' }, + key2: {}, + key3: [], + }, + }, + revenue: 31.98, + shipping: 4, + value: 31.98, + }, + receivedAt: '2020-10-16T13:40:12.792+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:10:12.783Z', + timestamp: '2020-10-16T13:40:12.791+05:30', + type: 'track', + userId: 'rudder123', + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'US', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-01.moengage.com/v1/event/W0ZHNMPI2O4KHJ48ZILZACRA', + headers: { + 'Content-Type': 'application/json', + 'MOE-APPKEY': 'W0ZHNMPI2O4KHJ48ZILZACRA', + Authorization: 'Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5', + }, + params: {}, + body: { + JSON: { + customer_id: 'rudder123', + device_id: '7e32188a4dab669f', + type: 'event', + actions: [ + { + action: 'Order Completed', + attributes: { + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + 'products[0].brand': '', + 'products[0].category': 'Merch', + 'products[0].currency': 'GBP', + 'products[0].image_url': 'https://www.example.com/product/bacon-jam.jpg', + 'products[0].name': 'Food/Drink', + 'products[0].position': 1, + 'products[0].price': 3, + 'products[0].product_id': 'product-bacon-jam', + 'products[0].quantity': 2, + 'products[0].sku': 'sku-1', + 'products[0].typeOfProduct': 'Food', + 'products[0].url': 'https://www.example.com/product/bacon-jam', + 'products[0].value': 6, + 'products[0].variant': 'Extra topped', + 'products[1].brand': 'Levis', + 'products[1].category': 'Merch', + 'products[1].currency': 'GBP', + 'products[1].image_url': 'https://www.example.com/product/t-shirt.jpg', + 'products[1].name': 'T-Shirt', + 'products[1].position': 2, + 'products[1].price': 12.99, + 'products[1].product_id': 'product-t-shirt', + 'products[1].quantity': 1, + 'products[1].sku': 'sku-2', + 'products[1].typeOfProduct': 'Shirt', + 'products[1].url': 'https://www.example.com/product/t-shirt', + 'products[1].value': 12.99, + 'products[1].variant': 'White', + 'products[2].brand': 'Levis', + 'products[2].category': 'Merch', + 'products[2].coupon': 'APPARELSALE', + 'products[2].currency': 'GBP', + 'products[2].image_url': + 'https://www.example.com/product/offer-t-shirt.jpg', + 'products[2].name': 'T-Shirt-on-offer', + 'products[2].position': 1, + 'products[2].price': 12.99, + 'products[2].product_id': 'offer-t-shirt', + 'products[2].quantity': 1, + 'products[2].sku': 'sku-3', + 'products[2].typeOfProduct': 'Shirt', + 'products[2].url': 'https://www.example.com/product/offer-t-shirt', + 'products[2].value': 12.99, + 'products[2].variant': 'Black', + revenue: 31.98, + shipping: 4, + value: 31.98, + 'originalArray.key1.key11': 'val11', + 'originalArray.key1.key12': 'val12', + 'originalArray.key1.key13.k1': 'v1', + 'originalArray.key1.key13.k2': 'v2', + 'originalArray.key1.nested_field': 'nested value', + 'originalArray.nested_field': 'nested value', + 'originalArray.tags[0]': 'tag_1', + 'originalArray.tags[1]': 'tag_2', + 'originalArray.tags[2]': 'tag_3', + 'originalArray.key1.key2': {}, + 'originalArray.key1.key3': [], + category: 'some category', + }, + platform: 'iOS', + app_version: '1.1.6', + current_time: '2020-10-16T13:40:12.791+05:30', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'moengage', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'adc7c2d0-0ebf-4593-b878-a0eb75932820', + originalTimestamp: '2023-03-09T00:09:53.235+05:30', + previousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + receivedAt: '2023-03-09T00:09:51.292+05:30', + request_ip: '[::1]', + rudderId: '1703da0d-2472-459c-9bf0-4e7b66b4673a', + sentAt: '2023-03-09T00:09:53.235+05:30', + timestamp: '2023-03-09T00:09:51.291+05:30', + type: 'alias', + userId: '12345', + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'US', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + merge_data: [ + { merged_user: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', retained_user: '12345' }, + ], + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + userId: '12345', + params: {}, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5', + }, + version: '1', + endpoint: + 'https://api-01.moengage.com/v1/customer/merge?app_id=W0ZHNMPI2O4KHJ48ZILZACRA', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'moengage', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'adc7c2d0-0ebf-4593-b878-a0eb75932820', + originalTimestamp: '2023-03-09T00:09:53.235+05:30', + receivedAt: '2023-03-09T00:09:51.292+05:30', + request_ip: '[::1]', + rudderId: '1703da0d-2472-459c-9bf0-4e7b66b4673a', + sentAt: '2023-03-09T00:09:53.235+05:30', + timestamp: '2023-03-09T00:09:51.291+05:30', + type: 'alias', + userId: '12345', + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'US', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from "previousId"', + statTags: { + destType: 'MOENGAGE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'moengage', + description: + 'when identify is sent without context, the event should not throw internal server error', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + event: 'identify', + sentAt: '2023-11-22T03:42:40.346Z', + userId: 'userId16', + channel: 'mobile', + rudderId: 'dummy-rudderId', + timestamp: '2023-11-22T03:42:31.470Z', + receivedAt: '2023-11-22T03:42:43.281Z', + request_ip: '114.122.233.48', + anonymousId: 'anon-dummyId-1', + integrations: { + All: true, + }, + originalTimestamp: '2023-11-22T03:42:28.535Z', + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { defaultConfig: ['apiId', 'apiKey', 'region'] }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'US', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + FORM: {}, + JSON: { + attributes: {}, + customer_id: 'userId16', + type: 'customer', + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://api-01.moengage.com/v1/customer/W0ZHNMPI2O4KHJ48ZILZACRA', + files: {}, + headers: { + Authorization: 'Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5', + 'Content-Type': 'application/json', + 'MOE-APPKEY': 'W0ZHNMPI2O4KHJ48ZILZACRA', + }, + method: 'POST', + params: {}, + type: 'REST', + userId: 'anon-dummyId-1', + version: '1', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/moengage/router/data.ts b/test/integrations/destinations/moengage/router/data.ts new file mode 100644 index 00000000000..a5664906e5e --- /dev/null +++ b/test/integrations/destinations/moengage/router/data.ts @@ -0,0 +1,480 @@ +export const data = [ + { + name: 'moengage', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + timezone: 'Asia/Tokyo', + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.6', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { + density: 2, + }, + traits: { + company: { + id: 'abc123', + }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + event: 'Order Completed', + integrations: { + All: true, + }, + messageId: 'a0adfab9-baf7-4e09-a2ce-bbe2844c324a', + originalTimestamp: '2020-10-16T08:10:12.782Z', + properties: { + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + products: [ + { + brand: '', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/bacon-jam.jpg', + name: 'Food/Drink', + position: 1, + price: 3, + product_id: 'product-bacon-jam', + quantity: 2, + sku: 'sku-1', + typeOfProduct: 'Food', + url: 'https://www.example.com/product/bacon-jam', + value: 6, + variant: 'Extra topped', + }, + { + brand: 'Levis', + category: 'Merch', + currency: 'GBP', + image_url: 'https://www.example.com/product/t-shirt.jpg', + name: 'T-Shirt', + position: 2, + price: 12.99, + product_id: 'product-t-shirt', + quantity: 1, + sku: 'sku-2', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/t-shirt', + value: 12.99, + variant: 'White', + }, + { + brand: 'Levis', + category: 'Merch', + coupon: 'APPARELSALE', + currency: 'GBP', + image_url: 'https://www.example.com/product/offer-t-shirt.jpg', + name: 'T-Shirt-on-offer', + position: 1, + price: 12.99, + product_id: 'offer-t-shirt', + quantity: 1, + sku: 'sku-3', + typeOfProduct: 'Shirt', + url: 'https://www.example.com/product/offer-t-shirt', + value: 12.99, + variant: 'Black', + }, + ], + revenue: 31.98, + shipping: 4, + value: 31.98, + }, + receivedAt: '2020-10-16T13:40:12.792+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:10:12.783Z', + timestamp: '2020-10-16T13:40:12.791+05:30', + type: 'track', + userId: 'rudder123', + }, + metadata: { + jobId: 1, + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { + defaultConfig: ['apiId', 'apiKey', 'region'], + }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'US', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + message: { + anonymousId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.6', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.6', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + page: { + path: '/testing/script-test.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost:3243/testing/script-test.html', + }, + screen: { + density: 2, + }, + traits: { + company: { + id: 'abc123', + }, + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', + plan: 'Enterprise', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.80 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'e108eb05-f6cd-4624-ba8c-568f2e2b3f92', + originalTimestamp: '2020-10-16T08:26:14.938Z', + receivedAt: '2020-10-16T13:56:14.945+05:30', + request_ip: '[::1]', + sentAt: '2020-10-16T08:26:14.939Z', + timestamp: '2020-10-16T13:56:14.944+05:30', + type: 'identify', + userId: 'rudder123', + }, + metadata: { + jobId: 2, + }, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { + defaultConfig: ['apiId', 'apiKey', 'region'], + }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'US', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + destType: 'moengage', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-01.moengage.com/v1/event/W0ZHNMPI2O4KHJ48ZILZACRA', + headers: { + 'Content-Type': 'application/json', + 'MOE-APPKEY': 'W0ZHNMPI2O4KHJ48ZILZACRA', + Authorization: 'Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5', + }, + params: {}, + body: { + JSON: { + customer_id: 'rudder123', + type: 'event', + actions: [ + { + action: 'Order Completed', + attributes: { + checkout_id: 'what is checkout id here??', + coupon: 'APPARELSALE', + currency: 'GBP', + order_id: 'transactionId', + 'products[0].brand': '', + 'products[0].category': 'Merch', + 'products[0].currency': 'GBP', + 'products[0].image_url': 'https://www.example.com/product/bacon-jam.jpg', + 'products[0].name': 'Food/Drink', + 'products[0].position': 1, + 'products[0].price': 3, + 'products[0].product_id': 'product-bacon-jam', + 'products[0].quantity': 2, + 'products[0].sku': 'sku-1', + 'products[0].typeOfProduct': 'Food', + 'products[0].url': 'https://www.example.com/product/bacon-jam', + 'products[0].value': 6, + 'products[0].variant': 'Extra topped', + 'products[1].brand': 'Levis', + 'products[1].category': 'Merch', + 'products[1].currency': 'GBP', + 'products[1].image_url': 'https://www.example.com/product/t-shirt.jpg', + 'products[1].name': 'T-Shirt', + 'products[1].position': 2, + 'products[1].price': 12.99, + 'products[1].product_id': 'product-t-shirt', + 'products[1].quantity': 1, + 'products[1].sku': 'sku-2', + 'products[1].typeOfProduct': 'Shirt', + 'products[1].url': 'https://www.example.com/product/t-shirt', + 'products[1].value': 12.99, + 'products[1].variant': 'White', + 'products[2].brand': 'Levis', + 'products[2].category': 'Merch', + 'products[2].coupon': 'APPARELSALE', + 'products[2].currency': 'GBP', + 'products[2].image_url': + 'https://www.example.com/product/offer-t-shirt.jpg', + 'products[2].name': 'T-Shirt-on-offer', + 'products[2].position': 1, + 'products[2].price': 12.99, + 'products[2].product_id': 'offer-t-shirt', + 'products[2].quantity': 1, + 'products[2].sku': 'sku-3', + 'products[2].typeOfProduct': 'Shirt', + 'products[2].url': 'https://www.example.com/product/offer-t-shirt', + 'products[2].value': 12.99, + 'products[2].variant': 'Black', + revenue: 31.98, + shipping: 4, + value: 31.98, + }, + platform: 'web', + app_version: '1.1.6', + current_time: '2020-10-16T13:40:12.791+05:30', + user_timezone_offset: 32400, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { + defaultConfig: ['apiId', 'apiKey', 'region'], + }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'US', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-01.moengage.com/v1/customer/W0ZHNMPI2O4KHJ48ZILZACRA', + headers: { + 'Content-Type': 'application/json', + 'MOE-APPKEY': 'W0ZHNMPI2O4KHJ48ZILZACRA', + Authorization: 'Basic VzBaSE5NUEkyTzRLSEo0OFpJTFpBQ1JBOmR1bW15QXBpS2V5', + }, + params: {}, + body: { + JSON: { + customer_id: 'rudder123', + type: 'customer', + attributes: { + name: 'Rudder Test', + email: 'rudderTest@gmail.com', + created_time: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + 'company.id': 'abc123', + createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', + plan: 'Enterprise', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '4eb021e9-a2af-4926-ae82-fe996d12f3c5', + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + ID: '1iuTZs6eEZVMm6GjRBe6bNShaL3', + Name: 'MoEngage Testing', + DestinationDefinition: { + ID: '1iu4802Tx27kNC4KNYYou6D8jzL', + Name: 'MOENGAGE', + DisplayName: 'MoEngage', + Config: { + destConfig: { + defaultConfig: ['apiId', 'apiKey', 'region'], + }, + excludeKeys: [], + includeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + }, + }, + Config: { + apiId: 'W0ZHNMPI2O4KHJ48ZILZACRA', + apiKey: 'dummyApiKey', + eventDelivery: false, + eventDeliveryTS: 1602757086384, + region: 'US', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/monetate/processor/data.ts b/test/integrations/destinations/monetate/processor/data.ts new file mode 100644 index 00000000000..2202ab2b258 --- /dev/null +++ b/test/integrations/destinations/monetate/processor/data.ts @@ -0,0 +1,2796 @@ +export const data = [ + { + name: 'monetate', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + screen: { height: 22, width: 11 }, + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + traits: { + address: { city: 'Dhaka', country: 'Bangladesh' }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + ip: '0.0.0.0', + }, + traits: { address: { city: 'Kol', country: 'Ind' } }, + event: 'Product Viewed', + integrations: { All: true }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { monetateId: '1234', product_id: 'prodId' }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + userId: 'newUser', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + monetateId: '1234', + events: [ + { eventType: 'monetate:context:IpAddress', ipAddress: '0.0.0.0' }, + { eventType: 'monetate:context:ScreenSize', height: 22, width: 11 }, + { + eventType: 'monetate:context:ProductDetailView', + products: [{ productId: 'prodId', sku: '' }], + }, + ], + customerId: 'newUser', + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + screen: { height: 22, width: 11 }, + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + traits: { + address: { city: 'Dhaka', country: 'Bangladesh' }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + ip: '0.0.0.0', + }, + traits: { address: { city: 'Kol', country: 'Ind' } }, + event: 'Product Viewed', + integrations: { All: true }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { monetateId: '1234' }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + userId: 'newUser', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: "'product_id' is a required field for Product Viewed", + statTags: { + destType: 'MONETATE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + screen: { height: 22, width: 11 }, + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + traits: { + address: { city: 'Dhaka', country: 'Bangladesh' }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + ip: '0.0.0.0', + }, + traits: { address: { city: 'Kol', country: 'Ind' } }, + event: 'Product List Viewed', + integrations: { All: true }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { monetateId: '1234', products: [{ product_id: 1 }, { product_id: 2 }] }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + userId: 'newUser', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + monetateId: '1234', + events: [ + { eventType: 'monetate:context:IpAddress', ipAddress: '0.0.0.0' }, + { eventType: 'monetate:context:ScreenSize', height: 22, width: 11 }, + { eventType: 'monetate:context:ProductThumbnailView', products: ['1', '2'] }, + ], + customerId: 'newUser', + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + screen: { height: 22, width: 11 }, + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + traits: { + address: { city: 'Dhaka', country: 'Bangladesh' }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + ip: '0.0.0.0', + }, + traits: { address: { city: 'Kol', country: 'Ind' } }, + event: 'Product Added', + integrations: { All: true }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + monetateId: '1234', + currency: 'INR', + product_id: 1, + quantity: 1, + cart_value: 250, + sku: 'sku', + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + userId: 'newUser', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + monetateId: '1234', + events: [ + { eventType: 'monetate:context:IpAddress', ipAddress: '0.0.0.0' }, + { eventType: 'monetate:context:ScreenSize', height: 22, width: 11 }, + { + eventType: 'monetate:context:Cart', + cartLines: [ + { pid: '1', sku: 'sku', quantity: 1, value: '250', currency: 'INR' }, + ], + }, + ], + customerId: 'newUser', + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + screen: { height: 22, width: 11 }, + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + traits: { + address: { city: 'Dhaka', country: 'Bangladesh' }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + ip: '0.0.0.0', + }, + traits: { address: { city: 'Kol', country: 'Ind' } }, + event: 'Signed Up', + integrations: { All: true }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { plan: 'trial', source: 'social' }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + userId: 'newUser', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + events: [ + { eventType: 'monetate:context:IpAddress', ipAddress: '0.0.0.0' }, + { eventType: 'monetate:context:ScreenSize', height: 22, width: 11 }, + ], + customerId: 'newUser', + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + screen: { height: 22, width: 11 }, + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + traits: { + address: { city: 'Dhaka', country: 'Bangladesh' }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + ip: '0.0.0.0', + }, + traits: { address: { city: 'Kol', country: 'Ind' } }, + name: 'Homepage', + integrations: { All: true }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + page: { + url: 'https://example.com/homepage', + path: '/homepage', + referrer: 'https://google.com', + }, + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'screen', + userId: 'newUser', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + events: [{ eventType: 'monetate:context:ScreenSize', height: 22, width: 11 }], + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + screen: { height: 22, width: 11 }, + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + traits: { + address: { city: 'Dhaka', country: 'Bangladesh' }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + ip: '0.0.0.0', + }, + traits: { address: { city: 'Kol', country: 'Ind' } }, + name: 'Homepage', + integrations: { All: true }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + page: { + url: 'https://example.com/homepage', + path: '/homepage', + referrer: 'https://google.com', + category: 'category', + }, + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'page', + userId: 'newUser', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + events: [ + { + eventType: 'monetate:context:PageView', + url: 'https://example.com/homepage', + path: '/homepage', + categories: ['category'], + }, + { eventType: 'monetate:context:Referrer', referrer: 'https://google.com' }, + ], + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + screen: { height: 22, width: 11 }, + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + traits: { + address: { city: 'Dhaka', country: 'Bangladesh' }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + page: { url: 'https://example.com/homepage', referrer: 'https://google.com' }, + ip: '0.0.0.0', + }, + traits: { address: { city: 'Kol', country: 'Ind' } }, + name: 'Homepage', + integrations: { All: true }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + path: '/homepage', + referrer: 'https://google.com', + url: 'https://example.com/homepage', + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'page', + userId: 'newUser', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + events: [ + { eventType: 'monetate:context:PageView', url: 'https://example.com/homepage' }, + { eventType: 'monetate:context:Referrer', referrer: 'https://google.com' }, + ], + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + screen: { height: 22, width: 11 }, + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + traits: { + address: { city: 'Dhaka', country: 'Bangladesh' }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + ip: '0.0.0.0', + }, + traits: { address: { city: 'Kol', country: 'Ind' } }, + event: 'Product Added', + integrations: { All: true }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + currency: 'INR', + product_id: 1, + quantity: 1, + cart_value: 250, + page: { + url: 'url', + path: 'path', + category: 'category', + breadcrumbs: 'breadcrumbs', + }, + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + userId: 'newUser', + }, + destination: { Config: { retailerShortName: 'retailer', apiKey: 'api-key' } }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + events: [ + { eventType: 'monetate:context:IpAddress', ipAddress: '0.0.0.0' }, + { + eventType: 'monetate:context:PageView', + url: 'url', + path: 'path', + categories: ['category'], + breadcrumbs: ['breadcrumbs'], + }, + { eventType: 'monetate:context:ScreenSize', height: 22, width: 11 }, + { + eventType: 'monetate:context:Cart', + cartLines: [ + { pid: '1', sku: '', quantity: 1, value: '250', currency: 'INR' }, + ], + }, + ], + customerId: 'newUser', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + sentAt: '2020-09-03T05:48:50.813Z', + userId: 'user101', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + title: 'MIxpanel Test', + search: '', + referrer: 'http://localhost:1111/', + }, + locale: 'en-GB', + screen: { density: 2.5 }, + traits: { city: 'Bangalore', name: 'Manashi', country: 'India' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.3' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + messageId: 'ab1bb13b-037e-4269-b7ce-79262fbfd964', + anonymousId: + 'RudderEncrypt:U2FsdGVkX19Iqki3tnJjjeUzFWOegZjPY3iYQOPJJSQaTUxTWedGBeEOyFE/hfddGtmaZJnf/HBtc/EDoRjKEA==', + integrations: { All: true }, + originalTimestamp: '2020-09-03T05:48:50.813Z', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type identify is not supported', + statTags: { + destType: 'MONETATE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Product Added', + sentAt: '2020-09-03T05:48:50.815Z', + userId: 'user101', + channel: 'web', + context: { + ip: '11.0.0.0', + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + title: 'MIxpanel Test', + search: '', + referrer: 'http://localhost:1111/', + }, + locale: 'en-GB', + screen: { density: 2.5 }, + traits: { city: 'Bangalore', name: 'Manashi', country: 'India' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.3' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + messageId: '0189ef26-5b64-47af-bd4a-f369155b74b0', + properties: { cart_value: 30, product_id: 'pp10001900011', user_actual_id: 12345 }, + anonymousId: 'anony11111111', + integrations: { All: true }, + originalTimestamp: '2020-09-03T05:48:50.814Z', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + "'product_id', 'quantity', 'cart_value' are required fields and 'quantity' should be a number for Product Added", + statTags: { + destType: 'MONETATE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + name: 'Home Page', + type: 'page', + sentAt: '2020-09-03T05:48:50.816Z', + userId: 'user101', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'https://google.com', + path: 'https://google.com', + title: 'MIxpanel Test', + search: '', + referrer: 'google', + }, + locale: 'en-GB', + screen: { density: 2.5 }, + traits: { city: 'Bangalore', name: 'Manashi', country: 'India' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.3' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + messageId: '1d263f9b-d5e9-4a3b-ae4a-403129ef9b7c', + properties: { + url: 'https://google.com', + name: 'Home Page', + path: 'https://google.com', + title: 'MIxpanel Test', + search: '', + referrer: 'google', + }, + anonymousId: + 'RudderEncrypt:U2FsdGVkX19Iqki3tnJjjeUzFWOegZjPY3iYQOPJJSQaTUxTWedGBeEOyFE/hfddGtmaZJnf/HBtc/EDoRjKEA==', + integrations: { All: true }, + originalTimestamp: '2020-09-03T05:48:50.816Z', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + events: [ + { + eventType: 'monetate:context:PageView', + url: 'https://google.com', + path: 'https://google.com', + }, + { eventType: 'monetate:context:Referrer', referrer: 'google' }, + ], + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + name: 'Login Page Name', + type: 'page', + sentAt: '2020-09-03T05:48:50.820Z', + userId: 'user202', + channel: 'web', + context: { + ip: '22.0.0.0', + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'https://geeks.com', + path: 'https://geeks.com', + title: 'LOGIN PAGE OF GEEKSFORGEEKS', + search: '', + referrer: 'geeksforgeeks', + }, + locale: 'en-GB', + screen: { density: 2.5 }, + traits: { email: 'rudder@mysite.com' }, + userId: 'user202', + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.3' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + category: 'Login Category', + messageId: '8073f133-14cc-4b6b-8043-9e5bb8d17698', + properties: { + url: 'https://geeks.com', + name: 'Login Page Name', + path: 'https://geeks.com', + title: 'LOGIN PAGE OF GEEKSFORGEEKS', + search: '', + category: 'Login Category', + referrer: 'geeksforgeeks', + }, + anonymousId: + 'RudderEncrypt:U2FsdGVkX19Iqki3tnJjjeUzFWOegZjPY3iYQOPJJSQaTUxTWedGBeEOyFE/hfddGtmaZJnf/HBtc/EDoRjKEA==', + integrations: { All: true }, + originalTimestamp: '2020-09-03T05:48:50.819Z', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + events: [ + { + eventType: 'monetate:context:PageView', + url: 'https://geeks.com', + path: 'https://geeks.com', + }, + { eventType: 'monetate:context:Referrer', referrer: 'geeksforgeeks' }, + ], + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Cart Viewed', + sentAt: '2020-09-03T05:48:50.820Z', + userId: 'user202', + channel: 'web', + context: { + ip: '22.0.0.0', + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + title: 'MIxpanel Test', + search: '', + referrer: 'http://localhost:1111/', + }, + locale: 'en-GB', + screen: { density: 2.5 }, + traits: { email: 'rudder@mysite.com' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.3' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + messageId: '21e78620-748a-4c1c-8570-385206fc61d6', + properties: { + products: [ + { + details: 'Apple iphone 7', + currency: 'INR', + quantity: '1', + product_id: 'p2022222', + }, + { price: '90', details: 'Apple iphone 8', quantity: '2', product_id: 'p201111' }, + ], + }, + anonymousId: 'anony222222222', + integrations: { All: true }, + originalTimestamp: '2020-09-03T05:48:50.820Z', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + "'quantity', 'price' and 'product_id' are required fields and 'quantity' and 'price' should be a number for all products for Cart Viewed", + statTags: { + destType: 'MONETATE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'cutom event track call', + sentAt: '2020-09-03T05:48:50.821Z', + userId: 'user202', + channel: 'web', + context: { + ip: '11.0.0.0', + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + title: 'MIxpanel Test', + search: '', + referrer: 'http://localhost:1111/', + }, + locale: 'en-GB', + screen: { density: 2.5 }, + traits: { email: 'rudder@mysite.com' }, + userId: 'user101', + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.3' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + messageId: 'be896347-8e93-4e11-8d0a-67f08b33d969', + properties: { details: 'this is custom trackl call' }, + anonymousId: + 'RudderEncrypt:U2FsdGVkX19Iqki3tnJjjeUzFWOegZjPY3iYQOPJJSQaTUxTWedGBeEOyFE/hfddGtmaZJnf/HBtc/EDoRjKEA==', + integrations: { All: true }, + originalTimestamp: '2020-09-03T05:48:50.821Z', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + events: [ + { eventType: 'monetate:context:IpAddress', ipAddress: '11.0.0.0' }, + { + eventType: 'monetate:context:PageView', + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + }, + { + eventType: 'monetate:context:UserAgent', + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + ], + customerId: 'user202', + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + name: 'My orders Page Name', + type: 'page', + sentAt: '2020-09-03T05:48:50.822Z', + userId: 'user202', + channel: 'web', + context: { + ip: '33.0.0.0', + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://localhost:1111/monetateRudder.html', + path: 'https://geeks.com', + title: 'MIxpanel Test', + search: '', + referrer: 'geeksforgeeks', + }, + locale: 'en-GB', + screen: { density: 2.5 }, + traits: { email: 'rudder@mysite.com' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.3' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + messageId: 'e142299a-e819-4590-b99f-9f74d30d6354', + properties: { + url: 'http://localhost:1111/monetateRudder.html', + name: 'My orders Page Name', + path: 'https://geeks.com', + title: 'MIxpanel Test', + search: '', + referrer: 'geeksforgeeks', + }, + anonymousId: 'anony33333333', + integrations: { All: true }, + originalTimestamp: '2020-09-03T05:48:50.821Z', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + events: [ + { + eventType: 'monetate:context:PageView', + url: 'http://localhost:1111/monetateRudder.html', + path: 'https://geeks.com', + }, + { eventType: 'monetate:context:Referrer', referrer: 'geeksforgeeks' }, + ], + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 16', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Product Viewed', + sentAt: '2020-09-03T05:48:50.823Z', + userId: 'user202', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + title: 'MIxpanel Test', + search: '', + referrer: 'http://localhost:1111/', + }, + locale: 'en-GB', + screen: { density: 2.5 }, + traits: { email: 'rudder@mysite.com' }, + userId: 'user101', + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.3' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + messageId: '5fc62a0d-835b-45c9-bfea-f2f5e57340db', + properties: { + sku: '123', + products: [{ product_id: 'p1234678' }], + product_id: 'P303333333', + }, + anonymousId: + 'RudderEncrypt:U2FsdGVkX19Iqki3tnJjjeUzFWOegZjPY3iYQOPJJSQaTUxTWedGBeEOyFE/hfddGtmaZJnf/HBtc/EDoRjKEA==', + integrations: { All: true }, + originalTimestamp: '2020-09-03T05:48:50.822Z', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + events: [ + { + eventType: 'monetate:context:PageView', + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + }, + { + eventType: 'monetate:context:UserAgent', + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + { + eventType: 'monetate:context:ProductDetailView', + products: [{ productId: 'P303333333', sku: '123' }], + }, + ], + customerId: 'user202', + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 17', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + name: 'ONly page name', + type: 'page', + sentAt: '2020-09-03T05:48:50.823Z', + userId: 'user202', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + title: 'MIxpanel Test', + search: '', + referrer: 'http://localhost:1111/', + }, + locale: 'en-GB', + screen: { density: 2.5 }, + traits: { email: 'rudder@mysite.com' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.3' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + messageId: '1aca7c68-148e-4ef3-a828-d89daf403632', + properties: { + url: 'http://localhost:1111/monetateRudder.html', + name: 'ONly page name', + path: '/monetateRudder.html', + title: 'MIxpanel Test', + search: '', + referrer: 'http://localhost:1111/', + }, + anonymousId: + 'RudderEncrypt:U2FsdGVkX19Iqki3tnJjjeUzFWOegZjPY3iYQOPJJSQaTUxTWedGBeEOyFE/hfddGtmaZJnf/HBtc/EDoRjKEA==', + integrations: { All: true }, + originalTimestamp: '2020-09-03T05:48:50.823Z', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + events: [ + { + eventType: 'monetate:context:PageView', + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + }, + { eventType: 'monetate:context:Referrer', referrer: 'http://localhost:1111/' }, + ], + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 18', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Order Completed', + sentAt: '2020-09-03T05:48:50.824Z', + userId: 'user202', + channel: 'web', + context: { + ip: '11.0.0.0', + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + title: 'MIxpanel Test', + search: '', + referrer: 'http://localhost:1111/', + }, + locale: 'en-GB', + screen: { density: 2.5 }, + traits: { email: 'rudder@mysite.com' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.3' }, + moneateId: 'Monetate10111111', + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + messageId: '19ef9a4e-fb49-42f2-8eba-b0bb7c934289', + properties: { + order_id: 'orderCompleted101', + products: [ + { + sku: 'sku 1 for order completed', + price: 8900, + currency: 'INR', + quantity: 1, + product_id: 'p2022222', + }, + { + sku: 'sku 2 for order completed', + price: 90, + quantity: 2, + product_id: 'p201111', + }, + ], + }, + anonymousId: 'anony11111111', + integrations: { All: true }, + originalTimestamp: '2020-09-03T05:48:50.824Z', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + events: [ + { eventType: 'monetate:context:IpAddress', ipAddress: '11.0.0.0' }, + { + eventType: 'monetate:context:PageView', + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + }, + { + eventType: 'monetate:context:UserAgent', + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + { + eventType: 'monetate:context:Purchase', + purchaseId: 'orderCompleted101', + purchaseLines: [ + { + pid: 'p2022222', + sku: 'sku 1 for order completed', + quantity: 1, + value: '8900.00', + currency: 'INR', + }, + { + pid: 'p201111', + sku: 'sku 2 for order completed', + quantity: 2, + value: '180.00', + currency: 'USD', + }, + ], + }, + ], + customerId: 'user202', + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 19', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Order Completed', + sentAt: '2020-09-03T05:48:50.824Z', + channel: 'web', + context: { + ip: '11.0.0.0', + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + title: 'MIxpanel Test', + search: '', + referrer: 'http://localhost:1111/', + }, + locale: 'en-GB', + screen: { density: 2.5 }, + traits: { email: 'rudder@mysite.com' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.3' }, + moneateId: 'Monetate10111111', + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + messageId: '19ef9a4e-fb49-42f2-8eba-b0bb7c934289', + properties: { + order_id: 'orderCompleted101', + products: [ + { + sku: 'sku 1 for order completed', + price: 8900, + currency: 'INR', + quantity: 1, + product_id: 'p2022222', + }, + { + sku: 'sku 2 for order completed', + price: 90, + quantity: 2, + product_id: 'p201111', + }, + ], + }, + anonymousId: 'anony11111111', + integrations: { All: true }, + originalTimestamp: '2020-09-03T05:48:50.824Z', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + events: [ + { eventType: 'monetate:context:IpAddress', ipAddress: '11.0.0.0' }, + { + eventType: 'monetate:context:PageView', + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + }, + { + eventType: 'monetate:context:UserAgent', + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + { + eventType: 'monetate:context:Purchase', + purchaseId: 'orderCompleted101', + purchaseLines: [ + { + pid: 'p2022222', + sku: 'sku 1 for order completed', + quantity: 1, + value: '8900.00', + currency: 'INR', + }, + { + pid: 'p201111', + sku: 'sku 2 for order completed', + quantity: 2, + value: '180.00', + currency: 'USD', + }, + ], + }, + ], + deviceId: 'anony11111111', + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 20', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + name: 'ip check page name', + type: 'page', + sentAt: '2020-09-03T05:48:50.825Z', + userId: 'user202', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'https://facebook.com', + path: '/monetateRudder.html', + title: 'MIxpanel Test', + search: '', + referrer: 'http://localhost:1111/', + }, + locale: 'en-GB', + screen: { density: 2.5 }, + traits: { city: 'Sydney', phone: '909077777', country: 'Australia' }, + userId: 'user606', + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.3' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + category: 'ip check page category', + messageId: 'd6aeaf93-d28b-4a60-b8af-2376bebc4094', + properties: { + url: 'https://facebook.com', + name: 'ip check page name', + path: '/monetateRudder.html', + title: 'MIxpanel Test', + search: '', + category: 'ip check page category', + referrer: 'http://localhost:1111/', + }, + anonymousId: + 'RudderEncrypt:U2FsdGVkX19Iqki3tnJjjeUzFWOegZjPY3iYQOPJJSQaTUxTWedGBeEOyFE/hfddGtmaZJnf/HBtc/EDoRjKEA==', + integrations: { All: true }, + originalTimestamp: '2020-09-03T05:48:50.825Z', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + events: [ + { + eventType: 'monetate:context:PageView', + url: 'https://facebook.com', + path: '/monetateRudder.html', + }, + { eventType: 'monetate:context:Referrer', referrer: 'http://localhost:1111/' }, + ], + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 21', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + sentAt: '2020-09-04T08:59:41.568Z', + userId: 'user202', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + title: 'MIxpanel Test', + search: '', + referrer: 'http://localhost:1111/', + }, + locale: 'en-GB', + screen: { density: 2.5 }, + traits: { + city: 'Bangalore', + name: 'Manashi', + email: 'rudder@mysite.com', + country: 'India', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.3' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + messageId: '6debe993-9b1e-40ca-b2de-9054e86bcdd0', + anonymousId: + 'RudderEncrypt:U2FsdGVkX19Iqki3tnJjjeUzFWOegZjPY3iYQOPJJSQaTUxTWedGBeEOyFE/hfddGtmaZJnf/HBtc/EDoRjKEA==', + integrations: { All: true }, + originalTimestamp: '2020-09-04T08:59:41.567Z', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type identify is not supported', + statTags: { + destType: 'MONETATE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 22', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + sentAt: '2020-09-04T08:59:41.568Z', + userId: 'user202', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + title: 'MIxpanel Test', + search: '', + referrer: 'http://localhost:1111/', + }, + locale: 'en-GB', + screen: { density: 2.5 }, + traits: { + city: 'Bangalore', + name: 'Manashi', + email: 'rudder@mysite.com', + country: 'India', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.3' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + messageId: '6debe993-9b1e-40ca-b2de-9054e86bcdd0', + anonymousId: + 'RudderEncrypt:U2FsdGVkX19Iqki3tnJjjeUzFWOegZjPY3iYQOPJJSQaTUxTWedGBeEOyFE/hfddGtmaZJnf/HBtc/EDoRjKEA==', + integrations: { All: true }, + originalTimestamp: '2020-09-04T08:59:41.567Z', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type is required', + statTags: { + destType: 'MONETATE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 23', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + screen: { density: 2 }, + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + traits: { + address: { city: 'Dhaka', country: 'Bangladesh' }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + ip: '0.0.0.0', + }, + traits: { address: { city: 'Kol', country: 'Ind' } }, + name: 'Homepage', + integrations: { All: true }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + page: { + url: 'https://example.com/homepage', + path: '/homepage', + referrer: 'https://google.com', + }, + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'screen', + userId: 'newUser', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { JSON: { events: [], channel: 'channel' }, XML: {}, JSON_ARRAY: {}, FORM: {} }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 24', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Order Completed', + sentAt: '2020-09-03T05:48:50.824Z', + userId: 'user202', + channel: 'web', + context: { + ip: '11.0.0.0', + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + title: 'MIxpanel Test', + search: '', + referrer: 'http://localhost:1111/', + }, + locale: 'en-GB', + screen: { density: 2.5 }, + traits: { email: 'rudder@mysite.com' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.3' }, + moneateId: 'Monetate10111111', + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + messageId: '19ef9a4e-fb49-42f2-8eba-b0bb7c934289', + properties: { + order_id: 'orderCompleted101', + products: [ + { + sku: 'sku 1 for order completed', + price: '8900', + currency: 'INR', + quantity: '1', + }, + { + sku: 'sku 2 for order completed', + price: '90', + quantity: '2', + product_id: 'p201111', + }, + ], + }, + anonymousId: 'anony11111111', + integrations: { All: true }, + originalTimestamp: '2020-09-03T05:48:50.824Z', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + "'quantity', 'price' and 'product_id' are required fields and 'quantity' and 'price' should be a number for all products for Order Completed", + statTags: { + destType: 'MONETATE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 25', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Cart Viewed', + sentAt: '2020-09-03T05:48:50.820Z', + userId: 'user202', + channel: 'web', + context: { + ip: '22.0.0.0', + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + title: 'MIxpanel Test', + search: '', + referrer: 'http://localhost:1111/', + }, + locale: 'en-GB', + screen: { density: 2.5 }, + traits: { email: 'rudder@mysite.com' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.3' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + messageId: '21e78620-748a-4c1c-8570-385206fc61d6', + properties: { + products: [ + { + details: 'Apple iphone 7', + currency: 'INR', + quantity: 1, + price: 2345, + product_id: 'p2022222', + }, + { price: 90, details: 'Apple iphone 8', quantity: 2, product_id: 'p201111' }, + ], + }, + anonymousId: 'anony222222222', + integrations: { All: true }, + originalTimestamp: '2020-09-03T05:48:50.820Z', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + events: [ + { eventType: 'monetate:context:IpAddress', ipAddress: '22.0.0.0' }, + { + eventType: 'monetate:context:PageView', + url: 'http://localhost:1111/monetateRudder.html', + path: '/monetateRudder.html', + }, + { + eventType: 'monetate:context:UserAgent', + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', + }, + { + eventType: 'monetate:context:Cart', + cartLines: [ + { + pid: 'p2022222', + sku: '', + quantity: 1, + value: '2345.00', + currency: 'INR', + }, + { pid: 'p201111', sku: '', quantity: 2, value: '180.00', currency: 'USD' }, + ], + }, + ], + customerId: 'user202', + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 26', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + screen: { height: 22, width: 11 }, + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + traits: { + address: { city: 'Dhaka', country: 'Bangladesh' }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + ip: '0.0.0.0', + }, + traits: { address: { city: 'Kol', country: 'Ind' } }, + event: 'Product Added', + integrations: { All: true }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + monetateId: '1234', + currency: 'INR', + quantity: 1, + cart_value: 250, + sku: 'sku', + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + userId: 'newUser', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + "'product_id', 'quantity', 'cart_value' are required fields and 'quantity' should be a number for Product Added", + statTags: { + destType: 'MONETATE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 27', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + screen: { height: 22, width: 11 }, + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + traits: { + address: { city: 'Dhaka', country: 'Bangladesh' }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + ip: '0.0.0.0', + }, + traits: { address: { city: 'Kol', country: 'Ind' } }, + event: 'Product List Viewed', + integrations: { All: true }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { monetateId: '1234', products: [{}, { product_id: 2 }] }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + userId: 'newUser', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: "'product_id' is a required field for all products for Product List Viewed", + statTags: { + destType: 'MONETATE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 28', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + screen: { height: 22, width: 11 }, + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + traits: { + address: { city: 'Dhaka', country: 'Bangladesh' }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + ip: '0.0.0.0', + }, + traits: { address: { city: 'Kol', country: 'Ind' } }, + event: 'Product Viewed', + integrations: { All: true }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { monetateId: '1234' }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + userId: 'newUser', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: "'product_id' is a required field for Product Viewed", + statTags: { + destType: 'MONETATE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'monetate', + description: 'Test 29', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + screen: { height: 22, width: 11 }, + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { carrier: 'Banglalink' }, + os: { name: 'android', version: '8.1.0' }, + traits: { + address: { city: 'Dhaka', country: 'Bangladesh' }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + ip: '0.0.0.0', + }, + traits: { address: { city: 'Kol', country: 'Ind' } }, + event: 'Product List Viewed', + integrations: { All: true }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { monetateId: '1234', products: { product_id: '1' } }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + userId: 'newUser', + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: "'products' missing or not array in Product List Viewed", + statTags: { + destType: 'MONETATE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/monetate/router/data.ts b/test/integrations/destinations/monetate/router/data.ts new file mode 100644 index 00000000000..09a7f8073d3 --- /dev/null +++ b/test/integrations/destinations/monetate/router/data.ts @@ -0,0 +1,264 @@ +export const data = [ + { + name: 'monetate', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + screen: { + height: 22, + width: 11, + }, + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + ip: '0.0.0.0', + }, + traits: { + address: { + city: 'Kol', + country: 'Ind', + }, + }, + event: 'Product Viewed', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + monetateId: '1234', + product_id: 'prodId', + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + userId: 'newUser', + }, + metadata: { + jobId: 1, + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + screen: { + height: 22, + width: 11, + }, + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + ip: '0.0.0.0', + }, + traits: { + address: { + city: 'Kol', + country: 'Ind', + }, + }, + event: 'Product List Viewed', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + monetateId: '1234', + products: [ + { + product_id: 1, + }, + { + product_id: 2, + }, + ], + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + userId: 'newUser', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + destType: 'monetate', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + monetateId: '1234', + events: [ + { + eventType: 'monetate:context:IpAddress', + ipAddress: '0.0.0.0', + }, + { + eventType: 'monetate:context:ScreenSize', + height: 22, + width: 11, + }, + { + eventType: 'monetate:context:ProductDetailView', + products: [ + { + productId: 'prodId', + sku: '', + }, + ], + }, + ], + customerId: 'newUser', + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://engine.monetate.net/api/engine/v1/decide/retailer', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + monetateId: '1234', + events: [ + { + eventType: 'monetate:context:IpAddress', + ipAddress: '0.0.0.0', + }, + { + eventType: 'monetate:context:ScreenSize', + height: 22, + width: 11, + }, + { + eventType: 'monetate:context:ProductThumbnailView', + products: ['1', '2'], + }, + ], + customerId: 'newUser', + channel: 'channel', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + monetateChannel: 'channel', + retailerShortName: 'retailer', + apiKey: 'api-key', + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/mp/common.ts b/test/integrations/destinations/mp/common.ts new file mode 100644 index 00000000000..76ed25a760d --- /dev/null +++ b/test/integrations/destinations/mp/common.ts @@ -0,0 +1,61 @@ +const defaultMockFns = () => { + jest.spyOn(Date, 'now').mockImplementation(() => new Date(Date.UTC(2020, 0, 25)).valueOf()); +}; + +const sampleDestination = { + Config: { + apiKey: 'dummyApiKey', + token: 'dummyApiKey', + prefixProperties: true, + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Mixpanel', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'MP', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'MP', + Transformations: [], +}; + +const destinationWithSetOnceProperty = { + Config: { + apiSecret: 'dummySecret', + dataResidency: 'us', + identityMergeApi: 'simplified', + setOnceProperties: [ + { + property: 'nationality', + }, + { + property: 'firstName', + }, + { + property: 'address.city', + }, + ], + superProperties: [ + { + property: 'random', + }, + ], + token: 'dummyToken', + useNativeSDK: false, + useNewMapping: false, + userDeletionApi: 'engage', + whitelistedEvents: [], + }, + DestinationDefinition: { + DisplayName: 'Kiss Metrics', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'MIXPANEL', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Kiss Metrics', + Transformations: [], +}; + +export { sampleDestination, defaultMockFns, destinationWithSetOnceProperty }; diff --git a/test/integrations/destinations/mp/deleteUsers/data.ts b/test/integrations/destinations/mp/deleteUsers/data.ts new file mode 100644 index 00000000000..0f469b508fa --- /dev/null +++ b/test/integrations/destinations/mp/deleteUsers/data.ts @@ -0,0 +1,3281 @@ +export const data = [ + { + name: 'mp', + description: 'Test 0', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'MP', + userAttributes: [ + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + ], + config: { + token: 'testToken', + prefixProperties: true, + useNativeSDK: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed for `delete profile` api', + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 1', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'MP', + userAttributes: [ + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + ], + config: { + token: 'testToken', + prefixProperties: true, + useNativeSDK: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 2', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'MP', + userAttributes: [ + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + ], + config: { + apiKey: 'dummyApiKey', + prefixProperties: true, + useNativeSDK: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'API Token is a required field for user deletion', + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 3', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'MP', + userAttributes: [ + { + name: 'test1', + }, + ], + config: { + token: 'testToken', + prefixProperties: true, + useNativeSDK: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 4', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'MP', + userAttributes: [ + { + userId: 'rudder1', + }, + { + userId: 'rudder2', + }, + { + userId: 'rudder3', + }, + ], + config: { + token: 'test_token', + prefixProperties: true, + useNativeSDK: false, + userDeletionApi: 'task', + gdprApiToken: 'test_gdpr_token', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 5', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'MP', + userAttributes: [ + { + userId: 'rudder1', + }, + ], + config: { + token: 'test_token', + prefixProperties: true, + useNativeSDK: false, + userDeletionApi: 'task', + dataResidency: 'eu', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'GDPR API Token is a required field for creating deletion task in mixpanel', + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 6', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'MP', + userAttributes: [ + { + userId: 'rudder1', + }, + ], + config: { + token: 'test_token', + prefixProperties: true, + useNativeSDK: false, + dataResidency: 'eu', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/mp/network.ts b/test/integrations/destinations/mp/network.ts new file mode 100644 index 00000000000..cc5e265f43f --- /dev/null +++ b/test/integrations/destinations/mp/network.ts @@ -0,0 +1,1168 @@ +const deleteNwData = [ + { + httpReq: { + method: 'post', + + url: 'https://api.mixpanel.com/engage', + data: [ + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + ], + headers: { + 'Content-Type': 'application/json', + Accept: 'text/plain', + }, + }, + httpRes: { + data: { + code: 400, + message: 'Bad Req', + status: 'Fail Case', + }, + status: 400, + }, + }, + { + httpReq: { + method: 'post', + + url: 'https://api.mixpanel.com/engage', + data: [ + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + ], + headers: { + 'Content-Type': 'application/json', + Accept: 'text/plain', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': '1', + }, + }, + }, + { + httpReq: { + method: 'post', + + url: 'https://api.mixpanel.com/engage', + data: [ + { + $distinct_id: 'rudder1', + $token: 'dummyAccessToken', + $delete: null, + $ignore_alias: true, + }, + { + $distinct_id: 'rudder1', + $token: 'dummyAccessToken', + $delete: null, + $ignore_alias: true, + }, + ], + headers: { + 'Content-Type': 'application/json', + Accept: 'text/plain', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': '1', + }, + }, + }, + { + httpReq: { + method: 'post', + + url: 'https://mixpanel.com/api/app/data-deletions/v3.0/?token=test_token', + data: { + distinct_ids: ['rudder1', 'rudder2', 'rudder3'], + compliance_type: 'CCPA', + }, + headers: { + 'Content-Type': 'application/json', + + Authorization: 'Bearer test_gdpr_token', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': '1', + }, + }, + }, + { + httpReq: { + method: 'post', + + url: 'https://mixpanel.com/api/app/data-deletions/v3.0/?token=test_token', + data: { + distinct_ids: ['rudder2'], + compliance_type: 'GDPR', + }, + headers: { + 'Content-Type': 'application/json', + Accept: 'text/plain', + Authorization: 'Bearer test_gdpr_token', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': '1', + }, + }, + }, + { + httpReq: { + method: 'post', + + url: 'https://api-eu.mixpanel.com/engage', + data: [ + { + $distinct_id: 'rudder1', + $token: 'dummyAccessToken', + $delete: null, + $ignore_alias: true, + }, + ], + headers: { + 'Content-Type': 'application/json', + Accept: 'text/plain', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': '1', + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://api-eu.mixpanel.com/engage', + data: [{ $distinct_id: 'rudder1', $token: 'test_token', $delete: null, $ignore_alias: true }], + headers: { + 'Content-Type': 'application/json', + Accept: 'text/plain', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': '1', + }, + }, + }, +]; +export const networkCallsData = [...deleteNwData]; diff --git a/test/integrations/destinations/mp/processor/data.ts b/test/integrations/destinations/mp/processor/data.ts new file mode 100644 index 00000000000..a6ba51ee781 --- /dev/null +++ b/test/integrations/destinations/mp/processor/data.ts @@ -0,0 +1,6124 @@ +import { overrideDestination } from '../../../testUtils'; +import { sampleDestination, defaultMockFns, destinationWithSetOnceProperty } from '../common'; + +export const data = [ + { + name: 'mp', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { token: 'dummyApiKey' }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + name: 'Contact Us', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: {}, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + campaign: { + name: 'test_name', + source: 'rudder', + medium: 'test_medium', + term: 'test_tem', + content: 'test_content', + test: 'test', + keyword: 'test_keyword', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originalTimestamp: '2020-01-24T06:29:02.358Z', + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.359Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'page', + userId: 'hjikl', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/track/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"Loaded a Page","properties":{"ip":"0.0.0.0","campaign_id":"test_name","$user_id":"hjikl","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"hjikl","time":1579847342,"utm_campaign":"test_name","utm_source":"rudder","utm_medium":"test_medium","utm_term":"test_tem","utm_content":"test_content","utm_test":"test","utm_keyword":"test_keyword","name":"Contact Us","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'hjikl', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: sampleDestination, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + name: 'Contact Us', + category: 'Contact', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: {}, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originalTimestamp: '2020-01-24T06:29:02.358Z', + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.359Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'page', + userId: 'hjikl', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/track/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"Loaded a Page","properties":{"ip":"0.0.0.0","$user_id":"hjikl","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"hjikl","time":1579847342,"name":"Contact Us","category":"Contact","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'hjikl', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: sampleDestination, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'mobile', + name: 'Contact Us', + properties: { category: 'communication' }, + context: { + app: { + build: '1.0.0', + name: 'RudderLabs Android SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originalTimestamp: '2020-01-24T06:29:02.358Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.359Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'screen', + userId: 'hjikl', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/track/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"Loaded a Screen","properties":{"category":"communication","ip":"0.0.0.0","$user_id":"hjikl","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"hjikl","time":1579847342,"name":"Contact Us"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'hjikl', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: sampleDestination, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'mobile', + name: 'Contact Us', + category: 'Contact', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs Android SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originalTimestamp: '2020-01-24T06:29:02.358Z', + properties: { + path: '/tests/html/index2.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index2.html', + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.359Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'screen', + userId: 'hjiklmk', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/track/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"Loaded a Screen","properties":{"path":"/tests/html/index2.html","referrer":"","search":"","title":"","url":"http://localhost/tests/html/index2.html","ip":"0.0.0.0","$user_id":"hjiklmk","$screen_dpi":2,"mp_lib":"RudderLabs Android SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"hjiklmk","time":1579847342,"name":"Contact Us","category":"Contact"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'hjiklmk', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: sampleDestination, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'mobile', + name: 'Contact Us', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs Android SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originalTimestamp: '2020-01-24T06:29:02.358Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.359Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'screen', + userId: 'hjikl', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/track/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"Loaded a Screen","properties":{"ip":"0.0.0.0","$user_id":"hjikl","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"hjikl","time":1579847342,"name":"Contact Us"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'hjikl', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { useNewMapping: true }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstName: 'Mickey', + lastName: 'Mouse', + createdAt: '2020-01-23T08:54:02.362Z', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + propIncrements: [ + { property: 'counter' }, + { property: 'item_purchased' }, + { property: 'number_of_logins' }, + ], + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstName: 'Mickey', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + campaign: { + name: 'test_name', + source: 'rudder', + medium: 'test_medium', + term: 'test_tem', + content: 'test_content', + test: 'test', + keyword: 'test_keyword', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: 'test revenue MIXPANEL', + integrations: { All: true }, + messageId: 'a6a0ad5a-bd26-4f19-8f75-38484e580fc7', + originalTimestamp: '2020-01-24T06:29:02.364Z', + properties: { + currency: 'USD', + revenue: 45.89, + counter: 1, + item_purchased: '2', + number_of_logins: '', + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53710', + sentAt: '2020-01-24T06:29:02.364Z', + timestamp: '2020-01-24T11:59:02.403+05:30', + type: 'track', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$append":{"$transactions":{"$time":"2020-01-24T06:29:02.403Z","$amount":45.89}},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$add":{"counter":1,"item_purchased":"2"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/track/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"test revenue MIXPANEL","properties":{"currency":"USD","revenue":45.89,"counter":1,"item_purchased":"2","number_of_logins":"","city":"Disney","country":"USA","email":"mickey@disney.com","firstName":"Mickey","ip":"0.0.0.0","campaign_id":"test_name","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"a6a0ad5a-bd26-4f19-8f75-38484e580fc7","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342,"utm_campaign":"test_name","utm_source":"rudder","utm_medium":"test_medium","utm_term":"test_tem","utm_content":"test_content","utm_test":"test","utm_keyword":"test_keyword","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: sampleDestination, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstname: 'Mickey', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: '79313729-7fe5-4204-963a-dc46f4205e4e', + originalTimestamp: '2020-01-24T06:29:02.366Z', + previousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53711', + sentAt: '2020-01-24T06:29:02.366Z', + timestamp: '2020-01-24T11:59:02.403+05:30', + type: 'alias', + userId: '1234abc', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/track/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"$create_alias","properties":{"distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","alias":"1234abc","token":"dummyApiKey"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '1234abc', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + propIncrements: [{ property: '' }], + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstName: 'Mickey', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: 'KM Order Completed', + integrations: { All: true }, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + originalTimestamp: '2020-01-24T06:29:02.367Z', + properties: { + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + coupon: 'hasbros', + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + products: [ + { + category: 'Games', + image_url: 'https:///www.example.com/product/path.jpg', + name: 'Monopoly: 3rd Edition', + price: 19, + product_id: '507f1f77bcf86cd799439011', + quantity: 1, + sku: '45790-32', + url: 'https://www.example.com/product/path', + }, + { + category: 'Games', + name: 'Uno Card Game', + price: 3, + product_id: '505bd76785ebb509fc183733', + quantity: 2, + sku: '46493-32', + }, + ], + revenue: 25, + shipping: 3, + subtotal: 22.5, + tax: 2, + total: 27.5, + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53712', + sentAt: '2020-01-24T06:29:02.368Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'track', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$append":{"$transactions":{"$time":"2020-01-24T06:29:02.402Z","$amount":25}},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/track/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"KM Order Completed","properties":{"affiliation":"Google Store","checkout_id":"fksdjfsdjfisjf9sdfjsd9f","coupon":"hasbros","currency":"USD","discount":2.5,"order_id":"50314b8e9bcf000000000000","products":[{"category":"Games","image_url":"https:///www.example.com/product/path.jpg","name":"Monopoly: 3rd Edition","price":19,"product_id":"507f1f77bcf86cd799439011","quantity":1,"sku":"45790-32","url":"https://www.example.com/product/path"},{"category":"Games","name":"Uno Card Game","price":3,"product_id":"505bd76785ebb509fc183733","quantity":2,"sku":"46493-32"}],"revenue":25,"shipping":3,"subtotal":22.5,"tax":2,"total":27.5,"city":"Disney","country":"USA","email":"mickey@disney.com","firstName":"Mickey","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342,"$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: sampleDestination, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + first_name: 'Mickey', + lastName: 'Mouse', + name: 'Mickey Mouse', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: 'KM Order Completed', + integrations: { All: true }, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + originalTimestamp: '2020-01-24T06:29:02.367Z', + properties: { + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + coupon: 'hasbros', + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + revenue: 34, + key_1: { + child_key1: 'child_value1', + child_key2: { child_key21: 'child_value21', child_key22: 'child_value22' }, + }, + products: [ + { + category: 'Games', + image_url: 'https:///www.example.com/product/path.jpg', + name: 'Monopoly: 3rd Edition', + price: 19, + product_id: '507f1f77bcf86cd799439011', + quantity: 1, + sku: '45790-32', + url: 'https://www.example.com/product/path', + }, + { + category: 'Games', + name: 'Uno Card Game', + price: 3, + product_id: '505bd76785ebb509fc183733', + quantity: 2, + sku: '46493-32', + }, + ], + shipping: 3, + subtotal: 22.5, + tax: 2, + total: 27.5, + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53712', + sentAt: '2020-01-24T06:29:02.368Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'track', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$append":{"$transactions":{"$time":"2020-01-24T06:29:02.402Z","$amount":34}},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/track/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"KM Order Completed","properties":{"affiliation":"Google Store","checkout_id":"fksdjfsdjfisjf9sdfjsd9f","coupon":"hasbros","currency":"USD","discount":2.5,"order_id":"50314b8e9bcf000000000000","revenue":34,"key_1":{"child_key1":"child_value1","child_key2":{"child_key21":"child_value21","child_key22":"child_value22"}},"products":[{"category":"Games","image_url":"https:///www.example.com/product/path.jpg","name":"Monopoly: 3rd Edition","price":19,"product_id":"507f1f77bcf86cd799439011","quantity":1,"sku":"45790-32","url":"https://www.example.com/product/path"},{"category":"Games","name":"Uno Card Game","price":3,"product_id":"505bd76785ebb509fc183733","quantity":2,"sku":"46493-32"}],"shipping":3,"subtotal":22.5,"tax":2,"total":27.5,"city":"Disney","country":"USA","email":"mickey@disney.com","first_name":"Mickey","lastName":"Mouse","name":"Mickey Mouse","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342,"$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: sampleDestination, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstName: 'Mickey', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: ' new Order Completed totally', + integrations: { All: true }, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + originalTimestamp: '2020-01-24T06:29:02.367Z', + properties: { + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + coupon: 'hasbros', + currency: 'USD', + discount: 2.5, + total: 23, + order_id: '50314b8e9bcf000000000000', + key_1: { + child_key1: 'child_value1', + child_key2: { child_key21: 'child_value21', child_key22: 'child_value22' }, + }, + products: [ + { + category: 'Games', + image_url: 'https:///www.example.com/product/path.jpg', + name: 'Monopoly: 3rd Edition', + price: 19, + product_id: '507f1f77bcf86cd799439011', + quantity: 1, + sku: '45790-32', + url: 'https://www.example.com/product/path', + }, + { + category: 'Games', + name: 'Uno Card Game', + price: 3, + product_id: '505bd76785ebb509fc183733', + quantity: 2, + sku: '46493-32', + }, + ], + shipping: 3, + subtotal: 22.5, + tax: 2, + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53712', + sentAt: '2020-01-24T06:29:02.368Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'track', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/track/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":" new Order Completed totally","properties":{"affiliation":"Google Store","checkout_id":"fksdjfsdjfisjf9sdfjsd9f","coupon":"hasbros","currency":"USD","discount":2.5,"total":23,"order_id":"50314b8e9bcf000000000000","key_1":{"child_key1":"child_value1","child_key2":{"child_key21":"child_value21","child_key22":"child_value22"}},"products":[{"category":"Games","image_url":"https:///www.example.com/product/path.jpg","name":"Monopoly: 3rd Edition","price":19,"product_id":"507f1f77bcf86cd799439011","quantity":1,"sku":"45790-32","url":"https://www.example.com/product/path"},{"category":"Games","name":"Uno Card Game","price":3,"product_id":"505bd76785ebb509fc183733","quantity":2,"sku":"46493-32"}],"shipping":3,"subtotal":22.5,"tax":2,"city":"Disney","country":"USA","email":"mickey@disney.com","firstName":"Mickey","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342,"$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: sampleDestination, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstName: 'Mickey', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: ' Order Completed ', + integrations: { All: true }, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + originalTimestamp: '2020-01-24T06:29:02.367Z', + properties: { + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + coupon: 'hasbros', + currency: 'USD', + discount: 2.5, + total: 23, + order_id: '50314b8e9bcf000000000000', + key_1: { + child_key1: 'child_value1', + child_key2: { child_key21: 'child_value21', child_key22: 'child_value22' }, + }, + products: [ + { + category: 'Games', + image_url: 'https:///www.example.com/product/path.jpg', + name: 'Monopoly: 3rd Edition', + price: 19, + product_id: '507f1f77bcf86cd799439011', + quantity: 1, + sku: '45790-32', + url: 'https://www.example.com/product/path', + }, + { + category: 'Games', + name: 'Uno Card Game', + price: 3, + product_id: '505bd76785ebb509fc183733', + quantity: 2, + sku: '46493-32', + }, + ], + shipping: 3, + subtotal: 22.5, + tax: 2, + 'Billing Amount': '77', + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53712', + sentAt: '2020-01-24T06:29:02.368Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'track', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/track/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":" Order Completed ","properties":{"affiliation":"Google Store","checkout_id":"fksdjfsdjfisjf9sdfjsd9f","coupon":"hasbros","currency":"USD","discount":2.5,"total":23,"order_id":"50314b8e9bcf000000000000","key_1":{"child_key1":"child_value1","child_key2":{"child_key21":"child_value21","child_key22":"child_value22"}},"products":[{"category":"Games","image_url":"https:///www.example.com/product/path.jpg","name":"Monopoly: 3rd Edition","price":19,"product_id":"507f1f77bcf86cd799439011","quantity":1,"sku":"45790-32","url":"https://www.example.com/product/path"},{"category":"Games","name":"Uno Card Game","price":3,"product_id":"505bd76785ebb509fc183733","quantity":2,"sku":"46493-32"}],"shipping":3,"subtotal":22.5,"tax":2,"Billing Amount":"77","city":"Disney","country":"USA","email":"mickey@disney.com","firstName":"Mickey","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342,"$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: sampleDestination, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'mobile', + name: 'Contact Us', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs Android SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originalTimestamp: '2020-01-24T06:29:02.358Z', + properties: { + path: '/tests/html/index2.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index2.html', + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.359Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'group', + userId: 'hjikl', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: '`Group Key Settings` is not configured in destination', + statTags: { + destType: 'MP', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: sampleDestination, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstName: 'Mickey', + }, + integrations: { All: true }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + groupKeySettings: [{ groupKey: 'company' }], + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'mobile', + name: 'Contact Us', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs Android SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originalTimestamp: '2020-01-24T06:29:02.358Z', + properties: { + path: '/tests/html/index2.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index2.html', + }, + traits: { company: 'testComp' }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.359Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'group', + userId: 'hjikl', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$token":"dummyApiKey","$distinct_id":"hjikl","$set":{"company":["testComp"]},"$ip":"0.0.0.0"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'hjikl', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/groups/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$token":"dummyApiKey","$group_key":"company","$group_id":"testComp","$set":{"company":"testComp"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'hjikl', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + groupKeySettings: [{ groupKey: 'company' }], + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'mobile', + name: 'Contact Us', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs Android SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originalTimestamp: '2020-01-24T06:29:02.358Z', + properties: { + path: '/tests/html/index2.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index2.html', + }, + traits: { company: ['testComp', 'testComp1'] }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.359Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'group', + userId: 'hjikl', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$token":"dummyApiKey","$distinct_id":"hjikl","$set":{"company":["testComp","testComp1"]},"$ip":"0.0.0.0"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'hjikl', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/groups/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$token":"dummyApiKey","$group_key":"company","$group_id":"testComp","$set":{"company":["testComp","testComp1"]}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'hjikl', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/groups/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$token":"dummyApiKey","$group_key":"company","$group_id":"testComp1","$set":{"company":["testComp","testComp1"]}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'hjikl', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 16', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + dataResidency: 'eu', + groupKeySettings: [{ groupKey: 'company' }], + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'mobile', + name: 'contact us', + context: { + app: { + build: '1.0.0', + name: 'rudderlabs android sdk', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'rudderlabs javascript sdk', version: '1.0.5' }, + locale: 'en-gb', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: {}, + useragent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.117 safari/537.36', + }, + integrations: { all: true }, + messageid: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originaltimestamp: '2020-01-24t06:29:02.358z', + traits: { company: 'testComp' }, + properties: { + path: '/tests/html/index2.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index2.html', + }, + receivedat: '2020-01-24t11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentat: '2020-01-24t06:29:02.359z', + timestamp: '2020-01-24t11:59:02.402+05:30', + type: 'group', + userId: 'hjikl', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-eu.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$token":"dummyApiKey","$distinct_id":"hjikl","$set":{"company":["testComp"]},"$ip":"0.0.0.0"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'hjikl', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-eu.mixpanel.com/groups/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$token":"dummyApiKey","$group_key":"company","$group_id":"testComp","$set":{"company":"testComp"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'hjikl', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 17', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + dataResidency: 'eu', + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstname: 'Mickey', + lastname: 'Mouse', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: 'KM Order Completed', + integrations: { All: true }, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + originalTimestamp: '2020-01-24T06:29:02.367Z', + properties: { + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + coupon: 'hasbros', + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + products: [ + { + category: 'Games', + image_url: 'https:///www.example.com/product/path.jpg', + name: 'Monopoly: 3rd Edition', + price: 19, + product_id: '507f1f77bcf86cd799439011', + quantity: 1, + sku: '45790-32', + url: 'https://www.example.com/product/path', + }, + { + category: 'Games', + name: 'Uno Card Game', + price: 3, + product_id: '505bd76785ebb509fc183733', + quantity: 2, + sku: '46493-32', + }, + ], + revenue: 25, + shipping: 3, + subtotal: 22.5, + tax: 2, + total: 27.5, + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53712', + sentAt: '2020-01-24T06:29:02.368Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'track', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-eu.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$append":{"$transactions":{"$time":"2020-01-24T06:29:02.402Z","$amount":25}},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-eu.mixpanel.com/track/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"KM Order Completed","properties":{"affiliation":"Google Store","checkout_id":"fksdjfsdjfisjf9sdfjsd9f","coupon":"hasbros","currency":"USD","discount":2.5,"order_id":"50314b8e9bcf000000000000","products":[{"category":"Games","image_url":"https:///www.example.com/product/path.jpg","name":"Monopoly: 3rd Edition","price":19,"product_id":"507f1f77bcf86cd799439011","quantity":1,"sku":"45790-32","url":"https://www.example.com/product/path"},{"category":"Games","name":"Uno Card Game","price":3,"product_id":"505bd76785ebb509fc183733","quantity":2,"sku":"46493-32"}],"revenue":25,"shipping":3,"subtotal":22.5,"tax":2,"total":27.5,"city":"Disney","country":"USA","email":"mickey@disney.com","firstname":"Mickey","lastname":"Mouse","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342,"$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 18', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + dataResidency: 'eu', + }), + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'android', + token: 'test_device_token', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'Android', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + messageId: 'id2', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'identify', + sentAt: '2020-03-12T09:05:13.042Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-eu.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","$android_devices":["test_device_token"],"$os":"Android","$android_model":"Android SDK built for x86","$android_os_version":"8.1.0","$android_manufacturer":"Google","$android_app_version":"1.0","$android_app_version_code":"1.0","$android_brand":"Google"},"$token":"dummyApiKey","$distinct_id":"5094f5704b9cf2b3","$time":null}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '5094f5704b9cf2b3', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 19', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + apiSecret: 'some_api_secret', + dataResidency: 'eu', + }), + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'ios', + token: 'test_device_token', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'iOS', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3', userId: 'test_user_id' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + userId: 'test_user_id', + messageId: 'id2', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'identify', + sentAt: '2020-03-12T09:05:13.042Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-eu.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","$ios_devices":["test_device_token"],"$os":"iOS","$ios_device_model":"Android SDK built for x86","$ios_version":"8.1.0","$ios_app_release":"1","$ios_app_version":"1.0"},"$token":"dummyApiKey","$distinct_id":"test_user_id","$time":null}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'test_user_id', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-eu.mixpanel.com/import/', + headers: { + Authorization: 'Basic c29tZV9hcGlfc2VjcmV0Og==', + 'Content-Type': 'application/json', + }, + params: { strict: 0 }, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"$merge","properties":{"$distinct_ids":["test_user_id","5094f5704b9cf2b3"],"token":"dummyApiKey"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'test_user_id', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 20', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: sampleDestination, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + name: 'Contact Us', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: {}, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originalTimestamp: '2020-01-24T06:29:02.358Z', + properties: { + path: '/tests/html/index2.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index2.html', + category: 'communication', + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.359Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'page', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/track/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"Loaded a Page","properties":{"path":"/tests/html/index2.html","referrer":"","search":"","title":"","url":"http://localhost/tests/html/index2.html","category":"communication","ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"dummyApiKey","distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","time":1579847342,"name":"Contact Us","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 21', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: sampleDestination, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + lastname: 'Mickey', + firstName: 'Mouse', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: '79313729-7fe5-4204-963a-dc46f4205e4e', + originalTimestamp: '2020-01-24T06:29:02.366Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53711', + sentAt: '2020-01-24T06:29:02.366Z', + timestamp: '2020-01-24T11:59:02.403+05:30', + type: 'alias', + userId: '1234abc', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/track/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"$create_alias","properties":{"distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","alias":"1234abc","token":"dummyApiKey"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '1234abc', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 22', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + apiSecret: 'some_api_secret', + dataResidency: 'eu', + }), + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'tvos', + token: 'test_device_token', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5094f5704b9cf2b3', + userId: 'test_user_id', + createdat: '2020-01-23T08:54:02.362Z', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + userId: 'test_user_id', + messageId: 'id2', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'identify', + sentAt: '2020-03-12T09:05:13.042Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-eu.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","createdat":"2020-01-23T08:54:02.362Z","$ios_devices":["test_device_token"],"$ios_device_model":"Android SDK built for x86","$ios_app_release":"1","$ios_app_version":"1.0"},"$token":"dummyApiKey","$distinct_id":"test_user_id","$time":null}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'test_user_id', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-eu.mixpanel.com/import/', + headers: { + Authorization: 'Basic c29tZV9hcGlfc2VjcmV0Og==', + 'Content-Type': 'application/json', + }, + params: { strict: 0 }, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"$merge","properties":{"$distinct_ids":["test_user_id","5094f5704b9cf2b3"],"token":"dummyApiKey"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'test_user_id', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 23', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: sampleDestination, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + first_name: 'Mickey', + last_name: 'Mouse', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: 'KM Order Completed', + integrations: { All: true }, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + originalTimestamp: '2020-01-24T06:29:02.367Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53712', + sentAt: '2020-01-24T06:29:02.368Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 24', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: sampleDestination, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + first_name: 'Mickey', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: 'KM Order Completed', + integrations: { All: true }, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + originalTimestamp: '2020-01-24T06:29:02.367Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53712', + sentAt: '2020-01-24T06:29:02.368Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 25', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: sampleDestination, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + address: { city: 'Disney', country: 'USA', state: 'US' }, + email: 'mickey@disney.com', + first_name: 'Mickey', + last_name: 'Mouse', + name: 'Mickey Mouse', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: 'KM Order Completed', + integrations: { All: true }, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + originalTimestamp: '2020-01-24T06:29:02.367Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53712', + sentAt: '2020-01-24T06:29:02.368Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$email":"mickey@disney.com","$name":"Mickey Mouse","$country_code":"USA","$city":"Disney","$region":"US","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 26', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: sampleDestination, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + first_name: 'Mickey', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: 'KM Order Completed', + integrations: { All: true }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + last_name: 'Mouse', + }, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + originalTimestamp: '2020-01-24T06:29:02.367Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53712', + sentAt: '2020-01-24T06:29:02.368Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 27', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + useNewMapping: false, + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + first_name: 'Mickey', + last_name: 'Mouse', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: 'KM Order Completed', + integrations: { All: true }, + traits: { name: 'Mouse' }, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + originalTimestamp: '2020-01-24T06:29:02.367Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53712', + sentAt: '2020-01-24T06:29:02.368Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$email":"mickey@disney.com","$name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 28', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + useNewMapping: true, + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + first_name: 'Mickey', + last_name: 'Mouse', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: 'KM Order Completed', + integrations: { All: true }, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + originalTimestamp: '2020-01-24T06:29:02.367Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53712', + sentAt: '2020-01-24T06:29:02.368Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 29', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + useNewMapping: true, + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + first_name: 'Mickey', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: 'KM Order Completed', + integrations: { All: true }, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + originalTimestamp: '2020-01-24T06:29:02.367Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53712', + sentAt: '2020-01-24T06:29:02.368Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$email":"mickey@disney.com","$first_name":"Mickey","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 30', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + useNewMapping: true, + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + address: { city: 'Disney', country: 'USA', state: 'US' }, + email: 'mickey@disney.com', + first_name: 'Mickey', + last_name: 'Mouse', + name: 'Mickey Mouse', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: 'KM Order Completed', + integrations: { All: true }, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + originalTimestamp: '2020-01-24T06:29:02.367Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53712', + sentAt: '2020-01-24T06:29:02.368Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$name":"Mickey Mouse","$country_code":"USA","$city":"Disney","$region":"US","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 31', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + useNewMapping: true, + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + first_name: 'Mickey', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: 'KM Order Completed', + integrations: { All: true }, + traits: { + city: 'Disney', + country: 'USA', + address: '1 Government Dr, St. Louis, MO 63110, United States', + email: 'mickey@disney.com', + last_name: 'Mouse', + }, + messageId: 'aa5f5e44-8756-40ad-ad1e-b0d3b9fa710a', + originalTimestamp: '2020-01-24T06:29:02.367Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53712', + sentAt: '2020-01-24T06:29:02.368Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 32', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + useNewMapping: false, + }), + message: { + type: 'track', + event: 'FirstTrackCall12', + sentAt: '2021-09-30T07:15:23.523Z', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.18', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_testingTool/', + path: '/Testing/App_for_testingTool/', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_testingTool/', + referrer: 'http://127.0.0.1:7307/Testing/', + initial_referrer: 'http://127.0.0.1:7307/Testing/', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '127.0.0.1:7307', + }, + locale: 'en-US', + screen: { width: 1440, height: 900, density: 2, innerWidth: 590, innerHeight: 665 }, + traits: { + anonymousId: 'ea776ad0-3136-44fb-9216-5b1578609a2b', + userId: 'as09sufa09usaf09as0f9uasf', + id: 'as09sufa09usaf09as0f9uasf', + firstName: 'Bob', + lastName: 'Marley', + name: 'Bob Marley', + age: 43, + email: 'bob@marleymail.com', + phone: '+447748544123', + birthday: '1987-01-01T20:08:59+0000', + createdAt: '2022-01-21T14:10:12+0000', + address: '51,B.L.T road, Kolkata-700060', + description: 'I am great', + gender: 'male', + title: 'Founder', + username: 'bobm', + website: 'https://bobm.com', + randomProperty: 'randomValue', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.18' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36', + }, + rudderId: '294702c7-8732-4fb3-b39f-f3bdffe1aa88', + messageId: '0d5c1a4a-27e4-41da-a246-4d01f44e74bd', + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + properties: { foo: 'bar', $deviceId: 'nkasdnkasd' }, + anonymousId: '1dbb5784-b8e2-4074-8644-9920145b7ae5', + integrations: { All: true }, + originalTimestamp: '2021-09-30T07:15:23.523Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Event timestamp is older than 5 days and no API secret or service account credentials (i.e. username, secret and projectId) are provided in destination configuration', + statTags: { + destType: 'MP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 33', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + useNewMapping: true, + }), + message: { + type: 'track', + event: 'FirstTrackCall12', + sentAt: '2021-09-30T07:15:23.523Z', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.18', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/App_for_testingTool/', + path: '/Testing/App_for_testingTool/', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/App_for_testingTool/', + referrer: 'http://127.0.0.1:7307/Testing/', + initial_referrer: 'http://127.0.0.1:7307/Testing/', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '127.0.0.1:7307', + }, + locale: 'en-US', + screen: { width: 1440, height: 900, density: 2, innerWidth: 590, innerHeight: 665 }, + traits: { + anonymousId: 'ea776ad0-3136-44fb-9216-5b1578609a2b', + userId: 'as09sufa09usaf09as0f9uasf', + id: 'as09sufa09usaf09as0f9uasf', + firstName: 'Bob', + lastName: 'Marley', + name: 'Bob Marley', + age: 43, + email: 'bob@marleymail.com', + phone: '+447748544123', + birthday: '1987-01-01T20:08:59+0000', + createdAt: '2022-01-21T14:10:12+0000', + address: '51,B.L.T road, Kolkata-700060', + description: 'I am great', + gender: 'male', + title: 'Founder', + username: 'bobm', + website: 'https://bobm.com', + randomProperty: 'randomValue', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.18' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36', + }, + rudderId: '294702c7-8732-4fb3-b39f-f3bdffe1aa88', + messageId: '0d5c1a4a-27e4-41da-a246-4d01f44e74bd', + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + properties: { foo: 'bar', $deviceId: 'nkasdnkasd' }, + anonymousId: '1dbb5784-b8e2-4074-8644-9920145b7ae5', + integrations: { All: true }, + originalTimestamp: '2021-09-30T07:15:23.523Z', + timestamp: '2012-09-30T07:15:23.523Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event timestamp should be within last 5 years', + statTags: { + destType: 'MP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 34', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + apiSecret: 'some_api_secret', + dataResidency: 'eu', + }), + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'ios', + token: 'test_device_token', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'iOS', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3', userId: 'test_user_id' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + userId: 'test_user_id', + messageId: 'id2', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'track', + sentAt: '2020-03-12T09:05:13.042Z', + timestamp: '2018-03-12T09:05:03.421Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-eu.mixpanel.com/import/', + headers: { + Authorization: 'Basic c29tZV9hcGlfc2VjcmV0Og==', + 'Content-Type': 'application/json', + }, + params: { strict: 0 }, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"MainActivity","properties":{"name":"MainActivity","automatic":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","$user_id":"test_user_id","$os":"iOS","$screen_height":1794,"$screen_width":1080,"$screen_dpi":420,"$carrier":"Android","$os_version":"8.1.0","$device":"generic_x86","$manufacturer":"Google","$model":"Android SDK built for x86","mp_device_model":"Android SDK built for x86","$wifi":true,"$bluetooth_enabled":false,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"1","$app_version_string":"1.0","$insert_id":"id2","token":"dummyApiKey","distinct_id":"test_user_id","time":1520845503}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'test_user_id', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 35', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + apiSecret: 'some_api_secret', + }), + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstname: 'Mickey', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: '79313729-7fe5-4204-963a-dc46f4205e4e', + originalTimestamp: '2020-01-24T06:29:02.366Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53711', + sentAt: '2020-01-24T06:29:02.366Z', + type: 'alias', + userId: '1234abc', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Either `previousId` or `anonymousId` should be present in alias payload', + statTags: { + destType: 'MP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 36', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + apiSecret: 'some_api_secret', + }), + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstname: 'Mickey', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: '79313729-7fe5-4204-963a-dc46f4205e4e', + originalTimestamp: '2020-01-24T06:29:02.366Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53711', + sentAt: '2020-01-24T06:29:02.366Z', + type: 'test', + userId: '1234abc', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: "Event type 'test' is not supported", + statTags: { + destType: 'MP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 37', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + useNewMapping: true, + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + active: false, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstName: 'Mickey', + lastName: 'Mouse', + createdAt: '2020-01-23T08:54:02.362Z', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342,"$ignore_time":true}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 38', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + useNewMapping: true, + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + active: true, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstName: 'Mickey', + lastName: 'Mouse', + createdAt: '2020-01-23T08:54:02.362Z', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1579847342}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 39', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + useNewMapping: true, + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + location: { geoSource: 'abc' }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstName: 'Mickey', + lastName: 'Mouse', + createdAt: '2020-01-23T08:54:02.362Z', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: "$geo_source value must be either null or 'reverse_geocoding' ", + statTags: { + destType: 'MP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 40', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + serviceAccountUserName: 'rudder.d2a3f1.mp-service-account', + serviceAccountSecret: 'jatpQxcjMh8eetk1xrH3KjQIbzy4iX8b', + projectId: '123456', + useNewMapping: true, + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + active: true, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstName: 'Mickey', + lastName: 'Mouse', + createdAt: '2020-01-23T08:54:02.362Z', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: 'user1234', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$first_name":"Mickey","$last_name":"Mouse","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyApiKey","$distinct_id":"user1234","$ip":"0.0.0.0","$time":1579847342}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'user1234', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/import/', + headers: { + 'Content-Type': 'application/json', + Authorization: + 'Basic cnVkZGVyLmQyYTNmMS5tcC1zZXJ2aWNlLWFjY291bnQ6amF0cFF4Y2pNaDhlZXRrMXhySDNLalFJYnp5NGlYOGI=', + }, + params: { project_id: '123456', strict: 0 }, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"$merge","properties":{"$distinct_ids":["user1234","e6ab2c5e-2cda-44a9-a962-e2f67df78bca"],"token":"dummyApiKey"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'user1234', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 41', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Application Installed', + sentAt: '2022-09-05T07:46:26.322Z', + channel: 'mobile', + context: { + os: { name: 'Android', version: '12' }, + app: { + name: 'Sample Kotlin', + build: '4', + version: '1.0', + namespace: 'com.example.testapp1mg', + }, + device: { + id: '39da706ec83d0e90', + name: 'emu64a', + type: 'Android', + model: 'sdk_gphone64_arm64', + manufacturer: 'Google', + }, + locale: 'en-US', + screen: { width: 1440, height: 2984, density: 560 }, + traits: { anonymousId: '39da706ec83d0e90' }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.7.0' }, + network: { wifi: true, carrier: 'T-Mobile', cellular: true, bluetooth: true }, + timezone: 'Asia/Kolkata', + sessionId: 1662363980, + userAgent: 'Dalvik/2.1.0 (Linux; U; Android Tiramisu Build/TPP2.220218.008)', + sessionStart: true, + }, + rudderId: '3ef1dec3-d729-4830-a394-7b8be6819765', + messageId: '1662363980287-168cf720-6227-4b56-a98e-c49bdc7279e9', + properties: { build: 4, version: '1.0' }, + anonymousId: '39da706ec83d0e90', + integrations: { All: true }, + originalTimestamp: '2022-09-05T07:46:20.290Z', + }, + destination: overrideDestination(sampleDestination, { + apiSecret: 'dummyApiKey', + useNewMapping: true, + }), + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/import/', + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk6', + 'Content-Type': 'application/json', + }, + params: { strict: 0 }, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"Application Installed","properties":{"build":4,"version":"1.0","anonymousId":"39da706ec83d0e90","$os":"Android","$screen_height":2984,"$screen_width":1440,"$screen_dpi":560,"$carrier":"T-Mobile","$os_version":"12","$device":"emu64a","$manufacturer":"Google","$model":"sdk_gphone64_arm64","mp_device_model":"sdk_gphone64_arm64","$wifi":true,"$bluetooth_enabled":true,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"4","$app_version_string":"1.0","$insert_id":"168cf720-6227-4b56-a98e-c49bdc7279e9","$session_id":"1662363980","token":"dummyApiKey","distinct_id":"39da706ec83d0e90","time":null}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '39da706ec83d0e90', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 42', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Application Opened', + sentAt: '2022-09-05T07:46:26.322Z', + channel: 'mobile', + context: { + os: { name: 'Android', version: '12' }, + app: { + name: 'Sample Kotlin', + build: '4', + version: '1.0', + namespace: 'com.example.testapp1mg', + }, + device: { + id: '39da706ec83d0e90', + name: 'emu64a', + type: 'Android', + model: 'sdk_gphone64_arm64', + manufacturer: 'Google', + }, + locale: 'en-US', + screen: { width: 1440, height: 2984, density: 560 }, + traits: { anonymousId: '39da706ec83d0e90' }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.7.0' }, + network: { wifi: true, carrier: 'T-Mobile', cellular: true, bluetooth: true }, + timezone: 'Asia/Kolkata', + sessionId: '1662363980', + userAgent: 'Dalvik/2.1.0 (Linux; U; Android Tiramisu Build/TPP2.220218.008)', + sessionStart: true, + }, + rudderId: '3ef1dec3-d729-4830-a394-7b8be6819765', + messageId: '1662363980287-168cf720-6227-4b56-a98e-c49bdc7279e9', + properties: { build: 4, version: '1.0' }, + anonymousId: '39da706ec83d0e90', + integrations: { All: true }, + originalTimestamp: '2022-09-05T07:46:20.290Z', + }, + destination: overrideDestination(sampleDestination, { + apiSecret: 'dummyApiKey', + useNewMapping: true, + }), + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/import/', + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk6', + 'Content-Type': 'application/json', + }, + params: { strict: 0 }, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"Application Opened","properties":{"build":4,"version":"1.0","anonymousId":"39da706ec83d0e90","$os":"Android","$screen_height":2984,"$screen_width":1440,"$screen_dpi":560,"$carrier":"T-Mobile","$os_version":"12","$device":"emu64a","$manufacturer":"Google","$model":"sdk_gphone64_arm64","mp_device_model":"sdk_gphone64_arm64","$wifi":true,"$bluetooth_enabled":true,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"4","$app_version_string":"1.0","$insert_id":"168cf720-6227-4b56-a98e-c49bdc7279e9","$session_id":"1662363980","token":"dummyApiKey","distinct_id":"39da706ec83d0e90","time":null}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '39da706ec83d0e90', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 43', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + groupKeySettings: [{ groupKey: 'groupId' }], + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'mobile', + name: 'Contact Us', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs Android SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originalTimestamp: '2020-01-24T06:29:02.358Z', + properties: { + path: '/tests/html/index2.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index2.html', + }, + traits: { company: 'testComp', groupId: 'groupIdInTraits' }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.359Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'group', + userId: 'hjikl', + groupId: 'testGroupId', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$token":"dummyApiKey","$distinct_id":"hjikl","$set":{"groupId":["testGroupId"]},"$ip":"0.0.0.0"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'hjikl', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/groups/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$token":"dummyApiKey","$group_key":"groupId","$group_id":"testGroupId","$set":{"company":"testComp","groupId":"groupIdInTraits"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'hjikl', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 44', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: + 'Track: set device id and user id when simplified id merge api is selected', + destination: overrideDestination(sampleDestination, { + token: 'apiToken123', + identityMergeApi: 'simplified', + }), + message: { + anonymousId: 'anonId01', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'ios', + token: 'test_device_token', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'iOS', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'Product Viewed', + integrations: { All: true }, + userId: 'userId01', + messageId: 'id2', + properties: { name: 'T-Shirt' }, + type: 'track', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/track/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"Product Viewed","properties":{"name":"T-Shirt","$user_id":"userId01","$os":"iOS","$screen_height":1794,"$screen_width":1080,"$screen_dpi":420,"$carrier":"Android","$os_version":"8.1.0","$device":"generic_x86","$manufacturer":"Google","$model":"Android SDK built for x86","mp_device_model":"Android SDK built for x86","$wifi":true,"$bluetooth_enabled":false,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"1","$app_version_string":"1.0","$insert_id":"id2","token":"apiToken123","distinct_id":"userId01","time":1579847342,"$device_id":"anonId01"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'userId01', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 45', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'Identify: skip merge event when simplified id merge api is selected', + destination: overrideDestination(sampleDestination, { + token: 'apiToken123', + identityMergeApi: 'simplified', + }), + message: { + anonymousId: 'anonId01', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstName: 'Mickey', + lastName: 'Mouse', + createdAt: '2020-01-23T08:54:02.362Z', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: 'userId01', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"apiToken123","$distinct_id":"userId01","$ip":"0.0.0.0","$time":1579847342}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'userId01', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 46', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: + 'Identify: append $device: to deviceId while creating the user when simplified id merge api is selected', + destination: overrideDestination(sampleDestination, { + apiKey: 'apiKey123', + token: 'apiToken123', + identityMergeApi: 'simplified', + }), + message: { + anonymousId: 'anonId01', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstName: 'Mickey', + lastName: 'Mouse', + createdAt: '2020-01-23T08:54:02.362Z', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"apiToken123","$distinct_id":"$device:anonId01","$ip":"0.0.0.0","$time":1579847342}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'anonId01', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 47', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'Unsupported alias call when simplified id merge api is selected', + destination: overrideDestination(sampleDestination, { + apiKey: 'apiKey123', + token: 'apiToken123', + identityMergeApi: 'simplified', + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstname: 'Mickey', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: '79313729-7fe5-4204-963a-dc46f4205e4e', + originalTimestamp: '2020-01-24T06:29:02.366Z', + previousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53711', + sentAt: '2020-01-24T06:29:02.366Z', + timestamp: '2020-01-24T11:59:02.403+05:30', + type: 'alias', + userId: '1234abc', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Alias call is deprecated in `Simplified ID merge`', + statTags: { + destType: 'MP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 48', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: + 'Track revenue event: set device id and user id when simplified id merge api is selected', + destination: overrideDestination(sampleDestination, { + apiKey: 'apiKey123', + token: 'apiToken123', + identityMergeApi: 'simplified', + }), + message: { + anonymousId: 'anonId01', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstName: 'Mickey', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + event: 'test revenue MIXPANEL', + integrations: { All: true }, + messageId: 'a6a0ad5a-bd26-4f19-8f75-38484e580fc7', + originalTimestamp: '2020-01-24T06:29:02.364Z', + properties: { currency: 'USD', revenue: 18.9 }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53710', + sentAt: '2020-01-24T06:29:02.364Z', + timestamp: '2020-01-24T11:59:02.403+05:30', + type: 'track', + userId: 'userId01', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$append":{"$transactions":{"$time":"2020-01-24T06:29:02.403Z","$amount":18.9}},"$token":"apiToken123","$distinct_id":"userId01"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'userId01', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/track/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"test revenue MIXPANEL","properties":{"currency":"USD","revenue":18.9,"city":"Disney","country":"USA","email":"mickey@disney.com","firstName":"Mickey","ip":"0.0.0.0","$user_id":"userId01","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"a6a0ad5a-bd26-4f19-8f75-38484e580fc7","token":"apiToken123","distinct_id":"userId01","time":1579847342,"$device_id":"anonId01","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'userId01', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 49', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'Page with anonymous user when simplified api is selected', + destination: overrideDestination(sampleDestination, { + apiKey: 'apiKey123', + token: 'apiToken123', + identityMergeApi: 'simplified', + }), + message: { + anonymousId: 'anonId01', + channel: 'web', + name: 'Contact Us', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: {}, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originalTimestamp: '2020-01-24T06:29:02.358Z', + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.359Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'page', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/track/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"Loaded a Page","properties":{"ip":"0.0.0.0","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"apiToken123","distinct_id":"$device:anonId01","time":1579847342,"$device_id":"anonId01","name":"Contact Us","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'anonId01', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'mp', + description: 'Test 50', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'Group call with anonymous user when simplified api is selected', + destination: overrideDestination(sampleDestination, { + apiKey: 'apiKey123', + token: 'apiToken123', + identityMergeApi: 'simplified', + groupKeySettings: [{ groupKey: 'company' }], + }), + message: { + anonymousId: 'anonId01', + channel: 'mobile', + name: 'Contact Us', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs Android SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originalTimestamp: '2020-01-24T06:29:02.358Z', + properties: { + path: '/tests/html/index2.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index2.html', + }, + traits: { company: 'testComp' }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.359Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'group', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$token":"apiToken123","$distinct_id":"$device:anonId01","$set":{"company":["testComp"]},"$ip":"0.0.0.0"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'anonId01', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/groups/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$token":"apiToken123","$group_key":"company","$group_id":"testComp","$set":{"company":"testComp"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'anonId01', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 51', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: overrideDestination(sampleDestination, { + apiKey: 'apiKey123', + token: 'apiToken123', + identityMergeApi: 'simplified', + groupKeySettings: [{ groupKey: 'company' }], + }), + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'mobile', + name: 'Contact Us', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs Android SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originalTimestamp: '2020-01-24T06:29:02.358Z', + properties: { + path: '/tests/html/index2.html', + referrer: '', + search: '', + title: '', + url: 'http://localhost/tests/html/index2.html', + }, + traits: {}, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.359Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'group', + userId: 'hjikl', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Group Key is not present. Please ensure that the group key is included in the payload as configured in the `Group Key Settings` in destination', + statTags: { + destType: 'MP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 52', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Application Installed', + sentAt: '2022-09-05T07:46:26.322Z', + channel: 'mobile', + timestamp: '', + context: { + os: { name: 'Android', version: '12' }, + app: { + name: 'Sample Kotlin', + build: '4', + version: '1.0', + namespace: 'com.example.testapp1mg', + }, + device: { + id: '39da706ec83d0e90', + name: 'emu64a', + type: 'Android', + model: 'sdk_gphone64_arm64', + manufacturer: 'Google', + }, + locale: 'en-US', + screen: { width: 1440, height: 2984, density: 560 }, + traits: { anonymousId: '39da706ec83d0e90' }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.7.0' }, + network: { wifi: true, carrier: 'T-Mobile', cellular: true, bluetooth: true }, + timezone: 'Asia/Kolkata', + sessionId: 1662363980, + userAgent: 'Dalvik/2.1.0 (Linux; U; Android Tiramisu Build/TPP2.220218.008)', + sessionStart: true, + }, + rudderId: '3ef1dec3-d729-4830-a394-7b8be6819765', + messageId: '1662363980287-168cf720-6227-4b56-a98e-c49bdc7279e9', + properties: { build: 4, version: '1.0', revenue: 12.13 }, + anonymousId: '39da706ec83d0e90', + integrations: { All: true }, + originalTimestamp: '2022-09-05T07:46:20.290Z', + }, + destination: overrideDestination(sampleDestination, { + apiKey: 'dummyApiKey', + token: 'dummyApiKey', + apiSecret: 'dummyApiKey', + useNewMapping: true, + }), + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$append":{"$transactions":{"$time":"2022-09-05T07:46:20.290Z","$amount":12.13}},"$token":"dummyApiKey","$distinct_id":"39da706ec83d0e90"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '39da706ec83d0e90', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/import/', + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk6', + 'Content-Type': 'application/json', + }, + params: { strict: 0 }, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"Application Installed","properties":{"build":4,"version":"1.0","revenue":12.13,"anonymousId":"39da706ec83d0e90","$os":"Android","$screen_height":2984,"$screen_width":1440,"$screen_dpi":560,"$carrier":"T-Mobile","$os_version":"12","$device":"emu64a","$manufacturer":"Google","$model":"sdk_gphone64_arm64","mp_device_model":"sdk_gphone64_arm64","$wifi":true,"$bluetooth_enabled":true,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"4","$app_version_string":"1.0","$insert_id":"168cf720-6227-4b56-a98e-c49bdc7279e9","$session_id":"1662363980","token":"dummyApiKey","distinct_id":"39da706ec83d0e90","time":null}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '39da706ec83d0e90', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 53', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Application Installed', + sentAt: '2022-09-05T07:46:26.322Z', + channel: 'mobile', + timestamp: 'safaff', + context: { + os: { name: 'Android', version: '12' }, + app: { + name: 'Sample Kotlin', + build: '4', + version: '1.0', + namespace: 'com.example.testapp1mg', + }, + device: { + id: '39da706ec83d0e90', + name: 'emu64a', + type: 'Android', + model: 'sdk_gphone64_arm64', + manufacturer: 'Google', + }, + locale: 'en-US', + screen: { width: 1440, height: 2984, density: 560 }, + traits: { anonymousId: '39da706ec83d0e90' }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.7.0' }, + network: { wifi: true, carrier: 'T-Mobile', cellular: true, bluetooth: true }, + timezone: 'Asia/Kolkata', + sessionId: 1662363980, + userAgent: 'Dalvik/2.1.0 (Linux; U; Android Tiramisu Build/TPP2.220218.008)', + sessionStart: true, + }, + rudderId: '3ef1dec3-d729-4830-a394-7b8be6819765', + messageId: '1662363980287-168cf720-6227-4b56-a98e-c49bdc7279e9', + properties: { build: 4, version: '1.0', revenue: 23.45 }, + anonymousId: '39da706ec83d0e90', + integrations: { All: true }, + originalTimestamp: '2022-09-05T07:46:20.290Z', + }, + destination: overrideDestination(sampleDestination, { + apiKey: 'dummyApiKey', + token: 'dummyApiKey', + apiSecret: 'dummyApiKey', + useNewMapping: true, + }), + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$append":{"$transactions":{"$time":"2022-09-05T07:46:20.290Z","$amount":23.45}},"$token":"dummyApiKey","$distinct_id":"39da706ec83d0e90"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '39da706ec83d0e90', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/import/', + headers: { + Authorization: 'Basic ZHVtbXlBcGlLZXk6', + 'Content-Type': 'application/json', + }, + params: { strict: 0 }, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"Application Installed","properties":{"build":4,"version":"1.0","revenue":23.45,"anonymousId":"39da706ec83d0e90","$os":"Android","$screen_height":2984,"$screen_width":1440,"$screen_dpi":560,"$carrier":"T-Mobile","$os_version":"12","$device":"emu64a","$manufacturer":"Google","$model":"sdk_gphone64_arm64","mp_device_model":"sdk_gphone64_arm64","$wifi":true,"$bluetooth_enabled":true,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"4","$app_version_string":"1.0","$insert_id":"168cf720-6227-4b56-a98e-c49bdc7279e9","$session_id":"1662363980","token":"dummyApiKey","distinct_id":"39da706ec83d0e90","time":null}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '39da706ec83d0e90', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 54', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'Track: with strict mode enabled', + destination: overrideDestination(sampleDestination, { + apiKey: 'dummyApiKey', + token: 'dummyApiKey', + apiSecret: 'some_api_secret', + dataResidency: 'eu', + strictMode: true, + }), + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'ios', + token: 'test_device_token', + }, + library: { name: 'com.rudderstack.android.sdk.core', version: '1.0.1-beta.1' }, + locale: 'en-US', + network: { carrier: 'Android', bluetooth: false, cellular: true, wifi: true }, + os: { name: 'iOS', version: '8.1.0' }, + screen: { density: 420, height: 1794, width: 1080 }, + timezone: 'Asia/Kolkata', + traits: { anonymousId: '5094f5704b9cf2b3', userId: 'test_user_id' }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { All: true }, + userId: 'test_user_id', + messageId: 'id2', + properties: { name: 'MainActivity', automatic: true }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'identify', + sentAt: '2020-03-12T09:05:13.042Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-eu.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","$ios_devices":["test_device_token"],"$os":"iOS","$ios_device_model":"Android SDK built for x86","$ios_version":"8.1.0","$ios_app_release":"1","$ios_app_version":"1.0"},"$token":"dummyApiKey","$distinct_id":"test_user_id","$time":null}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'test_user_id', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api-eu.mixpanel.com/import/', + headers: { + Authorization: 'Basic c29tZV9hcGlfc2VjcmV0Og==', + 'Content-Type': 'application/json', + }, + params: { strict: 1 }, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"$merge","properties":{"$distinct_ids":["test_user_id","5094f5704b9cf2b3"],"token":"dummyApiKey"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'test_user_id', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 55', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'Alias: with same previousId and userId', + destination: sampleDestination, + message: { + anonymousId: 'test_anonymous_id', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.5' }, + locale: 'en-GB', + os: { name: '', version: '' }, + screen: { density: 2 }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + lastname: 'Mickey', + firstName: 'Mouse', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { All: true }, + messageId: '79313729-7fe5-4204-963a-dc46f4205e4e', + originalTimestamp: '2020-01-24T06:29:02.366Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53711', + sentAt: '2020-01-24T06:29:02.366Z', + timestamp: '2020-01-24T11:59:02.403+05:30', + type: 'alias', + userId: 'test_user_id', + previousId: 'test_user_id', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'One of `previousId` or `anonymousId` is same as `userId`. Aborting', + statTags: { + destType: 'MP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test Set Once Property', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'Alias: with property beyond and within exclusion list', + destination: destinationWithSetOnceProperty, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + address: { + city: 'Disney', + }, + country: 'USA', + email: 'TestSanity@disney.com', + firstName: 'Mickey test', + lastName: 'VarChange', + createdAt: '2020-01-23T08:54:02.362Z', + nationality: 'USA', + random: 'superProp', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + request_ip: '[::1]:53709', + type: 'identify', + userId: 'Santiy', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set_once":{"$first_name":"Mickey test","$city":"Disney","nationality":"USA"},"$token":"dummyToken","$distinct_id":"Santiy"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'Santiy', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"TestSanity@disney.com","$country_code":"USA","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","random":"superProp","$lastName":"VarChange","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyToken","$distinct_id":"Santiy","$ip":"0.0.0.0","$time":null}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'Santiy', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test Set Once Property with anonymousId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'Alias: with property beyond and within exclusion list', + destination: destinationWithSetOnceProperty, + message: { + anonymousId: 'dummyAnnonymousId', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + address: { + city: 'Disney', + }, + country: 'USA', + email: 'TestSanity@disney.com', + firstName: 'Mickey test', + lastName: 'VarChange', + createdAt: '2020-01-23T08:54:02.362Z', + nationality: 'USA', + random: 'superProp', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + request_ip: '[::1]:53709', + type: 'identify', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set_once":{"$first_name":"Mickey test","$city":"Disney","nationality":"USA"},"$token":"dummyToken","$distinct_id":"$device:dummyAnnonymousId"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'dummyAnnonymousId', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"TestSanity@disney.com","$country_code":"USA","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","random":"superProp","$lastName":"VarChange","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"dummyToken","$distinct_id":"$device:dummyAnnonymousId","$ip":"0.0.0.0","$time":null}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'dummyAnnonymousId', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/mp/router/data.ts b/test/integrations/destinations/mp/router/data.ts new file mode 100644 index 00000000000..70589299097 --- /dev/null +++ b/test/integrations/destinations/mp/router/data.ts @@ -0,0 +1,1761 @@ +import { overrideDestination } from '../../../testUtils'; +import { sampleDestination } from '../common'; + +export const data = [ + { + name: 'mp', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + description: 'Page call', + destination: overrideDestination(sampleDestination, { + apiSecret: 'test_api_secret', + token: 'test_api_token', + useOldMapping: true, + strictMode: true, + }), + metadata: { + jobId: 1, + additionalProp: 1, + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + name: 'Contact Us', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: {}, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originalTimestamp: '2020-01-24T06:29:02.358Z', + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.359Z', + timestamp: '2023-07-06T11:59:02.402+05:30', + type: 'page', + userId: 'hjikl', + }, + }, + { + description: + 'Track: set device id and user id when simplified id merge api is selected', + destination: overrideDestination(sampleDestination, { + apiSecret: 'test_api_secret', + token: 'test_api_token', + identityMergeApi: 'simplified', + strictMode: true, + }), + metadata: { + jobId: 2, + additionalProp: 2, + }, + message: { + anonymousId: 'anonId01', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'ios', + token: 'test_device_token', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.1-beta.1', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'iOS', + version: '8.1.0', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'Product Viewed', + integrations: { + All: true, + }, + userId: 'userId01', + messageId: 'id2', + properties: { + name: 'T-Shirt', + revenue: 18.9, + }, + type: 'track', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2023-07-06T11:59:02.402+05:30', + }, + }, + { + description: 'Identify call to create anonymous user profile', + destination: overrideDestination(sampleDestination, { + apiSecret: 'test_api_secret', + token: 'test_api_token', + useOldMapping: true, + strictMode: true, + }), + metadata: { + jobId: 3, + additionalProp: 3, + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstName: 'Mickey', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2023-07-06T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + }, + { + description: + 'Identify: append $device: to deviceId while creating the user when simplified id merge api is selected', + destination: overrideDestination(sampleDestination, { + apiSecret: 'test_api_secret', + token: 'test_api_token', + identityMergeApi: 'simplified', + strictMode: true, + }), + metadata: { + jobId: 4, + additionalProp: 4, + }, + message: { + anonymousId: 'anonId01', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstName: 'Mickey', + lastName: 'Mouse', + createdAt: '2020-01-23T08:54:02.362Z', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2023-07-06T11:59:02.402+05:30', + type: 'identify', + }, + }, + { + description: 'Merge call with strict mode enabled', + destination: overrideDestination(sampleDestination, { + apiSecret: 'test_api_secret', + token: 'test_api_token', + strictMode: true, + }), + metadata: { + jobId: 5, + additionalProp: 5, + }, + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'ios', + token: 'test_device_token', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.1-beta.1', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'iOS', + version: '8.1.0', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5094f5704b9cf2b3', + userId: 'test_user_id', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { + All: true, + }, + userId: 'test_user_id', + messageId: 'id2', + properties: { + name: 'MainActivity', + automatic: true, + }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'identify', + sentAt: '2020-03-12T09:05:13.042Z', + }, + }, + { + description: 'Group call', + destination: overrideDestination(sampleDestination, { + apiSecret: 'test_api_secret', + token: 'test_api_token', + groupKeySettings: [ + { + groupKey: 'company', + }, + ], + strictMode: true, + }), + metadata: { + jobId: 6, + additionalProp: 6, + }, + message: { + anonymousId: 'anonId06', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + traits: { + company: 'testComp', + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2023-07-06T11:59:02.402+05:30', + type: 'group', + userId: 'userId06', + }, + }, + { + description: 'Group key not present in traits', + destination: overrideDestination(sampleDestination, { + apiSecret: 'test_api_secret', + token: 'test_api_token', + groupKeySettings: [ + { + groupKey: 'company', + }, + ], + strictMode: true, + }), + metadata: { + jobId: 7, + additionalProp: 7, + }, + message: { + anonymousId: 'anonId06', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2023-07-06T11:59:02.402+05:30', + type: 'group', + userId: 'userId06', + }, + }, + ], + destType: 'mp', + }, + method: 'POST', + headers: { + 'X-Feature-Gzip-Support': '?1', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/import/', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic dGVzdF9hcGlfc2VjcmV0Og==', + }, + params: { + strict: 1, + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + GZIP: { + payload: + '[{"event":"Loaded a Page","properties":{"ip":"0.0.0.0","$user_id":"hjikl","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"test_api_token","distinct_id":"hjikl","time":1688624942,"name":"Contact Us","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 1, + additionalProp: 1, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'test_api_secret', + token: 'test_api_token', + prefixProperties: true, + useNativeSDK: false, + useOldMapping: true, + strictMode: true, + }, + DestinationDefinition: { + DisplayName: 'Mixpanel', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'MP', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'MP', + Transformations: [], + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$append":{"$transactions":{"$time":"2023-07-06T06:29:02.402Z","$amount":18.9}},"$token":"test_api_token","$distinct_id":"userId01"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/import/', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic dGVzdF9hcGlfc2VjcmV0Og==', + }, + params: { + strict: 1, + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + GZIP: { + payload: + '[{"event":"Product Viewed","properties":{"name":"T-Shirt","revenue":18.9,"$user_id":"userId01","$os":"iOS","$screen_height":1794,"$screen_width":1080,"$screen_dpi":420,"$carrier":"Android","$os_version":"8.1.0","$device":"generic_x86","$manufacturer":"Google","$model":"Android SDK built for x86","mp_device_model":"Android SDK built for x86","$wifi":true,"$bluetooth_enabled":false,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"1","$app_version_string":"1.0","$insert_id":"id2","token":"test_api_token","distinct_id":"userId01","time":1688624942,"$device_id":"anonId01"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 2, + additionalProp: 2, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'test_api_secret', + token: 'test_api_token', + prefixProperties: true, + identityMergeApi: 'simplified', + strictMode: true, + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Mixpanel', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'MP', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'MP', + Transformations: [], + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"test_api_token","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1688624942},{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"test_api_token","$distinct_id":"$device:anonId01","$ip":"0.0.0.0","$time":1688624942},{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","$ios_devices":["test_device_token"],"$os":"iOS","$ios_device_model":"Android SDK built for x86","$ios_version":"8.1.0","$ios_app_release":"1","$ios_app_version":"1.0"},"$token":"test_api_token","$distinct_id":"test_user_id","$time":null}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/import/', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic dGVzdF9hcGlfc2VjcmV0Og==', + }, + params: { + strict: 1, + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + GZIP: { + payload: + '[{"event":"$merge","properties":{"$distinct_ids":["test_user_id","5094f5704b9cf2b3"],"token":"test_api_token"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 3, + additionalProp: 3, + }, + { + jobId: 4, + additionalProp: 4, + }, + { + jobId: 5, + additionalProp: 5, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'test_api_secret', + token: 'test_api_token', + prefixProperties: true, + useNativeSDK: false, + useOldMapping: true, + strictMode: true, + }, + DestinationDefinition: { + DisplayName: 'Mixpanel', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'MP', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'MP', + Transformations: [], + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$token":"test_api_token","$distinct_id":"userId06","$set":{"company":["testComp"]},"$ip":"0.0.0.0"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/groups/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$token":"test_api_token","$group_key":"company","$group_id":"testComp","$set":{"company":"testComp"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 6, + additionalProp: 6, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'test_api_secret', + token: 'test_api_token', + prefixProperties: true, + groupKeySettings: [ + { + groupKey: 'company', + }, + ], + strictMode: true, + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Mixpanel', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'MP', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'MP', + Transformations: [], + }, + }, + { + metadata: [ + { + jobId: 7, + additionalProp: 7, + }, + ], + batched: false, + statusCode: 400, + error: + 'Group Key is not present. Please ensure that the group key is included in the payload as configured in the `Group Key Settings` in destination', + statTags: { + destType: 'MP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'test_api_secret', + token: 'test_api_token', + prefixProperties: true, + useNativeSDK: false, + groupKeySettings: [ + { + groupKey: 'company', + }, + ], + strictMode: true, + }, + DestinationDefinition: { + DisplayName: 'Mixpanel', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'MP', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'MP', + Transformations: [], + }, + }, + ], + }, + }, + }, + }, + { + name: 'mp', + description: 'Test 1', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + description: 'Page call', + destination: overrideDestination(sampleDestination, { + apiSecret: 'test_api_secret', + token: 'test_api_token', + useOldMapping: true, + strictMode: true, + }), + metadata: { + jobId: 1, + additionalProp: 1, + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + name: 'Contact Us', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: {}, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'dd266c67-9199-4a52-ba32-f46ddde67312', + originalTimestamp: '2020-01-24T06:29:02.358Z', + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.359Z', + timestamp: '2023-07-06T11:59:02.402+05:30', + type: 'page', + userId: 'hjikl', + }, + }, + { + description: + 'Track: set device id and user id when simplified id merge api is selected', + destination: overrideDestination(sampleDestination, { + apiSecret: 'test_api_secret', + token: 'test_api_token', + identityMergeApi: 'simplified', + strictMode: true, + }), + metadata: { + jobId: 2, + additionalProp: 2, + }, + message: { + anonymousId: 'anonId01', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'ios', + token: 'test_device_token', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.1-beta.1', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'iOS', + version: '8.1.0', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'Product Viewed', + integrations: { + All: true, + }, + userId: 'userId01', + messageId: 'id2', + properties: { + name: 'T-Shirt', + revenue: 18.9, + }, + type: 'track', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2023-07-06T11:59:02.402+05:30', + }, + }, + { + description: 'Identify call to create anonymous user profile', + destination: overrideDestination(sampleDestination, { + apiSecret: 'test_api_secret', + token: 'test_api_token', + useOldMapping: true, + strictMode: true, + }), + metadata: { + jobId: 3, + additionalProp: 3, + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstName: 'Mickey', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2023-07-06T11:59:02.402+05:30', + type: 'identify', + userId: '', + }, + }, + { + description: + 'Identify: append $device: to deviceId while creating the user when simplified id merge api is selected', + destination: overrideDestination(sampleDestination, { + apiSecret: 'test_api_secret', + token: 'test_api_token', + identityMergeApi: 'simplified', + strictMode: true, + }), + metadata: { + jobId: 4, + additionalProp: 4, + }, + message: { + anonymousId: 'anonId01', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + city: 'Disney', + country: 'USA', + email: 'mickey@disney.com', + firstName: 'Mickey', + lastName: 'Mouse', + createdAt: '2020-01-23T08:54:02.362Z', + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2023-07-06T11:59:02.402+05:30', + type: 'identify', + }, + }, + { + description: 'Merge call with strict mode enabled', + destination: overrideDestination(sampleDestination, { + apiSecret: 'test_api_secret', + token: 'test_api_token', + strictMode: true, + }), + metadata: { + jobId: 5, + additionalProp: 5, + }, + message: { + anonymousId: '5094f5704b9cf2b3', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'LeanPlumIntegrationAndroid', + namespace: 'com.android.SampleLeanPlum', + version: '1.0', + }, + device: { + id: '5094f5704b9cf2b3', + manufacturer: 'Google', + model: 'Android SDK built for x86', + name: 'generic_x86', + type: 'ios', + token: 'test_device_token', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.1-beta.1', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'iOS', + version: '8.1.0', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + anonymousId: '5094f5704b9cf2b3', + userId: 'test_user_id', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 8.1.0; Android SDK built for x86 Build/OSM1.180201.007)', + }, + event: 'MainActivity', + integrations: { + All: true, + }, + userId: 'test_user_id', + messageId: 'id2', + properties: { + name: 'MainActivity', + automatic: true, + }, + originalTimestamp: '2020-03-12T09:05:03.421Z', + type: 'identify', + sentAt: '2020-03-12T09:05:13.042Z', + }, + }, + { + description: 'Group call', + destination: overrideDestination(sampleDestination, { + apiSecret: 'test_api_secret', + token: 'test_api_token', + groupKeySettings: [ + { + groupKey: 'company', + }, + ], + strictMode: true, + }), + metadata: { + jobId: 6, + additionalProp: 6, + }, + message: { + anonymousId: 'anonId06', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + traits: { + company: 'testComp', + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2023-07-06T11:59:02.402+05:30', + type: 'group', + userId: 'userId06', + }, + }, + { + description: 'Group key not present in traits', + destination: overrideDestination(sampleDestination, { + apiSecret: 'test_api_secret', + token: 'test_api_token', + groupKeySettings: [ + { + groupKey: 'company', + }, + ], + strictMode: true, + }), + metadata: { + jobId: 7, + additionalProp: 7, + }, + message: { + anonymousId: 'anonId06', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + page: { + path: '/destinations/mixpanel', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/mixpanel', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53709', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2023-07-06T11:59:02.402+05:30', + type: 'group', + userId: 'userId06', + }, + }, + ], + destType: 'mp', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/import/', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic dGVzdF9hcGlfc2VjcmV0Og==', + }, + params: { + strict: 1, + }, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"Loaded a Page","properties":{"ip":"0.0.0.0","$user_id":"hjikl","$current_url":"https://docs.rudderstack.com/destinations/mixpanel","$screen_dpi":2,"mp_lib":"RudderLabs JavaScript SDK","$app_build_number":"1.0.0","$app_version_string":"1.0.5","$insert_id":"dd266c67-9199-4a52-ba32-f46ddde67312","token":"test_api_token","distinct_id":"hjikl","time":1688624942,"name":"Contact Us","$browser":"Chrome","$browser_version":"79.0.3945.117"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 1, + additionalProp: 1, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'test_api_secret', + token: 'test_api_token', + prefixProperties: true, + useNativeSDK: false, + useOldMapping: true, + strictMode: true, + }, + DestinationDefinition: { + DisplayName: 'Mixpanel', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'MP', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'MP', + Transformations: [], + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$append":{"$transactions":{"$time":"2023-07-06T06:29:02.402Z","$amount":18.9}},"$token":"test_api_token","$distinct_id":"userId01"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/import/', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic dGVzdF9hcGlfc2VjcmV0Og==', + }, + params: { + strict: 1, + }, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"Product Viewed","properties":{"name":"T-Shirt","revenue":18.9,"$user_id":"userId01","$os":"iOS","$screen_height":1794,"$screen_width":1080,"$screen_dpi":420,"$carrier":"Android","$os_version":"8.1.0","$device":"generic_x86","$manufacturer":"Google","$model":"Android SDK built for x86","mp_device_model":"Android SDK built for x86","$wifi":true,"$bluetooth_enabled":false,"mp_lib":"com.rudderstack.android.sdk.core","$app_build_number":"1","$app_version_string":"1.0","$insert_id":"id2","token":"test_api_token","distinct_id":"userId01","time":1688624942,"$device_id":"anonId01"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 2, + additionalProp: 2, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'test_api_secret', + token: 'test_api_token', + prefixProperties: true, + identityMergeApi: 'simplified', + strictMode: true, + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Mixpanel', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'MP', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'MP', + Transformations: [], + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$set":{"$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$firstName":"Mickey","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"test_api_token","$distinct_id":"e6ab2c5e-2cda-44a9-a962-e2f67df78bca","$ip":"0.0.0.0","$time":1688624942},{"$set":{"$created":"2020-01-23T08:54:02.362Z","$email":"mickey@disney.com","$country_code":"USA","$city":"Disney","$initial_referrer":"https://docs.rudderstack.com","$initial_referring_domain":"docs.rudderstack.com","$name":"Mickey Mouse","$firstName":"Mickey","$lastName":"Mouse","$browser":"Chrome","$browser_version":"79.0.3945.117"},"$token":"test_api_token","$distinct_id":"$device:anonId01","$ip":"0.0.0.0","$time":1688624942},{"$set":{"$carrier":"Android","$manufacturer":"Google","$model":"Android SDK built for x86","$screen_height":1794,"$screen_width":1080,"$wifi":true,"anonymousId":"5094f5704b9cf2b3","userId":"test_user_id","$ios_devices":["test_device_token"],"$os":"iOS","$ios_device_model":"Android SDK built for x86","$ios_version":"8.1.0","$ios_app_release":"1","$ios_app_version":"1.0"},"$token":"test_api_token","$distinct_id":"test_user_id","$time":null}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/import/', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic dGVzdF9hcGlfc2VjcmV0Og==', + }, + params: { + strict: 1, + }, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"event":"$merge","properties":{"$distinct_ids":["test_user_id","5094f5704b9cf2b3"],"token":"test_api_token"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 3, + additionalProp: 3, + }, + { + jobId: 4, + additionalProp: 4, + }, + { + jobId: 5, + additionalProp: 5, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'test_api_secret', + token: 'test_api_token', + prefixProperties: true, + useNativeSDK: false, + useOldMapping: true, + strictMode: true, + }, + DestinationDefinition: { + DisplayName: 'Mixpanel', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'MP', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'MP', + Transformations: [], + }, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/engage/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$token":"test_api_token","$distinct_id":"userId06","$set":{"company":["testComp"]},"$ip":"0.0.0.0"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.mixpanel.com/groups/', + headers: {}, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"$token":"test_api_token","$group_key":"company","$group_id":"testComp","$set":{"company":"testComp"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 6, + additionalProp: 6, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'test_api_secret', + token: 'test_api_token', + prefixProperties: true, + groupKeySettings: [ + { + groupKey: 'company', + }, + ], + strictMode: true, + useNativeSDK: false, + }, + DestinationDefinition: { + DisplayName: 'Mixpanel', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'MP', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'MP', + Transformations: [], + }, + }, + { + metadata: [ + { + jobId: 7, + additionalProp: 7, + }, + ], + batched: false, + statusCode: 400, + error: + 'Group Key is not present. Please ensure that the group key is included in the payload as configured in the `Group Key Settings` in destination', + statTags: { + destType: 'MP', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + apiSecret: 'test_api_secret', + token: 'test_api_token', + prefixProperties: true, + useNativeSDK: false, + groupKeySettings: [ + { + groupKey: 'company', + }, + ], + strictMode: true, + }, + DestinationDefinition: { + DisplayName: 'Mixpanel', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'MP', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'MP', + Transformations: [], + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/new_relic/processor/data.ts b/test/integrations/destinations/new_relic/processor/data.ts new file mode 100644 index 00000000000..7eb4099e3bb --- /dev/null +++ b/test/integrations/destinations/new_relic/processor/data.ts @@ -0,0 +1,882 @@ +export const data = [ + { + name: 'new_relic', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'first', + userId: 'identified user id', + type: 'track', + anonymousId: 'anon-id-new', + context: { + traits: { + trait1: 'new-val', + }, + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + properties: { + abc: '123', + key: { + abc: 123, + }, + array: [ + { + abc: 123, + }, + { + def: 123, + }, + ], + }, + timestamp: '2020-02-02T00:23:09.544Z', + sentAt: '2020-02-02T00:23:09.544Z', + originalTimestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + accountId: '12345', + insertKey: '11111122702j2a2U2K2C7H', + customEventType: '', + sendDeviceContext: true, + sendUserIdanonymousId: true, + dataCenter: 'us', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insights-collector.newrelic.com/v1/accounts/12345/events', + headers: { + 'Api-Key': '11111122702j2a2U2K2C7H', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event: 'first', + abc: '123', + 'key.abc': 123, + 'array[0].abc': 123, + 'array[1].def': 123, + timestamp: 1580602989, + eventType: 'rudderstack', + userId: 'identified user id', + anonymousId: 'anon-id-new', + 'traits.trait1': 'new-val', + ip: '14.5.67.21', + 'library.name': 'http', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'new_relic', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'second', + userId: 'identified user id', + type: 'track', + anonymousId: 'anon-id-new', + context: { + traits: { + trait1: 'new-val', + }, + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + properties: { + abc: '123', + key: { + abc: 123, + }, + array: [ + { + abc: 123, + }, + { + def: 'test', + }, + ], + }, + timestamp: '2020-02-02T00:23:09.544Z', + sentAt: '2020-02-02T00:23:09.544Z', + originalTimestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + accountId: '12345', + insertKey: '11111122702j2a2U2K2C7H', + customEventType: '', + sendDeviceContext: false, + sendUserIdanonymousId: false, + dataCenter: 'us', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insights-collector.newrelic.com/v1/accounts/12345/events', + headers: { + 'Api-Key': '11111122702j2a2U2K2C7H', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event: 'second', + abc: '123', + 'key.abc': 123, + 'array[0].abc': 123, + 'array[1].def': 'test', + timestamp: 1580602989, + eventType: 'rudderstack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'new_relic', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'test', + userId: 'identified user id', + type: 'track', + anonymousId: 'anon-id-new', + context: { + traits: { + trait1: 'new-val', + }, + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + properties: { + abc: '123', + key: { + abc: 123, + }, + array: [ + { + abc: 123, + }, + { + def: 123, + }, + ], + }, + timestamp: '2020-02-02T00:23:09.544Z', + sentAt: '2020-02-02T00:23:09.544Z', + originalTimestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + accountId: '12345', + insertKey: '11111122702j2a2U2K2C7H', + customEventType: 'rudder-testing', + sendDeviceContext: false, + sendUserIdanonymousId: false, + dataCenter: 'us', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insights-collector.newrelic.com/v1/accounts/12345/events', + headers: { + 'Api-Key': '11111122702j2a2U2K2C7H', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event: 'test', + abc: '123', + 'key.abc': 123, + 'array[0].abc': 123, + 'array[1].def': 123, + timestamp: 1580602989, + eventType: 'rudder-testing', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'new_relic', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'first', + userId: 'identified user id', + type: 'track', + anonymousId: 'anon-id-new', + context: { + traits: { + trait1: 'new-val', + }, + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + properties: { + abc: '123', + key: { + abc: 123, + }, + array: [ + { + abc: 123, + }, + { + def: 123, + }, + ], + }, + timestamp: '2020-02-02T00:23:09.544Z', + sentAt: '2020-02-02T00:23:09.544Z', + originalTimestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + accountId: '12345', + insertKey: '11111122702j2a2U2K2C7H', + customEventType: '', + sendDeviceContext: true, + sendUserIdanonymousId: true, + dataCenter: 'eu', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insights-collector.eu01.nr-data.net/v1/accounts/12345/events', + headers: { + 'Api-Key': '11111122702j2a2U2K2C7H', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event: 'first', + abc: '123', + 'key.abc': 123, + 'array[0].abc': 123, + 'array[1].def': 123, + timestamp: 1580602989, + eventType: 'rudderstack', + userId: 'identified user id', + anonymousId: 'anon-id-new', + 'traits.trait1': 'new-val', + ip: '14.5.67.21', + 'library.name': 'http', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'new_relic', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'second', + userId: 'identified user id', + type: 'track', + anonymousId: 'anon-id-new', + context: { + traits: { + trait1: 'new-val', + }, + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + properties: { + abc: '123', + key: { + abc: 123, + }, + array: [ + { + abc: 123, + }, + { + def: 'test', + }, + ], + }, + timestamp: '2020-02-02T00:23:09.544Z', + sentAt: '2020-02-02T00:23:09.544Z', + originalTimestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + accountId: '12345', + insertKey: '11111122702j2a2U2K2C7H', + customEventType: '', + sendDeviceContext: false, + sendUserIdanonymousId: false, + dataCenter: 'eu', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insights-collector.eu01.nr-data.net/v1/accounts/12345/events', + headers: { + 'Api-Key': '11111122702j2a2U2K2C7H', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event: 'second', + abc: '123', + 'key.abc': 123, + 'array[0].abc': 123, + 'array[1].def': 'test', + timestamp: 1580602989, + eventType: 'rudderstack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'new_relic', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'test', + userId: 'identified user id', + type: 'track', + anonymousId: 'anon-id-new', + context: { + traits: { + trait1: 'new-val', + }, + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + properties: { + abc: '123', + key: { + abc: 123, + }, + array: [ + { + abc: 123, + }, + { + def: 123, + }, + ], + }, + timestamp: '2020-02-02T00:23:09.544Z', + sentAt: '2020-02-02T00:23:09.544Z', + originalTimestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + accountId: '12345', + insertKey: '11111122702j2a2U2K2C7H', + customEventType: 'rudder-testing', + sendDeviceContext: false, + sendUserIdanonymousId: true, + dataCenter: 'eu', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insights-collector.eu01.nr-data.net/v1/accounts/12345/events', + headers: { + 'Api-Key': '11111122702j2a2U2K2C7H', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event: 'test', + abc: '123', + 'key.abc': 123, + 'array[0].abc': 123, + 'array[1].def': 123, + timestamp: 1580602989, + eventType: 'rudder-testing', + userId: 'identified user id', + anonymousId: 'anon-id-new', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'new_relic', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'test', + type: 'track', + anonymousId: 'anon-id-new', + context: { + traits: { + trait1: 'new-val', + }, + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + properties: { + abc: '123', + key: { + abc: 123, + }, + array: [ + { + abc: 123, + }, + { + def: 123, + }, + ], + }, + timestamp: '2020-02-02T00:23:09.544Z', + sentAt: '2020-02-02T00:23:09.544Z', + originalTimestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + accountId: '12345', + insertKey: '11111122702j2a2U2K2C7H', + customEventType: '', + sendDeviceContext: true, + sendUserIdanonymousId: true, + dataCenter: 'us', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://insights-collector.newrelic.com/v1/accounts/12345/events', + headers: { + 'Api-Key': '11111122702j2a2U2K2C7H', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event: 'test', + abc: '123', + 'key.abc': 123, + 'array[0].abc': 123, + 'array[1].def': 123, + timestamp: 1580602989, + eventType: 'rudderstack', + anonymousId: 'anon-id-new', + 'traits.trait1': 'new-val', + ip: '14.5.67.21', + 'library.name': 'http', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'new_relic', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + event: 'first', + userId: 'identified user id', + type: 'identify', + anonymousId: 'anon-id-new', + context: { + traits: { + trait1: 'new-val', + }, + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + traits: { + abc: '123', + key: { + abc: 123, + }, + array: [ + { + abc: 123, + }, + { + def: 123, + }, + ], + }, + timestamp: '2020-02-02T00:23:09.544Z', + sentAt: '2020-02-02T00:23:09.544Z', + originalTimestamp: '2020-02-02T00:23:09.544Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + accountId: '12345', + insertKey: '11111122702j2a2U2K2C7H', + customEventType: '', + sendDeviceContext: true, + sendUserIdanonymousId: true, + dataCenter: 'us', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + statusCode: 400, + error: + 'message type identify is not supported: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message type identify is not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + implementation: 'cdkV2', + destType: 'NEW_RELIC', + module: 'destination', + feature: 'processor', + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/ometria/processor/data.ts b/test/integrations/destinations/ometria/processor/data.ts new file mode 100644 index 00000000000..c28854c9fd9 --- /dev/null +++ b/test/integrations/destinations/ometria/processor/data.ts @@ -0,0 +1,1078 @@ +export const data = [ + { + name: 'ometria', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + listingId: 'test1', + email: 'testone@gmail.com', + firstName: 'test', + lastName: 'one', + field1: 'val1', + ip: '0.0.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: 'userId1', + integrations: { Ometria: { listingId: 'test1' } }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + allowMarketing: false, + allowTransactional: false, + marketingOptin: 'EXPLICITLY_OPTEDOUT', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.ometria.com/v2/push', + headers: { 'X-Ometria-Auth': 'dummyApiKey' }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"email":"testone@gmail.com","id":"test1","customer_id":"userId1","firstname":"test","lastname":"one","@type":"contact","properties":{"field1":"val1","ip":"0.0.0.0"},"marketing_optin":"EXPLICITLY_OPTEDOUT","channels":{"sms":{"allow_marketing":false,"allow_transactional":false}}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ometria', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + listingId: 'test1', + email: 'testone@gmail.com', + firstName: 'test', + lastName: 'one', + field1: 'val1', + ip: '0.0.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: 'userId1', + integrations: { Ometria: { listingId: 'updatedId1', allowMarketing: true } }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + allowMarketing: false, + allowTransactional: false, + marketingOptin: 'EXPLICITLY_OPTEDOUT', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.ometria.com/v2/push', + headers: { 'X-Ometria-Auth': 'dummyApiKey' }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"email":"testone@gmail.com","id":"updatedId1","customer_id":"userId1","firstname":"test","lastname":"one","@type":"contact","properties":{"field1":"val1","ip":"0.0.0.0"},"marketing_optin":"EXPLICITLY_OPTEDOUT","channels":{"sms":{"allow_marketing":true,"allow_transactional":false}}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ometria', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + listingId: 'test1', + email: 'testone@gmail.com', + name: 'test one two', + field1: 'val1', + ip: '0.0.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: 'userId1', + integrations: { Ometria: { listingId: 'test1' } }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + allowMarketing: false, + allowTransactional: false, + marketingOptin: 'EXPLICITLY_OPTEDOUT', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.ometria.com/v2/push', + headers: { 'X-Ometria-Auth': 'dummyApiKey' }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"email":"testone@gmail.com","id":"test1","customer_id":"userId1","@type":"contact","properties":{"field1":"val1","ip":"0.0.0.0"},"marketing_optin":"EXPLICITLY_OPTEDOUT","channels":{"sms":{"allow_marketing":false,"allow_transactional":false}},"firstname":"test","middlename":"one","lastname":"two"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ometria', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + listingId: 'test1', + email: 'testone@gmail.com', + name: 'test one', + field1: 'val1', + marketinOptin: 'NOT_SPECIFIED', + phoneNumber: '+911234567890', + channels: { sms: {} }, + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: 'userId1', + integrations: { Ometria: { listingId: 'test1' } }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + allowMarketing: false, + allowTransactional: false, + marketingOptin: 'NOT_SPECIFIED', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.ometria.com/v2/push', + headers: { 'X-Ometria-Auth': 'dummyApiKey' }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"email":"testone@gmail.com","id":"test1","phone_number":"+911234567890","customer_id":"userId1","@type":"contact","properties":{"field1":"val1"},"marketing_optin":"NOT_SPECIFIED","channels":{"sms":{"allow_marketing":false,"allow_transactional":false}},"firstname":"test","lastname":"one"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ometria', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + listingId: 'test1', + email: 'testone@gmail.com', + name: 'test one', + field1: 'val1', + marketinOptin: 'NOT_SPECIFIED', + phoneNumber: '+911234567890', + channels: { sms: {} }, + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: 'userId1', + integrations: { + Ometria: { listingId: 'test1', allowMarketing: true, allowTransactional: true }, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + apiKey: 'dummyApiKey', + allowMarketing: false, + allowTransactional: false, + marketingOptin: 'NOT_SPECIFIED', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.ometria.com/v2/push', + headers: { 'X-Ometria-Auth': 'dummyApiKey' }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"email":"testone@gmail.com","id":"test1","phone_number":"+911234567890","customer_id":"userId1","@type":"contact","properties":{"field1":"val1"},"marketing_optin":"NOT_SPECIFIED","channels":{"sms":{"allow_marketing":true,"allow_transactional":true}},"firstname":"test","lastname":"one"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ometria', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { email: 'testone@gmail.com', firstName: 'test', lastName: 'one' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: 'userId1', + event: 'event name', + properties: { + event_id: 'eventId1', + timestamp: '2017-05-01T14:00:00Z', + field1: 'val1', + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { Config: { apiKey: 'dummyApiKey' } }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.ometria.com/v2/push', + headers: { 'X-Ometria-Auth': 'dummyApiKey' }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"id":"eventId1","timestamp":"2017-05-01T14:00:00Z","identity_email":"testone@gmail.com","identity_account_id":"userId1","@type":"custom_event","event_type":"event name","properties":{"field1":"val1"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ometria', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { email: 'testone@gmail.com', firstName: 'test', lastName: 'one' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: 'userId1', + event: 'order completed', + properties: { + order_id: 'orderId1', + timestamp: '2017-05-01T14:00:00Z', + grand_total: 1000, + currency: 'INR', + field1: 'val1', + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { Config: { apiKey: 'dummyApiKey' } }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.ometria.com/v2/push', + headers: { 'X-Ometria-Auth': 'dummyApiKey' }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"id":"orderId1","timestamp":"2017-05-01T14:00:00Z","grand_total":1000,"currency":"INR","ip_address":"0.0.0.0","customer":{"id":"userId1","email":"testone@gmail.com","firstname":"test","lastname":"one"},"@type":"order","status":"complete","is_valid":true,"properties":{"field1":"val1"}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ometria', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { email: 'testone@gmail.com', firstName: 'test', lastName: 'one' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: 'userId1', + event: 'order completed', + properties: { + order_id: 'orderId1', + timestamp: '2017-05-01T14:00:00Z', + grand_total: 1000, + currency: 'INR', + field1: 'val1', + products: [{ product_id: 'prod123', quantity: 4, subtotal: 10 }], + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { Config: { apiKey: 'dummyApiKey' } }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.ometria.com/v2/push', + headers: { 'X-Ometria-Auth': 'dummyApiKey' }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"id":"orderId1","timestamp":"2017-05-01T14:00:00Z","grand_total":1000,"currency":"INR","ip_address":"0.0.0.0","customer":{"id":"userId1","email":"testone@gmail.com","firstname":"test","lastname":"one"},"@type":"order","status":"complete","is_valid":true,"properties":{"field1":"val1"},"lineitems":[{"product_id":"prod123","quantity":4,"subtotal":10}]}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ometria', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { email: 'testone@gmail.com', firstName: 'test', lastName: 'one' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: 'userId1', + event: 'order completed', + properties: { + order_id: 'orderId1', + timestamp: '2017-05-01T14:00:00Z', + grand_total: 1000, + currency: 'INR', + field1: 'val1', + products: [ + { + product_id: 'prod123', + quantity: 4, + subtotal: 10, + variant_options: [{ type: 'size', id: 'newid', label: '5' }], + }, + ], + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { Config: { apiKey: 'dummyApiKey' } }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.ometria.com/v2/push', + headers: { 'X-Ometria-Auth': 'dummyApiKey' }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"id":"orderId1","timestamp":"2017-05-01T14:00:00Z","grand_total":1000,"currency":"INR","ip_address":"0.0.0.0","customer":{"id":"userId1","email":"testone@gmail.com","firstname":"test","lastname":"one"},"@type":"order","status":"complete","is_valid":true,"properties":{"field1":"val1"},"lineitems":[{"product_id":"prod123","quantity":4,"subtotal":10,"variant_options":[{"id":"newid","type":"size","label":"5"}]}]}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ometria', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { email: 'testone@gmail.com', firstName: 'test', lastName: 'one' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: 'userId1', + event: 'order completed', + properties: { + order_id: 'orderId1', + timestamp: '2017-05-01T14:00:00Z', + grand_total: 1000, + currency: 'INR', + field1: 'val1', + billing_address: 'Ba', + shipping_address: 'Sa', + products: [ + { + product_id: 'prod123', + quantity: 4, + subtotal: 10, + variant_options: [{ type: 'size', id: 'newid', label: '5' }], + }, + ], + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { Config: { apiKey: 'dummyApiKey' } }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.ometria.com/v2/push', + headers: { 'X-Ometria-Auth': 'dummyApiKey' }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"id":"orderId1","timestamp":"2017-05-01T14:00:00Z","grand_total":1000,"currency":"INR","ip_address":"0.0.0.0","customer":{"id":"userId1","email":"testone@gmail.com","firstname":"test","lastname":"one"},"@type":"order","status":"complete","is_valid":true,"properties":{"field1":"val1"},"lineitems":[{"product_id":"prod123","quantity":4,"subtotal":10,"variant_options":[{"id":"newid","type":"size","label":"5"}]}]}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ometria', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { email: 'testone@gmail.com', firstName: 'test', lastName: 'one' }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + page: { + path: '/destinations/ometria', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/ometria', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'track', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: 'userId1', + event: 'order completed', + properties: { + order_id: 'orderId1', + timestamp: '2017-05-01T14:00:00Z', + grand_total: 1000, + currency: 'INR', + field1: 'val1', + shipping_address: { + city: 'Kolkata', + state: 'West Bengal', + postcode: '700001', + country_code: 'IN', + }, + products: [ + { + product_id: 'prod123', + quantity: 4, + subtotal: 10, + variant_options: [{ type: 'size', id: 'newid', label: '5' }], + }, + ], + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { Config: { apiKey: 'dummyApiKey' } }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.ometria.com/v2/push', + headers: { 'X-Ometria-Auth': 'dummyApiKey' }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"id":"orderId1","timestamp":"2017-05-01T14:00:00Z","grand_total":1000,"currency":"INR","ip_address":"0.0.0.0","shipping_address":{"city":"Kolkata","state":"West Bengal","country_code":"IN","postcode":"700001"},"customer":{"id":"userId1","email":"testone@gmail.com","firstname":"test","lastname":"one"},"@type":"order","status":"complete","is_valid":true,"properties":{"field1":"val1"},"lineitems":[{"product_id":"prod123","quantity":4,"subtotal":10,"variant_options":[{"id":"newid","type":"size","label":"5"}]}]}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/ometria/router/data.ts b/test/integrations/destinations/ometria/router/data.ts new file mode 100644 index 00000000000..ef15eea5862 --- /dev/null +++ b/test/integrations/destinations/ometria/router/data.ts @@ -0,0 +1,336 @@ +export const data = [ + { + name: 'ometria', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'identify', + sentAt: '2021-10-25T09:40:08.880Z', + userId: 'userId1', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.1', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:5500/index.html', + path: '/index.html', + title: 'Test', + search: '', + tab_url: 'http://127.0.0.1:5500/index.html', + referrer: 'http://127.0.0.1:5500/index.html', + initial_referrer: 'http://127.0.0.1:5500/index.html', + referring_domain: '127.0.0.1:5500', + initial_referring_domain: '127.0.0.1:5500', + }, + locale: 'en-GB', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 1440, + innerHeight: 335, + }, + traits: { + listingId: 'test1', + email: 'testone@gmail.com', + firstName: 'test', + lastName: 'one', + field1: 'val1', + ip: '0.0.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.1', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36', + }, + rudderId: 'e3e907f1-f79a-444b-b91d-da47488f8273', + messageId: '8cdd3d2e-5e07-42ec-abdc-9b6bd4333840', + timestamp: '2021-10-25T15:10:08.888+05:30', + receivedAt: '2021-10-25T15:10:08.889+05:30', + request_ip: '[::1]', + anonymousId: '7138f7d9-5dd2-4337-805d-ca17be59dc8e', + integrations: { + Ometria: { + listingId: 'test1', + }, + }, + originalTimestamp: '2021-10-25T09:40:08.879Z', + }, + metadata: { jobId: 1 }, + destination: { + ID: '1zzHtStW2ZPlullmz6L7DGnmk9V', + Name: 'ometria-dev', + DestinationDefinition: { + ID: '1zgVZhcj1Tij4qlKg7B1Jp16IrH', + Name: 'OMETRIA', + DisplayName: 'Ometria', + Config: { + transformAt: 'router', + transformAtV1: 'router', + saveDestinationResponse: true, + includeKeys: [], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + ], + supportedMessageTypes: ['identify', 'track'], + destConfig: { + defaultConfig: [ + 'apiKey', + 'marketingOptin', + 'allowMarketing', + 'allowTransactional', + ], + }, + secretKeys: ['apiKey'], + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'dummyApiKey', + allowMarketing: false, + allowTransactional: false, + marketingOptin: 'EXPLICITLY_OPTEDOUT', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + { + message: { + type: 'identify', + sentAt: '2021-10-25T09:40:08.880Z', + anonymousId: '123456', + userId: 'userId1', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.1', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:5500/index.html', + path: '/index.html', + title: 'Test', + search: '', + tab_url: 'http://127.0.0.1:5500/index.html', + referrer: 'http://127.0.0.1:5500/index.html', + initial_referrer: 'http://127.0.0.1:5500/index.html', + referring_domain: '127.0.0.1:5500', + initial_referring_domain: '127.0.0.1:5500', + }, + locale: 'en-GB', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 1440, + innerHeight: 335, + }, + traits: { + listingId: 'test1', + email: 'testone@gmail.com', + firstName: 'test', + lastName: 'one', + field1: 'val1', + ip: '0.0.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.1', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36', + }, + rudderId: 'e3e907f1-f79a-444b-b91d-da47488f8273', + messageId: '8cdd3d2e-5e07-42ec-abdc-9b6bd4333840', + timestamp: '2021-10-25T15:10:08.888+05:30', + receivedAt: '2021-10-25T15:10:08.889+05:30', + request_ip: '[::1]', + integrations: { + Ometria: { + listingId: 'updatedId1', + allowMarketing: true, + }, + }, + originalTimestamp: '2021-10-25T09:40:08.879Z', + }, + metadata: { jobId: 2 }, + destination: { + ID: '1zzHtStW2ZPlullmz6L7DGnmk9V', + Name: 'ometria-dev', + DestinationDefinition: { + ID: '1zgVZhcj1Tij4qlKg7B1Jp16IrH', + Name: 'OMETRIA', + DisplayName: 'Ometria', + Config: { + transformAt: 'router', + transformAtV1: 'router', + saveDestinationResponse: true, + includeKeys: [], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + ], + supportedMessageTypes: ['identify', 'track'], + destConfig: { + defaultConfig: [ + 'apiKey', + 'marketingOptin', + 'allowMarketing', + 'allowTransactional', + ], + }, + secretKeys: ['apiKey'], + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'dummyApiKey', + allowMarketing: false, + allowTransactional: false, + marketingOptin: 'EXPLICITLY_OPTEDOUT', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + destType: 'ometria', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.ometria.com/v2/push', + headers: { + 'X-Ometria-Auth': 'dummyApiKey', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"email":"testone@gmail.com","id":"test1","customer_id":"userId1","firstname":"test","lastname":"one","@type":"contact","properties":{"field1":"val1","ip":"0.0.0.0"},"marketing_optin":"EXPLICITLY_OPTEDOUT","channels":{"sms":{"allow_marketing":false,"allow_transactional":false}}},{"email":"testone@gmail.com","id":"updatedId1","customer_id":"userId1","firstname":"test","lastname":"one","@type":"contact","properties":{"field1":"val1","ip":"0.0.0.0"},"marketing_optin":"EXPLICITLY_OPTEDOUT","channels":{"sms":{"allow_marketing":true,"allow_transactional":false}}}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 1, + }, + { + jobId: 2, + }, + ], + batched: true, + statusCode: 200, + destination: { + ID: '1zzHtStW2ZPlullmz6L7DGnmk9V', + Name: 'ometria-dev', + DestinationDefinition: { + ID: '1zgVZhcj1Tij4qlKg7B1Jp16IrH', + Name: 'OMETRIA', + DisplayName: 'Ometria', + Config: { + transformAt: 'router', + transformAtV1: 'router', + saveDestinationResponse: true, + includeKeys: [], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + 'flutter', + 'cordova', + ], + supportedMessageTypes: ['identify', 'track'], + destConfig: { + defaultConfig: [ + 'apiKey', + 'marketingOptin', + 'allowMarketing', + 'allowTransactional', + ], + }, + secretKeys: ['apiKey'], + }, + ResponseRules: {}, + }, + Config: { + apiKey: 'dummyApiKey', + allowMarketing: false, + allowTransactional: false, + marketingOptin: 'EXPLICITLY_OPTEDOUT', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/one_signal/processor/data.ts b/test/integrations/destinations/one_signal/processor/data.ts new file mode 100644 index 00000000000..7f244aa7114 --- /dev/null +++ b/test/integrations/destinations/one_signal/processor/data.ts @@ -0,0 +1,1545 @@ +export const data = [ + { + name: 'one_signal', + description: + 'Identify call for creating new device (phone and playerId is not available in the payload). Integrations object is also not available.', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: true, + smsDeviceType: true, + eventAsTags: false, + allowedProperties: [], + }, + }, + message: { + type: 'identify', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + context: { + os: { name: '', version: '1.12.3' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { + brand: 'John Players', + price: '15000', + firstName: 'Test', + email: 'test@rudderstack.com', + userId: 'user@27', + }, + locale: 'en-US', + device: { token: 'token', id: 'id', type: 'ios' }, + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://onesignal.com/api/v1/players', + headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + device_os: '1.12.3', + laguage: 'en-US', + created_at: 1609693373, + last_active: 1609693373, + external_user_id: 'user@27', + app_id: 'random-818c-4a28-b98e-6cd8a994eb22', + device_type: 11, + identifier: 'test@rudderstack.com', + tags: { + brand: 'John Players', + price: '15000', + firstName: 'Test', + email: 'test@rudderstack.com', + userId: 'user@27', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://onesignal.com/api/v1/players', + headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + device_os: '1.12.3', + laguage: 'en-US', + created_at: 1609693373, + last_active: 1609693373, + external_user_id: 'user@27', + app_id: 'random-818c-4a28-b98e-6cd8a994eb22', + device_type: 8, + identifier: '97c46c81-3140-456d-b2a9-690d70aaca35', + tags: { + brand: 'John Players', + price: '15000', + firstName: 'Test', + email: 'test@rudderstack.com', + userId: 'user@27', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'one_signal', + description: + 'Identify call for creating new device (playerId is not available in the payload). Integrations object is also not available. Email and phone both are available in the payload.', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: true, + smsDeviceType: true, + eventAsTags: false, + allowedProperties: [], + }, + }, + message: { + type: 'identify', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + context: { + os: { name: '', version: '1.12.3' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { + brand: 'John Players', + price: '15000', + firstName: 'Test', + email: 'test@rudderstack.com', + phone: '+917836362334', + userId: 'user@27', + }, + locale: 'en-US', + device: { token: 'token', id: 'id', type: 'ios' }, + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://onesignal.com/api/v1/players', + headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + device_os: '1.12.3', + laguage: 'en-US', + created_at: 1609693373, + last_active: 1609693373, + external_user_id: 'user@27', + app_id: 'random-818c-4a28-b98e-6cd8a994eb22', + device_type: 11, + identifier: 'test@rudderstack.com', + tags: { + brand: 'John Players', + price: '15000', + firstName: 'Test', + email: 'test@rudderstack.com', + phone: '+917836362334', + userId: 'user@27', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://onesignal.com/api/v1/players', + headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + device_os: '1.12.3', + laguage: 'en-US', + created_at: 1609693373, + last_active: 1609693373, + external_user_id: 'user@27', + app_id: 'random-818c-4a28-b98e-6cd8a994eb22', + device_type: 14, + identifier: '+917836362334', + tags: { + brand: 'John Players', + price: '15000', + firstName: 'Test', + email: 'test@rudderstack.com', + phone: '+917836362334', + userId: 'user@27', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://onesignal.com/api/v1/players', + headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + device_os: '1.12.3', + laguage: 'en-US', + created_at: 1609693373, + last_active: 1609693373, + external_user_id: 'user@27', + app_id: 'random-818c-4a28-b98e-6cd8a994eb22', + device_type: 8, + identifier: '97c46c81-3140-456d-b2a9-690d70aaca35', + tags: { + brand: 'John Players', + price: '15000', + firstName: 'Test', + email: 'test@rudderstack.com', + phone: '+917836362334', + userId: 'user@27', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'one_signal', + description: + 'Identify call for creating a new device(deviceType and identifier is present in the integrations object, playerId not present)', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: false, + smsDeviceType: false, + eventAsTags: false, + allowedProperties: [], + }, + }, + message: { + type: 'identify', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + context: { + os: { name: '', version: '1.12.3' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { + brand: 'John Players', + price: '15000', + firstName: 'Test', + email: 'test@rudderstack.com', + phone: '+917836362334', + userId: 'user@27', + }, + locale: 'en-US', + device: { token: 'token', id: 'id', type: 'ios' }, + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + integrations: { one_signal: { deviceType: '5', identifier: 'random_id' } }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://onesignal.com/api/v1/players', + headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + device_os: '1.12.3', + laguage: 'en-US', + created_at: 1609693373, + last_active: 1609693373, + external_user_id: 'user@27', + app_id: 'random-818c-4a28-b98e-6cd8a994eb22', + device_type: 5, + identifier: 'random_id', + tags: { + brand: 'John Players', + price: '15000', + firstName: 'Test', + email: 'test@rudderstack.com', + phone: '+917836362334', + userId: 'user@27', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'one_signal', + description: + 'Identify call for creating a new device(channel is mobile and integrations object is not present, playerId not present)', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: false, + smsDeviceType: false, + eventAsTags: false, + allowedProperties: [], + }, + }, + message: { + type: 'identify', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'mobile', + context: { + os: { name: '', version: '1.12.3' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { + brand: 'John Players', + price: '15000', + firstName: 'Test', + email: 'test@rudderstack.com', + phone: '+917836362334', + userId: 'user@27', + }, + locale: 'en-US', + device: { token: 'token', id: 'id', type: 'android' }, + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://onesignal.com/api/v1/players', + headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + device_os: '1.12.3', + laguage: 'en-US', + created_at: 1609693373, + last_active: 1609693373, + external_user_id: 'user@27', + app_id: 'random-818c-4a28-b98e-6cd8a994eb22', + device_type: 1, + identifier: 'token', + tags: { + brand: 'John Players', + price: '15000', + firstName: 'Test', + email: 'test@rudderstack.com', + phone: '+917836362334', + userId: 'user@27', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'one_signal', + description: 'Identify call for Editing a device using playerId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: false, + smsDeviceType: false, + eventAsTags: false, + allowedProperties: [], + }, + }, + message: { + type: 'identify', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'mobile', + context: { + externalId: [{ type: 'playerId', id: '85be324d-6dab-4293-ad1f-42199d4c455b' }], + os: { name: '', version: '1.12.3' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { + brand: 'Raymonds', + price: '14000', + firstName: 'Test', + email: 'test@rudderstack.com', + phone: '+917836362334', + userId: 'user@27', + }, + locale: 'en-US', + device: { token: 'token', id: 'id', type: 'android' }, + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://onesignal.com/api/v1/players/85be324d-6dab-4293-ad1f-42199d4c455b', + headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + device_os: '1.12.3', + laguage: 'en-US', + created_at: 1609693373, + last_active: 1609693373, + external_user_id: 'user@27', + app_id: 'random-818c-4a28-b98e-6cd8a994eb22', + tags: { + brand: 'Raymonds', + price: '14000', + firstName: 'Test', + email: 'test@rudderstack.com', + phone: '+917836362334', + userId: 'user@27', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'one_signal', + description: 'Track call for updating tags using external_user_id', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: false, + smsDeviceType: false, + eventAsTags: false, + allowedProperties: [{ propertyName: 'brand' }, { propertyName: 'price' }], + }, + }, + message: { + event: 'add_to_Cart', + type: 'track', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + properties: { brand: 'Zara', price: '12000' }, + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { tags: { brand: 'Zara', price: '12000', add_to_Cart: true } }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'PUT', + params: {}, + headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, + version: '1', + endpoint: + 'https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/user@27', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'one_signal', + description: + 'Track call for updating tags using external_user_id (with concatenated event name)', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: false, + smsDeviceType: false, + eventAsTags: true, + allowedProperties: [{ propertyName: 'brand' }, { propertyName: 'price' }], + }, + }, + message: { + event: 'add_to_Cart', + type: 'track', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + properties: { brand: 'Zara', price: '12000' }, + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + tags: { + add_to_Cart: true, + add_to_Cart_brand: 'Zara', + add_to_Cart_price: '12000', + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'PUT', + params: {}, + headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, + version: '1', + endpoint: + 'https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/user@27', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'one_signal', + description: + 'Track call with tags key having empty value( Output Behaviour: Those keys will be deleted)', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: false, + smsDeviceType: false, + eventAsTags: true, + allowedProperties: [{ propertyName: 'brand' }, { propertyName: 'price' }], + }, + }, + message: { + event: 'add_to_Cart', + type: 'track', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + properties: { brand: '', price: '' }, + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { tags: { add_to_Cart: true, add_to_Cart_brand: '', add_to_Cart_price: '' } }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'PUT', + params: {}, + headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, + version: '1', + endpoint: + 'https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/user@27', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'one_signal', + description: 'Track call having no allowed properties)', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: false, + smsDeviceType: false, + eventAsTags: false, + allowedProperties: [], + }, + }, + message: { + event: 'add_to_Cart', + type: 'track', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + properties: { brand: 'zara', price: '10000' }, + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { XML: {}, FORM: {}, JSON: { tags: { add_to_Cart: true } }, JSON_ARRAY: {} }, + type: 'REST', + files: {}, + method: 'PUT', + params: {}, + headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, + version: '1', + endpoint: + 'https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/user@27', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'one_signal', + description: 'Group call ', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: false, + smsDeviceType: false, + eventAsTags: true, + allowedProperties: [{ propertyName: 'brand' }, { propertyName: 'price' }], + }, + }, + message: { + type: 'group', + groupId: 'players111', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { brand: '', price: '10000' }, + locale: 'en-US', + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { tags: { brand: '', price: '10000', groupId: 'players111' } }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'PUT', + params: {}, + headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, + version: '1', + endpoint: + 'https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/user@27', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'one_signal', + description: 'Check for appId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: '', + emailDeviceType: false, + smsDeviceType: false, + eventAsTags: true, + allowedProperties: [{ propertyName: 'brand' }, { propertyName: 'price' }], + }, + }, + message: { + type: 'group', + groupId: 'players111', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { brand: '', price: '10000' }, + locale: 'en-US', + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'appId is a required field', + statTags: { + destType: 'ONE_SIGNAL', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'one_signal', + description: 'Check for message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: false, + smsDeviceType: false, + eventAsTags: true, + allowedProperties: [{ propertyName: 'brand' }, { propertyName: 'price' }], + }, + }, + message: { + type: 'page', + groupId: 'players111', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { brand: '', price: '10000' }, + locale: 'en-US', + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Message type page is not supported', + statTags: { + destType: 'ONE_SIGNAL', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'one_signal', + description: 'Validating deviceType', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: false, + smsDeviceType: false, + eventAsTags: false, + allowedProperties: [], + }, + }, + message: { + type: 'identify', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + context: { + os: { name: '', version: '1.12.3' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { + brand: 'John Players', + price: '15000', + firstName: 'Test', + email: 'test@rudderstack.com', + phone: '+917836362334', + userId: 'user@27', + }, + locale: 'en-US', + device: { token: 'token', id: 'id', type: 'ios' }, + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + integrations: { one_signal: { deviceType: '15', identifier: 'random_id' } }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'device_type 15 is not a valid device_type', + statTags: { + destType: 'ONE_SIGNAL', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'one_signal', + description: 'check for Message type not present', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: false, + smsDeviceType: false, + eventAsTags: false, + allowedProperties: [{ propertyName: 'brand' }, { propertyName: 'price' }], + }, + }, + message: { + event: 'add_to_Cart', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + properties: { brand: 'Zara', price: '12000' }, + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type is required', + statTags: { + destType: 'ONE_SIGNAL', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'one_signal', + description: 'Check for event name in the track call', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: false, + smsDeviceType: false, + eventAsTags: false, + allowedProperties: [{ propertyName: 'brand' }, { propertyName: 'price' }], + }, + }, + message: { + type: 'track', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + properties: { brand: 'Zara', price: '12000' }, + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event is not present in the input payloads', + statTags: { + destType: 'ONE_SIGNAL', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'one_signal', + description: 'Check for groupId ', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: false, + smsDeviceType: false, + eventAsTags: true, + allowedProperties: [{ propertyName: 'brand' }, { propertyName: 'price' }], + }, + }, + message: { + type: 'group', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { brand: '', price: '10000' }, + locale: 'en-US', + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'groupId is required for group events', + statTags: { + destType: 'ONE_SIGNAL', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'one_signal', + description: 'Check for user Id (required field to update the device) for track call', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: false, + smsDeviceType: false, + eventAsTags: false, + allowedProperties: [{ propertyName: 'brand' }, { propertyName: 'price' }], + }, + }, + message: { + event: 'add_to_Cart', + type: 'track', + sentAt: '2021-01-03T17:02:53.195Z', + channel: 'web', + properties: { brand: 'Zara', price: '12000' }, + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { density: 2 }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.1.11' }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'userId is required for track events/updating a device', + statTags: { + destType: 'ONE_SIGNAL', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/one_signal/router/data.ts b/test/integrations/destinations/one_signal/router/data.ts new file mode 100644 index 00000000000..5f45d2e6243 --- /dev/null +++ b/test/integrations/destinations/one_signal/router/data.ts @@ -0,0 +1,286 @@ +export const data = [ + { + name: 'one_signal', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: true, + smsDeviceType: true, + eventAsTags: false, + allowedProperties: [], + }, + }, + metadata: { + jobId: 1, + }, + message: { + type: 'identify', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + context: { + os: { + name: '', + version: '1.12.3', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + traits: { + brand: 'John Players', + price: '15000', + firstName: 'Test', + email: 'test@rudderstack.com', + userId: 'user@27', + }, + locale: 'en-US', + device: { + token: 'token', + id: 'id', + type: 'ios', + }, + screen: { + density: 2, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + { + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: false, + smsDeviceType: false, + eventAsTags: false, + allowedProperties: [ + { + propertyName: 'brand', + }, + { + propertyName: 'price', + }, + ], + }, + }, + metadata: { + jobId: 2, + }, + message: { + event: 'add_to_Cart', + type: 'track', + sentAt: '2021-01-03T17:02:53.195Z', + userId: 'user@27', + channel: 'web', + properties: { + brand: 'Zara', + price: '12000', + }, + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.11', + namespace: 'com.rudderlabs.javascript', + }, + locale: 'en-US', + screen: { + density: 2, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.11', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0', + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + originalTimestamp: '2021-01-03T17:02:53.193Z', + }, + }, + ], + destType: 'one_signal', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://onesignal.com/api/v1/players', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + device_os: '1.12.3', + laguage: 'en-US', + created_at: 1609693373, + last_active: 1609693373, + external_user_id: 'user@27', + app_id: 'random-818c-4a28-b98e-6cd8a994eb22', + device_type: 11, + identifier: 'test@rudderstack.com', + tags: { + brand: 'John Players', + price: '15000', + firstName: 'Test', + email: 'test@rudderstack.com', + userId: 'user@27', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://onesignal.com/api/v1/players', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + device_os: '1.12.3', + laguage: 'en-US', + created_at: 1609693373, + last_active: 1609693373, + external_user_id: 'user@27', + app_id: 'random-818c-4a28-b98e-6cd8a994eb22', + device_type: 8, + identifier: '97c46c81-3140-456d-b2a9-690d70aaca35', + tags: { + brand: 'John Players', + price: '15000', + firstName: 'Test', + email: 'test@rudderstack.com', + userId: 'user@27', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: true, + smsDeviceType: true, + eventAsTags: false, + allowedProperties: [], + }, + }, + }, + { + batchedRequest: { + body: { + XML: {}, + FORM: {}, + JSON: { + tags: { + brand: 'Zara', + price: '12000', + add_to_Cart: true, + }, + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'PUT', + params: {}, + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: + 'https://onesignal.com/api/v1/apps/random-818c-4a28-b98e-6cd8a994eb22/users/user@27', + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + appId: 'random-818c-4a28-b98e-6cd8a994eb22', + emailDeviceType: false, + smsDeviceType: false, + eventAsTags: false, + allowedProperties: [ + { + propertyName: 'brand', + }, + { + propertyName: 'price', + }, + ], + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/optimizely_fullstack/network.ts b/test/integrations/destinations/optimizely_fullstack/network.ts new file mode 100644 index 00000000000..e6a1101ab90 --- /dev/null +++ b/test/integrations/destinations/optimizely_fullstack/network.ts @@ -0,0 +1,206 @@ +const deleteNwData = [ + { + httpReq: { + method: 'get', + url: 'https://cdn.optimizely.com/datafiles/abc.json', + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + accountId: 'test_account_id', + projectId: 'test_project_id', + revision: '45', + attributes: [ + { + id: 'test_attribute_id_1', + key: 'gender', + }, + { + id: 'test_attribute_id_2', + key: 'name', + }, + { + id: 'test_attribute_id_3', + key: 'userId', + }, + { + id: 'test_attribute_id_4', + key: 'anonymousId', + }, + { + id: 'test_attribute_id_5', + key: 'company', + }, + ], + audiences: [ + { + id: '$opt_test_audience', + name: 'Optimizely-Generated Audience for Backwards Compatibility', + conditions: + '["or", {"match": "exact", "name": "$opt_test_attribute", "type": "custom_attribute", "value": "$opt_test_value"}]', + }, + ], + version: '4', + events: [ + { + id: 'test_event_id_1', + experimentIds: ['test_experiment_id'], + key: 'Product Added', + }, + { + id: 'test_event_id_2', + experimentIds: ['test_experiment_id'], + key: 'Product Removed', + }, + { + id: 'test_event_id_3', + experimentIds: ['test_experiment_id'], + key: 'Order Placed', + }, + { + id: 'test_event_id_4', + experimentIds: ['test_experiment_id'], + key: 'Viewed Meal page', + }, + { + id: 'test_event_id_5', + experimentIds: ['test_experiment_id'], + key: 'Viewed food page', + }, + { + id: 'test_event_id_6', + experimentIds: ['test_experiment_id'], + key: 'Viewed Main screen', + }, + { + id: 'test_event_id_7', + experimentIds: ['test_experiment_id'], + key: 'Home', + }, + { + id: 'test_event_id_8', + experimentIds: ['test_experiment_id'], + key: 'Index', + }, + ], + anonymizeIP: true, + botFiltering: false, + typedAudiences: [], + variables: [], + environmentKey: 'production', + sdkKey: 'test_sdk_key', + featureFlags: [ + { + id: 'test_feature_flag_id', + key: 'testfeature', + experimentIds: ['test_experiment_id'], + rolloutId: 'test_rollout_id', + variables: [ + { + id: 'test_variable_id', + key: 'sort_method', + type: 'string', + defaultValue: 'alphabetical', + }, + ], + }, + ], + rollouts: [ + { + id: 'test_rollout_id', + experiments: [ + { + forcedVariations: {}, + id: 'test_experiment_id', + key: 'test_experiment_key', + status: 'Running', + trafficAllocation: [ + { + entityId: 'test_variation_id', + endOfRange: 10000, + }, + ], + variations: [ + { + id: 'test_variation_id', + key: 'test_variation_key', + variables: [ + { + id: 'test_variable_id', + value: 'alphabetical', + }, + ], + featureEnabled: true, + }, + ], + layerId: 'test_layer_id', + audienceIds: [], + }, + ], + }, + ], + experiments: [ + { + forcedVariations: {}, + id: 'test_experiment_id', + key: 'test_experiment_key', + status: 'Running', + trafficAllocation: [ + { + entityId: 'test_variation_id_1', + endOfRange: 5000, + }, + { + entityId: 'test_variation_id_2', + endOfRange: 10000, + }, + ], + variations: [ + { + id: 'test_variation_id_1', + key: 'variation_1', + variables: [ + { + id: 'test_variable_id', + value: 'popular_first', + }, + ], + featureEnabled: true, + }, + { + id: 'test_variation_id_2', + key: 'variation_2', + variables: [ + { + id: 'test_variable_id', + value: 'popular_first', + }, + ], + featureEnabled: true, + }, + ], + layerId: 'test_layer_id', + audienceIds: [], + }, + ], + groups: [], + }, + }, + }, + { + httpReq: { + method: 'get', + url: 'https://cdn.optimizely.com/datafiles/wrong_cdn.json', + }, + httpRes: { + status: 404, + statusText: 'Not Found', + data: { + code: 'document_not_found', + message: 'document_not_found', + }, + }, + }, +]; +export const networkCallsData = [...deleteNwData]; diff --git a/test/integrations/destinations/optimizely_fullstack/processor/data.ts b/test/integrations/destinations/optimizely_fullstack/processor/data.ts new file mode 100644 index 00000000000..52fbdfe5fe4 --- /dev/null +++ b/test/integrations/destinations/optimizely_fullstack/processor/data.ts @@ -0,0 +1,2181 @@ +import utils from '../../../../../src/v0/util'; +export const mockFns = (_) => { + // @ts-ignore + jest.spyOn(utils, 'generateUUID').mockImplementation(() => 'generated_uuid'); +}; +export const data = [ + { + name: 'optimizely_fullstack', + description: 'Missing Data File URL', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + integrations: { + All: true, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + }, + }, + metadata: { + jobId: 1, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Data File Url is not present. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Data File Url is not present. Aborting', + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 1, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Identify call: Missing Variation ID in integration object', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + integrations: { + All: true, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + }, + }, + metadata: { + jobId: 2, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Variation ID is not present in the integrations object: Workflow: procWorkflow, Step: validateInputForIdentify, ChildStep: undefined, OriginalError: Variation ID is not present in the integrations object', + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 2, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Missing Account ID', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + integrations: { + All: true, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + }, + }, + metadata: { + jobId: 3, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Account ID is not present. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Account ID is not present. Aborting', + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 3, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Missing Campaign ID', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + integrations: { + All: true, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + experimentId: 'test_experiment_id', + }, + }, + metadata: { + jobId: 4, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Campaign ID is not present. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Campaign ID is not present. Aborting', + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 4, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Missing Experiment ID', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + integrations: { + All: true, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + }, + }, + metadata: { + jobId: 5, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Experiment ID is not present. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Experiment ID is not present. Aborting', + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 5, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Page: Track Categorized Page and Track Named Pages toggle are disabled', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + channel: 'web', + name: 'Home', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + integrations: { + All: true, + optimizely_fullstack: { + variationId: '123', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + trackCategorizedPages: false, + trackNamedPages: false, + }, + }, + metadata: { + jobId: 6, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + "Both 'Track Categorized Pages' and 'Track Named Pages' toggles are disabled in webapp. Please enable at one of them to send page/screen events to Optimizely.: Workflow: procWorkflow, Step: validateInputForPageAndScreen, ChildStep: undefined, OriginalError: Both 'Track Categorized Pages' and 'Track Named Pages' toggles are disabled in webapp. Please enable at one of them to send page/screen events to Optimizely.", + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 6, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: + 'Invalid Configuration (Track known users toggle is on and userId is missing in request)', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + channel: 'web', + event: 'Product Added', + properties: { + price: 999, + quantity: 1, + }, + context: { + traits: { + firstName: 'John', + age: 27, + }, + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + optimizely_fullstack: { + variationId: '123', + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + trackCategorizedPages: false, + trackNamedPages: false, + trackKnownUsers: true, + }, + }, + metadata: { + jobId: 7, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + "UserId is required for event tracking when the 'Track Known Users' setting is enabled. Please include a 'userId' in your event payload: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: UserId is required for event tracking when the 'Track Known Users' setting is enabled. Please include a 'userId' in your event payload", + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 7, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Track call without event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + }, + }, + metadata: { + jobId: 9, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Event is not present. Aborting.: Workflow: procWorkflow, Step: validateInputForTrack, ChildStep: undefined, OriginalError: Event is not present. Aborting.', + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 9, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Invalid data file url', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Product Added', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/wrong_cdn.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + }, + }, + metadata: { + jobId: 10, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + '{"message":"{\\"message\\":\\"Data File Lookup Failed due to {\\\\\\"code\\\\\\":\\\\\\"document_not_found\\\\\\",\\\\\\"message\\\\\\":\\\\\\"document_not_found\\\\\\"}: Workflow: procWorkflow, Step: dataFile, ChildStep: undefined, OriginalError: Data File Lookup Failed due to {\\\\\\"code\\\\\\":\\\\\\"document_not_found\\\\\\",\\\\\\"message\\\\\\":\\\\\\"document_not_found\\\\\\"}\\",\\"destinationResponse\\":{\\"code\\":\\"document_not_found\\",\\"message\\":\\"document_not_found\\"}}","destinationResponse":{"code":"document_not_found","message":"document_not_found"}}', + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'network', + errorType: 'aborted', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 404, + metadata: { + jobId: 10, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Event not present in data-file', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Product Added', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + integrations: { + All: true, + optimizely_fullstack: { + variationId: '123', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + eventMapping: [ + { + from: 'Product Added', + to: 'product_added', + }, + ], + }, + }, + metadata: { + jobId: 11, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + "Event 'product_added' is not present in data file. Make sure event exists in Optimizely.: Workflow: procWorkflow, Step: prepareTrackPayload, ChildStep: optimizelyEvent, OriginalError: Event 'product_added' is not present in data file. Make sure event exists in Optimizely.", + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 11, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Identify call (Decision Event) with userId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: { + traits: { + organization: 'RudderStack', + fullName: 'John Doe', + country: 'US', + }, + sessionId: 1685626914716, + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + timestamp: '2023-02-10T12:16:07.251Z', + userId: 'userId123', + integrations: { + All: true, + optimizely_fullstack: { + variationId: 'test_variation_id_1', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + attributeMapping: [ + { + from: 'organization', + to: 'company', + }, + { + from: 'fullName', + to: 'name', + }, + ], + }, + }, + metadata: { + jobId: 12, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 12 }, + output: { + body: { + FORM: {}, + JSON: { + account_id: 'test_account_id', + anonymize_ip: false, + client_name: 'RudderStack', + client_version: '1.0.0', + enrich_decisions: true, + visitors: [ + { + attributes: [ + { + entity_id: 'test_attribute_id_5', + key: 'company', + type: 'custom', + value: 'RudderStack', + }, + { + entity_id: 'test_attribute_id_2', + key: 'name', + type: 'custom', + value: 'John Doe', + }, + ], + session_id: '1685626914716', + snapshots: [ + { + decisions: [ + { + campaign_id: 'test_campaign_id', + experiment_id: 'test_experiment_id', + variation_id: 'test_variation_id_1', + }, + ], + events: [ + { + entity_id: 'test_campaign_id', + timestamp: 1676031367251, + type: 'campaign_activated', + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + }, + ], + }, + ], + visitor_id: 'userId123', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://logx.optimizely.com/v1/events', + files: {}, + headers: { 'Content-Type': 'application/json' }, + method: 'POST', + params: {}, + type: 'REST', + userId: '', + version: '1', + }, + statusCode: 200, + }, + ], + }, + }, + }, + + { + name: 'optimizely_fullstack', + description: 'Identify call (Decision Event) with anonymousId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: { + traits: { + organization: 'RudderStack', + fullName: 'John Doe', + country: 'US', + }, + sessionId: 1685626914716, + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + timestamp: '2023-02-10T12:16:07.251Z', + userId: 'userId123', + integrations: { + All: true, + optimizely_fullstack: { + variationId: 'test_variation_id_1', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: false, + }, + }, + metadata: { + jobId: 13, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 13 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: false, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: '97c46c81-3140-456d-b2a9-690d70aaca35', + snapshots: [ + { + decisions: [ + { + campaign_id: 'test_campaign_id', + experiment_id: 'test_experiment_id', + variation_id: 'test_variation_id_1', + }, + ], + events: [ + { + entity_id: 'test_campaign_id', + type: 'campaign_activated', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + userId: '', + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Identify call (Decision Event) with projectId is empty"', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: { + traits: { + organization: 'RudderStack', + fullName: 'John Doe', + country: 'US', + }, + sessionId: 1685626914716, + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + timestamp: '2023-02-10T12:16:07.251Z', + userId: 'userId123', + integrations: { + All: true, + optimizely_fullstack: { + variationId: 'test_variation_id_1', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + projectId: '', + attributeMapping: [ + { + from: 'organization', + to: 'company', + }, + { + from: 'fullName', + to: 'name', + }, + ], + }, + }, + metadata: { + jobId: 14, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 14 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + userId: '', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: false, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + attributes: [ + { + entity_id: 'test_attribute_id_5', + key: 'company', + type: 'custom', + value: 'RudderStack', + }, + { + entity_id: 'test_attribute_id_2', + key: 'name', + type: 'custom', + value: 'John Doe', + }, + ], + snapshots: [ + { + decisions: [ + { + campaign_id: 'test_campaign_id', + experiment_id: 'test_experiment_id', + variation_id: 'test_variation_id_1', + }, + ], + events: [ + { + entity_id: 'test_campaign_id', + type: 'campaign_activated', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Track Named Page: mapping is not provided for page name in webapp', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + userId: 'userId123', + name: 'Meal', + channel: 'web', + context: { + traits: { + organization: 'RudderStack', + fullName: 'John Doe', + }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { + foo: 'bar', + }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { + variationId: 'test_variation_id_1', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: false, + trackNamedPages: true, + pageMapping: [ + { + from: 'Home', + to: 'Viewed Home Page', + }, + { + from: 'food', + to: 'Product Added', + }, + ], + }, + }, + metadata: { + jobId: 15, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 15 }, + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + error: + 'Events [meal] are not present in the data file. Make sure events exist in Optimizely.: Workflow: procWorkflow, Step: preparePageOrScreenPayload, ChildStep: optimizelyEvents, OriginalError: Events [meal] are not present in the data file. Make sure events exist in Optimizely.', + }, + ], + }, + }, + }, + + { + name: 'optimizely_fullstack', + description: 'Track call (Conversion event) with userId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'product_added', + userId: 'userId123', + channel: 'web', + context: { + traits: { organization: 'RudderStack', fullName: 'John Doe' }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { foo: 'bar', revenue: 123, quantity: 2 }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { variationId: 'test_variation_id_2' }, + }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + eventMapping: [ + { from: 'Product Searched', to: 'Searched' }, + { from: 'product_added', to: 'Product Added' }, + ], + attributeMapping: [ + { from: 'organization', to: 'company' }, + { from: 'fullName', to: 'name' }, + ], + }, + }, + metadata: { jobId: 20 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 20 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + attributes: [ + { + entity_id: 'test_attribute_id_5', + key: 'company', + type: 'custom', + value: 'RudderStack', + }, + { + entity_id: 'test_attribute_id_2', + key: 'name', + type: 'custom', + value: 'John Doe', + }, + ], + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_1', + key: 'Product Added', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + quantity: 2, + revenue: 12300, + tags: { foo: 'bar' }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Track call (Conversion event) without event mapping configured in webapp', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Product Added', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + timestamp: '2023-02-10T12:16:07.251Z', + integrations: { All: true, optimizely_fullstack: { variationId: '123' } }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + }, + }, + metadata: { jobId: 21 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 21 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: false, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: '97c46c81-3140-456d-b2a9-690d70aaca35', + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_1', + key: 'Product Added', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + tags: {}, + }, + ], + }, + ], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Track call: Missing Variation ID in integration object ', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'product_added', + userId: 'userId123', + channel: 'web', + context: { + traits: { organization: 'RudderStack', fullName: 'John Doe' }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { foo: 'bar', revenue: 123, quantity: 2 }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + eventMapping: [ + { from: 'Product Searched', to: 'Searched' }, + { from: 'product_added', to: 'Product Added' }, + ], + attributeMapping: [ + { from: 'organization', to: 'company' }, + { from: 'fullName', to: 'name' }, + ], + }, + }, + metadata: { jobId: 22 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 22 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + attributes: [ + { + entity_id: 'test_attribute_id_5', + key: 'company', + type: 'custom', + value: 'RudderStack', + }, + { + entity_id: 'test_attribute_id_2', + key: 'name', + type: 'custom', + value: 'John Doe', + }, + ], + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_1', + key: 'Product Added', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + quantity: 2, + revenue: 12300, + tags: { foo: 'bar' }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Track Categorized and Named Page', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + name: 'Meal', + userId: 'userId123', + channel: 'web', + context: { + traits: { organization: 'RudderStack', fullName: 'John Doe' }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { foo: 'bar', category: 'food' }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { variationId: 'test_variation_id_1' }, + }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: true, + trackNamedPages: true, + pageMapping: [ + { from: 'meal', to: 'Viewed Meal Page' }, + { from: 'food', to: 'Product Added' }, + ], + }, + }, + metadata: { jobId: 23 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 23 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_1', + key: 'Product Added', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + tags: { foo: 'bar', category: 'food' }, + }, + { + entity_id: 'test_event_id_4', + key: 'Viewed Meal page', + timestamp: 1676031367251, + uuid: 'generated_uuid', + tags: { foo: 'bar', category: 'food' }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Track Categorized and Named Page without event mapping configured in webapp', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + name: 'home', + userId: 'userId123', + channel: 'web', + context: { + traits: { organization: 'RudderStack', fullName: 'John Doe' }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { foo: 'bar', category: 'index' }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { variationId: 'test_variation_id_1' }, + }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: true, + trackNamedPages: true, + pageMapping: [{ from: '', to: '' }], + }, + }, + metadata: { jobId: 24 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 24 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_8', + key: 'Index', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + tags: { foo: 'bar', category: 'index' }, + }, + { + entity_id: 'test_event_id_7', + key: 'Home', + timestamp: 1676031367251, + uuid: 'generated_uuid', + tags: { foo: 'bar', category: 'index' }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: + 'Track Categorized Page: trackCategorizedPages,trackNamedPages toggle are enabled and name is not provided', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + userId: 'userId123', + channel: 'web', + context: { + traits: { organization: 'RudderStack', fullName: 'John Doe' }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { foo: 'bar', category: 'food' }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { variationId: 'test_variation_id_1' }, + }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: true, + trackNamedPages: true, + pageMapping: [ + { from: 'meal', to: 'Viewed Meal Page' }, + { from: 'food', to: 'Product Added' }, + ], + }, + }, + metadata: { jobId: 25 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 25 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_1', + key: 'Product Added', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + tags: { foo: 'bar', category: 'food' }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: + 'Track Named Page: trackCategorizedPages,trackNamedPages toggle are enabled and category is not provided', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + userId: 'userId123', + name: 'Meal', + channel: 'web', + context: { + traits: { organization: 'RudderStack', fullName: 'John Doe' }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { foo: 'bar' }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { variationId: 'test_variation_id_1' }, + }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: true, + trackNamedPages: true, + pageMapping: [ + { from: 'meal', to: 'Viewed Meal Page' }, + { from: 'food', to: 'Product Added' }, + ], + }, + }, + metadata: { jobId: 26 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 26 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_4', + key: 'Viewed Meal page', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + tags: { foo: 'bar' }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: + 'Track Named Page: trackCategorizedPages,trackNamedPages toggle are enabled and category mapping is wrong', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + userId: 'userId123', + name: 'Meal', + channel: 'web', + context: { + traits: { organization: 'RudderStack', fullName: 'John Doe' }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { foo: 'bar' }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { variationId: 'test_variation_id_1' }, + }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: true, + trackNamedPages: true, + pageMapping: [ + { from: 'meal', to: 'Viewed Meal Page' }, + { from: 'food', to: 'ABC' }, + ], + }, + }, + metadata: { jobId: 27 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 27 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_4', + key: 'Viewed Meal page', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + tags: { foo: 'bar' }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Track Categorized and Named Screen', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'screen', + name: 'Home', + userId: 'userId123', + channel: 'web', + context: { + traits: { organization: 'RudderStack', fullName: 'John Doe' }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { foo: 'bar', category: 'food' }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { variationId: 'test_variation_id_1' }, + }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: true, + trackNamedPages: true, + pageMapping: [ + { from: 'home', to: 'Viewed Main Screen' }, + { from: 'food', to: 'Product Added' }, + ], + }, + }, + metadata: { jobId: 28 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 28 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_1', + key: 'Product Added', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + tags: { foo: 'bar', category: 'food' }, + }, + { + entity_id: 'test_event_id_6', + key: 'Viewed Main screen', + timestamp: 1676031367251, + uuid: 'generated_uuid', + tags: { foo: 'bar', category: 'food' }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +].map((d) => ({ ...d, mockFns })); diff --git a/test/integrations/destinations/optimizely_fullstack/router/data.ts b/test/integrations/destinations/optimizely_fullstack/router/data.ts new file mode 100644 index 00000000000..1803881f307 --- /dev/null +++ b/test/integrations/destinations/optimizely_fullstack/router/data.ts @@ -0,0 +1,563 @@ +import { FEATURES } from '../../../../../src/v0/util/tags'; +import { mockFns } from '../processor/data'; + +export const data = [ + { + name: 'optimizely_fullstack', + description: 'Test 0', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: { + traits: { + organization: 'RudderStack', + fullName: 'John Doe', + country: 'US', + }, + sessionId: 1685626914716, + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + timestamp: '2023-02-10T12:16:07.251Z', + userId: 'userId123', + integrations: { + All: true, + optimizely_fullstack: { + variationId: 'test_variation_id_1', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + attributeMapping: [ + { + from: 'organization', + to: 'company', + }, + { + from: 'fullName', + to: 'name', + }, + ], + }, + }, + metadata: { + jobId: 1, + }, + }, + { + message: { + type: 'track', + event: 'product_added', + userId: 'userId123', + channel: 'web', + context: { + traits: { + organization: 'RudderStack', + fullName: 'John Doe', + }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { + foo: 'bar', + revenue: 123, + quantity: 2, + }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { + variationId: 'test_variation_id_2', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + eventMapping: [ + { + from: 'Product Searched', + to: 'Searched', + }, + { + from: 'product_added', + to: 'Product Added', + }, + ], + attributeMapping: [ + { + from: 'organization', + to: 'company', + }, + { + from: 'fullName', + to: 'name', + }, + ], + }, + }, + metadata: { + jobId: 2, + }, + }, + { + message: { + type: 'page', + userId: 'userId123', + channel: 'web', + context: { + traits: { + organization: 'RudderStack', + fullName: 'John Doe', + }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { + foo: 'bar', + category: 'food', + }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { + variationId: 'test_variation_id_1', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: true, + trackNamedPages: false, + pageMapping: [ + { + from: 'meal', + to: 'Viewed Meal Page', + }, + { + from: 'food', + to: 'Product Added', + }, + ], + }, + }, + metadata: { + jobId: 3, + }, + }, + { + message: { + type: 'page', + channel: 'web', + name: 'Home', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + integrations: { + All: true, + optimizely_fullstack: { + variationId: '123', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + trackCategorizedPages: false, + trackNamedPages: false, + }, + }, + metadata: { + jobId: 4, + }, + }, + ], + destType: 'optimizely_fullstack', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: false, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + attributes: [ + { + entity_id: 'test_attribute_id_5', + key: 'company', + type: 'custom', + value: 'RudderStack', + }, + { + entity_id: 'test_attribute_id_2', + key: 'name', + type: 'custom', + value: 'John Doe', + }, + ], + snapshots: [ + { + decisions: [ + { + campaign_id: 'test_campaign_id', + experiment_id: 'test_experiment_id', + variation_id: 'test_variation_id_1', + }, + ], + events: [ + { + entity_id: 'test_campaign_id', + type: 'campaign_activated', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + attributeMapping: [ + { + from: 'organization', + to: 'company', + }, + { + from: 'fullName', + to: 'name', + }, + ], + }, + }, + metadata: [ + { + jobId: 1, + }, + ], + statusCode: 200, + }, + { + batched: false, + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + attributes: [ + { + entity_id: 'test_attribute_id_5', + key: 'company', + type: 'custom', + value: 'RudderStack', + }, + { + entity_id: 'test_attribute_id_2', + key: 'name', + type: 'custom', + value: 'John Doe', + }, + ], + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_1', + key: 'Product Added', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + quantity: 2, + revenue: 12300, + tags: { + foo: 'bar', + }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + eventMapping: [ + { + from: 'Product Searched', + to: 'Searched', + }, + { + from: 'product_added', + to: 'Product Added', + }, + ], + attributeMapping: [ + { + from: 'organization', + to: 'company', + }, + { + from: 'fullName', + to: 'name', + }, + ], + }, + }, + metadata: [ + { + jobId: 2, + }, + ], + statusCode: 200, + }, + { + batched: false, + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_1', + key: 'Product Added', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + tags: { + foo: 'bar', + category: 'food', + }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: true, + trackNamedPages: false, + pageMapping: [ + { + from: 'meal', + to: 'Viewed Meal Page', + }, + { + from: 'food', + to: 'Product Added', + }, + ], + }, + }, + metadata: [ + { + jobId: 3, + }, + ], + statusCode: 200, + }, + { + batched: false, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + experimentId: 'test_experiment_id', + trackCategorizedPages: false, + trackNamedPages: false, + }, + }, + error: + "Both 'Track Categorized Pages' and 'Track Named Pages' toggles are disabled in webapp. Please enable at one of them to send page/screen events to Optimizely.", + metadata: [ + { + jobId: 4, + }, + ], + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'router', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + mockFns, + }, +]; diff --git a/test/integrations/destinations/ortto/processor/data.ts b/test/integrations/destinations/ortto/processor/data.ts new file mode 100644 index 00000000000..e7c71c73552 --- /dev/null +++ b/test/integrations/destinations/ortto/processor/data.ts @@ -0,0 +1,1241 @@ +export const data = [ + { + name: 'ortto', + description: 'Identify call for creatig/updating person', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'ORTTO', + Config: { + privateApiKey: 'dummyApiKey', + instanceRegion: 'other', + orttoEventsMapping: [ + { + rsEventName: 'RudderEvent', + orttoEventName: 'Ortto Event', + eventProperties: [ + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'text', + }, + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'longText', + }, + ], + }, + ], + orttoPersonAttributes: [ + { + rudderTraits: 'ruddertrait0', + orttoAttribute: 'ortto attirbute0', + type: 'email', + }, + { + rudderTraits: 'ruddertrait1', + orttoAttribute: 'ortto attirbute1', + type: 'email', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 1 }, + message: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSPonIAEmulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + ruddertrait0: 'abc', + ruddertrait1: 'def', + tags: ['tag1', 'tag2'], + unset_tags: ['tag3', 'tag4'], + emailConsent: true, + smsConsent: true, + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: 'wrongValue', + createDate: '18th March 2020', + description: 'Premium User for 3 years', + email: 'identify@test.com', + firstname: 'John', + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9112340345', + username: 'john_sparrow', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + integrations: { + All: true, + }, + messageId: '1590431830915-73bed370-5889-436d-9a9e-0c0e0c809d06', + originalTimestamp: '2020-05-25T18:37:10.917Z', + type: 'identify', + userId: 'sample_user_id', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.ap3api.com/v1/person/merge', + headers: { + 'X-Api-Key': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + people: [ + { + fields: { + 'str::first': 'John', + 'str::last': 'Sparrow', + 'str::email': 'identify@test.com', + 'geo::city': { + name: 'Kolkata', + }, + 'geo::country': {}, + 'geo::region': {}, + 'str::postal': '700096', + 'str::ei': 'sample_user_id', + 'str::language': 'en-US', + 'phn::phone': { + n: '9112340345', + }, + 'bol::gdpr': true, + 'bol::p': true, + 'bol::sp': true, + 'str:cm:ortto-attirbute0': 'abc', + 'str:cm:ortto-attirbute1': 'def', + }, + tags: ['tag1', 'tag2'], + unset_tags: ['tag3', 'tag4'], + }, + ], + merge_by: ['str::ei', 'str::email'], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 1, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ortto', + description: 'Unsupported messageType group', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'ORTTO', + Config: { + privateApiKey: 'dummyApiKey', + instanceRegion: 'other', + orttoEventsMapping: [ + { + rsEventName: 'RudderEvent', + orttoEventName: 'Ortto Event', + eventProperties: [ + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'text', + }, + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'longText', + }, + ], + }, + ], + orttoPersonAttributes: [ + { + rudderTraits: 'ruddertrait0', + orttoAttribute: 'ortto attirbute0', + type: 'email', + }, + { + rudderTraits: 'ruddertrait1', + orttoAttribute: 'ortto attirbute1', + type: 'email', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 1 }, + message: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSPonIAEmulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + ruddertrait0: 'abc', + ruddertrait1: 'def', + tags: ['tag1', 'tag2'], + unset_tags: ['tag3', 'tag4'], + emailConsent: true, + smsConsent: true, + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createDate: '18th March 2020', + description: 'Premium User for 3 years', + email: 'identify@test.com', + firstname: 'John', + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9112340345', + username: 'john_sparrow', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + integrations: { + All: true, + }, + messageId: '1590431830915-73bed370-5889-436d-9a9e-0c0e0c809d06', + originalTimestamp: '2020-05-25T18:37:10.917Z', + type: 'group', + userId: 'sample_user_id', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + statTags: { + destType: 'ORTTO', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + error: + 'message type group is not supported: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message type group is not supported', + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 1, + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'ortto', + description: 'email or userId is not present', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'ORTTO', + Config: { + privateApiKey: 'dummyApiKey', + instanceRegion: 'other', + orttoEventsMapping: [ + { + rsEventName: 'RudderEvent', + orttoEventName: 'Ortto Event', + eventProperties: [ + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'text', + }, + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'longText', + }, + ], + }, + ], + orttoPersonAttributes: [ + { + rudderTraits: 'ruddertrait0', + orttoAttribute: 'ortto attirbute0', + type: 'email', + }, + { + rudderTraits: 'ruddertrait1', + orttoAttribute: 'ortto attirbute1', + type: 'email', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 1 }, + message: { + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSPonIAEmulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + ruddertrait0: 'abc', + ruddertrait1: 'def', + tags: ['tag1', 'tag2'], + unset_tags: ['tag3', 'tag4'], + emailConsent: true, + smsConsent: true, + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createDate: '18th March 2020', + description: 'Premium User for 3 years', + firstname: 'John', + lastname: 'Sparrow', + name: 'John Sparrow', + phone: '9112340345', + username: 'john_sparrow', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + integrations: { + All: true, + }, + messageId: '1590431830915-73bed370-5889-436d-9a9e-0c0e0c809d06', + originalTimestamp: '2020-05-25T18:37:10.917Z', + type: 'identify', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + statTags: { + destType: 'ORTTO', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + error: + 'Either of email or userId is required. Aborting message.: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Either of email or userId is required. Aborting message.', + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 1, + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'ortto', + description: 'instance region is not present', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'ORTTO', + Config: { + privateApiKey: 'dummyApiKey', + orttoEventsMapping: [ + { + rsEventName: 'RudderEvent', + orttoEventName: 'Ortto Event', + eventProperties: [ + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'text', + }, + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'longText', + }, + ], + }, + ], + orttoPersonAttributes: [ + { + rudderTraits: 'ruddertrait0', + orttoAttribute: 'ortto attirbute0', + type: 'email', + }, + { + rudderTraits: 'ruddertrait1', + orttoAttribute: 'ortto attirbute1', + type: 'email', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 1 }, + message: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSPonIAEmulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + ruddertrait0: 'abc', + ruddertrait1: 'def', + tags: ['tag1', 'tag2'], + unset_tags: ['tag3', 'tag4'], + emailConsent: true, + smsConsent: true, + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createDate: '18th March 2020', + description: 'Premium User for 3 years', + email: 'identify@test.com', + firstname: 'John', + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9112340345', + username: 'john_sparrow', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + integrations: { + All: true, + }, + messageId: '1590431830915-73bed370-5889-436d-9a9e-0c0e0c809d06', + originalTimestamp: '2020-05-25T18:37:10.917Z', + type: 'identify', + userId: 'sample_user_id', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + statTags: { + destType: 'ORTTO', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + error: + 'Instance Region is not present: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Instance Region is not present', + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 1, + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'ortto', + description: 'privateApi Key is not present', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'ORTTO', + Config: { + instanceRegion: 'other', + orttoEventsMapping: [ + { + rsEventName: 'RudderEvent', + orttoEventName: 'Ortto Event', + eventProperties: [ + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'text', + }, + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'longText', + }, + ], + }, + ], + orttoPersonAttributes: [ + { + rudderTraits: 'ruddertrait0', + orttoAttribute: 'ortto attirbute0', + type: 'email', + }, + { + rudderTraits: 'ruddertrait1', + orttoAttribute: 'ortto attirbute1', + type: 'email', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 1 }, + message: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSPonIAEmulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + ruddertrait0: 'abc', + ruddertrait1: 'def', + tags: ['tag1', 'tag2'], + unset_tags: ['tag3', 'tag4'], + emailConsent: true, + smsConsent: true, + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createDate: '18th March 2020', + description: 'Premium User for 3 years', + email: 'identify@test.com', + firstname: 'John', + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9112340345', + username: 'john_sparrow', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + integrations: { + All: true, + }, + messageId: '1590431830915-73bed370-5889-436d-9a9e-0c0e0c809d06', + originalTimestamp: '2020-05-25T18:37:10.917Z', + type: 'identify', + userId: 'sample_user_id', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + statTags: { + destType: 'ORTTO', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + error: + 'Private Api Key is not present: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Private Api Key is not present', + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 1, + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'ortto', + description: 'Track call for updating activities', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'ORTTO', + Config: { + privateApiKey: 'dummyApiKey', + instanceRegion: 'other', + orttoEventsMapping: [ + { + rsEventName: 'RudderEvent', + orttoEventName: 'Ortto Event', + eventProperties: [ + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'text', + }, + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'longText', + }, + ], + }, + ], + orttoPersonAttributes: [ + { + rudderTraits: 'ruddertrait0', + orttoAttribute: 'ortto attirbute0', + type: 'email', + }, + { + rudderTraits: 'ruddertrait1', + orttoAttribute: 'ortto attirbute1', + type: 'email', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 2 }, + message: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSPonIAEmulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + ruddertrait0: 'abc', + ruddertrait1: 'def', + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createDate: '18th March 2020', + description: 'Premium User for 3 years', + email: 'identify@test.com', + firstname: 'John', + gdpr: false, + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9112340345', + username: 'john_sparrow', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + event: 'RudderEvent', + integrations: { + All: true, + }, + messageId: '1590431830915-73bed370-5889-436d-9a9e-0c0e0c809d06', + properties: { + revenue: '30', + RudderProp: 'USD', + quantity: '5', + test_key_2: { + test_child_key_1: 'test_child_value_1', + }, + price: '58.0', + }, + originalTimestamp: '2020-05-25T18:37:10.917Z', + type: 'track', + userId: 'sample_user_id', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.ap3api.com/v1/activities/create', + headers: { + 'X-Api-Key': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + activities: [ + { + fields: { + 'str::first': 'John', + 'str::last': 'Sparrow', + 'str::email': 'identify@test.com', + 'geo::city': { + name: 'Kolkata', + }, + 'geo::country': {}, + 'geo::region': {}, + 'dtz::b': { + day: 26, + month: 5, + year: 2020, + }, + 'str::postal': '700096', + 'str::language': 'en-US', + 'str::ei': 'sample_user_id', + 'phn::phone': { + n: '9112340345', + }, + 'bol::gdpr': false, + 'bol::p': false, + 'bol::sp': false, + 'str:cm:ortto-attirbute0': 'abc', + 'str:cm:ortto-attirbute1': 'def', + }, + activity_id: 'act:cm:ortto-event', + attributes: { + 'str:cm:orttoprop': 'USD', + 'txt:cm:orttoprop': 'USD', + }, + location: {}, + }, + ], + merge_by: ['str::ei', 'str::email'], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 2, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'ortto', + description: 'Track call for updating activities', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'ORTTO', + Config: { + privateApiKey: 'dummyApiKey', + instanceRegion: 'other', + orttoEventsMapping: [ + { + rsEventName: 'RudderEvent', + orttoEventName: 'Ortto Event', + eventProperties: [ + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'text', + }, + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'longText', + }, + ], + }, + ], + orttoPersonAttributes: [ + { + rudderTraits: 'ruddertrait0', + orttoAttribute: 'ortto attirbute0', + type: 'email', + }, + { + rudderTraits: 'ruddertrait1', + orttoAttribute: 'ortto attirbute1', + type: 'email', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 2 }, + message: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSPonIAEmulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + ruddertrait0: 'abc', + ruddertrait1: 'def', + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createDate: '18th March 2020', + description: 'Premium User for 3 years', + email: 'identify@test.com', + firstname: 'John', + gdpr: false, + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9112340345', + username: 'john_sparrow', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + integrations: { + All: true, + }, + messageId: '1590431830915-73bed370-5889-436d-9a9e-0c0e0c809d06', + properties: { + revenue: '30', + RudderProp: 'USD', + quantity: '5', + test_key_2: { + test_child_key_1: 'test_child_value_1', + }, + price: '58.0', + }, + originalTimestamp: '2020-05-25T18:37:10.917Z', + type: 'track', + userId: 'sample_user_id', + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + statTags: { + destType: 'ORTTO', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + error: + 'event is not present. Aborting.: Workflow: procWorkflow, Step: validateInputForTrack, ChildStep: undefined, OriginalError: event is not present. Aborting.', + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 2, + }, + statusCode: 400, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/ortto/router/data.ts b/test/integrations/destinations/ortto/router/data.ts new file mode 100644 index 00000000000..58a1dc3a5d9 --- /dev/null +++ b/test/integrations/destinations/ortto/router/data.ts @@ -0,0 +1,496 @@ +export const data = [ + { + name: 'ortto', + description: 'Test Identify and Track Events', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'ORTTO', + Config: { + privateApiKey: 'dummyApiKey', + instanceRegion: 'other', + orttoEventsMapping: [ + { + rsEventName: 'RudderEvent', + orttoEventName: 'Ortto Event', + eventProperties: [ + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'text', + }, + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'longText', + }, + ], + }, + ], + orttoPersonAttributes: [ + { + rudderTraits: 'ruddertrait0', + orttoAttribute: 'ortto attirbute0', + type: 'email', + }, + { + rudderTraits: 'ruddertrait1', + orttoAttribute: 'ortto attirbute1', + type: 'email', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 1 }, + message: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSPonIAEmulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + ruddertrait0: 'abc', + ruddertrait1: 'def', + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createDate: '18th March 2020', + description: 'Premium User for 3 years', + email: 'identify@test.com', + firstname: 'John', + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9112340345', + username: 'john_sparrow', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + integrations: { + All: true, + }, + messageId: '1590431830915-73bed370-5889-436d-9a9e-0c0e0c809d06', + originalTimestamp: '2020-05-25T18:37:10.917Z', + type: 'identify', + userId: 'sample_user_id', + }, + }, + { + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'ORTTO', + Config: { + privateApiKey: 'dummyApiKey', + instanceRegion: 'other', + orttoEventsMapping: [ + { + rsEventName: 'RudderEvent', + orttoEventName: 'Ortto Event', + eventProperties: [ + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'text', + }, + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'longText', + }, + ], + }, + ], + orttoPersonAttributes: [ + { + rudderTraits: 'ruddertrait0', + orttoAttribute: 'ortto attirbute0', + type: 'email', + }, + { + rudderTraits: 'ruddertrait1', + orttoAttribute: 'ortto attirbute1', + type: 'email', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', jobId: 2 }, + message: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSPonIAEmulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + ruddertrait0: 'abc', + ruddertrait1: 'def', + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createDate: '18th March 2020', + description: 'Premium User for 3 years', + email: 'identify@test.com', + firstname: 'John', + gdpr: false, + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9112340345', + username: 'john_sparrow', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + event: 'RudderEvent', + integrations: { + All: true, + }, + messageId: '1590431830915-73bed370-5889-436d-9a9e-0c0e0c809d06', + properties: { + revenue: '30', + RudderProp: 'USD', + quantity: '5', + test_key_2: { + test_child_key_1: 'test_child_value_1', + }, + price: '58.0', + }, + originalTimestamp: '2020-05-25T18:37:10.917Z', + type: 'track', + userId: 'sample_user_id', + }, + }, + ], + destType: 'ortto', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + body: { + JSON: { + people: [ + { + fields: { + 'str::first': 'John', + 'str::last': 'Sparrow', + 'str::email': 'identify@test.com', + 'geo::city': { + name: 'Kolkata', + }, + 'geo::country': {}, + 'geo::region': {}, + 'str::postal': '700096', + 'dtz::b': { + year: 2020, + month: 5, + day: 26, + }, + 'str::ei': 'sample_user_id', + 'str::language': 'en-US', + 'phn::phone': { + n: '9112340345', + }, + 'bol::gdpr': true, + 'bol::p': false, + 'bol::sp': false, + 'str:cm:ortto-attirbute0': 'abc', + 'str:cm:ortto-attirbute1': 'def', + }, + }, + ], + merge_by: ['str::ei', 'str::email'], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.ap3api.com/v1/person/merge', + headers: { + 'X-Api-Key': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + files: {}, + }, + metadata: [ + { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 1, + }, + ], + batched: true, + statusCode: 200, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'ORTTO', + Config: { + privateApiKey: 'dummyApiKey', + instanceRegion: 'other', + orttoEventsMapping: [ + { + rsEventName: 'RudderEvent', + orttoEventName: 'Ortto Event', + eventProperties: [ + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'text', + }, + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'longText', + }, + ], + }, + ], + orttoPersonAttributes: [ + { + rudderTraits: 'ruddertrait0', + orttoAttribute: 'ortto attirbute0', + type: 'email', + }, + { + rudderTraits: 'ruddertrait1', + orttoAttribute: 'ortto attirbute1', + type: 'email', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + }, + { + batchedRequest: { + body: { + JSON: { + activities: [ + { + fields: { + 'str::first': 'John', + 'str::last': 'Sparrow', + 'str::email': 'identify@test.com', + 'geo::city': { + name: 'Kolkata', + }, + 'geo::country': {}, + 'geo::region': {}, + 'str::postal': '700096', + 'dtz::b': { + year: 2020, + month: 5, + day: 26, + }, + 'str::ei': 'sample_user_id', + 'str::language': 'en-US', + 'phn::phone': { + n: '9112340345', + }, + 'bol::gdpr': false, + 'bol::p': false, + 'bol::sp': false, + 'str:cm:ortto-attirbute0': 'abc', + 'str:cm:ortto-attirbute1': 'def', + }, + activity_id: 'act:cm:ortto-event', + attributes: { + 'str:cm:orttoprop': 'USD', + 'txt:cm:orttoprop': 'USD', + }, + location: {}, + }, + ], + merge_by: ['str::ei', 'str::email'], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.ap3api.com/v1/activities/create', + headers: { + 'X-Api-Key': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + files: {}, + }, + metadata: [ + { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 2, + }, + ], + batched: true, + statusCode: 200, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'ORTTO', + Config: { + privateApiKey: 'dummyApiKey', + instanceRegion: 'other', + orttoEventsMapping: [ + { + rsEventName: 'RudderEvent', + orttoEventName: 'Ortto Event', + eventProperties: [ + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'text', + }, + { + rudderProperty: 'RudderProp', + orttoProperty: 'OrttoProp', + type: 'longText', + }, + ], + }, + ], + orttoPersonAttributes: [ + { + rudderTraits: 'ruddertrait0', + orttoAttribute: 'ortto attirbute0', + type: 'email', + }, + { + rudderTraits: 'ruddertrait1', + orttoAttribute: 'ortto attirbute1', + type: 'email', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/pagerduty/processor/data.ts b/test/integrations/destinations/pagerduty/processor/data.ts new file mode 100644 index 00000000000..97fe22daa0e --- /dev/null +++ b/test/integrations/destinations/pagerduty/processor/data.ts @@ -0,0 +1,782 @@ +export const data = [ + { + name: 'pagerduty', + description: 'No Message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + sentAt: '2022-10-11T13:10:54.877+05:30', + userId: 'user@45', + rudderId: 'caae04c5-959f-467b-a293-86f6c62d59e6', + messageId: 'b6ce7f31-5d76-4240-94d2-3eea020ef791', + timestamp: '2022-10-11T13:10:52.137+05:30', + receivedAt: '2022-10-11T13:10:52.138+05:30', + request_ip: '[::1]', + originalTimestamp: '2022-10-11T13:10:54.877+05:30', + }, + destination: { Config: { routingKey: '9552b56325dc490bd0139be85f7b8fac' } }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type is required', + statTags: { + destType: 'PAGERDUTY', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pagerduty', + description: 'Routing Key is not present', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + sentAt: '2022-10-11T13:10:54.877+05:30', + userId: 'user@45', + context: {}, + rudderId: 'caae04c5-959f-467b-a293-86f6c62d59e6', + messageId: 'b6ce7f31-5d76-4240-94d2-3eea020ef791', + timestamp: '2022-10-11T13:10:52.137+05:30', + receivedAt: '2022-10-11T13:10:52.138+05:30', + request_ip: '[::1]', + originalTimestamp: '2022-10-11T13:10:54.877+05:30', + }, + destination: { Config: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Routing Key Is Required', + statTags: { + destType: 'PAGERDUTY', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pagerduty', + description: 'Unsupported Event type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'alias', + sentAt: '2022-10-11T13:10:54.877+05:30', + userId: 'user@45', + context: {}, + rudderId: 'caae04c5-959f-467b-a293-86f6c62d59e6', + messageId: 'b6ce7f31-5d76-4240-94d2-3eea020ef791', + timestamp: '2022-10-11T13:10:52.137+05:30', + receivedAt: '2022-10-11T13:10:52.138+05:30', + request_ip: '[::1]', + originalTimestamp: '2022-10-11T13:10:54.877+05:30', + }, + destination: { Config: { routingKey: '9552b56325dc490bd0139be85f7b8fac' } }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type alias is not supported', + statTags: { + destType: 'PAGERDUTY', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pagerduty', + description: 'event name is not present', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + type: 'track', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + userId: 'user@45', + properties: {}, + }, + destination: { Config: { routingKey: '9552b56325dc490bd0139be85f7b8fac' } }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event name is required', + statTags: { + destType: 'PAGERDUTY', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pagerduty', + description: 'Parameter source is not present', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + type: 'track', + event: 'Event name is required', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + userId: 'user@45', + properties: { dedupKey: '9116b734-7e6b-4497-ab51-c16744d4487e' }, + }, + destination: { Config: { routingKey: '9552b56325dc490bd0139be85f7b8fac' } }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Missing required value from "properties.source"', + statTags: { + destType: 'PAGERDUTY', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pagerduty', + description: 'dedup_key is not present', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + type: 'track', + event: 'Event name is required', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + userId: 'user@45', + properties: { action: 'resolve' }, + }, + destination: { + Config: { + routingKey: '9552b56325dc490bd0139be85f7b8fac', + dedupKeyFieldIdentifier: 'properties.dedupKey', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'dedup_key required for resolve events', + statTags: { + destType: 'PAGERDUTY', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pagerduty', + description: 'Timestamp older then 90 days', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + type: 'track', + event: 'apiSecret is not present', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + userId: 'user@45', + originalTimestamp: '2021-12-20T10:26:33.451Z', + properties: { + action: 'trigger', + dedupKey: '9116b734-7e6b-4497-ab51-c16744d4487e', + severity: 'critical', + component: 'ui', + source: 'rudder-webapp', + group: 'destination', + class: 'connection settings', + customDetails: { 'ping time': '1500ms', 'load avg': 0.75 }, + imageURLs: [ + { + src: 'https://static.s4be.cochrane.org/app/uploads/2017/04/shutterstock_531145954.jpg', + alt: 'first image', + }, + { + src: 'https://chart.googleapis.com/chart?chs=600x400&chd=t:6,2,9,5,2,5,7,4,8,2,1&cht=lc&chds=a&chxt=y&chm=D,0033FF,0,0,5,1', + alt: 'second image', + }, + { alt: 'third image' }, + ], + linkURLs: [ + { + href: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error', + text: 'Js Object Error', + }, + { + href: 'https://www.techtarget.com/whatis/definition/stack-overflow#:~:text=A%20stack%20overflow%20is%20a,been%20allocated%20to%20that%20stack', + text: 'Stack Overflow Error', + }, + { text: 'Destructure Error' }, + ], + }, + }, + destination: { + Config: { + routingKey: '9552b56325dc490bd0139be85f7b8fac', + dedupKeyFieldIdentifier: 'properties.dedupKey', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Events must be sent within ninety days of their occurrence', + statTags: { + destType: 'PAGERDUTY', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pagerduty', + description: 'Trigger event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + type: 'track', + event: 'apiSecret is not present', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + userId: 'user@45', + properties: { + action: 'trigger', + dedupKey: '9116b734-7e6b-4497-ab51-c16744d4487e', + severity: 'critical', + component: 'ui', + source: 'rudder-webapp', + group: 'destination', + class: 'connection settings', + customDetails: { 'ping time': '1500ms', 'load avg': 0.75 }, + imageURLs: [ + { + src: 'https://static.s4be.cochrane.org/app/uploads/2017/04/shutterstock_531145954.jpg', + alt: 'first image', + }, + { + src: 'https://chart.googleapis.com/chart?chs=600x400&chd=t:6,2,9,5,2,5,7,4,8,2,1&cht=lc&chds=a&chxt=y&chm=D,0033FF,0,0,5,1', + alt: 'second image', + }, + { alt: 'third image' }, + ], + linkURLs: [ + { + href: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error', + text: 'Js Object Error', + }, + { + href: 'https://www.techtarget.com/whatis/definition/stack-overflow#:~:text=A%20stack%20overflow%20is%20a,been%20allocated%20to%20that%20stack', + text: 'Stack Overflow Error', + }, + { text: 'Destructure Error' }, + ], + }, + }, + destination: { + Config: { + routingKey: '9552b56325dc490bd0139be85f7b8fac', + dedupKeyFieldIdentifier: 'properties.dedupKey', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + links: [ + { + href: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error', + text: 'Js Object Error', + }, + { + href: 'https://www.techtarget.com/whatis/definition/stack-overflow#:~:text=A%20stack%20overflow%20is%20a,been%20allocated%20to%20that%20stack', + text: 'Stack Overflow Error', + }, + ], + images: [ + { + alt: 'first image', + src: 'https://static.s4be.cochrane.org/app/uploads/2017/04/shutterstock_531145954.jpg', + }, + { + alt: 'second image', + src: 'https://chart.googleapis.com/chart?chs=600x400&chd=t:6,2,9,5,2,5,7,4,8,2,1&cht=lc&chds=a&chxt=y&chm=D,0033FF,0,0,5,1', + }, + ], + payload: { + class: 'connection settings', + group: 'destination', + source: 'rudder-webapp', + summary: 'apiSecret is not present', + severity: 'critical', + component: 'ui', + custom_details: { 'ping time': '1500ms', 'load avg': 0.75 }, + }, + dedup_key: '9116b734-7e6b-4497-ab51-c16744d4487e', + routing_key: '9552b56325dc490bd0139be85f7b8fac', + event_action: 'trigger', + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { 'Content-Type': 'application/json' }, + version: '1', + endpoint: 'https://events.pagerduty.com/v2/enqueue', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pagerduty', + description: 'Acknowledge event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + type: 'track', + event: 'apiSecret is not present', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + userId: 'user@45', + properties: { + action: 'acknowledge', + dedupKey: '9116b734-7e6b-4497-ab51-c16744d4487e', + severity: 'critical', + component: 'ui', + source: 'rudder-webapp', + group: 'destination', + class: 'connection settings', + customDetails: { 'ping time': '1500ms', 'load avg': 0.75 }, + imageURLs: [ + { + src: 'https://static.s4be.cochrane.org/app/uploads/2017/04/shutterstock_531145954.jpg', + alt: 'first image', + }, + { + src: 'https://chart.googleapis.com/chart?chs=600x400&chd=t:6,2,9,5,2,5,7,4,8,2,1&cht=lc&chds=a&chxt=y&chm=D,0033FF,0,0,5,1', + alt: 'second image', + }, + { alt: 'third image' }, + ], + linkURLs: [ + { + href: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error', + text: 'Js Object Error', + }, + { + href: 'https://www.techtarget.com/whatis/definition/stack-overflow#:~:text=A%20stack%20overflow%20is%20a,been%20allocated%20to%20that%20stack', + text: 'Stack Overflow Error', + }, + { text: 'Destructure Error' }, + ], + }, + }, + destination: { + Config: { + routingKey: '9552b56325dc490bd0139be85f7b8fac', + dedupKeyFieldIdentifier: 'properties.dedupKey', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + dedup_key: '9116b734-7e6b-4497-ab51-c16744d4487e', + routing_key: '9552b56325dc490bd0139be85f7b8fac', + event_action: 'acknowledge', + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { 'Content-Type': 'application/json' }, + version: '1', + endpoint: 'https://events.pagerduty.com/v2/enqueue', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pagerduty', + description: 'Resolve event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + type: 'track', + event: 'apiSecret is not present', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + userId: 'user@45', + properties: { + action: 'resolve', + dedupKey: '9116b734-7e6b-4497-ab51-c16744d4487e', + severity: 'critical', + component: 'ui', + source: 'rudder-webapp', + group: 'destination', + class: 'connection settings', + customDetails: { 'ping time': '1500ms', 'load avg': 0.75 }, + imageURLs: [ + { + src: 'https://static.s4be.cochrane.org/app/uploads/2017/04/shutterstock_531145954.jpg', + alt: 'first image', + }, + { + src: 'https://chart.googleapis.com/chart?chs=600x400&chd=t:6,2,9,5,2,5,7,4,8,2,1&cht=lc&chds=a&chxt=y&chm=D,0033FF,0,0,5,1', + alt: 'second image', + }, + { alt: 'third image' }, + ], + linkURLs: [ + { + href: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error', + text: 'Js Object Error', + }, + { + href: 'https://www.techtarget.com/whatis/definition/stack-overflow#:~:text=A%20stack%20overflow%20is%20a,been%20allocated%20to%20that%20stack', + text: 'Stack Overflow Error', + }, + { text: 'Destructure Error' }, + ], + }, + }, + destination: { + Config: { + routingKey: '9552b56325dc490bd0139be85f7b8fac', + dedupKeyFieldIdentifier: 'properties.dedupKey', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + dedup_key: '9116b734-7e6b-4497-ab51-c16744d4487e', + routing_key: '9552b56325dc490bd0139be85f7b8fac', + event_action: 'resolve', + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { 'Content-Type': 'application/json' }, + version: '1', + endpoint: 'https://events.pagerduty.com/v2/enqueue', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pagerduty', + description: 'Change event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + type: 'track', + event: 'Github CI/CD Triggered', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + userId: 'user@45', + properties: { + source: 'rudder-webapp', + customDetails: { 'ping time': '1500ms', 'load avg': 0.75 }, + imageURLs: [ + { + src: 'https://static.s4be.cochrane.org/app/uploads/2017/04/shutterstock_531145954.jpg', + alt: 'first image', + }, + { + src: 'https://chart.googleapis.com/chart?chs=600x400&chd=t:6,2,9,5,2,5,7,4,8,2,1&cht=lc&chds=a&chxt=y&chm=D,0033FF,0,0,5,1', + alt: 'second image', + }, + { alt: 'third image' }, + ], + linkURLs: [ + { + href: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error', + text: 'Js Object Error', + }, + { + href: 'https://www.techtarget.com/whatis/definition/stack-overflow#:~:text=A%20stack%20overflow%20is%20a,been%20allocated%20to%20that%20stack', + text: 'Stack Overflow Error', + }, + { text: 'Destructure Error' }, + ], + }, + integrations: { pagerduty: { type: 'changeEvent' } }, + }, + destination: { + Config: { + routingKey: '9552b56325dc490bd0139be85f7b8fac', + dedupKeyFieldIdentifier: 'properties.dedupKey', + }, + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + links: [ + { + href: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error', + text: 'Js Object Error', + }, + { + href: 'https://www.techtarget.com/whatis/definition/stack-overflow#:~:text=A%20stack%20overflow%20is%20a,been%20allocated%20to%20that%20stack', + text: 'Stack Overflow Error', + }, + ], + images: [ + { + alt: 'first image', + src: 'https://static.s4be.cochrane.org/app/uploads/2017/04/shutterstock_531145954.jpg', + }, + { + alt: 'second image', + src: 'https://chart.googleapis.com/chart?chs=600x400&chd=t:6,2,9,5,2,5,7,4,8,2,1&cht=lc&chds=a&chxt=y&chm=D,0033FF,0,0,5,1', + }, + ], + payload: { + source: 'rudder-webapp', + summary: 'Github CI/CD Triggered', + custom_details: { 'load avg': 0.75, 'ping time': '1500ms' }, + }, + routing_key: '9552b56325dc490bd0139be85f7b8fac', + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { 'Content-Type': 'application/json' }, + version: '1', + endpoint: 'https://events.pagerduty.com/v2/change/enqueue', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/pagerduty/router/data.ts b/test/integrations/destinations/pagerduty/router/data.ts new file mode 100644 index 00000000000..02fd53c6297 --- /dev/null +++ b/test/integrations/destinations/pagerduty/router/data.ts @@ -0,0 +1,309 @@ +export const data = [ + { + name: 'pagerduty', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + channel: 'web', + type: 'track', + event: 'Github CI/CD Triggered', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + userId: 'user@45', + properties: { + source: 'rudder-webapp', + customDetails: { + 'ping time': '1500ms', + 'load avg': 0.75, + }, + imageURLs: [ + { + src: 'https://static.s4be.cochrane.org/app/uploads/2017/04/shutterstock_531145954.jpg', + alt: 'first image', + }, + { + src: 'https://chart.googleapis.com/chart?chs=600x400&chd=t:6,2,9,5,2,5,7,4,8,2,1&cht=lc&chds=a&chxt=y&chm=D,0033FF,0,0,5,1', + alt: 'second image', + }, + { + alt: 'third image', + }, + ], + linkURLs: [ + { + href: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error', + text: 'Js Object Error', + }, + { + href: 'https://www.techtarget.com/whatis/definition/stack-overflow#:~:text=A%20stack%20overflow%20is%20a,been%20allocated%20to%20that%20stack', + text: 'Stack Overflow Error', + }, + { + text: 'Destructure Error', + }, + ], + }, + integrations: { + pagerduty: { + type: 'changeEvent', + }, + }, + }, + metadata: { + jobId: 1, + }, + destination: { + Config: { + routingKey: '9552b56325dc490bd0139be85f7b8fac', + dedupKeyFieldIdentifier: 'properties.dedupKey', + }, + }, + }, + { + message: { + channel: 'web', + type: 'track', + event: 'apiSecret is not present', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + userId: 'user@45', + properties: { + action: 'acknowledge', + dedupKey: '9116b734-7e6b-4497-ab51-c16744d4487e', + severity: 'critical', + component: 'ui', + source: 'rudder-webapp', + group: 'destination', + class: 'connection settings', + customDetails: { + 'ping time': '1500ms', + 'load avg': 0.75, + }, + imageURLs: [ + { + src: 'https://static.s4be.cochrane.org/app/uploads/2017/04/shutterstock_531145954.jpg', + alt: 'first image', + }, + { + src: 'https://chart.googleapis.com/chart?chs=600x400&chd=t:6,2,9,5,2,5,7,4,8,2,1&cht=lc&chds=a&chxt=y&chm=D,0033FF,0,0,5,1', + alt: 'second image', + }, + { + alt: 'third image', + }, + ], + linkURLs: [ + { + href: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error', + text: 'Js Object Error', + }, + { + href: 'https://www.techtarget.com/whatis/definition/stack-overflow#:~:text=A%20stack%20overflow%20is%20a,been%20allocated%20to%20that%20stack', + text: 'Stack Overflow Error', + }, + { + text: 'Destructure Error', + }, + ], + }, + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + routingKey: '9552b56325dc490bd0139be85f7b8fac', + dedupKeyFieldIdentifier: 'properties.dedupKey', + }, + }, + }, + { + message: { + channel: 'web', + type: 'track', + event: 'apiSecret is not present', + messageId: '9116b734-7e6b-4497-ab51-c16744d4487e', + userId: 'user@45', + originalTimestamp: '2021-12-20T10:26:33.451Z', + properties: { + action: 'trigger', + dedupKey: '9116b734-7e6b-4497-ab51-c16744d4487e', + severity: 'critical', + component: 'ui', + source: 'rudder-webapp', + group: 'destination', + class: 'connection settings', + customDetails: { + 'ping time': '1500ms', + 'load avg': 0.75, + }, + imageURLs: [ + { + src: 'https://static.s4be.cochrane.org/app/uploads/2017/04/shutterstock_531145954.jpg', + alt: 'first image', + }, + { + src: 'https://chart.googleapis.com/chart?chs=600x400&chd=t:6,2,9,5,2,5,7,4,8,2,1&cht=lc&chds=a&chxt=y&chm=D,0033FF,0,0,5,1', + alt: 'second image', + }, + { + alt: 'third image', + }, + ], + linkURLs: [ + { + href: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error', + text: 'Js Object Error', + }, + { + href: 'https://www.techtarget.com/whatis/definition/stack-overflow#:~:text=A%20stack%20overflow%20is%20a,been%20allocated%20to%20that%20stack', + text: 'Stack Overflow Error', + }, + { + text: 'Destructure Error', + }, + ], + }, + }, + metadata: { + jobId: 3, + }, + destination: { + Config: { + routingKey: '9552b56325dc490bd0139be85f7b8fac', + dedupKeyFieldIdentifier: 'properties.dedupKey', + }, + }, + }, + ], + destType: 'pagerduty', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + batchedRequest: { + body: { + XML: {}, + FORM: {}, + JSON: { + links: [ + { + href: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error', + text: 'Js Object Error', + }, + { + href: 'https://www.techtarget.com/whatis/definition/stack-overflow#:~:text=A%20stack%20overflow%20is%20a,been%20allocated%20to%20that%20stack', + text: 'Stack Overflow Error', + }, + ], + images: [ + { + alt: 'first image', + src: 'https://static.s4be.cochrane.org/app/uploads/2017/04/shutterstock_531145954.jpg', + }, + { + alt: 'second image', + src: 'https://chart.googleapis.com/chart?chs=600x400&chd=t:6,2,9,5,2,5,7,4,8,2,1&cht=lc&chds=a&chxt=y&chm=D,0033FF,0,0,5,1', + }, + ], + payload: { + source: 'rudder-webapp', + summary: 'Github CI/CD Triggered', + custom_details: { + 'load avg': 0.75, + 'ping time': '1500ms', + }, + }, + routing_key: '9552b56325dc490bd0139be85f7b8fac', + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://events.pagerduty.com/v2/change/enqueue', + }, + destination: { + Config: { + routingKey: '9552b56325dc490bd0139be85f7b8fac', + dedupKeyFieldIdentifier: 'properties.dedupKey', + }, + }, + metadata: [{ jobId: 1 }], + statusCode: 200, + }, + { + batched: false, + batchedRequest: { + body: { + XML: {}, + FORM: {}, + JSON: { + dedup_key: '9116b734-7e6b-4497-ab51-c16744d4487e', + routing_key: '9552b56325dc490bd0139be85f7b8fac', + event_action: 'acknowledge', + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: 'https://events.pagerduty.com/v2/enqueue', + }, + destination: { + Config: { + routingKey: '9552b56325dc490bd0139be85f7b8fac', + dedupKeyFieldIdentifier: 'properties.dedupKey', + }, + }, + metadata: [{ jobId: 2 }], + statusCode: 200, + }, + { + batched: false, + error: 'Events must be sent within ninety days of their occurrence', + metadata: [{ jobId: 3 }], + statusCode: 400, + statTags: { + destType: 'PAGERDUTY', + feature: 'router', + module: 'destination', + implementation: 'native', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + }, + destination: { + Config: { + routingKey: '9552b56325dc490bd0139be85f7b8fac', + dedupKeyFieldIdentifier: 'properties.dedupKey', + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/pardot/network.ts b/test/integrations/destinations/pardot/network.ts new file mode 100644 index 00000000000..bbbe0d70f93 --- /dev/null +++ b/test/integrations/destinations/pardot/network.ts @@ -0,0 +1,440 @@ +import { enhanceRequestOptions, getFormData } from '../../../../src/adapters/network'; + +export const networkCallsData = [ + // 2nd proxy test-case + { + httpReq: { + url: 'https://pi.pardot.com/api/prospect/version/4/do/upsert/email/Roger_12@waltair.io', + data: getFormData({ + first_name: 'Roger_12', + last_name: 'Federer_12', + website: 'https://rudderstack.com', + score: 14, + campaign_id: 42213, + format: 'json', + }).toString(), + params: { destination: 'pardot' }, + headers: { + Authorization: 'Bearer myToken', + 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + '@attributes': { + stat: 'ok', + version: 1, + }, + prospect: { + id: 123435, + campaign_id: 42213, + salutation: null, + first_name: 'Roger_12', + last_name: 'Federer_12', + email: 'Roger_12@waltair.io', + password: null, + company: null, + website: 'https://rudderstack.com', + job_title: null, + department: null, + country: 'AU', + address_one: null, + address_two: null, + city: null, + state: null, + territory: null, + zip: null, + phone: null, + fax: null, + source: null, + annual_revenue: null, + employees: null, + industry: null, + years_in_business: null, + comments: null, + notes: null, + score: 14, + grade: null, + last_activity_at: null, + recent_interaction: 'Never active.', + crm_lead_fid: null, + crm_contact_fid: null, + crm_owner_fid: '00G2v000004WYXaEAO', + crm_account_fid: null, + salesforce_fid: null, + crm_last_sync: null, + crm_url: null, + is_do_not_email: null, + is_do_not_call: null, + opted_out: null, + is_reviewed: 1, + is_starred: null, + created_at: '2022-01-21 18:21:46', + updated_at: '2022-01-21 18:48:41', + campaign: { + id: 42113, + name: 'Test', + crm_fid: '7012y000000MNOCLL4', + }, + assigned_to: { + user: { + id: 38443703, + email: 'test_rudderstack@testcompany.com', + first_name: 'Rudderstack', + last_name: 'User', + job_title: null, + role: 'Administrator', + account: 489853, + created_at: '2021-02-26 06:25:17', + updated_at: '2021-02-26 06:25:17', + }, + }, + Are_you_shipping_large_fragile_or_bulky_items: false, + Calendly: false, + Country_Code: 'AU', + Currency: 'AUD', + Inventory_or_Warehouse_Management_System: false, + Lead_Status: 'New', + Marketing_Stage: 'SAL', + Record_Type_ID: 'TestCompany Lead', + profile: { + id: 304, + name: 'Default', + profile_criteria: [ + { + id: 1500, + name: 'Shipping Volume', + matches: 'Unknown', + }, + { + id: 1502, + name: 'Industry', + matches: 'Unknown', + }, + { + id: 1506, + name: 'Job Title', + matches: 'Unknown', + }, + { + id: 1508, + name: 'Department', + matches: 'Unknown', + }, + ], + }, + visitors: null, + visitor_activities: null, + lists: null, + }, + }, + status: 201, + statusText: 'Created', + }, + }, + // 4th proxy test-case + { + httpReq: { + url: 'https://pi.pardot.com/api/prospect/version/4/do/upsert/email/rolex_waltair@mywebsite.io', + data: getFormData({ + first_name: 'Rolex', + last_name: 'Waltair', + website: 'https://rudderstack.com', + score: 15, + campaign_id: 42213, + format: 'json', + }).toString(), + params: { destination: 'pardot' }, + headers: { + Authorization: 'Bearer myExpiredToken', + 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + '@attributes': { + stat: 'fail', + version: 1, + err_code: 184, + }, + err: 'access_token is invalid, unknown, or malformed: Inactive token', + }, + status: 401, + statusText: 'Unauthorized', + }, + }, + // 1st proxy test-case + { + httpReq: { + url: 'https://pi.pardot.com/api/prospect/version/4/do/upsert/id/123435', + data: getFormData({ + first_name: 'Roger12', + last_name: 'Federer12', + website: 'https://rudderstack.com', + score: 14, + campaign_id: 42213, + format: 'json', + }).toString(), + params: { destination: 'pardot' }, + headers: { + Authorization: 'Bearer myToken', + 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + '@attributes': { + stat: 'ok', + version: 1, + }, + prospect: { + id: 123435, + campaign_id: 42213, + salutation: null, + first_name: 'Roger12', + last_name: 'Federer12', + email: 'Roger12@waltair.io', + password: null, + company: null, + website: 'https://rudderstack.com', + job_title: null, + department: null, + country: 'AU', + address_one: null, + address_two: null, + city: null, + state: null, + territory: null, + zip: null, + phone: null, + fax: null, + source: null, + annual_revenue: null, + employees: null, + industry: null, + years_in_business: null, + comments: null, + notes: null, + score: 14, + grade: null, + last_activity_at: null, + recent_interaction: 'Never active.', + crm_lead_fid: null, + crm_contact_fid: null, + crm_owner_fid: '00G2v000004WYXaEAO', + crm_account_fid: null, + salesforce_fid: null, + crm_last_sync: null, + crm_url: null, + is_do_not_email: null, + is_do_not_call: null, + opted_out: null, + is_reviewed: 1, + is_starred: null, + created_at: '2022-01-21 18:21:46', + updated_at: '2022-01-21 18:48:41', + campaign: { + id: 42113, + name: 'Test', + crm_fid: '7012y000000MNOCLL4', + }, + assigned_to: { + user: { + id: 38443703, + email: 'test_rudderstack@testcompany.com', + first_name: 'Rudderstack', + last_name: 'User', + job_title: null, + role: 'Administrator', + account: 489853, + created_at: '2021-02-26 06:25:17', + updated_at: '2021-02-26 06:25:17', + }, + }, + Are_you_shipping_large_fragile_or_bulky_items: false, + Calendly: false, + Country_Code: 'AU', + Currency: 'AUD', + Inventory_or_Warehouse_Management_System: false, + Lead_Status: 'New', + Marketing_Stage: 'SAL', + Record_Type_ID: 'TestCompany Lead', + profile: { + id: 304, + name: 'Default', + profile_criteria: [ + { + id: 1500, + name: 'Shipping Volume', + matches: 'Unknown', + }, + { + id: 1502, + name: 'Industry', + matches: 'Unknown', + }, + { + id: 1506, + name: 'Job Title', + matches: 'Unknown', + }, + { + id: 1508, + name: 'Department', + matches: 'Unknown', + }, + ], + }, + visitors: null, + visitor_activities: null, + lists: null, + }, + }, + status: 200, + statusText: 'OK', + }, + }, + // 3rd proxy test-case + { + httpReq: { + url: 'https://pi.pardot.com/api/prospect/version/4/do/upsert/fid/00Q6r000002LKhTPVR', + data: getFormData({ + first_name: 'Nick', + last_name: 'Kyrgios', + website: 'https://rudderstack.com', + score: 12, + campaign_id: 42213, + format: 'json', + }).toString(), + params: { destination: 'pardot' }, + headers: { + Authorization: 'Bearer myToken', + 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + '@attributes': { + stat: 'ok', + version: 1, + }, + prospect: { + id: 123435, + campaign_id: 42213, + salutation: null, + first_name: 'Roger_12', + last_name: 'Federer_12', + email: 'Roger_12@federer.io', + password: null, + company: null, + website: 'https://rudderstack.com', + job_title: null, + department: null, + country: 'AU', + address_one: null, + address_two: null, + city: null, + state: null, + territory: null, + zip: null, + phone: null, + fax: null, + source: null, + annual_revenue: null, + employees: null, + industry: null, + years_in_business: null, + comments: null, + notes: null, + score: 14, + grade: null, + last_activity_at: null, + recent_interaction: 'Never active.', + crm_lead_fid: '00Q6r000002LKhTPVR', + crm_contact_fid: null, + crm_owner_fid: '00G2v000004WYXaEAO', + crm_account_fid: null, + salesforce_fid: '00Q6r000002LKhTPVR', + crm_last_sync: '2022-01-21 18:47:37', + crm_url: 'https://testcompany.my.salesforce.com/00Q6r000002LKhTPVR', + is_do_not_email: null, + is_do_not_call: null, + opted_out: null, + is_reviewed: 1, + is_starred: null, + created_at: '2022-01-21 18:21:46', + updated_at: '2022-01-21 18:48:41', + campaign: { + id: 42113, + name: 'Test', + crm_fid: '7012y000000MNOCLL4', + }, + assigned_to: { + user: { + id: 38443703, + email: 'test_rudderstack@testcompany.com', + first_name: 'Rudderstack', + last_name: 'User', + job_title: null, + role: 'Administrator', + account: 489853, + created_at: '2021-02-26 06:25:17', + updated_at: '2021-02-26 06:25:17', + }, + }, + Are_you_shipping_large_fragile_or_bulky_items: false, + Calendly: false, + Country_Code: 'AU', + Currency: 'AUD', + Inventory_or_Warehouse_Management_System: false, + Lead_Status: 'New', + Marketing_Stage: 'SAL', + Record_Type_ID: 'TestCompany Lead', + profile: { + id: 304, + name: 'Default', + profile_criteria: [ + { + id: 1500, + name: 'Shipping Volume', + matches: 'Unknown', + }, + { + id: 1502, + name: 'Industry', + matches: 'Unknown', + }, + { + id: 1506, + name: 'Job Title', + matches: 'Unknown', + }, + { + id: 1508, + name: 'Department', + matches: 'Unknown', + }, + ], + }, + visitors: null, + visitor_activities: null, + lists: null, + }, + }, + status: 200, + statusText: 'OK', + }, + }, +]; diff --git a/test/integrations/destinations/pardot/router/data.ts b/test/integrations/destinations/pardot/router/data.ts new file mode 100644 index 00000000000..7c2a2a11e36 --- /dev/null +++ b/test/integrations/destinations/pardot/router/data.ts @@ -0,0 +1,1570 @@ +import { FEATURES, MODULES } from '../../../../../src/v0/util/tags'; + +export const data = [ + { + name: 'pardot', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + businessUnitId: '0Uv2v000000k9tHCAQ', + campaignId: 42213, + authStatus: 'active', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + DestinationDefinition: { + name: 'PARDOT', + displayName: 'Pardot', + config: { + auth: { + type: 'OAuth', + }, + transformAt: 'router', + transformAtV1: 'router', + saveDestinationResponse: true, + includeKeys: [], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + destConfig: { + defaultConfig: ['rudderAccountId', 'businessUnitId', 'campaignId'], + }, + secretKeys: ['businessUnitId'], + }, + }, + Enabled: true, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'test destination', + Transformations: [], + }, + metadata: { + jobId: 1, + secret: { + access_token: 'myToken', + refresh_token: 'myRefreshToken', + }, + }, + message: { + type: 'identify', + event: 'navigated user', + sentAt: '2021-09-08T11:10:45.466Z', + userId: 'user12345', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.18', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:5500/index.html', + path: '/index.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:5500/index.html', + referrer: '$direct', + initial_referrer: '$direct', + referring_domain: '', + initial_referring_domain: '', + }, + locale: 'en-GB', + screen: { + width: 1536, + height: 960, + density: 2, + innerWidth: 1536, + innerHeight: 776, + }, + traits: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.18', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', + externalId: [ + { + type: 'pardotId', + id: 123435, + }, + ], + }, + rudderId: 'fa2994a5-2a81-45fd-9919-fcf5596ad380', + messageId: 'e2d1a383-d9a2-4e03-a9dc-131d153c4d95', + timestamp: '2021-11-15T14:06:42.497+05:30', + properties: {}, + receivedAt: '2021-11-15T14:06:42.497+05:30', + request_ip: '[::1]', + anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', + integrations: { + All: true, + }, + originalTimestamp: '2021-09-08T11:10:45.466Z', + traits: { + email: 'Roger12@waltair.io', + active_seats: 4, + firstName: 'Roger12', + lastName: 'Federer12', + website: 'https://rudderstack.com', + score: 14, + }, + }, + }, + { + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + businessUnitId: '0Uv2v000000k9tHCAQ', + campaignId: 42213, + authStatus: 'active', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + DestinationDefinition: { + name: 'PARDOT', + displayName: 'Pardot', + config: { + auth: { + type: 'OAuth', + }, + transformAt: 'router', + transformAtV1: 'router', + saveDestinationResponse: true, + includeKeys: [], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + destConfig: { + defaultConfig: ['rudderAccountId', 'businessUnitId', 'campaignId'], + }, + secretKeys: ['businessUnitId'], + }, + }, + Enabled: true, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'test destination', + Transformations: [], + }, + metadata: { + jobId: 2, + secret: { + access_token: 'myToken', + refresh_token: 'myRefreshToken', + }, + }, + message: { + type: 'identify', + event: 'insert product', + sentAt: '2021-09-08T11:10:45.466Z', + userId: 'user12345', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.18', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:5500/index.html', + path: '/index.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:5500/index.html', + referrer: '$direct', + initial_referrer: '$direct', + referring_domain: '', + initial_referring_domain: '', + }, + locale: 'en-GB', + screen: { + width: 1536, + height: 960, + density: 2, + innerWidth: 1536, + innerHeight: 776, + }, + traits: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.18', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', + }, + rudderId: 'fa2994a5-2a81-45fd-9919-fcf5596ad380', + messageId: 'e2d1a383-d9a2-4e03-a9dc-131d153c4d95', + timestamp: '2021-11-15T14:06:42.497+05:30', + properties: {}, + receivedAt: '2021-11-15T14:06:42.497+05:30', + request_ip: '[::1]', + anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', + integrations: { + All: true, + }, + originalTimestamp: '2021-09-08T11:10:45.466Z', + traits: { + email: 'Roger_12@waltair.io', + active_seats: 4, + firstName: 'Roger_12', + lastName: 'Federer_12', + website: 'https://rudderstack.com', + score: 14, + }, + }, + }, + { + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + businessUnitId: '0Uv2v000000k9tHCAQ', + campaignId: 42213, + authStatus: 'active', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + DestinationDefinition: { + name: 'PARDOT', + displayName: 'Pardot', + config: { + auth: { + type: 'OAuth', + }, + transformAt: 'router', + transformAtV1: 'router', + saveDestinationResponse: true, + includeKeys: [], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + destConfig: { + defaultConfig: ['rudderAccountId', 'businessUnitId', 'campaignId'], + }, + secretKeys: ['businessUnitId'], + }, + }, + Enabled: true, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'test destination', + Transformations: [], + }, + metadata: { + jobId: 3, + secret: { + access_token: 'myToken', + refresh_token: 'myRefreshToken', + }, + }, + message: { + type: 'identify', + event: 'insert product', + sentAt: '2021-09-08T11:10:45.466Z', + userId: 'user12345', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.18', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:5500/index.html', + path: '/index.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:5500/index.html', + referrer: '$direct', + initial_referrer: '$direct', + referring_domain: '', + initial_referring_domain: '', + }, + locale: 'en-GB', + screen: { + width: 1536, + height: 960, + density: 2, + innerWidth: 1536, + innerHeight: 776, + }, + traits: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.18', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', + externalId: [ + { + type: 'crmfid', + id: '00Q6r000002LKhTPVR', + }, + ], + }, + rudderId: 'fa2994a5-2a81-45fd-9919-fcf5596ad380', + messageId: 'e2d1a383-d9a2-4e03-a9dc-131d153c4d95', + timestamp: '2021-11-15T14:06:42.497+05:30', + properties: {}, + receivedAt: '2021-11-15T14:06:42.497+05:30', + request_ip: '[::1]', + anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', + integrations: { + All: true, + }, + originalTimestamp: '2021-09-08T11:10:45.466Z', + traits: { + email: 'nick_kyrgios@waltair.io', + active_seats: 4, + firstName: 'Nick', + lastName: 'Kyrgios', + website: 'https://rudderstack.com', + score: 12, + }, + }, + }, + { + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + businessUnitId: '0Uv2v000000k9tHCAQ', + campaignId: 42213, + authStatus: 'active', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + DestinationDefinition: { + name: 'PARDOT', + displayName: 'Pardot', + config: { + auth: { + type: 'OAuth', + }, + transformAt: 'router', + transformAtV1: 'router', + saveDestinationResponse: true, + includeKeys: [], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + destConfig: { + defaultConfig: ['rudderAccountId', 'businessUnitId', 'campaignId'], + }, + secretKeys: ['businessUnitId'], + }, + }, + Enabled: true, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'test destination', + Transformations: [], + }, + metadata: { + jobId: 4, + secret: { + access_token: 'myExpiredToken', + refresh_token: 'myRefreshToken', + }, + }, + message: { + type: 'identify', + event: 'navigated user', + sentAt: '2021-09-08T11:10:45.466Z', + userId: 'user12345', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.18', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:5500/index.html', + path: '/index.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:5500/index.html', + referrer: '$direct', + initial_referrer: '$direct', + referring_domain: '', + initial_referring_domain: '', + }, + locale: 'en-GB', + screen: { + width: 1536, + height: 960, + density: 2, + innerWidth: 1536, + innerHeight: 776, + }, + traits: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.18', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', + }, + rudderId: 'fa2994a5-2a81-45fd-9919-fcf5596ad380', + messageId: 'e2d1a383-d9a2-4e03-a9dc-131d153c4d95', + timestamp: '2021-11-15T14:06:42.497+05:30', + properties: {}, + receivedAt: '2021-11-15T14:06:42.497+05:30', + request_ip: '[::1]', + anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', + integrations: { + All: true, + }, + originalTimestamp: '2021-09-08T11:10:45.466Z', + traits: { + email: 'rolex_waltair@mywebsite.io', + active_seats: 4, + firstName: 'Rolex', + lastName: 'Waltair', + website: 'https://rudderstack.com', + score: 15, + }, + }, + }, + { + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + businessUnitId: '0Uv2v000000k9tHCAQ', + campaignId: 42213, + authStatus: 'active', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + DestinationDefinition: { + name: 'PARDOT', + displayName: 'Pardot', + config: { + auth: { + type: 'OAuth', + }, + transformAt: 'router', + transformAtV1: 'router', + saveDestinationResponse: true, + includeKeys: [], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + destConfig: { + defaultConfig: ['rudderAccountId', 'businessUnitId', 'campaignId'], + }, + secretKeys: ['businessUnitId'], + }, + }, + Enabled: true, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'test destination', + Transformations: [], + }, + metadata: { + jobId: 5, + secret: null, + }, + message: { + type: 'identify', + event: 'navigated user', + sentAt: '2021-09-08T11:10:45.466Z', + userId: 'user12345', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.1.18', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:5500/index.html', + path: '/index.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:5500/index.html', + referrer: '$direct', + initial_referrer: '$direct', + referring_domain: '', + initial_referring_domain: '', + }, + locale: 'en-GB', + screen: { + width: 1536, + height: 960, + density: 2, + innerWidth: 1536, + innerHeight: 776, + }, + traits: {}, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.18', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', + }, + rudderId: 'fa2994a5-2a81-45fd-9919-fcf5596ad380', + messageId: 'e2d1a383-d9a2-4e03-a9dc-131d153c4d95', + timestamp: '2021-11-15T14:06:42.497+05:30', + properties: {}, + receivedAt: '2021-11-15T14:06:42.497+05:30', + request_ip: '[::1]', + anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', + integrations: { + All: true, + }, + originalTimestamp: '2021-09-08T11:10:45.466Z', + traits: { + email: 'rolex_waltair@mywebsite.io', + active_seats: 4, + firstName: 'Rolex', + lastName: 'Waltair', + website: 'https://rudderstack.com', + score: 15, + }, + }, + }, + ], + destType: 'pardot', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://pi.pardot.com/api/prospect/version/4/do/upsert/id/123435', + headers: { + Authorization: 'Bearer myToken', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + first_name: 'Roger12', + last_name: 'Federer12', + website: 'https://rudderstack.com', + score: 14, + campaign_id: 42213, + }, + }, + files: {}, + }, + metadata: [ + { + jobId: 1, + secret: { + access_token: 'myToken', + refresh_token: 'myRefreshToken', + }, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + businessUnitId: '0Uv2v000000k9tHCAQ', + campaignId: 42213, + authStatus: 'active', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + DestinationDefinition: { + name: 'PARDOT', + displayName: 'Pardot', + config: { + auth: { + type: 'OAuth', + }, + transformAt: 'router', + transformAtV1: 'router', + saveDestinationResponse: true, + includeKeys: [], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + destConfig: { + defaultConfig: ['rudderAccountId', 'businessUnitId', 'campaignId'], + }, + secretKeys: ['businessUnitId'], + }, + }, + Enabled: true, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'test destination', + Transformations: [], + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://pi.pardot.com/api/prospect/version/4/do/upsert/email/Roger_12@waltair.io', + headers: { + Authorization: 'Bearer myToken', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + first_name: 'Roger_12', + last_name: 'Federer_12', + website: 'https://rudderstack.com', + score: 14, + campaign_id: 42213, + }, + }, + files: {}, + }, + metadata: [ + { + jobId: 2, + secret: { + access_token: 'myToken', + refresh_token: 'myRefreshToken', + }, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + businessUnitId: '0Uv2v000000k9tHCAQ', + campaignId: 42213, + authStatus: 'active', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + DestinationDefinition: { + name: 'PARDOT', + displayName: 'Pardot', + config: { + auth: { + type: 'OAuth', + }, + transformAt: 'router', + transformAtV1: 'router', + saveDestinationResponse: true, + includeKeys: [], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + destConfig: { + defaultConfig: ['rudderAccountId', 'businessUnitId', 'campaignId'], + }, + secretKeys: ['businessUnitId'], + }, + }, + Enabled: true, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'test destination', + Transformations: [], + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://pi.pardot.com/api/prospect/version/4/do/upsert/fid/00Q6r000002LKhTPVR', + headers: { + Authorization: 'Bearer myToken', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + first_name: 'Nick', + last_name: 'Kyrgios', + website: 'https://rudderstack.com', + score: 12, + campaign_id: 42213, + }, + }, + files: {}, + }, + metadata: [ + { + jobId: 3, + secret: { + access_token: 'myToken', + refresh_token: 'myRefreshToken', + }, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + businessUnitId: '0Uv2v000000k9tHCAQ', + campaignId: 42213, + authStatus: 'active', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + DestinationDefinition: { + name: 'PARDOT', + displayName: 'Pardot', + config: { + auth: { + type: 'OAuth', + }, + transformAt: 'router', + transformAtV1: 'router', + saveDestinationResponse: true, + includeKeys: [], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + destConfig: { + defaultConfig: ['rudderAccountId', 'businessUnitId', 'campaignId'], + }, + secretKeys: ['businessUnitId'], + }, + }, + Enabled: true, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'test destination', + Transformations: [], + }, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://pi.pardot.com/api/prospect/version/4/do/upsert/email/rolex_waltair@mywebsite.io', + headers: { + Authorization: 'Bearer myExpiredToken', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + first_name: 'Rolex', + last_name: 'Waltair', + website: 'https://rudderstack.com', + score: 15, + campaign_id: 42213, + }, + }, + files: {}, + }, + metadata: [ + { + jobId: 4, + secret: { + access_token: 'myExpiredToken', + refresh_token: 'myRefreshToken', + }, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + businessUnitId: '0Uv2v000000k9tHCAQ', + campaignId: 42213, + authStatus: 'active', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + DestinationDefinition: { + name: 'PARDOT', + displayName: 'Pardot', + config: { + auth: { + type: 'OAuth', + }, + transformAt: 'router', + transformAtV1: 'router', + saveDestinationResponse: true, + includeKeys: [], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + destConfig: { + defaultConfig: ['rudderAccountId', 'businessUnitId', 'campaignId'], + }, + secretKeys: ['businessUnitId'], + }, + }, + Enabled: true, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'test destination', + Transformations: [], + }, + }, + { + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + businessUnitId: '0Uv2v000000k9tHCAQ', + campaignId: 42213, + authStatus: 'active', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + DestinationDefinition: { + name: 'PARDOT', + displayName: 'Pardot', + config: { + auth: { + type: 'OAuth', + }, + transformAt: 'router', + transformAtV1: 'router', + saveDestinationResponse: true, + includeKeys: [], + excludeKeys: [], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'warehouse', + 'reactnative', + 'flutter', + 'cordova', + ], + destConfig: { + defaultConfig: ['rudderAccountId', 'businessUnitId', 'campaignId'], + }, + secretKeys: ['businessUnitId'], + }, + }, + Enabled: true, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'test destination', + Transformations: [], + }, + metadata: [ + { + jobId: 5, + secret: null, + }, + ], + batched: false, + statusCode: 500, + error: 'OAuth - access token not found', + statTags: { + destType: 'PARDOT', + feature: 'router', + implementation: 'native', + errorCategory: 'platform', + module: 'destination', + errorType: 'oAuthSecret', + }, + }, + ], + }, + }, + }, + }, + { + name: 'pardot', + description: 'Test proxy - 0', + feature: FEATURES.DATA_DELIVERY, + module: MODULES.DESTINATION, + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://pi.pardot.com/api/prospect/version/4/do/upsert/id/123435', + headers: { + Authorization: 'Bearer myToken', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + first_name: 'Roger12', + last_name: 'Federer12', + website: 'https://rudderstack.com', + score: 14, + campaign_id: 42213, + }, + }, + files: {}, + params: { + destination: 'pardot', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + message: 'Request Processed Successfully', + status: 200, + destinationResponse: { + response: { + '@attributes': { + stat: 'ok', + version: 1, + }, + prospect: { + id: 123435, + campaign_id: 42213, + salutation: null, + first_name: 'Roger12', + last_name: 'Federer12', + email: 'Roger12@waltair.io', + password: null, + company: null, + website: 'https://rudderstack.com', + job_title: null, + department: null, + country: 'AU', + address_one: null, + address_two: null, + city: null, + state: null, + territory: null, + zip: null, + phone: null, + fax: null, + source: null, + annual_revenue: null, + employees: null, + industry: null, + years_in_business: null, + comments: null, + notes: null, + score: 14, + grade: null, + last_activity_at: null, + recent_interaction: 'Never active.', + crm_lead_fid: null, + crm_contact_fid: null, + crm_owner_fid: '00G2v000004WYXaEAO', + crm_account_fid: null, + salesforce_fid: null, + crm_last_sync: null, + crm_url: null, + is_do_not_email: null, + is_do_not_call: null, + opted_out: null, + is_reviewed: 1, + is_starred: null, + created_at: '2022-01-21 18:21:46', + updated_at: '2022-01-21 18:48:41', + campaign: { + id: 42113, + name: 'Test', + crm_fid: '7012y000000MNOCLL4', + }, + assigned_to: { + user: { + id: 38443703, + email: 'test_rudderstack@testcompany.com', + first_name: 'Rudderstack', + last_name: 'User', + job_title: null, + role: 'Administrator', + account: 489853, + created_at: '2021-02-26 06:25:17', + updated_at: '2021-02-26 06:25:17', + }, + }, + Are_you_shipping_large_fragile_or_bulky_items: false, + Calendly: false, + Country_Code: 'AU', + Currency: 'AUD', + Inventory_or_Warehouse_Management_System: false, + Lead_Status: 'New', + Marketing_Stage: 'SAL', + Record_Type_ID: 'TestCompany Lead', + profile: { + id: 304, + name: 'Default', + profile_criteria: [ + { + id: 1500, + name: 'Shipping Volume', + matches: 'Unknown', + }, + { + id: 1502, + name: 'Industry', + matches: 'Unknown', + }, + { + id: 1506, + name: 'Job Title', + matches: 'Unknown', + }, + { + id: 1508, + name: 'Department', + matches: 'Unknown', + }, + ], + }, + visitors: null, + visitor_activities: null, + lists: null, + }, + }, + status: 200, + }, + }, + }, + }, + }, + }, + { + name: 'pardot', + description: 'Test proxy - 1', + feature: FEATURES.DATA_DELIVERY, + module: MODULES.DESTINATION, + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://pi.pardot.com/api/prospect/version/4/do/upsert/email/Roger_12@waltair.io', + headers: { + Authorization: 'Bearer myToken', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + first_name: 'Roger_12', + last_name: 'Federer_12', + website: 'https://rudderstack.com', + score: 14, + campaign_id: 42213, + }, + }, + files: {}, + params: { + destination: 'pardot', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + message: 'Request Processed Successfully', + status: 201, + destinationResponse: { + response: { + '@attributes': { + stat: 'ok', + version: 1, + }, + prospect: { + id: 123435, + campaign_id: 42213, + salutation: null, + first_name: 'Roger_12', + last_name: 'Federer_12', + email: 'Roger_12@waltair.io', + password: null, + company: null, + website: 'https://rudderstack.com', + job_title: null, + department: null, + country: 'AU', + address_one: null, + address_two: null, + city: null, + state: null, + territory: null, + zip: null, + phone: null, + fax: null, + source: null, + annual_revenue: null, + employees: null, + industry: null, + years_in_business: null, + comments: null, + notes: null, + score: 14, + grade: null, + last_activity_at: null, + recent_interaction: 'Never active.', + crm_lead_fid: null, + crm_contact_fid: null, + crm_owner_fid: '00G2v000004WYXaEAO', + crm_account_fid: null, + salesforce_fid: null, + crm_last_sync: null, + crm_url: null, + is_do_not_email: null, + is_do_not_call: null, + opted_out: null, + is_reviewed: 1, + is_starred: null, + created_at: '2022-01-21 18:21:46', + updated_at: '2022-01-21 18:48:41', + campaign: { + id: 42113, + name: 'Test', + crm_fid: '7012y000000MNOCLL4', + }, + assigned_to: { + user: { + id: 38443703, + email: 'test_rudderstack@testcompany.com', + first_name: 'Rudderstack', + last_name: 'User', + job_title: null, + role: 'Administrator', + account: 489853, + created_at: '2021-02-26 06:25:17', + updated_at: '2021-02-26 06:25:17', + }, + }, + Are_you_shipping_large_fragile_or_bulky_items: false, + Calendly: false, + Country_Code: 'AU', + Currency: 'AUD', + Inventory_or_Warehouse_Management_System: false, + Lead_Status: 'New', + Marketing_Stage: 'SAL', + Record_Type_ID: 'TestCompany Lead', + profile: { + id: 304, + name: 'Default', + profile_criteria: [ + { + id: 1500, + name: 'Shipping Volume', + matches: 'Unknown', + }, + { + id: 1502, + name: 'Industry', + matches: 'Unknown', + }, + { + id: 1506, + name: 'Job Title', + matches: 'Unknown', + }, + { + id: 1508, + name: 'Department', + matches: 'Unknown', + }, + ], + }, + visitors: null, + visitor_activities: null, + lists: null, + }, + }, + status: 201, + }, + }, + }, + }, + }, + }, + { + name: 'pardot', + description: 'Test proxy - 2', + feature: FEATURES.DATA_DELIVERY, + module: MODULES.DESTINATION, + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://pi.pardot.com/api/prospect/version/4/do/upsert/fid/00Q6r000002LKhTPVR', + headers: { + Authorization: 'Bearer myToken', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + first_name: 'Nick', + last_name: 'Kyrgios', + website: 'https://rudderstack.com', + score: 12, + campaign_id: 42213, + }, + }, + files: {}, + params: { + destination: 'pardot', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + message: 'Request Processed Successfully', + status: 200, + destinationResponse: { + response: { + '@attributes': { + stat: 'ok', + version: 1, + }, + prospect: { + id: 123435, + campaign_id: 42213, + salutation: null, + first_name: 'Roger_12', + last_name: 'Federer_12', + email: 'Roger_12@federer.io', + password: null, + company: null, + website: 'https://rudderstack.com', + job_title: null, + department: null, + country: 'AU', + address_one: null, + address_two: null, + city: null, + state: null, + territory: null, + zip: null, + phone: null, + fax: null, + source: null, + annual_revenue: null, + employees: null, + industry: null, + years_in_business: null, + comments: null, + notes: null, + score: 14, + grade: null, + last_activity_at: null, + recent_interaction: 'Never active.', + crm_lead_fid: '00Q6r000002LKhTPVR', + crm_contact_fid: null, + crm_owner_fid: '00G2v000004WYXaEAO', + crm_account_fid: null, + salesforce_fid: '00Q6r000002LKhTPVR', + crm_last_sync: '2022-01-21 18:47:37', + crm_url: 'https://testcompany.my.salesforce.com/00Q6r000002LKhTPVR', + is_do_not_email: null, + is_do_not_call: null, + opted_out: null, + is_reviewed: 1, + is_starred: null, + created_at: '2022-01-21 18:21:46', + updated_at: '2022-01-21 18:48:41', + campaign: { + id: 42113, + name: 'Test', + crm_fid: '7012y000000MNOCLL4', + }, + assigned_to: { + user: { + id: 38443703, + email: 'test_rudderstack@testcompany.com', + first_name: 'Rudderstack', + last_name: 'User', + job_title: null, + role: 'Administrator', + account: 489853, + created_at: '2021-02-26 06:25:17', + updated_at: '2021-02-26 06:25:17', + }, + }, + Are_you_shipping_large_fragile_or_bulky_items: false, + Calendly: false, + Country_Code: 'AU', + Currency: 'AUD', + Inventory_or_Warehouse_Management_System: false, + Lead_Status: 'New', + Marketing_Stage: 'SAL', + Record_Type_ID: 'TestCompany Lead', + profile: { + id: 304, + name: 'Default', + profile_criteria: [ + { + id: 1500, + name: 'Shipping Volume', + matches: 'Unknown', + }, + { + id: 1502, + name: 'Industry', + matches: 'Unknown', + }, + { + id: 1506, + name: 'Job Title', + matches: 'Unknown', + }, + { + id: 1508, + name: 'Department', + matches: 'Unknown', + }, + ], + }, + visitors: null, + visitor_activities: null, + lists: null, + }, + }, + status: 200, + }, + }, + }, + }, + }, + }, + { + name: 'pardot', + description: 'Test proxy - 3', + feature: FEATURES.DATA_DELIVERY, + module: MODULES.DESTINATION, + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://pi.pardot.com/api/prospect/version/4/do/upsert/email/rolex_waltair@mywebsite.io', + headers: { + Authorization: 'Bearer myExpiredToken', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + first_name: 'Rolex', + last_name: 'Waltair', + website: 'https://rudderstack.com', + score: 15, + campaign_id: 42213, + }, + }, + files: {}, + params: { + destination: 'pardot', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + body: { + output: { + message: + 'access_token is invalid, unknown, or malformed: Inactive token during Pardot response transformation', + status: 500, + authErrorCategory: 'REFRESH_TOKEN', + destinationResponse: { + '@attributes': { + stat: 'fail', + version: 1, + err_code: 184, + }, + err: 'access_token is invalid, unknown, or malformed: Inactive token', + }, + statTags: { + destType: 'PARDOT', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/persistiq/processor/data.ts b/test/integrations/destinations/persistiq/processor/data.ts index bc17cfa2285..05bafe6123f 100644 --- a/test/integrations/destinations/persistiq/processor/data.ts +++ b/test/integrations/destinations/persistiq/processor/data.ts @@ -20,7 +20,7 @@ export const data = [ gender: 'male', city: 'Kolkata', country: 'india', - phone: '9225467887', + phone: '9876543210', useroccupation: 'software engineer', Snippet: 'extra value', extra: 'extraVal', @@ -43,7 +43,7 @@ export const data = [ }, destination: { Config: { - apiKey: '2c646069cc5ae3f22cc0dab36cd060ad', + apiKey: 'dummyApiKey', persistIqAttributesMapping: [ { from: 'useroccupation', @@ -75,7 +75,7 @@ export const data = [ Snippet: 'extra value', last_name: 'rudderstack', linkedin: 'www.google.com', - phone: '9225467887', + phone: '9876543210', company_name: 'abc123', }, status: 'open', @@ -87,7 +87,7 @@ export const data = [ files: {}, userId: '', headers: { - 'x-api-key': '2c646069cc5ae3f22cc0dab36cd060ad', + 'x-api-key': 'dummyApiKey', }, method: 'PATCH', params: {}, @@ -125,7 +125,7 @@ export const data = [ age: 15, dup: 'update', gender: 'male', - phone: '9225467887', + phone: '9876543210', useroccupation: 'software engineer', Snippet: 'extra value', extra: 'extraVal', @@ -140,7 +140,7 @@ export const data = [ }, destination: { Config: { - apiKey: '2c646069cc5ae3f22cc0dab36cd060ad', + apiKey: 'dummyApiKey', persistIqAttributesMapping: [ { from: 'useroccupation', @@ -175,7 +175,7 @@ export const data = [ Snippet: 'extra value', last_name: 'rudderstack', linkedin: 'www.google.com', - phone: '9225467887', + phone: '9876543210', company_name: 'abc1234', cityName: 'Delhi', country: 'India', @@ -189,7 +189,7 @@ export const data = [ files: {}, userId: '', headers: { - 'x-api-key': '2c646069cc5ae3f22cc0dab36cd060ad', + 'x-api-key': 'dummyApiKey', }, method: 'POST', params: {}, @@ -224,7 +224,7 @@ export const data = [ }, destination: { Config: { - apiKey: '262fbbda-b85b-48b8-a719-c2fceaf8afaf', + apiKey: 'dummyApiKey', }, }, }, @@ -276,7 +276,7 @@ export const data = [ city: 'Kalkata', country: 'india', tags: ['productuser'], - phone: '9225467887', + phone: '9876543210', }, }, traits: { @@ -285,7 +285,7 @@ export const data = [ }, destination: { Config: { - apiKey: '262fbbda-b85b-48b8-a719-c2fceaf8afaf', + apiKey: 'dummyApiKey', }, }, }, @@ -339,7 +339,7 @@ export const data = [ }, destination: { Config: { - apiKey: '262fbbda-b85b-48b8-a719-c2fceaf8afaf', + apiKey: 'dummyApiKey', }, }, }, @@ -400,7 +400,7 @@ export const data = [ }, destination: { Config: { - apiKey: '2c646069cc5ae3f22cc0dab36cd060ad', + apiKey: 'dummyApiKey', }, }, }, @@ -429,7 +429,7 @@ export const data = [ method: 'POST', params: {}, headers: { - 'x-api-key': '2c646069cc5ae3f22cc0dab36cd060ad', + 'x-api-key': 'dummyApiKey', }, version: '1', endpoint: 'https://api.persistiq.com/v1/campaigns/testgroup1/leads', @@ -472,7 +472,7 @@ export const data = [ }, destination: { Config: { - apiKey: '2c646069cc5ae3f22cc0dab36cd060ad', + apiKey: 'dummyApiKey', }, }, }, @@ -498,7 +498,7 @@ export const data = [ method: 'DELETE', params: {}, headers: { - 'x-api-key': '2c646069cc5ae3f22cc0dab36cd060ad', + 'x-api-key': 'dummyApiKey', }, version: '1', endpoint: 'https://api.persistiq.com/v1/campaigns/testgroup1/leads/lel1c5u1wuk8', @@ -533,7 +533,7 @@ export const data = [ age: 15, dup: 'update', gender: 'male', - phone: '9225467887', + phone: '9876543210', useroccupation: 'software engineer', Snippet: 'extra value', extra: 'extraVal', @@ -547,7 +547,7 @@ export const data = [ }, destination: { Config: { - apiKey: '2c646069cc5ae3f22cc0dab36cd060ad', + apiKey: 'dummyApiKey', persistIqAttributesMapping: [ { from: 'useroccupation', diff --git a/test/integrations/destinations/persistiq/router/data.ts b/test/integrations/destinations/persistiq/router/data.ts index 2da74e69bcf..051a8a4bcac 100644 --- a/test/integrations/destinations/persistiq/router/data.ts +++ b/test/integrations/destinations/persistiq/router/data.ts @@ -21,7 +21,7 @@ export const data = [ gender: 'male', city: 'Kolkata', country: 'india', - phone: '9225467887', + phone: '9876543210', useroccupation: 'software engineer', Snippet: 'extra value', extra: 'extraVal', @@ -44,7 +44,7 @@ export const data = [ }, destination: { Config: { - apiKey: '2c646069cc5ae3f22cc0dab36cd060ad', + apiKey: 'dummyApiKey', persistIqAttributesMapping: [ { from: 'useroccupation', @@ -81,7 +81,7 @@ export const data = [ last_name: 'rudderstack', linkedin: 'www.google.com', occupation: 'software engineer', - phone: '9225467887', + phone: '9876543210', }, status: 'open', }, @@ -90,7 +90,7 @@ export const data = [ }, endpoint: 'https://api.persistiq.com/v1/leads/lel1c5u1wuk8', files: {}, - headers: { 'x-api-key': '2c646069cc5ae3f22cc0dab36cd060ad' }, + headers: { 'x-api-key': 'dummyApiKey' }, method: 'PATCH', params: {}, type: 'REST', @@ -98,7 +98,7 @@ export const data = [ }, destination: { Config: { - apiKey: '2c646069cc5ae3f22cc0dab36cd060ad', + apiKey: 'dummyApiKey', persistIqAttributesMapping: [{ from: 'useroccupation', to: 'occupation' }], }, }, diff --git a/test/integrations/destinations/personalize/processor/data.ts b/test/integrations/destinations/personalize/processor/data.ts new file mode 100644 index 00000000000..012aae25bb7 --- /dev/null +++ b/test/integrations/destinations/personalize/processor/data.ts @@ -0,0 +1,4188 @@ +export const data = [ + { + name: 'personalize', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT ADDED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + movieWatched: 2, + eventValue: 7.06, + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'MOVIE_WATCHED', to: 'movieWatched' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + ], + datasetARN: '', + eventChoice: 'PutEvents', + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + destinationType: 'PERSONALIZE', + jobId: 1, + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + receivedAt: '2021-03-13T01:56:44.340+05:30', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + }, + output: { + sessionId: 'anon-id-new', + trackingId: 'c60', + userId: 'identified user id', + eventList: [ + { + itemId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + eventType: 'PRODUCT ADDED', + sentAt: '2020-02-02T00:23:09.544Z', + properties: { movieWatched: '2', numberOfRatings: 'checking with webapp change' }, + }, + ], + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT DELETED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + ], + region: 'us-east-1', + datasetARN: '', + eventChoice: 'PutEvents', + secretAccessKey: 'DEF', + trackingId: 'c60', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + output: { + sessionId: 'anon-id-new', + trackingId: 'c60', + userId: 'identified user id', + eventList: [ + { + itemId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + eventType: 'PRODUCT DELETED', + sentAt: '2020-02-02T00:23:09.544Z', + properties: { + typeOfMovie: 'Art Film', + numberOfRatings: 'checking with webapp change', + }, + }, + ], + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT DELETED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'ITEM_ID', to: 'itemId' }, + ], + datasetARN: '', + eventChoice: 'PutEvents', + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + output: { + sessionId: 'anon-id-new', + trackingId: 'c60', + userId: 'identified user id', + eventList: [ + { + itemId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + eventType: 'PRODUCT DELETED', + sentAt: '2020-02-02T00:23:09.544Z', + properties: { + typeOfMovie: 'Art Film', + numberOfRatings: 'checking with webapp change', + }, + }, + ], + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT DELETED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + itemId: 'item 1', + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'ITEM_ID', to: 'itemId' }, + ], + datasetARN: '', + eventChoice: 'PutEvents', + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + output: { + sessionId: 'anon-id-new', + trackingId: 'c60', + userId: 'identified user id', + eventList: [ + { + itemId: 'item 1', + eventType: 'PRODUCT DELETED', + sentAt: '2020-02-02T00:23:09.544Z', + properties: { + typeOfMovie: 'Art Film', + numberOfRatings: 'checking with webapp change', + }, + }, + ], + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT DELETED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + itemId: 'item 1', + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + ], + datasetARN: '', + eventChoice: 'PutEvents', + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + output: { + sessionId: 'anon-id-new', + trackingId: 'c60', + userId: 'identified user id', + eventList: [ + { + itemId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + eventType: 'PRODUCT DELETED', + sentAt: '2020-02-02T00:23:09.544Z', + properties: { + typeOfMovie: 'Art Film', + numberOfRatings: 'checking with webapp change', + }, + }, + ], + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT DELETED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + itemId: 'item 1', + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'USER_ID', to: 'userId' }, + ], + datasetARN: '', + eventChoice: 'PutEvents', + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + output: { + sessionId: 'anon-id-new', + trackingId: 'c60', + userId: 'identified user id', + eventList: [ + { + itemId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + eventType: 'PRODUCT DELETED', + sentAt: '2020-02-02T00:23:09.544Z', + properties: { + typeOfMovie: 'Art Film', + numberOfRatings: 'checking with webapp change', + }, + }, + ], + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT DELETED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + itemId: 'item 1', + userId: 'user 1', + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'USER_ID', to: 'userId' }, + ], + datasetARN: '', + eventChoice: 'PutEvents', + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + output: { + sessionId: 'anon-id-new', + trackingId: 'c60', + userId: 'user 1', + eventList: [ + { + itemId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + eventType: 'PRODUCT DELETED', + sentAt: '2020-02-02T00:23:09.544Z', + properties: { + typeOfMovie: 'Art Film', + numberOfRatings: 'checking with webapp change', + }, + }, + ], + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT DELETED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + itemId: 'item 1', + userId: 'user 1', + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + ], + datasetARN: '', + eventChoice: 'PutEvents', + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + output: { + sessionId: 'anon-id-new', + trackingId: 'c60', + userId: 'identified user id', + eventList: [ + { + itemId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + eventType: 'PRODUCT DELETED', + sentAt: '2020-02-02T00:23:09.544Z', + properties: { + typeOfMovie: 'Art Film', + numberOfRatings: 'checking with webapp change', + }, + }, + ], + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT DELETED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + itemId: 'item 1', + userId: 'user 1', + impressions: 'abc', + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'IMPRESSION', to: 'impressions' }, + ], + datasetARN: '', + eventChoice: 'PutEvents', + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + output: { + userId: 'identified user id', + sessionId: 'anon-id-new', + trackingId: 'c60', + eventList: [ + { + eventType: 'PRODUCT DELETED', + sentAt: '2020-02-02T00:23:09.544Z', + properties: { + typeOfMovie: 'Art Film', + numberOfRatings: 'checking with webapp change', + }, + impression: ['abc'], + itemId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + }, + ], + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT DELETED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + itemId: 'item 1', + userId: 'user 1', + impressions: 'abc', + eventValue: '3.4abc', + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'IMPRESSION', to: 'impressions' }, + { from: 'EVENT_VALUE', to: 'eventValue' }, + ], + datasetARN: '', + eventChoice: 'PutEvents', + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + output: { + userId: 'identified user id', + sessionId: 'anon-id-new', + trackingId: 'c60', + eventList: [ + { + eventType: 'PRODUCT DELETED', + sentAt: '2020-02-02T00:23:09.544Z', + properties: { + typeOfMovie: 'Art Film', + numberOfRatings: 'checking with webapp change', + }, + impression: ['abc'], + eventValue: 3.4, + itemId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + }, + ], + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT DELETED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + itemId: 'item 1', + userId: 'user 1', + impressions: [2, 3], + eventValue: '3.4abc', + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'IMPRESSION', to: 'impressions' }, + { from: 'EVENT_VALUE', to: 'eventValue' }, + ], + datasetARN: '', + eventChoice: 'PutEvents', + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + output: { + userId: 'identified user id', + sessionId: 'anon-id-new', + trackingId: 'c60', + eventList: [ + { + eventType: 'PRODUCT DELETED', + sentAt: '2020-02-02T00:23:09.544Z', + properties: { + typeOfMovie: 'Art Film', + numberOfRatings: 'checking with webapp change', + }, + impression: ['2', '3'], + eventValue: 3.4, + itemId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + }, + ], + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT DELETED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + itemId: 'item 1', + userId: 'user 1', + impressions: [2, 3], + eventValue: '3.4abc', + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'IMPRESSION', to: 'impressions' }, + { from: 'EVENT_VALUE', to: 'eventValue' }, + ], + datasetARN: '', + eventChoice: 'PutEvents', + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + output: { + userId: 'identified user id', + sessionId: 'identified user id', + trackingId: 'c60', + eventList: [ + { + eventType: 'PRODUCT DELETED', + sentAt: '2020-02-02T00:23:09.544Z', + properties: { + typeOfMovie: 'Art Film', + numberOfRatings: 'checking with webapp change', + }, + impression: ['2', '3'], + eventValue: 3.4, + itemId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + }, + ], + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + userId: '123456', + type: 'identify', + traits: { + anonymousId: 'anon_id', + typeOfMovie: 'art film', + numberOfRatings: '13', + lastName: 'Doe', + phone: '92374162212', + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + ], + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + datasetARN: + 'arn:aws:personalize:us-east-1:454531037350:dataset/putTest_DataSetGroup/USERS', + eventChoice: 'PutUsers', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + output: { + payload: { + datasetArn: + 'arn:aws:personalize:us-east-1:454531037350:dataset/putTest_DataSetGroup/USERS', + users: [ + { + userId: '123456', + properties: { typeOfMovie: 'art film', numberOfRatings: '13' }, + }, + ], + }, + choice: 'PutUsers', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT ADDED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + eventValue: 7.06, + itemId: 1, + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'ITEM_ID', to: 'properties.itemId' }, + ], + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + datasetARN: + 'arn:aws:personalize:us-east-1:454531037350:dataset/putTest_DataSetGroup/ITEMS', + eventChoice: 'PutItems', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + output: { + payload: { + datasetArn: + 'arn:aws:personalize:us-east-1:454531037350:dataset/putTest_DataSetGroup/ITEMS', + items: [ + { + properties: { + typeOfMovie: 'Art Film', + numberOfRatings: 'checking with webapp change', + }, + itemId: '1', + }, + ], + }, + choice: 'PutItems', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT ADDED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + eventValue: 7.06, + itemId: 1, + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'ITEM_ID', to: 'properties.itemId' }, + ], + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + datasetARN: + 'arn:aws:personalize:us-east-1:454531037350:dataset/putTest_DataSetGroup/ITEMS', + eventChoice: 'PutItems', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type is required', + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + statTags: { + destType: 'PERSONALIZE', + errorCategory: 'dataValidation', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT ADDED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + eventValue: 7.06, + itemId: 1, + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'ITEM_ID', to: 'properties.itemId' }, + ], + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + datasetARN: + 'arn:aws:personalize:us-east-1:454531037350:dataset/putTest_DataSetGroup/ITEMS', + eventChoice: 'PutItems', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Mapped property typeOfMovie not found', + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + statTags: { + destType: 'PERSONALIZE', + errorCategory: 'dataValidation', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 16', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT ADDED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + eventValue: 7.06, + itemId: 1, + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'ITEM_ID', to: 'properties.itemId' }, + ], + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + datasetARN: + 'arn:aws:personalize:us-east-1:454531037350:dataset/putTest_DataSetGroup', + eventChoice: 'PutItems', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Either Dataset ARN is not correctly entered or invalid', + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + statTags: { + destType: 'PERSONALIZE', + errorCategory: 'dataValidation', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 17', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT ADDED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + eventValue: 7.06, + itemId: 1, + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'ITEM_ID', to: 'properties.itemId' }, + ], + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + datasetARN: '', + eventChoice: 'PutItems', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Dataset ARN is a mandatory information to use putItems', + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + statTags: { + destType: 'PERSONALIZE', + errorCategory: 'dataValidation', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 18', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT ADDED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + eventValue: 7.06, + itemId: 1, + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'ITEM_ID', to: 'properties.itemId' }, + ], + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + datasetARN: '', + eventChoice: 'PutUsers', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'PutUsers is not supported for Track Calls', + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + statTags: { + destType: 'PERSONALIZE', + errorCategory: 'dataValidation', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 19', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT ADDED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + eventValue: 7.06, + itemId: 1, + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'ITEM_ID', to: 'properties.itemId' }, + ], + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: '', + datasetARN: + 'arn:aws:personalize:us-east-1:454531037350:dataset/putTest_DataSetGroup/ITEMS', + eventChoice: 'PutEvents', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Tracking Id is a mandatory information to use putEvents', + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + statTags: { + destType: 'PERSONALIZE', + errorCategory: 'dataValidation', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 20', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT ADDED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + eventValue: 7.06, + itemId: '', + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'ITEM_ID', to: 'properties.itemId' }, + ], + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + datasetARN: + 'arn:aws:personalize:us-east-1:454531037350:dataset/putTest_DataSetGroup/ITEMS', + eventChoice: 'PutItems', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'itemId is a mandatory property for using PutItems', + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + statTags: { + destType: 'PERSONALIZE', + errorCategory: 'dataValidation', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 21', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: '', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + eventValue: 7.06, + itemId: '', + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'ITEM_ID', to: 'properties.itemId' }, + ], + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + datasetARN: + 'arn:aws:personalize:us-east-1:454531037350:dataset/putTest_DataSetGroup/ITEMS', + eventChoice: 'PutEvents', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Cannot process if no event name specified', + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + statTags: { + destType: 'PERSONALIZE', + errorCategory: 'dataValidation', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 22', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + userId: '123456', + type: 'identify', + traits: { + anonymousId: 'anon_id', + typeOfMovie: 'art film', + numberOfRatings: 'DDLJ', + lastName: 'Doe', + phone: '92374162212', + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + ], + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: '', + datasetARN: + 'arn:aws:personalize:us-east-1:454531037350:dataset/putTest_DataSetGroup/USERS', + eventChoice: 'PutItems', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'This Message Type does not support PutItems. Aborting message', + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + statTags: { + destType: 'PERSONALIZE', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 23', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + userId: '123456', + type: 'identify', + traits: { + anonymousId: 'anon_id', + typeOfMovie: 'art film', + numberOfRatings: 'DDLJ', + lastName: 'Doe', + phone: '92374162212', + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + ], + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: '', + datasetARN: '', + eventChoice: 'PutUsers', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Dataset ARN is a mandatory information to use putUsers', + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + statTags: { + destType: 'PERSONALIZE', + errorCategory: 'dataValidation', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 24', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + userId: '123456', + type: 'identify', + traits: { + anonymousId: 'anon_id', + typeOfMovie: 'art film', + numberOfRatings: 'DDLJ', + lastName: 'Doe', + phone: '92374162212', + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + ], + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: '', + datasetARN: + 'arn:aws:personalize:us-east-1:454531037350:dataset/putTest_DataSetGroup', + eventChoice: 'PutUsers', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Either Dataset ARN is not correctly entered or invalid', + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + statTags: { + destType: 'PERSONALIZE', + errorCategory: 'dataValidation', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 25', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { name: 'RudderLabs JavaScript SDK', version: '1.0.0' }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { name: '', version: '' }, + screen: { density: 2 }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: 'anon_id', + userId: '123456', + type: 'identify', + traits: { + anonymousId: 'anon_id', + typeOfMovie: 'art film', + lastName: 'Doe', + phone: '92374162212', + }, + integrations: { All: true }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + ], + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: '', + datasetARN: + 'arn:aws:personalize:us-east-1:454531037350:dataset/putTest_DataSetGroup/USERS', + eventChoice: 'PutUsers', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Mapped property numberOfRatings not found', + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + statTags: { + destType: 'PERSONALIZE', + errorCategory: 'dataValidation', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 26', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: '', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + typeOfMovie: 'Art Film', + eventValue: 7.06, + itemId: '', + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'screen', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'TYPE_OF_MOVIE', to: 'typeOfMovie' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + { from: 'ITEM_ID', to: 'properties.itemId' }, + ], + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + datasetARN: + 'arn:aws:personalize:us-east-1:454531037350:dataset/putTest_DataSetGroup/ITEMS', + eventChoice: 'PutEvents', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event type screen is not supported', + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + statTags: { + destType: 'PERSONALIZE', + errorCategory: 'dataValidation', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 27', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT ADDED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + movieWatched: 2, + eventValue: 7.06, + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'MOVIE_WATCHED', to: 'movieWatched' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + ], + datasetARN: '', + eventChoice: 'PutEvents', + stringifyProperty: true, + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + output: { + sessionId: 'anon-id-new', + trackingId: 'c60', + userId: 'identified user id', + eventList: [ + { + itemId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + eventType: 'PRODUCT ADDED', + sentAt: '2020-02-02T00:23:09.544Z', + properties: { movieWatched: '2', numberOfRatings: 'checking with webapp change' }, + }, + ], + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 28', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT ADDED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + movieWatched: 2, + eventValue: 7.06, + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'MOVIE_WATCHED', to: 'movieWatched' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + ], + datasetARN: '', + eventChoice: 'PutEvents', + disableStringify: true, + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + output: { + sessionId: 'anon-id-new', + trackingId: 'c60', + userId: 'identified user id', + eventList: [ + { + itemId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + eventType: 'PRODUCT ADDED', + sentAt: '2020-02-02T00:23:09.544Z', + properties: { movieWatched: 2, numberOfRatings: 'checking with webapp change' }, + }, + ], + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 29', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'anon-id-new', + context: { ip: '14.5.67.21', library: { name: 'http' } }, + event: 'PRODUCT ADDED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2021-03-13T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + movieWatched: 2, + eventValue: 7.06, + }, + receivedAt: '2021-03-13T01:56:44.340+05:30', + request_ip: '[::1]', + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + sentAt: '2021-03-13T01:56:46.896+05:30', + timestamp: '2020-02-02T00:23:09.544Z', + type: 'track', + userId: 'identified user id', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'MOVIE_WATCHED', to: 'movieWatched' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + ], + datasetARN: '', + eventChoice: 'PutEvents', + disableStringify: false, + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + receivedAt: '2021-03-13T01:56:44.340+05:30', + }, + output: { + sessionId: 'anon-id-new', + trackingId: 'c60', + userId: 'identified user id', + eventList: [ + { + itemId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + eventType: 'PRODUCT ADDED', + sentAt: '2020-02-02T00:23:09.544Z', + properties: { movieWatched: '2', numberOfRatings: 'checking with webapp change' }, + }, + ], + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'personalize', + description: 'Test 30', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + ip: '14.5.67.21', + library: { name: 'http' }, + sessionId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + }, + event: 'PRODUCT ADDED', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + originalTimestamp: '2023-01-10T01:56:46.896+05:30', + properties: { + numberOfRatings: 'checking with webapp change', + movieWatched: 2, + eventValue: 7.06, + }, + type: 'track', + }, + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + }, + destination: { + ID: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + Name: 'personalize Dev Testing', + DestinationDefinition: { + ID: '1pdthjPnz8gQhSTE2QTbm2LUMGM', + Name: 'PERSONALIZE', + DisplayName: 'AWS Personalize', + Config: { + destConfig: { + defaultConfig: [ + 'accessKeyId', + 'secretAccessKey', + 'region', + 'trackingId', + 'eventName', + 'customMappings', + ], + }, + excludeKeys: [], + includeKeys: [], + saveDestinationResponse: true, + secretKeys: ['accessKeyId', 'secretAccessKey'], + supportedSourceTypes: [ + 'android', + 'ios', + 'web', + 'unity', + 'amp', + 'cloud', + 'reactnative', + ], + transformAt: 'processor', + }, + }, + Config: { + accessKeyId: 'ABC', + customMappings: [ + { from: 'MOVIE_WATCHED', to: 'movieWatched' }, + { from: 'NUMBER_OF_RATINGS', to: 'numberOfRatings' }, + ], + datasetARN: '', + eventChoice: 'PutEvents', + disableStringify: false, + region: 'us-east-1', + secretAccessKey: 'DEF', + trackingId: 'c60', + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + libraries: [], + request: { query: {} }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + sourceId: '1pe7ty3hMMQCnrfZ0Mn2QG48884', + destinationId: '1pe9WgFOuFHOSIfmUkkhVTD1Rsd', + jobId: 1, + destinationType: 'PERSONALIZE', + messageId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + messageIds: null, + rudderId: 'daf823fb-e8d3-413a-8313-d34cd756f968', + }, + output: { + sessionId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + trackingId: 'c60', + userId: '', + eventList: [ + { + itemId: '4bb69e26-b5a6-446a-a140-dbb6263369c9', + eventType: 'PRODUCT ADDED', + sentAt: '2023-01-10T01:56:46.896+05:30', + properties: { movieWatched: '2', numberOfRatings: 'checking with webapp change' }, + }, + ], + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/pinterest_tag/processor/data.ts b/test/integrations/destinations/pinterest_tag/processor/data.ts new file mode 100644 index 00000000000..17ab83b2e98 --- /dev/null +++ b/test/integrations/destinations/pinterest_tag/processor/data.ts @@ -0,0 +1,3572 @@ +export const data = [ + { + name: 'pinterest_tag', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'ABC Searched', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + gender: 'non-binary', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + optOutType: 'LDP', + clickId: 'dummy_clickId', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + enhancedMatch: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + sendingUnHashedData: true, + sendAsTestEvent: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: { test: true }, + body: { + JSON: { + action_source: 'web', + event_name: 'watch_video', + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + click_id: 'dummy_clickId', + ge: ['1b16b1df538ba12dc3f97edbb85caa7050d46c148134290feba80f8236c83db9'], + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + opt_out_type: 'LDP', + num_items: 3, + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Order completed', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + action_source: 'web', + event_name: 'checkout', + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 3, + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'product added', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + product_id: '123', + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_name: 'add_to_cart', + action_source: 'web', + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 2, + content_ids: ['123'], + contents: [{ quantity: 2, item_price: '25' }], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Product List Filtered', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + destinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Advertiser Id not found. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Advertiser Id not found. Aborting', + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + statTags: { + destType: 'PINTEREST_TAG', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Product List Filtered', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + error: + 'It is required at least one of em, hashed_maids or pair of client_ip_address and client_user_agent: Workflow: procWorkflow, Step: validateUserFields, ChildStep: undefined, OriginalError: It is required at least one of em, hashed_maids or pair of client_ip_address and client_user_agent', + statTags: { + destType: 'PINTEREST_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'ABC Searched', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + numOfItems: 2, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_name: 'watch_video', + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + num_items: 2, + order_id: '50314b8e9bcf000000000000', + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'ABC Searched', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + numOfItems: 2, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Advertiser Id not found. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Advertiser Id not found. Aborting', + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + statTags: { + destType: 'PINTEREST_TAG', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'group', + event: 'ABC Searched', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + numOfItems: 2, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + enhancedMatch: true, + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'message type group is not supported: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message type group is not supported', + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + statTags: { + destType: 'PINTEREST_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'ABC Searched', + channel: 'abc', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + numOfItems: 2, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + error: + 'Action source must be one of app_android, app_ios, web, offline: Workflow: procWorkflow, Step: validateCommonFields, ChildStep: undefined, OriginalError: Action source must be one of app_android, app_ios, web, offline', + statTags: { + destType: 'PINTEREST_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'custom event', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + numOfItems: 2, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + sendAsCustomEvent: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_name: 'custom', + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + action_source: 'web', + advertiser_id: '123456', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + num_items: 2, + order_id: '50314b8e9bcf000000000000', + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + name: 'ApplicationLoaded', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { path: '', referrer: '', search: '', title: '', url: '' }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + action_source: 'web', + event_name: 'page_visit', + app_id: '429047995', + advertiser_id: '123456', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + name: 'ApplicationLoaded', + category: 'test category', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { path: '', referrer: '', search: '', title: '', url: '' }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + action_source: 'web', + event_name: 'view_category', + app_id: '429047995', + advertiser_id: '123456', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + name: 'ApplicationLoaded', + category: 'test category', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123', adTrackingEnabled: true }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { path: '', referrer: '', search: '', title: '', url: '' }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_time: 1597383030, + opt_out: false, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + action_source: 'web', + event_name: 'view_category', + app_id: '429047995', + advertiser_id: '123456', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + name: 'ApplicationLoaded', + category: 'test category', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + ip: '127.0.0.0', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { adTrackingEnabled: false }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { path: '', referrer: '', search: '', title: '', url: '' }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_time: 1597383030, + opt_out: true, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + action_source: 'web', + event_name: 'view_category', + app_id: '429047995', + advertiser_id: '123456', + user_data: { + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + client_ip_address: '127.0.0.0', + client_user_agent: 'chrome', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + name: 'ApplicationLoaded', + category: 'test category', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + requestIP: '127.0.0.0', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + phone: 'Hashed phone', + gender: 'Hashed Gender', + dob: 'Hashed DB', + lastname: 'Hashed Lastname', + firstName: 'Hashed FirstName', + address: { + city: 'Hashed City', + state: 'Hashed State', + zip: 'Hashed Zip', + country: 'Hashed country', + }, + }, + device: { adTrackingEnabled: false, advertisingId: 'Hashed maids' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { path: '', referrer: '', search: '', title: '', url: '' }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: false, + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_time: 1597383030, + action_source: 'web', + opt_out: true, + event_name: 'view_category', + app_id: '429047995', + advertiser_id: '123456', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + user_data: { + ph: ['Hashed phone'], + db: ['Hashed DB'], + ln: ['Hashed Lastname'], + fn: ['Hashed FirstName'], + ct: ['Hashed City'], + st: ['Hashed State'], + zp: ['Hashed Zip'], + country: ['Hashed country'], + hashed_maids: ['Hashed maids'], + ge: ['Hashed Gender'], + client_user_agent: 'chrome', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + name: 'ApplicationLoaded', + category: 'test category', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + requestIP: '127.0.0.0', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + phone: ['Hashed phone', 'Hashed phone1'], + gender: ['Hashed Gender', 'Hashed Gender1'], + dob: ['Hashed DB', 'Hashed DB1'], + lastname: ['Hashed Lastname', 'Hashed Lastname1'], + firstName: ['Hashed FirstName', 'Hashed FirstName1'], + address: { + city: ['Hashed City', 'Hashed City1'], + state: ['Hashed State', 'Hashed State1'], + zip: ['Hashed Zip', 'Hashed Zip1'], + country: ['Hashed country', 'Hashed country1'], + }, + }, + device: { adTrackingEnabled: false, advertisingId: 'Hashed maids' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { path: '', referrer: '', search: '', title: '', url: '' }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: false, + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_time: 1597383030, + action_source: 'web', + opt_out: true, + event_name: 'view_category', + app_id: '429047995', + advertiser_id: '123456', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + user_data: { + ph: ['Hashed phone', 'Hashed phone1'], + db: ['Hashed DB', 'Hashed DB1'], + ln: ['Hashed Lastname', 'Hashed Lastname1'], + fn: ['Hashed FirstName', 'Hashed FirstName1'], + ct: ['Hashed City', 'Hashed City1'], + st: ['Hashed State', 'Hashed State1'], + zp: ['Hashed Zip', 'Hashed Zip1'], + country: ['Hashed country', 'Hashed country1'], + hashed_maids: ['Hashed maids'], + ge: ['Hashed Gender', 'Hashed Gender1'], + client_user_agent: 'chrome', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 16', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + name: 'Test Tool', + type: 'page', + sentAt: '2023-02-01T00:00:00.379Z', + userId: '', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + version: '2.22.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'https://www.abc.com/s598907', + path: '/test-path/s598907', + title: 'Test Tool + Reviews | Rudderstack', + search: '', + tab_url: 'https://www.abc.com/s598907', + referrer: '$direct', + initial_referrer: '$direct', + referring_domain: '', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1024, + height: 1024, + density: 1, + innerWidth: 1024, + innerHeight: 1024, + }, + traits: {}, + library: { name: 'RudderLabs JavaScript SDK', version: '2.22.3' }, + campaign: {}, + doNotSell: false, + sessionId: 1675209600203, + userAgent: + 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/109.0.5414.101 Safari/537.36', + gaClientId: { + integrations: { + 'Google Ads': { gclid: '' }, + 'Google Analytics': { clientId: '1518934611.1234569600' }, + }, + }, + sessionStart: true, + }, + rudderId: '7291a10f-e7dd-49f9-94ce-0154f53897y6', + messageId: '1c77a616-13a7-4a2e-a8e7-e1a0971897y6', + timestamp: '2023-02-01T12:47:30.030Z', + properties: { + sku: '45790-32', + url: 'https://www.abc.com/23rty', + name: 'Test Tool', + path: '/test-path/tool', + email: '', + title: 'Test Tool + Reviews | Rudderstack', + review: { reviewCount: 2, averageReview: 5, reviewContentID: ['238300132'] }, + search: '', + tab_url: 'https://www.abc/com', + pageInfo: { + pageId: 's592897', + category: { + pageType: 'product', + subCategory: 'Dining & Kitchen Furniture', + pageTemplate: 'product detail grouper', + primaryCategory: 'Furniture', + }, + brandType: 'new brand', + }, + referrer: '', + subCategory: 'Dining & Kitchen Furniture', + primaryCategory: 'Furniture', + initial_referrer: '$direct', + referring_domain: '', + initial_referring_domain: '', + }, + receivedAt: '2023-02-01T12:47:30.038Z', + request_ip: '66.249.72.218', + anonymousId: 'a61c77a6-1613-474a-aee8-e7e1a0971047', + integrations: { All: true }, + originalTimestamp: '2023-02-01T00:00:00.371Z', + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123478671210', + sendingUnHashedData: false, + enableDeduplication: false, + eventsMapping: [ + { from: 'Product Added', to: 'AddToCart' }, + { from: 'Order Completed', to: 'Checkout' }, + { from: 'Product Viewed', to: 'PageVisit' }, + { from: 'Lead', to: 'Lead' }, + { from: 'Signup', to: 'Signup' }, + ], + enhancedMatch: true, + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + body: { + JSON: { + event_time: 1675255650, + event_source_url: 'https://www.abc.com/s598907', + action_source: 'web', + app_name: 'RudderLabs JavaScript SDK', + app_version: '2.22.3', + language: 'en-US', + event_id: '1c77a616-13a7-4a2e-a8e7-e1a0971897y6', + advertiser_id: '123478671210', + user_data: { + client_ip_address: '66.249.72.218', + client_user_agent: + 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/109.0.5414.101 Safari/537.36', + }, + event_name: 'page_visit', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 17', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'test', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + sku: '1234', + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + sendAsCustomEvent: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_name: 'custom', + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '123456', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 0, + content_ids: ['1234'], + contents: [{ quantity: 1, item_price: 'undefined' }], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 18', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'custom event', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + sku: '1234', + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + ], + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + sendAsCustomEvent: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_name: 'custom', + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '123456', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 1, + content_ids: ['507f1f77bcf86cd799439011'], + contents: [{ quantity: 1, item_price: '19' }], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 19', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'custom event', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + body: { + FORM: {}, + JSON: { + action_source: 'web', + advertiser_id: '123456', + app_id: '429047995', + custom_data: { + contents: [{ item_price: 'undefined', quantity: 1 }], + currency: 'USD', + num_items: 0, + order_id: '50314b8e9bcf000000000000', + value: '27.5', + }, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + event_name: 'custom event', + event_time: 1597383030, + user_data: { + client_user_agent: 'chrome', + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + }, + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://ct.pinterest.com/events/v3', + files: {}, + headers: { 'Content-Type': 'application/json' }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 20', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'Track call with v5 Api version and send external_id toggle enabled', + message: { + type: 'track', + event: 'ABC Searched', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + optOutType: 'LDP', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + apiVersion: 'newApi', + adAccountId: 'accountId123', + conversionToken: 'conversionToken123', + appId: '429047995', + enhancedMatch: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + sendingUnHashedData: true, + sendExternalId: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.pinterest.com/v5/ad_accounts/accountId123/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer conversionToken123', + }, + params: {}, + body: { + JSON: { + action_source: 'web', + event_name: 'watch_video', + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + external_id: [ + '3217d71a74c219d6e31e28267b313a7ceb6a2c032db1a091c9416b25b2ae2bc8', + ], + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + opt_out_type: 'LDP', + num_items: 3, + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 21', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'Custom event with v5 Api version', + message: { + type: 'track', + event: 'random', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + optOutType: 'LDP', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + apiVersion: 'newApi', + adAccountId: 'accountId123', + conversionToken: 'conversionToken123', + appId: '429047995', + enhancedMatch: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + sendingUnHashedData: true, + sendAsCustomEvent: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.pinterest.com/v5/ad_accounts/accountId123/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer conversionToken123', + }, + params: {}, + body: { + JSON: { + action_source: 'web', + event_name: 'custom', + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + opt_out_type: 'LDP', + num_items: 3, + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 22', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: + 'Custom event with v5 Api version, with unhashed User Data and the values are an array of strings', + message: { + type: 'track', + event: 'random', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: ['abc@gmail.com', 'def@gmail.com'], + phone: ['+1234589947', '+1234589948'], + ge: ['male', 'male'], + db: ['19950715', '19970615'], + lastname: ['Rudderlabs', 'Xu'], + firstName: ['Test', 'Alex'], + address: { + city: ['Kolkata', 'Mumbai'], + state: ['WB', 'MH'], + zip: ['700114', '700115'], + country: ['IN', 'IN'], + }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + optOutType: 'LDP', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + apiVersion: 'newApi', + adAccountId: 'accountId123', + conversionToken: 'conversionToken123', + appId: '429047995', + enhancedMatch: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + sendingUnHashedData: true, + sendAsCustomEvent: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.pinterest.com/v5/ad_accounts/accountId123/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer conversionToken123', + }, + params: {}, + body: { + JSON: { + action_source: 'web', + event_name: 'custom', + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + user_data: { + em: [ + '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + 'c392e50ebeca7bea4405e9c545023451ac56620031f81263f681269bde14218b', + ], + ph: [ + 'd164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b', + '22bdde2594851294f2a6f4c34af704e68b398b03129ea9ceb58f0ffe33f6db52', + ], + ln: [ + 'dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251', + '9c2f138690fca4890c3c4a6691610fbbbdf32091cc001f7355cfdf574baa52b9', + ], + fn: [ + '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', + '4135aa9dc1b842a653dea846903ddb95bfb8c5a10c504a7fa16e10bc31d1fdf0', + ], + ct: [ + '6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85', + 'd209bcc17778fd19fd2bc0c99a3868bf011da5162d3a75037a605768ebc276e2', + ], + st: [ + '3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd', + '1b0316ed1cfed044035c55363e02ccafab26d66b1c2746b94d17285f043324aa', + ], + zp: [ + '1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c', + '4d6755aa1e85517191f06cc91448696c173e1195ae51f94a1670116ac7b5c47b', + ], + country: [ + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + ], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + opt_out_type: 'LDP', + num_items: 3, + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 23', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'Ad Account Id check in V5', + message: { + type: 'track', + event: 'random', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + apiVersion: 'newApi', + adAccountId: '', + conversionToken: 'conversionToken123', + appId: '429047995', + enhancedMatch: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + sendingUnHashedData: true, + sendAsCustomEvent: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Ad Account ID not found. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Ad Account ID not found. Aborting', + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + statTags: { + destType: 'PINTEREST_TAG', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 24', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'Conversion Token check in V5', + message: { + type: 'track', + event: 'random', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + apiVersion: 'newApi', + adAccountId: 'accountId123', + conversionToken: '', + appId: '429047995', + enhancedMatch: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + sendingUnHashedData: true, + sendAsCustomEvent: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Conversion Token not found. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Conversion Token not found. Aborting', + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + statTags: { + destType: 'PINTEREST_TAG', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 25', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'custom event', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + apiVersion: 'newApi', + adAccountId: 'accountId123', + conversionToken: 'conversionToken123', + appId: '429047995', + enhancedMatch: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + sendingUnHashedData: true, + sendAsCustomEvent: false, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + output: { + body: { + JSON: { + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + num_items: 0, + contents: [ + { + quantity: 1, + item_price: 'undefined', + }, + ], + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + }, + event_name: 'custom event', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.pinterest.com/v5/ad_accounts/accountId123/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer conversionToken123', + }, + params: {}, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 26', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + apiVersion: 'newApi', + adAccountId: 'accountId123', + conversionToken: 'conversionToken123', + appId: '429047995', + enhancedMatch: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + sendingUnHashedData: true, + sendAsCustomEvent: false, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'event_name could not be mapped. Aborting.: Workflow: procWorkflow, Step: validateInputForTrack, ChildStep: undefined, OriginalError: event_name could not be mapped. Aborting.', + metadata: { destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq' }, + statTags: { + destType: 'PINTEREST_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/pinterest_tag/router/data.ts b/test/integrations/destinations/pinterest_tag/router/data.ts new file mode 100644 index 00000000000..e004be25f00 --- /dev/null +++ b/test/integrations/destinations/pinterest_tag/router/data.ts @@ -0,0 +1,2153 @@ +export const data = [ + { + destType: 'pinterest_tag', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'track', + event: 'ABC Searched', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { + city: 'Kolkata', + state: 'WB', + zip: '700114', + country: 'IN', + }, + }, + device: { + advertisingId: 'abc123', + }, + library: { + name: 'rudder-sdk-ruby-sync', + version: '1.0.6', + }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + optOutType: 'LDP', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { + All: true, + }, + }, + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 1, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [ + { + properties: 'presentclass', + }, + { + properties: 'presentgrade', + }, + ], + eventsMapping: [ + { + from: 'ABC Searched', + to: 'WatchVideo', + }, + { + from: 'ABC Searched', + to: 'Signup', + }, + { + from: 'User Signup', + to: 'Signup', + }, + { + from: 'User Created', + to: 'Signup', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + }, + { + message: { + type: 'track', + event: 'Order completed', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { + city: 'Kolkata', + state: 'WB', + zip: '700114', + country: 'IN', + }, + }, + device: { + advertisingId: 'abc123', + }, + library: { + name: 'rudder-sdk-ruby-sync', + version: '1.0.6', + }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { + All: true, + }, + }, + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 2, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [ + { + properties: 'presentclass', + }, + { + properties: 'presentgrade', + }, + ], + eventsMapping: [ + { + from: 'ABC Searched', + to: 'WatchVideo', + }, + { + from: 'ABC Searched', + to: 'Signup', + }, + { + from: 'User Signup', + to: 'Signup', + }, + { + from: 'User Created', + to: 'Signup', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + }, + { + message: { + type: 'track', + event: 'product added', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { + city: 'Kolkata', + state: 'WB', + zip: '700114', + country: 'IN', + }, + }, + device: { + advertisingId: 'abc123', + }, + library: { + name: 'rudder-sdk-ruby-sync', + version: '1.0.6', + }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + product_id: '123', + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { + All: true, + }, + }, + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 3, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [ + { + properties: 'presentclass', + }, + { + properties: 'presentgrade', + }, + ], + eventsMapping: [ + { + from: 'ABC Searched', + to: 'WatchVideo', + }, + { + from: 'ABC Searched', + to: 'Signup', + }, + { + from: 'User Signup', + to: 'Signup', + }, + { + from: 'User Created', + to: 'Signup', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + }, + { + message: { + type: 'track', + event: 'Product List Filtered', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { + city: 'Kolkata', + state: 'WB', + zip: '700114', + country: 'IN', + }, + }, + device: { + advertisingId: 'abc123', + }, + library: { + name: 'rudder-sdk-ruby-sync', + version: '1.0.6', + }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { + All: true, + }, + }, + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 4, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [ + { + properties: 'presentclass', + }, + { + properties: 'presentgrade', + }, + ], + eventsMapping: [ + { + from: 'ABC Searched', + to: 'WatchVideo', + }, + { + from: 'ABC Searched', + to: 'Signup', + }, + { + from: 'User Signup', + to: 'Signup', + }, + { + from: 'User Created', + to: 'Signup', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + }, + { + message: { + type: 'Identify', + event: 'User Signup', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { + city: 'Kolkata', + state: 'WB', + zip: '700114', + country: 'IN', + }, + }, + device: { + advertisingId: 'abc123', + }, + library: { + name: 'rudder-sdk-ruby-sync', + version: '1.0.6', + }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { + All: true, + }, + }, + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 5, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [ + { + properties: 'presentclass', + }, + { + properties: 'presentgrade', + }, + ], + eventsMapping: [ + { + from: 'ABC Searched', + to: 'WatchVideo', + }, + { + from: 'ABC Searched', + to: 'Signup', + }, + { + from: 'User Signup', + to: 'Signup', + }, + { + from: 'User Created', + to: 'Signup', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + }, + { + message: { + type: 'track', + event: 'User Created', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { + city: 'Kolkata', + state: 'WB', + zip: '700114', + country: 'IN', + }, + }, + device: { + advertisingId: 'abc123', + }, + library: { + name: 'rudder-sdk-ruby-sync', + version: '1.0.6', + }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { + All: true, + }, + }, + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 6, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [ + { + properties: 'presentclass', + }, + { + properties: 'presentgrade', + }, + ], + eventsMapping: [ + { + from: 'ABC Searched', + to: 'WatchVideo', + }, + { + from: 'ABC Searched', + to: 'Signup', + }, + { + from: 'User Signup', + to: 'Signup', + }, + { + from: 'User Created', + to: 'Signup', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + }, + { + message: { + version: '1', + statusCode: 200, + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + action_source: 'web', + event_name: 'WatchVideo', + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['bdfdee6414a89d72bfbf5ee90b1f85924467bae1e3980d83c2cd348dc31d5819'], + fn: ['ee5db3fe0253b651aca3676692e0c59b25909304f5c51d223a02a215d104144b'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 3, + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { + quantity: 1, + item_price: '19', + }, + { + quantity: 2, + item_price: '3', + }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 7, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [ + { + properties: 'presentclass', + }, + { + properties: 'presentgrade', + }, + ], + eventsMapping: [ + { + from: 'ABC Searched', + to: 'WatchVideo', + }, + { + from: 'ABC Searched', + to: 'Signup', + }, + { + from: 'User Signup', + to: 'Signup', + }, + { + from: 'User Created', + to: 'Signup', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + destType: 'pinterest_tag', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + data: [ + { + event_name: 'watch_video', + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: [ + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + ], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 3, + opt_out_type: 'LDP', + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { + quantity: 1, + item_price: '19', + }, + { + quantity: 2, + item_price: '3', + }, + ], + }, + }, + { + event_name: 'signup', + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: [ + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + ], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 3, + opt_out_type: 'LDP', + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { + quantity: 1, + item_price: '19', + }, + { + quantity: 2, + item_price: '3', + }, + ], + }, + }, + { + event_name: 'checkout', + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: [ + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + ], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 3, + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { + quantity: 1, + item_price: '19', + }, + { + quantity: 2, + item_price: '3', + }, + ], + }, + }, + { + event_name: 'add_to_cart', + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: [ + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + ], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 2, + content_ids: ['123'], + contents: [ + { + quantity: 2, + item_price: '25', + }, + ], + }, + }, + { + event_name: 'search', + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: [ + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + ], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 3, + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { + quantity: 1, + item_price: '19', + }, + { + quantity: 2, + item_price: '3', + }, + ], + }, + }, + { + event_name: 'signup', + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: [ + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + ], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 3, + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { + quantity: 1, + item_price: '19', + }, + { + quantity: 2, + item_price: '3', + }, + ], + }, + }, + { + action_source: 'web', + event_name: 'WatchVideo', + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['bdfdee6414a89d72bfbf5ee90b1f85924467bae1e3980d83c2cd348dc31d5819'], + fn: ['ee5db3fe0253b651aca3676692e0c59b25909304f5c51d223a02a215d104144b'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: [ + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + ], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 3, + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { + quantity: 1, + item_price: '19', + }, + { + quantity: 2, + item_price: '3', + }, + ], + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 1, + }, + { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 2, + }, + { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 3, + }, + { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 4, + }, + { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 6, + }, + { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 7, + }, + ], + batched: true, + statusCode: 200, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [ + { + properties: 'presentclass', + }, + { + properties: 'presentgrade', + }, + ], + eventsMapping: [ + { + from: 'ABC Searched', + to: 'WatchVideo', + }, + { + from: 'ABC Searched', + to: 'Signup', + }, + { + from: 'User Signup', + to: 'Signup', + }, + { + from: 'User Created', + to: 'Signup', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + }, + { + metadata: [ + { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 5, + }, + ], + statTags: { + destType: 'PINTEREST_TAG', + feature: 'router', + implementation: 'cdkV2', + module: 'destination', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + }, + batched: false, + statusCode: 400, + error: 'message type identify is not supported', + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [ + { + properties: 'presentclass', + }, + { + properties: 'presentgrade', + }, + ], + eventsMapping: [ + { + from: 'ABC Searched', + to: 'WatchVideo', + }, + { + from: 'ABC Searched', + to: 'Signup', + }, + { + from: 'User Signup', + to: 'Signup', + }, + { + from: 'User Created', + to: 'Signup', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + }, + }, + }, + }, + { + destType: 'pinterest_tag', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'track', + event: 'ABC Searched', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { + city: 'Kolkata', + state: 'WB', + zip: '700114', + country: 'IN', + }, + }, + device: { + advertisingId: 'abc123', + }, + library: { + name: 'rudder-sdk-ruby-sync', + version: '1.0.6', + }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + optOutType: 'LDP', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { + All: true, + }, + }, + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 8, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + apiVersion: 'newApi', + adAccountId: 'accountId123', + conversionToken: 'conversionToken123', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [ + { + properties: 'presentclass', + }, + { + properties: 'presentgrade', + }, + ], + eventsMapping: [ + { + from: 'ABC Searched', + to: 'WatchVideo', + }, + { + from: 'ABC Searched', + to: 'Signup', + }, + { + from: 'User Signup', + to: 'Signup', + }, + { + from: 'User Created', + to: 'Signup', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + }, + { + message: { + type: 'track', + event: 'Order completed', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { + city: 'Kolkata', + state: 'WB', + zip: '700114', + country: 'IN', + }, + }, + device: { + advertisingId: 'abc123', + }, + library: { + name: 'rudder-sdk-ruby-sync', + version: '1.0.6', + }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { + All: true, + }, + }, + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 9, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + apiVersion: 'newApi', + adAccountId: 'accountId123', + conversionToken: 'conversionToken123', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [ + { + properties: 'presentclass', + }, + { + properties: 'presentgrade', + }, + ], + eventsMapping: [ + { + from: 'ABC Searched', + to: 'WatchVideo', + }, + { + from: 'ABC Searched', + to: 'Signup', + }, + { + from: 'User Signup', + to: 'Signup', + }, + { + from: 'User Created', + to: 'Signup', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + }, + { + message: { + type: 'track', + event: 'Test', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { + city: 'Kolkata', + state: 'WB', + zip: '700114', + country: 'IN', + }, + }, + device: { + advertisingId: 'abc123', + }, + library: { + name: 'rudder-sdk-ruby-sync', + version: '1.0.6', + }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { + All: true, + }, + }, + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 10, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + apiVersion: 'newApi', + adAccountId: 'accountId123', + conversionToken: 'conversionToken123', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + sendAsCustomEvent: true, + customProperties: [ + { + properties: 'presentclass', + }, + { + properties: 'presentgrade', + }, + ], + eventsMapping: [ + { + from: 'ABC Searched', + to: 'WatchVideo', + }, + { + from: 'ABC Searched', + to: 'Signup', + }, + { + from: 'User Signup', + to: 'Signup', + }, + { + from: 'User Created', + to: 'Signup', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + destType: 'pinterest_tag', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.pinterest.com/v5/ad_accounts/accountId123/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer conversionToken123', + }, + params: {}, + body: { + JSON: { + data: [ + { + event_name: 'watch_video', + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: [ + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + ], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 3, + opt_out_type: 'LDP', + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { + quantity: 1, + item_price: '19', + }, + { + quantity: 2, + item_price: '3', + }, + ], + }, + }, + { + event_name: 'signup', + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: [ + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + ], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 3, + opt_out_type: 'LDP', + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { + quantity: 1, + item_price: '19', + }, + { + quantity: 2, + item_price: '3', + }, + ], + }, + }, + { + event_name: 'checkout', + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: [ + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + ], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 3, + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { + quantity: 1, + item_price: '19', + }, + { + quantity: 2, + item_price: '3', + }, + ], + }, + }, + { + event_name: 'custom', + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: [ + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + ], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 3, + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { + quantity: 1, + item_price: '19', + }, + { + quantity: 2, + item_price: '3', + }, + ], + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 8, + }, + { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 9, + }, + { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 10, + }, + ], + batched: true, + statusCode: 200, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + apiVersion: 'newApi', + adAccountId: 'accountId123', + conversionToken: 'conversionToken123', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [ + { + properties: 'presentclass', + }, + { + properties: 'presentgrade', + }, + ], + eventsMapping: [ + { + from: 'ABC Searched', + to: 'WatchVideo', + }, + { + from: 'ABC Searched', + to: 'Signup', + }, + { + from: 'User Signup', + to: 'Signup', + }, + { + from: 'User Created', + to: 'Signup', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + }, + }, + }, + }, + { + destType: 'pinterest_tag', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'Identify', + event: 'User Signup', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { + city: 'Kolkata', + state: 'WB', + zip: '700114', + country: 'IN', + }, + }, + device: { + advertisingId: 'abc123', + }, + library: { + name: 'rudder-sdk-ruby-sync', + version: '1.0.6', + }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { + All: true, + }, + }, + metadata: { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 5, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [ + { + properties: 'presentclass', + }, + { + properties: 'presentgrade', + }, + ], + eventsMapping: [ + { + from: 'ABC Searched', + to: 'Watch Video', + }, + { + from: 'ABC Searched', + to: 'Signup', + }, + { + from: 'User Signup', + to: 'Signup', + }, + { + from: 'User Created', + to: 'Signup', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + destType: 'pinterest_tag', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + metadata: [ + { + destintionId: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + jobId: 5, + }, + ], + batched: false, + statusCode: 400, + error: 'message type identify is not supported', + statTags: { + destType: 'PINTEREST_TAG', + implementation: 'cdkV2', + feature: 'router', + module: 'destination', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [ + { + properties: 'presentclass', + }, + { + properties: 'presentgrade', + }, + ], + eventsMapping: [ + { + from: 'ABC Searched', + to: 'Watch Video', + }, + { + from: 'ABC Searched', + to: 'Signup', + }, + { + from: 'User Signup', + to: 'Signup', + }, + { + from: 'User Created', + to: 'Signup', + }, + ], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/pinterest_tag/step/data.ts b/test/integrations/destinations/pinterest_tag/step/data.ts new file mode 100644 index 00000000000..cbd0b243bbf --- /dev/null +++ b/test/integrations/destinations/pinterest_tag/step/data.ts @@ -0,0 +1,3399 @@ +export const data = [ + { + name: 'pinterest_tag', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'ABC Searched', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + gender: 'non-binary', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + optOutType: 'LDP', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + enhancedMatch: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + sendingUnHashedData: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + action_source: 'web', + event_name: 'watch_video', + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + ge: ['1b16b1df538ba12dc3f97edbb85caa7050d46c148134290feba80f8236c83db9'], + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + opt_out_type: 'LDP', + num_items: 3, + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Order completed', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + action_source: 'web', + event_name: 'checkout', + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 3, + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'product added', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + product_id: '123', + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_name: 'add_to_cart', + action_source: 'web', + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 2, + content_ids: ['123'], + contents: [{ quantity: 2, item_price: '25' }], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Product List Filtered', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Advertiser Id not found. Aborting', + statTags: { + destType: 'PINTEREST_TAG', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Product List Filtered', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'It is required at least one of em, hashed_maids or pair of client_ip_address and client_user_agent', + statTags: { + destType: 'PINTEREST_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'ABC Searched', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + numOfItems: 2, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '429047995', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_name: 'watch_video', + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + num_items: 2, + order_id: '50314b8e9bcf000000000000', + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'ABC Searched', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + numOfItems: 2, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Advertiser Id not found. Aborting', + statTags: { + destType: 'PINTEREST_TAG', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'group', + event: 'ABC Searched', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + numOfItems: 2, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + enhancedMatch: true, + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'message type group is not supported', + statTags: { + destType: 'PINTEREST_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'ABC Searched', + channel: 'abc', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + numOfItems: 2, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Action source must be one of app_android, app_ios, web, offline', + statTags: { + destType: 'PINTEREST_TAG', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'custom event', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + numOfItems: 2, + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + sendAsCustomEvent: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_name: 'custom', + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + action_source: 'web', + advertiser_id: '123456', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + num_items: 2, + order_id: '50314b8e9bcf000000000000', + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + name: 'ApplicationLoaded', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { path: '', referrer: '', search: '', title: '', url: '' }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + action_source: 'web', + event_name: 'page_visit', + app_id: '429047995', + advertiser_id: '123456', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + name: 'ApplicationLoaded', + category: 'test category', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { path: '', referrer: '', search: '', title: '', url: '' }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + action_source: 'web', + event_name: 'view_category', + app_id: '429047995', + advertiser_id: '123456', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + name: 'ApplicationLoaded', + category: 'test category', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123', adTrackingEnabled: true }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { path: '', referrer: '', search: '', title: '', url: '' }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_time: 1597383030, + opt_out: false, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + action_source: 'web', + event_name: 'view_category', + app_id: '429047995', + advertiser_id: '123456', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + name: 'ApplicationLoaded', + category: 'test category', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + ip: '127.0.0.0', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { adTrackingEnabled: false }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { path: '', referrer: '', search: '', title: '', url: '' }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_time: 1597383030, + opt_out: true, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + action_source: 'web', + event_name: 'view_category', + app_id: '429047995', + advertiser_id: '123456', + user_data: { + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + client_ip_address: '127.0.0.0', + client_user_agent: 'chrome', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + name: 'ApplicationLoaded', + category: 'test category', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + requestIP: '127.0.0.0', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + phone: 'Hashed phone', + gender: 'Hashed Gender', + dob: 'Hashed DB', + lastname: 'Hashed Lastname', + firstName: 'Hashed FirstName', + address: { + city: 'Hashed City', + state: 'Hashed State', + zip: 'Hashed Zip', + country: 'Hashed country', + }, + }, + device: { adTrackingEnabled: false, advertisingId: 'Hashed maids' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { path: '', referrer: '', search: '', title: '', url: '' }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: false, + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_time: 1597383030, + action_source: 'web', + opt_out: true, + event_name: 'view_category', + app_id: '429047995', + advertiser_id: '123456', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + user_data: { + ph: ['Hashed phone'], + db: ['Hashed DB'], + ln: ['Hashed Lastname'], + fn: ['Hashed FirstName'], + ct: ['Hashed City'], + st: ['Hashed State'], + zp: ['Hashed Zip'], + country: ['Hashed country'], + hashed_maids: ['Hashed maids'], + ge: ['Hashed Gender'], + client_user_agent: 'chrome', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + name: 'ApplicationLoaded', + category: 'test category', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + requestIP: '127.0.0.0', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + phone: ['Hashed phone', 'Hashed phone1'], + gender: ['Hashed Gender', 'Hashed Gender1'], + dob: ['Hashed DB', 'Hashed DB1'], + lastname: ['Hashed Lastname', 'Hashed Lastname1'], + firstName: ['Hashed FirstName', 'Hashed FirstName1'], + address: { + city: ['Hashed City', 'Hashed City1'], + state: ['Hashed State', 'Hashed State1'], + zip: ['Hashed Zip', 'Hashed Zip1'], + country: ['Hashed country', 'Hashed country1'], + }, + }, + device: { adTrackingEnabled: false, advertisingId: 'Hashed maids' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { path: '', referrer: '', search: '', title: '', url: '' }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: false, + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_time: 1597383030, + action_source: 'web', + opt_out: true, + event_name: 'view_category', + app_id: '429047995', + advertiser_id: '123456', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + user_data: { + ph: ['Hashed phone', 'Hashed phone1'], + db: ['Hashed DB', 'Hashed DB1'], + ln: ['Hashed Lastname', 'Hashed Lastname1'], + fn: ['Hashed FirstName', 'Hashed FirstName1'], + ct: ['Hashed City', 'Hashed City1'], + st: ['Hashed State', 'Hashed State1'], + zp: ['Hashed Zip', 'Hashed Zip1'], + country: ['Hashed country', 'Hashed country1'], + hashed_maids: ['Hashed maids'], + ge: ['Hashed Gender', 'Hashed Gender1'], + client_user_agent: 'chrome', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 16', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + name: 'Test Tool', + type: 'page', + sentAt: '2023-02-01T00:00:00.379Z', + userId: '', + channel: 'web', + context: { + os: { name: '', version: '' }, + app: { + name: 'RudderLabs JavaScript SDK', + version: '2.22.3', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'https://www.abc.com/s598907', + path: '/test-path/s598907', + title: 'Test Tool + Reviews | Rudderstack', + search: '', + tab_url: 'https://www.abc.com/s598907', + referrer: '$direct', + initial_referrer: '$direct', + referring_domain: '', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1024, + height: 1024, + density: 1, + innerWidth: 1024, + innerHeight: 1024, + }, + traits: {}, + library: { name: 'RudderLabs JavaScript SDK', version: '2.22.3' }, + campaign: {}, + doNotSell: false, + sessionId: 1675209600203, + userAgent: + 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/109.0.5414.101 Safari/537.36', + gaClientId: { + integrations: { + 'Google Ads': { gclid: '' }, + 'Google Analytics': { clientId: '1518934611.1234569600' }, + }, + }, + sessionStart: true, + }, + rudderId: '7291a10f-e7dd-49f9-94ce-0154f53897y6', + messageId: '1c77a616-13a7-4a2e-a8e7-e1a0971897y6', + timestamp: '2023-02-01T12:47:30.030Z', + properties: { + sku: '45790-32', + url: 'https://www.abc.com/23rty', + name: 'Test Tool', + path: '/test-path/tool', + email: '', + title: 'Test Tool + Reviews | Rudderstack', + review: { reviewCount: 2, averageReview: 5, reviewContentID: ['238300132'] }, + search: '', + tab_url: 'https://www.abc/com', + pageInfo: { + pageId: 's592897', + category: { + pageType: 'product', + subCategory: 'Dining & Kitchen Furniture', + pageTemplate: 'product detail grouper', + primaryCategory: 'Furniture', + }, + brandType: 'new brand', + }, + referrer: '', + subCategory: 'Dining & Kitchen Furniture', + primaryCategory: 'Furniture', + initial_referrer: '$direct', + referring_domain: '', + initial_referring_domain: '', + }, + receivedAt: '2023-02-01T12:47:30.038Z', + request_ip: '66.249.72.218', + anonymousId: 'a61c77a6-1613-474a-aee8-e7e1a0971047', + integrations: { All: true }, + originalTimestamp: '2023-02-01T00:00:00.371Z', + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123478671210', + sendingUnHashedData: false, + enableDeduplication: false, + eventsMapping: [ + { from: 'Product Added', to: 'AddToCart' }, + { from: 'Order Completed', to: 'Checkout' }, + { from: 'Product Viewed', to: 'PageVisit' }, + { from: 'Lead', to: 'Lead' }, + { from: 'Signup', to: 'Signup' }, + ], + enhancedMatch: true, + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + JSON: { + event_time: 1675255650, + event_source_url: 'https://www.abc.com/s598907', + action_source: 'web', + app_name: 'RudderLabs JavaScript SDK', + app_version: '2.22.3', + language: 'en-US', + event_id: '1c77a616-13a7-4a2e-a8e7-e1a0971897y6', + advertiser_id: '123478671210', + user_data: { + client_ip_address: '66.249.72.218', + client_user_agent: + 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/109.0.5414.101 Safari/537.36', + }, + event_name: 'page_visit', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 17', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'test', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + sku: '1234', + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + sendAsCustomEvent: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_name: 'custom', + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '123456', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 0, + content_ids: ['1234'], + contents: [{ quantity: 1, item_price: 'undefined' }], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 18', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'custom event', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + sku: '1234', + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + ], + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + sendAsCustomEvent: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ct.pinterest.com/events/v3', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + event_name: 'custom', + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + advertiser_id: '123456', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 1, + content_ids: ['507f1f77bcf86cd799439011'], + contents: [{ quantity: 1, item_price: '19' }], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 19', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'custom event', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + advertiserId: '123456', + appId: '429047995', + sendingUnHashedData: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + enhancedMatch: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + FORM: {}, + JSON: { + action_source: 'web', + advertiser_id: '123456', + app_id: '429047995', + custom_data: { + contents: [{ item_price: 'undefined', quantity: 1 }], + currency: 'USD', + num_items: 0, + order_id: '50314b8e9bcf000000000000', + value: '27.5', + }, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + event_name: 'custom event', + event_time: 1597383030, + user_data: { + client_user_agent: 'chrome', + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + }, + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://ct.pinterest.com/events/v3', + files: {}, + headers: { 'Content-Type': 'application/json' }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 20', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'Track call with v5 Api version and send external_id toggle enabled', + message: { + type: 'track', + event: 'ABC Searched', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + optOutType: 'LDP', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + apiVersion: 'newApi', + adAccountId: 'accountId123', + conversionToken: 'conversionToken123', + appId: '429047995', + enhancedMatch: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + sendingUnHashedData: true, + sendExternalId: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.pinterest.com/v5/ad_accounts/accountId123/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer conversionToken123', + }, + params: {}, + body: { + JSON: { + action_source: 'web', + event_name: 'watch_video', + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + external_id: [ + '3217d71a74c219d6e31e28267b313a7ceb6a2c032db1a091c9416b25b2ae2bc8', + ], + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + opt_out_type: 'LDP', + num_items: 3, + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 21', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'Custom event with v5 Api version', + message: { + type: 'track', + event: 'random', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + optOutType: 'LDP', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + apiVersion: 'newApi', + adAccountId: 'accountId123', + conversionToken: 'conversionToken123', + appId: '429047995', + enhancedMatch: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + sendingUnHashedData: true, + sendAsCustomEvent: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.pinterest.com/v5/ad_accounts/accountId123/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer conversionToken123', + }, + params: {}, + body: { + JSON: { + action_source: 'web', + event_name: 'custom', + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + opt_out_type: 'LDP', + num_items: 3, + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 22', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: + 'Custom event with v5 Api version, with unhashed User Data and the values are an array of strings', + message: { + type: 'track', + event: 'random', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: ['abc@gmail.com', 'def@gmail.com'], + phone: ['+1234589947', '+1234589948'], + ge: ['male', 'male'], + db: ['19950715', '19970615'], + lastname: ['Rudderlabs', 'Xu'], + firstName: ['Test', 'Alex'], + address: { + city: ['Kolkata', 'Mumbai'], + state: ['WB', 'MH'], + zip: ['700114', '700115'], + country: ['IN', 'IN'], + }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + optOutType: 'LDP', + products: [ + { + sku: '45790-32', + url: 'https://www.example.com/product/path', + name: 'Monopoly: 3rd Edition', + price: 19, + category: 'Games', + quantity: 1, + image_url: 'https:///www.example.com/product/path.jpg', + product_id: '507f1f77bcf86cd799439011', + }, + { + sku: '46493-32', + name: 'Uno Card Game', + price: 3, + category: 'Games', + quantity: 2, + product_id: '505bd76785ebb509fc183733', + }, + ], + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + apiVersion: 'newApi', + adAccountId: 'accountId123', + conversionToken: 'conversionToken123', + appId: '429047995', + enhancedMatch: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + sendingUnHashedData: true, + sendAsCustomEvent: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.pinterest.com/v5/ad_accounts/accountId123/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer conversionToken123', + }, + params: {}, + body: { + JSON: { + action_source: 'web', + event_name: 'custom', + event_time: 1597383030, + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + user_data: { + em: [ + '48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08', + 'c392e50ebeca7bea4405e9c545023451ac56620031f81263f681269bde14218b', + ], + ph: [ + 'd164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b', + '22bdde2594851294f2a6f4c34af704e68b398b03129ea9ceb58f0ffe33f6db52', + ], + ln: [ + 'dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251', + '9c2f138690fca4890c3c4a6691610fbbbdf32091cc001f7355cfdf574baa52b9', + ], + fn: [ + '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', + '4135aa9dc1b842a653dea846903ddb95bfb8c5a10c504a7fa16e10bc31d1fdf0', + ], + ct: [ + '6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85', + 'd209bcc17778fd19fd2bc0c99a3868bf011da5162d3a75037a605768ebc276e2', + ], + st: [ + '3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd', + '1b0316ed1cfed044035c55363e02ccafab26d66b1c2746b94d17285f043324aa', + ], + zp: [ + '1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c', + '4d6755aa1e85517191f06cc91448696c173e1195ae51f94a1670116ac7b5c47b', + ], + country: [ + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + '582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf', + ], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + opt_out_type: 'LDP', + num_items: 3, + content_ids: ['507f1f77bcf86cd799439011', '505bd76785ebb509fc183733'], + contents: [ + { quantity: 1, item_price: '19' }, + { quantity: 2, item_price: '3' }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 23', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'Ad Account Id check in V5', + message: { + type: 'track', + event: 'random', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + apiVersion: 'newApi', + adAccountId: '', + conversionToken: 'conversionToken123', + appId: '429047995', + enhancedMatch: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + sendingUnHashedData: true, + sendAsCustomEvent: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Ad Account ID not found. Aborting', + statTags: { + destType: 'PINTEREST_TAG', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 24', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + description: 'Conversion Token check in V5', + message: { + type: 'track', + event: 'random', + sentAt: '2020-08-14T05:30:30.118Z', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + apiVersion: 'newApi', + adAccountId: 'accountId123', + conversionToken: '', + appId: '429047995', + enhancedMatch: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + sendingUnHashedData: true, + sendAsCustomEvent: true, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Conversion Token not found. Aborting', + statTags: { + destType: 'PINTEREST_TAG', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'pinterest_tag', + description: 'Test 25', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'custom event', + channel: 'web', + sentAt: '2020-08-14T05:30:30.118Z', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { city: 'Kolkata', state: 'WB', zip: '700114', country: 'IN' }, + }, + device: { advertisingId: 'abc123' }, + library: { name: 'rudder-sdk-ruby-sync', version: '1.0.6' }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + currency: 'USD', + discount: 2.5, + order_id: '50314b8e9bcf000000000000', + requestIP: '123.0.0.0', + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { All: true }, + }, + destination: { + ID: '1pYpzzvcn7AQ2W9GGIAZSsN6Mfq', + Name: 'PINTEREST_TAG', + Config: { + sendAsTestEvent: false, + tagId: '123456789', + apiVersion: 'newApi', + adAccountId: 'accountId123', + conversionToken: 'conversionToken123', + appId: '429047995', + enhancedMatch: true, + enableDeduplication: true, + deduplicationKey: 'messageId', + sendingUnHashedData: true, + sendAsCustomEvent: false, + customProperties: [{ properties: 'presentclass' }, { properties: 'presentgrade' }], + eventsMapping: [{ from: 'ABC Searched', to: 'WatchVideo' }], + }, + Enabled: true, + Transformations: [], + }, + }, + ], + method: 'POST', + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.pinterest.com/v5/ad_accounts/accountId123/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer conversionToken123', + }, + params: {}, + body: { + JSON: { + event_name: 'custom event', + event_time: 1597383030, + action_source: 'web', + event_id: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + app_id: '429047995', + user_data: { + em: ['48ddb93f0b30c475423fe177832912c5bcdce3cc72872f8051627967ef278e08'], + ph: ['d164bbe036663cb5c96835e9ccc6501e9a521127ea62f6359744928ba932413b'], + ln: ['dcf000c2386fb76d22cefc0d118a8511bb75999019cd373df52044bccd1bd251'], + fn: ['9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'], + ct: ['6689106ca7922c30b2fd2c175c85bc7fc2d52cc4941bdd7bb622c6cdc6284a85'], + st: ['3b45022ab36728cdae12e709e945bba267c50ee8a91e6e4388539a8e03a3fdcd'], + zp: ['1a4292e00780e18d00e76fde9850aee5344e939ba593333cd5e4b4aa2cd33b0c'], + country: ['582967534d0f909d196b97f9e6921342777aea87b46fa52df165389db1fb8ccf'], + hashed_maids: [ + '6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090', + ], + client_user_agent: 'chrome', + }, + custom_data: { + currency: 'USD', + value: '27.5', + order_id: '50314b8e9bcf000000000000', + num_items: 0, + contents: [ + { + quantity: 1, + item_price: 'undefined', + }, + ], + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/posthog/processor/data.ts b/test/integrations/destinations/posthog/processor/data.ts index 86c0ab2a2ba..f33aa268b72 100644 --- a/test/integrations/destinations/posthog/processor/data.ts +++ b/test/integrations/destinations/posthog/processor/data.ts @@ -295,7 +295,7 @@ export const data = [ traits: { name: 'Shehan Study', category: 'SampleIdentify', - email: 'chandra+r1@rudderlabs.com', + email: 'test@rudderstack.com', plan: 'Open source', logins: 5, createdAt: 1599264000, @@ -387,7 +387,7 @@ export const data = [ $set: { name: 'Shehan Study', category: 'SampleIdentify', - email: 'chandra+r1@rudderlabs.com', + email: 'test@rudderstack.com', plan: 'Open source', logins: 5, createdAt: 1599264000, @@ -508,7 +508,7 @@ export const data = [ age: '30', name: 'User_id_identify', email: 'identify@test.com', - phone: '9112340345', + phone: '9876543210', price: '56.0', userId: 'sajal', address: { @@ -564,7 +564,7 @@ export const data = [ age: '30', name: 'User_id_identify', email: 'identify@test.com', - phone: '9112340345', + phone: '9876543210', price: '56.0', userId: 'sajal', address: { @@ -674,7 +674,7 @@ export const data = [ age: '30', name: 'User_id_identify', email: 'identify@test.com', - phone: '9112340345', + phone: '9876543210', price: '56.0', userId: 'sajal', address: { @@ -731,7 +731,7 @@ export const data = [ age: '30', name: 'User_id_identify', email: 'identify@test.com', - phone: '9112340345', + phone: '9876543210', price: '56.0', userId: 'sajal', address: { @@ -821,7 +821,7 @@ export const data = [ traits: { name: 'Shehan Study', category: 'SampleIdentify', - email: 'chandra+r1@rudderlabs.com', + email: 'test@rudderstack.com', plan: 'Open source', logins: 5, createdAt: 1599264000, @@ -913,7 +913,7 @@ export const data = [ $set: { name: 'Shehan Study', category: 'SampleIdentify', - email: 'chandra+r1@rudderlabs.com', + email: 'test@rudderstack.com', plan: 'Open source', logins: 5, createdAt: 1599264000, @@ -1018,7 +1018,7 @@ export const data = [ traits: { name: 'Shehan Study', category: 'SampleIdentify', - email: 'chandra+r1@rudderlabs.com', + email: 'test@rudderstack.com', plan: 'Open source', logins: 5, createdAt: 1599264000, @@ -1110,7 +1110,7 @@ export const data = [ $set: { name: 'Shehan Study', category: 'SampleIdentify', - email: 'chandra+r1@rudderlabs.com', + email: 'test@rudderstack.com', plan: 'Open source', logins: 5, createdAt: 1599264000, @@ -1216,7 +1216,7 @@ export const data = [ traits: { name: 'Shehan Study', category: 'SampleIdentify', - email: 'chandra+r@rudderlabs.com', + email: 'test@rudderstack.com', plan: 'Open source', logins: 5, createdAt: 1599264000, @@ -1286,7 +1286,7 @@ export const data = [ $set: { name: 'Shehan Study', category: 'SampleIdentify', - email: 'chandra+r@rudderlabs.com', + email: 'test@rudderstack.com', plan: 'Open source', logins: 5, createdAt: 1599264000, @@ -1356,7 +1356,7 @@ export const data = [ traits: { name: 'Shehan Study', category: 'SampleIdentify', - email: 'chandra+r@rudderlabs.com', + email: 'test@rudderstack.com', plan: 'Open source', logins: 5, createdAt: 1599264000, @@ -1416,7 +1416,7 @@ export const data = [ $set: { name: 'Shehan Study', category: 'SampleIdentify', - email: 'chandra+r@rudderlabs.com', + email: 'test@rudderstack.com', plan: 'Open source', logins: 5, createdAt: 1599264000, @@ -1613,7 +1613,7 @@ export const data = [ traits: { name: 'Rudder Usr', category: 'SampleIdentify', - email: 'mihirb@rudderlabs.com', + email: 'test@rudderstack.com', plan: 'Paid', logins: 5, }, @@ -1674,7 +1674,7 @@ export const data = [ $set: { name: 'Rudder Usr', category: 'SampleIdentify', - email: 'mihirb@rudderlabs.com', + email: 'test@rudderstack.com', plan: 'Paid', logins: 5, }, @@ -1731,7 +1731,7 @@ export const data = [ { destination: { Config: { - teamApiKey: 'phc_HiQkvGt9vktokentokentokenTN', + teamApiKey: 'testTeamApiKey', yourInstance: 'https://app.posthog.com', }, }, @@ -1753,7 +1753,7 @@ export const data = [ age: '30', name: 'User_id_identify', email: 'identify@test.com', - phone: '9112340345', + phone: '9876543210', price: '56.0', userId: 'Virat', address: { @@ -1832,7 +1832,7 @@ export const data = [ JSON: { type: 'capture', event: 'Product Brought', - api_key: 'phc_HiQkvGt9vktokentokentokenTN', + api_key: 'testTeamApiKey', messageId: 'e4408cb8-16dd-41e9-a313-a7a9cdc4bac5', properties: { $ip: '0.0.0.0', @@ -1843,7 +1843,7 @@ export const data = [ age: '30', name: 'User_id_identify', email: 'identify@test.com', - phone: '9112340345', + phone: '9876543210', price: '56.0', userId: 'Virat', address: { diff --git a/test/integrations/destinations/reddit/delivery/data.ts b/test/integrations/destinations/reddit/delivery/data.ts new file mode 100644 index 00000000000..66c1e2863f3 --- /dev/null +++ b/test/integrations/destinations/reddit/delivery/data.ts @@ -0,0 +1,174 @@ +export const data = [ + { + name: 'reddit', + description: 'Test 0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ads-api.reddit.com/api/v2.0/conversions/events/a2_fsddXXXfsfd', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + events: [ + { + event_at: '2019-10-14T09:03:17.562Z', + event_type: { + tracking_type: 'Purchase', + }, + user: { + aaid: 'c12d34889302d3c656b5699fa9190b51c50d6f62fce57e13bd56b503d66c487a', + email: 'ac144532d9e4efeab19475d9253a879173ea12a3d2238d1cb8a332a7b3a105f2', + external_id: '7b023241a3132b792a5a33915a5afb3133cbb1e13d72879689bf6504de3b036d', + ip_address: 'e80bd55a3834b7c2a34ade23c7ecb54d2a49838227080f50716151e765a619db', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + screen_dimensions: {}, + }, + event_metadata: { + item_count: 3, + products: [ + { + id: '123', + name: 'Monopoly', + category: 'Games', + }, + { + id: '345', + name: 'UNO', + category: 'Games', + }, + ], + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + destResp: { + response: { + message: 'Successfully processed 1 conversion events.', + }, + status: 200, + }, + message: 'Request Processed Successfully', + status: 200, + }, + }, + }, + }, + }, + { + name: 'reddit', + description: 'Test 1', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ads-api.reddit.com/api/v2.0/conversions/events/a2_gsddXXXfsfd', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + events: [ + { + event_at: '2019-10-14T09:03:17.562Z', + event_type: { + tracking_type: 'ViewContent', + }, + user: { + aaid: 'c12d34889302d3c656b5699fa9190b51c50d6f62fce57e13bd56b503d66c487a', + email: 'ac144532d9e4efeab19475d9253a879173ea12a3d2238d1cb8a332a7b3a105f2', + external_id: '7b023241a3132b792a5a33915a5afb3133cbb1e13d72879689bf6504de3b036d', + ip_address: 'e80bd55a3834b7c2a34ade23c7ecb54d2a49838227080f50716151e765a619db', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + screen_dimensions: {}, + }, + event_metadata: { + item_count: 3, + products: [ + { + id: '123', + name: 'Monopoly', + category: 'Games', + }, + { + id: '345', + name: 'UNO', + category: 'Games', + }, + ], + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + body: { + output: { + authErrorCategory: 'REFRESH_TOKEN', + destinationResponse: { + response: 'Authorization Required', + status: 401, + }, + message: + "Request failed due to Authorization Required 'during reddit response transformation'", + statTags: { + destType: 'REDDIT', + destinationId: 'Non-determininable', + errorCategory: 'network', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + workspaceId: 'Non-determininable', + }, + status: 500, + }, + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/reddit/network.ts b/test/integrations/destinations/reddit/network.ts new file mode 100644 index 00000000000..7c436e8fb89 --- /dev/null +++ b/test/integrations/destinations/reddit/network.ts @@ -0,0 +1,100 @@ +export const networkCallsData = [ + { + httpReq: { + url: 'https://ads-api.reddit.com/api/v2.0/conversions/events/a2_fsddXXXfsfd', + data: { + events: [ + { + event_at: '2019-10-14T09:03:17.562Z', + event_type: { + tracking_type: 'Purchase', + }, + user: { + aaid: 'c12d34889302d3c656b5699fa9190b51c50d6f62fce57e13bd56b503d66c487a', + email: 'ac144532d9e4efeab19475d9253a879173ea12a3d2238d1cb8a332a7b3a105f2', + external_id: '7b023241a3132b792a5a33915a5afb3133cbb1e13d72879689bf6504de3b036d', + ip_address: 'e80bd55a3834b7c2a34ade23c7ecb54d2a49838227080f50716151e765a619db', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + screen_dimensions: {}, + }, + event_metadata: { + item_count: 3, + products: [ + { + id: '123', + name: 'Monopoly', + category: 'Games', + }, + { + id: '345', + name: 'UNO', + category: 'Games', + }, + ], + }, + }, + ], + }, + params: { destination: 'reddit' }, + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + method: 'POST', + }, + httpRes: { + data: { + message: 'Successfully processed 1 conversion events.', + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + url: 'https://ads-api.reddit.com/api/v2.0/conversions/events/a2_gsddXXXfsfd', + data: { + events: [ + { + event_at: '2019-10-14T09:03:17.562Z', + event_type: { + tracking_type: 'ViewContent', + }, + user: { + aaid: 'c12d34889302d3c656b5699fa9190b51c50d6f62fce57e13bd56b503d66c487a', + email: 'ac144532d9e4efeab19475d9253a879173ea12a3d2238d1cb8a332a7b3a105f2', + external_id: '7b023241a3132b792a5a33915a5afb3133cbb1e13d72879689bf6504de3b036d', + ip_address: 'e80bd55a3834b7c2a34ade23c7ecb54d2a49838227080f50716151e765a619db', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + screen_dimensions: {}, + }, + event_metadata: { + item_count: 3, + products: [ + { + id: '123', + name: 'Monopoly', + category: 'Games', + }, + { + id: '345', + name: 'UNO', + category: 'Games', + }, + ], + }, + }, + ], + }, + params: { destination: 'reddit' }, + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + method: 'POST', + }, + httpRes: { data: 'Authorization Required', status: 401, statusText: 'Unauthorized' }, + }, +]; diff --git a/test/integrations/destinations/reddit/processor/data.ts b/test/integrations/destinations/reddit/processor/data.ts new file mode 100644 index 00000000000..91da5fbe67e --- /dev/null +++ b/test/integrations/destinations/reddit/processor/data.ts @@ -0,0 +1,1532 @@ +export const data = [ + { + name: 'reddit', + description: 'Track call with order completed event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + device: { + advertisingId: 'asfds7fdsihf734b34j43f', + }, + os: { + name: 'android', + }, + }, + type: 'track', + session_id: '16733896350494', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'Order Completed', + userId: 'testuserId1', + properties: { + checkout_id: '12345', + order_id: '1234', + affiliation: 'Apple Store', + total: 20, + revenue: 15, + shipping: 4, + tax: 1, + discount: 1.5, + coupon: 'ImagePro', + currency: 'USD', + products: [ + { + product_id: '123', + sku: 'G-32', + name: 'Monopoly', + price: 14, + quantity: 1, + category: 'Games', + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.jpg', + }, + { + product_id: '345', + sku: 'F-32', + name: 'UNO', + price: 3.45, + quantity: 2, + category: 'Games', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accountId: 'a2_fsddXXXfsfd', + hashData: true, + eventsMapping: [ + { + from: 'Order Completed', + to: 'Purchase', + }, + ], + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ads-api.reddit.com/api/v2.0/conversions/events/a2_fsddXXXfsfd', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + events: [ + { + event_at: '2019-10-14T09:03:17.562Z', + event_type: { + tracking_type: 'Purchase', + }, + user: { + aaid: 'c12d34889302d3c656b5699fa9190b51c50d6f62fce57e13bd56b503d66c487a', + email: 'ac144532d9e4efeab19475d9253a879173ea12a3d2238d1cb8a332a7b3a105f2', + external_id: + '7b023241a3132b792a5a33915a5afb3133cbb1e13d72879689bf6504de3b036d', + ip_address: + 'e80bd55a3834b7c2a34ade23c7ecb54d2a49838227080f50716151e765a619db', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + screen_dimensions: {}, + }, + event_metadata: { + item_count: 3, + products: [ + { + id: '123', + name: 'Monopoly', + category: 'Games', + }, + { + id: '345', + name: 'UNO', + category: 'Games', + }, + ], + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'reddit', + description: 'Track call with product list viewed event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + type: 'track', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'Product List Viewed', + userId: 'testuserId1', + properties: { + list_id: 'list1', + category: "What's New", + products: [ + { + product_id: '017c6f5d5cf86a4b22432066', + sku: '8732-98', + name: 'Just Another Game', + price: 22, + position: 2, + category: 'Games and Entertainment', + url: 'https://www.myecommercewebsite.com/product', + image_url: 'https://www.myecommercewebsite.com/product/path.jpg', + }, + { + product_id: '89ac6f5d5cf86a4b64eac145', + sku: '1267-01', + name: 'Wrestling Trump Cards', + price: 4, + position: 21, + category: 'Card Games', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accountId: 'a2_fsddXXXfsfd', + hashData: false, + eventsMapping: [ + { + from: 'Order Completed', + to: 'Purchase', + }, + ], + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ads-api.reddit.com/api/v2.0/conversions/events/a2_fsddXXXfsfd', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + events: [ + { + event_at: '2019-10-14T09:03:17.562Z', + event_type: { + tracking_type: 'ViewContent', + }, + user: { + email: 'testone@gmail.com', + external_id: 'testuserId1', + ip_address: '54.100.200.255', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + screen_dimensions: {}, + }, + event_metadata: { + item_count: 0, + products: [ + { + id: '017c6f5d5cf86a4b22432066', + name: 'Just Another Game', + category: 'Games and Entertainment', + }, + { + id: '89ac6f5d5cf86a4b64eac145', + name: 'Wrestling Trump Cards', + category: 'Card Games', + }, + ], + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'reddit', + description: 'Track call with product added event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + type: 'track', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'PRoduct Added ', + userId: 'testuserId1', + properties: { + product_id: '622c6f5d5cf86a4c77358033', + sku: '8472-998-0112', + category: 'Games', + name: 'Cones of Dunshire', + brand: 'Wyatt Games', + variant: 'exapansion pack', + price: 49.99, + quantity: 5, + coupon: 'PREORDER15', + position: 1, + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.webp', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accountId: 'a2_fsddXXXfsfd', + hashData: true, + eventsMapping: [ + { + from: 'Order Completed', + to: 'Purchase', + }, + ], + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ads-api.reddit.com/api/v2.0/conversions/events/a2_fsddXXXfsfd', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + events: [ + { + event_at: '2019-10-14T09:03:17.562Z', + event_type: { + tracking_type: 'AddToCart', + }, + user: { + email: 'ac144532d9e4efeab19475d9253a879173ea12a3d2238d1cb8a332a7b3a105f2', + external_id: + '7b023241a3132b792a5a33915a5afb3133cbb1e13d72879689bf6504de3b036d', + ip_address: + 'e80bd55a3834b7c2a34ade23c7ecb54d2a49838227080f50716151e765a619db', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + screen_dimensions: {}, + }, + event_metadata: { + item_count: 5, + products: [ + { + id: '622c6f5d5cf86a4c77358033', + name: 'Cones of Dunshire', + category: 'Games', + }, + ], + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'reddit', + description: 'Track call with products searched event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + type: 'track', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'products searched', + userId: 'testuserId1', + properties: { + product_id: '622c6f5d5cf86a4c77358033', + sku: '8472-998-0112', + category: 'Games', + name: 'Cones of Dunshire', + brand: 'Wyatt Games', + variant: 'exapansion pack', + price: 49.99, + quantity: 5, + coupon: 'PREORDER15', + position: 1, + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.webp', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accountId: 'a2_fsddXXXfsfd', + hashData: true, + eventsMapping: [ + { + from: 'Order Completed', + to: 'Purchase', + }, + ], + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ads-api.reddit.com/api/v2.0/conversions/events/a2_fsddXXXfsfd', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + events: [ + { + event_at: '2019-10-14T09:03:17.562Z', + event_type: { + tracking_type: 'Search', + }, + user: { + email: 'ac144532d9e4efeab19475d9253a879173ea12a3d2238d1cb8a332a7b3a105f2', + external_id: + '7b023241a3132b792a5a33915a5afb3133cbb1e13d72879689bf6504de3b036d', + ip_address: + 'e80bd55a3834b7c2a34ade23c7ecb54d2a49838227080f50716151e765a619db', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + screen_dimensions: {}, + }, + event_metadata: { + item_count: 5, + products: [ + { + id: '622c6f5d5cf86a4c77358033', + name: 'Cones of Dunshire', + category: 'Games', + }, + ], + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'reddit', + description: 'Track call with products Searched event mapped in UI', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + type: 'track', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'Products Searched', + userId: 'testuserId1', + properties: { + product_id: '622c6f5d5cf86a4c77358033', + sku: '8472-998-0112', + category: 'Games', + name: 'Cones of Dunshire', + brand: 'Wyatt Games', + variant: 'exapansion pack', + price: 49.99, + quantity: 5, + coupon: 'PREORDER15', + position: 1, + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.webp', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accountId: 'a2_fsddXXXfsfd', + hashData: true, + eventsMapping: [ + { + from: 'Products Searched', + to: 'ViewContent', + }, + ], + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ads-api.reddit.com/api/v2.0/conversions/events/a2_fsddXXXfsfd', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + events: [ + { + event_at: '2019-10-14T09:03:17.562Z', + event_type: { + tracking_type: 'ViewContent', + }, + user: { + email: 'ac144532d9e4efeab19475d9253a879173ea12a3d2238d1cb8a332a7b3a105f2', + external_id: + '7b023241a3132b792a5a33915a5afb3133cbb1e13d72879689bf6504de3b036d', + ip_address: + 'e80bd55a3834b7c2a34ade23c7ecb54d2a49838227080f50716151e765a619db', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + screen_dimensions: {}, + }, + event_metadata: { + item_count: 5, + products: [ + { + id: '622c6f5d5cf86a4c77358033', + name: 'Cones of Dunshire', + category: 'Games', + }, + ], + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'reddit', + description: 'Track call with product added to wishlist event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + type: 'track', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'product added to wishlist', + userId: 'testuserId1', + properties: { + list_id: 'list1', + category: "What's New", + products: [ + { + product_id: '017c6f5d5cf86a4b22432066', + sku: '8732-98', + name: 'Just Another Game', + price: 22, + position: 2, + category: 'Games and Entertainment', + url: 'https://www.myecommercewebsite.com/product', + image_url: 'https://www.myecommercewebsite.com/product/path.jpg', + }, + { + product_id: '89ac6f5d5cf86a4b64eac145', + sku: '1267-01', + name: 'Wrestling Trump Cards', + price: 4, + position: 21, + category: 'Card Games', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accountId: 'a2_fsddXXXfsfd', + hashData: true, + eventsMapping: [ + { + from: 'Order Completed', + to: 'Purchase', + }, + ], + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ads-api.reddit.com/api/v2.0/conversions/events/a2_fsddXXXfsfd', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + events: [ + { + event_at: '2019-10-14T09:03:17.562Z', + event_type: { + tracking_type: 'AddToWishlist', + }, + user: { + email: 'ac144532d9e4efeab19475d9253a879173ea12a3d2238d1cb8a332a7b3a105f2', + external_id: + '7b023241a3132b792a5a33915a5afb3133cbb1e13d72879689bf6504de3b036d', + ip_address: + 'e80bd55a3834b7c2a34ade23c7ecb54d2a49838227080f50716151e765a619db', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + screen_dimensions: {}, + }, + event_metadata: { + item_count: 0, + products: [ + { + id: '017c6f5d5cf86a4b22432066', + name: 'Just Another Game', + category: 'Games and Entertainment', + }, + { + id: '89ac6f5d5cf86a4b64eac145', + name: 'Wrestling Trump Cards', + category: 'Card Games', + }, + ], + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'reddit', + description: 'Track call with non-standard non-mapped event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + type: 'track', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'Watch Items', + userId: 'testuserId1', + properties: { + list_id: 'list1', + category: "What's New", + products: [ + { + product_id: '017c6f5d5cf86a4b22432066', + sku: '8732-98', + name: 'Just Another Game', + price: 22, + position: 2, + category: 'Games and Entertainment', + url: 'https://www.myecommercewebsite.com/product', + image_url: 'https://www.myecommercewebsite.com/product/path.jpg', + }, + { + product_id: '89ac6f5d5cf86a4b64eac145', + sku: '1267-01', + name: 'Wrestling Trump Cards', + price: 4, + position: 21, + category: 'Card Games', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accountId: 'a2_fsddXXXfsfd', + hashData: true, + eventsMapping: [ + { + from: 'Order Completed', + to: 'Purchase', + }, + ], + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ads-api.reddit.com/api/v2.0/conversions/events/a2_fsddXXXfsfd', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + events: [ + { + event_at: '2019-10-14T09:03:17.562Z', + event_type: { + custom_event_name: 'Watch Items', + tracking_type: 'Custom', + }, + user: { + email: 'ac144532d9e4efeab19475d9253a879173ea12a3d2238d1cb8a332a7b3a105f2', + external_id: + '7b023241a3132b792a5a33915a5afb3133cbb1e13d72879689bf6504de3b036d', + ip_address: + 'e80bd55a3834b7c2a34ade23c7ecb54d2a49838227080f50716151e765a619db', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + screen_dimensions: {}, + }, + event_metadata: { + item_count: 0, + products: [ + { + id: '017c6f5d5cf86a4b22432066', + name: 'Just Another Game', + category: 'Games and Entertainment', + }, + { + id: '89ac6f5d5cf86a4b64eac145', + name: 'Wrestling Trump Cards', + category: 'Card Games', + }, + ], + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'reddit', + description: 'Track call with no accountId in Config', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + type: 'track', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'Watch Items', + userId: 'testuserId1', + properties: { + list_id: 'list1', + category: "What's New", + products: [ + { + product_id: '017c6f5d5cf86a4b22432066', + sku: '8732-98', + name: 'Just Another Game', + price: 22, + position: 2, + category: 'Games and Entertainment', + url: 'https://www.myecommercewebsite.com/product', + image_url: 'https://www.myecommercewebsite.com/product/path.jpg', + }, + { + product_id: '89ac6f5d5cf86a4b64eac145', + sku: '1267-01', + name: 'Wrestling Trump Cards', + price: 4, + position: 21, + category: 'Card Games', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + eventsMapping: [ + { + from: 'Order Completed', + to: 'Purchase', + }, + ], + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Account is not present. Aborting message.: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Account is not present. Aborting message.', + statusCode: 400, + statTags: { + destType: 'REDDIT', + destinationId: 'destId', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + workspaceId: 'wspId', + }, + metadata: { + destinationId: 'destId', + secret: { + accessToken: 'dummyAccessToken', + }, + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'reddit', + description: 'Track call with no messageType', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'Watch Items', + userId: 'testuserId1', + properties: { + list_id: 'list1', + category: "What's New", + products: [ + { + product_id: '017c6f5d5cf86a4b22432066', + sku: '8732-98', + name: 'Just Another Game', + price: 22, + position: 2, + category: 'Games and Entertainment', + url: 'https://www.myecommercewebsite.com/product', + image_url: 'https://www.myecommercewebsite.com/product/path.jpg', + }, + { + product_id: '89ac6f5d5cf86a4b64eac145', + sku: '1267-01', + name: 'Wrestling Trump Cards', + price: 4, + position: 21, + category: 'Card Games', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accountId: 'a2_fsddXXXfsfd', + hashData: true, + eventsMapping: [ + { + from: 'Order Completed', + to: 'Purchase', + }, + ], + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'message Type is not present. Aborting message.: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message Type is not present. Aborting message.', + statusCode: 400, + statTags: { + destType: 'REDDIT', + destinationId: 'destId', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + workspaceId: 'wspId', + }, + metadata: { + destinationId: 'destId', + secret: { + accessToken: 'dummyAccessToken', + }, + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'reddit', + description: 'Track call with no event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + type: 'track', + userId: 'testuserId1', + properties: { + list_id: 'list1', + category: "What's New", + products: [ + { + product_id: '017c6f5d5cf86a4b22432066', + sku: '8732-98', + name: 'Just Another Game', + price: 22, + position: 2, + category: 'Games and Entertainment', + url: 'https://www.myecommercewebsite.com/product', + image_url: 'https://www.myecommercewebsite.com/product/path.jpg', + }, + { + product_id: '89ac6f5d5cf86a4b64eac145', + sku: '1267-01', + name: 'Wrestling Trump Cards', + price: 4, + position: 21, + category: 'Card Games', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accountId: 'a2_fsddXXXfsfd', + hashData: true, + eventsMapping: [ + { + from: 'Order Completed', + to: 'Purchase', + }, + ], + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Event is not present. Aborting message.: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Event is not present. Aborting message.', + statusCode: 400, + statTags: { + destType: 'REDDIT', + destinationId: 'destId', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + workspaceId: 'wspId', + }, + metadata: { + destinationId: 'destId', + secret: { + accessToken: 'dummyAccessToken', + }, + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'reddit', + description: 'Track call with no timestamp', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + anonymousId: '123456', + type: 'track', + event: 'Watch Items', + userId: 'testuserId1', + properties: { + list_id: 'list1', + category: "What's New", + products: [ + { + product_id: '017c6f5d5cf86a4b22432066', + sku: '8732-98', + name: 'Just Another Game', + price: 22, + position: 2, + category: 'Games and Entertainment', + url: 'https://www.myecommercewebsite.com/product', + image_url: 'https://www.myecommercewebsite.com/product/path.jpg', + }, + { + product_id: '89ac6f5d5cf86a4b64eac145', + sku: '1267-01', + name: 'Wrestling Trump Cards', + price: 4, + position: 21, + category: 'Card Games', + }, + ], + }, + integrations: { + All: true, + }, + }, + destination: { + Config: { + accountId: 'a2_fsddXXXfsfd', + hashData: true, + eventsMapping: [ + { + from: 'Order Completed', + to: 'Purchase', + }, + ], + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Timestamp is not present. Aborting message.: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Timestamp is not present. Aborting message.', + statusCode: 400, + statTags: { + destType: 'REDDIT', + destinationId: 'destId', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + workspaceId: 'wspId', + }, + metadata: { + destinationId: 'destId', + secret: { + accessToken: 'dummyAccessToken', + }, + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'reddit', + description: 'Track call with no accessToken in secret in metadata', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + anonymousId: '123456', + type: 'track', + event: 'Watch Items', + userId: 'testuserId1', + originalTimestamp: '2019-10-14T09:03:17.562Z', + properties: { + list_id: 'list1', + category: "What's New", + products: [ + { + product_id: '017c6f5d5cf86a4b22432066', + sku: '8732-98', + name: 'Just Another Game', + price: 22, + position: 2, + category: 'Games and Entertainment', + url: 'https://www.myecommercewebsite.com/product', + image_url: 'https://www.myecommercewebsite.com/product/path.jpg', + }, + { + product_id: '89ac6f5d5cf86a4b64eac145', + sku: '1267-01', + name: 'Wrestling Trump Cards', + price: 4, + position: 21, + category: 'Card Games', + }, + ], + }, + integrations: { + All: true, + }, + }, + destination: { + Config: { + accountId: 'a2_fsddXXXfsfd', + hashData: true, + eventsMapping: [ + { + from: 'Order Completed', + to: 'Purchase', + }, + ], + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: {}, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Secret or accessToken is not present in the metadata: Workflow: procWorkflow, Step: buildResponseForProcessTransformation, ChildStep: undefined, OriginalError: Secret or accessToken is not present in the metadata', + statusCode: 500, + statTags: { + destType: 'REDDIT', + destinationId: 'destId', + errorCategory: 'platform', + errorType: 'oAuthSecret', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + workspaceId: 'wspId', + }, + metadata: { + destinationId: 'destId', + secret: {}, + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/reddit/router/data.ts b/test/integrations/destinations/reddit/router/data.ts new file mode 100644 index 00000000000..317bb41a149 --- /dev/null +++ b/test/integrations/destinations/reddit/router/data.ts @@ -0,0 +1,502 @@ +export const data = [ + { + name: 'reddit', + description: 'Track Events', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + type: 'track', + session_id: '16733896350494', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'Order Completed', + userId: 'testuserId1', + properties: { + checkout_id: '12345', + order_id: '1234', + affiliation: 'Apple Store', + total: 20, + revenue: 15, + shipping: 4, + tax: 1, + discount: 1.5, + coupon: 'ImagePro', + currency: 'USD', + products: [ + { + product_id: '123', + sku: 'G-32', + name: 'Monopoly', + price: 14, + quantity: 1, + category: 'Games', + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.jpg', + }, + { + product_id: '345', + sku: 'F-32', + name: 'UNO', + price: 3.45, + quantity: 2, + category: 'Games', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accountId: 'a2_fsddXXXfsfd', + hashData: true, + eventsMapping: [ + { + from: 'Order Completed', + to: 'Purchase', + }, + ], + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + }, + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + type: 'track', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'Product List Viewed', + userId: 'testuserId1', + properties: { + list_id: 'list1', + category: "What's New", + products: [ + { + product_id: '017c6f5d5cf86a4b22432066', + sku: '8732-98', + name: 'Just Another Game', + price: 22, + position: 2, + category: 'Games and Entertainment', + url: 'https://www.myecommercewebsite.com/product', + image_url: 'https://www.myecommercewebsite.com/product/path.jpg', + }, + { + product_id: '89ac6f5d5cf86a4b64eac145', + sku: '1267-01', + name: 'Wrestling Trump Cards', + price: 4, + position: 21, + category: 'Card Games', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accountId: 'a2_fsddXXXfsfd', + hashData: true, + eventsMapping: [ + { + from: 'Order Completed', + to: 'Purchase', + }, + ], + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + }, + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + type: 'track', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + event: 'PRoduct Added ', + userId: 'testuserId1', + properties: { + product_id: '622c6f5d5cf86a4c77358033', + sku: '8472-998-0112', + category: 'Games', + name: 'Cones of Dunshire', + brand: 'Wyatt Games', + variant: 'exapansion pack', + price: 49.99, + quantity: 5, + coupon: 'PREORDER15', + position: 1, + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.webp', + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accountId: 'a2_fsddXXXfsfd', + hashData: true, + eventsMapping: [ + { + from: 'Order Completed', + to: 'Purchase', + }, + ], + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + }, + ], + destType: 'reddit', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + body: { + JSON: { + events: [ + { + event_at: '2019-10-14T09:03:17.562Z', + event_type: { + tracking_type: 'Purchase', + }, + user: { + email: 'ac144532d9e4efeab19475d9253a879173ea12a3d2238d1cb8a332a7b3a105f2', + external_id: + '7b023241a3132b792a5a33915a5afb3133cbb1e13d72879689bf6504de3b036d', + ip_address: + 'e80bd55a3834b7c2a34ade23c7ecb54d2a49838227080f50716151e765a619db', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + screen_dimensions: {}, + }, + event_metadata: { + item_count: 3, + products: [ + { + id: '123', + name: 'Monopoly', + category: 'Games', + }, + { + id: '345', + name: 'UNO', + category: 'Games', + }, + ], + }, + }, + { + event_at: '2019-10-14T09:03:17.562Z', + event_type: { + tracking_type: 'ViewContent', + }, + user: { + email: 'ac144532d9e4efeab19475d9253a879173ea12a3d2238d1cb8a332a7b3a105f2', + external_id: + '7b023241a3132b792a5a33915a5afb3133cbb1e13d72879689bf6504de3b036d', + ip_address: + 'e80bd55a3834b7c2a34ade23c7ecb54d2a49838227080f50716151e765a619db', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + screen_dimensions: {}, + }, + event_metadata: { + item_count: 0, + products: [ + { + id: '017c6f5d5cf86a4b22432066', + name: 'Just Another Game', + category: 'Games and Entertainment', + }, + { + id: '89ac6f5d5cf86a4b64eac145', + name: 'Wrestling Trump Cards', + category: 'Card Games', + }, + ], + }, + }, + { + event_at: '2019-10-14T09:03:17.562Z', + event_type: { + tracking_type: 'AddToCart', + }, + user: { + email: 'ac144532d9e4efeab19475d9253a879173ea12a3d2238d1cb8a332a7b3a105f2', + external_id: + '7b023241a3132b792a5a33915a5afb3133cbb1e13d72879689bf6504de3b036d', + ip_address: + 'e80bd55a3834b7c2a34ade23c7ecb54d2a49838227080f50716151e765a619db', + user_agent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + screen_dimensions: {}, + }, + event_metadata: { + item_count: 5, + products: [ + { + id: '622c6f5d5cf86a4c77358033', + name: 'Cones of Dunshire', + category: 'Games', + }, + ], + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ads-api.reddit.com/api/v2.0/conversions/events/a2_fsddXXXfsfd', + headers: { + Authorization: 'Bearer dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + files: {}, + }, + metadata: [ + { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + accountId: 'a2_fsddXXXfsfd', + hashData: true, + eventsMapping: [ + { + from: 'Order Completed', + to: 'Purchase', + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + }, + ], + }, + }, + }, + }, + { + name: 'reddit', + description: 'Track Events with no event name', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + context: { + traits: { + email: 'testone@gmail.com', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + ip: '54.100.200.255', + }, + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + type: 'track', + userId: 'testuserId1', + properties: { + list_id: 'list1', + category: "What's New", + products: [ + { + product_id: '017c6f5d5cf86a4b22432066', + sku: '8732-98', + name: 'Just Another Game', + price: 22, + position: 2, + category: 'Games and Entertainment', + url: 'https://www.myecommercewebsite.com/product', + image_url: 'https://www.myecommercewebsite.com/product/path.jpg', + }, + { + product_id: '89ac6f5d5cf86a4b64eac145', + sku: '1267-01', + name: 'Wrestling Trump Cards', + price: 4, + position: 21, + category: 'Card Games', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accountId: 'a2_fsddXXXfsfd', + eventsMapping: [ + { + from: 'Order Completed', + to: 'Purchase', + }, + ], + }, + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + }, + ], + destType: 'reddit', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + metadata: [ + { + destinationId: 'destId', + workspaceId: 'wspId', + secret: { + accessToken: 'dummyAccessToken', + }, + }, + ], + destination: { + Config: { + accountId: 'a2_fsddXXXfsfd', + eventsMapping: [ + { + from: 'Order Completed', + to: 'Purchase', + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + batched: false, + statusCode: 400, + error: 'Event is not present. Aborting message.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'REDDIT', + module: 'destination', + implementation: 'cdkV2', + feature: 'router', + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/redis/processor/data.ts b/test/integrations/destinations/redis/processor/data.ts new file mode 100644 index 00000000000..72c78a1ad46 --- /dev/null +++ b/test/integrations/destinations/redis/processor/data.ts @@ -0,0 +1,661 @@ +export const data = [ + { + name: 'redis', + description: + 'Test 0: Covering flattened json, removing empty values, stringify array, prefix key from the config', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + address: 'localhost:6379', + database: 'test', + prefix: ' ', + }, + DestinationDefinition: { + DisplayName: 'Redis', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'REDIS', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Redis', + Transformations: [], + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + country: 'UK', + lastname: 'Mouse', + omega: 'test', + 'omega v2': 'test', + '9mega': 'test', + 'mega&': 'test', + ome$ga: 'test', + alpha$: 'test', + 'ome_ ga': 'test', + '9mega________-________90': 'test', + Cízǔ: 'test', + CamelCase123Key: 'test', + '1CComega': 'test', + arrayProp: [ + { + x: 1, + y: 2, + }, + ], + nestedProp: { + innerProp1: 'innerPropVal1', + innerProp2: 'innerPropVal2', + innerProp3: {}, + }, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + key: 'user:9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33', + fields: { + country: 'UK', + lastname: 'Mouse', + omega: 'test', + 'omega v2': 'test', + '9mega': 'test', + 'mega&': 'test', + ome$ga: 'test', + alpha$: 'test', + 'ome_ ga': 'test', + '9mega________-________90': 'test', + Cízǔ: 'test', + CamelCase123Key: 'test', + '1CComega': 'test', + arrayProp: '[{"x":1,"y":2}]', + 'nestedProp.innerProp1': 'innerPropVal1', + 'nestedProp.innerProp2': 'innerPropVal2', + }, + }, + userId: '9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'redis', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + address: 'localhost:6379', + database: 'test', + prefix: 'TestPrefix', + }, + DestinationDefinition: { + DisplayName: 'Redis', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'REDIS', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Redis', + Transformations: [], + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + country: 'UK', + lastname: 'Mouse', + omega: 'test', + 'omega v2': 'test', + '9mega': 'test', + 'mega&': 'test', + ome$ga: 'test', + alpha$: 'test', + 'ome_ ga': 'test', + '9mega________-________90': 'test', + Cízǔ: 'test', + CamelCase123Key: 'test', + '1CComega': 'test', + arrayProp: [ + { + x: 1, + y: 2, + }, + ], + nestedProp: { + innerProp1: 'innerPropVal1', + innerProp2: 'innerPropVal2', + innerProp3: {}, + }, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + key: 'TestPrefix:user:9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33', + fields: { + country: 'UK', + lastname: 'Mouse', + omega: 'test', + 'omega v2': 'test', + '9mega': 'test', + 'mega&': 'test', + ome$ga: 'test', + alpha$: 'test', + 'ome_ ga': 'test', + '9mega________-________90': 'test', + Cízǔ: 'test', + CamelCase123Key: 'test', + '1CComega': 'test', + arrayProp: '[{"x":1,"y":2}]', + 'nestedProp.innerProp1': 'innerPropVal1', + 'nestedProp.innerProp2': 'innerPropVal2', + }, + }, + userId: '9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'redis', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + address: 'localhost:6379', + database: 'test', + prefix: 'TestPrefix', + }, + DestinationDefinition: { + DisplayName: 'Redis', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'REDIS', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Redis', + Transformations: [], + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + country: 'UK', + lastname: 'Mouse', + arrayProp: [ + { + x: 1, + y: 2, + }, + ], + nestedProp: { + innerProp1: 'innerPropVal1', + innerProp2: 'innerPropVal2', + innerProp3: {}, + }, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + traits: { + country: 'USA', + firstname: 'Mickey', + }, + integrations: { + All: true, + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + key: 'TestPrefix:user:9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33', + fields: { + country: 'USA', + lastname: 'Mouse', + arrayProp: '[{"x":1,"y":2}]', + 'nestedProp.innerProp1': 'innerPropVal1', + 'nestedProp.innerProp2': 'innerPropVal2', + firstname: 'Mickey', + }, + }, + userId: '9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'redis', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + address: 'localhost:6379', + database: 'test', + prefix: 'TestEmptyKey', + }, + DestinationDefinition: { + DisplayName: 'Redis', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'REDIS', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Redis', + Transformations: [], + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + country: 'UK', + lastname: 'Mouse', + arrayProp: [ + { + x: 1, + y: 2, + }, + ], + emptyKey: '', + nestedProp: { + innerProp1: 'innerPropVal1', + innerProp2: 'innerPropVal2', + innerProp3: {}, + }, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + traits: { + country: 'USA', + firstname: 'Mickey', + }, + integrations: { + All: true, + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + key: 'TestEmptyKey:user:9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33', + fields: { + country: 'USA', + lastname: 'Mouse', + arrayProp: '[{"x":1,"y":2}]', + emptyKey: '', + 'nestedProp.innerProp1': 'innerPropVal1', + 'nestedProp.innerProp2': 'innerPropVal2', + firstname: 'Mickey', + }, + }, + userId: '9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'redis', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + address: 'localhost:6379', + database: 'test', + prefix: 'TestPrefix', + }, + DestinationDefinition: { + DisplayName: 'Redis', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'REDIS', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Redis', + Transformations: [], + }, + message: { + anonymousId: 'e6ab2c5e-2cda-44a9-a962-e2f67df78bca', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.5', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.5', + }, + locale: 'en-GB', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '2536eda4-d638-4c93-8014-8ffe3f083214', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + userId: '9bb5d4c2-a7aa-4a36-9efb-dd2b1aec5d33', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'context or context.traits or traits is empty', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'REDIS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'redis', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + address: 'localhost:6379', + database: 'test', + prefix: 'TestPrefix', + }, + DestinationDefinition: { + DisplayName: 'Redis', + ID: '1WhbSZ6uA3H5ChVifHpfL2H6sie', + Name: 'REDIS', + }, + Enabled: true, + ID: '1WhcOCGgj9asZu850HvugU2C3Aq', + Name: 'Redis', + Transformations: [], + }, + metadata: { + workspaceId: 'some-workspace-id', + }, + message: { + userId: 'some-user-id', + channel: 'sources', + context: { + sources: { + job_id: 'some-job-id', + version: 'some-version', + job_run_id: 'c8el40l6e87v0c4hkbl0', + task_run_id: 'c8el40l6e87v0c4hkblg', + profiles_model: 'some-model', + profiles_entity: 'some-entity', + profiles_id_type: 'some-id-type', + }, + }, + traits: { + MODEL_ID: '1691755780', + VALID_AT: '2023-08-11T11:32:44.963062Z', + USER_MAIN_ID: 'rid5530313526204a95efe71d98cd17d5a1', + CHURN_SCORE_7_DAYS: 0.027986, + PERCENTILE_CHURN_SCORE_7_DAYS: 0, + }, + messageId: 'some-message-id', + originalTimestamp: '2020-01-24T06:29:02.362Z', + receivedAt: '2020-01-24T11:59:02.403+05:30', + request_ip: '[::1]:53708', + sentAt: '2020-01-24T06:29:02.363Z', + timestamp: '2020-01-24T11:59:02.402+05:30', + type: 'identify', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + message: { + hash: 'some-workspace-id:1WhcOCGgj9asZu850HvugU2C3Aq:some-entity:some-id-type:some-user-id', + key: 'some-model', + value: + '{"MODEL_ID":"1691755780","VALID_AT":"2023-08-11T11:32:44.963062Z","USER_MAIN_ID":"rid5530313526204a95efe71d98cd17d5a1","CHURN_SCORE_7_DAYS":0.027986,"PERCENTILE_CHURN_SCORE_7_DAYS":0}', + }, + userId: 'some-user-id', + }, + metadata: { + workspaceId: 'some-workspace-id', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/refiner/processor/data.ts b/test/integrations/destinations/refiner/processor/data.ts index 13662d5e9aa..c851e9d7ced 100644 --- a/test/integrations/destinations/refiner/processor/data.ts +++ b/test/integrations/destinations/refiner/processor/data.ts @@ -17,7 +17,7 @@ export const data = [ age: '30', city: 'Banglore', email: 'test@user.com', - phone: '7267286346802347827', + phone: '9876543210', address: { city: 'ahmedabad', state: 'india' }, lastName: 'user', username: 'testUser', @@ -34,7 +34,7 @@ export const data = [ }, destination: { Config: { - apiKey: 'da70166e-05a3-4fa2-bb1d-da757fd036b4', + apiKey: 'dummyApiKey', blacklistedEvents: [{ eventName: '' }], eventDelivery: true, eventDeliveryTS: 1665474171943, @@ -86,7 +86,7 @@ export const data = [ age: '30', city: 'Banglore', email: 'test@user.com', - phone: '7267286346802347827', + phone: '9876543210', address: { city: 'ahmedabad', state: 'india' }, lastName: 'user', username: 'testUser', @@ -103,7 +103,7 @@ export const data = [ }, destination: { Config: { - apiKey: 'da70166e-05a3-4fa2-bb1d-da757fd036b4', + apiKey: 'dummyApiKey', blacklistedEvents: [{ eventName: '' }], eventDelivery: true, eventDeliveryTS: 1665474171943, @@ -153,7 +153,7 @@ export const data = [ traits: { age: '30', city: 'Banglore', - phone: '7267286346802347827', + phone: '9876543210', address: { city: 'ahmedabad', state: 'india' }, lastName: 'user', username: 'testUser', @@ -170,7 +170,7 @@ export const data = [ }, destination: { Config: { - apiKey: 'da70166e-05a3-4fa2-bb1d-da757fd036b4', + apiKey: 'dummyApiKey', blacklistedEvents: [{ eventName: '' }], eventDelivery: true, eventDeliveryTS: 1665474171943, @@ -225,7 +225,7 @@ export const data = [ traits: { age: '30', email: 'test@user.com', - phone: '7267286346802347827', + phone: '9876543210', city: 'Banglore', userCountry: 'india', lastName: 'user', @@ -262,7 +262,7 @@ export const data = [ }, destination: { Config: { - apiKey: 'da70166e-05a3-4fa2-bb1d-da757fd036b4', + apiKey: 'dummyApiKey', blacklistedEvents: [{ eventName: '' }], eventDelivery: true, eventDeliveryTS: 1665474171943, @@ -314,7 +314,7 @@ export const data = [ age: '30', city: 'Banglore', email: 'test@user.com', - phone: '7267286346802347827', + phone: '9876543210', address: { city: 'ahmedabad', state: 'india' }, lastName: 'user', username: 'testUser', @@ -331,7 +331,7 @@ export const data = [ }, destination: { Config: { - apiKey: 'da70166e-05a4-4fa1-bb1c-da757fd036b4', + apiKey: 'dummyApiKey', blacklistedEvents: [{ eventName: '' }], eventDelivery: true, eventDeliveryTS: 1665475307930, @@ -357,7 +357,7 @@ export const data = [ endpoint: 'https://api.refiner.io/v1/identify-user', headers: { 'Content-Type': 'application/x-www-form-urlencoded', - Authorization: 'Bearer da70166e-05a4-4fa1-bb1c-da757fd036b4', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -368,7 +368,7 @@ export const data = [ age: '30', city: 'Banglore', email: 'test@user.com', - phone: '7267286346802347827', + phone: '9876543210', userId: 'user@45', lastName: 'user', username: 'testUser', @@ -423,7 +423,7 @@ export const data = [ age: '30', city: 'Banglore', email: 'test@user.com', - phone: '7267286346802347827', + phone: '9876543210', lastName: 'user', username: 'testUser', firstName: 'test', @@ -452,7 +452,7 @@ export const data = [ }, destination: { Config: { - apiKey: 'da70166e-05a4-4fa1-bb1c-da757fd036b4', + apiKey: 'dummyApiKey', blacklistedEvents: [{ eventName: '' }], eventDelivery: true, eventDeliveryTS: 1665475307930, @@ -484,7 +484,7 @@ export const data = [ params: {}, headers: { 'Content-Type': 'application/x-www-form-urlencoded', - Authorization: 'Bearer da70166e-05a4-4fa1-bb1c-da757fd036b4', + Authorization: 'Bearer dummyApiKey', }, version: '1', endpoint: 'https://api.refiner.io/v1/track', @@ -526,7 +526,7 @@ export const data = [ destination: { Config: { accountAttributesMapping: [{ from: 'email', to: 'businessEmail' }], - apiKey: 'dc70156e-05a3-4fa1-bb1c-da767fd036b4', + apiKey: 'dummyApiKey', blacklistedEvents: [{ eventName: '' }], eventDelivery: true, eventDeliveryTS: 1665476456112, @@ -552,7 +552,7 @@ export const data = [ endpoint: 'https://api.refiner.io/v1/identify-user', headers: { 'Content-Type': 'application/x-www-form-urlencoded', - Authorization: 'Bearer dc70156e-05a3-4fa1-bb1c-da767fd036b4', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -621,7 +621,7 @@ export const data = [ destination: { Config: { accountAttributesMapping: [{ from: 'email', to: 'businessEmail' }], - apiKey: 'dc70156e-05a3-4fa1-bb1c-da767fd036b4', + apiKey: 'dummyApiKey', blacklistedEvents: [{ eventName: '' }], eventDelivery: true, eventDeliveryTS: 1665476456112, @@ -653,7 +653,7 @@ export const data = [ params: {}, headers: { 'Content-Type': 'application/x-www-form-urlencoded', - Authorization: 'Bearer dc70156e-05a3-4fa1-bb1c-da767fd036b4', + Authorization: 'Bearer dummyApiKey', }, version: '1', endpoint: 'https://api.refiner.io/v1/track', diff --git a/test/integrations/destinations/refiner/router/data.ts b/test/integrations/destinations/refiner/router/data.ts index 5b9349d76b6..bea4d3ddcc2 100644 --- a/test/integrations/destinations/refiner/router/data.ts +++ b/test/integrations/destinations/refiner/router/data.ts @@ -43,7 +43,7 @@ export const data = [ }, destination: { Config: { - apiKey: 'da70166e-05a4-4fa1-bb1c-da757fd036b4', + apiKey: 'dummyApiKey', blacklistedEvents: [{ eventName: '' }], eventDelivery: true, eventDeliveryTS: 1665475307930, @@ -90,7 +90,7 @@ export const data = [ endpoint: 'https://api.refiner.io/v1/identify-user', files: {}, headers: { - Authorization: 'Bearer da70166e-05a4-4fa1-bb1c-da757fd036b4', + Authorization: 'Bearer dummyApiKey', 'Content-Type': 'application/x-www-form-urlencoded', }, method: 'POST', @@ -100,7 +100,7 @@ export const data = [ }, destination: { Config: { - apiKey: 'da70166e-05a4-4fa1-bb1c-da757fd036b4', + apiKey: 'dummyApiKey', blacklistedEvents: [{ eventName: '' }], eventDelivery: true, eventDeliveryTS: 1665475307930, @@ -202,7 +202,7 @@ export const data = [ }, destination: { Config: { - apiKey: 'da70166e-05a4-4fa1-bb1c-da757fd036b4', + apiKey: 'dummyApiKey', blacklistedEvents: [{ eventName: '' }], eventDelivery: true, eventDeliveryTS: 1665475307930, @@ -239,7 +239,7 @@ export const data = [ endpoint: 'https://api.refiner.io/v1/track', files: {}, headers: { - Authorization: 'Bearer da70166e-05a4-4fa1-bb1c-da757fd036b4', + Authorization: 'Bearer dummyApiKey', 'Content-Type': 'application/x-www-form-urlencoded', }, method: 'POST', @@ -249,7 +249,7 @@ export const data = [ }, destination: { Config: { - apiKey: 'da70166e-05a4-4fa1-bb1c-da757fd036b4', + apiKey: 'dummyApiKey', blacklistedEvents: [{ eventName: '' }], eventDelivery: true, eventDeliveryTS: 1665475307930, @@ -303,7 +303,7 @@ export const data = [ destination: { Config: { accountAttributesMapping: [{ from: 'email', to: 'businessEmail' }], - apiKey: 'dc70156e-05a3-4fa1-bb1c-da767fd036b4', + apiKey: 'dummyApiKey', blacklistedEvents: [{ eventName: '' }], eventDelivery: true, eventDeliveryTS: 1665476456112, @@ -341,7 +341,7 @@ export const data = [ endpoint: 'https://api.refiner.io/v1/identify-user', files: {}, headers: { - Authorization: 'Bearer dc70156e-05a3-4fa1-bb1c-da767fd036b4', + Authorization: 'Bearer dummyApiKey', 'Content-Type': 'application/x-www-form-urlencoded', }, method: 'POST', @@ -352,7 +352,7 @@ export const data = [ destination: { Config: { accountAttributesMapping: [{ from: 'email', to: 'businessEmail' }], - apiKey: 'dc70156e-05a3-4fa1-bb1c-da767fd036b4', + apiKey: 'dummyApiKey', blacklistedEvents: [{ eventName: '' }], eventDelivery: true, eventDeliveryTS: 1665476456112, diff --git a/test/integrations/destinations/revenue_cat/processor/data.ts b/test/integrations/destinations/revenue_cat/processor/data.ts new file mode 100644 index 00000000000..45ff5d8499b --- /dev/null +++ b/test/integrations/destinations/revenue_cat/processor/data.ts @@ -0,0 +1,1079 @@ +export const data = [ + { + "name": "revenue_cat", + "description": "Test 0", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "apiKey": "as9d920a5e75a18acb4a29abd9ec1e2e", + "xPlatform": "stripe" + } + }, + "message": { + "userId": "rudder1235678", + "channel": "web", + "context": { + "ip": "14.5.67.21", + "app": { + "build": "1", + "name": "RudderAndroidClient", + "namespace": "com.rudderstack.demo.android", + "version": "1.0" + }, + "device": { + "manufacturer": "Google", + "model": "Android SDK built for x86", + "name": "generic_x86", + "type": "android" + }, + "library": { + "name": "com.rudderstack.android.sdk.core", + "version": "0.1.4" + }, + "locale": "en-US", + "network": { + "carrier": "Android", + "bluetooth": false, + "cellular": true, + "wifi": true + }, + "campaign": { + "source": "google", + "medium": "medium", + "term": "keyword", + "content": "some content" + }, + "os": { + "name": "Android", + "version": "9" + }, + "screen": { + "density": 420, + "height": 1794, + "width": 1080 + }, + "timezone": "Asia/Mumbai", + "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" + }, + "type": "identify", + "traits": { + "email": "chandan@companyname.com", + "phone": "92374162212", + "lastname": "Doe", + "density": "420", + "height": "1794", + "width": "1080", + "iterableCampaignId": "1234", + "iterableTemplateId": "1234" + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "GET", + "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678", + "headers": { + "Authorization": "Basic as9d920a5e75a18acb4a29abd9ec1e2e", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": {}, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + }, + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678/attributes", + "headers": { + "Authorization": "Basic as9d920a5e75a18acb4a29abd9ec1e2e", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "attributes": { + "app_user_id": { + "value": "rudder1235678" + }, + "$email": { + "value": "chandan@companyname.com" + }, + "$phoneNumber": { + "value": "92374162212" + }, + "$ip": { + "value": "14.5.67.21" + }, + "$iterableCampaignId": { + "value": "1234" + }, + "$iterableTemplateId": { + "value": "1234" + }, + "$displayName": { + "value": "Doe" + }, + "lastname": { + "value": "Doe" + }, + "density": { + "value": "420" + }, + "height": { + "value": "1794" + }, + "width": { + "value": "1080" + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "revenue_cat", + "description": "Test 1", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "apiKey": "a5e75dfda29abd920ec1ec8a18acb42e", + "xPlatform": "stripe" + } + }, + "message": { + "userId": "rudder1235678", + "channel": "web", + "context": { + "ip": "14.5.67.21", + "app": { + "build": "1", + "name": "RudderAndroidClient", + "namespace": "com.rudderstack.demo.android", + "version": "1.0" + }, + "device": { + "manufacturer": "Google", + "model": "Android SDK built for x86", + "name": "generic_x86", + "type": "android" + }, + "library": { + "name": "com.rudderstack.android.sdk.core", + "version": "0.1.4" + }, + "locale": "en-US", + "network": { + "carrier": "Android", + "bluetooth": false, + "cellular": true, + "wifi": true + }, + "campaign": { + "source": "google", + "medium": "medium", + "term": "keyword", + "content": "some content" + }, + "os": { + "name": "Android", + "version": "9" + }, + "screen": { + "density": 420, + "height": 1794, + "width": 1080 + }, + "timezone": "Asia/Mumbai", + "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" + }, + "type": "identify", + "traits": { + "email": "chandan@companyname.com", + "phone": "92374162212", + "firstname": "James", + "density": 420, + "height": 1794, + "width": 1080, + "iterableCampaignId": "1234", + "iterableTemplateId": "1234" + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "GET", + "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678", + "headers": { + "Authorization": "Basic a5e75dfda29abd920ec1ec8a18acb42e", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": {}, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + }, + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678/attributes", + "headers": { + "Authorization": "Basic a5e75dfda29abd920ec1ec8a18acb42e", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "attributes": { + "app_user_id": { + "value": "rudder1235678" + }, + "$email": { + "value": "chandan@companyname.com" + }, + "$phoneNumber": { + "value": "92374162212" + }, + "$ip": { + "value": "14.5.67.21" + }, + "$iterableCampaignId": { + "value": "1234" + }, + "$iterableTemplateId": { + "value": "1234" + }, + "$displayName": { + "value": "James" + }, + "firstname": { + "value": "James" + }, + "density": { + "value": "420" + }, + "height": { + "value": "1794" + }, + "width": { + "value": "1080" + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "revenue_cat", + "description": "Test 2", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "xPlatform": "stripe" + } + }, + "message": { + "userId": "rudder1235678", + "channel": "web", + "context": { + "ip": "14.5.67.21", + "app": { + "build": "1", + "name": "RudderAndroidClient", + "namespace": "com.rudderstack.demo.android", + "version": "1.0" + }, + "device": { + "manufacturer": "Google", + "model": "Android SDK built for x86", + "name": "generic_x86", + "type": "android" + }, + "library": { + "name": "com.rudderstack.android.sdk.core", + "version": "0.1.4" + }, + "locale": "en-US", + "network": { + "carrier": "Android", + "bluetooth": false, + "cellular": true, + "wifi": true + }, + "campaign": { + "source": "google", + "medium": "medium", + "term": "keyword", + "content": "some content" + }, + "os": { + "name": "Android", + "version": "9" + }, + "screen": { + "density": 420, + "height": 1794, + "width": 1080 + }, + "timezone": "Asia/Mumbai", + "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" + }, + "type": "identify", + "traits": { + "email": "chandan@companyname.com", + "phone": "92374162212", + "name": "John Doe" + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "statusCode": 400, + "error": "Public API Key required for Authentication", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "configuration", + "destType": "REVENUE_CAT", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "revenue_cat", + "description": "Test 3", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "apiKey": "a5e75d99c8a18acb4a29abd920ec1e2e" + } + }, + "message": { + "userId": "rudder1235678", + "channel": "web", + "context": { + "ip": "14.5.67.21", + "app": { + "build": "1", + "name": "RudderAndroidClient", + "namespace": "com.rudderstack.demo.android", + "version": "1.0" + }, + "device": { + "manufacturer": "Google", + "model": "Android SDK built for x86", + "name": "generic_x86", + "type": "android" + }, + "library": { + "name": "com.rudderstack.android.sdk.core", + "version": "0.1.4" + }, + "locale": "en-US", + "network": { + "carrier": "Android", + "bluetooth": false, + "cellular": true, + "wifi": true + }, + "campaign": { + "source": "google", + "medium": "medium", + "term": "keyword", + "content": "some content" + }, + "os": { + "name": "Android", + "version": "9" + }, + "screen": { + "density": 420, + "height": 1794, + "width": 1080 + }, + "timezone": "Asia/Mumbai", + "userAgent": "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" + }, + "type": "identify", + "traits": { + "email": "chandan@companyname.com", + "phone": "92374162212", + "name": "John Doe" + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "GET", + "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678", + "headers": { + "Authorization": "Basic a5e75d99c8a18acb4a29abd920ec1e2e", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": {}, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + }, + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.revenuecat.com/v1/subscribers/rudder1235678/attributes", + "headers": { + "Authorization": "Basic a5e75d99c8a18acb4a29abd920ec1e2e", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "attributes": { + "app_user_id": { + "value": "rudder1235678" + }, + "$displayName": { + "value": "John Doe" + }, + "$email": { + "value": "chandan@companyname.com" + }, + "$phoneNumber": { + "value": "92374162212" + }, + "$ip": { + "value": "14.5.67.21" + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "revenue_cat", + "description": "Test 4", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "apiKey": "dummyApiKey" + } + }, + "message": { + "type": "track", + "userId": "rudder123", + "properties": { + "checkout_id": "12345", + "order_id": "1234", + "affiliation": "Apple Store", + "total": 20, + "revenue": 15, + "shipping": 22, + "tax": 1, + "discount": 1.5, + "coupon": "ImagePro", + "currency": "USD", + "fetch_token": "dummyFetchToken", + "product_id": "123", + "products": [ + { + "sku": "G-32", + "name": "Monopoly", + "price": 14, + "quantity": 1, + "introductory_price": "350", + "is_restore": true, + "presented_offering_identifier": "123erd" + }, + { + "product_id": "345", + "sku": "F-32", + "name": "UNO", + "price": 3.45, + "quantity": 2, + "category": "Games", + "introductory_price": "250", + "is_restore": false, + "presented_offering_identifier": "123erd" + } + ] + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "statusCode": 400, + "error": "X-Platform is required field", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "configuration", + "destType": "REVENUE_CAT", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "revenue_cat", + "description": "Test 5", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "apiKey": "dummyApiKey", + "xPlatform": "stripe" + } + }, + "message": { + "type": "track", + "userId": "rudder123", + "properties": { + "checkout_id": "12345", + "order_id": "1234", + "affiliation": "Apple Store", + "total": 20, + "revenue": 15, + "shipping": 22, + "tax": 1, + "discount": 1.5, + "coupon": "ImagePro", + "currency": "USD", + "fetch_token": "dummyFetchToken", + "product_id": "123", + "products": [ + { + "sku": "G-32", + "name": "Monopoly", + "price": 14, + "quantity": 1, + "introductory_price": "350", + "is_restore": true, + "presented_offering_identifier": "123erd" + }, + { + "product_id": "345", + "sku": "F-32", + "name": "UNO", + "price": 3.45, + "quantity": 2, + "category": "Games", + "introductory_price": "250", + "is_restore": false, + "presented_offering_identifier": "123erd" + } + ] + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.revenuecat.com/v1/receipts", + "headers": { + "Authorization": "Basic dummyApiKey", + "Content-Type": "application/json", + "X-Platform": "stripe" + }, + "params": {}, + "body": { + "JSON": { + "app_user_id": "rudder123", + "fetch_token": "dummyFetchToken", + "product_id": "123", + "currency": "USD", + "price": 14, + "introductory_price": "350", + "is_restore": true, + "presented_offering_identifier": "123erd" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + }, + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.revenuecat.com/v1/receipts", + "headers": { + "Authorization": "Basic dummyApiKey", + "Content-Type": "application/json", + "X-Platform": "stripe" + }, + "params": {}, + "body": { + "JSON": { + "app_user_id": "rudder123", + "fetch_token": "dummyFetchToken", + "product_id": "345", + "currency": "USD", + "price": 3.45, + "introductory_price": "250", + "is_restore": false, + "presented_offering_identifier": "123erd" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "revenue_cat", + "description": "Test 6", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "apiKey": "dummyApiKey", + "xPlatform": "stripe" + } + }, + "message": { + "type": "track", + "userId": "rudder123", + "properties": { + "checkout_id": "12345", + "order_id": "1234", + "affiliation": "Apple Store", + "total": 20, + "revenue": 15, + "shipping": 22, + "tax": 1, + "discount": 1.5, + "coupon": "ImagePro", + "currency": "USD", + "fetch_token": "dummyFetchToken", + "product_id": "123-sa", + "products": [ + { + "sku": "G-32", + "name": "Monopoly", + "price": 14, + "quantity": 1, + "introductory_price": "350", + "is_restore": true, + "presented_offering_identifier": "123erd" + }, + { + "product_id": "345", + "sku": "F-32", + "name": "UNO", + "price": 3.45, + "quantity": 2, + "category": "Games", + "introductory_price": "250", + "is_restore": false, + "presented_offering_identifier": "123erd" + }, + { + "sku": "G-33", + "name": "SunGlass", + "price": 14, + "quantity": 1, + "introductory_price": "350", + "is_restore": true, + "presented_offering_identifier": "123erd" + }, + { + "sku": "G-35", + "product_id": "1234sb", + "name": "Real-me", + "price": 14, + "quantity": 1, + "introductory_price": "350", + "is_restore": true, + "presented_offering_identifier": "123erd" + } + ] + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.revenuecat.com/v1/receipts", + "headers": { + "Authorization": "Basic dummyApiKey", + "Content-Type": "application/json", + "X-Platform": "stripe" + }, + "params": {}, + "body": { + "JSON": { + "app_user_id": "rudder123", + "fetch_token": "dummyFetchToken", + "product_id": "123-sa", + "currency": "USD", + "price": 14, + "introductory_price": "350", + "is_restore": true, + "presented_offering_identifier": "123erd" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + }, + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.revenuecat.com/v1/receipts", + "headers": { + "Authorization": "Basic dummyApiKey", + "Content-Type": "application/json", + "X-Platform": "stripe" + }, + "params": {}, + "body": { + "JSON": { + "app_user_id": "rudder123", + "fetch_token": "dummyFetchToken", + "product_id": "345", + "currency": "USD", + "price": 3.45, + "introductory_price": "250", + "is_restore": false, + "presented_offering_identifier": "123erd" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + }, + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.revenuecat.com/v1/receipts", + "headers": { + "Authorization": "Basic dummyApiKey", + "Content-Type": "application/json", + "X-Platform": "stripe" + }, + "params": {}, + "body": { + "JSON": { + "app_user_id": "rudder123", + "fetch_token": "dummyFetchToken", + "product_id": "123-sa", + "currency": "USD", + "price": 14, + "introductory_price": "350", + "is_restore": true, + "presented_offering_identifier": "123erd" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + }, + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.revenuecat.com/v1/receipts", + "headers": { + "Authorization": "Basic dummyApiKey", + "Content-Type": "application/json", + "X-Platform": "stripe" + }, + "params": {}, + "body": { + "JSON": { + "app_user_id": "rudder123", + "fetch_token": "dummyFetchToken", + "product_id": "1234sb", + "currency": "USD", + "price": 14, + "introductory_price": "350", + "is_restore": true, + "presented_offering_identifier": "123erd" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "revenue_cat", + "description": "Test 7", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "apiKey": "dummyApiKey", + "xPlatform": "stripe" + } + }, + "message": { + "type": "track", + "userId": "rudder123", + "properties": { + "checkout_id": "12345", + "order_id": "1234", + "affiliation": "Apple Store", + "total": 20, + "revenue": 15, + "shipping": 22, + "tax": 1, + "discount": 1.5, + "coupon": "ImagePro", + "currency": "USD", + "fetch_token": "dummyFetchToken", + "product_id": "123-sa", + "sku": "G-32", + "name": "Monopoly", + "price": 14, + "quantity": 1, + "introductory_price": "350", + "is_restore": true, + "presented_offering_identifier": "123erd" + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.revenuecat.com/v1/receipts", + "headers": { + "Authorization": "Basic dummyApiKey", + "Content-Type": "application/json", + "X-Platform": "stripe" + }, + "params": {}, + "body": { + "JSON": { + "app_user_id": "rudder123", + "fetch_token": "dummyFetchToken", + "product_id": "123-sa", + "price": 14, + "currency": "USD", + "introductory_price": "350", + "is_restore": true, + "presented_offering_identifier": "123erd" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + } +] \ No newline at end of file diff --git a/test/integrations/destinations/rockerbox/processor/data.ts b/test/integrations/destinations/rockerbox/processor/data.ts new file mode 100644 index 00000000000..ff8f6d46209 --- /dev/null +++ b/test/integrations/destinations/rockerbox/processor/data.ts @@ -0,0 +1,749 @@ +export const data = [ + { + "name": "rockerbox", + "description": "Test 0", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "advertiserId": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" + } + }, + "message": { + "context": { + "traits": { + "homwTown": "kanpur", + "age": "24" + } + }, + "type": "Identify", + "userId": "yash001", + "originalTimestamp": "2019-10-14T09:03:17.562Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "statusCode": 400, + "error": "Message type identify is not supported", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "ROCKERBOX", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "rockerbox", + "description": "Test 1", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "advertiserId": "test id", + "eventFilteringOption": "disable", + "whitelistedEvents": [ + { + "eventName": "" + } + ], + "blacklistedEvents": [ + { + "eventName": "" + } + ], + "eventsMap": [ + { + "from": "Product Added To Cart", + "to": "conv.add_to_cart" + } + ], + "useNativeSDK": { + "web": false + }, + "clientAuthId": { + "web": "test-client-auth-id" + }, + "oneTrustCookieCategories": { + "web": [ + { + "oneTrustCookieCategory": "Marketing Sample" + } + ] + }, + "customDomain": { + "web": "https://cookiedomain.com" + }, + "enableCookieSync": { + "web": true + } + } + }, + "message": { + "type": "track", + "event": "Product Added", + "sentAt": "2022-08-07T20:02:19.352Z", + "userId": "userSampleX138", + "channel": "web", + "context": { + "os": { + "name": "", + "version": "" + }, + "locale": "en-IN", + "screen": { + "width": 1440, + "height": 900, + "density": 2, + "innerWidth": 584, + "innerHeight": 789 + }, + "traits": { + "email": "userSampleX120@gmail.com", + "phone": "9878764736", + "last_name": "Stack", + "first_name": "Rudder", + "subscription": "youtube" + }, + "campaign": {}, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" + }, + "rudderId": "4a47e99b-2afc-45c6-b902-ed69282ca805", + "messageId": "1659902539347900-c622426c-a1dd-44c0-ac6d-d4dbee3f4a93", + "properties": { + "checkout_id": "12345", + "product_url": "http://www.yourdomain.com/products/red-t-shirt", + "product_name": "Red T-shirt" + }, + "anonymousId": "5f093403-1457-4a2c-b4e4-c61ec3bacf56", + "integrations": { + "All": true + }, + "originalTimestamp": "2022-08-07T20:02:19.347Z" + }, + "writeKey": "2D0yaayoBD7bp8uFomnBONdedcA", + "requestIP": "[::1]", + "receivedAt": "2022-08-08T01:32:19.369+05:30" + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "statusCode": 400, + "error": "The event is not associated to a RockerBox event. Aborting!", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "configuration", + "destType": "ROCKERBOX", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "rockerbox", + "description": "Test 2", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "advertiserId": "test id", + "eventFilteringOption": "disable", + "whitelistedEvents": [ + { + "eventName": "" + } + ], + "blacklistedEvents": [ + { + "eventName": "" + } + ], + "eventsMap": [ + { + "from": "Product Added", + "to": "conv.add_to_cart" + } + ], + "useNativeSDK": { + "web": false + }, + "clientAuthId": { + "web": "test-client-auth-id" + }, + "oneTrustCookieCategories": { + "web": [ + { + "oneTrustCookieCategory": "Marketing Sample" + } + ] + }, + "customDomain": { + "web": "https://cookiedomain.com" + }, + "enableCookieSync": { + "web": true + } + } + }, + "message": { + "type": "track", + "event": "Product Added", + "sentAt": "2022-08-07T20:02:19.352Z", + "userId": "userSampleX138", + "channel": "web", + "context": { + "os": { + "name": "", + "version": "" + }, + "locale": "en-IN", + "traits": { + "email": "userSampleX120@gmail.com", + "phone": "9878764736", + "last_name": "Stack", + "first_name": "Rudder" + }, + "campaign": {}, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" + }, + "rudderId": "4a47e99b-2afc-45c6-b902-ed69282ca805", + "messageId": "1659902539347900-c622426c-a1dd-44c0-ac6d-d4dbee3f4a93", + "properties": { + "checkout_id": "12345", + "product_url": "http://www.yourdomain.com/products/red-t-shirt", + "product_name": "Red T-shirt" + }, + "anonymousId": "5f093403-1457-4a2c-b4e4-c61ec3bacf56", + "integrations": { + "All": true + }, + "originalTimestamp": "2022-08-07T20:02:19.347Z" + }, + "writeKey": "2D0yaayoBD7bp8uFomnBONdedcA", + "requestIP": "[::1]", + "receivedAt": "2022-08-08T01:32:19.369+05:30" + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://webhooks.getrockerbox.com/rudderstack", + "headers": {}, + "params": { + "advertiser": "test id" + }, + "body": { + "JSON": { + "customer_id": "userSampleX138", + "anonymous_id": "5f093403-1457-4a2c-b4e4-c61ec3bacf56", + "email": "userSampleX120@gmail.com", + "phone": "9878764736", + "timestamp": 1659902539, + "conversion_source": "RudderStack", + "action": "conv.add_to_cart", + "checkout_id": "12345", + "product_url": "http://www.yourdomain.com/products/red-t-shirt", + "product_name": "Red T-shirt" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "rockerbox", + "description": "Test 3", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "advertiserId": "test id", + "eventFilteringOption": "disable", + "whitelistedEvents": [ + { + "eventName": "" + } + ], + "blacklistedEvents": [ + { + "eventName": "" + } + ], + "eventsMap": [ + { + "from": "Product Added", + "to": "conv.add_to_cart" + } + ], + "useNativeSDK": { + "web": false + }, + "clientAuthId": { + "web": "test-client-auth-id" + }, + "oneTrustCookieCategories": { + "web": [ + { + "oneTrustCookieCategory": "Marketing Sample" + } + ] + }, + "customDomain": { + "web": "https://cookiedomain.com" + }, + "enableCookieSync": { + "web": true + } + } + }, + "message": { + "type": "track", + "event": "Product Added", + "sentAt": "2022-08-07T20:02:19.352Z", + "userId": "userSampleX138", + "channel": "web", + "context": { + "os": { + "name": "", + "version": "" + }, + "locale": "en-IN", + "traits": { + "email": "userSampleX120@gmail.com", + "phone": "9878764736", + "last_name": "Stack", + "first_name": "Rudder" + }, + "externalId": [ + { + "type": "rockerboxExternalId", + "id": "rbUid" + } + ], + "campaign": {}, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" + }, + "rudderId": "4a47e99b-2afc-45c6-b902-ed69282ca805", + "messageId": "1659902539347900-c622426c-a1dd-44c0-ac6d-d4dbee3f4a93", + "properties": { + "checkout_id": "12345", + "product_url": "http://www.yourdomain.com/products/red-t-shirt", + "product_name": "Red T-shirt", + "externalId": "rbUid", + "countryCode": "IN", + "listingId": "10101" + }, + "anonymousId": "5f093403-1457-4a2c-b4e4-c61ec3bacf56", + "integrations": { + "All": true + }, + "originalTimestamp": "2022-08-07T20:02:19.347Z" + }, + "writeKey": "2D0yaayoBD7bp8uFomnBONdedcA", + "requestIP": "[::1]", + "receivedAt": "2022-08-08T01:32:19.369+05:30" + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://webhooks.getrockerbox.com/rudderstack", + "headers": {}, + "params": { + "advertiser": "test id" + }, + "body": { + "JSON": { + "customer_id": "userSampleX138", + "anonymous_id": "5f093403-1457-4a2c-b4e4-c61ec3bacf56", + "email": "userSampleX120@gmail.com", + "phone": "9878764736", + "timestamp": 1659902539, + "country_code": "IN", + "listing_id": "10101", + "conversion_source": "RudderStack", + "action": "conv.add_to_cart", + "checkout_id": "12345", + "product_url": "http://www.yourdomain.com/products/red-t-shirt", + "product_name": "Red T-shirt", + "externalId": "rbUid" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "rockerbox", + "description": "Test 4", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "advertiserId": "hdowhfiqhfwaiwhrdafshbfacicolsa", + "eventFilteringOption": "disable", + "whitelistedEvents": [ + { + "eventName": "" + } + ], + "blacklistedEvents": [ + { + "eventName": "" + } + ], + "eventsMap": [ + { + "from": "Product Added", + "to": "conv.add_to_cart" + } + ], + "customPropsMapping": [ + { + "from": "unit_id", + "to": "unitID" + }, + { + "from": "merch_id", + "to": "merch_id" + }, + { + "from": "bounce_id", + "to": "bounceID" + } + ], + "useNativeSDK": { + "web": false + }, + "useNativeSDKToSend": { + "web": false + }, + "clientAuthId": { + "web": "" + }, + "oneTrustCookieCategories": { + "web": [ + { + "oneTrustCookieCategory": "" + } + ] + }, + "customDomain": { + "web": "" + }, + "enableCookieSync": { + "web": false + } + } + }, + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "originalTimestamp": "2019-10-14T09:03:17.562Z", + "anonymousId": "anon_id", + "type": "track", + "traits": { + "userId": "anon_id", + "email": "jamesDoe@gmail.com", + "name": "James Doe", + "phone": "92374162212", + "gender": "M", + "employed": true, + "birthday": "1614775793", + "education": "Science", + "graduate": true, + "married": true, + "customerType": "Prime", + "msg_push": true, + "msgSms": true, + "msgemail": true, + "msgwhatsapp": false, + "custom_tags": [ + "Test_User", + "Interested_User", + "DIY_Hobby" + ], + "custom_mappings": { + "Office": "Trastkiv", + "Country": "Russia" + }, + "address": { + "city": "kolkata", + "country": "India", + "postalCode": 789223, + "state": "WB", + "street": "" + } + }, + "properties": { + "unit_id": 123, + "merch_id": false, + "bounceiD": "fakefake", + "counce_id": "" + }, + "event": "Product Added", + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T09:03:22.563Z" + }, + "writeKey": "2D0yaayoBD7bp8uFomnBONdedcA", + "requestIP": "[::1]", + "receivedAt": "2022-08-08T01:32:19.369+05:30" + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://webhooks.getrockerbox.com/rudderstack", + "headers": {}, + "params": { + "advertiser": "hdowhfiqhfwaiwhrdafshbfacicolsa" + }, + "body": { + "JSON": { + "customer_id": "anon_id", + "anonymous_id": "anon_id", + "email": "jamesDoe@gmail.com", + "phone": "92374162212", + "timestamp": 1571043797, + "conversion_source": "RudderStack", + "action": "conv.add_to_cart", + "unit_id": 123, + "merch_id": false, + "bounceiD": "fakefake", + "counce_id": "" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "rockerbox", + "description": "Test 5", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "advertiserId": "KDH4JNDHCFJHJ57SJOWJE490W01JFNHGDSSFHDKDSDF" + } + }, + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.0.0" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.0.0" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36", + "locale": "en-US", + "ip": "0.0.0.0", + "os": { + "name": "", + "version": "" + }, + "screen": { + "density": 2 + } + }, + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "originalTimestamp": "2019-10-14T09:03:17.562Z", + "type": "track", + "traits": { + "email": "jamesDoe@gmail.com", + "name": "James Doe", + "phone": "92374162212", + "gender": "M", + "employed": true, + "birthday": "1614775793", + "education": "Science", + "graduate": true, + "married": true, + "customerType": "Prime", + "msg_push": true, + "msgSms": true, + "msgemail": true, + "msgwhatsapp": false, + "custom_tags": [ + "Test_User", + "Interested_User", + "DIY_Hobby" + ], + "custom_mappings": { + "Office": "Trastkiv", + "Country": "Russia" + }, + "address": { + "city": "kolkata", + "country": "India", + "postalCode": 789223, + "state": "WB", + "street": "" + } + }, + "properties": { + "unit_id": 123, + "merch_id": false, + "bounceiD": "fakefake", + "counce_id": "" + }, + "event": "Product Added", + "integrations": { + "All": true + }, + "sentAt": "2019-10-14T09:03:22.563Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "statusCode": 400, + "error": "Anyone of userId or anonymousId is required to make the call", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "ROCKERBOX", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + } +] \ No newline at end of file diff --git a/test/integrations/destinations/rockerbox/router/data.ts b/test/integrations/destinations/rockerbox/router/data.ts new file mode 100644 index 00000000000..caa8f1ba08d --- /dev/null +++ b/test/integrations/destinations/rockerbox/router/data.ts @@ -0,0 +1,314 @@ +export const data = [ + { + name: 'rockerbox', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + advertiserId: 'test id', + eventFilteringOption: 'disable', + whitelistedEvents: [ + { + eventName: '', + }, + ], + blacklistedEvents: [ + { + eventName: '', + }, + ], + eventsMap: [ + { + from: 'Product Added', + to: 'conv.add_to_cart', + }, + ], + useNativeSDK: { + web: false, + }, + clientAuthId: { + web: 'test-client-auth-id', + }, + oneTrustCookieCategories: { + web: [ + { + oneTrustCookieCategory: 'Marketing Sample', + }, + ], + }, + customDomain: { + web: 'https://cookiedomain.com', + }, + enableCookieSync: { + web: true, + }, + }, + }, + metadata: { + jobId: 1, + }, + message: { + type: 'track', + event: 'Product Added', + sentAt: '2022-08-07T20:02:19.352Z', + userId: 'userSampleX138', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + locale: 'en-IN', + traits: { + email: 'userSampleX120@gmail.com', + phone: '9878764736', + last_name: 'Stack', + first_name: 'Rudder', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36', + }, + rudderId: '4a47e99b-2afc-45c6-b902-ed69282ca805', + messageId: '1659902539347900-c622426c-a1dd-44c0-ac6d-d4dbee3f4a93', + properties: { + checkout_id: '12345', + product_url: 'http://www.yourdomain.com/products/red-t-shirt', + product_name: 'Red T-shirt', + }, + anonymousId: '5f093403-1457-4a2c-b4e4-c61ec3bacf56', + integrations: { + All: true, + }, + originalTimestamp: '2022-08-07T20:02:19.347Z', + }, + writeKey: '2D0yaayoBD7bp8uFomnBONdedcA', + requestIP: '[::1]', + receivedAt: '2022-08-08T01:32:19.369+05:30', + }, + ], + destType: 'rockerbox', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + batchedRequest: { + body: { + FORM: {}, + JSON: { + action: 'conv.add_to_cart', + anonymous_id: '5f093403-1457-4a2c-b4e4-c61ec3bacf56', + checkout_id: '12345', + conversion_source: 'RudderStack', + customer_id: 'userSampleX138', + email: 'userSampleX120@gmail.com', + phone: '9878764736', + product_name: 'Red T-shirt', + product_url: 'http://www.yourdomain.com/products/red-t-shirt', + timestamp: 1659902539, + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://webhooks.getrockerbox.com/rudderstack', + files: {}, + headers: {}, + method: 'POST', + params: { advertiser: 'test id' }, + type: 'REST', + version: '1', + }, + destination: { + Config: { + advertiserId: 'test id', + blacklistedEvents: [{ eventName: '' }], + clientAuthId: { web: 'test-client-auth-id' }, + customDomain: { web: 'https://cookiedomain.com' }, + enableCookieSync: { web: true }, + eventFilteringOption: 'disable', + eventsMap: [{ from: 'Product Added', to: 'conv.add_to_cart' }], + oneTrustCookieCategories: { + web: [{ oneTrustCookieCategory: 'Marketing Sample' }], + }, + useNativeSDK: { web: false }, + whitelistedEvents: [{ eventName: '' }], + }, + }, + metadata: [{ jobId: 1 }], + statusCode: 200, + }, + ], + }, + }, + }, + }, + { + name: 'rockerbox', + description: 'Test 1', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + advertiserId: 'test id', + eventFilteringOption: 'disable', + whitelistedEvents: [ + { + eventName: '', + }, + ], + blacklistedEvents: [ + { + eventName: '', + }, + ], + eventsMap: [ + { + from: 'Product Viewed', + to: 'conv.add_to_cart', + }, + ], + useNativeSDK: { + web: false, + }, + clientAuthId: { + web: 'test-client-auth-id', + }, + oneTrustCookieCategories: { + web: [ + { + oneTrustCookieCategory: 'Marketing Sample', + }, + ], + }, + customDomain: { + web: 'https://cookiedomain.com', + }, + enableCookieSync: { + web: true, + }, + }, + }, + metadata: { + jobId: 2, + }, + message: { + type: 'track', + event: 'Product Viewed', + sentAt: '2022-08-07T20:02:19.352Z', + userId: 'userSampleX138', + channel: 'web', + context: { + os: { + name: '', + version: '', + }, + locale: 'en-IN', + traits: { + email: 'userSampleX120@gmail.com', + phone: '9878764736', + last_name: 'Stack', + first_name: 'Rudder', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36', + }, + rudderId: '4a47e99b-2afc-45c6-b902-ed69282ca805', + messageId: '1659902539347900-c622426c-a1dd-44c0-ac6d-d4dbee3f4a93', + properties: { + checkout_id: '12345', + product_url: 'http://www.yourdomain.com/products/red-t-shirt', + product_name: 'Red T-shirt', + }, + anonymousId: '5f093403-1457-4a2c-b4e4-c61ec3bacf56', + integrations: { + All: true, + }, + originalTimestamp: '2022-08-07T20:02:19.347Z', + }, + writeKey: '2D0yaayoBD7bp8uFomnBONdedcA', + requestIP: '[::1]', + receivedAt: '2022-08-08T01:32:19.369+05:30', + }, + ], + destType: 'rockerbox', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + batchedRequest: { + body: { + FORM: {}, + JSON: { + action: 'conv.add_to_cart', + anonymous_id: '5f093403-1457-4a2c-b4e4-c61ec3bacf56', + checkout_id: '12345', + conversion_source: 'RudderStack', + customer_id: 'userSampleX138', + email: 'userSampleX120@gmail.com', + phone: '9878764736', + product_name: 'Red T-shirt', + product_url: 'http://www.yourdomain.com/products/red-t-shirt', + timestamp: 1659902539, + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://webhooks.getrockerbox.com/rudderstack', + files: {}, + headers: {}, + method: 'POST', + params: { advertiser: 'test id' }, + type: 'REST', + version: '1', + }, + destination: { + Config: { + advertiserId: 'test id', + blacklistedEvents: [{ eventName: '' }], + clientAuthId: { web: 'test-client-auth-id' }, + customDomain: { web: 'https://cookiedomain.com' }, + enableCookieSync: { web: true }, + eventFilteringOption: 'disable', + eventsMap: [{ from: 'Product Viewed', to: 'conv.add_to_cart' }], + oneTrustCookieCategories: { + web: [{ oneTrustCookieCategory: 'Marketing Sample' }], + }, + useNativeSDK: { web: false }, + whitelistedEvents: [{ eventName: '' }], + }, + }, + metadata: [{ jobId: 2 }], + statusCode: 200, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/salesforce/dataDelivery/data.ts b/test/integrations/destinations/salesforce/dataDelivery/data.ts new file mode 100644 index 00000000000..2f1e04815b1 --- /dev/null +++ b/test/integrations/destinations/salesforce/dataDelivery/data.ts @@ -0,0 +1,833 @@ +import { AxiosError } from 'axios'; +import MockAdapter from 'axios-mock-adapter'; + +export const data = [ + { + name: 'salesforce', + description: 'Test 0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + files: {}, + method: 'POST', + userId: '', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + }, + version: '1', + endpoint: 'https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/1', + body: { + XML: {}, + FORM: {}, + JSON: { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + JSON_ARRAY: {}, + }, + metadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + params: { + destination: 'salesforce', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + status: 200, + message: 'Request for destination: salesforce Processed Successfully', + destinationResponse: { + response: { + statusText: 'No Content', + }, + status: 204, + rudderJobMetadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + }, + }, + }, + }, + }, + }, + { + name: 'salesforce', + description: 'Test 1', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + files: {}, + method: 'POST', + userId: '', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + }, + version: '1', + endpoint: 'https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/3', + body: { + XML: {}, + FORM: {}, + JSON: { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + JSON_ARRAY: {}, + }, + metadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + params: { + destination: 'salesforce', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + body: { + output: { + status: 500, + message: + 'Salesforce Request Failed - due to "INVALID_SESSION_ID", (Retryable) during Salesforce Response Handling', + destinationResponse: { + response: [ + { + message: 'Session expired or invalid', + errorCode: 'INVALID_SESSION_ID', + }, + ], + rudderJobMetadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + status: 401, + }, + statTags: { + destType: 'SALESFORCE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'salesforce', + description: 'Test 2', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + files: {}, + method: 'POST', + userId: '', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer Incorrect_token', + }, + version: '1', + endpoint: 'https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/2', + body: { + XML: {}, + FORM: {}, + JSON: { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + JSON_ARRAY: {}, + }, + metadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + params: { + destination: 'salesforce', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: + 'Salesforce Request Failed: "401" due to "INVALID_HEADER_TYPE", (Aborted) during Salesforce Response Handling', + destinationResponse: { + response: [ + { + message: 'INVALID_HEADER_TYPE', + errorCode: 'INVALID_AUTH_HEADER', + }, + ], + status: 401, + rudderJobMetadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + }, + statTags: { + destType: 'SALESFORCE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'salesforce', + description: 'Test 3', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + files: {}, + method: 'POST', + userId: '', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + }, + version: '1', + endpoint: 'https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/4', + body: { + XML: {}, + FORM: {}, + JSON: { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + JSON_ARRAY: {}, + }, + metadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + params: { + destination: 'salesforce', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 429, + body: { + output: { + status: 429, + message: + 'Salesforce Request Failed - due to "REQUEST_LIMIT_EXCEEDED", (Throttled) during Salesforce Response Handling', + destinationResponse: { + response: [ + { + message: 'Request limit exceeded', + errorCode: 'REQUEST_LIMIT_EXCEEDED', + }, + ], + status: 403, + rudderJobMetadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + }, + statTags: { + destType: 'SALESFORCE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'throttled', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'salesforce', + description: 'Test 4', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + files: {}, + method: 'POST', + userId: '', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + }, + version: '1', + endpoint: 'https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/5', + body: { + XML: {}, + FORM: {}, + JSON: { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + JSON_ARRAY: {}, + }, + metadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + params: { + destination: 'salesforce', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + body: { + output: { + status: 500, + message: + 'Salesforce Request Failed - due to "Server Unavailable", (Retryable) during Salesforce Response Handling', + destinationResponse: { + response: [ + { + message: 'Server Unavailable', + errorCode: 'SERVER_UNAVAILABLE', + }, + ], + status: 503, + rudderJobMetadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + }, + statTags: { + destType: 'SALESFORCE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'salesforce', + description: 'Test 5', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + files: {}, + method: 'POST', + userId: '', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + }, + version: '1', + endpoint: 'https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/6', + body: { + XML: {}, + FORM: {}, + JSON: { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + JSON_ARRAY: {}, + }, + metadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + params: { + destination: 'salesforce', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: + 'Salesforce Request Failed: "400" due to "{"error":"invalid_grant","error_description":"authentication failure"}", (Aborted) during Salesforce Response Handling', + destinationResponse: { + response: { + error: 'invalid_grant', + error_description: 'authentication failure', + }, + status: 400, + rudderJobMetadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + }, + statTags: { + destType: 'SALESFORCE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'salesforce', + description: 'Test 6', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + files: {}, + method: 'POST', + userId: '', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + }, + version: '1', + endpoint: 'https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/7', + body: { + XML: {}, + FORM: {}, + JSON: { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + JSON_ARRAY: {}, + }, + metadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + params: { + destination: 'salesforce', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + body: { + output: { + destinationResponse: { + response: { + errorCode: 'SERVER_UNAVAILABLE', + message: 'Server Unavailable', + }, + rudderJobMetadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + status: 503, + }, + message: + 'Salesforce Request Failed - due to "{"message":"Server Unavailable","errorCode":"SERVER_UNAVAILABLE"}", (Retryable) during Salesforce Response Handling', + statTags: { + destType: 'SALESFORCE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + status: 500, + }, + }, + }, + }, + }, + { + name: 'salesforce', + description: 'Test 7', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + method: 'POST', + endpoint: + 'https://rudderstack.my.salesforce.com/services/data/v50.0/parameterizedSearch/?q=123&sobject=object_name&in=External_ID__c&object_name.fields=id,External_ID__c', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + }, + body: { + JSON: { + Planning_Categories__c: 'pc', + External_ID__c: 123, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + metadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + params: { + destination: 'salesforce', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + status: 200, + message: 'Request for destination: salesforce Processed Successfully', + destinationResponse: { + response: { + searchRecords: [ + { + attributes: { + type: 'object_name', + url: '/services/data/v50.0/sobjects/object_name/a0J75100002w97gEAA', + }, + Id: 'a0J75100002w97gEAA', + External_ID__c: 'external_id', + }, + { + attributes: { + type: 'object_name', + url: '/services/data/v50.0/sobjects/object_name/a0J75200002w9ZsEAI', + }, + Id: 'a0J75200002w9ZsEAI', + External_ID__c: 'external_id TEST', + }, + ], + }, + status: 200, + rudderJobMetadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + }, + }, + }, + }, + }, + }, + { + name: 'salesforce', + description: 'Test 8', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + files: {}, + method: 'POST', + userId: '', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + }, + version: '1', + endpoint: 'https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/101', + body: { + XML: {}, + FORM: {}, + JSON: { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + JSON_ARRAY: {}, + }, + metadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + params: { + destination: 'salesforce', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + body: { + output: { + status: 500, + message: + 'Salesforce Request Failed - due to ""[ECONNABORTED] :: Connection aborted"", (Retryable) during Salesforce Response Handling', + destinationResponse: { + response: '[ECONNABORTED] :: Connection aborted', + status: 500, + rudderJobMetadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + }, + statTags: { + destType: 'SALESFORCE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + mockFns: (mockAdapter: MockAdapter) => { + // params has `{ destination: salesforce }` + mockAdapter + .onPost( + 'https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/101', + { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + 'User-Agent': 'RudderLabs', + Accept: 'application/json, text/plain, */*', + }, + ) + .abortRequest(); + }, + }, + { + name: 'salesforce', + description: 'Test 9', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + type: 'REST', + files: {}, + method: 'POST', + userId: '', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + }, + version: '1', + endpoint: 'https://rudder.my.salesforce.com/services/data/v50.0/sobjects/Lead/102', + body: { + XML: {}, + FORM: {}, + JSON: { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + JSON_ARRAY: {}, + }, + metadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + params: { + destination: 'salesforce', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + body: { + output: { + status: 500, + message: + 'Salesforce Request Failed - due to ""[EAI_AGAIN] :: Temporary failure in name resolution"", (Retryable) during Salesforce Response Handling', + destinationResponse: { + response: '[EAI_AGAIN] :: Temporary failure in name resolution', + status: 500, + rudderJobMetadata: { + destInfo: { + authKey: '2HezPl1w11opbFSxnLDEgZ7kWTf', + }, + }, + }, + statTags: { + destType: 'SALESFORCE', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + mockFns: (mockAdapter: MockAdapter) => { + // params has `{ destination: salesforce }` + mockAdapter + .onPost( + 'https://rudder.my.salesforce.com/services/data/v50.0/sobjects/Lead/102', + { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + 'User-Agent': 'RudderLabs', + Accept: 'application/json, text/plain, */*', + }, + ) + .reply((config) => { + // @ts-ignore + const err = AxiosError.from('DNS not found', 'EAI_AGAIN', config); + return Promise.reject(err); + }); + }, + }, +]; diff --git a/test/integrations/destinations/salesforce/network.ts b/test/integrations/destinations/salesforce/network.ts new file mode 100644 index 00000000000..396fad9d698 --- /dev/null +++ b/test/integrations/destinations/salesforce/network.ts @@ -0,0 +1,326 @@ +const tfProxyMocksData = [ + { + httpReq: { + url: 'https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/1', + data: { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + params: { destination: 'salesforce' }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { statusText: 'No Content' }, + status: 204, + }, + }, + { + httpReq: { + url: 'https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/3', + data: { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + params: { destination: 'salesforce' }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: [{ message: 'Session expired or invalid', errorCode: 'INVALID_SESSION_ID' }], + status: 401, + }, + }, + { + httpReq: { + url: 'https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/2', + data: { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + params: { destination: 'salesforce' }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer Incorrect_token', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: [{ message: 'INVALID_HEADER_TYPE', errorCode: 'INVALID_AUTH_HEADER' }], + status: 401, + }, + }, + { + httpReq: { + url: 'https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/4', + data: { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + params: { destination: 'salesforce' }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: [{ message: 'Request limit exceeded', errorCode: 'REQUEST_LIMIT_EXCEEDED' }], + status: 403, + }, + }, + { + httpReq: { + url: 'https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/5', + data: { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + params: { destination: 'salesforce' }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: [{ message: 'Server Unavailable', errorCode: 'SERVER_UNAVAILABLE' }], + status: 503, + }, + }, + { + httpReq: { + url: 'https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/6', + data: { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + params: { destination: 'salesforce' }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { error: 'invalid_grant', error_description: 'authentication failure' }, + status: 400, + }, + }, + { + httpReq: { + url: 'https://rudderstack.my.salesforce.com/services/data/v50.0/sobjects/Lead/7', + data: { + Email: 'denis.kornilov@sbermarket.ru', + Company: 'sbermarket.ru', + LastName: 'Корнилов', + FirstName: 'Денис', + LeadSource: 'App Signup', + account_type__c: 'free_trial', + }, + params: { destination: 'salesforce' }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + message: 'Server Unavailable', + errorCode: 'SERVER_UNAVAILABLE', + }, + status: 503, + }, + }, + { + httpReq: { + url: 'https://rudderstack.my.salesforce.com/services/data/v50.0/parameterizedSearch/?q=123&sobject=object_name&in=External_ID__c&object_name.fields=id,External_ID__c', + data: { Planning_Categories__c: 'pc', External_ID__c: 123 }, + params: { destination: 'salesforce' }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer token', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + searchRecords: [ + { + attributes: { + type: 'object_name', + url: '/services/data/v50.0/sobjects/object_name/a0J75100002w97gEAA', + }, + Id: 'a0J75100002w97gEAA', + External_ID__c: 'external_id', + }, + { + attributes: { + type: 'object_name', + url: '/services/data/v50.0/sobjects/object_name/a0J75200002w9ZsEAI', + }, + Id: 'a0J75200002w9ZsEAI', + External_ID__c: 'external_id TEST', + }, + ], + }, + status: 200, + }, + }, +]; + +const transformationMocksData = [ + { + httpReq: { + url: 'https://login.salesforce.com/services/oauth2/token?username=testsalesforce1453@gmail.com&password=dummyPassword1dummyInitialAccessToken&client_id=undefined&client_secret=undefined&grant_type=password', + method: 'POST', + }, + httpRes: { + status: 200, + data: { + access_token: + '00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY', + instance_url: 'https://ap15.salesforce.com', + id: 'https://login.salesforce.com/id/00D2v000002lXbXEAU/0052v00000ga9WqAAI', + token_type: 'Bearer', + issued_at: '1582343657644', + signature: 'XRgUHXVBSWhLHZVoVFZby/idWXdAPA5lMW/ZdLMzB8o=', + }, + }, + }, + { + httpReq: { + url: 'https://test.salesforce.com/services/oauth2/token?username=test.c97-qvpd@force.com.test&password=dummyPassword27fiy1FKcO9sohsxq1v6J88sg&client_id=undefined&client_secret=undefined&grant_type=password', + method: 'POST', + }, + httpRes: { + status: 200, + data: { + access_token: + '00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY', + instance_url: 'https://ap15.salesforce.com', + id: 'https://login.salesforce.com/id/00D2v000002lXbXEAU/0052v00000ga9WqAAI', + token_type: 'Bearer', + issued_at: '1582343657644', + signature: 'XRgUHXVBSWhLHZVoVFZby/idWXdAPA5lMW/ZdLMzB8o=', + abc: '123', + }, + }, + }, + { + httpReq: { + url: 'https://ap15.salesforce.com/services/data/v50.0/parameterizedSearch/?q=peter.gibbons%40initech.com&sobject=Lead&Lead.fields=id', + method: 'GET', + }, + httpRes: { + status: 200, + data: { + searchRecords: [], + }, + }, + }, + { + httpReq: { + url: 'https://ap15.salesforce.com/services/data/v50.0/parameterizedSearch/?q=peter.gibbons%40initech.com&sobject=Lead&Lead.fields=id,IsConverted,ConvertedContactId,IsDeleted', + method: 'GET', + }, + httpRes: { + status: 200, + data: { + searchRecords: [], + }, + }, + }, + { + httpReq: { + url: 'https://ap15.salesforce.com/services/data/v50.0/parameterizedSearch/?q=peter.gibbons%40initech.com&sobject=Lead&Lead.fields=id,IsConverted,ConvertedContactId,IsDeleted', + method: 'GET', + }, + httpRes: { + status: 200, + data: { + searchRecords: [], + }, + }, + }, + { + httpReq: { + url: 'https://ap15.salesforce.com/services/data/v50.0/parameterizedSearch/?q=peter.gibbons1%40initech.com&sobject=Lead&Lead.fields=id', + method: 'GET', + }, + httpRes: { + status: 200, + data: { + searchRecords: [ + { + attributes: { + type: 'Lead', + url: '/services/data/v50.0/sobjects/Lead/leadId', + }, + Id: 'leadId', + }, + ], + }, + }, + }, + { + httpReq: { + url: 'https://ap15.salesforce.com/services/data/v50.0/parameterizedSearch/?q=ddv_ua%2B%7B%7B1234*245%7D%7D%40bugFix.com&sobject=Lead&Lead.fields=id,IsConverted,ConvertedContactId,IsDeleted', + method: 'GET', + }, + httpRes: { + status: 200, + data: { + searchRecords: [ + { + attributes: { + type: 'Lead', + url: '/services/data/v50.0/sobjects/Lead/leadId', + }, + Id: 'leadId', + }, + ], + }, + }, + }, +]; +export const networkCallsData = [...tfProxyMocksData, ...transformationMocksData]; diff --git a/test/integrations/destinations/salesforce/processor/data.ts b/test/integrations/destinations/salesforce/processor/data.ts new file mode 100644 index 00000000000..4ccc8cca79b --- /dev/null +++ b/test/integrations/destinations/salesforce/processor/data.ts @@ -0,0 +1,1512 @@ +export const data = [ + { + name: 'salesforce', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + initialAccessToken: 'dummyInitialAccessToken', + password: 'dummyPassword1', + userName: 'testsalesforce1453@gmail.com', + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + Name: 'tst', + Transformations: [], + }, + message: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + company: 'Initech', + address: { + city: 'east greenwich', + country: 'USA', + state: 'California', + street: '19123 forest lane', + postalCode: '94115', + }, + email: 'peter.gibbons@initech.com', + name: 'Peter Gibbons', + phone: '570-690-4150', + rating: 'Hot', + title: 'VP of Derp', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'f19c35da-e9de-4c6e-b6e5-9e60cccc12c8', + originalTimestamp: '2020-01-27T12:20:55.301Z', + receivedAt: '2020-01-27T17:50:58.657+05:30', + request_ip: '14.98.244.60', + sentAt: '2020-01-27T12:20:56.849Z', + timestamp: '2020-01-27T17:50:57.109+05:30', + type: 'identify', + userId: '1e7673da-9473-49c6-97f7-da848ecafa76', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + output: { + version: '1', + type: 'REST', + method: 'POST', + userId: '', + endpoint: 'https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead', + headers: { + 'Content-Type': 'application/json', + Authorization: + 'Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY', + }, + params: {}, + body: { + JSON: { + Email: 'peter.gibbons@initech.com', + Phone: '570-690-4150', + Rating: 'Hot', + Title: 'VP of Derp', + FirstName: 'Peter', + LastName: 'Gibbons', + PostalCode: '94115', + City: 'east greenwich', + Country: 'USA', + State: 'California', + Street: '19123 forest lane', + Company: 'Initech', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + }, + ], + }, + }, + }, + { + name: 'salesforce', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + initialAccessToken: 'dummyInitialAccessToken', + password: 'dummyPassword1', + userName: 'testsalesforce1453@gmail.com', + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + Name: 'tst', + Transformations: [], + }, + message: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + company: 'Initech', + address: { + city: 'east greenwich', + country: 'USA', + state: 'California', + street: '19123 forest lane', + postalCode: '94115', + }, + email: 'peter.gibbons@initech.com', + name: 'Peter Gibbons', + phone: '570-690-4150', + rating: 'Hot', + title: 'VP of Derp', + }, + messageId: 'f19c35da-e9de-4c6e-b6e5-9e60cccc12c8', + originalTimestamp: '2020-01-27T12:20:55.301Z', + receivedAt: '2020-01-27T17:50:58.657+05:30', + request_ip: '14.98.244.60', + sentAt: '2020-01-27T12:20:56.849Z', + timestamp: '2020-01-27T17:50:57.109+05:30', + type: 'identify', + userId: '1e7673da-9473-49c6-97f7-da848ecafa76', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + output: { + version: '1', + type: 'REST', + method: 'POST', + userId: '', + endpoint: 'https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead', + headers: { + 'Content-Type': 'application/json', + Authorization: + 'Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY', + }, + params: {}, + body: { + JSON: { + Email: 'peter.gibbons@initech.com', + Phone: '570-690-4150', + Rating: 'Hot', + Title: 'VP of Derp', + FirstName: 'Peter', + LastName: 'Gibbons', + PostalCode: '94115', + City: 'east greenwich', + Country: 'USA', + State: 'California', + Street: '19123 forest lane', + Company: 'Initech', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + }, + ], + }, + }, + }, + { + name: 'salesforce', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + initialAccessToken: 'dummyInitialAccessToken', + password: 'dummyPassword1', + userName: 'testsalesforce1453@gmail.com', + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + Name: 'tst', + Transformations: [], + }, + message: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + company: 'Initech', + address: { + city: 'east greenwich', + country: 'USA', + state: 'California', + street: '19123 forest lane', + postalCode: '94115', + }, + email: 'peter.gibbons@initech.com', + name: 'Peter Gibbons', + phone: '570-690-4150', + rating: 'Hot', + title: 'VP of Derp', + LeadSource: 'RudderLabs', + }, + messageId: 'f19c35da-e9de-4c6e-b6e5-9e60cccc12c8', + originalTimestamp: '2020-01-27T12:20:55.301Z', + receivedAt: '2020-01-27T17:50:58.657+05:30', + request_ip: '14.98.244.60', + sentAt: '2020-01-27T12:20:56.849Z', + timestamp: '2020-01-27T17:50:57.109+05:30', + type: 'identify', + userId: '1e7673da-9473-49c6-97f7-da848ecafa76', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + output: { + version: '1', + type: 'REST', + userId: '', + method: 'POST', + endpoint: 'https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead', + headers: { + 'Content-Type': 'application/json', + Authorization: + 'Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY', + }, + params: {}, + body: { + JSON: { + Email: 'peter.gibbons@initech.com', + Phone: '570-690-4150', + Rating: 'Hot', + Title: 'VP of Derp', + FirstName: 'Peter', + LastName: 'Gibbons', + PostalCode: '94115', + City: 'east greenwich', + Country: 'USA', + State: 'California', + Street: '19123 forest lane', + Company: 'Initech', + LeadSource: 'RudderLabs', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + }, + ], + }, + }, + }, + { + name: 'salesforce', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + initialAccessToken: 'dummyInitialAccessToken', + password: 'dummyPassword1', + userName: 'testsalesforce1453@gmail.com', + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + Name: 'tst', + Transformations: [], + }, + message: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + company: 'Initech', + address: { + city: 'east greenwich', + country: 'USA', + state: 'California', + street: '19123 forest lane', + postalCode: '94115', + }, + email: 'peter.gibbons@initech.com', + name: 'Peter Gibbons', + phone: '570-690-4150', + rating: 'Hot', + title: 'VP of Derp', + LeadSource: 'RudderLabs', + }, + messageId: 'f19c35da-e9de-4c6e-b6e5-9e60cccc12c8', + originalTimestamp: '2020-01-27T12:20:55.301Z', + receivedAt: '2020-01-27T17:50:58.657+05:30', + request_ip: '14.98.244.60', + sentAt: '2020-01-27T12:20:56.849Z', + timestamp: '2020-01-27T17:50:57.109+05:30', + type: 'track', + userId: '1e7673da-9473-49c6-97f7-da848ecafa76', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'message type track is not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'SALESFORCE', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'salesforce', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + initialAccessToken: 'dummyInitialAccessToken', + password: 'dummyPassword1', + userName: 'testsalesforce1453@gmail.com', + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + Name: 'tst', + Transformations: [], + }, + message: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + company: 'Initech', + address: { + city: 'east greenwich', + country: 'USA', + state: 'California', + street: '19123 forest lane', + postalCode: '94115', + }, + email: 'peter.gibbons@initech.com', + name: 'Peter Gibbons', + phone: '570-690-4150', + rating: 'Hot', + title: 'VP of Derp', + LeadSource: 'RudderLabs', + customKey: 'customValue', + customNullValue: null, + }, + messageId: 'f19c35da-e9de-4c6e-b6e5-9e60cccc12c8', + originalTimestamp: '2020-01-27T12:20:55.301Z', + receivedAt: '2020-01-27T17:50:58.657+05:30', + request_ip: '14.98.244.60', + sentAt: '2020-01-27T12:20:56.849Z', + timestamp: '2020-01-27T17:50:57.109+05:30', + type: 'identify', + userId: '1e7673da-9473-49c6-97f7-da848ecafa76', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + output: { + userId: '', + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead', + headers: { + 'Content-Type': 'application/json', + Authorization: + 'Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY', + }, + params: {}, + body: { + JSON: { + Email: 'peter.gibbons@initech.com', + Phone: '570-690-4150', + Rating: 'Hot', + Title: 'VP of Derp', + FirstName: 'Peter', + LastName: 'Gibbons', + PostalCode: '94115', + City: 'east greenwich', + Country: 'USA', + State: 'California', + Street: '19123 forest lane', + Company: 'Initech', + LeadSource: 'RudderLabs', + customKey__c: 'customValue', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + }, + ], + }, + }, + }, + { + name: 'salesforce', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + initialAccessToken: 'dummyInitialAccessToken', + password: 'dummyPassword1', + userName: 'testsalesforce1453@gmail.com', + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + Name: 'tst', + Transformations: [], + }, + message: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + address: { + city: 'east greenwich', + country: 'USA', + state: 'California', + street: '19123 forest lane', + postalCode: '94115', + }, + email: 'peter.gibbons@initech.com', + phone: '570-690-4150', + rating: 'Hot', + title: 'VP of Derp', + LeadSource: 'RudderLabs', + customKey: 'customValue', + customNullValue: null, + }, + messageId: 'f19c35da-e9de-4c6e-b6e5-9e60cccc12c8', + originalTimestamp: '2020-01-27T12:20:55.301Z', + receivedAt: '2020-01-27T17:50:58.657+05:30', + request_ip: '14.98.244.60', + sentAt: '2020-01-27T12:20:56.849Z', + timestamp: '2020-01-27T17:50:57.109+05:30', + type: 'identify', + userId: '1e7673da-9473-49c6-97f7-da848ecafa76', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead', + headers: { + 'Content-Type': 'application/json', + Authorization: + 'Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY', + }, + params: {}, + body: { + JSON: { + Email: 'peter.gibbons@initech.com', + Phone: '570-690-4150', + Rating: 'Hot', + Title: 'VP of Derp', + PostalCode: '94115', + LastName: 'n/a', + City: 'east greenwich', + Country: 'USA', + State: 'California', + Street: '19123 forest lane', + Company: 'n/a', + LeadSource: 'RudderLabs', + customKey__c: 'customValue', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + }, + ], + }, + }, + }, + { + name: 'salesforce', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + initialAccessToken: 'dummyInitialAccessToken', + password: 'dummyPassword1', + userName: 'testsalesforce1453@gmail.com', + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + Name: 'tst', + Transformations: [], + }, + message: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + City: 'east greenwich', + Company: 'Initech', + Country: 'USA', + Email: 'peter.gibbons@initech.com', + FirstName: 'Peter', + LastName: 'Gibbons', + Phone: '570-690-4150', + PostalCode: '94115', + Rating: 'Hot', + State: 'California', + Street: '19123 forest lane', + Title: 'VP of Derp', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', + externalId: [ + { + type: 'Salesforce-Contact', + id: 'sf-contact-id', + }, + ], + }, + integrations: { + All: true, + }, + messageId: 'f19c35da-e9de-4c6e-b6e5-9e60cccc12c8', + originalTimestamp: '2020-01-27T12:20:55.301Z', + receivedAt: '2020-01-27T17:50:58.657+05:30', + request_ip: '14.98.244.60', + sentAt: '2020-01-27T12:20:56.849Z', + timestamp: '2020-01-27T17:50:57.109+05:30', + type: 'identify', + userId: '1e7673da-9473-49c6-97f7-da848ecafa76', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://ap15.salesforce.com/services/data/v50.0/sobjects/Contact/sf-contact-id?_HttpMethod=PATCH', + headers: { + 'Content-Type': 'application/json', + Authorization: + 'Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY', + }, + params: {}, + body: { + JSON: { + Email__c: 'peter.gibbons@initech.com', + Phone__c: '570-690-4150', + Rating__c: 'Hot', + Title__c: 'VP of Derp', + FirstName__c: 'Peter', + LastName: 'n/a', + LastName__c: 'Gibbons', + PostalCode__c: '94115', + City__c: 'east greenwich', + Country__c: 'USA', + State__c: 'California', + Street__c: '19123 forest lane', + Company__c: 'Initech', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + }, + ], + }, + }, + }, + { + name: 'salesforce', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + initialAccessToken: 'dummyInitialAccessToken', + password: 'dummyPassword1', + userName: 'testsalesforce1453@gmail.com', + mapProperty: false, + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + Name: 'tst', + Transformations: [], + }, + message: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + Phone: '570-690-4150', + Rating: 'Hot', + Title: 'VP of Derp', + FirstName: 'Peter', + LastName: 'Gibbons', + PostalCode: '94115', + City: 'east greenwich', + Country: 'USA', + State: 'California', + Street: '19123 forest lane', + Company: 'Initech', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', + externalId: [ + { + type: 'Salesforce-Lead', + id: 'sf-contact-id', + }, + ], + }, + integrations: { + All: true, + }, + messageId: 'f19c35da-e9de-4c6e-b6e5-9e60cccc12c8', + originalTimestamp: '2020-01-27T12:20:55.301Z', + receivedAt: '2020-01-27T17:50:58.657+05:30', + request_ip: '14.98.244.60', + sentAt: '2020-01-27T12:20:56.849Z', + timestamp: '2020-01-27T17:50:57.109+05:30', + type: 'identify', + userId: '1e7673da-9473-49c6-97f7-da848ecafa76', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead/sf-contact-id?_HttpMethod=PATCH', + headers: { + 'Content-Type': 'application/json', + Authorization: + 'Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY', + }, + params: {}, + userId: '', + body: { + JSON: { + Phone: '570-690-4150', + Rating: 'Hot', + Title: 'VP of Derp', + FirstName: 'Peter', + LastName: 'Gibbons', + PostalCode: '94115', + City: 'east greenwich', + Country: 'USA', + State: 'California', + Street: '19123 forest lane', + Company: 'Initech', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + }, + ], + }, + }, + }, + { + name: 'salesforce', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + initialAccessToken: '7fiy1FKcO9sohsxq1v6J88sg', + password: 'dummyPassword2', + userName: 'test.c97-qvpd@force.com.test', + sandbox: true, + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1ut7LcVW1QC56y2EoTNo7ZwBWSY', + Name: 'Test SF', + Transformations: [], + }, + message: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + company: 'Initech', + address: { + city: 'east greenwich', + country: 'USA', + state: 'California', + street: '19123 forest lane', + postalCode: '94115', + }, + email: 'peter.gibbons@initech.com', + name: 'Peter Gibbons', + phone: '570-690-4150', + rating: 'Hot', + title: 'VP of Derp', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'f19c35da-e9de-4c6e-b6e5-9e60cccc12c8', + originalTimestamp: '2020-01-27T12:20:55.301Z', + receivedAt: '2020-01-27T17:50:58.657+05:30', + request_ip: '14.98.244.60', + sentAt: '2020-01-27T12:20:56.849Z', + timestamp: '2020-01-27T17:50:57.109+05:30', + type: 'identify', + userId: '1e7673da-9473-49c6-97f7-da848ecafa76', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead', + headers: { + 'Content-Type': 'application/json', + Authorization: + 'Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY', + }, + params: {}, + body: { + JSON: { + Email: 'peter.gibbons@initech.com', + Phone: '570-690-4150', + Rating: 'Hot', + Title: 'VP of Derp', + FirstName: 'Peter', + LastName: 'Gibbons', + PostalCode: '94115', + City: 'east greenwich', + Country: 'USA', + State: 'California', + Street: '19123 forest lane', + Company: 'Initech', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + }, + ], + }, + }, + }, + { + name: 'salesforce', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + initialAccessToken: '7fiy1FKcO9sohsxq1v6J88sg', + password: 'dummyPassword2', + userName: 'test.c97-qvpd@force.com.test', + sandbox: true, + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1ut7LcVW1QC56y2EoTNo7ZwBWSY', + Name: 'Test SF', + Transformations: [], + }, + message: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + channel: 'web', + context: { + mappedToDestination: true, + externalId: [ + { + id: 'a005g0000383kmUAAQ', + type: 'SALESFORCE-custom_object__c', + identifierType: 'Id', + }, + ], + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + email: 'john@rs.com', + firstname: 'john doe', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'f19c35da-e9de-4c6e-b6e5-9e60cccc12c8', + originalTimestamp: '2020-01-27T12:20:55.301Z', + receivedAt: '2020-01-27T17:50:58.657+05:30', + request_ip: '14.98.244.60', + sentAt: '2020-01-27T12:20:56.849Z', + timestamp: '2020-01-27T17:50:57.109+05:30', + type: 'identify', + userId: '1e7673da-9473-49c6-97f7-da848ecafa76', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + output: { + userId: '', + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://ap15.salesforce.com/services/data/v50.0/sobjects/custom_object__c/a005g0000383kmUAAQ?_HttpMethod=PATCH', + headers: { + 'Content-Type': 'application/json', + Authorization: + 'Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY', + }, + params: {}, + body: { + JSON: { + email: 'john@rs.com', + firstname: 'john doe', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + }, + ], + }, + }, + }, + { + name: 'salesforce', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + initialAccessToken: '7fiy1FKcO9sohsxq1v6J88sg', + password: 'dummyPassword2', + userName: 'test.c97-qvpd@force.com.test', + sandbox: true, + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1ut7LcVW1QC56y2EoTNo7ZwBWSY', + Name: 'Test SF', + Transformations: [], + }, + message: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + channel: 'web', + context: { + mappedToDestination: true, + externalId: [ + { + id: 'a005g0000383kmUAAQ', + type: 'SALESFORCE-custom_object__c', + identifierType: 'Id', + }, + ], + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + email: 'john@rs.com', + firstname: 'john doe', + Id: 'some-id', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'f19c35da-e9de-4c6e-b6e5-9e60cccc12c8', + originalTimestamp: '2020-01-27T12:20:55.301Z', + receivedAt: '2020-01-27T17:50:58.657+05:30', + request_ip: '14.98.244.60', + sentAt: '2020-01-27T12:20:56.849Z', + timestamp: '2020-01-27T17:50:57.109+05:30', + type: 'identify', + userId: '1e7673da-9473-49c6-97f7-da848ecafa76', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://ap15.salesforce.com/services/data/v50.0/sobjects/custom_object__c/a005g0000383kmUAAQ?_HttpMethod=PATCH', + headers: { + 'Content-Type': 'application/json', + Authorization: + 'Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY', + }, + params: {}, + body: { + JSON: { + email: 'john@rs.com', + firstname: 'john doe', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + }, + ], + }, + }, + }, + { + name: 'salesforce', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + initialAccessToken: '7fiy1FKcO9sohsxq1v6J88sg', + password: 'dummyPassword2', + userName: 'test.c97-qvpd@force.com.test', + sandbox: true, + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1ut7LcVW1QC56y2EoTNo7ZwBWSY', + Name: 'Test SF', + Transformations: [], + }, + metadata: { + secret: { + access_token: 'dummyAccessToken', + instance_url: 'http://dummyurl.com', + }, + }, + message: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + channel: 'web', + context: { + mappedToDestination: true, + externalId: [ + { + id: 'a005g0000383kmUAAQ', + type: 'SALESFORCE-custom_object__c', + identifierType: 'Id', + }, + ], + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + email: 'john@rs.com', + firstname: 'john doe', + Id: 'some-id', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'f19c35da-e9de-4c6e-b6e5-9e60cccc12c8', + originalTimestamp: '2020-01-27T12:20:55.301Z', + receivedAt: '2020-01-27T17:50:58.657+05:30', + request_ip: '14.98.244.60', + sentAt: '2020-01-27T12:20:56.849Z', + timestamp: '2020-01-27T17:50:57.109+05:30', + type: 'identify', + userId: '1e7673da-9473-49c6-97f7-da848ecafa76', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + metadata: { + secret: { + access_token: 'dummyAccessToken', + instance_url: 'http://dummyurl.com', + }, + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'http://dummyurl.com/services/data/v50.0/sobjects/custom_object__c/a005g0000383kmUAAQ?_HttpMethod=PATCH', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer dummyAccessToken', + }, + params: {}, + body: { + JSON: { + email: 'john@rs.com', + firstname: 'john doe', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/salesforce/router/data.ts b/test/integrations/destinations/salesforce/router/data.ts new file mode 100644 index 00000000000..8c36d3a785f --- /dev/null +++ b/test/integrations/destinations/salesforce/router/data.ts @@ -0,0 +1,635 @@ +import { FEATURES } from '../../../../../src/v0/util/tags'; + +export const data = [ + { + name: 'salesforce', + description: 'Test 0', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + company: 'Initech', + address: { + city: 'east greenwich', + country: 'USA', + state: 'California', + street: '19123 forest lane', + postalCode: '94115', + }, + email: 'peter.gibbons@initech.com', + name: 'Peter Gibbons', + phone: '570-690-4150', + rating: 'Hot', + title: 'VP of Derp', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'f19c35da-e9de-4c6e-b6e5-9e60cccc12c8', + originalTimestamp: '2020-01-27T12:20:55.301Z', + receivedAt: '2020-01-27T17:50:58.657+05:30', + request_ip: '14.98.244.60', + sentAt: '2020-01-27T12:20:56.849Z', + timestamp: '2020-01-27T17:50:57.109+05:30', + type: 'identify', + userId: '1e7673da-9473-49c6-97f7-da848ecafa76', + }, + metadata: { + jobId: 1, + }, + destination: { + Config: { + initialAccessToken: 'dummyInitialAccessToken', + password: 'dummyPassword1', + userName: 'testsalesforce1453@gmail.com', + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + Name: 'tst', + Transformations: [], + }, + }, + ], + destType: 'salesforce', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead', + headers: { + 'Content-Type': 'application/json', + Authorization: + 'Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY', + }, + params: {}, + body: { + JSON: { + Email: 'peter.gibbons@initech.com', + Phone: '570-690-4150', + Rating: 'Hot', + Title: 'VP of Derp', + FirstName: 'Peter', + LastName: 'Gibbons', + PostalCode: '94115', + City: 'east greenwich', + Country: 'USA', + State: 'California', + Street: '19123 forest lane', + Company: 'Initech', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + destInfo: { + authKey: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + }, + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + initialAccessToken: 'dummyInitialAccessToken', + password: 'dummyPassword1', + userName: 'testsalesforce1453@gmail.com', + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + Name: 'tst', + Transformations: [], + }, + }, + ], + }, + }, + }, + }, + { + name: 'salesforce', + description: 'Test 1', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + traits: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + company: 'Initech', + address: { + city: 'east greenwich', + country: 'USA', + state: 'California', + street: '19123 forest lane', + postalCode: '94115', + }, + email: 'ddv_ua+{{1234*245}}@bugFix.com', + name: 'Peter Gibbons', + phone: '570-690-4150', + rating: 'Hot', + title: 'VP of Derp', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: 'f19c35da-e9de-4c6e-b6e5-9e60cccc12c8', + originalTimestamp: '2020-01-27T12:20:55.301Z', + receivedAt: '2020-01-27T17:50:58.657+05:30', + request_ip: '14.98.244.60', + sentAt: '2020-01-27T12:20:56.849Z', + timestamp: '2020-01-27T17:50:57.109+05:30', + type: 'identify', + userId: '1e7673da-9473-49c6-97f7-da848ecafa76', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + initialAccessToken: 'dummyInitialAccessToken', + password: 'dummyPassword1', + userName: 'testsalesforce1453@gmail.com', + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + Name: 'tst', + Transformations: [], + }, + }, + ], + destType: 'salesforce', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead/leadId?_HttpMethod=PATCH', + headers: { + 'Content-Type': 'application/json', + Authorization: + 'Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY', + }, + params: {}, + body: { + JSON: { + Email: 'ddv_ua+{{1234*245}}@bugFix.com', + Phone: '570-690-4150', + Rating: 'Hot', + Title: 'VP of Derp', + FirstName: 'Peter', + LastName: 'Gibbons', + PostalCode: '94115', + City: 'east greenwich', + Country: 'USA', + State: 'California', + Street: '19123 forest lane', + Company: 'Initech', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + destInfo: { + authKey: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + }, + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + initialAccessToken: 'dummyInitialAccessToken', + password: 'dummyPassword1', + userName: 'testsalesforce1453@gmail.com', + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + Name: 'tst', + Transformations: [], + }, + }, + ], + }, + }, + }, + }, + { + name: 'salesforce', + description: 'Test 2', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + ip: '0.0.0.0', + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36', + }, + integrations: { + All: true, + }, + traits: { + anonymousId: '1e7673da-9473-49c6-97f7-da848ecafa76', + company: 'Initech', + address: { + city: 'east greenwich', + country: 'USA', + state: 'California', + street: '19123 forest lane', + postalCode: '94115', + }, + email: 'peter.gibbons@initech.com', + name: 'Peter Gibbons', + phone: '570-690-4150', + rating: 'Hot', + title: 'VP of Derp', + }, + messageId: 'f19c35da-e9de-4c6e-b6e5-9e60cccc12c8', + originalTimestamp: '2020-01-27T12:20:55.301Z', + receivedAt: '2020-01-27T17:50:58.657+05:30', + request_ip: '14.98.244.60', + sentAt: '2020-01-27T12:20:56.849Z', + timestamp: '2020-01-27T17:50:57.109+05:30', + type: 'identify', + userId: '1e7673da-9473-49c6-97f7-da848ecafa76', + }, + metadata: { + jobId: 3, + }, + destination: { + Config: { + initialAccessToken: 'dummyInitialAccessToken', + password: 'dummyPassword1', + userName: 'testsalesforce1453@gmail.com', + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + Name: 'tst', + Transformations: [], + }, + }, + ], + destType: 'salesforce', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead', + headers: { + 'Content-Type': 'application/json', + Authorization: + 'Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY', + }, + params: {}, + body: { + JSON: { + Email: 'peter.gibbons@initech.com', + Phone: '570-690-4150', + Rating: 'Hot', + Title: 'VP of Derp', + FirstName: 'Peter', + LastName: 'Gibbons', + PostalCode: '94115', + City: 'east greenwich', + Country: 'USA', + State: 'California', + Street: '19123 forest lane', + Company: 'Initech', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + destInfo: { + authKey: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + }, + jobId: 3, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + initialAccessToken: 'dummyInitialAccessToken', + password: 'dummyPassword1', + userName: 'testsalesforce1453@gmail.com', + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + Name: 'tst', + Transformations: [], + }, + }, + ], + }, + }, + }, + }, + { + name: 'salesforce', + description: 'Test 3', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead', + headers: { + 'Content-Type': 'application/json', + Authorization: + 'Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY', + }, + params: {}, + body: { + JSON: { + Email: 'peter.gibbons@initech.com', + Phone: '570-690-4150', + Rating: 'Hot', + Title: 'VP of Derp', + FirstName: 'Peter', + LastName: 'Gibbons', + PostalCode: '94115', + City: 'east greenwich', + Country: 'USA', + State: 'California', + Street: '19123 forest lane', + Company: 'Initech', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + statusCode: 200, + }, + metadata: { + jobId: 4, + }, + destination: { + Config: { + initialAccessToken: 'dummyInitialAccessToken', + password: 'dummyPassword1', + userName: 'testsalesforce1453@gmail.com', + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + Name: 'tst', + Transformations: [], + }, + }, + ], + destType: 'salesforce', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ap15.salesforce.com/services/data/v50.0/sobjects/Lead', + headers: { + 'Content-Type': 'application/json', + Authorization: + 'Bearer 00D2v000002lXbX!ARcAQJBSGNA1Rq.MbUdtmlREscrN_nO3ckBz6kc4jRQGxqAzNkhT1XZIF0yPqyCQSnezWO3osMw1ewpjToO7q41E9.LvedWY', + }, + params: {}, + body: { + JSON: { + Email: 'peter.gibbons@initech.com', + Phone: '570-690-4150', + Rating: 'Hot', + Title: 'VP of Derp', + FirstName: 'Peter', + LastName: 'Gibbons', + PostalCode: '94115', + City: 'east greenwich', + Country: 'USA', + State: 'California', + Street: '19123 forest lane', + Company: 'Initech', + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + statusCode: 200, + }, + metadata: [ + { + destInfo: { + authKey: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + }, + jobId: 4, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + initialAccessToken: 'dummyInitialAccessToken', + password: 'dummyPassword1', + userName: 'testsalesforce1453@gmail.com', + }, + DestinationDefinition: { + DisplayName: 'Salesforce', + ID: '1T96GHZ0YZ1qQSLULHCoJkow9KC', + Name: 'SALESFORCE', + }, + Enabled: true, + ID: '1WqFFH5esuVPnUgHkvEoYxDcX3y', + Name: 'tst', + Transformations: [], + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/segment/processor/data.ts b/test/integrations/destinations/segment/processor/data.ts new file mode 100644 index 00000000000..0a140e2b998 --- /dev/null +++ b/test/integrations/destinations/segment/processor/data.ts @@ -0,0 +1,670 @@ +export const data = [ + { + "name": "segment", + "description": "Test 0", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "ID": "1afmecIpsJm7D72aRTksxyODrwR", + "Name": "Segment", + "DestinationDefinition": { + "ID": "1afjjahf0X5lSyNze7Xh7aqJs11", + "Name": "SEGMENT", + "DisplayName": "Segment", + "Config": { + "excludeKeys": [], + "includeKeys": [] + } + }, + "Config": { + "writeKey": "abcdefghijklmnopqrstuvwxyz" + }, + "Enabled": true, + "Transformations": [], + "IsProcessorEnabled": true + }, + "message": { + "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.1-rc.2" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.1-rc.2" + }, + "locale": "en-GB", + "os": { + "name": "", + "version": "" + }, + "page": { + "path": "/tests/html/index4.html", + "referrer": "", + "search": "", + "title": "", + "url": "http://localhost/tests/html/index4.html" + }, + "screen": { + "density": 2 + }, + "traits": { + "age": 23, + "email": "testmp@rudderstack.com", + "firstname": "Test Kafka" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" + }, + "integrations": { + "All": true + }, + "messageId": "258b77c6-442d-4bdc-8729-f0e4cef41353", + "name": "home", + "originalTimestamp": "2020-04-17T14:55:31.367Z", + "properties": { + "path": "/tests/html/index4.html", + "referrer": "", + "search": "", + "title": "", + "url": "http://localhost/tests/html/index4.html" + }, + "receivedAt": "2020-04-17T20:25:31.381+05:30", + "request_ip": "[::1]:57363", + "sentAt": "2020-04-17T14:55:31.367Z", + "timestamp": "2020-04-17T20:25:31.381+05:30", + "type": "page", + "userId": "user12345" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "userId": "user12345", + "endpoint": "https://api.segment.io/v1/batch", + "headers": { + "Content-Type": "application/json", + "Authorization": "Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6" + }, + "params": {}, + "body": { + "JSON": { + "batch": [ + { + "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", + "type": "page", + "userId": "user12345", + "traits": { + "age": 23, + "email": "testmp@rudderstack.com", + "firstname": "Test Kafka" + }, + "properties": { + "path": "/tests/html/index4.html", + "referrer": "", + "search": "", + "title": "", + "url": "http://localhost/tests/html/index4.html" + }, + "timeStamp": "2020-04-17T20:25:31.381+05:30" + } + ] + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "statusCode": 200 + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "segment", + "description": "Test 1", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "ID": "1afmecIpsJm7D72aRTksxyODrwR", + "Name": "Segment", + "DestinationDefinition": { + "ID": "1afjjahf0X5lSyNze7Xh7aqJs11", + "Name": "SEGMENT", + "DisplayName": "Segment", + "Config": { + "excludeKeys": [], + "includeKeys": [] + } + }, + "Config": { + "writeKey": "abcdefghijklmnopqrstuvwxyz" + }, + "Enabled": true, + "Transformations": [], + "IsProcessorEnabled": true + }, + "message": { + "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.1-rc.2" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.1-rc.2" + }, + "locale": "en-GB", + "os": { + "name": "", + "version": "" + }, + "page": { + "path": "/tests/html/index4.html", + "referrer": "", + "search": "", + "title": "", + "url": "http://localhost/tests/html/index4.html" + }, + "screen": { + "density": 2 + }, + "traits": { + "age": 23, + "email": "testmp@email.com", + "firstname": "Test Transformer" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" + }, + "integrations": { + "All": true + }, + "messageId": "023a3a48-190a-4968-9394-a8e99b81a3c0", + "originalTimestamp": "2020-04-17T14:55:31.37Z", + "receivedAt": "2020-04-17T20:25:31.401+05:30", + "request_ip": "[::1]:57364", + "sentAt": "2020-04-17T14:55:31.37Z", + "timestamp": "2020-04-17T20:25:31.401+05:30", + "type": "identify", + "userId": "user12345" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "userId": "user12345", + "method": "POST", + "endpoint": "https://api.segment.io/v1/batch", + "headers": { + "Content-Type": "application/json", + "Authorization": "Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6" + }, + "params": {}, + "body": { + "JSON": { + "batch": [ + { + "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", + "type": "identify", + "userId": "user12345", + "traits": { + "age": 23, + "email": "testmp@email.com", + "firstname": "Test Transformer" + }, + "timeStamp": "2020-04-17T20:25:31.401+05:30" + } + ] + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "statusCode": 200 + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "segment", + "description": "Test 2", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "ID": "1afmecIpsJm7D72aRTksxyODrwR", + "Name": "Segment", + "DestinationDefinition": { + "ID": "1afjjahf0X5lSyNze7Xh7aqJs11", + "Name": "SEGMENT", + "DisplayName": "Segment", + "Config": { + "excludeKeys": [], + "includeKeys": [] + } + }, + "Config": { + "writeKey": "abcdefghijklmnopqrstuvwxyz" + }, + "Enabled": true, + "Transformations": [], + "IsProcessorEnabled": true + }, + "message": { + "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.1-rc.2" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.1-rc.2" + }, + "locale": "en-GB", + "os": { + "name": "", + "version": "" + }, + "page": { + "path": "/tests/html/index4.html", + "referrer": "", + "search": "", + "title": "", + "url": "http://localhost/tests/html/index4.html" + }, + "screen": { + "density": 2 + }, + "traits": { + "age": 23, + "email": "testmp@email.com", + "firstname": "Test Transformer" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" + }, + "event": "test track with property", + "integrations": { + "All": true + }, + "messageId": "584fde02-901a-4964-a4a0-4078b999d5b2", + "originalTimestamp": "2020-04-17T14:55:31.372Z", + "properties": { + "test_prop_1": "test prop", + "test_prop_2": 1232 + }, + "receivedAt": "2020-04-17T20:25:31.401+05:30", + "request_ip": "[::1]:57365", + "sentAt": "2020-04-17T14:55:31.372Z", + "timestamp": "2020-04-17T20:25:31.401+05:30", + "type": "track", + "userId": "user12345" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "userId": "user12345", + "method": "POST", + "endpoint": "https://api.segment.io/v1/batch", + "headers": { + "Content-Type": "application/json", + "Authorization": "Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6" + }, + "params": {}, + "body": { + "JSON": { + "batch": [ + { + "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", + "type": "track", + "userId": "user12345", + "event": "test track with property", + "traits": { + "age": 23, + "email": "testmp@email.com", + "firstname": "Test Transformer" + }, + "properties": { + "test_prop_1": "test prop", + "test_prop_2": 1232 + }, + "timeStamp": "2020-04-17T20:25:31.401+05:30" + } + ] + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "statusCode": 200 + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "segment", + "description": "Test 3", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "ID": "1afmecIpsJm7D72aRTksxyODrwR", + "Name": "Segment", + "DestinationDefinition": { + "ID": "1afjjahf0X5lSyNze7Xh7aqJs11", + "Name": "SEGMENT", + "DisplayName": "Segment", + "Config": { + "excludeKeys": [], + "includeKeys": [] + } + }, + "Config": { + "writeKey": "abcdefghijklmnopqrstuvwxyz" + }, + "Enabled": true, + "Transformations": [], + "IsProcessorEnabled": true + }, + "message": { + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.1-rc.2" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.1-rc.2" + }, + "locale": "en-GB", + "os": { + "name": "", + "version": "" + }, + "page": { + "path": "/tests/html/index4.html", + "referrer": "", + "search": "", + "title": "", + "url": "http://localhost/tests/html/index4.html" + }, + "screen": { + "density": 2 + }, + "traits": { + "age": 23, + "email": "testmp@rudderstack.com", + "firstname": "Test Kafka" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" + }, + "integrations": { + "All": true + }, + "messageId": "258b77c6-442d-4bdc-8729-f0e4cef41353", + "name": "home", + "originalTimestamp": "2020-04-17T14:55:31.367Z", + "properties": { + "path": "/tests/html/index4.html", + "referrer": "", + "search": "", + "title": "", + "url": "http://localhost/tests/html/index4.html" + }, + "receivedAt": "2020-04-17T20:25:31.381+05:30", + "request_ip": "[::1]:57363", + "sentAt": "2020-04-17T14:55:31.367Z", + "timestamp": "2020-04-17T20:25:31.381+05:30", + "type": "page", + "userId": "user12345" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.segment.io/v1/batch", + "headers": { + "Content-Type": "application/json", + "Authorization": "Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6" + }, + "params": {}, + "body": { + "JSON": { + "batch": [ + { + "type": "page", + "userId": "user12345", + "traits": { + "age": 23, + "email": "testmp@rudderstack.com", + "firstname": "Test Kafka" + }, + "properties": { + "path": "/tests/html/index4.html", + "referrer": "", + "search": "", + "title": "", + "url": "http://localhost/tests/html/index4.html" + }, + "timeStamp": "2020-04-17T20:25:31.381+05:30" + } + ] + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "user12345", + "statusCode": 200 + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "segment", + "description": "Test 4", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "ID": "1afmecIpsJm7D72aRTksxyODrwR", + "Name": "Segment", + "DestinationDefinition": { + "ID": "1afjjahf0X5lSyNze7Xh7aqJs11", + "Name": "SEGMENT", + "DisplayName": "Segment", + "Config": { + "excludeKeys": [], + "includeKeys": [] + } + }, + "Config": { + "writeKey": "abcdefghijklmnopqrstuvwxyz" + }, + "Enabled": true, + "Transformations": [], + "IsProcessorEnabled": true + }, + "message": { + "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.1-rc.2" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.1-rc.2" + }, + "locale": "en-GB", + "os": { + "name": "", + "version": "" + }, + "page": { + "path": "/tests/html/index4.html", + "referrer": "", + "search": "", + "title": "", + "url": "http://localhost/tests/html/index4.html" + }, + "screen": { + "density": 2 + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" + }, + "event": "test track with property", + "integrations": { + "All": true + }, + "messageId": "584fde02-901a-4964-a4a0-4078b999d5b2", + "originalTimestamp": "2020-04-17T14:55:31.372Z", + "properties": { + "test_prop_1": "test prop", + "test_prop_2": 1232 + }, + "receivedAt": "2020-04-17T20:25:31.401+05:30", + "request_ip": "[::1]:57365", + "sentAt": "2020-04-17T14:55:31.372Z", + "timestamp": "2020-04-17T20:25:31.401+05:30", + "type": "track", + "userId": "user12345" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.segment.io/v1/batch", + "headers": { + "Content-Type": "application/json", + "Authorization": "Basic YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo6" + }, + "params": {}, + "body": { + "JSON": { + "batch": [ + { + "anonymousId": "ac7722c2-ccb6-4ae2-baf6-1effe861f4cd", + "type": "track", + "userId": "user12345", + "event": "test track with property", + "properties": { + "test_prop_1": "test prop", + "test_prop_2": 1232 + }, + "timeStamp": "2020-04-17T20:25:31.401+05:30" + } + ] + }, + "XML": {}, + "JSON_ARRAY": {}, + "FORM": {} + }, + "files": {}, + "userId": "user12345", + "statusCode": 200 + }, + "statusCode": 200 + } + ] + } + } + } +] \ No newline at end of file diff --git a/test/integrations/destinations/sendgrid/deleteUsers/data.ts b/test/integrations/destinations/sendgrid/deleteUsers/data.ts new file mode 100644 index 00000000000..85c6e1275f1 --- /dev/null +++ b/test/integrations/destinations/sendgrid/deleteUsers/data.ts @@ -0,0 +1,1275 @@ +export const data = [ + { + name: 'sendgrid', + description: 'Test 0', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'SENDGRID', + userAttributes: [ + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + ], + config: { + apiKey: '1234', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + }, + { + name: 'sendgrid', + description: 'Test 1', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'SENDGRID', + userAttributes: [ + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + ], + config: { + apiKey: '1234', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, + { + name: 'sendgrid', + description: 'Test 2', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'SENDGRID', + userAttributes: [ + { + userId: 'eab57ccf-6322-498e-9338-7761c6dc0656', + }, + { + userId: '47983ca9-7cc6-4942-8ff0-ac443g95658d', + }, + ], + config: {}, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'apiKey is required for deleting user', + }, + ], + }, + }, + }, + { + name: 'sendgrid', + description: 'Test 3', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'SENDGRID', + userAttributes: { + userId: 'eab57ccf-6322-498e-9338-7761c6dc0656', + }, + config: { + apiKey: '1234', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'userAttributes is not an array', + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/sendgrid/network.ts b/test/integrations/destinations/sendgrid/network.ts new file mode 100644 index 00000000000..18a8a8d34d9 --- /dev/null +++ b/test/integrations/destinations/sendgrid/network.ts @@ -0,0 +1,110 @@ +const deleteNwData = [ + { + httpReq: { + method: 'delete', + url: 'https://api.sendgrid.com/v3/marketing/contacts?ids=test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + headers: { + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + message: { + job_id: 'bb33b1f9-e7d6-4a6c-bf1c-a2143275e257', + }, + }, + }, + }, + { + httpReq: { + method: 'delete', + url: 'https://api.sendgrid.com/v3/marketing/contacts?ids=user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + headers: { + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + data: { + code: 400, + message: 'Bad Req', + status: 'Fail Case', + }, + status: 400, + }, + }, + { + httpReq: { + method: 'delete', + url: 'https://api.sendgrid.com/v3/marketing/contacts?ids=[user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2]', + headers: { + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': { + job_id: 'bb33b1f9-e7d6-4a6c-bf1c-a2143275e257', + }, + }, + }, + }, + { + httpReq: { + method: 'delete', + url: 'https://api.sendgrid.com/v3/marketing/contacts?ids=[user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2]', + headers: { + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + message: { + job_id: 'bb33b1f9-e7d6-4a6c-bf1c-a2143275e257', + }, + }, + }, + }, + { + httpReq: { + method: 'delete', + url: 'https://api.sendgrid.com/v3/marketing/contacts?ids=test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + headers: { + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': { + job_id: 'bb33b1f9-e7d6-4a6c-bf1c-a2143275e257', + }, + }, + }, + }, + { + httpReq: { + method: 'delete', + url: 'https://api.sendgrid.com/v3/marketing/contacts?ids=user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + headers: { + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': { + job_id: 'bb33b1f9-e7d6-4a6c-bf1c-a2143275e257', + }, + }, + }, + }, +]; +export const networkCallsData = [...deleteNwData]; diff --git a/test/integrations/destinations/serenytics/processor/data.ts b/test/integrations/destinations/serenytics/processor/data.ts index 511ec132aba..74dcfdf3fdf 100644 --- a/test/integrations/destinations/serenytics/processor/data.ts +++ b/test/integrations/destinations/serenytics/processor/data.ts @@ -1493,7 +1493,7 @@ export const data = [ traits: { name: 'Shehan Study', category: 'SampleIdentify', - email: 'chandra+r@rudderlabs.com', + email: 'test@rudderstack.com', plan: 'Open source', logins: 5, createdAt: 1599264000, @@ -1587,7 +1587,7 @@ export const data = [ traits: { name: 'Shehan Study', category: 'SampleIdentify', - email: 'chandra+r@rudderlabs.com', + email: 'test@rudderstack.com', plan: 'Open source', logins: 5, createdAt: 1599264000, @@ -1669,7 +1669,7 @@ export const data = [ timestamp: '2020-10-20T08:14:28.778Z', trait_city: 'Disney', trait_country: 'USA', - trait_email: 'chandra+r@rudderlabs.com', + trait_email: 'test@rudderstack.com', trait_firstname: 'Mickey', trait_name: 'Shehan Study', trait_category: 'SampleIdentify', diff --git a/test/integrations/destinations/shynet/processor/data.ts b/test/integrations/destinations/shynet/processor/data.ts new file mode 100644 index 00000000000..b3485bc8d52 --- /dev/null +++ b/test/integrations/destinations/shynet/processor/data.ts @@ -0,0 +1,218 @@ +export const data = [ + { + name: 'shynet', + description: 'Test 0: Page Call', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + shynetServiceUrl: + 'https://9710-103-211-12-1.in.ngrok.io/ingress/5b3470a9-be69-4298-9ec1-3fe3f483738c/script.js', + heartBeat: 5000, + }, + }, + message: { + type: 'page', + sentAt: '2022-08-22T13:39:21.034Z', + channel: 'web', + context: { + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/test/ourSdk.html', + path: '/Testing/test/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/test/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/test/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + email: '12312@!fma', + city: 'Pune', + revenue: 93889, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + anonymousId: 'bf412108-0357-4330-b119-7305e767823c', + messageId: 'bf412108-0357-4330-b119-7305e767823r', + integrations: { + All: true, + }, + originalTimestamp: '2022-08-22T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + FORM: {}, + JSON: { + location: 'http://127.0.0.1:7307/Testing/test/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/test/', + idempotency: 'bf412108-0357-4330-b119-7305e767823r', + }, + JSON_ARRAY: {}, + }, + type: 'REST', + files: {}, + userId: '', + method: 'POST', + params: {}, + headers: { + 'Content-Type': 'application/json', + }, + version: '1', + endpoint: + 'https://9710-103-211-12-1.in.ngrok.io/ingress/5b3470a9-be69-4298-9ec1-3fe3f483738c/script.js', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'shynet', + description: 'Test 1: Page Call without heartBeat Mentioned', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + shynetServiceUrl: + 'https://9710-103-211-12-1.in.ngrok.io/ingress/5b3470a9-be69-4298-9ec1-3fe3f483738c/script.js', + }, + }, + message: { + type: 'page', + sentAt: '2022-08-22T13:39:21.034Z', + channel: 'web', + context: { + app: { + name: 'RudderLabs JavaScript SDK', + build: '1.0.0', + version: '1.2.20', + namespace: 'com.rudderlabs.javascript', + }, + page: { + url: 'http://127.0.0.1:7307/Testing/test/ourSdk.html', + path: '/Testing/test/ourSdk.html', + title: 'Document', + search: '', + tab_url: 'http://127.0.0.1:7307/Testing/test/ourSdk.html', + referrer: 'http://127.0.0.1:7307/Testing/test/', + initial_referrer: '$direct', + referring_domain: '127.0.0.1:7307', + initial_referring_domain: '', + loadTime: 45, + }, + locale: 'en-US', + screen: { + width: 1440, + height: 900, + density: 2, + innerWidth: 536, + innerHeight: 689, + }, + traits: { + email: '12312@!fma', + city: 'Pune', + revenue: 93889, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.2.20', + }, + campaign: {}, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', + }, + properties: { + loadTime: 45, + }, + rudderId: '553b5522-c575-40a7-8072-9741c5f9a647', + anonymousId: '675467tfhjgjhfcghjc', + messageId: 'bf412108-0357-4330-b119-7305e767823r', + integrations: { + All: true, + }, + originalTimestamp: '2022-08-22T13:39:21.032Z', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://9710-103-211-12-1.in.ngrok.io/ingress/5b3470a9-be69-4298-9ec1-3fe3f483738c/script.js', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + loadTime: 45, + referrer: 'http://127.0.0.1:7307/Testing/test/', + location: 'http://127.0.0.1:7307/Testing/test/ourSdk.html', + idempotency: 'bf412108-0357-4330-b119-7305e767823r', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/signl4/processor/data.ts b/test/integrations/destinations/signl4/processor/data.ts index 72d9f439517..11dc6fbadb6 100644 --- a/test/integrations/destinations/signl4/processor/data.ts +++ b/test/integrations/destinations/signl4/processor/data.ts @@ -37,7 +37,7 @@ export const data = [ }, destination: { Config: { - apiKey: 't1yurrb968zk', + apiKey: 'dummyApiKey', s4ServiceValue: 'service', s4ServiceProperty: '', s4LocationValue: '67.3, 32.3', @@ -66,7 +66,7 @@ export const data = [ version: '1', type: 'REST', method: 'POST', - endpoint: 'https://connect.signl4.com/webhook/t1yurrb968zk', + endpoint: 'https://connect.signl4.com/webhook/dummyApiKey', headers: { 'Content-Type': 'application/json' }, params: {}, body: { @@ -132,7 +132,7 @@ export const data = [ }, destination: { Config: { - apiKey: 't1yurrb968zk', + apiKey: 'dummyApiKey', s4ServiceValue: 'service', s4ServiceProperty: '', s4LocationValue: '67.3, 32.3', @@ -161,7 +161,7 @@ export const data = [ version: '1', type: 'REST', method: 'POST', - endpoint: 'https://connect.signl4.com/webhook/t1yurrb968zk', + endpoint: 'https://connect.signl4.com/webhook/dummyApiKey', headers: { 'Content-Type': 'application/json' }, params: {}, body: { @@ -236,7 +236,7 @@ export const data = [ }, destination: { Config: { - apiKey: 't1yurrb968zk', + apiKey: 'dummyApiKey', s4ServiceValue: '', s4ServiceProperty: 's4Service', s4LocationValue: '', @@ -265,7 +265,7 @@ export const data = [ version: '1', type: 'REST', method: 'POST', - endpoint: 'https://connect.signl4.com/webhook/t1yurrb968zk', + endpoint: 'https://connect.signl4.com/webhook/dummyApiKey', headers: { 'Content-Type': 'application/json' }, params: {}, body: { @@ -340,7 +340,7 @@ export const data = [ }, destination: { Config: { - apiKey: 't1yurrb968zk', + apiKey: 'dummyApiKey', s4ServiceValue: 'defaultServiceValue', s4ServiceProperty: 's4Service', s4LocationValue: 'defaultLocationValue', @@ -369,7 +369,7 @@ export const data = [ version: '1', type: 'REST', method: 'POST', - endpoint: 'https://connect.signl4.com/webhook/t1yurrb968zk', + endpoint: 'https://connect.signl4.com/webhook/dummyApiKey', headers: { 'Content-Type': 'application/json' }, params: {}, body: { @@ -435,7 +435,7 @@ export const data = [ }, destination: { Config: { - apiKey: 't1yurrb968zk', + apiKey: 'dummyApiKey', s4ServiceValue: 'service', s4ServiceProperty: '', s4LocationValue: '67.3, 32.3', @@ -591,7 +591,7 @@ export const data = [ }, destination: { Config: { - apiKey: 'urissi44sfgs', + apiKey: 'dummyApiKey', s4ServiceValue: 'service', s4ServiceProperty: '', s4LocationValue: '67.3, 32.3', @@ -669,7 +669,7 @@ export const data = [ }, destination: { Config: { - apiKey: 'urissi44sfgs', + apiKey: 'dummyApiKey', s4ServiceValue: 'service', s4ServiceProperty: '', s4LocationValue: '67.3, 32.3', diff --git a/test/integrations/destinations/signl4/router/data.ts b/test/integrations/destinations/signl4/router/data.ts index 81f4c247b7f..582c02e26d8 100644 --- a/test/integrations/destinations/signl4/router/data.ts +++ b/test/integrations/destinations/signl4/router/data.ts @@ -12,7 +12,7 @@ export const data = [ { destination: { Config: { - apiKey: 't1yurrb968zk', + apiKey: 'dummyApiKey', s4ServiceValue: 'service', s4ServiceProperty: '', s4LocationValue: '67.3, 32.3', @@ -85,7 +85,7 @@ export const data = [ version: '1', type: 'REST', method: 'POST', - endpoint: 'https://connect.signl4.com/webhook/t1yurrb968zk', + endpoint: 'https://connect.signl4.com/webhook/dummyApiKey', headers: { 'Content-Type': 'application/json', }, @@ -117,7 +117,7 @@ export const data = [ statusCode: 200, destination: { Config: { - apiKey: 't1yurrb968zk', + apiKey: 'dummyApiKey', s4ServiceValue: 'service', s4ServiceProperty: '', s4LocationValue: '67.3, 32.3', @@ -151,7 +151,7 @@ export const data = [ { destination: { Config: { - apiKey: 'urissi44sfgs', + apiKey: 'dummyApiKey', s4ServiceValue: 'service', s4ServiceProperty: '', s4LocationValue: '67.3, 32.3', @@ -227,7 +227,7 @@ export const data = [ { destination: { Config: { - apiKey: 'urissi44sfgs', + apiKey: 'dummyApiKey', s4ServiceValue: 'service', s4ServiceProperty: '', s4LocationValue: '67.3, 32.3', diff --git a/test/integrations/destinations/singular/processor/data.ts b/test/integrations/destinations/singular/processor/data.ts index 4df6dda327f..22c075fffc5 100644 --- a/test/integrations/destinations/singular/processor/data.ts +++ b/test/integrations/destinations/singular/processor/data.ts @@ -11,7 +11,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent' }, { sessionEventName: 'randomuser' }, @@ -40,7 +40,7 @@ export const data = [ attStatus: true, id: 'fc8d449516de0dfb', adTrackingEnabled: true, - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', @@ -74,7 +74,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: [ { @@ -127,7 +127,7 @@ export const data = [ n: 'RudderAndroidClient', utime: 1630511211, cn: 'Android', - fcm: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + fcm: 'testDeviceToken', bd: '1', install: 'SM-G935F', aifa: '8ecd7512-2864-440c-93f3-a3cabe62525b', @@ -135,7 +135,7 @@ export const data = [ install_time: 1630511211, update_time: 1630511211, ua: 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', - a: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + a: 'dummyApiKey', }, body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, @@ -159,7 +159,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent' }, { sessionEventName: 'randomuser' }, @@ -188,7 +188,7 @@ export const data = [ attStatus: true, id: 'fc8d449516de0dfb', adTrackingEnabled: true, - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', @@ -222,7 +222,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: [ { @@ -273,7 +273,7 @@ export const data = [ receipt_signature: '1234dfghnh', purchase_product_id: '789', c: 'wifi', - a: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + a: 'dummyApiKey', e: { url: 'myapp%3A%2F%2Fhome%2Fpage%3Fqueryparam1%3Dvalue1', install: 'SM-G935F', @@ -288,7 +288,7 @@ export const data = [ tax: 1, discount: 1.5, coupon: 'ImagePro', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', }, }, body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, @@ -320,7 +320,7 @@ export const data = [ amt: 6.9, asid: 'IISqwYJKoZIcNqts0jvcNvPc', receipt_signature: '1234dfghnh', - a: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + a: 'dummyApiKey', c: 'wifi', e: { url: 'myapp%3A%2F%2Fhome%2Fpage%3Fqueryparam1%3Dvalue1', @@ -336,7 +336,7 @@ export const data = [ tax: 1, discount: 1.5, coupon: 'ImagePro', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', }, }, body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, @@ -361,7 +361,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent' }, { sessionEventName: 'randomuser' }, @@ -389,7 +389,7 @@ export const data = [ attStatus: true, id: 'fc8d449516de0dfb', adTrackingEnabled: true, - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', @@ -423,7 +423,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', sku: 'G-32', name: 'Monopoly', @@ -470,7 +470,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent' }, { sessionEventName: 'randomuser' }, @@ -499,7 +499,7 @@ export const data = [ attStatus: true, id: 'fc8d449516de0dfb', adTrackingEnabled: true, - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', @@ -535,7 +535,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', sku: 'G-32', name: 'Monopoly', @@ -575,7 +575,7 @@ export const data = [ custom_user_id: 'ruddersampleX5', n: 'RudderAndroidClient', cn: 'Android', - fcm: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + fcm: 'testDeviceToken', bd: '1', install: 'SM-G935F', aifa: '8ecd7512-2864-440c-93f3-a3cabe62525b', @@ -588,7 +588,7 @@ export const data = [ openuri: 'myapp%3A%2F%2Fhome%2Fpage%3Fqueryparam1%3Dvalue1', install_source: '', c: 'wifi', - a: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + a: 'dummyApiKey', }, body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, @@ -612,7 +612,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent' }, { sessionEventName: 'randomuser' }, @@ -641,7 +641,7 @@ export const data = [ attStatus: true, id: 'fc8d449516de0dfb', adTrackingEnabled: true, - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', @@ -677,7 +677,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', sku: 'G-32', name: 'Monopoly', @@ -721,7 +721,7 @@ export const data = [ receipt_signature: '1234dfghnh', amt: 20, is_revenue_event: true, - a: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + a: 'dummyApiKey', c: 'wifi', e: { url: 'myapp%3A%2F%2Fhome%2Fpage%3Fqueryparam1%3Dvalue1', @@ -736,7 +736,7 @@ export const data = [ tax: 1, discount: 1.5, coupon: 'ImagePro', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', name: 'Monopoly', image_url: 'https://www.website.com/product/path.jpg', }, @@ -763,7 +763,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent' }, { sessionEventName: 'randomuser' }, @@ -792,7 +792,7 @@ export const data = [ attStatus: true, id: 'fc8d449516de0dfb', adTrackingEnabled: true, - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', @@ -828,7 +828,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', sku: 'G-32', name: 'Monopoly', @@ -875,7 +875,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent' }, { sessionEventName: 'randomuser' }, @@ -904,7 +904,7 @@ export const data = [ attStatus: true, id: 'fc8d449516de0dfb', adTrackingEnabled: true, - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', @@ -936,7 +936,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', sku: 'G-32', name: 'Monopoly', @@ -980,7 +980,7 @@ export const data = [ n: 'RudderAndroidClient', utime: 1630511211, cn: 'Android', - fcm: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + fcm: 'testDeviceToken', bd: '1', install: 'SM-G935F', aifa: '8ecd7512-2864-440c-93f3-a3cabe62525b', @@ -988,7 +988,7 @@ export const data = [ install_time: 1630511211, update_time: 1630511211, ua: 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', - a: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + a: 'dummyApiKey', }, body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, @@ -1012,7 +1012,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent' }, { sessionEventName: 'randomuser' }, @@ -1041,7 +1041,7 @@ export const data = [ attStatus: true, id: 'fc8d449516de0dfb', adTrackingEnabled: true, - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', @@ -1073,7 +1073,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', sku: 'G-32', name: 'Monopoly', @@ -1117,7 +1117,7 @@ export const data = [ n: 'RudderAndroidClient', utime: 1630511211, cn: 'Android', - fcm: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + fcm: 'testDeviceToken', bd: '1', install: 'SM-G935F', aifa: '8ecd7512-2864-440c-93f3-a3cabe62525b', @@ -1125,7 +1125,7 @@ export const data = [ install_time: 1630511211, update_time: 1630511211, ua: 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', - a: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + a: 'dummyApiKey', }, body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, @@ -1149,7 +1149,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent' }, { sessionEventName: 'randomuser' }, @@ -1178,7 +1178,7 @@ export const data = [ attStatus: true, id: 'fc8d449516de0dfb', adTrackingEnabled: true, - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', @@ -1210,7 +1210,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', sku: 'G-32', name: 'Monopoly', @@ -1255,7 +1255,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent' }, { sessionEventName: 'randomuser' }, @@ -1284,7 +1284,7 @@ export const data = [ attTrackingStatus: 3, id: 'fc8d449516de0dfb', adTrackingEnabled: true, - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', @@ -1321,7 +1321,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', sku: 'G-32', name: 'Monopoly', @@ -1363,7 +1363,7 @@ export const data = [ n: 'RudderAndroidClient', utime: 1630511211, cn: 'iOS', - apns_token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + apns_token: 'testDeviceToken', ua: 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', attribution_token: 'G9i5hC8lQJeGOfmS+MFycll/02...AAABBEQQBQS=', skan_conversion_value: '2', @@ -1376,7 +1376,7 @@ export const data = [ idfv: 'fc8d449516de0dfb', install_time: 1630511211, update_time: 1630511211, - a: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + a: 'dummyApiKey', }, body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, @@ -1400,7 +1400,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent' }, { sessionEventName: 'randomuser' }, @@ -1429,7 +1429,7 @@ export const data = [ attTrackingStatus: 3, id: 'fc8d449516de0dfb', adTrackingEnabled: true, - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', @@ -1466,7 +1466,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', sku: 'G-32', name: 'Monopoly', @@ -1509,7 +1509,7 @@ export const data = [ purchase_transaction_id: '2134dfg', idfa: '8ecd7512-2864-440c-93f3-a3cabe62525b', idfv: 'fc8d449516de0dfb', - a: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + a: 'dummyApiKey', c: 'carrier', e: { asid: 'IISqwYJKoZIcNqts0jvcNvPc', @@ -1528,7 +1528,7 @@ export const data = [ tax: 1, discount: 1.5, coupon: 'ImagePro', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', name: 'Monopoly', }, }, @@ -1554,7 +1554,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent' }, { sessionEventName: 'randomuser' }, @@ -1583,7 +1583,7 @@ export const data = [ attTrackingStatus: 3, id: 'fc8d449516de0dfb', adTrackingEnabled: true, - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', @@ -1617,7 +1617,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', sku: 'G-32', name: 'Monopoly', @@ -1660,7 +1660,7 @@ export const data = [ n: 'RudderAndroidClient', utime: 1630511211, cn: 'iOS', - apns_token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + apns_token: 'testDeviceToken', ua: 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', attribution_token: 'G9i5hC8lQJeGOfmS+MFycll/02...AAABBEQQBQS=', bd: '1', @@ -1669,7 +1669,7 @@ export const data = [ idfv: 'fc8d449516de0dfb', install_time: 1630511211, update_time: 1630511211, - a: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + a: 'dummyApiKey', }, body: { JSON: {}, JSON_ARRAY: {}, XML: {}, FORM: {} }, files: {}, @@ -1693,7 +1693,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent' }, { sessionEventName: 'randomuser' }, @@ -1722,7 +1722,7 @@ export const data = [ attStatus: true, id: 'fc8d449516de0dfb', adTrackingEnabled: true, - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', @@ -1759,7 +1759,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', sku: 'G-32', name: 'Monopoly', @@ -1804,7 +1804,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent' }, { sessionEventName: 'randomuser' }, @@ -1833,7 +1833,7 @@ export const data = [ attStatus: true, id: 'fc8d449516de0dfb', adTrackingEnabled: true, - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', version: '0.1.4' }, locale: 'en-US', @@ -1870,7 +1870,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', sku: 'G-32', name: 'Monopoly', diff --git a/test/integrations/destinations/singular/router/data.ts b/test/integrations/destinations/singular/router/data.ts index c017d2ea1fc..d9c9f7a8cb3 100644 --- a/test/integrations/destinations/singular/router/data.ts +++ b/test/integrations/destinations/singular/router/data.ts @@ -12,7 +12,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent', @@ -50,7 +50,7 @@ export const data = [ attStatus: 'true', id: 'fc8d449516de0dfb', adTrackingEnabled: 'true', - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', @@ -99,7 +99,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: [ { @@ -160,7 +160,7 @@ export const data = [ n: 'RudderAndroidClient', utime: 1630511211, cn: 'Android', - fcm: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + fcm: 'testDeviceToken', bd: '1', install: 'SM-G935F', aifa: '8ecd7512-2864-440c-93f3-a3cabe62525b', @@ -169,7 +169,7 @@ export const data = [ update_time: 1630511211, ua: 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', c: 'wifi', - a: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + a: 'dummyApiKey', }, body: { JSON: {}, @@ -188,7 +188,7 @@ export const data = [ statusCode: 200, destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent', @@ -221,7 +221,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent', @@ -259,7 +259,7 @@ export const data = [ attStatus: 'true', id: 'fc8d449516de0dfb', adTrackingEnabled: 'true', - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', @@ -308,7 +308,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: [ { @@ -369,7 +369,7 @@ export const data = [ n: 'RudderAndroidClient', utime: 1630511211, cn: 'Android', - fcm: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + fcm: 'testDeviceToken', bd: '1', install: 'SM-G935F', aifa: '8ecd7512-2864-440c-93f3-a3cabe62525b', @@ -378,7 +378,7 @@ export const data = [ update_time: 1630511211, ua: 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', c: 'wifi', - a: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + a: 'dummyApiKey', }, body: { JSON: {}, @@ -397,7 +397,7 @@ export const data = [ statusCode: 200, destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent', @@ -430,7 +430,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent', @@ -468,7 +468,7 @@ export const data = [ attStatus: 'true', id: 'fc8d449516de0dfb', adTrackingEnabled: 'true', - token: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + token: 'testDeviceToken', }, library: { name: 'com.rudderstack.android.sdk.core', @@ -517,7 +517,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: [ { @@ -578,7 +578,7 @@ export const data = [ n: 'RudderAndroidClient', utime: 1630511211, cn: 'Android', - fcm: 'bk3RNwTe3H0CI2k_ HHwgIpoDKCIZvvD MExUdFQ3P1', + fcm: 'testDeviceToken', bd: '1', install: 'SM-G935F', aifa: '8ecd7512-2864-440c-93f3-a3cabe62525b', @@ -587,7 +587,7 @@ export const data = [ update_time: 1630511211, ua: 'Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)', c: 'wifi', - a: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + a: 'dummyApiKey', }, body: { JSON: {}, @@ -606,7 +606,7 @@ export const data = [ statusCode: 200, destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', sessionEventList: [ { sessionEventName: 'mysessionevent', @@ -704,7 +704,7 @@ export const data = [ secretConfig: {}, Config: { apiKey: 'apiKey', - apiSecret: 'apiSecreth9h3984bnsdfkh98kjiu4h', + apiSecret: 'dummyApiSecret', sessionEventList: [ { sessionEventName: 'test_event', @@ -815,7 +815,7 @@ export const data = [ messageId: 'b9e9534b-b3b7-4bdb-8d59-062e1fbf4e2b', oauthAccessToken: '', messageIds: null, - rudderId: '67895e15-d37f-49d6-9017-e8d29264e31f<<>>yolanda.rivera2@yahoo.com', + rudderId: '67895e15-d37f-49d6-9017-e8d29264e31f<<>>y@y.com', receivedAt: '2022-05-02T07:20:13.809Z', eventName: '', eventType: 'track', @@ -889,7 +889,7 @@ export const data = [ messageId: 'b9e9534b-b3b7-4bdb-8d59-062e1fbf4e2b', oauthAccessToken: '', messageIds: null, - rudderId: '67895e15-d37f-49d6-9017-e8d29264e31f<<>>yolanda.rivera2@yahoo.com', + rudderId: '67895e15-d37f-49d6-9017-e8d29264e31f<<>>y@y.com', receivedAt: '2022-05-02T07:20:13.809Z', eventName: '', eventType: 'track', @@ -903,7 +903,7 @@ export const data = [ secretConfig: {}, Config: { apiKey: 'apiKey', - apiSecret: 'apiSecreth9h3984bnsdfkh98kjiu4h', + apiSecret: 'dummyApiSecret', sessionEventList: [ { sessionEventName: 'test_event', diff --git a/test/integrations/destinations/slack/processor/data.ts b/test/integrations/destinations/slack/processor/data.ts new file mode 100644 index 00000000000..be05a13ab5b --- /dev/null +++ b/test/integrations/destinations/slack/processor/data.ts @@ -0,0 +1,1982 @@ +export const data = [ + { + "name": "slack", + "description": "Test 0", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "Name": "test-slack", + "DestinationDefinition": { + "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", + "Name": "SLACK", + "DisplayName": "Slack", + "Config": { + "excludeKeys": [], + "includeKeys": [] + } + }, + "Config": { + "eventChannelSettings": [ + { + "eventChannelWebhook": "https://hooks.slack.com/services/example/test/demo", + "eventName": "is", + "eventRegex": true + } + ], + "eventTemplateSettings": [ + { + "eventName": "is", + "eventRegex": true, + "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" + }, + { + "eventName": "", + "eventRegex": false, + "eventTemplate": "" + } + ], + "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", + "whitelistedTraitsSettings": [ + { + "trait": "hiji" + }, + { + "trait": "" + } + ] + }, + "Enabled": true, + "Transformations": [], + "IsProcessorEnabled": true + }, + "message": { + "anonymousId": "4de817fb-7f8e-4e23-b9be-f6736dbda20f", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.1-rc.1" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.1-rc.1" + }, + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "page": { + "path": "/tests/html/script-test.html", + "referrer": "http://localhost:1111/tests/html/", + "search": "", + "title": "", + "url": "http://localhost:1111/tests/html/script-test.html" + }, + "screen": { + "density": 1.7999999523162842 + }, + "traits": { + "country": "India", + "email": "name@domain.com", + "hiji": "hulala", + "name": "my-name" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" + }, + "integrations": { + "All": true + }, + "messageId": "9ecc0183-89ed-48bd-87eb-b2d8e1ca6780", + "originalTimestamp": "2020-03-23T03:46:30.916Z", + "properties": { + "path": "/tests/html/script-test.html", + "referrer": "http://localhost:1111/tests/html/", + "search": "", + "title": "", + "url": "http://localhost:1111/tests/html/script-test.html" + }, + "receivedAt": "2020-03-23T09:16:31.041+05:30", + "request_ip": "[::1]:52056", + "sentAt": "2020-03-23T03:46:30.916Z", + "timestamp": "2020-03-23T09:16:31.041+05:30", + "type": "identify", + "userId": "12345" + }, + "metadata": { + "anonymousId": "4de817fb-7f8e-4e23-b9be-f6736dbda20f", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 126, + "messageId": "9ecc0183-89ed-48bd-87eb-b2d8e1ca6780", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", + "headers": { + "Content-Type": "application/x-www-form-urlencoded" + }, + "params": {}, + "body": { + "JSON": {}, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": { + "payload": "{\"text\":\"Identified my-namehiji: hulala \",\"username\":\"RudderStack\",\"icon_url\":\"https://cdn.rudderlabs.com/rudderstack.png\"}" + } + }, + "files": {}, + "userId": "12345", + "statusCode": 200 + }, + "metadata": { + "anonymousId": "4de817fb-7f8e-4e23-b9be-f6736dbda20f", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 126, + "messageId": "9ecc0183-89ed-48bd-87eb-b2d8e1ca6780", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "slack", + "description": "Test 1", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "Name": "test-slack", + "DestinationDefinition": { + "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", + "Name": "SLACK", + "DisplayName": "Slack", + "Config": { + "excludeKeys": [], + "includeKeys": [] + } + }, + "Config": { + "eventChannelSettings": [ + { + "eventChannelWebhook": "https://hooks.slack.com/services/example/test/demo", + "eventName": "is", + "eventRegex": true + } + ], + "eventTemplateSettings": [ + { + "eventName": "is", + "eventRegex": true, + "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" + }, + { + "eventName": "", + "eventRegex": false, + "eventTemplate": "" + } + ], + "identifyTemplate": "identified {{name}} with {{traits}}", + "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", + "whitelistedTraitsSettings": [ + { + "trait": "hiji" + }, + { + "trait": "" + } + ], + "denyListOfEvents": [ + { + "eventName": "black_event" + } + ] + }, + "Enabled": true, + "Transformations": [], + "IsProcessorEnabled": true + }, + "message": { + "anonymousId": "4de817fb-7f8e-4e23-b9be-f6736dbda20f", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.1-rc.1" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.1-rc.1" + }, + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "page": { + "path": "/tests/html/script-test.html", + "referrer": "http://localhost:1111/tests/html/", + "search": "", + "title": "", + "url": "http://localhost:1111/tests/html/script-test.html" + }, + "screen": { + "density": 1.7999999523162842 + }, + "traits": { + "country": "India", + "email": "name@domain.com", + "hiji": "hulala", + "name": "my-name" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" + }, + "integrations": { + "All": true + }, + "messageId": "9ecc0183-89ed-48bd-87eb-b2d8e1ca6780", + "originalTimestamp": "2020-03-23T03:46:30.916Z", + "properties": { + "path": "/tests/html/script-test.html", + "referrer": "http://localhost:1111/tests/html/", + "search": "", + "title": "", + "url": "http://localhost:1111/tests/html/script-test.html" + }, + "receivedAt": "2020-03-23T09:16:31.041+05:30", + "request_ip": "[::1]:52056", + "sentAt": "2020-03-23T03:46:30.916Z", + "timestamp": "2020-03-23T09:16:31.041+05:30", + "type": "page", + "userId": "12345" + }, + "metadata": { + "anonymousId": "4de817fb-7f8e-4e23-b9be-f6736dbda20f", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 126, + "messageId": "9ecc0183-89ed-48bd-87eb-b2d8e1ca6780", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "anonymousId": "4de817fb-7f8e-4e23-b9be-f6736dbda20f", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 126, + "messageId": "9ecc0183-89ed-48bd-87eb-b2d8e1ca6780", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + }, + "statusCode": 400, + "error": "Event type page is not supported", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "SLACK", + "module": "destination", + "implementation": "native", + "feature": "processor", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL" + } + } + ] + } + } + }, + { + "name": "slack", + "description": "Test 2", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "Name": "test-slack", + "DestinationDefinition": { + "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", + "Name": "SLACK", + "DisplayName": "Slack", + "Config": { + "excludeKeys": [], + "includeKeys": [] + } + }, + "Config": { + "eventChannelSettings": [ + { + "eventChannelWebhook": "https://hooks.slack.com/services/id1/id2/example", + "eventName": "is", + "eventRegex": true + } + ], + "eventTemplateSettings": [ + { + "eventName": "is", + "eventRegex": true, + "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" + }, + { + "eventName": "", + "eventRegex": false, + "eventTemplate": "" + } + ], + "identifyTemplate": "identified {{name}} with {{traits}}", + "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", + "whitelistedTraitsSettings": [ + { + "trait": "hiji" + }, + { + "trait": "" + } + ] + }, + "Enabled": true, + "Transformations": [], + "IsProcessorEnabled": true + }, + "message": { + "anonymousId": "12345", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.1-rc.1" + }, + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.1-rc.1" + }, + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "page": { + "path": "", + "referrer": "", + "search": "", + "title": "", + "url": "" + }, + "screen": { + "density": 1.7999999523162842 + }, + "traits": { + "country": "India", + "email": "name@domain.com", + "hiji": "hulala", + "name": "my-name" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" + }, + "traits": { + "country": "USA", + "email": "test@domain.com", + "hiji": "hulala-1", + "name": "my-name-1" + }, + "integrations": { + "All": true + }, + "messageId": "4aaecff2-a513-4bbf-9824-c471f4ac9777", + "originalTimestamp": "2020-03-23T03:41:46.122Z", + "receivedAt": "2020-03-23T09:11:46.244+05:30", + "request_ip": "[::1]:52055", + "sentAt": "2020-03-23T03:41:46.123Z", + "timestamp": "2020-03-23T09:11:46.243+05:30", + "type": "identify", + "userId": "12345" + }, + "metadata": { + "anonymousId": "12345", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 123, + "messageId": "4aaecff2-a513-4bbf-9824-c471f4ac9777", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", + "headers": { + "Content-Type": "application/x-www-form-urlencoded" + }, + "params": {}, + "body": { + "JSON": {}, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": { + "payload": "{\"text\":\"identified my-name-1 with hiji: hulala-1 \",\"username\":\"RudderStack\",\"icon_url\":\"https://cdn.rudderlabs.com/rudderstack.png\"}" + } + }, + "files": {}, + "userId": "12345", + "statusCode": 200 + }, + "metadata": { + "anonymousId": "12345", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 123, + "messageId": "4aaecff2-a513-4bbf-9824-c471f4ac9777", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "slack", + "description": "Test 3", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "Name": "test-slack", + "DestinationDefinition": { + "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", + "Name": "SLACK", + "DisplayName": "Slack", + "Config": { + "excludeKeys": [], + "includeKeys": [] + } + }, + "Config": { + "incomingWebhooksType": "modern", + "eventChannelSettings": [ + { + "eventChannelWebhook": "https://hooks.slack.com/services/id1/id2/demo", + "eventName": "is", + "eventRegex": true + }, + { + "eventChannelWebhook": "https://hooks.slack.com/services/id1/id2/example+1", + "eventName": "is", + "eventRegex": true + } + ], + "eventTemplateSettings": [ + { + "eventName": "is", + "eventRegex": true, + "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}} and traits {{traitsList.hiji}}" + }, + { + "eventName": "", + "eventRegex": false, + "eventTemplate": "" + } + ], + "identifyTemplate": "identified {{name}} with {{traits}}", + "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", + "whitelistedTraitsSettings": [ + { + "trait": "hiji" + }, + { + "trait": "" + } + ], + "denyListOfEvents": [ + { + "eventName": "black_event" + } + ] + }, + "Enabled": true, + "Transformations": [], + "IsProcessorEnabled": true + }, + "message": { + "anonymousId": "00000000000000000000000000", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.1-rc.1" + }, + "ip": "0.0.0.0", + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.1-rc.1" + }, + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "page": { + "path": "/tests/html/script-test.html", + "referrer": "http://localhost:1111/tests/html/", + "search": "", + "title": "", + "url": "http://localhost:1111/tests/html/script-test.html" + }, + "screen": { + "density": 1.7999999523162842 + }, + "traits": { + "country": "India", + "email": "name@domain.com", + "hiji": "hulala", + "name": "my-name" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" + }, + "event": "test_isent1", + "integrations": { + "All": true + }, + "messageId": "78102118-56ac-4c5a-a495-8cd7c8f71cc2", + "originalTimestamp": "2020-03-23T03:46:30.921Z", + "properties": { + "currency": "USD", + "key1": "test_val1", + "key2": "test_val2", + "revenue": 30, + "user_actual_id": 12345 + }, + "receivedAt": "2020-03-23T09:16:31.064+05:30", + "request_ip": "[::1]:52057", + "sentAt": "2020-03-23T03:46:30.921Z", + "timestamp": "2020-03-23T09:16:31.064+05:30", + "type": "track", + "userId": "12345" + }, + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 128, + "messageId": "78102118-56ac-4c5a-a495-8cd7c8f71cc2", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://hooks.slack.com/services/id1/id2/demo", + "headers": { + "Content-Type": "application/x-www-form-urlencoded" + }, + "params": {}, + "body": { + "JSON": {}, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": { + "payload": "{\"text\":\"my-name performed test_isent1 with test_val1 test_val2 and traits hulala\"}" + } + }, + "files": {}, + "userId": "12345", + "statusCode": 200 + }, + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 128, + "messageId": "78102118-56ac-4c5a-a495-8cd7c8f71cc2", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "slack", + "description": "Test 4", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "Name": "test-slack", + "DestinationDefinition": { + "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", + "Name": "SLACK", + "DisplayName": "Slack", + "Config": { + "excludeKeys": [], + "includeKeys": [] + } + }, + "Config": { + "incomingWebhooksType": "modern", + "eventChannelSettings": [ + { + "eventChannelWebhook": "https://hooks.slack.com/services/id1/id2/example", + "eventName": "is", + "eventChannel": "example_channel", + "eventRegex": true + }, + { + "eventChannelWebhook": "https://hooks.slack.com/services/id1/id2/example+1", + "eventName": "is", + "eventChannel": "example_channel", + "eventRegex": true + } + ], + "eventTemplateSettings": [ + { + "eventName": "is", + "eventRegex": true, + "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" + }, + { + "eventName": "", + "eventRegex": false, + "eventTemplate": "" + } + ], + "identifyTemplate": "identified {{name}} with {{traits}}", + "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", + "whitelistedTraitsSettings": [ + { + "trait": "hiji" + }, + { + "trait": "" + } + ], + "denyListOfEvents": [ + { + "eventName": "black_event" + } + ] + }, + "Enabled": true, + "Transformations": [], + "IsProcessorEnabled": true + }, + "message": { + "anonymousId": "00000000000000000000000000", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.1-rc.1" + }, + "ip": "0.0.0.0", + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.1-rc.1" + }, + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "page": { + "path": "/tests/html/script-test.html", + "referrer": "http://localhost:1111/tests/html/", + "search": "", + "title": "", + "url": "http://localhost:1111/tests/html/script-test.html" + }, + "screen": { + "density": 1.7999999523162842 + }, + "traits": { + "country": "India", + "email": "name@domain.com", + "hiji": "hulala", + "name": "my-name" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" + }, + "event": "test_eventing_testis", + "integrations": { + "All": true + }, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "originalTimestamp": "2020-03-23T03:46:30.922Z", + "properties": { + "currency": "USD", + "key1": "test_val1", + "key2": "test_val2", + "revenue": 30, + "user_actual_id": 12345 + }, + "receivedAt": "2020-03-23T09:16:31.064+05:30", + "request_ip": "[::1]:52054", + "sentAt": "2020-03-23T03:46:30.923Z", + "timestamp": "2020-03-23T09:16:31.063+05:30", + "type": "track", + "userId": "12345" + }, + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 129, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://hooks.slack.com/services/id1/id2/example", + "headers": { + "Content-Type": "application/x-www-form-urlencoded" + }, + "params": {}, + "body": { + "JSON": {}, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": { + "payload": "{\"text\":\"my-name performed test_eventing_testis with test_val1 test_val2\"}" + } + }, + "files": {}, + "userId": "12345", + "statusCode": 200 + }, + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 129, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "slack", + "description": "Test 5", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "Name": "test-slack", + "DestinationDefinition": { + "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", + "Name": "SLACK", + "DisplayName": "Slack", + "Config": { + "excludeKeys": [], + "includeKeys": [] + } + }, + "Config": { + "incomingWebhooksType": "modern", + "eventChannelSettings": [ + { + "eventChannelWebhook": "https://hooks.slack.com/services/id1/id2/example", + "eventName": "test_eventing_test", + "eventChannel": "example_channel", + "eventRegex": false + }, + { + "eventChannelWebhook": "https://hooks.slack.com/services/id1/id2/example+1", + "eventName": "", + "eventChannel": "example_channel", + "eventRegex": true + } + ], + "eventTemplateSettings": [ + { + "eventName": "is", + "eventRegex": true, + "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" + }, + { + "eventName": "", + "eventRegex": false, + "eventTemplate": "" + } + ], + "identifyTemplate": "identified {{name}} with {{traits}}", + "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", + "whitelistedTraitsSettings": [ + { + "trait": "hiji" + }, + { + "trait": "" + } + ], + "denyListOfEvents": [ + { + "eventName": "black_event" + } + ] + }, + "Enabled": true, + "Transformations": [], + "IsProcessorEnabled": true + }, + "message": { + "anonymousId": "00000000000000000000000000", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.1-rc.1" + }, + "ip": "0.0.0.0", + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.1-rc.1" + }, + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "page": { + "path": "/tests/html/script-test.html", + "referrer": "http://localhost:1111/tests/html/", + "search": "", + "title": "", + "url": "http://localhost:1111/tests/html/script-test.html" + }, + "screen": { + "density": 1.7999999523162842 + }, + "traits": { + "country": "India", + "email": "name@domain.com", + "hiji": "hulala", + "name": "my-name" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" + }, + "event": "test_eventing_test", + "integrations": { + "All": true + }, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "originalTimestamp": "2020-03-23T03:46:30.922Z", + "properties": { + "currency": "USD", + "key1": "test_val1", + "key2": "test_val2", + "revenue": 30, + "user_actual_id": 12345 + }, + "receivedAt": "2020-03-23T09:16:31.064+05:30", + "request_ip": "[::1]:52054", + "sentAt": "2020-03-23T03:46:30.923Z", + "timestamp": "2020-03-23T09:16:31.063+05:30", + "type": "track", + "userId": "12345" + }, + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 129, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://hooks.slack.com/services/id1/id2/example", + "headers": { + "Content-Type": "application/x-www-form-urlencoded" + }, + "params": {}, + "body": { + "JSON": {}, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": { + "payload": "{\"text\":\"my-name did test_eventing_test\"}" + } + }, + "files": {}, + "userId": "12345", + "statusCode": 200 + }, + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 129, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "slack", + "description": "Test 6", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "Name": "test-slack", + "DestinationDefinition": { + "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", + "Name": "SLACK", + "DisplayName": "Slack", + "Config": { + "excludeKeys": [], + "includeKeys": [] + } + }, + "Config": { + "incomingWebhooksType": "legacy", + "eventChannelSettings": [ + { + "eventChannelWebhook": "https://hooks.slack.com/services/id1/id2/demo", + "eventName": "is", + "eventRegex": true + }, + { + "eventChannelWebhook": "https://hooks.slack.com/services/id1/id2/example+1", + "eventName": "is", + "eventRegex": true + } + ], + "eventTemplateSettings": [ + { + "eventName": "is", + "eventRegex": true, + "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}} and traits {{traitsList.hiji}}" + }, + { + "eventName": "", + "eventRegex": false, + "eventTemplate": "" + } + ], + "identifyTemplate": "identified {{name}} with {{traits}}", + "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", + "whitelistedTraitsSettings": [ + { + "trait": "hiji" + }, + { + "trait": "" + } + ], + "denyListOfEvents": [ + { + "eventName": "black_event" + } + ] + }, + "Enabled": true, + "Transformations": [], + "IsProcessorEnabled": true + }, + "message": { + "anonymousId": "00000000000000000000000000", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.1-rc.1" + }, + "ip": "0.0.0.0", + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.1-rc.1" + }, + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "page": { + "path": "/tests/html/script-test.html", + "referrer": "http://localhost:1111/tests/html/", + "search": "", + "title": "", + "url": "http://localhost:1111/tests/html/script-test.html" + }, + "screen": { + "density": 1.7999999523162842 + }, + "traits": { + "country": "India", + "email": "name@domain.com", + "hiji": "hulala", + "name": "my-name" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" + }, + "event": "test_isent1", + "integrations": { + "All": true + }, + "messageId": "78102118-56ac-4c5a-a495-8cd7c8f71cc2", + "originalTimestamp": "2020-03-23T03:46:30.921Z", + "properties": { + "currency": "USD", + "key1": "test_val1", + "key2": "test_val2", + "revenue": 30, + "user_actual_id": 12345 + }, + "receivedAt": "2020-03-23T09:16:31.064+05:30", + "request_ip": "[::1]:52057", + "sentAt": "2020-03-23T03:46:30.921Z", + "timestamp": "2020-03-23T09:16:31.064+05:30", + "type": "track", + "userId": "12345" + }, + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 128, + "messageId": "78102118-56ac-4c5a-a495-8cd7c8f71cc2", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", + "headers": { + "Content-Type": "application/x-www-form-urlencoded" + }, + "params": {}, + "body": { + "JSON": {}, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": { + "payload": "{\"text\":\"my-name performed test_isent1 with test_val1 test_val2 and traits hulala\",\"username\":\"RudderStack\",\"icon_url\":\"https://cdn.rudderlabs.com/rudderstack.png\"}" + } + }, + "files": {}, + "userId": "12345", + "statusCode": 200 + }, + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 128, + "messageId": "78102118-56ac-4c5a-a495-8cd7c8f71cc2", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "slack", + "description": "Test 7", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "Name": "test-slack", + "DestinationDefinition": { + "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", + "Name": "SLACK", + "DisplayName": "Slack", + "Config": { + "excludeKeys": [], + "includeKeys": [] + } + }, + "Config": { + "incomingWebhooksType": "legacy", + "eventChannelSettings": [ + { + "eventChannelWebhook": "https://hooks.slack.com/services/id1/id2/example", + "eventName": "is", + "eventRegex": true + }, + { + "eventChannelWebhook": "https://hooks.slack.com/services/id1/id2/example+1", + "eventChannel": "example-of-legacy", + "eventName": "is", + "eventRegex": true + } + ], + "eventTemplateSettings": [ + { + "eventName": "is", + "eventRegex": true, + "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" + }, + { + "eventName": "", + "eventRegex": false, + "eventTemplate": "" + } + ], + "identifyTemplate": "identified {{name}} with {{traits}}", + "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", + "whitelistedTraitsSettings": [ + { + "trait": "hiji" + }, + { + "trait": "" + } + ], + "denyListOfEvents": [ + { + "eventName": "black_event" + } + ] + }, + "Enabled": true, + "Transformations": [], + "IsProcessorEnabled": true + }, + "message": { + "anonymousId": "00000000000000000000000000", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.1-rc.1" + }, + "ip": "0.0.0.0", + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.1-rc.1" + }, + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "page": { + "path": "/tests/html/script-test.html", + "referrer": "http://localhost:1111/tests/html/", + "search": "", + "title": "", + "url": "http://localhost:1111/tests/html/script-test.html" + }, + "screen": { + "density": 1.7999999523162842 + }, + "traits": { + "country": "India", + "email": "name@domain.com", + "hiji": "hulala", + "name": "my-name" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" + }, + "event": "test_eventing_testis", + "integrations": { + "All": true + }, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "originalTimestamp": "2020-03-23T03:46:30.922Z", + "properties": { + "currency": "USD", + "key1": "test_val1", + "key2": "test_val2", + "revenue": 30, + "user_actual_id": 12345 + }, + "receivedAt": "2020-03-23T09:16:31.064+05:30", + "request_ip": "[::1]:52054", + "sentAt": "2020-03-23T03:46:30.923Z", + "timestamp": "2020-03-23T09:16:31.063+05:30", + "type": "track", + "userId": "12345" + }, + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 129, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", + "headers": { + "Content-Type": "application/x-www-form-urlencoded" + }, + "params": {}, + "body": { + "JSON": {}, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": { + "payload": "{\"channel\":\"example-of-legacy\",\"text\":\"my-name performed test_eventing_testis with test_val1 test_val2\",\"username\":\"RudderStack\",\"icon_url\":\"https://cdn.rudderlabs.com/rudderstack.png\"}" + } + }, + "files": {}, + "userId": "12345", + "statusCode": 200 + }, + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 129, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "slack", + "description": "Test 8", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "Name": "test-slack", + "DestinationDefinition": { + "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", + "Name": "SLACK", + "DisplayName": "Slack", + "Config": { + "excludeKeys": [], + "includeKeys": [] + } + }, + "Config": { + "eventChannelSettings": [ + { + "eventChannelWebhook": "https://hooks.slack.com/services/example/test/demo", + "eventName": "is", + "eventRegex": true + } + ], + "eventTemplateSettings": [ + { + "eventName": "is", + "eventRegex": true, + "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" + }, + { + "eventName": "", + "eventRegex": false, + "eventTemplate": "" + } + ], + "identifyTemplate": "identified {{name}} with {{traits}}", + "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", + "whitelistedTraitsSettings": [ + { + "trait": "hiji" + }, + { + "trait": "" + } + ] + }, + "Enabled": true, + "Transformations": [], + "IsProcessorEnabled": true + }, + "message": { + "anonymousId": "00000000000000000000000000", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.1-rc.1" + }, + "ip": "0.0.0.0", + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.1-rc.1" + }, + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "page": { + "path": "/tests/html/script-test.html", + "referrer": "http://localhost:1111/tests/html/", + "search": "", + "title": "", + "url": "http://localhost:1111/tests/html/script-test.html" + }, + "screen": { + "density": 1.7999999523162842 + }, + "traits": { + "country": "India", + "email": "name@domain.com", + "hiji": "hulala", + "name": "my-name" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" + }, + "event": "test_eventing_testis", + "integrations": { + "All": true + }, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "originalTimestamp": "2020-03-23T03:46:30.922Z", + "properties": { + "currency": "USD", + "key1": "test_val1", + "key2": "test_val2", + "revenue": 30, + "user_actual_id": 12345 + }, + "receivedAt": "2020-03-23T09:16:31.064+05:30", + "request_ip": "[::1]:52054", + "sentAt": "2020-03-23T03:46:30.923Z", + "timestamp": "2020-03-23T09:16:31.063+05:30", + "userId": "12345" + }, + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 129, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 129, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + }, + "statusCode": 400, + "error": "Event type is required", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "SLACK", + "module": "destination", + "implementation": "native", + "feature": "processor", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL" + } + } + ] + } + } + }, + { + "name": "slack", + "description": "Test 9", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "Name": "test-slack", + "DestinationDefinition": { + "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", + "Name": "SLACK", + "DisplayName": "Slack", + "Config": { + "excludeKeys": [], + "includeKeys": [] + } + }, + "Config": { + "eventChannelSettings": [ + { + "eventChannelWebhook": "https://hooks.slack.com/services/example/test/demo", + "eventName": "is", + "eventRegex": true + } + ], + "eventTemplateSettings": [ + { + "eventName": "is", + "eventRegex": true, + "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" + }, + { + "eventName": "", + "eventRegex": false, + "eventTemplate": "" + } + ], + "identifyTemplate": "identified {{name}} with {{traits}}", + "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", + "whitelistedTraitsSettings": [ + { + "trait": "hiji" + }, + { + "trait": "" + } + ] + }, + "Enabled": true, + "Transformations": [], + "IsProcessorEnabled": true + }, + "message": { + "anonymousId": "00000000000000000000000000", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.1-rc.1" + }, + "ip": "0.0.0.0", + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.1-rc.1" + }, + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "page": { + "path": "/tests/html/script-test.html", + "referrer": "http://localhost:1111/tests/html/", + "search": "", + "title": "", + "url": "http://localhost:1111/tests/html/script-test.html" + }, + "screen": { + "density": 1.7999999523162842 + }, + "traits": { + "country": "India", + "email": "name@domain.com", + "hiji": "hulala", + "name": "my-name" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" + }, + "integrations": { + "All": true + }, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "originalTimestamp": "2020-03-23T03:46:30.922Z", + "properties": { + "currency": "USD", + "key1": "test_val1", + "key2": "test_val2", + "revenue": 30, + "user_actual_id": 12345 + }, + "receivedAt": "2020-03-23T09:16:31.064+05:30", + "request_ip": "[::1]:52054", + "sentAt": "2020-03-23T03:46:30.923Z", + "timestamp": "2020-03-23T09:16:31.063+05:30", + "type": "track", + "userId": "12345" + }, + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 129, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 129, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + }, + "statusCode": 400, + "error": "Event name is required", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "SLACK", + "module": "destination", + "implementation": "native", + "feature": "processor", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL" + } + } + ] + } + } + }, + { + "name": "slack", + "description": "Test 10", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "Name": "test-slack", + "DestinationDefinition": { + "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", + "Name": "SLACK", + "DisplayName": "Slack", + "Config": { + "excludeKeys": [], + "includeKeys": [] + } + }, + "Config": { + "eventChannelSettings": [ + { + "eventChannelWebhook": "https://hooks.slack.com/services/example/test/demo", + "eventName": "is", + "eventRegex": true + } + ], + "eventTemplateSettings": [ + { + "eventName": "is", + "eventRegex": true, + "eventTemplate": "{{name}} performed {{event}} with {{properties. key1}} {{properties.key2}} and traits {{traitsList.hiji}}" + }, + { + "eventName": "", + "eventRegex": false, + "eventTemplate": "" + } + ], + "identifyTemplate": "identified {{name}} with {{traits}}", + "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", + "whitelistedTraitsSettings": [ + { + "trait": "hiji" + }, + { + "trait": "" + } + ] + }, + "Enabled": true, + "Transformations": [], + "IsProcessorEnabled": true + }, + "message": { + "anonymousId": "00000000000000000000000000", + "channel": "web", + "context": { + "app": { + "build": "1.0.0", + "name": "RudderLabs JavaScript SDK", + "namespace": "com.rudderlabs.javascript", + "version": "1.1.1-rc.1" + }, + "ip": "0.0.0.0", + "library": { + "name": "RudderLabs JavaScript SDK", + "version": "1.1.1-rc.1" + }, + "locale": "en-US", + "os": { + "name": "", + "version": "" + }, + "page": { + "path": "/tests/html/script-test.html", + "referrer": "http://localhost:1111/tests/html/", + "search": "", + "title": "", + "url": "http://localhost:1111/tests/html/script-test.html" + }, + "screen": { + "density": 1.7999999523162842 + }, + "traits": { + "country": "India", + "email": "name@domain.com", + "hiji": "hulala", + "name": "my-name" + }, + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36" + }, + "event": "test_isent1", + "integrations": { + "All": true + }, + "messageId": "78102118-56ac-4c5a-a495-8cd7c8f71cc2", + "originalTimestamp": "2020-03-23T03:46:30.921Z", + "properties": { + "currency": "USD", + "key1": "test_val1", + "key2": "test_val2", + "revenue": 30, + "user_actual_id": 12345 + }, + "receivedAt": "2020-03-23T09:16:31.064+05:30", + "request_ip": "[::1]:52057", + "sentAt": "2020-03-23T03:46:30.921Z", + "timestamp": "2020-03-23T09:16:31.064+05:30", + "type": "track", + "userId": "12345" + }, + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 128, + "messageId": "78102118-56ac-4c5a-a495-8cd7c8f71cc2", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 128, + "messageId": "78102118-56ac-4c5a-a495-8cd7c8f71cc2", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + }, + "statusCode": 400, + "error": "Something is wrong with the event template: '{{name}} performed {{event}} with {{properties. key1}} {{properties.key2}} and traits {{traitsList.hiji}}'", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "configuration", + "destType": "SLACK", + "module": "destination", + "implementation": "native", + "feature": "processor", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL" + } + } + ] + } + } + }, + { + "name": "slack", + "description": "Test 11", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "ID": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "Name": "test-slack", + "DestinationDefinition": { + "ID": "1ZQUiJVMlmF7lfsdfXg7KXQnlLV", + "Name": "SLACK", + "DisplayName": "Slack", + "Config": { + "excludeKeys": [], + "includeKeys": [] + } + }, + "Config": { + "eventChannelSettings": [ + { + "eventChannelWebhook": "https://hooks.slack.com/services/example/test/demo", + "eventName": "is", + "eventRegex": true + } + ], + "eventTemplateSettings": [ + { + "eventName": "is", + "eventRegex": true, + "eventTemplate": "{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}" + }, + { + "eventName": "", + "eventRegex": false, + "eventTemplate": "" + } + ], + "webhookUrl": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", + "whitelistedTraitsSettings": [ + { + "trait": "hiji" + }, + { + "trait": "" + } + ] + }, + "Enabled": true, + "Transformations": [], + "IsProcessorEnabled": true + }, + "message": { + "anonymousId": "00000000000000000000000000", + "channel": "web", + "context": {}, + "event": "black_event", + "integrations": { + "All": true + }, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "originalTimestamp": "2020-03-23T03:46:30.922Z", + "properties": { + "currency": "USD", + "key1": "test_val1", + "key2": "test_val2", + "revenue": 30, + "user_actual_id": 12345 + }, + "receivedAt": "2020-03-23T09:16:31.064+05:30", + "request_ip": "[::1]:52054", + "sentAt": "2020-03-23T03:46:30.923Z", + "timestamp": "2020-03-23T09:16:31.063+05:30", + "type": "track", + "userId": "12345" + }, + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 129, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo", + "headers": { + "Content-Type": "application/x-www-form-urlencoded" + }, + "params": {}, + "body": { + "JSON": {}, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": { + "payload": "{\"text\":\"User 12345 did black_event\",\"username\":\"RudderStack\",\"icon_url\":\"https://cdn.rudderlabs.com/rudderstack.png\"}" + } + }, + "files": {}, + "userId": "12345", + "statusCode": 200 + }, + "metadata": { + "anonymousId": "00000000000000000000000000", + "destinationId": "1ZQVSU9SXNg6KYgZALaqjAO3PIL", + "destinationType": "SLACK", + "jobId": 129, + "messageId": "8b8d5937-09bc-49dc-a35e-8cd6370575f8", + "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" + }, + "statusCode": 200 + } + ] + } + } + } +] \ No newline at end of file diff --git a/test/integrations/destinations/slack/router/data.ts b/test/integrations/destinations/slack/router/data.ts new file mode 100644 index 00000000000..87b1fe3b225 --- /dev/null +++ b/test/integrations/destinations/slack/router/data.ts @@ -0,0 +1,425 @@ +export const data = [ + { + name: 'slack', + description: 'Test 0', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + ID: '1ZQVSU9SXNg6KYgZALaqjAO3PIL', + Name: 'test-slack', + DestinationDefinition: { + ID: '1ZQUiJVMlmF7lfsdfXg7KXQnlLV', + Name: 'SLACK', + DisplayName: 'Slack', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + eventChannelSettings: [ + { + eventChannel: '#slack_integration', + eventName: 'is', + eventRegex: true, + }, + { + eventChannel: '', + eventName: '', + eventRegex: false, + }, + { + eventChannel: '', + eventName: '', + eventRegex: false, + }, + ], + eventTemplateSettings: [ + { + eventName: 'is', + eventRegex: true, + eventTemplate: + '{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}', + }, + { + eventName: '', + eventRegex: false, + eventTemplate: '', + }, + ], + identifyTemplate: 'identified {{name}} with {{traits}}', + webhookUrl: 'https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo', + whitelistedTraitsSettings: [ + { + trait: 'hiji', + }, + { + trait: '', + }, + ], + }, + Enabled: true, + Transformations: [], + IsrouterEnabled: true, + }, + message: { + anonymousId: '4de817fb-7f8e-4e23-b9be-f6736dbda20f', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.1', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + page: { + path: '/tests/html/script-test.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/script-test.html', + }, + screen: { + density: 1.7999999523162842, + }, + traits: { + country: 'India', + email: 'name@domain.com', + hiji: 'hulala', + name: 'my-name', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', + }, + integrations: { + All: true, + }, + messageId: '9ecc0183-89ed-48bd-87eb-b2d8e1ca6780', + originalTimestamp: '2020-03-23T03:46:30.916Z', + properties: { + path: '/tests/html/script-test.html', + referrer: 'http://localhost:1111/tests/html/', + search: '', + title: '', + url: 'http://localhost:1111/tests/html/script-test.html', + }, + receivedAt: '2020-03-23T09:16:31.041+05:30', + request_ip: '[::1]:52056', + sentAt: '2020-03-23T03:46:30.916Z', + timestamp: '2020-03-23T09:16:31.041+05:30', + type: 'page', + userId: '12345', + }, + metadata: { + anonymousId: '4de817fb-7f8e-4e23-b9be-f6736dbda20f', + destinationId: '1ZQVSU9SXNg6KYgZALaqjAO3PIL', + destinationType: 'SLACK', + jobId: 126, + messageId: '9ecc0183-89ed-48bd-87eb-b2d8e1ca6780', + sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + }, + }, + ], + destType: 'slack', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + destination: { + Config: { + eventChannelSettings: [ + { eventChannel: '#slack_integration', eventName: 'is', eventRegex: true }, + { eventChannel: '', eventName: '', eventRegex: false }, + { eventChannel: '', eventName: '', eventRegex: false }, + ], + eventTemplateSettings: [ + { + eventName: 'is', + eventRegex: true, + eventTemplate: + '{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}', + }, + { eventName: '', eventRegex: false, eventTemplate: '' }, + ], + identifyTemplate: 'identified {{name}} with {{traits}}', + webhookUrl: 'https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo', + whitelistedTraitsSettings: [{ trait: 'hiji' }, { trait: '' }], + }, + DestinationDefinition: { + Config: { excludeKeys: [], includeKeys: [] }, + DisplayName: 'Slack', + ID: '1ZQUiJVMlmF7lfsdfXg7KXQnlLV', + Name: 'SLACK', + }, + Enabled: true, + ID: '1ZQVSU9SXNg6KYgZALaqjAO3PIL', + IsrouterEnabled: true, + Name: 'test-slack', + Transformations: [], + }, + error: 'Event type page is not supported', + metadata: [ + { + anonymousId: '4de817fb-7f8e-4e23-b9be-f6736dbda20f', + destinationId: '1ZQVSU9SXNg6KYgZALaqjAO3PIL', + destinationType: 'SLACK', + jobId: 126, + messageId: '9ecc0183-89ed-48bd-87eb-b2d8e1ca6780', + sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + }, + ], + statTags: { + destType: 'SLACK', + destinationId: '1ZQVSU9SXNg6KYgZALaqjAO3PIL', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + }, + { + name: 'slack', + description: 'Test 1', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + ID: '1ZQVSU9SXNg6KYgZALaqjAO3PIL', + Name: 'test-slack', + DestinationDefinition: { + ID: '1ZQUiJVMlmF7lfsdfXg7KXQnlLV', + Name: 'SLACK', + DisplayName: 'Slack', + Config: { + excludeKeys: [], + includeKeys: [], + }, + }, + Config: { + eventChannelSettings: [ + { + eventChannel: '#slack_integration', + eventName: 'is', + eventRegex: true, + }, + { + eventChannel: '', + eventName: '', + eventRegex: false, + }, + { + eventChannel: '', + eventName: '', + eventRegex: false, + }, + ], + eventTemplateSettings: [ + { + eventName: 'is', + eventRegex: true, + eventTemplate: + '{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}', + }, + { + eventName: '', + eventRegex: false, + eventTemplate: '', + }, + ], + identifyTemplate: 'identified {{name}} with {{traits}}', + webhookUrl: 'https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo', + whitelistedTraitsSettings: [ + { + trait: 'hiji', + }, + { + trait: '', + }, + ], + }, + Enabled: true, + Transformations: [], + IsrouterEnabled: true, + }, + message: { + anonymousId: '12345', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.1-rc.1', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.1-rc.1', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + page: { + path: '', + referrer: '', + search: '', + title: '', + url: '', + }, + screen: { + density: 1.7999999523162842, + }, + traits: { + country: 'India', + email: 'name@domain.com', + hiji: 'hulala', + name: 'my-name', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', + }, + traits: { + country: 'USA', + email: 'test@domain.com', + hiji: 'hulala-1', + name: 'my-name-1', + }, + integrations: { + All: true, + }, + messageId: '4aaecff2-a513-4bbf-9824-c471f4ac9777', + originalTimestamp: '2020-03-23T03:41:46.122Z', + receivedAt: '2020-03-23T09:11:46.244+05:30', + request_ip: '[::1]:52055', + sentAt: '2020-03-23T03:41:46.123Z', + timestamp: '2020-03-23T09:11:46.243+05:30', + type: 'identify', + userId: '12345', + }, + metadata: { + anonymousId: '12345', + destinationId: '1ZQVSU9SXNg6KYgZALaqjAO3PIL', + destinationType: 'SLACK', + jobId: 123, + messageId: '4aaecff2-a513-4bbf-9824-c471f4ac9777', + sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + }, + }, + ], + destType: 'slack', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + batchedRequest: [ + { + body: { + FORM: { + payload: + '{"text":"identified my-name-1 with hiji: hulala-1 ","username":"RudderStack","icon_url":"https://cdn.rudderlabs.com/rudderstack.png"}', + }, + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo', + files: {}, + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + method: 'POST', + params: {}, + statusCode: 200, + type: 'REST', + userId: '12345', + version: '1', + }, + ], + destination: { + Config: { + eventChannelSettings: [ + { eventChannel: '#slack_integration', eventName: 'is', eventRegex: true }, + { eventChannel: '', eventName: '', eventRegex: false }, + { eventChannel: '', eventName: '', eventRegex: false }, + ], + eventTemplateSettings: [ + { + eventName: 'is', + eventRegex: true, + eventTemplate: + '{{name}} performed {{event}} with {{properties.key1}} {{properties.key2}}', + }, + { eventName: '', eventRegex: false, eventTemplate: '' }, + ], + identifyTemplate: 'identified {{name}} with {{traits}}', + webhookUrl: 'https://hooks.slack.com/services/THZM86VSS/BV9HZ2UN6/demo', + whitelistedTraitsSettings: [{ trait: 'hiji' }, { trait: '' }], + }, + DestinationDefinition: { + Config: { excludeKeys: [], includeKeys: [] }, + DisplayName: 'Slack', + ID: '1ZQUiJVMlmF7lfsdfXg7KXQnlLV', + Name: 'SLACK', + }, + Enabled: true, + ID: '1ZQVSU9SXNg6KYgZALaqjAO3PIL', + IsrouterEnabled: true, + Name: 'test-slack', + Transformations: [], + }, + metadata: [ + { + anonymousId: '12345', + destinationId: '1ZQVSU9SXNg6KYgZALaqjAO3PIL', + destinationType: 'SLACK', + jobId: 123, + messageId: '4aaecff2-a513-4bbf-9824-c471f4ac9777', + sourceId: '1YhwKyDcKstudlGxkeN5p2wgsrp', + }, + ], + statusCode: 200, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/snapchat_conversion/processor/data.ts b/test/integrations/destinations/snapchat_conversion/processor/data.ts new file mode 100644 index 00000000000..b0d14208cc7 --- /dev/null +++ b/test/integrations/destinations/snapchat_conversion/processor/data.ts @@ -0,0 +1,4609 @@ +export const data = [ + { + name: 'snapchat_conversion', + description: 'Test case for Page event-> PAGE_VIEW ', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: 'web', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'page', + name: 'Home Page Viewed', + properties: { + title: 'Home | RudderStack', + url: 'http://www.rudderstack.com', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + }, + }, + metadata: { + jobId: 20, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 20, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + userId: '', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_type: 'PAGE_VIEW', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'WEB', + page_url: 'http://www.rudderstack.com', + pixel_id: 'dummyPixelId', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case for Prodcuts Searched event for conversion type offline', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + firstName: 'john', + middleName: 'victor', + lastName: 'doe', + city: 'some_city', + state: 'some_state', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Products Searched', + properties: { + brands: 'abc', + query: 't-shirts', + event_conversion_type: 'web', + number_items: 4, + click_id: 'some_click_id', + description: 'Products Searched event for conversion type offline', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + pixelId: 'dummyPixelId', + apiKey: 'dummyApiKey', + }, + }, + metadata: { + jobId: 21, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 21, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + search_string: 't-shirts', + event_type: 'SEARCH', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'OFFLINE', + pixel_id: 'dummyPixelId', + number_items: 4, + click_id: 'some_click_id', + description: 'Products Searched event for conversion type offline', + hashed_first_name_sha: + '96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a', + hashed_last_name_sha: + '799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f', + hashed_state_sha: + '6db488fc98e30afdf67a05a6da916805b02891ce58f03970c6deff79129c5f1c', + hashed_middle_name_sha: + '99bde068af2d49ed7fc8b8fa79abe13a6059e0db320bb73459fd96624bb4b33f', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case for Track event without event Key', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + country: 'IN', + zicode: 'Sxp-12345', + region: 'some_region', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + properties: { + query: 't-shirts', + event_conversion_type: 'web', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + pixelId: 'dummyPixelId', + apiKey: 'dummyApiKey', + }, + }, + metadata: { + jobId: 22, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'Event name is required', + metadata: { + jobId: 22, + destinationId: 'd2', + workspaceId: 'w2', + }, + statTags: { + destType: 'SNAPCHAT_CONVERSION', + destinationId: 'd2', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + workspaceId: 'w2', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case for Identify event which is not supported in this destination', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'identify', + event: 'Products Searched', + properties: { + query: 't-shirts', + event_conversion_type: 'web', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + pixelId: 'dummyPixelId', + apiKey: 'dummyApiKey', + }, + }, + metadata: { + jobId: 23, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 23, + destinationId: 'd2', + workspaceId: 'w2', + }, + error: 'Event type identify is not supported', + statTags: { + destType: 'SNAPCHAT_CONVERSION', + destinationId: 'd2', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + workspaceId: 'w2', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Pixel id is not set as a destination config field', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Products Searched', + properties: { + query: 't-shirts', + event_conversion_type: 'web', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + }, + }, + metadata: { + jobId: 24, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 24, + destinationId: 'd2', + workspaceId: 'w2', + }, + error: 'Pixel Id is required for web and offline events', + statTags: { + destType: 'SNAPCHAT_CONVERSION', + destinationId: 'd2', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + workspaceId: 'w2', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case for Prodcuts Searched event for conversion type web', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: 'web', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Products Searched', + properties: { + query: 't-shirts', + event_conversion_type: 'web', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + }, + }, + metadata: { + jobId: 25, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 25, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + search_string: 't-shirts', + event_type: 'SEARCH', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'WEB', + pixel_id: 'dummyPixelId', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case where appId is not present in destination config', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: 'mobile', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Products Searched', + properties: { + query: 't-shirts', + event_conversion_type: 'web', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + }, + }, + metadata: { + jobId: 26, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 26, + destinationId: 'd2', + workspaceId: 'w2', + }, + error: 'Snap App Id is required for app events', + statTags: { + destType: 'SNAPCHAT_CONVERSION', + destinationId: 'd2', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + workspaceId: 'w2', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case where snap app id is not present in destination config', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: 'mobile', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Products Searched', + properties: { + query: 't-shirts', + event_conversion_type: 'web', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + }, + }, + metadata: { + jobId: 27, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 27, + destinationId: 'd2', + workspaceId: 'w2', + }, + error: 'Snap App Id is required for app events', + statTags: { + destType: 'SNAPCHAT_CONVERSION', + destinationId: 'd2', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + workspaceId: 'w2', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Product Searched event where conversion type is mobile app', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: 'mobile', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Products Searched', + properties: { + delivery_method: 'in_store', + query: 't-shirts', + event_conversion_type: 'web', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 28, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 28, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + delivery_method: 'in_store', + device_model: 'AOSP on IA Emulator', + search_string: 't-shirts', + event_type: 'SEARCH', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'MOBILE_APP', + snap_app_id: 'hfhdhfd', + app_id: 'dhfeih44f', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test Case for Product List Viewed event where conversion type is mobile app', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: 'mobile', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + country: 'IN', + zipcode: 'Sxp-12345', + region: 'some_region', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Product List Viewed', + properties: { + products: [ + { + product_id: '123', + price: '14', + }, + { + product_id: '123', + price: 14, + quantity: 3, + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 29, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 29, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_type: 'VIEW_CONTENT', + item_ids: ['123', '123'], + price: '56', + country: 'IN', + hashed_zip: 'cbb2704f5b334a0cec32e5463d1fd9355f6ef73987bfe0ebb8389b7617452152', + region: 'some_region', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'MOBILE_APP', + snap_app_id: 'hfhdhfd', + app_id: 'dhfeih44f', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case for checkout_started event where conversion type is mobile app', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: 'mobile', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'checkout_started', + properties: { + products: [ + { + product_id: '123', + price: '14', + }, + { + product_id: '123', + price: 14, + quantity: '2', + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 30, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 30, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_type: 'START_CHECKOUT', + item_ids: ['123', '123'], + price: '42', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'MOBILE_APP', + snap_app_id: 'hfhdhfd', + app_id: 'dhfeih44f', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test Case for Order Completed event where conversion type is mobile app', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: 'mobile', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Order Completed', + properties: { + brands: ['brand01', 'brand02'], + products: [ + { + product_id: '123', + price: '14', + quantity: 1, + }, + { + product_id: '124', + price: 14, + quantity: 3, + }, + ], + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 31, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 31, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_type: 'PURCHASE', + item_ids: ['123', '124'], + brands: ['brand01', 'brand02'], + price: '56', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'MOBILE_APP', + snap_app_id: 'hfhdhfd', + app_id: 'dhfeih44f', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test Case for Product Added event where conversion type is mobile app', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: 'mobile', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Product Added', + properties: { + product_id: '123', + price: '14', + category: 'shoes', + currency: 'USD', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 32, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 32, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + item_ids: '123', + item_category: 'shoes', + price: '14', + currency: 'USD', + event_type: 'ADD_CART', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'MOBILE_APP', + snap_app_id: 'hfhdhfd', + app_id: 'dhfeih44f', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case for Product Viewed event where conversion type is web', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: 'web', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Product Viewed', + properties: { + product_id: '123', + price: '14', + category: 'shoes', + currency: 'USD', + number_items: 14, + quantity: 1, + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 33, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 33, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + item_ids: '123', + item_category: 'shoes', + price: '14', + currency: 'USD', + event_type: 'VIEW_CONTENT', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'WEB', + pixel_id: 'dummyPixelId', + number_items: 14, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case for Product Viewed event where conversion type is offline', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: '', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Product Viewed', + properties: { + product_id: '123', + price: '14', + category: 'shoes', + currency: 'USD', + quantity: 1, + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 34, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 34, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + item_ids: '123', + item_category: 'shoes', + price: '14', + currency: 'USD', + event_type: 'VIEW_CONTENT', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'OFFLINE', + pixel_id: 'dummyPixelId', + number_items: 1, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case for Payment Info Entered event where conversion type is offline', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: '', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Payment Info Entered', + properties: { + checkout_id: '12dfdfdf3', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 35, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 35, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + transaction_id: '12dfdfdf3', + event_type: 'ADD_BILLING', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'OFFLINE', + pixel_id: 'dummyPixelId', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case for Subscribe event where conversion type is web', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: '', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'subscribe', + properties: { + checkout_id: '123', + price: '14', + category: 'shoes', + currency: 'USD', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 36, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 36, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + item_category: 'shoes', + price: '14', + currency: 'USD', + event_type: 'SUBSCRIBE', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'OFFLINE', + pixel_id: 'dummyPixelId', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case for Promotion Viewed event for conversion type offline', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: '', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Promotion Viewed', + properties: { + checkout_id: '123', + price: '14', + category: 'shoes', + currency: 'USD', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 37, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 37, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + item_category: 'shoes', + price: '14', + currency: 'USD', + event_type: 'AD_VIEW', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'OFFLINE', + pixel_id: 'dummyPixelId', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case for Promotion Clicked event for conversion type offline', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: '', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Promotion clicked', + properties: { + checkout_id: '123', + price: '14', + category: 'shoes', + currency: 'USD', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 38, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 38, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + item_category: 'shoes', + price: '14', + currency: 'USD', + event_type: 'AD_CLICK', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'OFFLINE', + pixel_id: 'dummyPixelId', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case for save event for conversion type offline', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: '', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'save', + properties: { + checkout_id: '123', + price: '14', + category: 'shoes', + currency: 'USD', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 39, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 39, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + item_category: 'shoes', + price: '14', + currency: 'USD', + event_type: 'SAVE', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'OFFLINE', + pixel_id: 'dummyPixelId', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case for Product Viewed event where conversion type is web', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Product Viewed', + properties: { + eventConversionType: 'web', + checkout_id: '123', + price: '14', + category: 'shoes', + currency: 'USD', + url: 'hjhb.com', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 40, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 40, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + item_category: 'shoes', + page_url: 'hjhb.com', + price: '14', + currency: 'USD', + event_type: 'VIEW_CONTENT', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'WEB', + pixel_id: 'dummyPixelId', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case for Product Viewed event where conversion type is offline', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Product Viewed', + properties: { + eventConversionType: 'offline', + checkout_id: '123', + price: '14', + category: 'shoes', + currency: 'USD', + url: 'hjhb.com', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 41, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 41, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + item_category: 'shoes', + price: '14', + currency: 'USD', + event_type: 'VIEW_CONTENT', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'OFFLINE', + pixel_id: 'dummyPixelId', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case for Product Searched event where conversion type is offline', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Products Searched', + properties: { + query: 't-shirts', + event_conversion_type: 'web', + event_tag: 'offline', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + pixelId: 'dummyPixelId', + apiKey: 'dummyApiKey', + }, + }, + metadata: { + jobId: 42, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 42, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + search_string: 't-shirts', + event_type: 'SEARCH', + event_tag: 'offline', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'OFFLINE', + pixel_id: 'dummyPixelId', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: + 'Test Case for Product Added To Whishlist event where conversion type is mobile app', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: 'mobile', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Product Added to Wishlist', + properties: { + product_id: '123', + price: '14', + category: 'shoes', + currency: 'USD', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 43, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 43, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + item_category: 'shoes', + item_ids: '123', + price: '14', + currency: 'USD', + event_type: 'ADD_TO_WISHLIST', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'MOBILE_APP', + snap_app_id: 'hfhdhfd', + app_id: 'dhfeih44f', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test case for Products Searched event using event mapping', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'ProdSearched', + properties: { + query: 't-shirts', + event_conversion_type: 'web', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + pixelId: 'dummyPixelId', + apiKey: 'dummyApiKey', + rudderEventsToSnapEvents: [ + { + from: 'ProdSearched', + to: 'products_searched', + }, + ], + }, + }, + metadata: { + jobId: 44, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 44, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + userId: '', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + search_string: 't-shirts', + event_type: 'SEARCH', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'OFFLINE', + pixel_id: 'dummyPixelId', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: "Test case event doesn't match with snapchat events", + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'ProdSearched', + properties: { + query: 't-shirts', + event_conversion_type: 'web', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + pixelId: 'dummyPixelId', + apiKey: 'dummyApiKey', + rudderEventsToSnapEvents: [], + }, + }, + metadata: { + jobId: 45, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 45, + destinationId: 'd2', + workspaceId: 'w2', + }, + error: "Event ProdSearched doesn't match with Snapchat Events!", + statTags: { + destType: 'SNAPCHAT_CONVERSION', + destinationId: 'd2', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'processor', + implementation: 'native', + module: 'destination', + workspaceId: 'w2', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: + 'test event naming (i.e passed vs the names provided in webapp) by bringing them to a common ground', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Product Added to Cart', + properties: { + query: 't-shirts', + event_conversion_type: 'web', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + pixelId: 'dummyPixelId', + apiKey: 'dummyApiKey', + rudderEventsToSnapEvents: [ + { + from: 'Product_Added_To_Cart', + to: 'products_searched', + }, + ], + }, + }, + metadata: { + jobId: 46, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 46, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + search_string: 't-shirts', + event_type: 'SEARCH', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'OFFLINE', + pixel_id: 'dummyPixelId', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: + 'test event naming (i.e passed vs the names provided in webapp) by bringing them to a common ground - here destination config need to be modified', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Product_Added_to_Cart', + properties: { + query: 't-shirts', + event_conversion_type: 'web', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + pixelId: 'dummyPixelId', + apiKey: 'dummyApiKey', + rudderEventsToSnapEvents: [ + { + from: 'Product Added To Cart', + to: 'products_searched', + }, + ], + }, + }, + metadata: { + jobId: 47, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 47, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + userId: '', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + search_string: 't-shirts', + event_type: 'SEARCH', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'OFFLINE', + pixel_id: 'dummyPixelId', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Enable deduplication with duplication key as email', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: 'mobile', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + request_ip: '127.0.0.1', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Order Completed', + properties: { + products: [ + { + product_id: '123', + price: '14', + quantity: 1, + }, + { + product_id: '123', + price: 14, + quantity: 3, + }, + ], + revenue: '100', + custom_dedup_id: '1234', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + deduplicationKey: 'properties.custom_dedup_id', + enableDeduplication: true, + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 48, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 48, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_type: 'PURCHASE', + item_ids: ['123', '123'], + client_dedup_id: '1234', + hashed_ip_address: + '12ca17b49af2289436f303e0166030a21e525d266e209267433801a8fd4071a0', + price: '100', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'MOBILE_APP', + snap_app_id: 'hfhdhfd', + app_id: 'dhfeih44f', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Mapping revenue to price for product list viewed event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: 'mobile', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Product List Viewed', + properties: { + products: [ + { + product_id: '123', + price: '14', + }, + { + product_id: '123', + price: 14, + quantity: 3, + }, + ], + revenue: '100', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 49, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 49, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_type: 'VIEW_CONTENT', + item_ids: ['123', '123'], + price: '100', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'MOBILE_APP', + snap_app_id: 'hfhdhfd', + app_id: 'dhfeih44f', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Mapping revenue to price for product list viewed event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: 'mobile', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Product List Viewed', + properties: { + products: [ + { + product_id: '123', + price: '14', + }, + { + product_id: '123', + price: 14, + quantity: 3, + }, + ], + revenue: '100', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 50, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 50, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_type: 'VIEW_CONTENT', + item_ids: ['123', '123'], + price: '100', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'MOBILE_APP', + snap_app_id: 'hfhdhfd', + app_id: 'dhfeih44f', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test Case for Order Completed event category', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: 'mobile', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Order Completed', + properties: { + brands: ['brand01', 'brand02'], + products: [ + { + product_id: '123', + price: '14', + quantity: 1, + }, + { + product_id: '124', + price: 14, + quantity: 3, + }, + ], + category: 'shoes', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 31, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 31, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_type: 'PURCHASE', + item_ids: ['123', '124'], + brands: ['brand01', 'brand02'], + item_category: 'shoes', + price: '56', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'MOBILE_APP', + snap_app_id: 'hfhdhfd', + app_id: 'dhfeih44f', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'snapchat_conversion', + description: 'Test Case for Order Completed event with both category and item_category', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + channel: 'mobile', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Order Completed', + properties: { + brands: ['brand01', 'brand02'], + products: [ + { + product_id: '123', + price: '14', + quantity: 1, + }, + { + product_id: '124', + price: 14, + quantity: 3, + }, + ], + category: 'shoes', + item_category: 'glass', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: false, + }, + }, + Config: { + apiKey: 'dummyApiKey', + pixelId: 'dummyPixelId', + appId: 'dhfeih44f', + snapAppId: 'hfhdhfd', + }, + }, + metadata: { + jobId: 31, + destinationId: 'd2', + workspaceId: 'w2', + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 31, + destinationId: 'd2', + workspaceId: 'w2', + }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + Authorization: 'Bearer dummyApiKey', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_type: 'PURCHASE', + item_ids: ['123', '124'], + brands: ['brand01', 'brand02'], + item_category: 'glass', + price: '56', + hashed_email: '73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2', + hashed_phone_number: + 'bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492', + hashed_mobile_ad_id: + 'f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2', + hashed_idfv: '54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f', + user_agent: + 'mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36', + timestamp: '1650625078', + event_conversion_type: 'MOBILE_APP', + snap_app_id: 'hfhdhfd', + app_id: 'dhfeih44f', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +].map((tc) => ({ + ...tc, + mockFns: (_) => { + // @ts-ignore + Date.now = jest.fn(() => new Date('2022-04-23T10:57:58Z')); + }, +})); diff --git a/test/integrations/destinations/snapchat_conversion/router/data.ts b/test/integrations/destinations/snapchat_conversion/router/data.ts new file mode 100644 index 00000000000..bfa9acd4d2c --- /dev/null +++ b/test/integrations/destinations/snapchat_conversion/router/data.ts @@ -0,0 +1,449 @@ +import { FEATURES, IMPLEMENTATIONS, MODULES } from '../../../../../src/v0/util/tags'; + +export const data = [ + { + name: 'snapchat_conversion', + description: 'Test 0', + feature: FEATURES.ROUTER, + module: MODULES.DESTINATION, + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Products Searched', + properties: { + query: 't-shirts', + event_conversion_type: 'web', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + metadata: { + jobId: 1, + }, + destination: { + Config: { + pixelId: 'dummyPixelId', + apiKey: 'dummyApiKey', + }, + }, + }, + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Products Searched', + properties: { + query: 't-shirts', + event_conversion_type: 'web', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + pixelId: 'dummyPixelId', + apiKey: 'dummyApiKey', + }, + }, + }, + { + message: { + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2022-04-22T10:57:58Z', + anonymousId: 'ea5cfab2-3961-4d8a-8187-3d1858c99090', + context: { + traits: { + email: 'test@email.com', + phone: '+91 2111111 ', + }, + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + device: { + advertisingId: 'T0T0T072-5e28-45a1-9eda-ce22a3e36d1a', + id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', + manufacturer: 'Google', + name: 'generic_x86_arm', + type: 'ios', + attTrackingStatus: 3, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: 'iOS', + version: '14.4.1', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'ga4AppInstanceId', + id: 'f0dd99v4f979fb997ce453373900f891', + }, + ], + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', + }, + type: 'track', + event: 'Products Searched', + properties: { + query: 't-shirts', + event_conversion_type: 'web', + }, + integrations: { + All: true, + }, + sentAt: '2022-04-22T10:57:58Z', + }, + metadata: { + jobId: 3, + }, + destination: { + Config: { + pixelId: 'dummyPixelId', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + destType: 'snapchat_conversion', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://tr.snapchat.com/v2/conversion', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer dummyApiKey', + }, + params: {}, + body: { + JSON: {}, + JSON_ARRAY: { + batch: + '[{"search_string":"t-shirts","event_type":"SEARCH","user_agent":"mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36","hashed_email":"73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2","hashed_phone_number":"bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492","hashed_idfv":"54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f","hashed_mobile_ad_id":"f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2","timestamp":"1650625078","event_conversion_type":"OFFLINE","pixel_id":"dummyPixelId"},{"search_string":"t-shirts","event_type":"SEARCH","user_agent":"mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36","hashed_email":"73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2","hashed_phone_number":"bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492","hashed_idfv":"54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f","hashed_mobile_ad_id":"f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2","timestamp":"1650625078","event_conversion_type":"OFFLINE","pixel_id":"dummyPixelId"},{"search_string":"t-shirts","event_type":"SEARCH","user_agent":"mozilla/5.0 (macintosh; intel mac os x 10_15_2) applewebkit/537.36 (khtml, like gecko) chrome/79.0.3945.88 safari/537.36","hashed_email":"73062d872926c2a556f17b36f50e328ddf9bff9d403939bd14b6c3b7f5a33fc2","hashed_phone_number":"bc77d64d7045fe44795ed926df37231a0cfb6ec6b74588c512790e9f143cc492","hashed_idfv":"54bd0b26a3d39dad90f5149db49b9fd9ba885f8e35d1d94cae69273f5e657b9f","hashed_mobile_ad_id":"f9779d734aaee50f16ee0011260bae7048f1d9a128c62b6a661077875701edd2","timestamp":"1650625078","event_conversion_type":"OFFLINE","pixel_id":"dummyPixelId"}]', + }, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 1, + }, + { + jobId: 2, + }, + { + jobId: 3, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + pixelId: 'dummyPixelId', + apiKey: 'dummyApiKey', + }, + }, + }, + ], + }, + }, + }, + mockFns: (_) => { + // @ts-ignore + Date.now = jest.fn(() => new Date('2022-04-22T10:57:58Z')); + }, + }, + { + name: 'snapchat_conversion', + description: 'Test 1', + feature: FEATURES.ROUTER, + module: MODULES.DESTINATION, + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'track', + event: 'Product List Viewed', + sentAt: '2022-08-01T15:04:58.764Z', + userId: 'd131b5f1fc@nana.sa', + channel: 'mobile', + context: { + os: { + name: 'iOS', + version: '15.5', + }, + app: { + name: 'CFBundleDisplayName', + build: '12.43.0.16', + version: '12.43.0', + namespace: 'iShopCloud.com', + }, + device: { + id: 'f244e389-d899-40a0-9673-1db87a8db7d3', + name: 'iPhone Monerah', + type: 'iOS', + model: 'iPhone', + manufacturer: 'Apple', + }, + locale: 'ar-SA', + screen: { + width: 896, + height: 414, + density: 2, + }, + traits: { + email: 'm@gmail.com', + phone: '00966556747779', + userId: 'd131b5f1fc@nana.sa', + address: { + city: 'الرياض', + country: 'sa', + }, + country: 'sa', + lastName: '', + firstName: 'منيرة ام عمر', + anonymousId: 'f244e389-d899-40a0-9673-1db87a8db7d3', + 'Mobile Number': '00966556747779', + 'Last App Close': '2022-07-29T21:43:30.342Z', + 'Activation code': '9997', + 'Activation date': '2022-03-24 19:37:42', + 'First App Close': '2022-05-18 07:53:03', + 'Mobile Number Status': 'Active', + 'Last Activated Device': { + UUID: 'F244E389-D899-40A0-9673-1DB87A8DB7D3', + Platform: 'IOS', + 'App Version': '12.38.0', + 'App Language': 'AR', + 'Platform Version': '15.4', + }, + ml_availability_segment: -1, + }, + library: { + name: 'rudder-ios-library', + version: '1.0.7', + }, + network: { + wifi: true, + carrier: 'unavailable', + cellular: false, + bluetooth: false, + }, + timezone: 'Asia/Riyadh', + userAgent: 'unknown', + externalId: [ + { + id: 'CBEDC847-F22C-447C-85DE-2BB693240F8E', + type: 'brazeExternalId', + }, + ], + }, + rudderId: '8fd7a036-fcbd-4ec3-b498-ea2cbf1df629', + messageId: '1659366289-4126c107-c1e1-4ee1-b534-fb49afca197b', + timestamp: '2022-08-01T15:04:49.593Z', + properties: { + Parent: 'Testing', + 'List ID': 'CAT00002903', + store_id: 'STR00001959', + 'List Name': 'User', + session_id: '', + 'Viewed From': 'home', + 'Category Position': 2, + 'Banner Position Segment': 'B', + category_personalise_segment: 'B', + }, + receivedAt: '2022-08-01T15:04:59.091Z', + request_ip: '78.95.64.84', + anonymousId: 'f244e389-d899-40a0-9673-1db87a8db7d3', + integrations: { + All: true, + }, + originalTimestamp: '2022-08-01T15:04:49.266Z', + }, + metadata: { + jobId: 4, + }, + destination: { + Config: { + pixelId: 'dummyPixelId', + apiKey: 'dummyApiKey', + appId: 'jahsdfjk-5487-asdfa-9957-7c74eb8d3e80', + snapAppId: '', + enableDeduplication: false, + rudderEventsToSnapEvents: [ + { + from: 'Product List Viewed', + to: 'product_list_viewed', + }, + ], + }, + }, + }, + ], + destType: 'snapchat_conversion', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + metadata: [ + { + jobId: 4, + }, + ], + batched: false, + statusCode: 400, + error: 'Snap App Id is required for app events', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: FEATURES.ROUTER, + implementation: IMPLEMENTATIONS.NATIVE, + module: MODULES.DESTINATION, + destType: 'SNAPCHAT_CONVERSION', + }, + destination: { + Config: { + pixelId: 'dummyPixelId', + apiKey: 'dummyApiKey', + appId: 'jahsdfjk-5487-asdfa-9957-7c74eb8d3e80', + snapAppId: '', + enableDeduplication: false, + rudderEventsToSnapEvents: [ + { + from: 'Product List Viewed', + to: 'product_list_viewed', + }, + ], + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/snapchat_custom_audience/dataDelivery/data.ts b/test/integrations/destinations/snapchat_custom_audience/dataDelivery/data.ts new file mode 100644 index 00000000000..2ed5625fe8a --- /dev/null +++ b/test/integrations/destinations/snapchat_custom_audience/dataDelivery/data.ts @@ -0,0 +1,222 @@ +export const data = [ + { + "name": "snapchat_custom_audience", + "description": "Test 0", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", + "headers": { + "Authorization": "Bearer abcd123", + "Content-Type": "application/json" + }, + "body": { + "JSON": { + "users": [ + { + "schema": [ + "EMAIL_SHA256" + ], + "data": [ + [ + "938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c" + ] + ] + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "params": { + "destination": "snapchat_custom_audience" + } + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 200, + "body": { + "output": { + "status": 200, + "message": "Request Processed Successfully", + "destinationResponse": { + "response": { + "request_status": "SUCCESS", + "request_id": "12345", + "users": [ + { + "sub_request_status": "SUCCESS", + "user": { + "number_uploaded_users": 1 + } + } + ] + }, + "status": 200 + } + } + } + } + } + }, + { + "name": "snapchat_custom_audience", + "description": "Test 1", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://adsapi.snapchat.com/v1/segments/456/users", + "headers": { + "Authorization": "Bearer abcd123", + "Content-Type": "application/json" + }, + "body": { + "JSON": { + "users": [ + { + "schema": [ + "EMAIL_SHA256" + ], + "data": [ + [ + "938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c" + ] + ] + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "params": { + "destination": "snapchat_custom_audience" + } + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 500, + "body": { + "output": { + "status": 500, + "destinationResponse": { + "response": "unauthorized", + "status": 401 + }, + "message": "Failed with unauthorized during snapchat_custom_audience response transformation", + "statTags": { + "destType": "SNAPCHAT_CUSTOM_AUDIENCE", + "errorCategory": "network", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "errorType": "retryable", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination" + }, + "authErrorCategory": "REFRESH_TOKEN" + } + } + } + } + }, + { + "name": "snapchat_custom_audience", + "description": "Test 2", + "feature": "dataDelivery", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": { + "version": "1", + "type": "REST", + "method": "DELETE", + "endpoint": "https://adsapi.snapchat.com/v1/segments/789/users", + "headers": { + "Authorization": "Bearer abcd123", + "Content-Type": "application/json" + }, + "body": { + "JSON": { + "users": [ + { + "id": "123456", + "schema": [ + "EMAIL_SHA256" + ], + "data": [ + [ + "938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c" + ] + ] + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "params": { + "destination": "snapchat_custom_audience" + } + }, + "method": "POST" + } + }, + "output": { + "response": { + "status": 400, + "body": { + "output": { + "authErrorCategory": "AUTH_STATUS_INACTIVE", + "status": 400, + "destinationResponse": { + "response": { + "request_status": "ERROR", + "request_id": "98e2a602-3cf4-4596-a8f9-7f034161f89a", + "debug_message": "Caller does not have permission", + "display_message": "We're sorry, but the requested resource is not available at this time", + "error_code": "E3002" + }, + "status": 403 + }, + "message": "undefined during snapchat_custom_audience response transformation", + "statTags": { + "destType": "SNAPCHAT_CUSTOM_AUDIENCE", + "errorCategory": "network", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "errorType": "aborted", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination" + } + } + } + } + } + } +] \ No newline at end of file diff --git a/test/integrations/destinations/snapchat_custom_audience/network.ts b/test/integrations/destinations/snapchat_custom_audience/network.ts new file mode 100644 index 00000000000..9be134c2026 --- /dev/null +++ b/test/integrations/destinations/snapchat_custom_audience/network.ts @@ -0,0 +1,84 @@ +export const networkCallsData = [ + { + httpReq: { + url: 'https://adsapi.snapchat.com/v1/segments/123/users', + data: { + users: [ + { + schema: ['EMAIL_SHA256'], + data: [['938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c']], + }, + ], + }, + params: { destination: 'snapchat_custom_audience' }, + headers: { + Authorization: 'Bearer abcd123', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + request_status: 'SUCCESS', + request_id: '12345', + users: [{ sub_request_status: 'SUCCESS', user: { number_uploaded_users: 1 } }], + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + url: 'https://adsapi.snapchat.com/v1/segments/456/users', + data: { + users: [ + { + schema: ['EMAIL_SHA256'], + data: [['938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c']], + }, + ], + }, + params: { destination: 'snapchat_custom_audience' }, + headers: { + Authorization: 'Bearer abcd123', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { data: 'unauthorized', status: 401, statusText: 'Unauthorized' }, + }, + { + httpReq: { + url: 'https://adsapi.snapchat.com/v1/segments/789/users', + data: { + users: [ + { + id: '123456', + schema: ['EMAIL_SHA256'], + data: [['938758751f5af66652a118e26503af824404bc13acd1cb7642ddff99916f0e1c']], + }, + ], + }, + params: { destination: 'snapchat_custom_audience' }, + headers: { + Authorization: 'Bearer abcd123', + 'Content-Type': 'application/json', + 'User-Agent': 'RudderLabs', + }, + method: 'DELETE', + }, + httpRes: { + data: { + request_status: 'ERROR', + request_id: '98e2a602-3cf4-4596-a8f9-7f034161f89a', + debug_message: 'Caller does not have permission', + display_message: "We're sorry, but the requested resource is not available at this time", + error_code: 'E3002', + }, + status: 403, + statusText: 'Forbidden', + }, + }, +]; diff --git a/test/integrations/destinations/snapchat_custom_audience/processor/data.ts b/test/integrations/destinations/snapchat_custom_audience/processor/data.ts new file mode 100644 index 00000000000..9ad6106c7e9 --- /dev/null +++ b/test/integrations/destinations/snapchat_custom_audience/processor/data.ts @@ -0,0 +1,1404 @@ +export const data = [ + { + "name": "snapchat_custom_audience", + "description": "Test 0", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "destination": { + "Config": { + "segmentId": "123", + "disableHashing": false, + "schema": "email" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "email": "test@abc.com", + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", + "headers": { + "Authorization": "Bearer dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "users": [ + { + "schema": [ + "EMAIL_SHA256" + ], + "data": [ + [ + "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" + ] + ] + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "snapchat_custom_audience", + "description": "Test 1", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "destination": { + "Config": { + "segmentId": "123", + "disableHashing": true, + "schema": "email" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "remove": [ + { + "email": "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419", + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "DELETE", + "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", + "headers": { + "Authorization": "Bearer dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "users": [ + { + "schema": [ + "EMAIL_SHA256" + ], + "data": [ + [ + "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" + ] + ], + "id": "123" + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "snapchat_custom_audience", + "description": "Test 2", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "destination": { + "Config": { + "segmentId": "123", + "disableHashing": false, + "schema": "email" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "email": "test@abc.com", + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ], + "remove": [ + { + "email": "test@abc.com", + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", + "headers": { + "Authorization": "Bearer dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "users": [ + { + "schema": [ + "EMAIL_SHA256" + ], + "data": [ + [ + "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" + ] + ] + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "statusCode": 200 + }, + { + "output": { + "version": "1", + "type": "REST", + "method": "DELETE", + "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", + "headers": { + "Authorization": "Bearer dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "users": [ + { + "schema": [ + "EMAIL_SHA256" + ], + "data": [ + [ + "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" + ] + ], + "id": "123" + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "snapchat_custom_audience", + "description": "Test 3", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "destination": { + "Config": { + "segmentId": "123", + "disableHashing": false, + "schema": "email" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "email": "test@abc.com", + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + }, + { + "email": "test@rudderstack.com", + "phone": "@09876543210", + "firstName": "rudderlabs", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", + "headers": { + "Authorization": "Bearer dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "users": [ + { + "schema": [ + "EMAIL_SHA256" + ], + "data": [ + [ + "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" + ], + [ + "1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd" + ] + ] + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "snapchat_custom_audience", + "description": "Test 4", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "destination": { + "Config": { + "segmentId": "123", + "disableHashing": false, + "schema": "email" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "remove": [ + { + "email": "test@abc.com", + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + }, + { + "email": "test@rudderstack.com", + "phone": "@09876543210", + "firstName": "rudderlabs", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "DELETE", + "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", + "headers": { + "Authorization": "Bearer dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "users": [ + { + "schema": [ + "EMAIL_SHA256" + ], + "data": [ + [ + "d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419" + ], + [ + "1c5e54849f5c711ce38fa60716fbbe44bff478f9ca250897b39cdfc2438cd1bd" + ] + ], + "id": "123" + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "snapchat_custom_audience", + "description": "Test 5", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "destination": { + "Config": { + "segmentId": "123", + "disableHashing": false, + "schema": "email" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audience", + "properties": { + "listData": { + "add": [ + { + "email": "test@rudderstack.com", + "phone": "@09876543210", + "firstName": "rudderlabs", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "statusCode": 400, + "error": "Event type audience is not supported", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "SNAPCHAT_CUSTOM_AUDIENCE", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "snapchat_custom_audience", + "description": "Test 6", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "destination": { + "Config": { + "segmentId": "123", + "disableHashing": false, + "schema": "email" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "properties": { + "listData": { + "add": [ + { + "email": "test@rudderstack.com", + "phone": "@09876543210", + "firstName": "rudderlabs", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "statusCode": 400, + "error": "Event type is required", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "SNAPCHAT_CUSTOM_AUDIENCE", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "snapchat_custom_audience", + "description": "Test 7", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "destination": { + "Config": { + "segmentId": "123", + "disableHashing": false, + "schema": "email" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "statusCode": 400, + "error": "Message properties is not present. Aborting message", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "SNAPCHAT_CUSTOM_AUDIENCE", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "snapchat_custom_audience", + "description": "Test 8", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "destination": { + "Config": { + "segmentId": "123", + "disableHashing": false, + "schema": "email" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "statusCode": 400, + "error": "listData is not present inside properties. Aborting message", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "SNAPCHAT_CUSTOM_AUDIENCE", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "snapchat_custom_audience", + "description": "Test 9", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "destination": { + "Config": { + "segmentId": "123", + "disableHashing": false, + "schema": "email" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "abc": "123" + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "statusCode": 400, + "error": "Neither 'add' nor 'remove' property is present inside 'listData'. Aborting message", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "SNAPCHAT_CUSTOM_AUDIENCE", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "snapchat_custom_audience", + "description": "Test 10", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "destination": { + "Config": { + "segmentId": "123", + "disableHashing": false, + "schema": "email" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "remove": [ + { + "email": "", + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + }, + { + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "statusCode": 400, + "error": "Required schema parameter email is not found from payload", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "SNAPCHAT_CUSTOM_AUDIENCE", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "snapchat_custom_audience", + "description": "Test 11", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "destination": { + "Config": { + "segmentId": "123", + "disableHashing": false, + "schema": "email" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "remove": [ + { + "email": "abcd@abc.com", + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + }, + { + "phone": "@09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "DELETE", + "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", + "headers": { + "Authorization": "Bearer dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "users": [ + { + "schema": [ + "EMAIL_SHA256" + ], + "data": [ + [ + "8c37cbc5d9abb3082303c6548571cfc7655a4546ddc1e943f041fc9126e7274a" + ] + ], + "id": "123" + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "snapchat_custom_audience", + "description": "Test 12", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "destination": { + "Config": { + "segmentId": "123", + "disableHashing": false, + "schema": "phone" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "email": "test@abc.com", + "phone": "09876543210", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", + "headers": { + "Authorization": "Bearer dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "users": [ + { + "schema": [ + "PHONE_SHA256" + ], + "data": [ + [ + "7619ee8cea49187f309616e30ecf54be072259b43760f1f550a644945d5572f2" + ] + ] + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "snapchat_custom_audience", + "description": "Test 13", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "destination": { + "Config": { + "segmentId": "123", + "disableHashing": false, + "schema": "mobileAdId" + } + }, + "message": { + "userId": "user 1", + "anonymousId": "anon-id-new", + "event": "event1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "email": "test@abc.com", + "phone": "09876543210", + "mobileId": "1334", + "firstName": "test", + "lastName": "rudderlabs", + "country": "US", + "postalCode": "1245" + } + ] + }, + "enablePartialFailure": true + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "timestamp": "2020-02-02T00:23:09.544Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://adsapi.snapchat.com/v1/segments/123/users", + "headers": { + "Authorization": "Bearer dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "users": [ + { + "schema": [ + "MOBILE_AD_ID_SHA256" + ], + "data": [ + [ + "eb43272640b269219a01caf99c5a4122d6edc0916d45ac13c0ce80ca3ad2def0" + ] + ] + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "secret": { + "access_token": "dummyAccessToken", + "refresh_token": "dummyRefreshToken", + "developer_token": "dummyDeveloperToken" + } + }, + "statusCode": 200 + } + ] + } + } + } +] \ No newline at end of file diff --git a/test/integrations/destinations/snapchat_custom_audience/router/data.ts b/test/integrations/destinations/snapchat_custom_audience/router/data.ts new file mode 100644 index 00000000000..2807201e734 --- /dev/null +++ b/test/integrations/destinations/snapchat_custom_audience/router/data.ts @@ -0,0 +1,124 @@ +import { FEATURES, MODULES } from '../../../../../src/v0/util/tags'; + +const DEST_TYPE = 'snapchat_custom_audience'; + +export const data = [ + { + name: DEST_TYPE, + description: 'Test 0', + feature: FEATURES.ROUTER, + module: MODULES.DESTINATION, + version: 'v0', + input: { + request: { + body: { + input: [ + { + metadata: { + secret: { + access_token: 'dummyAccessToken', + refresh_token: 'dummyRefreshToken', + developer_token: 'dummyDeveloperToken', + }, + }, + destination: { + Config: { + segmentId: '123', + disableHashing: false, + schema: 'email', + }, + }, + message: { + userId: 'user 1', + anonymousId: 'anon-id-new', + event: 'event1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + email: 'test@abc.com', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', + country: 'US', + postalCode: '1245', + }, + ], + }, + enablePartialFailure: true, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + }, + ], + destType: DEST_TYPE, + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://adsapi.snapchat.com/v1/segments/123/users', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer dummyAccessToken', + }, + params: {}, + body: { + JSON: { + users: [ + { + data: [ + ['d3142c8f9c9129484daf28df80cc5c955791efed5e69afabb603bc8cb9ffd419'], + ], + schema: ['EMAIL_SHA256'], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + metadata: [ + { + secret: { + access_token: 'dummyAccessToken', + developer_token: 'dummyDeveloperToken', + refresh_token: 'dummyRefreshToken', + }, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + disableHashing: false, + schema: 'email', + segmentId: '123', + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/splitio/processor/data.ts b/test/integrations/destinations/splitio/processor/data.ts new file mode 100644 index 00000000000..6f77c6f562c --- /dev/null +++ b/test/integrations/destinations/splitio/processor/data.ts @@ -0,0 +1,915 @@ +export const data = [ + { + "name": "splitio", + "description": "Test 0", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "traits": { + "martin": 21.565, + "trafficTypeName": "user", + "vertical": "restaurant", + "eventTypeId": "page_load end to end", + "timestamp": 1513357833000, + "GMV": false + }, + "userId": "user123", + "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", + "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", + "context": { + "ip": "14.5.67.21", + "traits": { + "abc": "new-val", + "key": "key_user_0", + "value": "0.93" + }, + "library": { + "name": "http" + } + }, + "type": "group", + "groupId": "group1", + "timestamp": "2020-01-21T00:21:34.208Z", + "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", + "receivedAt": "2021-04-19T14:53:18.215+05:30", + "requestIP": "[::1]" + }, + "destination": { + "Config": { + "apiKey": "abcde", + "environment": "staging", + "trafficType": "user" + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://events.split.io/api/events", + "headers": { + "Content-Type": "application/json", + "Authorization": "Bearer abcde" + }, + "params": {}, + "body": { + "JSON": { + "eventTypeId": "group", + "key": "user123", + "timestamp": 1579566094208, + "environmentName": "staging", + "trafficTypeName": "user", + "properties": { + "martin": 21.565, + "vertical": "restaurant", + "GMV": false + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "splitio", + "description": "Test 1", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "traits": { + "martin": 21.565, + "trafficTypeName": "user", + "eventTypeId": "page_load end to end", + "timestamp": 1513357833000, + "address": { + "city": "San Francisco", + "state": "CA", + "country": "USA" + }, + "key1": { + "a": "a" + }, + "key2": [ + 1, + 2, + 3 + ], + "key3": { + "key4": {} + }, + "key5": null + }, + "userId": "user123", + "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", + "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", + "context": { + "ip": "14.5.67.21", + "traits": { + "abc": "new-val", + "key": "key_user_0" + }, + "library": { + "name": "http" + } + }, + "type": "identify", + "timestamp": "2020-01-21T00:21:34.208Z", + "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", + "receivedAt": "2021-04-19T14:53:18.215+05:30", + "requestIP": "[::1]" + }, + "destination": { + "Config": { + "apiKey": "abcde", + "environment": "staging", + "trafficType": "user" + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://events.split.io/api/events", + "headers": { + "Content-Type": "application/json", + "Authorization": "Bearer abcde" + }, + "params": {}, + "body": { + "JSON": { + "eventTypeId": "identify", + "key": "user123", + "timestamp": 1579566094208, + "environmentName": "staging", + "trafficTypeName": "user", + "properties": { + "martin": 21.565, + "address.city": "San Francisco", + "address.state": "CA", + "address.country": "USA", + "key1.a": "a", + "key2[0]": 1, + "key2[1]": 2, + "key2[2]": 3 + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "splitio", + "description": "Test 2", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "event": "splitio_test_1", + "messageId": "9b200548-5961-4448-9dbc-098b7ce85751", + "properties": { + "eventTypeId": "page_load", + "trafficTypeName": "user", + "key": "key_user_0", + "timestamp": 1513357833000, + "value": "0.93", + "martin": 21.565, + "vertical": "restaurant", + "GMV": true, + "abc": "new-val", + "property1": { + "property2": 1, + "property3": "test", + "property4": { + "subProp1": { + "a": "a", + "b": "b" + }, + "subProp2": [ + "a", + "b" + ], + "subProp3": { + "prop": {} + } + } + }, + "properties5": null + }, + "receivedAt": "2021-03-01T22:55:54.806Z", + "rudderId": "6886eb9e-215d-4f61-a651-4b8ef18aaea3", + "timestamp": "2021-03-01T22:55:54.771Z", + "type": "track", + "userId": "user 1" + }, + "destination": { + "Config": { + "apiKey": "abcde", + "environment": "production", + "trafficType": "user" + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://events.split.io/api/events", + "headers": { + "Content-Type": "application/json", + "Authorization": "Bearer abcde" + }, + "params": {}, + "body": { + "JSON": { + "eventTypeId": "splitio_test_1", + "key": "user 1", + "timestamp": 1614639354771, + "value": 0.93, + "environmentName": "production", + "trafficTypeName": "user", + "properties": { + "martin": 21.565, + "vertical": "restaurant", + "GMV": true, + "abc": "new-val", + "property1.property2": 1, + "property1.property3": "test", + "property1.property4.subProp1.a": "a", + "property1.property4.subProp1.b": "b", + "property1.property4.subProp2[0]": "a", + "property1.property4.subProp2[1]": "b" + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "splitio", + "description": "Test 3", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "name": "splitio_test_1", + "messageId": "9b200548-5961-4448-9dbc-098b7ce85751", + "properties": { + "eventTypeId": "page_load", + "trafficTypeName": "user", + "key": "key_user_0", + "timestamp": 1513357833000, + "value": "0.93", + "martin": 21.565, + "vertical": "restaurant", + "GMV": true, + "abc": "new-val" + }, + "receivedAt": "2021-03-01T22:55:54.806Z", + "rudderId": "6886eb9e-215d-4f61-a651-4b8ef18aaea3", + "timestamp": "2021-03-01T22:55:54.771Z", + "type": "page", + "userId": "user 1" + }, + "destination": { + "Config": { + "apiKey": "abcde", + "environment": "production", + "trafficType": "user" + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://events.split.io/api/events", + "headers": { + "Content-Type": "application/json", + "Authorization": "Bearer abcde" + }, + "params": {}, + "body": { + "JSON": { + "eventTypeId": "Viewed_splitio_test_1_page", + "key": "user 1", + "timestamp": 1614639354771, + "value": 0.93, + "environmentName": "production", + "trafficTypeName": "user", + "properties": { + "martin": 21.565, + "vertical": "restaurant", + "GMV": true, + "abc": "new-val" + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "splitio", + "description": "Test 4", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "name": "splitio_test_1", + "messageId": "9b200548-5961-4448-9dbc-098b7ce85751", + "properties": { + "eventTypeId": "page_load", + "trafficTypeName": "user", + "key": "key_user_0", + "timestamp": 1513357833000, + "value": "0.93", + "martin": 21.565, + "vertical": "restaurant", + "GMV": true, + "abc": "new-val" + }, + "receivedAt": "2021-03-01T22:55:54.806Z", + "rudderId": "6886eb9e-215d-4f61-a651-4b8ef18aaea3", + "timestamp": "2021-03-01T22:55:54.771Z", + "type": "screen", + "userId": "user 1" + }, + "destination": { + "Config": { + "apiKey": "abcde", + "environment": "staging", + "trafficType": "user" + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://events.split.io/api/events", + "headers": { + "Content-Type": "application/json", + "Authorization": "Bearer abcde" + }, + "params": {}, + "body": { + "JSON": { + "eventTypeId": "Viewed_splitio_test_1_screen", + "key": "user 1", + "timestamp": 1614639354771, + "value": 0.93, + "environmentName": "staging", + "trafficTypeName": "user", + "properties": { + "martin": 21.565, + "vertical": "restaurant", + "GMV": true, + "abc": "new-val" + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "splitio", + "description": "Test 5", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "userId": "user123", + "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", + "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", + "context": { + "ip": "14.5.67.21", + "traits": { + "abc": "new-val", + "key": "key_user_0", + "newProperty": "1", + "martin": 21.565, + "vertical": "restaurant", + "GMV": false + }, + "library": { + "name": "http" + } + }, + "type": "identify", + "timestamp": "2020-01-21T00:21:34.208Z", + "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", + "receivedAt": "2021-04-19T14:53:18.215+05:30", + "requestIP": "[::1]" + }, + "destination": { + "Config": { + "apiKey": "abcde", + "environment": "staging", + "trafficType": "user" + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://events.split.io/api/events", + "headers": { + "Content-Type": "application/json", + "Authorization": "Bearer abcde" + }, + "params": {}, + "body": { + "JSON": { + "eventTypeId": "identify", + "key": "user123", + "timestamp": 1579566094208, + "environmentName": "staging", + "trafficTypeName": "user", + "properties": { + "abc": "new-val", + "newProperty": "1", + "martin": 21.565, + "vertical": "restaurant", + "GMV": false + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "splitio", + "description": "Test 6", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "userId": "user123", + "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", + "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", + "context": { + "ip": "14.5.67.21", + "traits": { + "abc": "new-val", + "key": "key_user_0", + "newProperty": "1" + }, + "library": { + "name": "http" + } + }, + "timestamp": "2020-01-21T00:21:34.208Z", + "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", + "receivedAt": "2021-04-19T14:53:18.215+05:30", + "requestIP": "[::1]" + }, + "destination": { + "Config": { + "apiKey": "abcde", + "environment": "staging", + "trafficType": "user" + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "statusCode": 400, + "error": "Event type is required", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "SPLITIO", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "splitio", + "description": "Test 7", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "userId": "user123", + "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", + "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", + "context": { + "ip": "14.5.67.21", + "traits": { + "abc": "new-val", + "key": "key_user_0", + "newProperty": "1" + }, + "library": { + "name": "http" + } + }, + "type": "abc", + "timestamp": "2020-01-21T00:21:34.208Z", + "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", + "receivedAt": "2021-04-19T14:53:18.215+05:30", + "requestIP": "[::1]" + }, + "destination": { + "Config": { + "apiKey": "abcde", + "environment": "staging", + "trafficType": "user" + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "statusCode": 400, + "error": "Event type abc is not supported", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "SPLITIO", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "splitio", + "description": "Test 8", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "name": "@$%%^&", + "messageId": "9b200548-5961-4448-9dbc-098b7ce85751", + "properties": { + "eventTypeId": "page_load", + "trafficTypeName": "user", + "key": "key_user_0", + "timestamp": 1513357833000, + "value": "0.93", + "martin": 21.565, + "vertical": "restaurant", + "GMV": true, + "abc": "new-val" + }, + "receivedAt": "2021-03-01T22:55:54.806Z", + "rudderId": "6886eb9e-215d-4f61-a651-4b8ef18aaea3", + "timestamp": "2021-03-01T22:55:54.771Z", + "type": "page", + "userId": "user 1" + }, + "destination": { + "Config": { + "apiKey": "abcde", + "environment": "production", + "trafficType": "user" + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "statusCode": 400, + "error": "eventTypeId does not match with ideal format /^[\\dA-Za-z][\\w.-]{0,79}$/", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "SPLITIO", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "splitio", + "description": "Test 9", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "name": "1pplication accepted", + "messageId": "9b200548-5961-4448-9dbc-098b7ce85751", + "category": "food", + "properties": { + "eventTypeId": "page_load", + "trafficTypeName": "user", + "key": "key_user_0", + "timestamp": 1513357833000, + "value": "bc2", + "martin": 21.565, + "vertical": [ + "restaurant", + "mall" + ], + "GMV": true, + "abc": "new-val" + }, + "receivedAt": "2021-03-01T22:55:54.806Z", + "rudderId": "6886eb9e-215d-4f61-a651-4b8ef18aaea3", + "timestamp": "2021-03-01T22:55:54.771Z", + "type": "page", + "userId": "user 1" + }, + "destination": { + "Config": { + "apiKey": "abcde", + "environment": "production", + "trafficType": "user" + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://events.split.io/api/events", + "headers": { + "Content-Type": "application/json", + "Authorization": "Bearer abcde" + }, + "params": {}, + "body": { + "JSON": { + "eventTypeId": "Viewed_1pplication_accepted_page", + "key": "user 1", + "timestamp": 1614639354771, + "environmentName": "production", + "trafficTypeName": "user", + "properties": { + "martin": 21.565, + "vertical[0]": "restaurant", + "vertical[1]": "mall", + "GMV": true, + "abc": "new-val", + "category": "food" + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "splitio", + "description": "Test 10", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "userId": "user123", + "messageId": "c73198a8-41d8-4426-9fd9-de167194d5f3", + "rudderId": "bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5", + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + } + }, + "type": "identify", + "timestamp": "2020-01-21T00:21:34.208Z", + "writeKey": "1pe7u01A7rYOrvacE6WSgI6ESXh", + "receivedAt": "2021-04-19T14:53:18.215+05:30", + "requestIP": "[::1]" + }, + "destination": { + "Config": { + "apiKey": "abcde", + "environment": "staging", + "trafficType": "user" + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://events.split.io/api/events", + "headers": { + "Content-Type": "application/json", + "Authorization": "Bearer abcde" + }, + "params": {}, + "body": { + "JSON": { + "eventTypeId": "identify", + "key": "user123", + "timestamp": 1579566094208, + "environmentName": "staging", + "trafficTypeName": "user", + "properties": {} + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + } +] \ No newline at end of file diff --git a/test/integrations/destinations/splitio/router/data.ts b/test/integrations/destinations/splitio/router/data.ts new file mode 100644 index 00000000000..10047568128 --- /dev/null +++ b/test/integrations/destinations/splitio/router/data.ts @@ -0,0 +1,224 @@ +import { FEATURES } from '../../../../../src/v0/util/tags'; + +export const data = [ + { + name: 'splitio', + description: 'Test 0', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + traits: { + martin: 21.565000000000001, + trafficTypeName: 'user', + vertical: 'restaurant', + eventTypeId: 'page_load end to end', + timestamp: 1513357833000, + GMV: false, + }, + userId: 'user123', + messageId: 'c73198a8-41d8-4426-9fd9-de167194d5f3', + rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', + context: { + ip: '14.5.67.21', + traits: { + abc: 'new-val', + key: 'key_user_0', + value: '0.93', + }, + library: { + name: 'http', + }, + }, + type: 'group', + groupId: 'group1', + timestamp: '2020-01-21T00:21:34.208Z', + writeKey: '1pe7u01A7rYOrvacE6WSgI6ESXh', + receivedAt: '2021-04-19T14:53:18.215+05:30', + requestIP: '[::1]', + }, + metadata: { + jobId: 1, + }, + destination: { + Config: { + apiKey: 'abcde', + environment: 'staging', + trafficType: 'user', + }, + }, + }, + ], + destType: 'splitio', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://events.split.io/api/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer abcde', + }, + params: {}, + body: { + JSON: { + eventTypeId: 'group', + key: 'user123', + timestamp: 1579566094208, + environmentName: 'staging', + trafficTypeName: 'user', + properties: { + martin: 21.565, + vertical: 'restaurant', + GMV: false, + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 1, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: 'abcde', + environment: 'staging', + trafficType: 'user', + }, + }, + }, + ], + }, + }, + }, + }, + { + name: 'splitio', + description: 'Test 1', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + traits: { + martin: 21.565000000000001, + trafficTypeName: 'user', + eventTypeId: 'page_load end to end', + timestamp: 1513357833000, + }, + userId: 'user123', + messageId: 'c73198a8-41d8-4426-9fd9-de167194d5f3', + rudderId: 'bda76e3e-87eb-4153-9d1e-e9c2ed48b7a5', + context: { + ip: '14.5.67.21', + traits: { + abc: 'new-val', + key: 'key_user_0', + }, + library: { + name: 'http', + }, + }, + type: 'identify', + timestamp: '2020-01-21T00:21:34.208Z', + writeKey: '1pe7u01A7rYOrvacE6WSgI6ESXh', + receivedAt: '2021-04-19T14:53:18.215+05:30', + requestIP: '[::1]', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + apiKey: 'abcde', + environment: 'staging', + trafficType: 'user', + }, + }, + }, + ], + destType: 'splitio', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://events.split.io/api/events', + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer abcde', + }, + params: {}, + body: { + JSON: { + eventTypeId: 'identify', + key: 'user123', + timestamp: 1579566094208, + environmentName: 'staging', + trafficTypeName: 'user', + properties: { + martin: 21.565, + }, + }, + XML: {}, + JSON_ARRAY: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 2, + }, + ], + batched: false, + statusCode: 200, + destination: { + Config: { + apiKey: 'abcde', + environment: 'staging', + trafficType: 'user', + }, + }, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/sprig/processor/data.ts b/test/integrations/destinations/sprig/processor/data.ts new file mode 100644 index 00000000000..6b99e5e13b6 --- /dev/null +++ b/test/integrations/destinations/sprig/processor/data.ts @@ -0,0 +1,504 @@ +export const data = [ + { + name: 'sprig', + description: 'No message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user@1', + channel: 'web', + context: { + traits: { + email: 'test@gmail.com', + firstName: 'Test', + lastName: 'Ruddelabs', + }, + }, + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.75705:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + }, + }, + metadata: { + jobId: 1, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 1, + }, + statusCode: 400, + error: + 'message Type is not present. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message Type is not present. Aborting', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'SPRIG', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'sprig', + description: 'Unsupported message type', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user@1', + groupId: 'group@1', + channel: 'web', + context: { + traits: { + email: 'test@gmail.com', + firstName: 'Test', + lastName: 'Rudderstack', + }, + }, + traits: {}, + type: 'group', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.75705:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + }, + }, + metadata: { + jobId: 2, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 2, + }, + statusCode: 400, + error: + 'message type group is not supported: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message type group is not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'SPRIG', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'sprig', + description: 'Missing config', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + userId: 'user@1', + channel: 'web', + context: { + traits: { + email: 'test@gmail.com', + firstName: 'Test', + lastName: 'Rudderstack', + }, + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.75705:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: {}, + }, + metadata: { + jobId: 3, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 3, + }, + statusCode: 400, + error: + 'API Key is not present. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: API Key is not present. Aborting', + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'SPRIG', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'sprig', + description: 'Identify call without userId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + anonymousId: 'anon@1', + context: { + traits: { + email: 'test@gmail.com', + firstName: 'Test', + lastName: 'Rudderlabs', + }, + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.75705:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + }, + }, + metadata: { + jobId: 4, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 4, + }, + statusCode: 400, + error: + 'userId is required: Workflow: procWorkflow, Step: validateIdentifyPayload, ChildStep: undefined, OriginalError: userId is required', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'SPRIG', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'sprig', + description: 'Successful identify call', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + userId: 'user@1', + context: { + traits: { + email: 'test@gmail.com', + firstName: 'Test', + lastName: 'Rudderlabs', + }, + }, + type: 'identify', + originalTimestamp: '2023-11-10T14:42:44.724Z', + timestamp: '2023-11-22T10:12:44.75705:30', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + }, + }, + metadata: { + jobId: 5, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 5, + }, + output: { + method: 'POST', + endpoint: 'https://api.sprig.com/v2/users', + headers: { + accept: 'application/json', + authorization: 'API-Key testApiKey', + 'content-type': 'application/json', + }, + body: { + JSON: { + attributes: { + email: 'test@gmail.com', + firstName: 'Test', + lastName: 'Rudderlabs', + }, + emailAddress: 'test@gmail.com', + userId: 'user@1', + }, + XML: {}, + FORM: {}, + JSON_ARRAY: {}, + }, + files: {}, + params: {}, + type: 'REST', + userId: '', + version: '1', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'sprig', + description: 'Track call with empty event name', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + userId: 'user@1', + context: { + traits: { + email: 'test@gmail.com', + firstName: 'Test', + lastName: 'Rudderlabs', + }, + }, + properties: {}, + type: 'track', + event: '', + originalTimestamp: '2020-11-29T19:11:00.337Z', + timestamp: '2023-11-29T19:11:00.337Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + }, + }, + metadata: { + jobId: 6, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 6, + }, + statusCode: 400, + error: + 'event name is required: Workflow: procWorkflow, Step: validateTrackPayload, ChildStep: undefined, OriginalError: event name is required', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'SPRIG', + module: 'destination', + implementation: 'cdkV2', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'sprig', + description: 'Successful track call', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + userId: 'user@1', + context: { + traits: { + email: 'test@gmail.com', + firstName: 'Test', + lastName: 'Rudderlabs', + }, + }, + properties: {}, + type: 'track', + event: 'signup', + originalTimestamp: '2020-11-29T19:11:00.337Z', + timestamp: '2023-11-29T19:11:00.337Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + apiKey: 'testApiKey', + }, + }, + metadata: { + jobId: 7, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + jobId: 7, + }, + output: { + method: 'POST', + endpoint: 'https://api.sprig.com/v2/users', + headers: { + accept: 'application/json', + authorization: 'API-Key testApiKey', + 'content-type': 'application/json', + }, + body: { + JSON: { + emailAddress: 'test@gmail.com', + userId: 'user@1', + events: [ + { + event: 'signup', + timestamp: 1701285060337, + }, + ], + }, + XML: {}, + FORM: {}, + JSON_ARRAY: {}, + }, + files: {}, + params: {}, + type: 'REST', + userId: '', + version: '1', + }, + statusCode: 200, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/statsig/processor/data.ts b/test/integrations/destinations/statsig/processor/data.ts new file mode 100644 index 00000000000..c76ce506dc2 --- /dev/null +++ b/test/integrations/destinations/statsig/processor/data.ts @@ -0,0 +1,1511 @@ +export const data = [ + { + name: 'statsig', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSPonIAEmulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createdat: '18th March 2020', + description: 'Premium User for 3 years', + email: 'identify@test.com', + firstname: 'John', + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9112340345', + username: 'john_sparrow', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + event: 'Product Clicked', + integrations: { + All: true, + }, + messageId: '1590431830915-73bed370-5889-436d-9a9e-0c0e0c809d06', + properties: { + revenue: '30', + currency: 'USD', + quantity: '5', + test_key_2: { + test_child_key_1: 'test_child_value_1', + }, + price: '58.0', + }, + originalTimestamp: '2020-05-25T18:37:10.917Z', + sentAt: '2020-05-25T18:37:10.917Z', + type: 'track', + userId: 'sample_user_id', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + secretKey: 'secret-tHe5ecr37', + }, + }, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.statsig.com/v1/webhooks/rudderstack', + headers: { + 'STATSIG-API-KEY': 'secret-tHe5ecr37', + 'content-type': 'application/json', + }, + params: {}, + body: { + JSON: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSPonIAEmulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createdat: '18th March 2020', + description: 'Premium User for 3 years', + email: 'identify@test.com', + firstname: 'John', + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9112340345', + username: 'john_sparrow', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + event: 'Product Clicked', + integrations: { + All: true, + }, + messageId: '1590431830915-73bed370-5889-436d-9a9e-0c0e0c809d06', + properties: { + revenue: '30', + currency: 'USD', + quantity: '5', + test_key_2: { + test_child_key_1: 'test_child_value_1', + }, + price: '58.0', + }, + originalTimestamp: '2020-05-25T18:37:10.917Z', + sentAt: '2020-05-25T18:37:10.917Z', + type: 'track', + userId: 'sample_user_id', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + }, + { + name: 'statsig', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createdat: '18th March 2020', + description: 'Premium User for 3 years', + email: 'identify@test.com', + firstname: 'John', + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9876543210', + username: 'john_sparrow', + quantity: '5', + price: '56.0', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + event: 'identify', + integrations: { + All: true, + }, + messageId: '1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9', + originalTimestamp: '2020-05-25T18:37:10.865Z', + sentAt: '2020-05-25T18:37:10.917Z', + type: 'identify', + userId: 'sample_user_id', + }, + destination: { + DestinationDefinition: { + Config: { + cdkEnabled: true, + }, + }, + Config: { + secretKey: 'secret-tHe5ecr37', + }, + }, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.statsig.com/v1/webhooks/rudderstack', + headers: { + 'STATSIG-API-KEY': 'secret-tHe5ecr37', + 'content-type': 'application/json', + }, + params: {}, + body: { + JSON: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createdat: '18th March 2020', + description: 'Premium User for 3 years', + email: 'identify@test.com', + firstname: 'John', + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9876543210', + username: 'john_sparrow', + quantity: '5', + price: '56.0', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + event: 'identify', + integrations: { + All: true, + }, + messageId: '1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9', + originalTimestamp: '2020-05-25T18:37:10.865Z', + sentAt: '2020-05-25T18:37:10.917Z', + type: 'identify', + userId: 'sample_user_id', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + }, + { + name: 'statsig', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createdat: '18th March 2020', + description: 'Premium User for 3 years', + email: 'page@test.com', + firstname: 'John', + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9876543210', + username: 'john_sparrow', + quantity: '5', + price: '56.0', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + event: 'page', + integrations: { + All: true, + }, + messageId: '1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9', + originalTimestamp: '2020-05-25T18:37:10.865Z', + sentAt: '2020-05-25T18:37:10.917Z', + type: 'page', + userId: 'sample_user_id', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + secretKey: 'secret-tHe5ecr37', + }, + }, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.statsig.com/v1/webhooks/rudderstack', + headers: { + 'STATSIG-API-KEY': 'secret-tHe5ecr37', + 'content-type': 'application/json', + }, + params: {}, + body: { + JSON: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createdat: '18th March 2020', + description: 'Premium User for 3 years', + email: 'page@test.com', + firstname: 'John', + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9876543210', + username: 'john_sparrow', + quantity: '5', + price: '56.0', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + event: 'page', + integrations: { + All: true, + }, + messageId: '1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9', + originalTimestamp: '2020-05-25T18:37:10.865Z', + sentAt: '2020-05-25T18:37:10.917Z', + type: 'page', + userId: 'sample_user_id', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + }, + { + name: 'statsig', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createdat: '18th March 2020', + description: 'Premium User for 3 years', + email: 'screen@test.com', + firstname: 'John', + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9876543210', + username: 'john_sparrow', + quantity: '5', + price: '56.0', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + event: 'screen', + integrations: { + All: true, + }, + messageId: '1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9', + originalTimestamp: '2020-05-25T18:37:10.865Z', + sentAt: '2020-05-25T18:37:10.917Z', + type: 'screen', + userId: 'sample_user_id', + }, + destination: { + DestinationDefinition: { + Config: { + cdkEnabled: true, + }, + }, + Config: { + secretKey: 'secret-tHe5ecr37', + }, + }, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.statsig.com/v1/webhooks/rudderstack', + headers: { + 'STATSIG-API-KEY': 'secret-tHe5ecr37', + 'content-type': 'application/json', + }, + params: {}, + body: { + JSON: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createdat: '18th March 2020', + description: 'Premium User for 3 years', + email: 'screen@test.com', + firstname: 'John', + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9876543210', + username: 'john_sparrow', + quantity: '5', + price: '56.0', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + event: 'screen', + integrations: { + All: true, + }, + messageId: '1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9', + originalTimestamp: '2020-05-25T18:37:10.865Z', + sentAt: '2020-05-25T18:37:10.917Z', + type: 'screen', + userId: 'sample_user_id', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + }, + { + name: 'statsig', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createdat: '18th March 2020', + description: 'Premium User for 3 years', + email: 'screen@test.com', + firstname: 'John', + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9876543210', + username: 'john_sparrow', + quantity: '5', + price: '56.0', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + event: 'screen', + integrations: { + All: true, + }, + messageId: '1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9', + originalTimestamp: '2020-05-25T18:37:10.865Z', + sentAt: '2020-05-25T18:37:10.917Z', + type: 'screen', + userId: 'sample_user_id', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + secretKey: 'secret-4n07h3rsecr3t', + }, + }, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.statsig.com/v1/webhooks/rudderstack', + headers: { + 'STATSIG-API-KEY': 'secret-4n07h3rsecr3t', + 'content-type': 'application/json', + }, + params: {}, + body: { + JSON: { + anonymousId: '8d872292709c6fbe', + channel: 'mobile', + context: { + app: { + build: '1', + name: 'AMTestProject', + namespace: 'com.rudderstack.android.rudderstack.sampleAndroidApp', + version: '1.0', + }, + device: { + id: '8d872292709c6fbe', + manufacturer: 'Google', + model: 'AOSP on IA Emulator', + name: 'generic_x86_arm', + type: 'android', + }, + library: { + name: 'com.rudderstack.android.sdk.core', + version: '1.0.2', + }, + locale: 'en-US', + network: { + carrier: 'Android', + bluetooth: false, + cellular: true, + wifi: true, + }, + os: { + name: 'Android', + version: '9', + }, + screen: { + density: 420, + height: 1794, + width: 1080, + }, + timezone: 'Asia/Kolkata', + traits: { + address: { + city: 'Kolkata', + country: 'India', + postalcode: '700096', + state: 'West bengal', + street: 'Park Street', + }, + age: '30', + anonymousId: '8d872292709c6fbe', + birthday: '2020-05-26', + createdat: '18th March 2020', + description: 'Premium User for 3 years', + email: 'screen@test.com', + firstname: 'John', + userId: 'sample_user_id', + lastname: 'Sparrow', + name: 'John Sparrow', + id: 'sample_user_id', + phone: '9876543210', + username: 'john_sparrow', + quantity: '5', + price: '56.0', + }, + userAgent: + 'Dalvik/2.1.0 (Linux; U; Android 9; AOSP on IA Emulator Build/PSR1.180720.117)', + }, + event: 'screen', + integrations: { + All: true, + }, + messageId: '1590431830865-3be680d6-7dcd-4b05-8460-f3acc30046d9', + originalTimestamp: '2020-05-25T18:37:10.865Z', + sentAt: '2020-05-25T18:37:10.917Z', + type: 'screen', + userId: 'sample_user_id', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + }, + { + name: 'statsig', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'alias', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + integrations: { + All: true, + }, + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkEnabled: true, + }, + }, + Config: { + secretKey: 'secret-tHe5ecr37', + }, + }, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.statsig.com/v1/webhooks/rudderstack', + headers: { + 'STATSIG-API-KEY': 'secret-tHe5ecr37', + 'content-type': 'application/json', + }, + params: {}, + body: { + JSON: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/destinations/amplitude', + referrer: '', + search: '', + title: '', + url: 'https://docs.rudderstack.com/destinations/amplitude', + category: 'destination', + initial_referrer: 'https://docs.rudderstack.com', + initial_referring_domain: 'docs.rudderstack.com', + }, + }, + type: 'alias', + messageId: 'dd46338d-5f83-493b-bd28-3b48f55d0be8', + originalTimestamp: '2020-10-20T08:14:28.778Z', + anonymousId: 'my-anonymous-id-new', + userId: 'newUserIdAlias', + integrations: { + All: true, + }, + previousId: 'sampleusrRudder3', + sentAt: '2020-10-20T08:14:28.778Z', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + }, + { + name: 'statsig', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: '123456', + type: 'group', + traits: { + anonymousId: '123456', + email: 'test@rudderstack.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + secretKey: 'secret-tHe5ecr37', + }, + }, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.statsig.com/v1/webhooks/rudderstack', + headers: { + 'STATSIG-API-KEY': 'secret-tHe5ecr37', + 'content-type': 'application/json', + }, + params: {}, + body: { + JSON: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: '123456', + type: 'group', + traits: { + anonymousId: '123456', + email: 'test@rudderstack.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + }, + { + name: 'statsig', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: '123456', + type: 'NOT_A_TYPE', + traits: { + anonymousId: '123456', + email: 'test@rudderstack.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + DestinationDefinition: { + Config: { + cdkEnabled: true, + }, + }, + Config: { + secretKey: 'secret-tHe5ecr37', + }, + }, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'Bad event. Original error: message type "NOT_A_TYPE" not supported for "statsig"', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'STATSIG', + module: 'destination', + implementation: 'cdkV1', + destinationId: 'd1', + workspaceId: 'w1', + feature: 'processor', + }, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/tiktok_ads/dataDelivery/data.ts b/test/integrations/destinations/tiktok_ads/dataDelivery/data.ts new file mode 100644 index 00000000000..810e1de4756 --- /dev/null +++ b/test/integrations/destinations/tiktok_ads/dataDelivery/data.ts @@ -0,0 +1,672 @@ +import { AxiosError } from 'axios'; +import MockAxiosAdapter from 'axios-mock-adapter'; +import lodash from 'lodash'; + +export const data = [ + { + name: 'tiktok_ads', + description: 'Test 0', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.2/pixel/batch/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + 'test-dest-response-key': 'successResponse', + }, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + partner_name: 'RudderStack', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + ad: { + callback: '123ATXSfe', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + external_id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone_number: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + params: { + destination: 'tiktok_ads', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + status: 200, + message: '[TIKTOK_ADS Response Handler] - Request Processed Successfully', + destinationResponse: { + response: { + code: 0, + message: 'OK', + }, + status: 200, + }, + }, + }, + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 1', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.2/pixel/batch/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + 'test-dest-response-key': 'invalidDataTypeResponse', + }, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + partner_name: 'RudderStack', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: 1077218, + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: 1197218, + }, + ], + currency: 'USD', + value: 46, + }, + context: { + ad: { + callback: '123ATXSfe', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + external_id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone_number: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + params: { + destination: 'tiktok_ads', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: 'Request failed with status: 40002', + destinationResponse: { + response: { + code: 40002, + message: 'Batch.0.properties.contents.0.content_id: Not a valid string', + }, + status: 200, + }, + statTags: { + destType: 'TIKTOK_ADS', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 2', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.2/pixel/batch/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + 'test-dest-response-key': 'invalidPermissionsResponse', + }, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + partner_name: 'RudderStack', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: 1077218, + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: 1197218, + }, + ], + currency: 'USD', + value: 46, + }, + context: { + ad: { + callback: '123ATXSfe', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + external_id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone_number: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + params: { + destination: 'tiktok_ads', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 400, + body: { + output: { + status: 400, + message: 'Request failed with status: 40001', + destinationResponse: { + response: { + code: 40001, + message: + 'No permission to operate pixel code: BU35TSQHT2A1QT375OMG. You must be an admin or operator of this advertiser account.', + }, + status: 200, + }, + statTags: { + destType: 'TIKTOK_ADS', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'aborted', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 3', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.2/pixel/batch/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + 'test-dest-response-key': 'tooManyRequests', + }, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + partner_name: 'RudderStack', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: 1077218, + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: 1197218, + }, + ], + currency: 'USD', + value: 46, + }, + context: { + ad: { + callback: '123ATXSfe', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + external_id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone_number: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + params: { + destination: 'tiktok_ads', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 429, + body: { + output: { + status: 429, + message: 'Request failed with status: 40100', + destinationResponse: { + response: { + code: 40100, + message: 'Too many requests. Please retry in some time.', + }, + status: 200, + }, + statTags: { + destType: 'TIKTOK_ADS', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'throttled', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 4', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.2/pixel/batch/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + 'test-dest-response-key': '502-BadGateway', + }, + params: { + destination: 'tiktok_ads', + }, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + partner_name: 'RudderStack', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: 1077218, + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: 1197218, + }, + ], + currency: 'USD', + value: 46, + }, + context: { + ad: { + callback: '123ATXSfe', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + external_id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone_number: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 502, + body: { + output: { + status: 502, + message: 'Request failed with status: 502', + destinationResponse: { + response: + '\r\n502 Bad Gateway\r\n\r\n

502 Bad Gateway

\r\n
nginx
\r\n\r\n\r\n', + status: 502, + }, + statTags: { + destType: 'TIKTOK_ADS', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 5', + feature: 'dataDelivery', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.2/pixel/batch/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: { + destination: 'tiktok_ads', + }, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + partner_name: 'RudderStack', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: 1077218, + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: 1197218, + }, + ], + currency: 'USD', + value: 46, + }, + context: { + ad: { + callback: '123ATXSfe', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + external_id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone_number: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + body: { + output: { + status: 500, + message: 'Request failed with status: 500', + destinationResponse: { + response: '[ECONNRESET] :: Connection reset by peer', + status: 500, + }, + statTags: { + destType: 'TIKTOK_ADS', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + mockFns: (mockAdapter: MockAxiosAdapter) => { + mockAdapter + .onPost( + 'https://business-api.tiktok.com/open_api/v1.2/pixel/batch/', + { + asymmetricMatch: (actual) => { + const expected = { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + partner_name: 'RudderStack', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: 1077218, // casted to string + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: 1197218, // casted to string + }, + ], + currency: 'USD', + value: 46, + }, + context: { + ad: { + callback: '123ATXSfe', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + external_id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }; + const isMatched = lodash.isMatch(actual, expected); + return isMatched; + }, + }, + { + asymmetricMatch: (actualHeader) => { + const isMatched = lodash.isMatch(actualHeader, { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }); + return isMatched; + }, + }, + ) + .reply((config) => { + // @ts-ignore + const err = AxiosError.from('Connection reset by peer', 'ECONNRESET', config); + return Promise.reject(err); + }); + }, + }, +]; diff --git a/test/integrations/destinations/tiktok_ads/network.ts b/test/integrations/destinations/tiktok_ads/network.ts new file mode 100644 index 00000000000..1cf0920259c --- /dev/null +++ b/test/integrations/destinations/tiktok_ads/network.ts @@ -0,0 +1,241 @@ +export const networkCallsData = [ + { + httpReq: { + url: 'https://business-api.tiktok.com/open_api/v1.2/pixel/batch/', + data: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + partner_name: 'RudderStack', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: '1077218' }, + { price: 30, quantity: 1, content_type: 'dress', content_id: '1197218' }, + ], + currency: 'USD', + value: 46, + }, + context: { + ad: { callback: '123ATXSfe' }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + external_id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone_number: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }, + params: { destination: 'tiktok_ads' }, + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + 'test-dest-response-key': 'successResponse', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { data: { code: 0, message: 'OK' }, status: 200 }, + }, + { + httpReq: { + url: 'https://business-api.tiktok.com/open_api/v1.2/pixel/batch/', + data: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + partner_name: 'RudderStack', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: 1077218 }, + { price: 30, quantity: 1, content_type: 'dress', content_id: 1197218 }, + ], + currency: 'USD', + value: 46, + }, + context: { + ad: { callback: '123ATXSfe' }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + external_id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone_number: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }, + params: { destination: 'tiktok_ads' }, + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + 'test-dest-response-key': 'invalidDataTypeResponse', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + code: 40002, + message: 'Batch.0.properties.contents.0.content_id: Not a valid string', + }, + status: 200, + }, + }, + { + httpReq: { + url: 'https://business-api.tiktok.com/open_api/v1.2/pixel/batch/', + data: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + partner_name: 'RudderStack', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: 1077218 }, + { price: 30, quantity: 1, content_type: 'dress', content_id: 1197218 }, + ], + currency: 'USD', + value: 46, + }, + context: { + ad: { callback: '123ATXSfe' }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + external_id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone_number: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }, + params: { destination: 'tiktok_ads' }, + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + 'test-dest-response-key': 'invalidPermissionsResponse', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + code: 40001, + message: + 'No permission to operate pixel code: BU35TSQHT2A1QT375OMG. You must be an admin or operator of this advertiser account.', + }, + status: 200, + }, + }, + { + httpReq: { + url: 'https://business-api.tiktok.com/open_api/v1.2/pixel/batch/', + data: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + partner_name: 'RudderStack', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: 1077218 }, + { price: 30, quantity: 1, content_type: 'dress', content_id: 1197218 }, + ], + currency: 'USD', + value: 46, + }, + context: { + ad: { callback: '123ATXSfe' }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + external_id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone_number: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }, + params: { destination: 'tiktok_ads' }, + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + 'test-dest-response-key': 'tooManyRequests', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { code: 40100, message: 'Too many requests. Please retry in some time.' }, + status: 200, + }, + }, + { + httpReq: { + url: 'https://business-api.tiktok.com/open_api/v1.2/pixel/batch/', + data: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + partner_name: 'RudderStack', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { price: 8, quantity: 2, content_type: 'socks', content_id: 1077218 }, + { price: 30, quantity: 1, content_type: 'dress', content_id: 1197218 }, + ], + currency: 'USD', + value: 46, + }, + context: { + ad: { callback: '123ATXSfe' }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + external_id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone_number: '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }, + params: { destination: 'tiktok_ads' }, + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + 'test-dest-response-key': '502-BadGateway', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: '\r\n502 Bad Gateway\r\n\r\n

502 Bad Gateway

\r\n
nginx
\r\n\r\n\r\n', + status: 502, + }, + }, +]; diff --git a/test/integrations/destinations/tiktok_ads/processor/data.ts b/test/integrations/destinations/tiktok_ads/processor/data.ts new file mode 100644 index 00000000000..46128f46b8d --- /dev/null +++ b/test/integrations/destinations/tiktok_ads/processor/data.ts @@ -0,0 +1,4955 @@ +export const data = [ + { + name: 'tiktok_ads', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'checkout step completed', + properties: { + eventId: '1616318632825_357', + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + clickId: 'dummyclickId', + currency: 'USD', + value: 46, + context: { + ad: { + callback: '123ATXSfe', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + ad: { + callback: 'dummyclickId', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'checkout started', + properties: { + eventId: '1616318632825_357', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'InitiateCheckout', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'Product Added to Wishlist', + properties: { + eventId: '1616318632825_357', + testEventCode: 'sample rudder test_event_code', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'AddToWishlist', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + test_event_code: 'sample rudder test_event_code', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'Product Added to Wishlist1', + properties: { + eventId: '1616318632825_357', + testEventCode: 'sample rudder test_event_code', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'Event name (product added to wishlist1) is not valid, must be mapped to one of standard events', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'TIKTOK_ADS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'Product Added to Wishlist', + properties: { + eventId: '1616318632825_357', + testEventCode: 'sample rudder test_event_code', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'AddToWishlist', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + test_event_code: 'sample rudder test_event_code', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'Product Added to Wishlist', + properties: { + eventId: '1616318632825_357', + testEventCode: 'sample rudder test_event_code', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'AddToWishlist', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + test_event_code: 'sample rudder test_event_code', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 6', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: '1234', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'SubscriBe', + properties: { + eventId: '1616318632825_357', + testEventCode: '', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: '+868987675687', + email: 'sample@sample.com', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: true, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'Subscribe', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '1d96e70d2bf54087e33586457cde2790825bee7b1a3b05d26481cb12ec8e63fd', + email: '774efc08cebab8c50c0f0eb2d3a2d2e560872a64f6c1617314c4f03b1c3d4dfa', + external_id: + '03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 7', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'payment info entered', + properties: { + eventId: '1616318632825_357', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'AddPaymentInfo', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 8', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + properties: { + eventId: '1616318632825_357', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Event name is required', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'TIKTOK_ADS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 9', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + properties: { + eventId: '1616318632825_357', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Event type is required', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'TIKTOK_ADS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 10', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + type: 'track', + event: 'payment info entered', + properties: { + eventId: '1616318632825_357', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'AddPaymentInfo', + event_id: '1616318632825_357', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 11', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'submitform', + properties: { + eventId: '16163186328257', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'SubmitForm', + event_id: '16163186328257', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 12', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'submitform', + properties: { + eventId: '16163186328257', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'SubmitForm', + event_id: '16163186328257', + timestamp: '2020-09-17T19:49:27Z', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 13', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'contact', + properties: { + eventId: '16163186328257', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'Contact', + event_id: '16163186328257', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 14', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'identify', + event: 'contact', + properties: { + eventId: '16163186328257', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Event type identify is not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'TIKTOK_ADS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 15', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'checkout step completed', + properties: { + eventId: '1616318632825_357', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 16', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'order completed', + properties: { + eventId: '1616318632825_357', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'PlaceAnOrder', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 17', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'user@sample.com', + phone: '+919912345678', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'SubscriBe', + properties: { + eventId: '1616318632825_357', + testEventCode: 'TEST0000000011', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: '+918987674657', + email: 'sample@rudder.com', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: true, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'Subscribe', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + test_event_code: 'TEST0000000011', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '1b6abcebb79b2208929967160ba291656f3fcd4f00e93b6a846c1e56c0e177c6', + email: '02e47a94635c1ffd6f6a69fe2c7a92dbfbb9d5e2ebddb54810520b34989b66a7', + external_id: + 'f0f3ec74bbef8580d7de80624dea93c05d828c748715199fe71bc7f5a67aa8b3', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 18', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'user@sample.com', + phone: '+919912345678', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'SubscriBe', + properties: { + eventId: '1616318632825_357', + testEventCode: 'TEST0000000011', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: '', + email: '', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: true, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'Subscribe', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + test_event_code: 'TEST0000000011', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '241102c24fa8a642e3d1346a31fbce3dd312563c015ae577a2253cb8652581eb', + email: 'a344da1fac6201ed1c1f20a07e1b55bb896a5ac0abd269c1e9daf1afbbffca3b', + external_id: + 'f0f3ec74bbef8580d7de80624dea93c05d828c748715199fe71bc7f5a67aa8b3', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 19', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + page: { + url: 'http://rudder.mywebsite.com/purchase', + referrer: 'http://rudder.mywebsite.com', + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'checkout step completed', + properties: { + eventId: '1616318632825_357', + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + context: { + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://rudder.mywebsite.com/purchase', + referrer: 'http://rudder.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 20', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'abc', + properties: { + eventId: '1616318632825_357', + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + eventsToStandard: [ + { + from: 'abc', + to: 'download', + }, + { + from: 'abc', + to: 'search', + }, + { + from: 'def', + to: 'search', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'download', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'search', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 21', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'abc', + properties: { + eventId: '1616318632825_357', + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + eventsToStandard: [ + { + from: 'def', + to: 'download', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: 'Event name (abc) is not valid, must be mapped to one of standard events', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'TIKTOK_ADS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 22', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'abc', + properties: { + eventId: '1616318632825_357', + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + eventsToStandard: [ + { + from: 'abc', + to: 'download', + }, + { + from: 'def', + to: 'download', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'download', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 23', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'abc', + properties: { + eventId: '1616318632825_357', + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: '+371234567890123', + email: 'sample@sample.com', + }, + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: true, + eventsToStandard: [ + { + from: 'abc', + to: 'download', + }, + { + from: 'def', + to: 'download', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'download', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '6080191ec608e10062e9257702cbca694cfe1bfa53944ba5701119d8f8b99ad6', + email: '774efc08cebab8c50c0f0eb2d3a2d2e560872a64f6c1617314c4f03b1c3d4dfa', + external_id: + 'f0f3ec74bbef8580d7de80624dea93c05d828c748715199fe71bc7f5a67aa8b3', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 24', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'abc', + properties: { + eventId: '1616318632825_357', + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: '+3712345678', + email: 'sample@sample.com', + }, + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: true, + eventsToStandard: [ + { + from: 'abc', + to: 'download', + }, + { + from: 'def', + to: 'download', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'download', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '6e6c1bb39126b3ecf537e62847909b1372a1a22de9b28d85960e12c78f322035', + email: '774efc08cebab8c50c0f0eb2d3a2d2e560872a64f6c1617314c4f03b1c3d4dfa', + external_id: + 'f0f3ec74bbef8580d7de80624dea93c05d828c748715199fe71bc7f5a67aa8b3', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 25', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'checkout step completed', + properties: { + eventId: '1616318632825_357', + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + products: [ + { + product_id: 123, + sku: 'G-32', + name: 'Monopoly', + price: 14, + quantity: 1, + category: 'Games', + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.jpg', + }, + { + product_id: '345', + sku: 'F-32', + name: 'UNO', + price: 3.45, + quantity: 2, + category: 'Games', + }, + ], + currency: 'USD', + value: 46, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 26', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'checkout step completed', + properties: { + eventId: '1616318632825_357', + products: [ + { + product_id: 123, + sku: 'G-32', + name: 'Monopoly', + price: 14, + quantity: 1, + contentType: 'product_group', + category: 'Games', + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.jpg', + }, + { + product_id: 345, + sku: 'F-32', + name: 'UNO', + price: 3.45, + contentType: 'product_group', + quantity: 2, + }, + ], + currency: 'USD', + value: 46, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + currency: 'USD', + value: 46, + contents: [ + { + content_type: 'product_group', + content_id: '123', + content_category: 'Games', + content_name: 'Monopoly', + price: 14, + quantity: 1, + }, + { + content_type: 'product_group', + content_id: '345', + content_name: 'UNO', + price: 3.45, + quantity: 2, + }, + ], + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 27', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'checkout step completed', + properties: { + eventId: '1616318632825_357', + products: [ + { + contentType: 'product_group', + product_id: '123', + sku: 'G-32', + name: 'Monopoly', + price: 14, + quantity: 1, + category: 'Games', + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.jpg', + }, + { + contentType: 'product_group', + product_id: '345', + sku: 'F-32', + name: 'UNO', + price: 3.45, + quantity: 2, + category: 'Games', + }, + ], + currency: 'USD', + value: 46, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + currency: 'USD', + value: 46, + contents: [ + { + content_type: 'product_group', + content_id: '123', + content_category: 'Games', + content_name: 'Monopoly', + price: 14, + quantity: 1, + }, + { + content_type: 'product_group', + content_id: '345', + content_category: 'Games', + content_name: 'UNO', + price: 3.45, + quantity: 2, + }, + ], + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 28', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'checkout step completed', + properties: { + category: 'Urban', + status: 'processed', + name: 'games', + contentType: 'product_group', + productId: 'qqw21221341234', + eventId: '1616318632825_357', + products: [ + { + product_id: '123', + sku: 'G-32', + name: 'Monopoly', + price: 14, + quantity: 1, + category: 'Games', + url: 'https://www.website.com/product/path', + image_url: 'https://www.website.com/product/path.jpg', + }, + { + product_id: '345', + sku: 'F-32', + name: 'UNO', + price: 3.45, + quantity: 2, + category: 'Games', + }, + ], + currency: 'USD', + value: 46, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'CompletePayment', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + content_category: 'Urban', + status: 'processed', + content_name: 'games', + content_id: 'qqw21221341234', + content_type: 'product_group', + currency: 'USD', + value: 46, + contents: [ + { + content_type: 'product_group', + content_id: '123', + content_category: 'Games', + content_name: 'Monopoly', + price: 14, + quantity: 1, + }, + { + content_type: 'product_group', + content_id: '345', + content_category: 'Games', + content_name: 'UNO', + price: 3.45, + quantity: 2, + }, + ], + }, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 29 -> custom_event Pass', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'custom_event', + properties: { + eventId: '1616318632825_357', + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + clickId: 'dummyclickId', + currency: 'USD', + value: 46, + context: { + ad: { + callback: '123ATXSfe', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + sendCustomEvents: true, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + event: 'custom_event', + event_id: '1616318632825_357', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + ad: { + callback: 'dummyclickId', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + partner_name: 'RudderStack', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 30 -> custom_event Failure case for flag set as false', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'custom_event', + properties: { + eventId: '1616318632825_357', + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + clickId: 'dummyclickId', + currency: 'USD', + value: 46, + context: { + ad: { + callback: '123ATXSfe', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'dd6ff77f54e2106661089bae4d40cdb600979bf7edc9eb65c0942ba55c7c2d7f', + }, + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + sendCustomEvents: false, + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'Event name (custom_event) is not valid, must be mapped to one of standard events', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'TIKTOK_ADS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/tiktok_ads/router/data.ts b/test/integrations/destinations/tiktok_ads/router/data.ts new file mode 100644 index 00000000000..a8c233c7a82 --- /dev/null +++ b/test/integrations/destinations/tiktok_ads/router/data.ts @@ -0,0 +1,783 @@ +import { FEATURES } from '../../../../../src/v0/util/tags'; + +export const data = [ + { + name: 'tiktok_ads', + description: 'Test 0', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'checkout step completed', + properties: { + eventId: '1616318632825_357', + clickId: 'dummyClickId', + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46.0, + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + }, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 5, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'checkout started', + properties: { + eventId: '1616318632825_357', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46.0, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 1, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'download', + properties: { + eventId: '1616318632825_357', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46.0, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 2, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'search', + properties: { + eventId: '1616318632825_357', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + email: 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46.0, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 4, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + destType: 'tiktok_ads', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/batch/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + partner_name: 'RudderStack', + batch: [ + { + event: 'CompletePayment', + event_id: '1616318632825_357', + type: 'track', + timestamp: '2020-09-17T19:49:27Z', + properties: { + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46, + }, + context: { + ad: { + callback: 'dummyClickId', + }, + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + email: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + }, + ip: '13.57.97.131', + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + }, + { + event: 'InitiateCheckout', + event_id: '1616318632825_357', + type: 'track', + timestamp: '2020-09-17T19:49:27Z', + context: { + ip: '13.57.97.131', + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + email: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + }, + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + properties: { + value: 46, + contents: [ + { + price: 8, + quantity: 2, + content_id: '1077218', + content_type: 'socks', + }, + { + price: 30, + quantity: 1, + content_id: '1197218', + content_type: 'dress', + }, + ], + currency: 'USD', + }, + }, + { + event: 'Download', + event_id: '1616318632825_357', + type: 'track', + timestamp: '2020-09-17T19:49:27Z', + context: { + ip: '13.57.97.131', + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + email: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + }, + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + properties: { + value: 46, + contents: [ + { + price: 8, + quantity: 2, + content_id: '1077218', + content_type: 'socks', + }, + { + price: 30, + quantity: 1, + content_id: '1197218', + content_type: 'dress', + }, + ], + currency: 'USD', + }, + }, + { + event: 'Search', + event_id: '1616318632825_357', + type: 'track', + timestamp: '2020-09-17T19:49:27Z', + context: { + ip: '13.57.97.131', + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + email: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + external_id: + 'f0e388f53921a51f0bb0fc8a2944109ec188b59172935d8f23020b1614cc44bc', + phone_number: + '2f9d2b4df907e5c9a7b3434351b55700167b998a83dc479b825096486ffcf4ea', + }, + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + properties: { + value: 46, + contents: [ + { + price: 8, + quantity: 2, + content_id: '1077218', + content_type: 'socks', + }, + { + price: 30, + quantity: 1, + content_id: '1197218', + content_type: 'dress', + }, + ], + currency: 'USD', + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + metadata: [ + { + jobId: 5, + }, + { + jobId: 1, + }, + { + jobId: 2, + }, + { + jobId: 4, + }, + ], + batched: true, + statusCode: 200, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: false, + }, + }, + }, + ], + }, + }, + }, + }, + { + name: 'tiktok_ads', + description: 'Test 1', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + anonymousId: '21e13f4bc7ceddad', + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + locale: 'en-US', + ip: '13.57.97.131', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + externalId: [ + { + type: 'tiktokExternalId', + id: '1234', + }, + ], + }, + messageId: '84e26acc-56a5-4835-8233-591137fca468', + session_id: '3049dc4c-5a95-4ccd-a3e7-d74a7e411f22', + originalTimestamp: '2019-10-14T09:03:17.562Z', + timestamp: '2020-09-17T19:49:27Z', + type: 'track', + event: 'Product Added to Wishlist', + properties: { + eventId: '1616318632825_357', + testEventCode: 'sample rudder test_event_code', + context: { + page: { + url: 'http://demo.mywebsite.com/purchase', + referrer: 'http://demo.mywebsite.com', + }, + user: { + phone_number: '+858987675687', + email: 'sample@sample.com', + }, + userAgent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + ip: '13.57.97.131', + }, + contents: [ + { + price: 8, + quantity: 2, + content_type: 'socks', + content_id: '1077218', + }, + { + price: 30, + quantity: 1, + content_type: 'dress', + content_id: '1197218', + }, + ], + currency: 'USD', + value: 46.0, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + jobId: 3, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: true, + }, + }, + }, + ], + destType: 'tiktok_ads', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + batchedRequest: [ + { + body: { + FORM: {}, + JSON: { + context: { + ip: '13.57.97.131', + page: { + referrer: 'http://demo.mywebsite.com', + url: 'http://demo.mywebsite.com/purchase', + }, + user: { + external_id: + '03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4', + phone_number: + '4443dd476f2be18201447ef046731c1a715accee4edc5192641a3b4c3ba921c7', + email: '774efc08cebab8c50c0f0eb2d3a2d2e560872a64f6c1617314c4f03b1c3d4dfa', + }, + user_agent: + 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion', + }, + event: 'AddToWishlist', + event_id: '1616318632825_357', + pixel_code: 'A1T8T4UYGVIQA8ORZMX9', + partner_name: 'RudderStack', + properties: { + contents: [ + { + content_id: '1077218', + content_type: 'socks', + price: 8, + quantity: 2, + }, + { + content_id: '1197218', + content_type: 'dress', + price: 30, + quantity: 1, + }, + ], + currency: 'USD', + value: 46, + }, + test_event_code: 'sample rudder test_event_code', + timestamp: '2020-09-17T19:49:27Z', + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/pixel/track/', + files: {}, + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + ], + destination: { + Config: { + accessToken: 'dummyAccessToken', + pixelCode: 'A1T8T4UYGVIQA8ORZMX9', + hashUserProperties: true, + }, + }, + metadata: [ + { + jobId: 3, + }, + ], + statusCode: 200, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/tiktok_ads_offline_events/processor/data.ts b/test/integrations/destinations/tiktok_ads_offline_events/processor/data.ts new file mode 100644 index 00000000000..a4ff796f379 --- /dev/null +++ b/test/integrations/destinations/tiktok_ads_offline_events/processor/data.ts @@ -0,0 +1,618 @@ +export const data = [ + { + "name": "tiktok_ads_offline_events", + "description": "Test 0", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "accessToken": "dummyAccessToken", + "hashUserProperties": true + } + }, + "message": { + "type": "Identify", + "userId": "yash001", + "originalTimestamp": "2019-10-14T09:03:17.562Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "statusCode": 400, + "error": "Event type identify is not supported", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "TIKTOK_ADS_OFFLINE_EVENTS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "tiktok_ads_offline_events", + "description": "Test 1", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "accessToken": "dummyAccessToken", + "hashUserProperties": false + } + }, + "message": { + "event": "subscribe", + "context": { + "traits": { + "phone": "c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646" + }, + "channel": "web" + }, + "properties": { + "eventSetId": "7181537436256731137", + "eventId": "1616318632825_352", + "order_id": "abc_xyz", + "shop_id": "123abc", + "currency": "USD", + "value": 46, + "price": 8, + "quantity": 2, + "content_type": "product1234", + "product_id": "1077218", + "name": "socks", + "category": "Men's cloth" + }, + "type": "track", + "userId": "eventIdn01", + "timestamp": "2023-01-03" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://business-api.tiktok.com/open_api/v1.3/offline/track/", + "headers": { + "Access-Token": "dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "event_set_id": "7181537436256731137", + "event_id": "1616318632825_352", + "timestamp": "2023-01-03", + "properties": { + "order_id": "abc_xyz", + "shop_id": "123abc", + "currency": "USD", + "value": 46, + "event_channel": "web", + "contents": [ + { + "content_name": "socks", + "content_type": "product1234", + "content_category": "Men's cloth", + "content_id": "1077218", + "price": 8, + "quantity": 2 + } + ] + }, + "event": "Subscribe", + "partner_name": "RudderStack", + "context": { + "user": { + "phone_numbers": [ + "c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646" + ] + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "event_set_id": "7181537436256731137", + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "tiktok_ads_offline_events", + "description": "Test 2", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "accessToken": "dummyAccessToken", + "hashUserProperties": true + } + }, + "message": { + "event": "subscribe", + "context": { + "traits": { + "phone": "1234567890" + }, + "channel": "web" + }, + "properties": { + "eventSetId": "7181537436256731137", + "eventId": "1616318632825_352", + "prop1": "val1" + }, + "type": "track", + "userId": "eventIdn01", + "timestamp": "2023-01-03" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://business-api.tiktok.com/open_api/v1.3/offline/track/", + "headers": { + "Access-Token": "dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "event_set_id": "7181537436256731137", + "event_id": "1616318632825_352", + "timestamp": "2023-01-03", + "properties": { + "event_channel": "web" + }, + "event": "Subscribe", + "partner_name": "RudderStack", + "context": { + "user": { + "phone_numbers": [ + "c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646" + ] + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "event_set_id": "7181537436256731137", + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "tiktok_ads_offline_events", + "description": "Test 3", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "accessToken": "dummyAccessToken", + "hashUserProperties": true, + "eventsToStandard": [ + { + "from": "RandomEvent", + "to": "SubmitForm" + } + ] + } + }, + "message": { + "event": "RandomEvent", + "context": { + "traits": { + "phone": "1234567890" + }, + "channel": "web" + }, + "properties": { + "eventSetId": "7185009018564395009", + "eventId": "1616318632003_004", + "prop1": "val1" + }, + "userId": "eventIdn01", + "timestamp": "2023-01-03", + "type": "track" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://business-api.tiktok.com/open_api/v1.3/offline/track/", + "headers": { + "Access-Token": "dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "event_set_id": "7185009018564395009", + "event_id": "1616318632003_004", + "timestamp": "2023-01-03", + "properties": { + "event_channel": "web" + }, + "event": "SubmitForm", + "partner_name": "RudderStack", + "context": { + "user": { + "phone_numbers": [ + "c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646" + ] + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "event_set_id": "7185009018564395009", + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "tiktok_ads_offline_events", + "description": "Test 4", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "hashUserProperties": true + } + }, + "message": { + "type": "track", + "userId": "yash001", + "originalTimestamp": "2019-10-14T09:03:17.562Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "statusCode": 400, + "error": "Access Token not found", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "configuration", + "destType": "TIKTOK_ADS_OFFLINE_EVENTS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + }, + { + "name": "tiktok_ads_offline_events", + "description": "Test 5", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "accessToken": "dummyAccessToken", + "hashUserProperties": true + } + }, + "message": { + "event": "subscribe", + "context": { + "traits": { + "phone": "1234567890", + "email": "random@mail.com" + }, + "channel": "web" + }, + "properties": { + "eventSetId": "7181537436256731137", + "eventId": "1616318632825_352", + "products": [ + { + "price": 8, + "quantity": 2, + "content_type": "product1", + "product_id": "1077218", + "name": "socks", + "category": "Men's cloth" + }, + { + "price": 18, + "quantity": 12, + "content_type": "product2", + "product_id": "1077219", + "name": "socks1", + "category": "Men's cloth1" + } + ] + }, + "type": "track", + "userId": "eventIdn01", + "timestamp": "2023-01-03" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://business-api.tiktok.com/open_api/v1.3/offline/track/", + "headers": { + "Access-Token": "dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "event_set_id": "7181537436256731137", + "event_id": "1616318632825_352", + "timestamp": "2023-01-03", + "properties": { + "event_channel": "web", + "contents": [ + { + "content_name": "socks", + "content_type": "product1", + "content_category": "Men's cloth", + "content_id": "1077218", + "price": 8, + "quantity": 2 + }, + { + "content_name": "socks1", + "content_type": "product2", + "content_category": "Men's cloth1", + "content_id": "1077219", + "price": 18, + "quantity": 12 + } + ] + }, + "event": "Subscribe", + "partner_name": "RudderStack", + "context": { + "user": { + "emails": [ + "d9fcca64ec1b250da4261a3f89a8e0f7749c4e0f5a1a918e5397194c8b5a9f16" + ], + "phone_numbers": [ + "c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646" + ] + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "event_set_id": "7181537436256731137", + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "tiktok_ads_offline_events", + "description": "Test 6", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "accessToken": "dummyAccessToken", + "hashUserProperties": true, + "eventsToStandard": [ + { + "from": "CompletePayment", + "to": "Purchase" + } + ] + } + }, + "message": { + "type": "track", + "event": "CompletePayment", + "sentAt": "2023-03-22T00:02:33.802Z", + "traits": { + "email": [ + "efaaf5c8803af4fbf305d7a110c832673d89ed40983770329092fd04b0ba7900", + "078d6c8e19f24093368d1712d7801970467f59216f7ccc087bf81b91e0e1f68f" + ], + "phone": [ + "c4994d14e724936f1169147dddf1673a09af69b55cc54bc695dbe246bd093b05", + "078d6c8e19f24093368d1712d7801970467f59216f7ccc087bf81b91e0e1f68f" + ] + }, + "userId": "60241286212", + "channel": "sources", + "context": { + "sources": { + "job_id": "2N4WuoNQpGYmCPASUvnV86QyhY4/Syncher", + "version": "v1.20.0", + "job_run_id": "cgd4a063b2fn2e1j0q90", + "task_run_id": "cgd4a063b2fn2e1j0qa0" + } + }, + "recordId": "16322", + "rudderId": "5b4ed73f-69aa-4198-88d1-3d4d509acbf1", + "messageId": "cgd4b663b2fn2e1j8th0", + "timestamp": "2023-03-22T00:02:33.170Z", + "properties": { + "phone": "c4994d14e724936f1169147dddf1673a09af69b55cc54bc695dbe246bd093b05", + "value": 32.839999999999996, + "emails": "[\"efaaf5c8803af4fbf305d7a110c832673d89ed40983770329092fd04b0ba7900\",\"078d6c8e19f24093368d1712d7801970467f59216f7ccc087bf81b91e0e1f68f\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]", + "eventId": "8965fb56-090f-47a5-aa7f-bbab22d9ec90", + "currency": "USD", + "order_id": 60241286212, + "eventSetId": "7211223771099742210", + "event_name": "CompletePayment" + }, + "receivedAt": "2023-03-22T00:02:33.171Z", + "request_ip": "10.7.78.187", + "anonymousId": "60241286212", + "originalTimestamp": "2023-03-22T00:02:33.802Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://business-api.tiktok.com/open_api/v1.3/offline/track/", + "headers": { + "Access-Token": "dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "event_set_id": "7211223771099742210", + "event_id": "8965fb56-090f-47a5-aa7f-bbab22d9ec90", + "timestamp": "2023-03-22T00:02:33.170Z", + "properties": { + "order_id": 60241286212, + "currency": "USD", + "value": 32.839999999999996 + }, + "event": "Purchase", + "partner_name": "RudderStack", + "context": { + "user": { + "emails": [ + "4dc75b075057df6f6b729e74a9feed1244dcf8ceb7903eaba13203f3268ae4b9", + "77b639edeb3cd6c801ea05176b8acbfa38d5f38490b764cd0c80756d0cf9ec68" + ], + "phone_numbers": [ + "28b7b205c2936d2ded022d2587fb2677a76e560e921b3ad615b739b0238baa5d", + "77b639edeb3cd6c801ea05176b8acbfa38d5f38490b764cd0c80756d0cf9ec68" + ] + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "event_set_id": "7211223771099742210", + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + } +] \ No newline at end of file diff --git a/test/integrations/destinations/tiktok_ads_offline_events/router/data.ts b/test/integrations/destinations/tiktok_ads_offline_events/router/data.ts new file mode 100644 index 00000000000..c479da741b9 --- /dev/null +++ b/test/integrations/destinations/tiktok_ads_offline_events/router/data.ts @@ -0,0 +1,416 @@ +import { FEATURES } from '../../../../../src/v0/util/tags'; + +export const data = [ + { + name: 'tiktok_ads_offline_events', + description: 'Test 0', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + metadata: { + jobId: 1, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + hashUserProperties: true, + }, + }, + message: { + event: 'subscribe', + context: { + traits: { + phone: '1234567890', + }, + channel: 'web', + }, + properties: { + eventSetId: '7181537436256731137', + eventId: '1616318632825_352', + order_id: 'abc_xyz', + shop_id: '123abc', + currency: 'USD', + value: 46.0, + price: 8, + quantity: 2, + content_type: 'product1234', + product_id: '1077218', + name: 'socks', + category: "Men's cloth", + }, + type: 'track', + userId: 'eventIdn01', + timestamp: '2023-01-03', + }, + }, + { + metadata: { + jobId: 2, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + hashUserProperties: true, + }, + }, + message: { + event: 'subscribe', + context: { + traits: { + phone: '1234567890', + email: 'random@mail.com', + }, + channel: 'web', + }, + properties: { + eventSetId: '7181537436256731137', + eventId: '1616318632825_352', + products: [ + { + price: 8, + quantity: 2, + content_type: 'product1', + product_id: '1077218', + name: 'socks', + category: "Men's cloth", + }, + { + price: 18, + quantity: 12, + content_type: 'product2', + product_id: '1077219', + name: 'socks1', + category: "Men's cloth1", + }, + ], + }, + type: 'track', + userId: 'eventIdn01', + timestamp: '2023-01-03', + }, + }, + ], + destType: 'tiktok_ads_offline_events', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: true, + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/offline/batch/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_set_id: '7181537436256731137', + partner_name: 'RudderStack', + batch: [ + { + event_set_id: '7181537436256731137', + event: 'Subscribe', + event_id: '1616318632825_352', + timestamp: '2023-01-03', + partner_name: 'RudderStack', + context: { + user: { + phone_numbers: [ + 'c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646', + ], + }, + }, + properties: { + order_id: 'abc_xyz', + shop_id: '123abc', + contents: [ + { + price: 8, + quantity: 2, + content_type: 'product1234', + content_id: '1077218', + content_name: 'socks', + content_category: "Men's cloth", + }, + ], + event_channel: 'web', + currency: 'USD', + value: 46.0, + }, + }, + { + event_set_id: '7181537436256731137', + event: 'Subscribe', + event_id: '1616318632825_352', + timestamp: '2023-01-03', + partner_name: 'RudderStack', + context: { + user: { + phone_numbers: [ + 'c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646', + ], + emails: [ + 'd9fcca64ec1b250da4261a3f89a8e0f7749c4e0f5a1a918e5397194c8b5a9f16', + ], + }, + }, + properties: { + event_channel: 'web', + contents: [ + { + price: 8, + quantity: 2, + content_type: 'product1', + content_id: '1077218', + content_name: 'socks', + content_category: "Men's cloth", + }, + { + price: 18, + quantity: 12, + content_type: 'product2', + content_id: '1077219', + content_name: 'socks1', + content_category: "Men's cloth1", + }, + ], + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + hashUserProperties: true, + }, + }, + metadata: [ + { + jobId: 1, + }, + { + jobId: 2, + }, + ], + statusCode: 200, + }, + ], + }, + }, + }, + }, + { + name: 'tiktok_ads_offline_events', + description: 'Test 1', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + metadata: { + jobId: 3, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + hashUserProperties: true, + }, + }, + message: { + event: 'subscribe', + context: { + traits: { + phone: '1234567890', + }, + channel: 'web', + }, + properties: { + eventSetId: '6071537445256731123', + eventId: '1616318632825_352', + currency: 'USD', + value: 46.0, + price: 8, + content_type: 'product1234', + }, + type: 'track', + userId: 'eventIdn01', + timestamp: '2023-01-03', + }, + }, + ], + destType: 'tiktok_ads_offline_events', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: true, + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/offline/batch/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + event_set_id: '6071537445256731123', + partner_name: 'RudderStack', + batch: [ + { + event_set_id: '6071537445256731123', + event: 'Subscribe', + event_id: '1616318632825_352', + timestamp: '2023-01-03', + partner_name: 'RudderStack', + context: { + user: { + phone_numbers: [ + 'c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646', + ], + }, + }, + properties: { + contents: [ + { + price: 8, + content_type: 'product1234', + }, + ], + event_channel: 'web', + currency: 'USD', + value: 46.0, + }, + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + hashUserProperties: true, + }, + }, + metadata: [ + { + jobId: 3, + }, + ], + statusCode: 200, + }, + ], + }, + }, + }, + }, + { + name: 'tiktok_ads_offline_events', + description: 'Test 2', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + metadata: { + jobId: 4, + }, + destination: { + Config: { + accessToken: 'dummyAccessToken', + hashUserProperties: true, + }, + }, + message: { + context: { + traits: { + phone: '1234567890', + }, + channel: 'web', + }, + properties: { + eventSetId: '2345676543', + eventId: '1616318632825_352', + }, + type: 'track', + userId: 'eventIdn01', + timestamp: '2023-01-03', + }, + }, + ], + destType: 'tiktok_ads_offline_events', + }, + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + destination: { + Config: { + accessToken: 'dummyAccessToken', + hashUserProperties: true, + }, + }, + batched: false, + error: 'Event name is required', + metadata: [ + { + jobId: 4, + }, + ], + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'TIKTOK_ADS_OFFLINE_EVENTS', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/tiktok_audience/processor/data.ts b/test/integrations/destinations/tiktok_audience/processor/data.ts new file mode 100644 index 00000000000..a715aa2f72d --- /dev/null +++ b/test/integrations/destinations/tiktok_audience/processor/data.ts @@ -0,0 +1,854 @@ +export const data = [ + { + "name": "tiktok_audience", + "description": "Test 1: Containing SHA256 traits only", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "userId": "user 1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "EMAIL_SHA256": "alex@email.com" + }, + { + "EMAIL_SHA256": "amy@abc.com" + }, + { + "EMAIL_SHA256": "van@abc.com" + } + ], + "remove": [ + { + "EMAIL_SHA256": "alex@email.com" + }, + { + "EMAIL_SHA256": "amy@abc.com" + }, + { + "EMAIL_SHA256": "van@abc.com" + } + ] + } + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + }, + "externalId": [ + { + "type": "TIKTOK_AUDIENCE-23856594064540489", + "identifierType": "EMAIL_SHA256" + } + ], + "destinationFields": "EMAIL_SHA256" + }, + "timestamp": "2020-02-02T00:23:09.544Z" + }, + "metadata": { + "jobId": 1, + "secret": { + "accessToken": "dummyAccessToken", + "advertiserIds": [ + "dummyAdverTiserID" + ] + } + }, + "destination": { + "DestinationDefinition": { + "Config": { + "cdkV2Enabled": true + } + }, + "Config": { + "isHashRequired": true, + "registerDeviceOrBrowserApiKey": true, + "apiKey": "intercomApiKey", + "appId": "9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0", + "collectContext": false + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://business-api.tiktok.com/open_api/v1.3/segment/mapping/", + "headers": { + "Access-Token": "dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "batch_data": [ + [ + { + "id": "ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b", + "audience_ids": [ + "23856594064540489" + ] + } + ], + [ + { + "id": "49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579", + "audience_ids": [ + "23856594064540489" + ] + } + ], + [ + { + "id": "2048acfa84a01121060ca2fc8a673a76d427176dc37224d4408c21973bd90e5c", + "audience_ids": [ + "23856594064540489" + ] + } + ] + ], + "id_schema": [ + "EMAIL_SHA256" + ], + "advertiser_ids": [ + "dummyAdverTiserID" + ], + "action": "add" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "jobId": 1, + "secret": { + "accessToken": "dummyAccessToken", + "advertiserIds": [ + "dummyAdverTiserID" + ] + } + }, + "statusCode": 200 + }, + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://business-api.tiktok.com/open_api/v1.3/segment/mapping/", + "headers": { + "Access-Token": "dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "batch_data": [ + [ + { + "id": "ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b", + "audience_ids": [ + "23856594064540489" + ] + } + ], + [ + { + "id": "49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579", + "audience_ids": [ + "23856594064540489" + ] + } + ], + [ + { + "id": "2048acfa84a01121060ca2fc8a673a76d427176dc37224d4408c21973bd90e5c", + "audience_ids": [ + "23856594064540489" + ] + } + ] + ], + "id_schema": [ + "EMAIL_SHA256" + ], + "advertiser_ids": [ + "dummyAdverTiserID" + ], + "action": "delete" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "jobId": 1, + "secret": { + "accessToken": "dummyAccessToken", + "advertiserIds": [ + "dummyAdverTiserID" + ] + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "tiktok_audience", + "description": "Test 2: Containing SHA256 and MD5 traits", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "userId": "user 1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "EMAIL_SHA256": "alex@email.com", + "AAID_MD5": "1234567" + }, + { + "EMAIL_SHA256": "amy@abc.com", + "AAID_MD5": "1234568" + }, + { + "EMAIL_SHA256": "van@abc.com", + "AAID_MD5": "1234569" + } + ], + "remove": [ + { + "EMAIL_SHA256": "alex@email.com", + "AAID_MD5": "1234570" + }, + { + "EMAIL_SHA256": "amy@abc.com", + "AAID_MD5": "1234571" + }, + { + "EMAIL_SHA256": "van@abc.com", + "AAID_MD5": "1234572" + } + ] + } + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + }, + "externalId": [ + { + "type": "TIKTOK_AUDIENCE-23856594064540489", + "identifierType": "EMAIL_SHA256" + } + ], + "destinationFields": "EMAIL_SHA256, AAID_MD5" + }, + "timestamp": "2020-02-02T00:23:09.544Z" + }, + "metadata": { + "jobId": 1, + "secret": { + "accessToken": "dummyAccessToken", + "advertiserIds": [ + "dummyAdverTiserID" + ] + } + }, + "destination": { + "DestinationDefinition": { + "Config": { + "cdkV2Enabled": true + } + }, + "Config": { + "isHashRequired": true, + "registerDeviceOrBrowserApiKey": true, + "apiKey": "intercomApiKey", + "appId": "9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0", + "collectContext": false + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://business-api.tiktok.com/open_api/v1.3/segment/mapping/", + "headers": { + "Access-Token": "dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "batch_data": [ + [ + { + "id": "ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b", + "audience_ids": [ + "23856594064540489" + ] + }, + { + "id": "fcea920f7412b5da7be0cf42b8c93759", + "audience_ids": [ + "23856594064540489" + ] + } + ], + [ + { + "id": "49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579", + "audience_ids": [ + "23856594064540489" + ] + }, + { + "id": "fe743d8d97aa7dfc6c93ccdc2e749513", + "audience_ids": [ + "23856594064540489" + ] + } + ], + [ + { + "id": "2048acfa84a01121060ca2fc8a673a76d427176dc37224d4408c21973bd90e5c", + "audience_ids": [ + "23856594064540489" + ] + }, + { + "id": "e36a2f90240e9e84483504fd4a704452", + "audience_ids": [ + "23856594064540489" + ] + } + ] + ], + "id_schema": [ + "EMAIL_SHA256", + "AAID_MD5" + ], + "advertiser_ids": [ + "dummyAdverTiserID" + ], + "action": "add" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "jobId": 1, + "secret": { + "accessToken": "dummyAccessToken", + "advertiserIds": [ + "dummyAdverTiserID" + ] + } + }, + "statusCode": 200 + }, + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://business-api.tiktok.com/open_api/v1.3/segment/mapping/", + "headers": { + "Access-Token": "dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "batch_data": [ + [ + { + "id": "ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b", + "audience_ids": [ + "23856594064540489" + ] + }, + { + "id": "c1abd65fea29d573ddef1bce925e3276", + "audience_ids": [ + "23856594064540489" + ] + } + ], + [ + { + "id": "49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579", + "audience_ids": [ + "23856594064540489" + ] + }, + { + "id": "7298110702a080dfc6903f13333eb04a", + "audience_ids": [ + "23856594064540489" + ] + } + ], + [ + { + "id": "2048acfa84a01121060ca2fc8a673a76d427176dc37224d4408c21973bd90e5c", + "audience_ids": [ + "23856594064540489" + ] + }, + { + "id": "d9cb68b1fd3b9d32abc5f4cab8b42b68", + "audience_ids": [ + "23856594064540489" + ] + } + ] + ], + "id_schema": [ + "EMAIL_SHA256", + "AAID_MD5" + ], + "advertiser_ids": [ + "dummyAdverTiserID" + ], + "action": "delete" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "jobId": 1, + "secret": { + "accessToken": "dummyAccessToken", + "advertiserIds": [ + "dummyAdverTiserID" + ] + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "tiktok_audience", + "description": "Test 3: Containing all possible traits", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "userId": "user 1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "EMAIL_SHA256": "alex@email.com", + "PHONE_SHA256": "+129988776655", + "IDFA_SHA256": "1234lkasfjdalj12321", + "AAID_SHA256": "000999OOOQQQQ", + "AAID_MD5": "000999OOOQQQQ", + "IDFA_MD5": "1234lkasfjdalj12321" + }, + { + "EMAIL_SHA256": "amy@abc.com", + "PHONE_SHA256": "+129988776677", + "IDFA_SHA256": "1234lkasfjdalj114455", + "AAID_SHA256": "000999OOOPPPP", + "AAID_MD5": "000999OOOPPPP", + "IDFA_MD5": "1234lkasfjdalj114455" + } + ] + } + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + }, + "externalId": [ + { + "type": "TIKTOK_AUDIENCE-23856594064540489", + "identifierType": "EMAIL_SHA256" + } + ], + "destinationFields": "EMAIL_SHA256, PHONE_SHA256, IDFA_SHA256, AAID_SHA256, AAID_MD, IDFA_MD5" + }, + "timestamp": "2020-02-02T00:23:09.544Z" + }, + "metadata": { + "jobId": 1, + "secret": { + "accessToken": "dummyAccessToken", + "advertiserIds": [ + "dummyAdverTiserID" + ] + } + }, + "destination": { + "DestinationDefinition": { + "Config": { + "cdkV2Enabled": true + } + }, + "Config": { + "isHashRequired": true, + "registerDeviceOrBrowserApiKey": true, + "apiKey": "intercomApiKey", + "appId": "9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0", + "collectContext": false + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://business-api.tiktok.com/open_api/v1.3/segment/mapping/", + "headers": { + "Access-Token": "dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "batch_data": [ + [ + { + "id": "ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b", + "audience_ids": [ + "23856594064540489" + ] + }, + { + "id": "31e78a3bf9ce2b43316f64fe883a531d6266938091e94e2f2480272481163dee", + "audience_ids": [ + "23856594064540489" + ] + }, + { + "id": "0259f595f7172c8dd692a5c37b4d296939555f862aae8adb964391bdb65006ab", + "audience_ids": [ + "23856594064540489" + ] + }, + { + "id": "b06fbe7a29f33576a792ba3df3c9bf838cd26ea88cf574285fa60dc0234a8485", + "audience_ids": [ + "23856594064540489" + ] + }, + {}, + { + "id": "32ee3d063320815a13e0058c2498ff76", + "audience_ids": [ + "23856594064540489" + ] + } + ], + [ + { + "id": "49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579", + "audience_ids": [ + "23856594064540489" + ] + }, + { + "id": "fb40adc7debbf40e7b45b0a4a91886785dff1a28809276f95f1c44f7045f9b4d", + "audience_ids": [ + "23856594064540489" + ] + }, + { + "id": "e6bbdf34c5f3472f31b2923a26811560a599233f3dea4c9971595c3bb7b1e8dc", + "audience_ids": [ + "23856594064540489" + ] + }, + { + "id": "661125f7d337811256c5b55996b22c89047804dcec494db72659e4be71e03091", + "audience_ids": [ + "23856594064540489" + ] + }, + {}, + { + "id": "94162773066d6ae88b2658dc58ca2317", + "audience_ids": [ + "23856594064540489" + ] + } + ] + ], + "id_schema": [ + "EMAIL_SHA256", + "PHONE_SHA256", + "IDFA_SHA256", + "AAID_SHA256", + "AAID_MD", + "IDFA_MD5" + ], + "advertiser_ids": [ + "dummyAdverTiserID" + ], + "action": "add" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "jobId": 1, + "secret": { + "accessToken": "dummyAccessToken", + "advertiserIds": [ + "dummyAdverTiserID" + ] + } + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "tiktok_audience", + "description": "Test 4: Considering some null values", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "message": { + "userId": "user 1", + "type": "audiencelist", + "properties": { + "listData": { + "add": [ + { + "EMAIL_SHA256": "alex@email.com", + "PHONE_SHA256": "+129988776655", + "AAID_MD5": "000999OOOQQQQ", + "IDFA_MD5": "1234lkasfjdalj12321" + }, + { + "EMAIL_SHA256": "amy@abc.com", + "AAID_SHA256": "000999OOOPPPP", + "AAID_MD5": "000999OOOPPPP", + "IDFA_MD5": "1234lkasfjdalj114455" + } + ] + } + }, + "context": { + "ip": "14.5.67.21", + "library": { + "name": "http" + }, + "externalId": [ + { + "type": "TIKTOK_AUDIENCE-23856594064540489", + "identifierType": "EMAIL_SHA256" + } + ], + "destinationFields": "EMAIL_SHA256, PHONE_SHA256, IDFA_SHA256, AAID_SHA256, AAID_MD, IDFA_MD5" + }, + "timestamp": "2020-02-02T00:23:09.544Z" + }, + "metadata": { + "jobId": 1, + "secret": { + "accessToken": "dummyAccessToken", + "advertiserIds": [ + "dummyAdverTiserID" + ] + } + }, + "destination": { + "DestinationDefinition": { + "Config": { + "cdkV2Enabled": true + } + }, + "Config": { + "isHashRequired": true, + "registerDeviceOrBrowserApiKey": true, + "apiKey": "intercomApiKey", + "appId": "9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0", + "collectContext": false + } + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://business-api.tiktok.com/open_api/v1.3/segment/mapping/", + "headers": { + "Access-Token": "dummyAccessToken", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "batch_data": [ + [ + { + "id": "ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b", + "audience_ids": [ + "23856594064540489" + ] + }, + { + "id": "31e78a3bf9ce2b43316f64fe883a531d6266938091e94e2f2480272481163dee", + "audience_ids": [ + "23856594064540489" + ] + }, + {}, + {}, + {}, + { + "id": "32ee3d063320815a13e0058c2498ff76", + "audience_ids": [ + "23856594064540489" + ] + } + ], + [ + { + "id": "49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579", + "audience_ids": [ + "23856594064540489" + ] + }, + {}, + {}, + { + "id": "661125f7d337811256c5b55996b22c89047804dcec494db72659e4be71e03091", + "audience_ids": [ + "23856594064540489" + ] + }, + {}, + { + "id": "94162773066d6ae88b2658dc58ca2317", + "audience_ids": [ + "23856594064540489" + ] + } + ] + ], + "id_schema": [ + "EMAIL_SHA256", + "PHONE_SHA256", + "IDFA_SHA256", + "AAID_SHA256", + "AAID_MD", + "IDFA_MD5" + ], + "advertiser_ids": [ + "dummyAdverTiserID" + ], + "action": "add" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "metadata": { + "jobId": 1, + "secret": { + "accessToken": "dummyAccessToken", + "advertiserIds": [ + "dummyAdverTiserID" + ] + } + }, + "statusCode": 200 + } + ] + } + } + } +] \ No newline at end of file diff --git a/test/integrations/destinations/tiktok_audience/router/data.ts b/test/integrations/destinations/tiktok_audience/router/data.ts new file mode 100644 index 00000000000..c8a8b93d306 --- /dev/null +++ b/test/integrations/destinations/tiktok_audience/router/data.ts @@ -0,0 +1,833 @@ +export const data = [ + { + name: 'tiktok_audience', + description: 'Multiple jobs with different metadata', + feature: 'router', + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL_SHA256: 'alex@email.com', + }, + { + EMAIL_SHA256: 'amy@abc.com', + }, + { + EMAIL_SHA256: 'van@abc.com', + }, + ], + remove: [ + { + EMAIL_SHA256: 'alex@email.com', + }, + { + EMAIL_SHA256: 'amy@abc.com', + }, + { + EMAIL_SHA256: 'van@abc.com', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + externalId: [ + { + type: 'TIKTOK_AUDIENCE-23856594064540489', + identifierType: 'EMAIL_SHA256', + }, + ], + destinationFields: 'EMAIL_SHA256', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 1, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + isHashRequired: true, + registerDeviceOrBrowserApiKey: true, + apiKey: 'intercomApiKey', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + collectContext: false, + }, + }, + }, + { + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL_SHA256: 'alex@email.com', + AAID_MD5: '1234567', + }, + { + EMAIL_SHA256: 'amy@abc.com', + AAID_MD5: '1234568', + }, + { + EMAIL_SHA256: 'van@abc.com', + AAID_MD5: '1234569', + }, + ], + remove: [ + { + EMAIL_SHA256: 'alex@email.com', + AAID_MD5: '1234570', + }, + { + EMAIL_SHA256: 'amy@abc.com', + AAID_MD5: '1234571', + }, + { + EMAIL_SHA256: 'van@abc.com', + AAID_MD5: '1234572', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + externalId: [ + { + type: 'TIKTOK_AUDIENCE-23856594064540489', + identifierType: 'EMAIL_SHA256', + }, + ], + destinationFields: 'EMAIL_SHA256, AAID_MD5', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 2, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + isHashRequired: true, + registerDeviceOrBrowserApiKey: true, + apiKey: 'intercomApiKey', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + collectContext: false, + }, + }, + }, + { + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL_SHA256: 'alex@email.com', + PHONE_SHA256: '+129988776655', + IDFA_SHA256: '1234lkasfjdalj12321', + AAID_SHA256: '000999OOOQQQQ', + AAID_MD5: '000999OOOQQQQ', + IDFA_MD5: '1234lkasfjdalj12321', + }, + { + EMAIL_SHA256: 'amy@abc.com', + PHONE_SHA256: '+129988776677', + IDFA_SHA256: '1234lkasfjdalj114455', + AAID_SHA256: '000999OOOPPPP', + AAID_MD5: '000999OOOPPPP', + IDFA_MD5: '1234lkasfjdalj114455', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + externalId: [ + { + type: 'TIKTOK_AUDIENCE-23856594064540489', + identifierType: 'EMAIL_SHA256', + }, + ], + destinationFields: + 'EMAIL_SHA256, PHONE_SHA256, IDFA_SHA256, AAID_SHA256, AAID_MD, IDFA_MD5', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 3, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + isHashRequired: true, + registerDeviceOrBrowserApiKey: true, + apiKey: 'intercomApiKey', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + collectContext: false, + }, + }, + }, + { + message: { + userId: 'user 1', + type: 'audiencelist', + properties: { + listData: { + add: [ + { + EMAIL_SHA256: 'alex@email.com', + PHONE_SHA256: '+129988776655', + AAID_MD5: '000999OOOQQQQ', + IDFA_MD5: '1234lkasfjdalj12321', + }, + { + EMAIL_SHA256: 'amy@abc.com', + AAID_SHA256: '000999OOOPPPP', + AAID_MD5: '000999OOOPPPP', + IDFA_MD5: '1234lkasfjdalj114455', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + externalId: [ + { + type: 'TIKTOK_AUDIENCE-23856594064540489', + identifierType: 'EMAIL_SHA256', + }, + ], + destinationFields: + 'EMAIL_SHA256, PHONE_SHA256, IDFA_SHA256, AAID_SHA256, AAID_MD, IDFA_MD5', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 4, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + isHashRequired: true, + registerDeviceOrBrowserApiKey: true, + apiKey: 'intercomApiKey', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + collectContext: false, + }, + }, + }, + { + message: { + userId: 'user 1', + properties: { + listData: { + add: [ + { + EMAIL_SHA256: 'alex@email.com', + PHONE_SHA256: '+129988776655', + AAID_MD5: '000999OOOQQQQ', + IDFA_MD5: '1234lkasfjdalj12321', + }, + { + EMAIL_SHA256: 'amy@abc.com', + AAID_SHA256: '000999OOOPPPP', + AAID_MD5: '000999OOOPPPP', + IDFA_MD5: '1234lkasfjdalj114455', + }, + ], + }, + }, + context: { + ip: '14.5.67.21', + library: { + name: 'http', + }, + externalId: [ + { + type: 'TIKTOK_AUDIENCE-23856594064540489', + identifierType: 'EMAIL_SHA256', + }, + ], + destinationFields: + 'EMAIL_SHA256, PHONE_SHA256, IDFA_SHA256, AAID_SHA256, AAID_MD, IDFA_MD5', + }, + timestamp: '2020-02-02T00:23:09.544Z', + }, + metadata: { + jobId: 1524545, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + isHashRequired: true, + registerDeviceOrBrowserApiKey: true, + apiKey: 'intercomApiKey', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + collectContext: false, + }, + }, + }, + ], + destType: 'tiktok_audience', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + error: 'message Type is not present. Aborting message.', + batched: false, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + isHashRequired: true, + registerDeviceOrBrowserApiKey: true, + apiKey: 'intercomApiKey', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + collectContext: false, + }, + }, + metadata: [ + { + jobId: 1524545, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + ], + statTags: { + destType: 'TIKTOK_AUDIENCE', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'router', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/segment/mapping/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + batch_data: [ + [ + { + id: 'ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '2048acfa84a01121060ca2fc8a673a76d427176dc37224d4408c21973bd90e5c', + audience_ids: ['23856594064540489'], + }, + ], + ], + id_schema: ['EMAIL_SHA256'], + advertiser_ids: ['dummyAdverTiserID'], + action: 'add', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/segment/mapping/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + batch_data: [ + [ + { + id: 'ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '2048acfa84a01121060ca2fc8a673a76d427176dc37224d4408c21973bd90e5c', + audience_ids: ['23856594064540489'], + }, + ], + ], + id_schema: ['EMAIL_SHA256'], + advertiser_ids: ['dummyAdverTiserID'], + action: 'delete', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + batched: true, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + isHashRequired: true, + registerDeviceOrBrowserApiKey: true, + apiKey: 'intercomApiKey', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + collectContext: false, + }, + }, + metadata: [ + { + jobId: 1, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + ], + statusCode: 200, + }, + { + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/segment/mapping/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + batch_data: [ + [ + { + id: 'ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b', + audience_ids: ['23856594064540489'], + }, + { + id: 'fcea920f7412b5da7be0cf42b8c93759', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579', + audience_ids: ['23856594064540489'], + }, + { + id: 'fe743d8d97aa7dfc6c93ccdc2e749513', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '2048acfa84a01121060ca2fc8a673a76d427176dc37224d4408c21973bd90e5c', + audience_ids: ['23856594064540489'], + }, + { + id: 'e36a2f90240e9e84483504fd4a704452', + audience_ids: ['23856594064540489'], + }, + ], + ], + id_schema: ['EMAIL_SHA256', 'AAID_MD5'], + advertiser_ids: ['dummyAdverTiserID'], + action: 'add', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/segment/mapping/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + batch_data: [ + [ + { + id: 'ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b', + audience_ids: ['23856594064540489'], + }, + { + id: 'c1abd65fea29d573ddef1bce925e3276', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579', + audience_ids: ['23856594064540489'], + }, + { + id: '7298110702a080dfc6903f13333eb04a', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '2048acfa84a01121060ca2fc8a673a76d427176dc37224d4408c21973bd90e5c', + audience_ids: ['23856594064540489'], + }, + { + id: 'd9cb68b1fd3b9d32abc5f4cab8b42b68', + audience_ids: ['23856594064540489'], + }, + ], + ], + id_schema: ['EMAIL_SHA256', 'AAID_MD5'], + advertiser_ids: ['dummyAdverTiserID'], + action: 'delete', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + batched: true, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + isHashRequired: true, + registerDeviceOrBrowserApiKey: true, + apiKey: 'intercomApiKey', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + collectContext: false, + }, + }, + metadata: [ + { + jobId: 2, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + ], + statusCode: 200, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/segment/mapping/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + batch_data: [ + [ + { + id: 'ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b', + audience_ids: ['23856594064540489'], + }, + { + id: '31e78a3bf9ce2b43316f64fe883a531d6266938091e94e2f2480272481163dee', + audience_ids: ['23856594064540489'], + }, + { + id: '0259f595f7172c8dd692a5c37b4d296939555f862aae8adb964391bdb65006ab', + audience_ids: ['23856594064540489'], + }, + { + id: 'b06fbe7a29f33576a792ba3df3c9bf838cd26ea88cf574285fa60dc0234a8485', + audience_ids: ['23856594064540489'], + }, + {}, + { + id: '32ee3d063320815a13e0058c2498ff76', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579', + audience_ids: ['23856594064540489'], + }, + { + id: 'fb40adc7debbf40e7b45b0a4a91886785dff1a28809276f95f1c44f7045f9b4d', + audience_ids: ['23856594064540489'], + }, + { + id: 'e6bbdf34c5f3472f31b2923a26811560a599233f3dea4c9971595c3bb7b1e8dc', + audience_ids: ['23856594064540489'], + }, + { + id: '661125f7d337811256c5b55996b22c89047804dcec494db72659e4be71e03091', + audience_ids: ['23856594064540489'], + }, + {}, + { + id: '94162773066d6ae88b2658dc58ca2317', + audience_ids: ['23856594064540489'], + }, + ], + ], + id_schema: [ + 'EMAIL_SHA256', + 'PHONE_SHA256', + 'IDFA_SHA256', + 'AAID_SHA256', + 'AAID_MD', + 'IDFA_MD5', + ], + advertiser_ids: ['dummyAdverTiserID'], + action: 'add', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + batched: true, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + isHashRequired: true, + registerDeviceOrBrowserApiKey: true, + apiKey: 'intercomApiKey', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + collectContext: false, + }, + }, + metadata: [ + { + jobId: 3, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + ], + statusCode: 200, + }, + { + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://business-api.tiktok.com/open_api/v1.3/segment/mapping/', + headers: { + 'Access-Token': 'dummyAccessToken', + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + batch_data: [ + [ + { + id: 'ac0f1baec38a9ef3cfcb56db981df7d9bab2568c7f53ef3776d1c059ec58e72b', + audience_ids: ['23856594064540489'], + }, + { + id: '31e78a3bf9ce2b43316f64fe883a531d6266938091e94e2f2480272481163dee', + audience_ids: ['23856594064540489'], + }, + {}, + {}, + {}, + { + id: '32ee3d063320815a13e0058c2498ff76', + audience_ids: ['23856594064540489'], + }, + ], + [ + { + id: '49eaeca26c878f268ad33af8cfa8194ca5b8b8e448b1c775bf9153a2de734579', + audience_ids: ['23856594064540489'], + }, + {}, + {}, + { + id: '661125f7d337811256c5b55996b22c89047804dcec494db72659e4be71e03091', + audience_ids: ['23856594064540489'], + }, + {}, + { + id: '94162773066d6ae88b2658dc58ca2317', + audience_ids: ['23856594064540489'], + }, + ], + ], + id_schema: [ + 'EMAIL_SHA256', + 'PHONE_SHA256', + 'IDFA_SHA256', + 'AAID_SHA256', + 'AAID_MD', + 'IDFA_MD5', + ], + advertiser_ids: ['dummyAdverTiserID'], + action: 'add', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + batched: true, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + isHashRequired: true, + registerDeviceOrBrowserApiKey: true, + apiKey: 'intercomApiKey', + appId: '9e9cdea1-78fa-4829-a9b2-5d7f7e96d1a0', + collectContext: false, + }, + }, + metadata: [ + { + jobId: 4, + secret: { + accessToken: 'dummyAccessToken', + advertiserIds: ['dummyAdverTiserID'], + }, + }, + ], + statusCode: 200, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/trengo/network.ts b/test/integrations/destinations/trengo/network.ts new file mode 100644 index 00000000000..e409489b8f6 --- /dev/null +++ b/test/integrations/destinations/trengo/network.ts @@ -0,0 +1,1326 @@ +export const networkCallsData = [ + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=9830311521', + }, + httpRes: { + data: { + data: [ + { + abbr: 'T', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + ], + color: '#607d8b', + custom_field_data: null, + display_name: 'Haz matsumi phone 2 (+98 30311521)', + email: null, + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 30311521', + full_name: 'Thalmor Bretz', + id: 90002431001, + identifier: '+98 30311521', + is_phone: true, + is_private: false, + name: 'Thalmor Bretz', + phone: '+98 30311521', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=j@d.com', + }, + httpRes: { + data: { + data: [], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=j@d.com', + }, + httpRes: { + data: { + data: [], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=null', + }, + httpRes: { data: { error: 'Request failed', status: 404 }, status: 200 }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=12345678910', + }, + httpRes: { + data: { + data: [], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=99999666661', + }, + httpRes: { data: { error: 'Request failed', status: 404 }, status: 200 }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=98765432100', + }, + httpRes: { + data: { + data: [ + { + abbr: 'T', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + ], + color: '#607d8b', + custom_field_data: null, + display_name: 'Michael Scott (+98 30311521)', + email: null, + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 765432100', + full_name: 'Michael Scott', + id: 90002431001, + identifier: '+98 765432100', + is_phone: true, + is_private: false, + name: 'Michael Scott', + phone: '+98 765432100', + pivot: null, + profile: [], + profile_image: null, + }, + { + abbr: 'T', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + ], + color: '#607d8b', + custom_field_data: null, + display_name: 'Michael G Scott (+98 30311521)', + email: null, + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 765432100', + full_name: 'Michael G Scott', + id: 90002431003, + identifier: '+98 765432100', + is_phone: true, + is_private: false, + name: 'Michael G Scott', + phone: '+98 765432100', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=test@outlook.com', + }, + httpRes: { + data: { + data: [ + { + abbr: 'U', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'email • 5xcyI53Nf7@trengomail.com', + emailChannel: { + add_conversation_to_reply: 1, + auto_reply_body: + '

Dear [name],

This is a confirmation that we received your email and registered it as ticket #[ticket_number]. You can always reply to this email if you want to add additional information.

Kinds regards,

Team Rudder

', + auto_reply_enabled: 1, + auto_reply_subject: null, + branding: 1, + branding_service_name: 'Rudder', + channel_id: 405980, + created_at: '2021-05-13 08:47:56', + email_theme_id: null, + embed_attachments: 1, + font_family: null, + meta: { + selectedFolders: [], + syncFolders: [], + syncStatus: null, + zapier_consent: null, + }, + prepend_ticket_number_to_subject: 0, + sender_email: null, + sender_email_id: null, + sender_name: 'Rudder', + sender_name_personal: '[agent.first_name] | Rudder', + signature: + '

Kind regards,

[agent.first_name] [agent.last_name]
Rudder

', + spam_setting: 1, + split_by_sender: 0, + split_by_subject: 1, + type: 'TRENGO', + updated_at: '2021-05-13 08:47:56', + }, + id: 405980, + is_private: false, + name: 'Email', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'email • 5xcyI53Nf7@trengomail.com', + title: 'email', + type: 'EMAIL', + username: '5xcyI53Nf7', + users: [], + }, + ], + color: '#00bcd4', + custom_field_data: null, + display_name: 'test Phone tct (test@outlook.com)', + email: 'test@outlook.com', + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 303115423', + full_name: 'test Email', + id: 97694755, + identifier: 'test@outlook.com', + is_phone: true, + is_private: false, + name: 'test Email', + phone: '98303115423', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=test@outlook.com', + }, + httpRes: { + data: { + data: [ + { + abbr: 'U', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'email • 5xcyI53Nf7@trengomail.com', + emailChannel: { + add_conversation_to_reply: 1, + auto_reply_body: + '

Dear [name],

This is a confirmation that we received your email and registered it as ticket #[ticket_number]. You can always reply to this email if you want to add additional information.

Kinds regards,

Team Rudder

', + auto_reply_enabled: 1, + auto_reply_subject: null, + branding: 1, + branding_service_name: 'Rudder', + channel_id: 405980, + created_at: '2021-05-13 08:47:56', + email_theme_id: null, + embed_attachments: 1, + font_family: null, + meta: { + selectedFolders: [], + syncFolders: [], + syncStatus: null, + zapier_consent: null, + }, + prepend_ticket_number_to_subject: 0, + sender_email: null, + sender_email_id: null, + sender_name: 'Rudder', + sender_name_personal: '[agent.first_name] | Rudder', + signature: + '

Kind regards,

[agent.first_name] [agent.last_name]
Rudder

', + spam_setting: 1, + split_by_sender: 0, + split_by_subject: 1, + type: 'TRENGO', + updated_at: '2021-05-13 08:47:56', + }, + id: 405980, + is_private: false, + name: 'Email', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'email • 5xcyI53Nf7@trengomail.com', + title: 'email', + type: 'EMAIL', + username: '5xcyI53Nf7', + users: [], + }, + ], + color: '#00bcd4', + custom_field_data: null, + display_name: 'test Phone tct (test@outlook.com)', + email: 'test@outlook.com', + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 303115423', + full_name: 'test Email', + id: 97694755, + identifier: 'test@outlook.com', + is_phone: true, + is_private: false, + name: 'test Email', + phone: '98303115423', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=98765432100', + }, + httpRes: { + data: { + data: [ + { + abbr: 'T', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + ], + color: '#607d8b', + custom_field_data: null, + display_name: 'Michael Scott (+98 30311521)', + email: null, + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 765432100', + full_name: 'Michael Scott', + id: 90002431001, + identifier: '+98 765432100', + is_phone: true, + is_private: false, + name: 'Michael Scott', + phone: '+98 765432100', + pivot: null, + profile: [], + profile_image: null, + }, + { + abbr: 'T', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + ], + color: '#607d8b', + custom_field_data: null, + display_name: 'Michael G Scott (+98 30311521)', + email: null, + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 765432100', + full_name: 'Michael G Scott', + id: 90002431003, + identifier: '+98 765432100', + is_phone: true, + is_private: false, + name: 'Michael G Scott', + phone: '+98 765432100', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=test@outlook.com', + }, + httpRes: { + data: { + data: [ + { + abbr: 'U', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'email • 5xcyI53Nf7@trengomail.com', + emailChannel: { + add_conversation_to_reply: 1, + auto_reply_body: + '

Dear [name],

This is a confirmation that we received your email and registered it as ticket #[ticket_number]. You can always reply to this email if you want to add additional information.

Kinds regards,

Team Rudder

', + auto_reply_enabled: 1, + auto_reply_subject: null, + branding: 1, + branding_service_name: 'Rudder', + channel_id: 405980, + created_at: '2021-05-13 08:47:56', + email_theme_id: null, + embed_attachments: 1, + font_family: null, + meta: { + selectedFolders: [], + syncFolders: [], + syncStatus: null, + zapier_consent: null, + }, + prepend_ticket_number_to_subject: 0, + sender_email: null, + sender_email_id: null, + sender_name: 'Rudder', + sender_name_personal: '[agent.first_name] | Rudder', + signature: + '

Kind regards,

[agent.first_name] [agent.last_name]
Rudder

', + spam_setting: 1, + split_by_sender: 0, + split_by_subject: 1, + type: 'TRENGO', + updated_at: '2021-05-13 08:47:56', + }, + id: 405980, + is_private: false, + name: 'Email', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'email • 5xcyI53Nf7@trengomail.com', + title: 'email', + type: 'EMAIL', + username: '5xcyI53Nf7', + users: [], + }, + ], + color: '#00bcd4', + custom_field_data: null, + display_name: 'test Phone tct (test@outlook.com)', + email: 'test@outlook.com', + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 303115423', + full_name: 'test Email', + id: 97694755, + identifier: 'test@outlook.com', + is_phone: true, + is_private: false, + name: 'test Email', + phone: '98303115423', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=test@outlook.com', + }, + httpRes: { + data: { + data: [ + { + abbr: 'U', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'email • 5xcyI53Nf7@trengomail.com', + emailChannel: { + add_conversation_to_reply: 1, + auto_reply_body: + '

Dear [name],

This is a confirmation that we received your email and registered it as ticket #[ticket_number]. You can always reply to this email if you want to add additional information.

Kinds regards,

Team Rudder

', + auto_reply_enabled: 1, + auto_reply_subject: null, + branding: 1, + branding_service_name: 'Rudder', + channel_id: 405980, + created_at: '2021-05-13 08:47:56', + email_theme_id: null, + embed_attachments: 1, + font_family: null, + meta: { + selectedFolders: [], + syncFolders: [], + syncStatus: null, + zapier_consent: null, + }, + prepend_ticket_number_to_subject: 0, + sender_email: null, + sender_email_id: null, + sender_name: 'Rudder', + sender_name_personal: '[agent.first_name] | Rudder', + signature: + '

Kind regards,

[agent.first_name] [agent.last_name]
Rudder

', + spam_setting: 1, + split_by_sender: 0, + split_by_subject: 1, + type: 'TRENGO', + updated_at: '2021-05-13 08:47:56', + }, + id: 405980, + is_private: false, + name: 'Email', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'email • 5xcyI53Nf7@trengomail.com', + title: 'email', + type: 'EMAIL', + username: '5xcyI53Nf7', + users: [], + }, + ], + color: '#00bcd4', + custom_field_data: null, + display_name: 'test Phone tct (test@outlook.com)', + email: 'test@outlook.com', + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 303115423', + full_name: 'test Email', + id: 97694755, + identifier: 'test@outlook.com', + is_phone: true, + is_private: false, + name: 'test Email', + phone: '98303115423', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=test@outlook.com', + }, + httpRes: { + data: { + data: [ + { + abbr: 'U', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'email • 5xcyI53Nf7@trengomail.com', + emailChannel: { + add_conversation_to_reply: 1, + auto_reply_body: + '

Dear [name],

This is a confirmation that we received your email and registered it as ticket #[ticket_number]. You can always reply to this email if you want to add additional information.

Kinds regards,

Team Rudder

', + auto_reply_enabled: 1, + auto_reply_subject: null, + branding: 1, + branding_service_name: 'Rudder', + channel_id: 405980, + created_at: '2021-05-13 08:47:56', + email_theme_id: null, + embed_attachments: 1, + font_family: null, + meta: { + selectedFolders: [], + syncFolders: [], + syncStatus: null, + zapier_consent: null, + }, + prepend_ticket_number_to_subject: 0, + sender_email: null, + sender_email_id: null, + sender_name: 'Rudder', + sender_name_personal: '[agent.first_name] | Rudder', + signature: + '

Kind regards,

[agent.first_name] [agent.last_name]
Rudder

', + spam_setting: 1, + split_by_sender: 0, + split_by_subject: 1, + type: 'TRENGO', + updated_at: '2021-05-13 08:47:56', + }, + id: 405980, + is_private: false, + name: 'Email', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'email • 5xcyI53Nf7@trengomail.com', + title: 'email', + type: 'EMAIL', + username: '5xcyI53Nf7', + users: [], + }, + ], + color: '#00bcd4', + custom_field_data: null, + display_name: 'test Phone tct (test@outlook.com)', + email: 'test@outlook.com', + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 303115423', + full_name: 'test Email', + id: 97694755, + identifier: 'test@outlook.com', + is_phone: true, + is_private: false, + name: 'test Email', + phone: '98303115423', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=test@outlook.com', + }, + httpRes: { + data: { + data: [ + { + abbr: 'U', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'email • 5xcyI53Nf7@trengomail.com', + emailChannel: { + add_conversation_to_reply: 1, + auto_reply_body: + '

Dear [name],

This is a confirmation that we received your email and registered it as ticket #[ticket_number]. You can always reply to this email if you want to add additional information.

Kinds regards,

Team Rudder

', + auto_reply_enabled: 1, + auto_reply_subject: null, + branding: 1, + branding_service_name: 'Rudder', + channel_id: 405980, + created_at: '2021-05-13 08:47:56', + email_theme_id: null, + embed_attachments: 1, + font_family: null, + meta: { + selectedFolders: [], + syncFolders: [], + syncStatus: null, + zapier_consent: null, + }, + prepend_ticket_number_to_subject: 0, + sender_email: null, + sender_email_id: null, + sender_name: 'Rudder', + sender_name_personal: '[agent.first_name] | Rudder', + signature: + '

Kind regards,

[agent.first_name] [agent.last_name]
Rudder

', + spam_setting: 1, + split_by_sender: 0, + split_by_subject: 1, + type: 'TRENGO', + updated_at: '2021-05-13 08:47:56', + }, + id: 405980, + is_private: false, + name: 'Email', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'email • 5xcyI53Nf7@trengomail.com', + title: 'email', + type: 'EMAIL', + username: '5xcyI53Nf7', + users: [], + }, + ], + color: '#00bcd4', + custom_field_data: null, + display_name: 'test Phone tct (test@outlook.com)', + email: 'test@outlook.com', + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 303115423', + full_name: 'test Email', + id: 97694755, + identifier: 'test@outlook.com', + is_phone: true, + is_private: false, + name: 'test Email', + phone: '98303115423', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=9830311521', + }, + httpRes: { + data: { + data: [ + { + abbr: 'T', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + ], + color: '#607d8b', + custom_field_data: null, + display_name: 'Haz matsumi phone 2 (+98 30311521)', + email: null, + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 30311521', + full_name: 'Thalmor Bretz', + id: 90002431001, + identifier: '+98 30311521', + is_phone: true, + is_private: false, + name: 'Thalmor Bretz', + phone: '+98 30311521', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, +]; diff --git a/test/integrations/destinations/trengo/processor/data.ts b/test/integrations/destinations/trengo/processor/data.ts index 67f4e34d37e..88d03bbfb57 100644 --- a/test/integrations/destinations/trengo/processor/data.ts +++ b/test/integrations/destinations/trengo/processor/data.ts @@ -29,7 +29,7 @@ export const data = [ userId: 'randomUserId', type: 'identify', context: { - traits: { name: 'Jimothy Halpert', email: 'jimbo@dunmiff.com' }, + traits: { name: 'Jimothy Halpert', email: 'j@d.com' }, ip: '14.5.67.21', app: { build: '1', @@ -77,7 +77,7 @@ export const data = [ body: { JSON: { name: 'Jimothy Halpert', - identifier: 'jimbo@dunmiff.com', + identifier: 'j@d.com', channel_id: 'trengo_email_channel', }, XML: {}, @@ -123,7 +123,7 @@ export const data = [ userId: 'randomUserId', type: 'identify', context: { - traits: { name: 'Jimothy Halpert', email: 'jimbo@dunmiff.com' }, + traits: { name: 'Jimothy Halpert', email: 'j@d.com' }, ip: '14.5.67.21', app: { build: '1', @@ -556,7 +556,7 @@ export const data = [ properties: { name: 'Random_Track_call', cart_value: 5000, - email: 'utsab@outlook.com', + email: 'test@outlook.com', }, context: { ip: '14.5.67.21', @@ -652,7 +652,7 @@ export const data = [ userId: 'randomUserId', type: 'track', event: 'checkedOut', - properties: { name: 'Random_Track_call', value: 5000, email: 'utsab@outlook.com' }, + properties: { name: 'Random_Track_call', value: 5000, email: 'test@outlook.com' }, context: { ip: '14.5.67.21', app: { @@ -833,7 +833,7 @@ export const data = [ name: 'Random_Track_call', value: 5000, phone: '9830311521', - email: 'utsab@outlook.com', + email: 'test@outlook.com', }, context: { ip: '14.5.67.21', @@ -934,7 +934,7 @@ export const data = [ name: 'Random_Track_call', value: 5000, phone: '9830311521', - email: 'utsab@outlook.com', + email: 'test@outlook.com', }, context: { ip: '14.5.67.21', @@ -1031,7 +1031,7 @@ export const data = [ name: 'Random_Track_call', value: 5000, phone: '9830311521', - email: 'utsab@outlook.com', + email: 'test@outlook.com', }, context: { ip: '14.5.67.21', @@ -1128,7 +1128,7 @@ export const data = [ name: 'Random_Track_call', value: 5000, phone: '9830311521', - email: 'utsab@outlook.com', + email: 'test@outlook.com', }, context: { ip: '14.5.67.21', @@ -1229,7 +1229,7 @@ export const data = [ name: 'Random_Track_call', value: 5000, phone: '9830311521', - email: 'utsab@outlook.com', + email: 'test@outlook.com', }, context: { ip: '14.5.67.21', diff --git a/test/integrations/destinations/trengo/router/data.ts b/test/integrations/destinations/trengo/router/data.ts index f4cbbda7ece..eeefb053a86 100644 --- a/test/integrations/destinations/trengo/router/data.ts +++ b/test/integrations/destinations/trengo/router/data.ts @@ -285,7 +285,7 @@ export const data = [ context: { traits: { name: 'Jimothy Halpert', - email: 'jimbo@dunmiff.com', + email: 'j@d.com', }, ip: '14.5.67.21', app: { @@ -430,7 +430,7 @@ export const data = [ body: { JSON: { name: 'Jimothy Halpert', - identifier: 'jimbo@dunmiff.com', + identifier: 'j@d.com', channel_id: 'trengo_email_channel', }, XML: {}, diff --git a/test/integrations/destinations/twitter_ads/processor/data.ts b/test/integrations/destinations/twitter_ads/processor/data.ts new file mode 100644 index 00000000000..b6a75128801 --- /dev/null +++ b/test/integrations/destinations/twitter_ads/processor/data.ts @@ -0,0 +1,906 @@ +const authHeaderConstant = + 'OAuth oauth_consumer_key="qwe", oauth_nonce="V1kMh028kZLLhfeYozuL0B45Pcx6LvuW", oauth_signature="Di4cuoGv4PnCMMEeqfWTcqhvdwc%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1685603652", oauth_token="dummyAccessToken", oauth_version="1.0"'; + +export const data = [ + { + name: 'twitter_ads', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'ABC Searched', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { + city: 'Kolkata', + state: 'WB', + zip: '700114', + country: 'IN', + }, + }, + device: { + advertisingId: 'abc123', + }, + library: { + name: 'rudder-sdk-ruby-sync', + version: '1.0.6', + }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + conversionTime: '2023-06-01T06:03:08.739Z', + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + priceCurrency: 'USD', + conversionId: '213123', + numberItems: '2323', + phone: '+919927455678', + twclid: '543', + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + email: 'abc@ax.com', + contents: [ + { + price: '123.3345', + quantity: '12', + id: '12', + }, + { + price: 200, + quantity: 11, + id: '4', + }, + ], + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { + All: true, + }, + }, + metadata: { + secret: { + consumerKey: 'qwe', + consumerSecret: 'fdghv', + accessToken: 'dummyAccessToken', + accessTokenSecret: 'testAccessTokenSecret', + }, + }, + destination: { + Config: { + pixelId: 'dummyPixelId', + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + twitterAdsEventNames: [ + { + rudderEventName: 'ABC Searched', + twitterEventId: 'tw-234234324234', + }, + { + rudderEventName: 'Home Page Viewed', + twitterEventId: 'tw-odt2o-odt2q', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ads-api.twitter.com/12/measurement/conversions/dummyPixelId', + headers: { + Authorization: authHeaderConstant, + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + conversions: [ + { + conversion_time: '2023-06-01T06:03:08.739Z', + number_items: 2, + price_currency: 'USD', + value: '25', + conversion_id: '213123', + contents: [ + { + content_id: '12', + content_price: 123.3345, + num_items: 12, + }, + { + content_id: '4', + content_price: 200, + num_items: 11, + }, + ], + event_id: 'tw-234234324234', + identifiers: [ + { + hashed_email: + '4c3c8a8cba2f3bb1e9e617301f85d1f68e816a01c7b716f482f2ab9adb8181fb', + }, + { + hashed_phone_number: + 'b308962b96b40cce7981493a372db9478edae79f83c2d8ca6cd15a39566f8c56', + }, + { + twclid: '543', + }, + ], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + consumerKey: 'qwe', + consumerSecret: 'fdghv', + accessToken: 'dummyAccessToken', + accessTokenSecret: 'testAccessTokenSecret', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'twitter_ads', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Home Page Viewed', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { + city: 'Kolkata', + state: 'WB', + zip: '700114', + country: 'IN', + }, + }, + device: { + advertisingId: 'abc123', + }, + library: { + name: 'rudder-sdk-ruby-sync', + version: '1.0.6', + }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + conversionTime: '2023-06-01T06:03:08.739Z', + eventId: '429047995', + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + priceCurrency: 'USD', + conversionId: '213123', + numberItems: '2323', + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { + All: true, + }, + }, + metadata: { + secret: { + consumerKey: 'qwe', + consumerSecret: 'fdghv', + accessToken: 'dummyAccessToken', + accessTokenSecret: 'testAccessTokenSecret', + }, + }, + destination: { + Config: { + pixelId: 'dummyPixelId', + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + twitterAdsEventNames: [ + { + rudderEventName: 'ABC Searched', + twitterEventId: 'tw-234234324234', + }, + { + rudderEventName: 'Home Page Viewed', + twitterEventId: 'tw-2dfsdf', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + consumerKey: 'qwe', + consumerSecret: 'fdghv', + accessToken: 'dummyAccessToken', + accessTokenSecret: 'testAccessTokenSecret', + }, + }, + statusCode: 400, + error: '[TWITTER ADS]: one of twclid, phone or email must be present in properties.', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'TWITTER_ADS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'twitter_ads', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Home Page Viewed', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { + city: 'Kolkata', + state: 'WB', + zip: '700114', + country: 'IN', + }, + }, + device: { + advertisingId: 'abc123', + }, + library: { + name: 'rudder-sdk-ruby-sync', + version: '1.0.6', + }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + pixelId: 'dummyPixelId', + conversionTime: '2023-06-01T06:03:08.739Z', + eventId: '429047995', + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25.55, + quantity: 2, + currency: 'USD', + priceCurrency: 'USD', + conversionId: '213123', + numberItems: '2323', + phone: '+919927455678', + twclid: '543', + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + email: 'abc@ax.com', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { + All: true, + }, + }, + metadata: { + secret: { + consumerKey: 'qwe', + consumerSecret: 'fdghv', + accessToken: 'dummyAccessToken', + accessTokenSecret: 'testAccessTokenSecret', + }, + }, + destination: { + Config: { + pixelId: 'dummyPixelId', + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + twitterAdsEventNames: [ + { + rudderEventName: 'ABC Searched', + twitterEventId: 'tw-234234324234', + }, + { + rudderEventName: 'Home Page Viewed', + twitterEventId: 'tw-324fdsf', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ads-api.twitter.com/12/measurement/conversions/dummyPixelId', + headers: { + Authorization: authHeaderConstant, + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + conversions: [ + { + event_id: '429047995', + conversion_time: '2023-06-01T06:03:08.739Z', + number_items: 2, + price_currency: 'USD', + value: '25.55', + conversion_id: '213123', + identifiers: [ + { + hashed_email: + '4c3c8a8cba2f3bb1e9e617301f85d1f68e816a01c7b716f482f2ab9adb8181fb', + }, + { + hashed_phone_number: + 'b308962b96b40cce7981493a372db9478edae79f83c2d8ca6cd15a39566f8c56', + }, + { + twclid: '543', + }, + ], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + consumerKey: 'qwe', + consumerSecret: 'fdghv', + accessToken: 'dummyAccessToken', + accessTokenSecret: 'testAccessTokenSecret', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'twitter_ads', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Home Page', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { + city: 'Kolkata', + state: 'WB', + zip: '700114', + country: 'IN', + }, + }, + device: { + advertisingId: 'abc123', + }, + library: { + name: 'rudder-sdk-ruby-sync', + version: '1.0.6', + }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + pixelId: 'dummyPixelId', + conversionTime: '2023-06-01T06:03:08.739Z', + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + priceCurrency: 'USD', + conversionId: '213123', + numberItems: '2323', + phone: '+919927455678', + twclid: '543', + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + email: 'abc@ax.com', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { + All: true, + }, + }, + metadata: { + secret: { + consumerKey: 'qwe', + consumerSecret: 'fdghv', + accessToken: 'dummyAccessToken', + accessTokenSecret: 'testAccessTokenSecret', + }, + }, + destination: { + Config: { + pixelId: 'dummyPixelId', + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + twitterAdsEventNames: [ + { + rudderEventName: 'ABC Searched', + twitterEventId: 'tw-234234324234', + }, + { + rudderEventName: 'Home Page Viewed', + twitterEventId: 'tw-324fdsf', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + consumerKey: 'qwe', + consumerSecret: 'fdghv', + accessToken: 'dummyAccessToken', + accessTokenSecret: 'testAccessTokenSecret', + }, + }, + statusCode: 400, + error: + "[TWITTER ADS]: Event - 'Home Page' do not have a corresponding eventId in configuration. Aborting", + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'TWITTER_ADS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'twitter_ads', + description: 'Test 4', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Home Page', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { + city: 'Kolkata', + state: 'WB', + zip: '700114', + country: 'IN', + }, + }, + device: { + advertisingId: 'abc123', + }, + library: { + name: 'rudder-sdk-ruby-sync', + version: '1.0.6', + }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + pixelId: 'dummyPixelId', + conversionTime: '2023-06-01T06:03:08.739Z', + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + priceCurrency: 'USD', + conversionId: '213123', + numberItems: '2323', + phone: '+919927455678', + twclid: '543', + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + email: 'abc@ax.com', + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { + All: true, + }, + }, + metadata: { + secret: { + consumerKey: 'qwe', + consumerSecret: 'fdghv', + accessToken: 'dummyAccessToken', + accessTokenSecret: 'testAccessTokenSecret', + }, + }, + destination: { + Config: { + pixelId: 'dummyPixelId', + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + twitterAdsEventNames: [ + { + rudderEventName: ' ', + twitterEventId: 'tw-324fdsf', + }, + { + rudderEventName: 'Home Page Viewed', + twitterEventId: 'tw-324fdsf', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { + secret: { + consumerKey: 'qwe', + consumerSecret: 'fdghv', + accessToken: 'dummyAccessToken', + accessTokenSecret: 'testAccessTokenSecret', + }, + }, + statusCode: 400, + error: + "[TWITTER ADS]: Event - 'Home Page' do not have a corresponding eventId in configuration. Aborting", + statTags: { + errorCategory: 'dataValidation', + errorType: 'configuration', + destType: 'TWITTER_ADS', + module: 'destination', + implementation: 'native', + feature: 'processor', + }, + }, + ], + }, + }, + }, + { + name: 'twitter_ads', + description: 'Test 5', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Home Page Viewed', + channel: 'web', + context: { + source: 'test', + userAgent: 'chrome', + traits: { + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + email: 'abc@gmail.com', + phone: '+1234589947', + ge: 'male', + db: '19950715', + lastname: 'Rudderlabs', + firstName: 'Test', + address: { + city: 'Kolkata', + state: 'WB', + zip: '700114', + country: 'IN', + }, + }, + device: { + advertisingId: 'abc123', + }, + library: { + name: 'rudder-sdk-ruby-sync', + version: '1.0.6', + }, + }, + messageId: '7208bbb6-2c4e-45bb-bf5b-ad426f3593e9', + timestamp: '2020-08-14T05:30:30.118Z', + properties: { + conversionTime: '2023-06-01T06:03:08.739Z', + tax: 2, + total: 27.5, + coupon: 'hasbros', + revenue: 48, + price: 25, + quantity: 2, + currency: 'USD', + priceCurrency: 'USD', + conversionId: '213123', + numberItems: '2323', + phone: '+919927455678', + twclid: '543', + shipping: 3, + subtotal: 22.5, + affiliation: 'Google Store', + checkout_id: 'fksdjfsdjfisjf9sdfjsd9f', + email: 'abc@ax.com', + contents: [ + { + price: '123.3345', + quantity: '12', + id: '12', + }, + { + price: 200, + quantity: 11, + id: '4', + }, + ], + }, + anonymousId: '50be5c78-6c3f-4b60-be84-97805a316fb1', + integrations: { + All: true, + }, + }, + metadata: { + secret: { + consumerKey: 'qwe', + consumerSecret: 'fdghv', + accessToken: 'dummyAccessToken', + accessTokenSecret: 'testAccessTokenSecret', + }, + }, + destination: { + Config: { + pixelId: 'dummyPixelId', + rudderAccountId: '2EOknn1JNH7WK1MfNku4fGYKkRK', + twitterAdsEventNames: [ + { + rudderEventName: 'ABC Searched', + twitterEventId: 'tw-234234324234', + }, + { + rudderEventName: 'Home Page Viewed', + twitterEventId: 'tw-odt2o-odt2q', + }, + ], + }, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://ads-api.twitter.com/12/measurement/conversions/dummyPixelId', + headers: { + Authorization: authHeaderConstant, + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + conversions: [ + { + conversion_time: '2023-06-01T06:03:08.739Z', + number_items: 2, + price_currency: 'USD', + value: '25', + conversion_id: '213123', + contents: [ + { + content_id: '12', + content_price: 123.3345, + num_items: 12, + }, + { + content_id: '4', + content_price: 200, + num_items: 11, + }, + ], + event_id: 'tw-odt2o-odt2q', + identifiers: [ + { + hashed_email: + '4c3c8a8cba2f3bb1e9e617301f85d1f68e816a01c7b716f482f2ab9adb8181fb', + }, + { + hashed_phone_number: + 'b308962b96b40cce7981493a372db9478edae79f83c2d8ca6cd15a39566f8c56', + }, + { + twclid: '543', + }, + ], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + metadata: { + secret: { + consumerKey: 'qwe', + consumerSecret: 'fdghv', + accessToken: 'dummyAccessToken', + accessTokenSecret: 'testAccessTokenSecret', + }, + }, + statusCode: 200, + }, + ], + }, + }, + }, +].map((tc) => ({ + ...tc, + mockFns: (_) => { + jest.mock('../../../../../src/v0/destinations/twitter_ads/util', () => ({ + getAuthHeaderForRequest: (_a, _b) => { + return { Authorization: authHeaderConstant }; + }, + })); + }, +})); diff --git a/test/integrations/destinations/user/network.ts b/test/integrations/destinations/user/network.ts new file mode 100644 index 00000000000..dff2e0726d8 --- /dev/null +++ b/test/integrations/destinations/user/network.ts @@ -0,0 +1,441 @@ +export const networkCallsData = [ + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/users-by-id/user@123/', + }, + httpRes: { + data: { + browser_language: null, + companies: [ + { id: 21, member_since: '2022-09-12T12:40:30.548068Z', name: 'parkings group' }, + { id: 19, member_since: '2022-09-12T12:37:58.522773Z', name: 'rudder constructors' }, + ], + created_at: '2022-09-06T11:52:48.828444Z', + custom_id: 'user@123', + email: null, + first_seen: '2022-09-06T11:52:48.812722Z', + gender: 'unknown', + gravatar_url: null, + id: 52, + last_seen: '2022-09-06T12:35:17.230000Z', + lists: [], + name: null, + notifications: true, + page_views: 2, + phone_number: '2345678901', + score: 0, + status: 'visitor', + tags: [], + unsubscribed: false, + updated_at: '2022-09-12T03:19:33.356280Z', + user_key: 'ngze13ffndcv', + web_push_subscription: false, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/companies-by-id/group@795/', + }, + httpRes: { + data: { + address: '6th floor,california,usa', + category: null, + city: null, + companyowner: 'secret', + country: 'usa', + created_at: '2022-09-12T12:40:30.548068Z', + custom_id: 'group@795', + description: null, + email: 'business@rudderstack.com', + employees: [52], + founded: '15 aug, 1947', + id: 21, + isprivatefunded: 'no', + isprofitable: 'no', + name: 'rudder ventures', + phone_numbers: null, + postal_code: null, + region: null, + size: null, + tags: [], + updated_at: '2022-09-13T11:23:09.481891Z', + user_custom_id: 'user@123', + }, + status: 200, + }, + }, + { + httpReq: { + data: { + address: '6th StSan FranciscoCA94103USAtestuser', + city: 'San Francisco', + custom_id: 'group@795', + email: 'business@rudderstack.com', + name: 'rudder ventures', + postal_code: '94103', + user_custom_id: 'user@123', + }, + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'PUT', + + url: 'https://commander.user.com/api/public/companies/21/', + }, + httpRes: { + data: { + address: 'San FranciscoUSA94103CA6th St', + city: 'San Francisco', + companyowner: 'secret', + country: 'usa', + created_at: '2022-09-12T12:40:30.548068Z', + custom_id: 'group@795', + description: null, + email: 'business@rudderstack.com', + employees: [52], + founded: '15 aug, 1947', + id: 21, + isprivatefunded: 'no', + isprofitable: 'no', + name: 'rudder ventures', + phone_numbers: null, + postal_code: null, + region: null, + size: null, + tags: [], + updated_at: '2022-09-13T11:47:31.748497Z', + user_custom_id: 'user@123', + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/users/search/?email=test@rudderstack.com', + }, + httpRes: { + data: { + browser_language: null, + companies: [], + country: 'india', + created_at: '2022-09-13T06:16:25.576355Z', + custom_id: 'test@12', + email: 'test@rudderstack.com', + gender: 'male', + google_url: 'www.google.com', + id: 59, + lists: [], + name: 'test rudderstack', + notifications: true, + phone_number: '9225467887', + score: 0, + status: 'user', + tags: [{ id: 5, name: 'productuser' }], + unsubscribed: false, + updated_at: '2022-09-13T06:16:25.576376Z', + user_key: 'ctlfkj37dbag', + web_push_subscription: false, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/users/search/?key=lel1c5u1wuk8', + }, + httpRes: { + data: { + browser_language: null, + companies: [], + created_at: '2022-09-05T07:21:39.171977Z', + email: 'rahulverma@test.com', + gender: 'unknown', + gravatar_url: null, + id: 27, + lists: [], + name: 'rahul verma', + notifications: true, + phone_number: '+919432239876', + score: 0, + status: 'visitor', + tags: [ + { id: 1, name: 'updated' }, + { id: 2, name: 'verified' }, + ], + unsubscribed: false, + updated_at: '2022-09-05T07:21:39.171990Z', + user_key: 'lel1c5u1wuk8', + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/users/search/?email=test@rudderstack.com', + }, + httpRes: { + data: { + browser_language: null, + companies: [], + country: 'india', + created_at: '2022-09-13T06:16:25.576355Z', + custom_id: 'test@12', + email: 'test@rudderstack.com', + gender: 'male', + google_url: 'www.google.com', + id: 59, + lists: [], + name: 'test rudderstack', + notifications: true, + phone_number: '9225467887', + score: 0, + status: 'user', + tags: [{ id: 5, name: 'productuser' }], + unsubscribed: false, + updated_at: '2022-09-13T06:16:25.576376Z', + user_key: 'ctlfkj37dbag', + web_push_subscription: false, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/users-by-id/43/', + }, + httpRes: { + data: { + browser_language: null, + companies: [], + created_at: '2022-09-05T11:04:45.547861Z', + custom_id: '43', + email: null, + first_seen: '2022-09-05T11:04:45.535122Z', + gender: 'unknown', + gravatar_url: null, + id: 44, + last_seen: null, + lists: [], + name: null, + page_views: 0, + score: 0, + status: 'visitor', + tags: [], + unsubscribed: false, + updated_at: '2022-09-05T11:04:45.547876Z', + user_key: 'rpl0vjwysmc0', + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/users-by-id/43/', + }, + httpRes: { + data: { + browser_language: null, + companies: [], + created_at: '2022-09-05T11:04:45.547861Z', + custom_id: '43', + email: null, + first_seen: '2022-09-05T11:04:45.535122Z', + gender: 'unknown', + gravatar_url: null, + id: 44, + last_seen: null, + lists: [], + name: null, + page_views: 0, + score: 0, + status: 'visitor', + tags: [], + unsubscribed: false, + updated_at: '2022-09-05T11:04:45.547876Z', + user_key: 'rpl0vjwysmc0', + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/users-by-id/user@123/', + }, + httpRes: { + data: { + browser_language: null, + companies: [ + { id: 21, member_since: '2022-09-12T12:40:30.548068Z', name: 'parkings group' }, + { id: 19, member_since: '2022-09-12T12:37:58.522773Z', name: 'rudder constructors' }, + ], + created_at: '2022-09-06T11:52:48.828444Z', + custom_id: 'user@123', + email: null, + first_seen: '2022-09-06T11:52:48.812722Z', + gender: 'unknown', + gravatar_url: null, + id: 52, + last_seen: '2022-09-06T12:35:17.230000Z', + lists: [], + name: null, + notifications: true, + page_views: 2, + phone_number: '2345678901', + score: 0, + status: 'visitor', + tags: [], + unsubscribed: false, + updated_at: '2022-09-12T03:19:33.356280Z', + user_key: 'ngze13ffndcv', + web_push_subscription: false, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/companies-by-id/group@795/', + }, + httpRes: { + data: { + address: '6th floor,california,usa', + category: null, + city: null, + companyowner: 'secret', + country: 'usa', + created_at: '2022-09-12T12:40:30.548068Z', + custom_id: 'group@795', + description: null, + email: 'business@rudderstack.com', + employees: [52], + founded: '15 aug, 1947', + id: 21, + isprivatefunded: 'no', + isprofitable: 'no', + name: 'rudder ventures', + phone_numbers: null, + postal_code: null, + region: null, + size: null, + tags: [], + updated_at: '2022-09-13T11:23:09.481891Z', + user_custom_id: 'user@123', + }, + status: 200, + }, + }, + { + httpReq: { + data: { + address: '6th StSan FranciscoCA94103USAtestuser', + city: 'San Francisco', + custom_id: 'group@795', + email: 'business@rudderstack.com', + name: 'rudder ventures', + postal_code: '94103', + user_custom_id: 'user@123', + }, + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'PUT', + + url: 'https://commander.user.com/api/public/companies/21/', + }, + httpRes: { + data: { + address: 'San FranciscoUSA94103CA6th St', + city: 'San Francisco', + companyowner: 'secret', + country: 'usa', + created_at: '2022-09-12T12:40:30.548068Z', + custom_id: 'group@795', + description: null, + email: 'business@rudderstack.com', + employees: [52], + founded: '15 aug, 1947', + id: 21, + isprivatefunded: 'no', + isprofitable: 'no', + name: 'rudder ventures', + phone_numbers: null, + postal_code: null, + region: null, + size: null, + tags: [], + updated_at: '2022-09-13T11:47:31.748497Z', + user_custom_id: 'user@123', + }, + status: 200, + }, + }, +]; diff --git a/test/integrations/destinations/user/processor/data.ts b/test/integrations/destinations/user/processor/data.ts index 6de761307d3..ef8ddebfd58 100644 --- a/test/integrations/destinations/user/processor/data.ts +++ b/test/integrations/destinations/user/processor/data.ts @@ -22,7 +22,7 @@ export const data = [ }, destination: { Config: { - apiKey: '262fbbda-b85b-48b8-a719-c2fceaf8afaf', + apiKey: 'dummyApiKey', appSubdomain: 'commander', userEvents: [{ rsEventName: 'login', userEventName: 'product viewed' }], companyAttributesMapping: [ @@ -80,14 +80,14 @@ export const data = [ city: 'Kalkata', country: 'india', tags: ['productuser'], - phone: '9225467887', + phone: '9876543210', }, externalId: [{ type: 'userKey', id: 'masncbjasbdljajdl' }], }, traits: { googleUrl: 'www.google.com' }, }, destination: { - Config: { apiKey: '262fbbda-b85b-48b8-a719-c2fceaf8afaf', appSubdomain: 'commander' }, + Config: { apiKey: 'dummyApiKey', appSubdomain: 'commander' }, }, }, ], @@ -133,7 +133,7 @@ export const data = [ timestamp: '2020-02-02T00:23:09.544Z', }, destination: { - Config: { apiKey: '262fbbda-b85b-48b8-a719-c2fceaf8afaf', appSubdomain: 'commander' }, + Config: { apiKey: 'dummyApiKey', appSubdomain: 'commander' }, }, }, ], @@ -198,7 +198,7 @@ export const data = [ userId: 'user@123', }, destination: { - Config: { apiKey: '262fbbda-b85b-48b8-a719-c2fceaf8afaf', appSubdomain: 'commander' }, + Config: { apiKey: 'dummyApiKey', appSubdomain: 'commander' }, }, }, ], @@ -249,7 +249,7 @@ export const data = [ city: 'Kalkata', country: 'india', tags: ['productuser'], - phone: '9225467887', + phone: '9876543210', useroccupation: 'software engineer', }, externalId: [{ type: 'userKey', id: 'lel1c5u1wuk8' }], @@ -258,7 +258,7 @@ export const data = [ }, destination: { Config: { - apiKey: '262fbbda-b85b-48b8-a719-c2fceaf8afaf', + apiKey: 'dummyApiKey', appSubdomain: 'commander', userAttributesMapping: [{ from: 'useroccupation', to: 'occupation' }], }, @@ -286,7 +286,7 @@ export const data = [ google_url: 'www.google.com', last_name: 'rudderstack', occupation: 'software engineer', - phone_number: '9225467887', + phone_number: '9876543210', status: 2, tags: ['productuser'], }, @@ -297,7 +297,7 @@ export const data = [ files: {}, headers: { Accept: '*/*;version=2', - Authorization: 'Token 262fbbda-b85b-48b8-a719-c2fceaf8afaf', + Authorization: 'Token dummyApiKey', 'Content-Type': 'application/json', }, method: 'PUT', @@ -335,7 +335,7 @@ export const data = [ status: 'visitor', city: 'ahmedabad', country: 'india', - phone: '9225467887', + phone: '9876543210', useroccupation: 'mechanical engineer', }, }, @@ -344,7 +344,7 @@ export const data = [ }, destination: { Config: { - apiKey: '262fbbda-b85b-48b8-a719-c2fceaf8afaf', + apiKey: 'dummyApiKey', appSubdomain: 'commander', userAttributesMapping: [{ from: 'useroccupation', to: 'occupation' }], }, @@ -374,7 +374,7 @@ export const data = [ first_name: 'test', google_url: 'www.google.com', occupation: 'mechanical engineer', - phone_number: '9225467887', + phone_number: '9876543210', }, JSON_ARRAY: {}, }, @@ -385,7 +385,7 @@ export const data = [ headers: { Accept: '*/*;version=2', 'Content-Type': 'application/json', - Authorization: 'Token 262fbbda-b85b-48b8-a719-c2fceaf8afaf', + Authorization: 'Token dummyApiKey', }, version: '1', endpoint: 'https://commander.user.com/api/public/users/59/', @@ -441,7 +441,7 @@ export const data = [ }, destination: { Config: { - apiKey: '262fbbda-b85b-48b8-a719-c2fceaf8afaf', + apiKey: 'dummyApiKey', appSubdomain: 'commander', userAttributesMapping: [{ from: 'useroccupation', to: 'occupation' }], userEvents: [ @@ -482,7 +482,7 @@ export const data = [ headers: { Accept: '*/*;version=2', 'Content-Type': 'application/json', - Authorization: 'Token 262fbbda-b85b-48b8-a719-c2fceaf8afaf', + Authorization: 'Token dummyApiKey', }, version: '1', endpoint: 'https://commander.user.com/api/public/events/', @@ -551,7 +551,7 @@ export const data = [ }, destination: { Config: { - apiKey: '262fbbda-b85b-48b8-a719-c2fceaf8afaf', + apiKey: 'dummyApiKey', appSubdomain: 'commander', userAttributesMapping: [{ from: 'useroccupation', to: 'occupation' }], userEvents: [ @@ -592,7 +592,7 @@ export const data = [ headers: { Accept: '*/*;version=2', 'Content-Type': 'application/json', - Authorization: 'Token 262fbbda-b85b-48b8-a719-c2fceaf8afaf', + Authorization: 'Token dummyApiKey', }, version: '1', endpoint: 'https://commander.user.com/api/public/site-views/', @@ -643,7 +643,7 @@ export const data = [ }, destination: { Config: { - apiKey: '262fbbda-b85b-48b8-a719-c2fceaf8afaf', + apiKey: 'dummyApiKey', appSubdomain: 'commander', userAttributesMapping: [{ from: 'useroccupation', to: 'occupation' }], userEvents: [ @@ -683,7 +683,7 @@ export const data = [ headers: { Accept: '*/*;version=2', 'Content-Type': 'application/json', - Authorization: 'Token 262fbbda-b85b-48b8-a719-c2fceaf8afaf', + Authorization: 'Token dummyApiKey', }, version: '1', endpoint: 'https://commander.user.com/api/public/companies/21/add_member/', diff --git a/test/integrations/destinations/user/router/data.ts b/test/integrations/destinations/user/router/data.ts index 5b410be006b..30bcdf2688f 100644 --- a/test/integrations/destinations/user/router/data.ts +++ b/test/integrations/destinations/user/router/data.ts @@ -44,7 +44,7 @@ export const data = [ }, destination: { Config: { - apiKey: '262fbbda-b85b-48b8-a719-c2fceaf8afaf', + apiKey: 'dummyApiKey', appSubdomain: 'commander', userAttributesMapping: [{ from: 'useroccupation', to: 'occupation' }], userEvents: [ @@ -90,7 +90,7 @@ export const data = [ headers: { Accept: '*/*;version=2', 'Content-Type': 'application/json', - Authorization: 'Token 262fbbda-b85b-48b8-a719-c2fceaf8afaf', + Authorization: 'Token dummyApiKey', }, version: '1', endpoint: 'https://commander.user.com/api/public/companies/21/add_member/', @@ -104,7 +104,7 @@ export const data = [ statusCode: 200, destination: { Config: { - apiKey: '262fbbda-b85b-48b8-a719-c2fceaf8afaf', + apiKey: 'dummyApiKey', appSubdomain: 'commander', userAttributesMapping: [{ from: 'useroccupation', to: 'occupation' }], userEvents: [ @@ -150,7 +150,7 @@ export const data = [ status: 'visitor', city: 'ahmedabad', country: 'india', - phone: '9225467887', + phone: '9876543210', useroccupation: 'mechanical engineer', }, }, @@ -169,7 +169,7 @@ export const data = [ }, destination: { Config: { - apiKey: '262fbbda-b85b-48b8-a719-c2fceaf8afaf', + apiKey: 'dummyApiKey', appSubdomain: 'commander', userAttributesMapping: [{ from: 'useroccupation', to: 'occupation' }], userEvents: [ @@ -213,7 +213,7 @@ export const data = [ first_name: 'test', google_url: 'www.google.com', occupation: 'mechanical engineer', - phone_number: '9225467887', + phone_number: '9876543210', }, JSON_ARRAY: {}, }, @@ -224,7 +224,7 @@ export const data = [ headers: { Accept: '*/*;version=2', 'Content-Type': 'application/json', - Authorization: 'Token 262fbbda-b85b-48b8-a719-c2fceaf8afaf', + Authorization: 'Token dummyApiKey', }, version: '1', endpoint: 'https://commander.user.com/api/public/users/59/', @@ -238,7 +238,7 @@ export const data = [ statusCode: 200, destination: { Config: { - apiKey: '262fbbda-b85b-48b8-a719-c2fceaf8afaf', + apiKey: 'dummyApiKey', appSubdomain: 'commander', userAttributesMapping: [{ from: 'useroccupation', to: 'occupation' }], userEvents: [ diff --git a/test/integrations/destinations/userlist/processor/data.ts b/test/integrations/destinations/userlist/processor/data.ts new file mode 100644 index 00000000000..f07006b1860 --- /dev/null +++ b/test/integrations/destinations/userlist/processor/data.ts @@ -0,0 +1,894 @@ +export const data = [ + { + name: 'userlist', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + pushKey: 'userlist-push-key', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '123456', + email: 'test@rudderstack.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + ip: '0.0.0.0', + age: 26, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + user_properties: { + prop1: 'val1', + prop2: 'val2', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: '123456', + integrations: { + All: true, + }, + traits: { + anonymousId: 'anon-id', + email: 'test@gmail.com', + address: { + city: 'NY', + country: 'USA', + postalCode: 712136, + state: 'CA', + street: '', + }, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '123456', + email: 'test@rudderstack.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + ip: '0.0.0.0', + age: 26, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + user_properties: { + prop1: 'val1', + prop2: 'val2', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + userId: '123456', + integrations: { + All: true, + }, + traits: { + anonymousId: 'anon-id', + email: 'test@gmail.com', + address: { + city: 'NY', + country: 'USA', + postalCode: 712136, + state: 'CA', + street: '', + }, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://incoming.userlist.com/rudderstack/events', + headers: { + Authorization: 'Push userlist-push-key', + 'Content-Type': 'application/json', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'userlist', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + pushKey: 'userlist-push-key', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/html/sajal.html', + referrer: '', + search: + '?utm_source=google&utm_medium=medium&utm_term=keyword&utm_content=some%20content&utm_campaign=some%20campaign&utm_test=other%20value', + title: '', + url: 'http://localhost:9116/html/sajal.html?utm_source=google&utm_medium=medium&utm_term=keyword&utm_content=some%20content&utm_campaign=some%20campaign&utm_test=other%20value', + }, + }, + type: 'group', + messageId: 'e5034df0-a404-47b4-a463-76df99934fea', + originalTimestamp: '2020-10-20T07:54:58.983Z', + anonymousId: 'my-anonymous-id-new', + userId: 'sampleusrRudder3', + integrations: { + All: true, + }, + groupId: 'Sample_groupId23', + traits: { + KEY_3: { + CHILD_KEY_92: 'value_95', + CHILD_KEY_102: 'value_103', + }, + KEY_2: { + CHILD_KEY_92: 'value_95', + CHILD_KEY_102: 'value_103', + }, + name_trait: 'Company', + value_trait: ['Comapny-ABC'], + }, + sentAt: '2020-10-20T07:54:58.983Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.1.5', + }, + traits: { + name: 'Shehan Study', + category: 'SampleIdentify', + email: 'test@rudderstack.com', + plan: 'Open source', + logins: 5, + createdAt: 1599264000, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.1.5', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', + locale: 'en-US', + os: { + name: '', + version: '', + }, + screen: { + density: 0.8999999761581421, + }, + campaign: { + source: 'google', + medium: 'medium', + term: 'keyword', + content: 'some content', + name: 'some campaign', + test: 'other value', + }, + page: { + path: '/html/sajal.html', + referrer: '', + search: + '?utm_source=google&utm_medium=medium&utm_term=keyword&utm_content=some%20content&utm_campaign=some%20campaign&utm_test=other%20value', + title: '', + url: 'http://localhost:9116/html/sajal.html?utm_source=google&utm_medium=medium&utm_term=keyword&utm_content=some%20content&utm_campaign=some%20campaign&utm_test=other%20value', + }, + }, + type: 'group', + messageId: 'e5034df0-a404-47b4-a463-76df99934fea', + originalTimestamp: '2020-10-20T07:54:58.983Z', + anonymousId: 'my-anonymous-id-new', + userId: 'sampleusrRudder3', + integrations: { + All: true, + }, + groupId: 'Sample_groupId23', + traits: { + KEY_3: { + CHILD_KEY_92: 'value_95', + CHILD_KEY_102: 'value_103', + }, + KEY_2: { + CHILD_KEY_92: 'value_95', + CHILD_KEY_102: 'value_103', + }, + name_trait: 'Company', + value_trait: ['Comapny-ABC'], + }, + sentAt: '2020-10-20T07:54:58.983Z', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://incoming.userlist.com/rudderstack/events', + headers: { + Authorization: 'Push userlist-push-key', + 'Content-Type': 'application/json', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'userlist', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + pushKey: 'userlist-push-key', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'test track event', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + XML: {}, + JSON_ARRAY: {}, + JSON: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + email: 'test@rudderstack.com', + anonymousId: '12345', + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + type: 'track', + messageId: 'ec5481b6-a926-4d2e-b293-0b3a77c4d3be', + originalTimestamp: '2019-10-14T11:15:18.300Z', + anonymousId: '00000000000000000000000000', + userId: '12345', + event: 'test track event', + properties: { + user_actual_role: 'system_admin', + user_actual_id: 12345, + user_time_spent: 50000, + }, + integrations: { + All: true, + }, + sentAt: '2019-10-14T11:15:53.296Z', + }, + FORM: {}, + }, + files: {}, + endpoint: 'https://incoming.userlist.com/rudderstack/events', + headers: { + Authorization: 'Push userlist-push-key', + 'Content-Type': 'application/json', + }, + version: '1', + params: {}, + type: 'REST', + method: 'POST', + userId: '', + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'userlist', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + pushKey: 'userlist-push-key', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '123456', + email: 'test@rudderstack.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + ip: '0.0.0.0', + age: 26, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + user_properties: { + prop1: 'val1', + prop2: 'val2', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + integrations: { + All: true, + }, + traits: { + anonymousId: 'anon-id', + email: 'test@gmail.com', + address: { + city: 'NY', + country: 'USA', + postalCode: 712136, + state: 'CA', + street: '', + }, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'userId is required: Workflow: procWorkflow, Step: preparePayload, ChildStep: undefined, OriginalError: userId is required', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'USERLIST', + module: 'destination', + implementation: 'cdkV2', + destinationId: 'destId', + workspaceId: 'wspId', + feature: 'processor', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'userlist', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + pushKey: 'userlist-push-key', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '123456', + email: 'test@rudderstack.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + ip: '0.0.0.0', + age: 26, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + user_properties: { + prop1: 'val1', + prop2: 'val2', + }, + type: 'identify', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + integrations: { + All: true, + }, + traits: { + anonymousId: 'anon-id', + email: 'test@gmail.com', + address: { + city: 'NY', + country: 'USA', + postalCode: 712136, + state: 'CA', + street: '', + }, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'userId is required: Workflow: procWorkflow, Step: preparePayload, ChildStep: undefined, OriginalError: userId is required', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'USERLIST', + module: 'destination', + implementation: 'cdkV2', + destinationId: 'destId', + workspaceId: 'wspId', + feature: 'processor', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'userlist', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + pushKey: 'userlist-push-key', + }, + }, + message: { + channel: 'web', + context: { + app: { + build: '1.0.0', + name: 'RudderLabs JavaScript SDK', + namespace: 'com.rudderlabs.javascript', + version: '1.0.0', + }, + traits: { + anonymousId: '123456', + email: 'test@rudderstack.com', + address: { + city: 'kolkata', + country: 'India', + postalCode: 712136, + state: 'WB', + street: '', + }, + ip: '0.0.0.0', + age: 26, + }, + library: { + name: 'RudderLabs JavaScript SDK', + version: '1.0.0', + }, + userAgent: + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', + locale: 'en-US', + ip: '0.0.0.0', + os: { + name: '', + version: '', + }, + screen: { + density: 2, + }, + }, + user_properties: { + prop1: 'val1', + prop2: 'val2', + }, + type: 'page', + messageId: '84e26acc-56a5-4835-8233-591137fca468', + originalTimestamp: '2019-10-14T09:03:17.562Z', + anonymousId: '123456', + integrations: { + All: true, + }, + traits: { + anonymousId: 'anon-id', + email: 'test@gmail.com', + address: { + city: 'NY', + country: 'USA', + postalCode: 712136, + state: 'CA', + street: '', + }, + }, + sentAt: '2019-10-14T09:03:22.563Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'message type page is not supported: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message type page is not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'USERLIST', + module: 'destination', + implementation: 'cdkV2', + destinationId: 'destId', + workspaceId: 'wspId', + feature: 'processor', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/variance/processor/data.ts b/test/integrations/destinations/variance/processor/data.ts new file mode 100644 index 00000000000..ae33b75e5f8 --- /dev/null +++ b/test/integrations/destinations/variance/processor/data.ts @@ -0,0 +1,953 @@ +export const data = [ + { + name: 'variance', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + originalTimestamp: '2019-09-01T15:46:51.693229+05:30', + sentAt: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, + lifetime_gem_balance: 0, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + webhookUrl: 'http://6b0e6a60.ngrok.io', + authHeader: 'Basic MVA4dUtGOF=', + }, + }, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'http://6b0e6a60.ngrok.io', + headers: { + authorization: 'Basic MVA4dUtGOF=', + 'content-type': 'application/json', + }, + params: {}, + body: { + JSON: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + originalTimestamp: '2019-09-01T15:46:51.693229+05:30', + sentAt: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, + lifetime_gem_balance: 0, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + statusCode: 200, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + }, + { + name: 'variance', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + originalTimestamp: '2019-09-01T15:46:51.693229+05:30', + sentAt: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, + lifetime_gem_balance: 0, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkEnabled: true, + }, + }, + Config: { + webhookUrl: 'https://6b0e6a60.ngrok.io/n', + }, + }, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://6b0e6a60.ngrok.io/n', + headers: { + 'content-type': 'application/json', + }, + params: {}, + body: { + JSON: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + originalTimestamp: '2019-09-01T15:46:51.693229+05:30', + sentAt: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, + lifetime_gem_balance: 0, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + statusCode: 200, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + }, + { + name: 'variance', + description: 'Test 2', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + originalTimestamp: '2019-09-01T15:46:51.693229+05:30', + sentAt: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, + lifetime_gem_balance: 0, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + webhookUrl: 'https://6b0e6a60.', + }, + }, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://6b0e6a60.', + headers: { + 'content-type': 'application/json', + }, + params: {}, + body: { + JSON: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + originalTimestamp: '2019-09-01T15:46:51.693229+05:30', + sentAt: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, + lifetime_gem_balance: 0, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + }, + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + statusCode: 200, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + }, + { + name: 'variance', + description: 'Test 3', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + originalTimestamp: '2019-09-01T15:46:51.693229+05:30', + sentAt: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + request_ip: '127.0.0.1', + }, + destination: { + DestinationDefinition: { + Config: { + cdkEnabled: true, + }, + }, + Config: { + webhookUrl: 'http://6b0e6a60.ngrok.io', + header: [ + { + from: 'test1', + to: 'value1', + }, + { + from: 'test2', + to: 'value2', + }, + ], + }, + }, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'http://6b0e6a60.ngrok.io', + headers: { + 'content-type': 'application/json', + }, + params: {}, + body: { + JSON: { + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + context: { + device: { + id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', + name: 'xiaomi', + }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, + traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, + anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + ip: '127.0.0.1', + }, + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', + properties: { + additional_bet_index: 0, + battle_id: 'N/A', + bet_amount: 9, + bet_level: 1, + bet_multiplier: 1, + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + days_in_game: 0, + extra_param: 'N/A', + fb_profile: '0', + featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', + level: 6, + lifetime_gem_balance: 0, + no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + originalTimestamp: '2019-09-01T15:46:51.693229+05:30', + sentAt: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + request_ip: '127.0.0.1', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + statusCode: 200, + metadata: { + destinationId: 'd1', + workspaceId: 'w1', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/vero/processor/data.ts b/test/integrations/destinations/vero/processor/data.ts new file mode 100644 index 00000000000..7834f0a5415 --- /dev/null +++ b/test/integrations/destinations/vero/processor/data.ts @@ -0,0 +1,818 @@ +export const data = [ + { + "name": "vero", + "description": "Test 0", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "authToken": "testAuthToken" + } + }, + "message": { + "context": { + "traits": { + "homwTown": "kanpur", + "age": "24" + } + }, + "type": "Identify", + "userId": "yash001", + "originalTimestamp": "2019-10-14T09:03:17.562Z" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.getvero.com/api/v2/users/track", + "headers": {}, + "params": {}, + "body": { + "JSON": { + "id": "yash001", + "data": { + "homwTown": "kanpur", + "age": "24" + }, + "auth_token": "testAuthToken" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "vero", + "description": "Test 1", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "authToken": "testAuthToken" + } + }, + "message": { + "context": { + "traits": { + "email": "user1001@tech.com" + } + }, + "type": "Identify", + "userId": "user1001" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.getvero.com/api/v2/users/track", + "headers": {}, + "params": {}, + "body": { + "JSON": { + "id": "user1001", + "email": "user1001@tech.com", + "data": {}, + "auth_token": "testAuthToken" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "vero", + "description": "Test 2", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "authToken": "testAuthToken" + } + }, + "message": { + "context": { + "traits": { + "email": "user1002@tech.com" + } + }, + "type": "Identify", + "anonymousId": "b4ffheww8eisndbdjgdewifewfgerwibderv" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.getvero.com/api/v2/users/track", + "headers": {}, + "params": {}, + "body": { + "JSON": { + "id": "b4ffheww8eisndbdjgdewifewfgerwibderv", + "email": "user1002@tech.com", + "data": {}, + "auth_token": "testAuthToken" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "vero", + "description": "Test 3", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "authToken": "testAuthToken" + } + }, + "message": { + "context": { + "traits": { + "address": "Caravela Beach Goa", + "homwTown": "Mawsynram", + "email": "user1005@tech.com" + } + }, + "integrations": { + "vero": { + "tags": { + "add": [ + "a", + "b" + ] + } + } + }, + "type": "Identify", + "userId": "fprediruser001" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.getvero.com/api/v2/users/track", + "headers": {}, + "params": {}, + "body": { + "JSON": { + "id": "fprediruser001", + "email": "user1005@tech.com", + "data": { + "address": "Caravela Beach Goa", + "homwTown": "Mawsynram" + }, + "auth_token": "testAuthToken" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + }, + { + "output": { + "version": "1", + "type": "REST", + "method": "PUT", + "endpoint": "https://api.getvero.com/api/v2/users/tags/edit", + "headers": {}, + "params": {}, + "body": { + "JSON": { + "id": "fprediruser001", + "auth_token": "testAuthToken", + "add": [ + "a", + "b" + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "vero", + "description": "Test 4", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "authToken": "testAuthToken" + } + }, + "message": { + "event": "Random event with nonexisting userId and email", + "properties": { + "movieWatched": 3, + "gamesPlayed": 4, + "email": "eventIdn01@sample.com" + }, + "type": "track", + "userId": "eventIdn01" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.getvero.com/api/v2/events/track", + "headers": {}, + "params": {}, + "body": { + "JSON": { + "identity": { + "id": "eventIdn01", + "email": "eventIdn01@sample.com" + }, + "event_name": "Random event with nonexisting userId and email", + "data": { + "movieWatched": 3, + "gamesPlayed": 4, + "email": "eventIdn01@sample.com" + }, + "auth_token": "testAuthToken" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "vero", + "description": "Test 5", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "authToken": "testAuthToken" + } + }, + "message": { + "event": "Random event with existing userId and some tags removed", + "properties": { + "movieWatched": 3, + "gamesPlayed": 4, + "email": "eventIdn01@sample.com" + }, + "integrations": { + "Vero": { + "tags": { + "remove": [ + "a" + ] + } + } + }, + "type": "track", + "userId": "fprediruser001" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.getvero.com/api/v2/events/track", + "headers": {}, + "params": {}, + "body": { + "JSON": { + "identity": { + "id": "fprediruser001", + "email": "eventIdn01@sample.com" + }, + "event_name": "Random event with existing userId and some tags removed", + "data": { + "movieWatched": 3, + "gamesPlayed": 4, + "email": "eventIdn01@sample.com" + }, + "auth_token": "testAuthToken" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + }, + { + "output": { + "version": "1", + "type": "REST", + "method": "PUT", + "endpoint": "https://api.getvero.com/api/v2/users/tags/edit", + "headers": {}, + "params": {}, + "body": { + "JSON": { + "id": "fprediruser001", + "auth_token": "testAuthToken", + "remove": [ + "a" + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "vero", + "description": "Test 6", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "authToken": "testAuthToken" + } + }, + "message": { + "type": "alias", + "userId": "sample101", + "previousId": "newsamplel01" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "PUT", + "endpoint": "https://api.getvero.com/api/v2/users/reidentify", + "headers": {}, + "params": {}, + "body": { + "JSON": { + "new_id": "sample101", + "id": "newsamplel01", + "auth_token": "testAuthToken" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "vero", + "description": "Test 7", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "authToken": "testAuthToken" + } + }, + "message": { + "context": { + "traits": { + "email": "user1001@tech.com" + }, + "os": { + "name": "android" + }, + "device": { + "token": "qwertyuioiuytrewwertyu", + "name": "Mi" + } + }, + "type": "Identify", + "userId": "user1001" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.getvero.com/api/v2/users/track", + "headers": {}, + "params": {}, + "body": { + "JSON": { + "id": "user1001", + "email": "user1001@tech.com", + "data": {}, + "channels": { + "platform": "android", + "address": "qwertyuioiuytrewwertyu", + "device": "Mi", + "type": "push" + }, + "auth_token": "testAuthToken" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "vero", + "description": "Test 8", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "authToken": "testAuthToken" + } + }, + "message": { + "context": { + "traits": { + "email": "user1001@tech.com" + }, + "device": { + "token": "qwertyuioiuytrewwertyu", + "name": "Mi" + } + }, + "type": "Identify", + "userId": "user1001" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.getvero.com/api/v2/users/track", + "headers": {}, + "params": {}, + "body": { + "JSON": { + "id": "user1001", + "email": "user1001@tech.com", + "data": {}, + "auth_token": "testAuthToken" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "vero", + "description": "Test 9", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "authToken": "testAuthToken" + } + }, + "message": { + "event": "unsubscribe", + "type": "track", + "userId": "eventIdn01" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.getvero.com/api/v2/users/unsubscribe", + "headers": {}, + "params": {}, + "body": { + "JSON": { + "id": "eventIdn01", + "auth_token": "testAuthToken" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "vero", + "description": "Test 10", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "authToken": "testAuthToken" + } + }, + "message": { + "name": "Rudderstack", + "properties": { + "title": "rudderstack", + "path": "/" + }, + "type": "page", + "userId": "eventIdn01" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "output": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.getvero.com/api/v2/events/track", + "headers": {}, + "params": {}, + "body": { + "JSON": { + "identity": { + "id": "eventIdn01" + }, + "event_name": "Viewed Rudderstack Page", + "data": { + "title": "rudderstack", + "path": "/" + }, + "auth_token": "testAuthToken" + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "userId": "" + }, + "statusCode": 200 + } + ] + } + } + }, + { + "name": "vero", + "description": "Test 11", + "feature": "processor", + "module": "destination", + "version": "v0", + "input": { + "request": { + "body": [ + { + "destination": { + "Config": { + "authToken": "testAuthToken" + } + }, + "message": { + "groupId": "1234", + "traits": { + "name": "MyGroup", + "industry": "IT", + "employees": 450, + "plan": "basic" + }, + "type": "group", + "userId": "eventIdn01" + } + } + ] + } + }, + "output": { + "response": { + "status": 200, + "body": [ + { + "statusCode": 400, + "error": "Event type group is not supported", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "VERO", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } + ] + } + } + } +] \ No newline at end of file diff --git a/test/integrations/destinations/vero/router/data.ts b/test/integrations/destinations/vero/router/data.ts new file mode 100644 index 00000000000..17aba359d16 --- /dev/null +++ b/test/integrations/destinations/vero/router/data.ts @@ -0,0 +1,367 @@ +import { FEATURES } from '../../../../../src/v0/util/tags'; + +export const data = [ + { + name: 'vero', + description: 'Test 0', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + metadata: { + jobId: 1, + }, + message: { + context: { + traits: { + email: 'user001@tech.com', + }, + }, + type: 'Identify', + userId: 'user001', + }, + }, + ], + destType: 'vero', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getvero.com/api/v2/users/track', + headers: {}, + params: {}, + body: { + JSON: { + id: 'user001', + email: 'user001@tech.com', + data: {}, + auth_token: 'testAuthToken', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + metadata: [ + { + jobId: 1, + }, + ], + statusCode: 200, + }, + ], + }, + }, + }, + }, + { + name: 'vero', + description: 'Test 1', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + metadata: { + jobId: 2, + }, + message: { + context: { + traits: { + email: 'user002@tech.com', + }, + }, + type: 'Identify', + anonymousId: 'b4ffheww8eisndbdjgdewifewfgerwibderv', + }, + }, + ], + destType: 'vero', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getvero.com/api/v2/users/track', + headers: {}, + params: {}, + body: { + JSON: { + id: 'b4ffheww8eisndbdjgdewifewfgerwibderv', + email: 'user002@tech.com', + data: {}, + auth_token: 'testAuthToken', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + metadata: [ + { + jobId: 2, + }, + ], + statusCode: 200, + }, + ], + }, + }, + }, + }, + { + name: 'vero', + description: 'Test 2', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + metadata: { + jobId: 3, + }, + message: { + context: { + traits: { + address: 'Caravela Beach Goa', + homwTown: 'Mawsynram', + email: 'user005@tech.com', + }, + }, + integrations: { + vero: { + tags: { + add: ['a', 'b'], + }, + }, + }, + type: 'Identify', + userId: 'fprediruser001', + }, + }, + ], + destType: 'vero', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getvero.com/api/v2/users/track', + headers: {}, + params: {}, + body: { + JSON: { + id: 'fprediruser001', + email: 'user005@tech.com', + data: { + address: 'Caravela Beach Goa', + homwTown: 'Mawsynram', + }, + auth_token: 'testAuthToken', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + { + version: '1', + type: 'REST', + method: 'PUT', + endpoint: 'https://api.getvero.com/api/v2/users/tags/edit', + headers: {}, + params: {}, + body: { + JSON: { + auth_token: 'testAuthToken', + id: 'fprediruser001', + add: ['a', 'b'], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + metadata: [ + { + jobId: 3, + }, + ], + statusCode: 200, + }, + ], + }, + }, + }, + }, + { + name: 'vero', + description: 'Test 3', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + metadata: { + jobId: 4, + }, + message: { + event: 'Random event with nonexisting userId and email', + properties: { + movieWatched: 3, + gamesPlayed: 4, + email: 'eventIdn02@sample.com', + }, + type: 'track', + userId: 'eventIdn01', + }, + }, + ], + destType: 'vero', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + batchedRequest: [ + { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://api.getvero.com/api/v2/events/track', + headers: {}, + params: {}, + body: { + JSON: { + identity: { + id: 'eventIdn01', + email: 'eventIdn02@sample.com', + }, + event_name: 'Random event with nonexisting userId and email', + data: { + movieWatched: 3, + gamesPlayed: 4, + email: 'eventIdn02@sample.com', + }, + auth_token: 'testAuthToken', + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + ], + destination: { + Config: { + authToken: 'testAuthToken', + }, + }, + metadata: [ + { + jobId: 4, + }, + ], + statusCode: 200, + }, + ], + }, + }, + }, + }, +]; diff --git a/test/integrations/destinations/vitally/processor/data.ts b/test/integrations/destinations/vitally/processor/data.ts new file mode 100644 index 00000000000..2c3fdd32979 --- /dev/null +++ b/test/integrations/destinations/vitally/processor/data.ts @@ -0,0 +1,300 @@ +export const data = [ + { + name: 'vitally', + description: 'Test 0', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKeyVitally: 'abc123', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + userId: '0220c056-934e-11ed-a1eb-0242ac120002', + event: 'this is a track event', + type: 'track', + properties: { + thing: 'amazing!', + }, + originalTimestamp: '2023-01-13T09:03:17.562Z', + sentAt: '2023-01-13T09:03:17.562Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + FORM: {}, + JSON_ARRAY: {}, + XML: {}, + JSON: { + userId: '0220c056-934e-11ed-a1eb-0242ac120002', + event: 'this is a track event', + type: 'track', + properties: { + thing: 'amazing!', + }, + originalTimestamp: '2023-01-13T09:03:17.562Z', + sentAt: '2023-01-13T09:03:17.562Z', + }, + }, + endpoint: 'https://api.vitally.io/rudderstack', + files: {}, + params: {}, + type: 'REST', + version: '1', + method: 'POST', + userId: '', + headers: { + authorization: 'Basic abc123', + 'content-type': 'application/json', + }, + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'vitally', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKeyVitally: 'abc123', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + userId: '0220c056-934e-11ed-a1eb-0242ac120002', + type: 'identify', + traits: { + name: 'Johnny Appleseed', + }, + originalTimestamp: '2023-01-13T09:03:17.562Z', + sentAt: '2023-01-13T09:03:17.562Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + FORM: {}, + JSON_ARRAY: {}, + XML: {}, + JSON: { + userId: '0220c056-934e-11ed-a1eb-0242ac120002', + type: 'identify', + traits: { + name: 'Johnny Appleseed', + }, + originalTimestamp: '2023-01-13T09:03:17.562Z', + sentAt: '2023-01-13T09:03:17.562Z', + }, + }, + endpoint: 'https://api.vitally.io/rudderstack', + files: {}, + params: {}, + type: 'REST', + version: '1', + method: 'POST', + userId: '', + headers: { + authorization: 'Basic abc123', + 'content-type': 'application/json', + }, + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + { + name: 'vitally', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKeyVitally: 'abc123', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + userId: '0220c056-934e-11ed-a1eb-0242ac120002', + type: 'group', + groupId: '5de17322-934e-11ed-a1eb-0242ac120002', + originalTimestamp: '2023-01-13T09:03:17.562Z', + sentAt: '2023-01-13T09:03:17.562Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + output: { + body: { + FORM: {}, + JSON_ARRAY: {}, + XML: {}, + JSON: { + userId: '0220c056-934e-11ed-a1eb-0242ac120002', + type: 'group', + groupId: '5de17322-934e-11ed-a1eb-0242ac120002', + originalTimestamp: '2023-01-13T09:03:17.562Z', + sentAt: '2023-01-13T09:03:17.562Z', + }, + }, + endpoint: 'https://api.vitally.io/rudderstack', + files: {}, + params: {}, + type: 'REST', + version: '1', + method: 'POST', + userId: '', + headers: { + authorization: 'Basic abc123', + 'content-type': 'application/json', + }, + }, + statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, + + { + name: 'vitally', + description: 'Test 1', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destination: { + Config: { + apiKeyVitally: 'abc123', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + message: { + userId: '0220c056-934e-11ed-a1eb-0242ac120002', + type: 'page', + groupId: '5de17322-934e-11ed-a1eb-0242ac120002', + originalTimestamp: '2023-01-13T09:03:17.562Z', + sentAt: '2023-01-13T09:03:17.562Z', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 400, + error: + 'message type page is not supported: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: message type page is not supported', + statTags: { + errorCategory: 'dataValidation', + errorType: 'instrumentation', + destType: 'VITALLY', + module: 'destination', + implementation: 'cdkV2', + destinationId: 'destId', + workspaceId: 'wspId', + feature: 'processor', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/webengage/processor/data.ts b/test/integrations/destinations/webengage/processor/data.ts index 42e8c244f1f..4a5be9d5507 100644 --- a/test/integrations/destinations/webengage/processor/data.ts +++ b/test/integrations/destinations/webengage/processor/data.ts @@ -11,7 +11,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -33,7 +33,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -86,7 +86,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -108,7 +108,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -141,7 +141,7 @@ export const data = [ endpoint: 'https://api.in.webengage.com/v1/accounts/3bjsjdbh7/events', headers: { 'Content-Type': 'application/json', - Authorization: 'Bearer ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -161,7 +161,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -202,7 +202,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -224,7 +224,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -256,7 +256,7 @@ export const data = [ method: 'POST', headers: { 'Content-Type': 'application/json', - Authorization: 'Bearer ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -276,7 +276,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -318,7 +318,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -340,7 +340,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -372,7 +372,7 @@ export const data = [ method: 'POST', headers: { 'Content-Type': 'application/json', - Authorization: 'Bearer ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -392,7 +392,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -434,7 +434,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -456,7 +456,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -489,7 +489,7 @@ export const data = [ method: 'POST', headers: { 'Content-Type': 'application/json', - Authorization: 'Bearer ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -509,7 +509,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -552,7 +552,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -574,7 +574,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -633,7 +633,7 @@ export const data = [ product_id: '123', affiliation: 'Apple Store', checkout_id: '12345', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', }, eventName: 'Order Completed', eventTime: '2021-09-01T15:46:51+0000', @@ -645,7 +645,7 @@ export const data = [ method: 'POST', params: {}, headers: { - Authorization: 'Bearer ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + Authorization: 'Bearer dummyApiKey', 'Content-Type': 'application/json', }, version: '1', @@ -670,7 +670,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -692,7 +692,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -751,7 +751,7 @@ export const data = [ product_id: '123', affiliation: 'Apple Store', checkout_id: '12345', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', }, eventName: 'Order Completed', eventTime: '2021-09-01T15:46:51+0000', @@ -763,7 +763,7 @@ export const data = [ method: 'POST', params: {}, headers: { - Authorization: 'Bearer ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + Authorization: 'Bearer dummyApiKey', 'Content-Type': 'application/json', }, version: '1', @@ -788,7 +788,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -809,7 +809,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -868,7 +868,7 @@ export const data = [ product_id: '123', affiliation: 'Apple Store', checkout_id: '12345', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', }, eventName: 'Viewed Games home screen', eventTime: '2021-09-01T15:46:51+0000', @@ -880,7 +880,7 @@ export const data = [ method: 'POST', params: {}, headers: { - Authorization: 'Bearer ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + Authorization: 'Bearer dummyApiKey', 'Content-Type': 'application/json', }, version: '1', @@ -905,7 +905,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -926,7 +926,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -959,7 +959,7 @@ export const data = [ method: 'POST', headers: { 'Content-Type': 'application/json', - Authorization: 'Bearer ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -979,7 +979,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -1022,7 +1022,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -1042,7 +1042,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -1096,7 +1096,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -1116,7 +1116,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -1170,7 +1170,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -1189,7 +1189,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -1243,7 +1243,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'standard', }, @@ -1262,7 +1262,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -1316,7 +1316,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'standard', }, @@ -1337,7 +1337,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -1370,7 +1370,7 @@ export const data = [ method: 'POST', headers: { 'Content-Type': 'application/json', - Authorization: 'Bearer ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -1391,7 +1391,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -1433,7 +1433,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'standard', }, @@ -1454,7 +1454,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -1486,7 +1486,7 @@ export const data = [ method: 'POST', headers: { 'Content-Type': 'application/json', - Authorization: 'Bearer ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -1506,7 +1506,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -1548,7 +1548,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -1591,7 +1591,7 @@ export const data = [ birthday: '2022-05-13T12:51:01.470Z', email: 'chandan@companyname.com', name: 'James Doe', - phone: '92374162212', + phone: '9876543210', firstname: 'James', lastname: 'Doe', age: '12', @@ -1616,7 +1616,7 @@ export const data = [ FORM: {}, JSON: { email: 'chandan@companyname.com', - phone: '92374162212', + phone: '9876543210', userId: 'rudder1236', lastName: 'Doe', firstName: 'James', @@ -1632,7 +1632,7 @@ export const data = [ method: 'POST', params: {}, headers: { - Authorization: 'Bearer ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + Authorization: 'Bearer dummyApiKey', 'Content-Type': 'application/json', }, version: '1', @@ -1657,7 +1657,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -1694,7 +1694,7 @@ export const data = [ traits: { email: 'chandan@companyname.com', name: 'James Doe', - phone: '92374162212', + phone: '9876543210', firstname: 'James', lastname: 'Doe', age: '12', @@ -1724,7 +1724,7 @@ export const data = [ method: 'POST', headers: { 'Content-Type': 'application/json', - Authorization: 'Bearer ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -1733,7 +1733,7 @@ export const data = [ firstName: 'James', lastName: 'Doe', email: 'chandan@companyname.com', - phone: '92374162212', + phone: '9876543210', country: 'INDIA', gender: 'male', attributes: { age: '12', state: 'WB' }, @@ -1764,7 +1764,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -1806,7 +1806,7 @@ export const data = [ traits: { email: 'chandan@companyname.com', name: 'James Doe', - phone: '92374162212', + phone: '9876543210', firstname: 'James', lastname: 'Doe', age: '12', @@ -1835,7 +1835,7 @@ export const data = [ method: 'POST', headers: { 'Content-Type': 'application/json', - Authorization: 'Bearer ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + Authorization: 'Bearer dummyApiKey', }, params: {}, body: { @@ -1844,7 +1844,7 @@ export const data = [ firstName: 'James', lastName: 'Doe', email: 'chandan@companyname.com', - phone: '92374162212', + phone: '9876543210', postalCode: '713390', country: 'INDIA', city: 'Amritsar', @@ -1878,7 +1878,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -1901,7 +1901,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -1954,7 +1954,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -1976,7 +1976,7 @@ export const data = [ discount: 1.5, coupon: 'ImagePro', currency: 'USD', - fetch_token: '123asd23', + fetch_token: 'dummyFetchToken', product_id: '123', products: { sku: 'G-32', @@ -2029,7 +2029,7 @@ export const data = [ { destination: { Config: { - apiKey: 'ab7eb717-cdd8-tr63-a7f5-93339d7beelkd', + apiKey: 'dummyApiKey', licenseCode: '3bjsjdbh7', dataCenter: 'ind', }, @@ -2072,7 +2072,7 @@ export const data = [ birthday: '202205-13T12:51:01.470Z', email: 'chandan@companyname.com', name: 'James Doe', - phone: '92374162212', + phone: '9876543210', firstname: 'James', lastname: 'Doe', age: '12', diff --git a/test/integrations/destinations/webhook/processor/data.ts b/test/integrations/destinations/webhook/processor/data.ts index d02fa58227f..dbe83a79a51 100644 --- a/test/integrations/destinations/webhook/processor/data.ts +++ b/test/integrations/destinations/webhook/processor/data.ts @@ -18,15 +18,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -93,14 +103,28 @@ export const data = [ Config: { webhookUrl: 'http://6b0e6a60.ngrok.io', headers: [ - { from: '', to: '' }, - { from: 'test2', to: 'value2' }, + { + from: '', + to: '', + }, + { + from: 'test2', + to: 'value2', + }, ], }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, }, ], - method: 'POST', }, }, output: { @@ -110,98 +134,115 @@ export const data = [ { output: { body: { - XML: {}, - JSON_ARRAY: {}, JSON: { - timestamp: '2019-09-01T15:46:51.693229+05:30', - user_properties: { - total_payments: 0, - internetReachability: 'ReachableViaLocalAreaNetwork', - level: 6, - userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - coin_balance: 9466052, - player_total_shields: 0, - isLowEndDevice: false, - game_fps: 30, - idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', - graphicsQuality: 'HD', - current_module_name: 'CasinoGameModule', - player_total_battles: 0, - lifetime_gem_balance: 0, - gem_balance: 0, - fb_profile: '0', - start_date: '2019-08-01', - versionSessionCount: 2, - game_name: 'FireEagleSlots', - }, - integrations: { All: true }, - event: 'spin_result', - message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', context: { device: { - model: 'Redmi 6', - manufacturer: 'Xiaomi', id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', name: 'xiaomi', }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - address: { city: 'Dhaka', country: 'Bangladesh' }, }, - os: { version: '8.1.0', name: 'android' }, - network: { carrier: 'Banglalink' }, }, - type: 'track', + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { - userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - jackpot_win_type: 'Silver', - coin_balance: 9466052, - bet_level: 1, - ishighroller: 'False', - tournament_id: 'T1561970819', + additional_bet_index: 0, battle_id: 'N/A', bet_amount: 9, - fb_profile: '0', - player_total_shields: 0, - is_turbo: 'False', - player_total_battles: 0, + bet_level: 1, bet_multiplier: 1, - start_date: '2019-08-01', - versionSessionCount: 2, - graphicsQuality: 'HD', - is_auto_spin: 'False', + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', days_in_game: 0, - additional_bet_index: 0, - isLowEndDevice: 'False', - game_fps: 30, extra_param: 'N/A', - idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', - current_module_name: 'CasinoGameModule', - game_id: 'fireEagleBase', + fb_profile: '0', featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', internetReachability: 'ReachableViaLocalAreaNetwork', - total_payments: 0, + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', level: 6, - win_amount: 0, + lifetime_gem_balance: 0, no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, game_name: 'FireEagleSlots', - jackpot_win_amount: 90, + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, lifetime_gem_balance: 0, - isf: 'False', + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, }, }, + JSON_ARRAY: {}, + XML: {}, FORM: {}, }, - files: {}, - endpoint: 'http://6b0e6a60.ngrok.io', - userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - headers: { 'content-type': 'application/json', test2: 'value2' }, version: '1', - params: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', type: 'REST', method: 'POST', + endpoint: 'http://6b0e6a60.ngrok.io', + headers: { + 'content-type': 'application/json', + test2: 'value2', + }, + params: {}, + files: {}, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, statusCode: 200, }, @@ -228,15 +269,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -299,10 +350,22 @@ export const data = [ versionSessionCount: 2, }, }, - destination: { Config: { webhookUrl: 'https://6b0e6a60.ngrok.io/n' } }, + destination: { + Config: { + webhookUrl: 'https://6b0e6a60.ngrok.io/n', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, }, ], - method: 'POST', }, }, output: { @@ -312,98 +375,114 @@ export const data = [ { output: { body: { - XML: {}, - JSON_ARRAY: {}, JSON: { - timestamp: '2019-09-01T15:46:51.693229+05:30', - user_properties: { - total_payments: 0, - internetReachability: 'ReachableViaLocalAreaNetwork', - level: 6, - userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - coin_balance: 9466052, - player_total_shields: 0, - isLowEndDevice: false, - game_fps: 30, - idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', - graphicsQuality: 'HD', - current_module_name: 'CasinoGameModule', - player_total_battles: 0, - lifetime_gem_balance: 0, - gem_balance: 0, - fb_profile: '0', - start_date: '2019-08-01', - versionSessionCount: 2, - game_name: 'FireEagleSlots', - }, - integrations: { All: true }, - event: 'spin_result', - message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', context: { device: { - model: 'Redmi 6', - manufacturer: 'Xiaomi', id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', name: 'xiaomi', }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - address: { city: 'Dhaka', country: 'Bangladesh' }, }, - os: { version: '8.1.0', name: 'android' }, - network: { carrier: 'Banglalink' }, }, - type: 'track', + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { - userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - jackpot_win_type: 'Silver', - coin_balance: 9466052, - bet_level: 1, - ishighroller: 'False', - tournament_id: 'T1561970819', + additional_bet_index: 0, battle_id: 'N/A', bet_amount: 9, - fb_profile: '0', - player_total_shields: 0, - is_turbo: 'False', - player_total_battles: 0, + bet_level: 1, bet_multiplier: 1, - start_date: '2019-08-01', - versionSessionCount: 2, - graphicsQuality: 'HD', - is_auto_spin: 'False', + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', days_in_game: 0, - additional_bet_index: 0, - isLowEndDevice: 'False', - game_fps: 30, extra_param: 'N/A', - idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', - current_module_name: 'CasinoGameModule', - game_id: 'fireEagleBase', + fb_profile: '0', featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', internetReachability: 'ReachableViaLocalAreaNetwork', - total_payments: 0, + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', level: 6, - win_amount: 0, + lifetime_gem_balance: 0, no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, game_name: 'FireEagleSlots', - jackpot_win_amount: 90, + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, lifetime_gem_balance: 0, - isf: 'False', + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, }, }, + JSON_ARRAY: {}, + XML: {}, FORM: {}, }, - files: {}, - endpoint: 'https://6b0e6a60.ngrok.io/n', - userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - headers: { 'content-type': 'application/json' }, version: '1', - params: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', type: 'REST', method: 'POST', + endpoint: 'https://6b0e6a60.ngrok.io/n', + headers: { + 'content-type': 'application/json', + }, + params: {}, + files: {}, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, statusCode: 200, }, @@ -430,15 +509,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -501,10 +590,22 @@ export const data = [ versionSessionCount: 2, }, }, - destination: { Config: { webhookUrl: 'https://6b0e6a60.' } }, + destination: { + Config: { + webhookUrl: 'https://6b0e6a60.', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, }, ], - method: 'POST', }, }, output: { @@ -514,98 +615,114 @@ export const data = [ { output: { body: { - XML: {}, - JSON_ARRAY: {}, JSON: { - timestamp: '2019-09-01T15:46:51.693229+05:30', - user_properties: { - total_payments: 0, - internetReachability: 'ReachableViaLocalAreaNetwork', - level: 6, - userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - coin_balance: 9466052, - player_total_shields: 0, - isLowEndDevice: false, - game_fps: 30, - idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', - graphicsQuality: 'HD', - current_module_name: 'CasinoGameModule', - player_total_battles: 0, - lifetime_gem_balance: 0, - gem_balance: 0, - fb_profile: '0', - start_date: '2019-08-01', - versionSessionCount: 2, - game_name: 'FireEagleSlots', - }, - integrations: { All: true }, - event: 'spin_result', - message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', context: { device: { - model: 'Redmi 6', - manufacturer: 'Xiaomi', id: 'df16bffa-5c3d-4fbb-9bce-3bab098129a7R', + manufacturer: 'Xiaomi', + model: 'Redmi 6', name: 'xiaomi', }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - address: { city: 'Dhaka', country: 'Bangladesh' }, }, - os: { version: '8.1.0', name: 'android' }, - network: { carrier: 'Banglalink' }, }, - type: 'track', + event: 'spin_result', + integrations: { + All: true, + }, + message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { - userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - jackpot_win_type: 'Silver', - coin_balance: 9466052, - bet_level: 1, - ishighroller: 'False', - tournament_id: 'T1561970819', + additional_bet_index: 0, battle_id: 'N/A', bet_amount: 9, - fb_profile: '0', - player_total_shields: 0, - is_turbo: 'False', - player_total_battles: 0, + bet_level: 1, bet_multiplier: 1, - start_date: '2019-08-01', - versionSessionCount: 2, - graphicsQuality: 'HD', - is_auto_spin: 'False', + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', days_in_game: 0, - additional_bet_index: 0, - isLowEndDevice: 'False', - game_fps: 30, extra_param: 'N/A', - idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', - current_module_name: 'CasinoGameModule', - game_id: 'fireEagleBase', + fb_profile: '0', featureGameType: 'N/A', + game_fps: 30, + game_id: 'fireEagleBase', + game_name: 'FireEagleSlots', gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', internetReachability: 'ReachableViaLocalAreaNetwork', - total_payments: 0, + isLowEndDevice: 'False', + is_auto_spin: 'False', + is_turbo: 'False', + isf: 'False', + ishighroller: 'False', + jackpot_win_amount: 90, + jackpot_win_type: 'Silver', level: 6, - win_amount: 0, + lifetime_gem_balance: 0, no_of_spin: 1, + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + tournament_id: 'T1561970819', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, + win_amount: 0, + }, + timestamp: '2019-09-01T15:46:51.693229+05:30', + type: 'track', + user_properties: { + coin_balance: 9466052, + current_module_name: 'CasinoGameModule', + fb_profile: '0', + game_fps: 30, game_name: 'FireEagleSlots', - jackpot_win_amount: 90, + gem_balance: 0, + graphicsQuality: 'HD', + idfa: '2bf99787-33d2-4ae2-a76a-c49672f97252', + internetReachability: 'ReachableViaLocalAreaNetwork', + isLowEndDevice: false, + level: 6, lifetime_gem_balance: 0, - isf: 'False', + player_total_battles: 0, + player_total_shields: 0, + start_date: '2019-08-01', + total_payments: 0, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + versionSessionCount: 2, }, }, + JSON_ARRAY: {}, + XML: {}, FORM: {}, }, - files: {}, - endpoint: 'https://6b0e6a60.', - userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - headers: { 'content-type': 'application/json' }, version: '1', - params: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', type: 'REST', method: 'POST', + endpoint: 'https://6b0e6a60.', + headers: { + 'content-type': 'application/json', + }, + params: {}, + files: {}, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, statusCode: 200, }, @@ -632,17 +749,35 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', - properties: { k1: 'v1', k2: { k3: 'c3', k4: { k5: 'c5' } } }, + properties: { + k1: 'v1', + k2: { + k3: 'c3', + k4: { + k5: 'c5', + }, + }, + }, timestamp: '2019-09-01T15:46:51.693229+05:30', type: 'track', }, @@ -650,12 +785,25 @@ export const data = [ Config: { webhookUrl: 'https://6b0e6a60.', webhookMethod: 'GET', - headers: [{ from: 'X-customHeader', to: 'customHeaderVal' }], + headers: [ + { + from: 'X-customHeader', + to: 'customHeaderVal', + }, + ], }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, }, ], - method: 'POST', }, }, output: { @@ -664,15 +812,30 @@ export const data = [ body: [ { output: { + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, version: '1', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', type: 'REST', method: 'GET', endpoint: 'https://6b0e6a60.', - headers: { 'x-customheader': 'customHeaderVal' }, - params: { k1: 'v1', 'k2.k3': 'c3', 'k2.k4.k5': 'c5' }, - body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, + headers: { + 'x-customheader': 'customHeaderVal', + }, + params: { + k1: 'v1', + 'k2.k3': 'c3', + 'k2.k4.k5': 'c5', + }, files: {}, - userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, statusCode: 200, }, @@ -699,24 +862,55 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', - properties: { k1: 'v1', k2: { k3: 'c3', k4: { k5: 'c5' } } }, + properties: { + k1: 'v1', + k2: { + k3: 'c3', + k4: { + k5: 'c5', + }, + }, + }, timestamp: '2019-09-01T15:46:51.693229+05:30', type: 'track', }, - destination: { Config: { webhookUrl: 'https://6b0e6a60.', webhookMethod: 'GET' } }, + destination: { + Config: { + webhookUrl: 'https://6b0e6a60.', + webhookMethod: 'GET', + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, }, ], - method: 'POST', }, }, output: { @@ -725,15 +919,28 @@ export const data = [ body: [ { output: { + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, version: '1', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', type: 'REST', method: 'GET', endpoint: 'https://6b0e6a60.', headers: {}, - params: { k1: 'v1', 'k2.k3': 'c3', 'k2.k4.k5': 'c5' }, - body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, + params: { + k1: 'v1', + 'k2.k3': 'c3', + 'k2.k4.k5': 'c5', + }, files: {}, - userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, statusCode: 200, }, @@ -760,15 +967,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -816,14 +1033,28 @@ export const data = [ Config: { webhookUrl: 'http://6b0e6a60.ngrok.io', header: [ - { from: 'test1', to: 'value1' }, - { from: 'test2', to: 'value2' }, + { + from: 'test1', + to: 'value1', + }, + { + from: 'test2', + to: 'value2', + }, ], }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, }, ], - method: 'POST', }, }, output: { @@ -832,12 +1063,6 @@ export const data = [ body: [ { output: { - version: '1', - type: 'REST', - method: 'POST', - endpoint: 'http://6b0e6a60.ngrok.io', - headers: { 'content-type': 'application/json' }, - params: {}, body: { JSON: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', @@ -848,16 +1073,26 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, ip: '127.0.0.1', }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -901,12 +1136,24 @@ export const data = [ type: 'track', request_ip: '127.0.0.1', }, - XML: {}, JSON_ARRAY: {}, + XML: {}, FORM: {}, }, - files: {}, + version: '1', userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + type: 'REST', + method: 'POST', + endpoint: 'http://6b0e6a60.ngrok.io', + headers: { + 'content-type': 'application/json', + }, + params: {}, + files: {}, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, statusCode: 200, }, @@ -933,15 +1180,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -989,14 +1246,28 @@ export const data = [ Config: { webhookUrl: 'http://6b0e6a60.ngrok.io', headers: [ - { from: 'Content-Type', to: 'application/xml' }, - { from: 'test2', to: 'value2' }, + { + from: 'Content-Type', + to: 'application/xml', + }, + { + from: 'test2', + to: 'value2', + }, ], }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, }, ], - method: 'POST', }, }, output: { @@ -1005,12 +1276,6 @@ export const data = [ body: [ { output: { - version: '1', - type: 'REST', - method: 'POST', - endpoint: 'http://6b0e6a60.ngrok.io', - headers: { 'content-type': 'application/xml', test2: 'value2' }, - params: {}, body: { JSON: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', @@ -1021,16 +1286,26 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, ip: '127.0.0.1', }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -1074,12 +1349,25 @@ export const data = [ type: 'track', request_ip: '127.0.0.1', }, - XML: {}, JSON_ARRAY: {}, + XML: {}, FORM: {}, }, - files: {}, + version: '1', userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + type: 'REST', + method: 'POST', + endpoint: 'http://6b0e6a60.ngrok.io', + headers: { + 'content-type': 'application/xml', + test2: 'value2', + }, + params: {}, + files: {}, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, statusCode: 200, }, @@ -1100,7 +1388,9 @@ export const data = [ message: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -1147,14 +1437,28 @@ export const data = [ Config: { webhookUrl: 'http://6b0e6a60.ngrok.io', headers: [ - { from: 'Content-Type', to: 'application/xml' }, - { from: 'test2', to: 'value2' }, + { + from: 'Content-Type', + to: 'application/xml', + }, + { + from: 'test2', + to: 'value2', + }, ], }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, }, ], - method: 'POST', }, }, output: { @@ -1163,17 +1467,13 @@ export const data = [ body: [ { output: { - version: '1', - type: 'REST', - method: 'POST', - endpoint: 'http://6b0e6a60.ngrok.io', - headers: { 'content-type': 'application/xml', test2: 'value2' }, - params: {}, body: { JSON: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -1216,12 +1516,25 @@ export const data = [ timestamp: '2019-09-01T15:46:51.693229+05:30', type: 'track', }, - XML: {}, JSON_ARRAY: {}, + XML: {}, FORM: {}, }, - files: {}, + version: '1', userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + type: 'REST', + method: 'POST', + endpoint: 'http://6b0e6a60.ngrok.io', + headers: { + 'content-type': 'application/xml', + test2: 'value2', + }, + params: {}, + files: {}, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, statusCode: 200, }, @@ -1248,15 +1561,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -1269,7 +1592,9 @@ export const data = [ header: { dynamic_header_key_string: 'dynamic_header_value_string', dynamic_header_key_num: 10, - dynamic_header_key_object: { k1: 'v1' }, + dynamic_header_key_object: { + k1: 'v1', + }, }, appendPath: '/product/search?string=value', }, @@ -1277,14 +1602,28 @@ export const data = [ Config: { webhookUrl: 'http://6b0e6a60.ngrok.io', headers: [ - { from: '', to: '' }, - { from: 'test2', to: 'value2' }, + { + from: '', + to: '', + }, + { + from: 'test2', + to: 'value2', + }, ], }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, }, ], - method: 'POST', }, }, output: { @@ -1294,8 +1633,6 @@ export const data = [ { output: { body: { - XML: {}, - JSON_ARRAY: {}, JSON: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', context: { @@ -1305,15 +1642,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -1324,20 +1671,26 @@ export const data = [ timestamp: '2019-09-01T15:46:51.693229+05:30', type: 'track', }, + JSON_ARRAY: {}, + XML: {}, FORM: {}, }, - files: {}, - endpoint: 'http://6b0e6a60.ngrok.io/product/search?string=value', + version: '1', userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + type: 'REST', + method: 'POST', + endpoint: 'http://6b0e6a60.ngrok.io/product/search?string=value', headers: { 'content-type': 'application/json', test2: 'value2', dynamic_header_key_string: 'dynamic_header_value_string', }, - version: '1', params: {}, - type: 'REST', - method: 'POST', + files: {}, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, statusCode: 200, }, @@ -1364,15 +1717,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -1388,14 +1751,28 @@ export const data = [ Config: { webhookUrl: 'http://6b0e6a60.ngrok.io', headers: [ - { from: '', to: '' }, - { from: 'test2', to: 'value2' }, + { + from: '', + to: '', + }, + { + from: 'test2', + to: 'value2', + }, ], }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, }, ], - method: 'POST', }, }, output: { @@ -1405,8 +1782,6 @@ export const data = [ { output: { body: { - XML: {}, - JSON_ARRAY: {}, JSON: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', context: { @@ -1416,15 +1791,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -1435,16 +1820,25 @@ export const data = [ timestamp: '2019-09-01T15:46:51.693229+05:30', type: 'track', }, + JSON_ARRAY: {}, + XML: {}, FORM: {}, }, - files: {}, - endpoint: 'https://www.google.com', - userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - headers: { 'content-type': 'application/json', test2: 'value2' }, version: '1', - params: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', type: 'REST', method: 'POST', + endpoint: 'https://www.google.com', + headers: { + 'content-type': 'application/json', + test2: 'value2', + }, + params: {}, + files: {}, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, statusCode: 200, }, @@ -1471,15 +1865,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -1496,14 +1900,28 @@ export const data = [ Config: { webhookUrl: 'http://6b0e6a60.ngrok.io', headers: [ - { from: '', to: '' }, - { from: 'test2', to: 'value2' }, + { + from: '', + to: '', + }, + { + from: 'test2', + to: 'value2', + }, ], }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, }, ], - method: 'POST', }, }, output: { @@ -1513,8 +1931,6 @@ export const data = [ { output: { body: { - XML: {}, - JSON_ARRAY: {}, JSON: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', context: { @@ -1524,15 +1940,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -1543,16 +1969,25 @@ export const data = [ timestamp: '2019-09-01T15:46:51.693229+05:30', type: 'track', }, + JSON_ARRAY: {}, + XML: {}, FORM: {}, }, - files: {}, - endpoint: 'https://www.google.com/?searchTerms=cats', - userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - headers: { 'content-type': 'application/json', test2: 'value2' }, version: '1', - params: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', type: 'REST', method: 'POST', + endpoint: 'https://www.google.com/?searchTerms=cats', + headers: { + 'content-type': 'application/json', + test2: 'value2', + }, + params: {}, + files: {}, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, statusCode: 200, }, @@ -1579,15 +2014,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -1605,14 +2050,28 @@ export const data = [ webhookUrl: 'http://6b0e6a60.ngrok.io', webhookMethod: 'PUT', headers: [ - { from: '', to: '' }, - { from: 'test2', to: 'value2' }, + { + from: '', + to: '', + }, + { + from: 'test2', + to: 'value2', + }, ], }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, }, ], - method: 'POST', }, }, output: { @@ -1622,8 +2081,6 @@ export const data = [ { output: { body: { - XML: {}, - JSON_ARRAY: {}, JSON: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', context: { @@ -1633,15 +2090,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -1652,16 +2119,25 @@ export const data = [ timestamp: '2019-09-01T15:46:51.693229+05:30', type: 'track', }, + JSON_ARRAY: {}, + XML: {}, FORM: {}, }, - files: {}, - endpoint: 'https://www.google.com/?searchTerms=cats', - userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - headers: { 'content-type': 'application/json', test2: 'value2' }, version: '1', - params: {}, + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', type: 'REST', method: 'PUT', + endpoint: 'https://www.google.com/?searchTerms=cats', + headers: { + 'content-type': 'application/json', + test2: 'value2', + }, + params: {}, + files: {}, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, statusCode: 200, }, @@ -1688,15 +2164,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -1714,14 +2200,28 @@ export const data = [ webhookUrl: 'http://6b0e6a60.ngrok.io', webhookMethod: 'DELETE', headers: [ - { from: '', to: '' }, - { from: 'test2', to: 'value2' }, + { + from: '', + to: '', + }, + { + from: 'test2', + to: 'value2', + }, ], }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, }, ], - method: 'POST', }, }, output: { @@ -1730,20 +2230,31 @@ export const data = [ body: [ { output: { - body: { XML: {}, JSON_ARRAY: {}, JSON: {}, FORM: {} }, - files: {}, - endpoint: 'https://www.google.com/?searchTerms=cats', - userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - headers: { test2: 'value2' }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, version: '1', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + type: 'REST', + method: 'DELETE', + endpoint: 'https://www.google.com/?searchTerms=cats', + headers: { + test2: 'value2', + }, params: { additional_bet_index: 0, battle_id: 'N/A', featureGameType: 'N/A', win_amount: 0, }, - type: 'REST', - method: 'DELETE', + files: {}, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, statusCode: 200, }, @@ -1770,15 +2281,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -1845,12 +2366,25 @@ export const data = [ Config: { webhookUrl: 'http://6b0e6a60.ngrok.io', webhookMethod: 'POST', - headers: [{ from: 'test2', to: 'value2' }], + headers: [ + { + from: 'test2', + to: 'value2', + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, }, }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, }, ], - method: 'POST', }, }, output: { @@ -1860,7 +2394,6 @@ export const data = [ { output: { body: { - FORM: {}, JSON: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', context: { @@ -1870,15 +2403,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -1943,15 +2486,23 @@ export const data = [ }, JSON_ARRAY: {}, XML: {}, + FORM: {}, }, - endpoint: 'http://6b0e6a60.ngrok.io', - files: {}, - headers: { 'content-type': 'application/json', test2: 'value2' }, + version: '1', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + type: 'REST', method: 'POST', + endpoint: 'http://6b0e6a60.ngrok.io', + headers: { + 'content-type': 'application/json', + test2: 'value2', + }, params: {}, - type: 'REST', - userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - version: '1', + files: {}, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, statusCode: 200, }, @@ -1978,15 +2529,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -2053,12 +2614,25 @@ export const data = [ Config: { webhookUrl: 'http://6b0e6a60.ngrok.io', webhookMethod: 'PATCH', - headers: [{ from: 'test2', to: 'value2' }], + headers: [ + { + from: 'test2', + to: 'value2', + }, + ], + }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, }, }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, }, ], - method: 'POST', }, }, output: { @@ -2068,7 +2642,6 @@ export const data = [ { output: { body: { - FORM: {}, JSON: { anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', context: { @@ -2078,15 +2651,25 @@ export const data = [ model: 'Redmi 6', name: 'xiaomi', }, - network: { carrier: 'Banglalink' }, - os: { name: 'android', version: '8.1.0' }, + network: { + carrier: 'Banglalink', + }, + os: { + name: 'android', + version: '8.1.0', + }, traits: { - address: { city: 'Dhaka', country: 'Bangladesh' }, + address: { + city: 'Dhaka', + country: 'Bangladesh', + }, anonymousId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', }, }, event: 'spin_result', - integrations: { All: true }, + integrations: { + All: true, + }, message_id: 'a80f82be-9bdc-4a9f-b2a5-15621ee41df8', properties: { additional_bet_index: 0, @@ -2151,15 +2734,23 @@ export const data = [ }, JSON_ARRAY: {}, XML: {}, + FORM: {}, }, - endpoint: 'http://6b0e6a60.ngrok.io', - files: {}, - headers: { 'content-type': 'application/json', test2: 'value2' }, + version: '1', + userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', + type: 'REST', method: 'PATCH', + endpoint: 'http://6b0e6a60.ngrok.io', + headers: { + 'content-type': 'application/json', + test2: 'value2', + }, params: {}, - type: 'REST', - userId: 'c82cbdff-e5be-4009-ac78-cdeea09ab4b1', - version: '1', + files: {}, + }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', }, statusCode: 200, }, diff --git a/test/integrations/destinations/webhook/router/data.ts b/test/integrations/destinations/webhook/router/data.ts index e9c4f8701a8..291fc5ffba6 100644 --- a/test/integrations/destinations/webhook/router/data.ts +++ b/test/integrations/destinations/webhook/router/data.ts @@ -117,6 +117,11 @@ export const data = [ }, ], }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, }, }, { @@ -217,6 +222,11 @@ export const data = [ Config: { webhookUrl: 'https://6b0e6a60.ngrok.io/n', }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, }, }, ], @@ -360,6 +370,11 @@ export const data = [ }, ], }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, }, }, { @@ -481,6 +496,11 @@ export const data = [ Config: { webhookUrl: 'https://6b0e6a60.ngrok.io/n', }, + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, }, }, ], diff --git a/test/integrations/destinations/woopra/processor/data.ts b/test/integrations/destinations/woopra/processor/data.ts index bebc9ce51d7..0fed7fc9959 100644 --- a/test/integrations/destinations/woopra/processor/data.ts +++ b/test/integrations/destinations/woopra/processor/data.ts @@ -26,8 +26,8 @@ export const data = [ messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', originalTimestamp: '2020-09-28T19:53:31.900Z', traits: { - name: 'Anant jain', - email: 'anant@r.com', + name: 'Test Rudderlabs', + email: 'test@r.com', hasPurchased: 'yes', address: 'H.No. abc Street PQRS ', state: 'Delhi', @@ -60,8 +60,8 @@ export const data = [ browser: 'Chrome86.0.4240.111', cookie: '21e13f4bc7ceddad', Project: 'abc.com', - cv_email: 'anant@r.com', - cv_name: 'Anant jain', + cv_email: 'test@r.com', + cv_name: 'Test Rudderlabs', cv_state: 'Delhi', cv_title: 'Mr', cv_hasPurchased: 'yes', diff --git a/test/integrations/destinations/woopra/router/data.ts b/test/integrations/destinations/woopra/router/data.ts index c51e1763f2d..5a3b20bea6f 100644 --- a/test/integrations/destinations/woopra/router/data.ts +++ b/test/integrations/destinations/woopra/router/data.ts @@ -40,8 +40,8 @@ export const data = [ messageId: '1601322811899-d9c7dd00-50dc-4364-95c8-e89423eb3cfb', originalTimestamp: '2020-09-28T19:53:31.900Z', traits: { - Name: 'Anant jain', - email: 'anant@r.com', + Name: 'Test Rudderlabs', + email: 'test@r.com', hasPurchased: 'yes', address: 'H.No. abc Street PQRS ', state: 'Delhi', @@ -88,13 +88,13 @@ export const data = [ app: 'RuddCDN', cookie: '21e13f4bc7ceddad', Project: 'abc.com', - cv_email: 'anant@r.com', + cv_email: 'test@r.com', cv_state: 'Delhi', cv_title: 'Mr', cv_hasPurchased: 'yes', cv_address: 'H.No. abc Street PQRS ', timestamp: '1601371229907', - cv_Name: 'Anant jain', + cv_Name: 'Test Rudderlabs', }, headers: {}, version: '1', diff --git a/test/integrations/destinations/yahoo_dsp/network.ts b/test/integrations/destinations/yahoo_dsp/network.ts new file mode 100644 index 00000000000..2dcd0d2a9fb --- /dev/null +++ b/test/integrations/destinations/yahoo_dsp/network.ts @@ -0,0 +1,22 @@ +export const networkCallsData = [ + { + httpReq: { + headers: { + Accept: 'application/json', + 'Content-Type': 'application/x-www-form-urlencoded', + }, + data: 'grant_type=client_credentials&scope=dsp-api-access&realm=dsp&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&client_assertion=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJodHRwczovL2lkLmIyYi55YWhvb2luYy5jb20vaWRlbnRpdHkvb2F1dGgyL2FjY2Vzc190b2tlbj9yZWFsbT1kc3AiLCJzdWIiOiJhYmNkZWY4LWY0OS00Y2Q2LWI0YzUtOTU4YjNkNjZkNDMxIiwiaXNzIjoiYWJjZGVmOC1mNDktNGNkNi1iNGM1LTk1OGIzZDY2ZDQzMSIsImV4cCI6MTY5NTMwODk5MCwiaWF0IjoxNjk1MzA1MzkwfQ.HdBZJ0PoI8L0LRRdfbYtbJbmtrOAQmfu2APbuIQguIA', + method: 'POST', + url: 'https://id.b2b.yahooinc.com/identity/oauth2/access_token', + }, + httpRes: { + data: { + access_token: 'testAuthToken', + expires_in: 3599, + scope: 'dsp-api-access', + token_type: 'Bearer', + }, + status: 200, + }, + }, +]; diff --git a/test/integrations/destinations/yahoo_dsp/processor/data.ts b/test/integrations/destinations/yahoo_dsp/processor/data.ts index 2c844e72785..eb607d60fbe 100644 --- a/test/integrations/destinations/yahoo_dsp/processor/data.ts +++ b/test/integrations/destinations/yahoo_dsp/processor/data.ts @@ -1,3 +1,11 @@ +import { addMock } from '../../../testUtils'; +import { networkCallsData } from '../network'; + +export const mockFns = (mockAdapter) => { + addMock(mockAdapter, networkCallsData[0]); + // 21 September 2023 19:39:50 GMT+05:30 + Date.now = jest.fn(() => 1695305390000); +}; export const data = [ { name: 'yahoo_dsp', @@ -19,7 +27,7 @@ export const data = [ ipAddress: 'fdffddf', email: 'alex@email.com', deviceId: 'djfdjfkdjf', - phone: '09432457768', + phone: '09876543210', firstName: 'alex', lastName: 'hales', country: 'AUS', @@ -32,9 +40,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'amy@abc.com', deviceId: 'djfdjfkdjf', - phone: '09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', includeChains: 1573, postalCode: '1245', @@ -45,9 +53,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'van@abc.com', deviceId: 'djfdjfkdjf', - phone: '@09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', includeChains: 1573, postalCode: '1245', @@ -90,7 +98,7 @@ export const data = [ 'https://dspapi.admanagerplus.yahoo.com/traffic/audiences/email_address/34893', headers: { 'X-Auth-Method': 'OAuth2', - 'X-Auth-Token': 'fb8c05c9-3a32-409a-9993-3f53d307fe75', + 'X-Auth-Token': 'testAuthToken', 'Content-Type': 'application/json', }, params: {}, @@ -135,9 +143,9 @@ export const data = [ { ipAddress: 'fdffddf', deviceId: 'djfdjfkdjf', - phone: '@09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', postalCode: '1245', includeChains: 1573, @@ -148,9 +156,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'amy@abc.com', deviceId: 'djfdjfkdjf', - phone: '@09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', includeChains: 1573, postalCode: '1245', @@ -161,9 +169,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'van@abc.com', deviceId: 'djfdjfkdjf', - phone: '@09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', includeChains: 1573, postalCode: '1245', @@ -232,7 +240,7 @@ export const data = [ ipAddress: 'fdffddf', email: 'alex@email.com', deviceId: 'djfdjfkdjf', - phone: '09432457768', + phone: '09876543210', firstName: 'alex', lastName: 'hales', country: 'AUS', @@ -245,9 +253,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'amy@abc.com', deviceId: 'djfdjfkdjf', - phone: '09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', includeChains: 1573, postalCode: '1245', @@ -258,9 +266,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'van@abc.com', deviceId: 'djfdjfkdjf', - phone: '@09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', includeChains: 1573, postalCode: '1245', @@ -301,7 +309,7 @@ export const data = [ method: 'PUT', endpoint: 'https://dspapi.admanagerplus.yahoo.com/traffic/audiences/device_id/34893', headers: { - 'X-Auth-Token': 'fb8c05c9-3a32-409a-9993-3f53d307fe75', + 'X-Auth-Token': 'testAuthToken', 'X-Auth-Method': 'OAuth2', 'Content-Type': 'application/json', }, @@ -349,7 +357,7 @@ export const data = [ ipAddress: 'fdffddf', email: 'alex@email.com', deviceId: 'djfdjfkdjf', - phone: '09432457768', + phone: '09876543210', firstName: 'alex', lastName: 'hales', country: 'AUS', @@ -362,9 +370,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'amy@abc.com', deviceId: 'djfdjfkdjf', - phone: '09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', includeChains: 1573, postalCode: '1245', @@ -375,9 +383,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'van@abc.com', deviceId: 'djfdjfkdjf', - phone: '@09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', includeChains: 1573, postalCode: '1245', @@ -419,7 +427,7 @@ export const data = [ endpoint: 'https://dspapi.admanagerplus.yahoo.com/traffic/audiences/customsegments/34893', headers: { - 'X-Auth-Token': 'fb8c05c9-3a32-409a-9993-3f53d307fe75', + 'X-Auth-Token': 'testAuthToken', 'X-Auth-Method': 'OAuth2', 'Content-Type': 'application/json', }, @@ -467,7 +475,7 @@ export const data = [ ipAddress: 'fdffddf', email: 'alex@email.com', deviceId: 'djfdjfkdjf', - phone: '09432457768', + phone: '09876543210', firstName: 'alex', lastName: 'hales', country: 'AUS', @@ -479,9 +487,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'amy@abc.com', deviceId: 'djfdjfkdjf', - phone: '09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', postalCode: '1245', mailDomain: 'yahoo.com', @@ -491,9 +499,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'van@abc.com', deviceId: 'djfdjfkdjf', - phone: '@09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', postalCode: '1245', mailDomain: 'yahoo.com', @@ -561,7 +569,7 @@ export const data = [ { ipAddress: 'fdffddf', email: 'alex@email.com', - phone: '09432457768', + phone: '09876543210', firstName: 'alex', lastName: 'hales', country: 'AUS', @@ -573,9 +581,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'amy@abc.com', deviceId: 'djfdjfkdjf', - phone: '09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', postalCode: '1245', mailDomain: 'yahoo.com', @@ -585,9 +593,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'van@abc.com', deviceId: 'djfdjfkdjf', - phone: '@09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', postalCode: '1245', mailDomain: 'yahoo.com', @@ -656,9 +664,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'van@abc.com', deviceId: 'djfdjfkdjf', - phone: '@09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', postalCode: '1245', mailDomain: 'yahoo.com', @@ -727,7 +735,7 @@ export const data = [ ipAddress: 'fdffddf', email: 'alex@email.com', deviceId: 'djfdjfkdjf', - phone: '09432457768', + phone: '09876543210', firstName: 'alex', lastName: 'hales', country: 'AUS', @@ -740,9 +748,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'amy@abc.com', deviceId: 'djfdjfkdjf', - phone: '09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', includeChains: 1573, postalCode: '1245', @@ -753,9 +761,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'van@abc.com', deviceId: 'djfdjfkdjf', - phone: '@09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', includeChains: 1573, postalCode: '1245', @@ -825,7 +833,7 @@ export const data = [ ipAddress: 'fdffddf', email: 'alex@email.com', deviceId: 'djfdjfkdjf', - phone: '09432457768', + phone: '09876543210', firstName: 'alex', lastName: 'hales', country: 'AUS', @@ -838,9 +846,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'amy@abc.com', deviceId: 'djfdjfkdjf', - phone: '09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', includeChains: 1573, postalCode: '1245', @@ -851,9 +859,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'van@abc.com', deviceId: 'djfdjfkdjf', - phone: '@09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', includeChains: 1573, postalCode: '1245', @@ -922,7 +930,7 @@ export const data = [ ipAddress: 'fdffddf', email: 'alex@email.com', deviceId: 'djfdjfkdjf', - phone: '09432457768', + phone: '09876543210', firstName: 'alex', lastName: 'hales', country: 'AUS', @@ -935,9 +943,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'amy@abc.com', deviceId: 'djfdjfkdjf', - phone: '09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', includeChains: 1573, postalCode: '1245', @@ -948,9 +956,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'van@abc.com', deviceId: 'djfdjfkdjf', - phone: '@09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', includeChains: 1573, postalCode: '1245', @@ -1107,4 +1115,6 @@ export const data = [ }, }, }, -]; +].map((d) => { + return { ...d, mockFns }; +}); diff --git a/test/integrations/destinations/yahoo_dsp/router/data.ts b/test/integrations/destinations/yahoo_dsp/router/data.ts index d4ea93a700b..59c71b300cb 100644 --- a/test/integrations/destinations/yahoo_dsp/router/data.ts +++ b/test/integrations/destinations/yahoo_dsp/router/data.ts @@ -1,3 +1,5 @@ +import { mockFns } from '../processor/data'; + export const data = [ { name: 'yahoo_dsp', @@ -34,7 +36,7 @@ export const data = [ ipAddress: 'fdffddf', email: 'alex@email.com', deviceId: 'djfdjfkdjf', - phone: '09432457768', + phone: '09876543210', firstName: 'alex', lastName: 'hales', country: 'AUS', @@ -47,9 +49,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'amy@abc.com', deviceId: 'djfdjfkdjf', - phone: '09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', includeChains: 1573, postalCode: '1245', @@ -60,9 +62,9 @@ export const data = [ ipAddress: 'fdffddf', email: 'van@abc.com', deviceId: 'djfdjfkdjf', - phone: '@09432457768', - firstName: 'sudip', - lastName: 'paul', + phone: '@09876543210', + firstName: 'test', + lastName: 'rudderlabs', country: 'US', includeChains: 1573, postalCode: '1245', @@ -102,7 +104,7 @@ export const data = [ 'https://dspapi.admanagerplus.yahoo.com/traffic/audiences/email_address/34893', headers: { 'X-Auth-Method': 'OAuth2', - 'X-Auth-Token': 'fb8c05c9-3a32-409a-9993-3f53d307fe75', + 'X-Auth-Token': 'testAuthToken', 'Content-Type': 'application/json', }, params: {}, @@ -144,5 +146,6 @@ export const data = [ }, }, }, + mockFns, }, ]; diff --git a/test/integrations/destinations/zapier/data.ts b/test/integrations/destinations/zapier/data.ts index 6dbabd26d81..122ffd2d1db 100644 --- a/test/integrations/destinations/zapier/data.ts +++ b/test/integrations/destinations/zapier/data.ts @@ -41,10 +41,14 @@ export const data = [ originalTimestamp: '2020-04-17T14:42:44.724Z', sentAt: '2020-04-17T14:42:44.724Z', }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, destination: { DestinationDefinition: { Config: { - cdkEnabled: true, + cdkV2Enabled: true, }, }, Config: { @@ -116,6 +120,10 @@ export const data = [ userId: '', }, statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, }, ], }, @@ -163,10 +171,14 @@ export const data = [ originalTimestamp: '2020-04-17T14:42:44.724Z', sentAt: '2020-04-17T14:42:44.724Z', }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, destination: { DestinationDefinition: { Config: { - cdkEnabled: true, + cdkV2Enabled: true, }, }, Config: { @@ -247,6 +259,10 @@ export const data = [ userId: '', }, statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, }, ], }, @@ -294,10 +310,14 @@ export const data = [ originalTimestamp: '2020-04-17T14:42:44.724Z', sentAt: '2020-04-17T14:42:44.724Z', }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, destination: { DestinationDefinition: { Config: { - cdkEnabled: true, + cdkV2Enabled: true, }, }, Config: { @@ -387,6 +407,10 @@ export const data = [ userId: '', }, statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, }, ], }, @@ -434,10 +458,14 @@ export const data = [ originalTimestamp: '2020-04-17T14:42:44.724Z', sentAt: '2020-04-17T14:42:44.724Z', }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, destination: { DestinationDefinition: { Config: { - cdkEnabled: true, + cdkV2Enabled: true, }, }, Config: { @@ -527,6 +555,10 @@ export const data = [ userId: '', }, statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, }, ], }, @@ -574,10 +606,14 @@ export const data = [ originalTimestamp: '2020-04-17T14:42:44.724Z', sentAt: '2020-04-17T14:42:44.724Z', }, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, destination: { DestinationDefinition: { Config: { - cdkEnabled: true, + cdkV2Enabled: true, }, }, Config: { @@ -658,6 +694,10 @@ export const data = [ userId: '', }, statusCode: 200, + metadata: { + destinationId: 'destId', + workspaceId: 'wspId', + }, }, ], }, diff --git a/test/integrations/destinations/zendesk/network.ts b/test/integrations/destinations/zendesk/network.ts new file mode 100644 index 00000000000..bc80f0cd0a7 --- /dev/null +++ b/test/integrations/destinations/zendesk/network.ts @@ -0,0 +1,1825 @@ +export const networkCallsData = [ + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organization_fields.json', + }, + httpRes: { + data: { + count: 1, + next_page: null, + organization_fields: [ + { + active: true, + created_at: '2020-03-23T18:14:35Z', + description: 'email', + id: 900000015126, + key: 'email', + position: 0, + raw_description: 'email', + raw_title: 'email', + regexp_for_validation: null, + system: false, + title: 'email', + type: 'text', + updated_at: '2020-03-23T18:14:35Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organization_fields/900000015126.json', + }, + ], + previous_page: null, + }, + status: 200, + }, + }, + { + httpReq: { + data: { + organization: { + domain_names: 'cw124.com', + external_id: 'group-124', + name: 'test-org124', + organization_fields: { email: 'group_email_124@xyz.com', id: 'group-124' }, + }, + }, + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organizations/create_or_update.json', + }, + httpRes: { + data: { + organization: { + created_at: '2020-03-17T10:21:14Z', + details: null, + domain_names: ['cw124.com'], + external_id: 'group-124', + group_id: null, + id: 900001329943, + name: 'test-org124', + notes: null, + organization_fields: { email: 'group_email_124@xyz.com' }, + shared_comments: false, + shared_tickets: false, + tags: [], + updated_at: '2020-03-23T19:33:08Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organizations/900001329943.json', + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/search.json?query=example124@email.com', + }, + httpRes: { + data: { + count: 1, + next_page: null, + previous_page: null, + users: [ + { + active: true, + alias: null, + chat_only: false, + created_at: '2020-03-17T10:21:15Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'example124@email.com', + external_id: 'abcd-124', + iana_time_zone: 'America/New_York', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'abcd124', + notes: null, + only_private_comments: false, + organization_id: null, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Eastern Time (US & Canada)', + two_factor_auth_enabled: false, + updated_at: '2020-03-17T12:16:59Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483.json', + user_fields: { birthday: null }, + verified: true, + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2//users/900113780483/organization_memberships.json', + }, + httpRes: { error: 'Request failed' }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic cnVkZGVybGFidGVzdDJAZW1haWwuY29tL3Rva2VuOmR1bW15QXBpVG9rZW4=', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabtest2.zendesk.com/api/v2/users/search.json?query=testemail2@email', + }, + httpRes: { data: { count: 0, next_page: null, previous_page: null, users: [] }, status: 200 }, + }, + { + httpReq: { + data: { + user: { + email: 'testemail2@email', + external_id: '0000000000', + name: 'John Wick', + verified: true, + }, + }, + headers: { + Authorization: 'Basic cnVkZGVybGFidGVzdDJAZW1haWwuY29tL3Rva2VuOmR1bW15QXBpVG9rZW4=', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabtest2.zendesk.com/api/v2/users/create_or_update.json', + }, + httpRes: { data: { user: {} }, status: 200 }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organization_fields.json', + }, + httpRes: { + data: { + count: 1, + next_page: null, + organization_fields: [ + { + active: true, + created_at: '2020-03-23T18:14:35Z', + description: 'email', + id: 900000015126, + key: 'email', + position: 0, + raw_description: 'email', + raw_title: 'email', + regexp_for_validation: null, + system: false, + title: 'email', + type: 'text', + updated_at: '2020-03-23T18:14:35Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organization_fields/900000015126.json', + }, + ], + previous_page: null, + }, + status: 200, + }, + }, + { + httpReq: { + data: { + organization: { + domain_names: 'cw124.com', + external_id: 'group-124', + name: 'test-org124', + organization_fields: { email: 'group_email_124@xyz.com', id: 'group-124' }, + }, + }, + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organizations/create_or_update.json', + }, + httpRes: { + data: { + organization: { + created_at: '2020-03-17T10:21:14Z', + details: null, + domain_names: ['cw124.com'], + external_id: 'group-124', + group_id: null, + id: 900001329943, + name: 'test-org124', + notes: null, + organization_fields: { email: 'group_email_124@xyz.com' }, + shared_comments: false, + shared_tickets: false, + tags: [], + updated_at: '2020-03-23T19:33:08Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organizations/900001329943.json', + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/search.json?query=example124@email.com', + }, + httpRes: { + data: { + count: 1, + next_page: null, + previous_page: null, + users: [ + { + active: true, + alias: null, + chat_only: false, + created_at: '2020-03-17T10:21:15Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'example124@email.com', + external_id: 'abcd-124', + iana_time_zone: 'America/New_York', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'abcd124', + notes: null, + only_private_comments: false, + organization_id: null, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Eastern Time (US & Canada)', + two_factor_auth_enabled: false, + updated_at: '2020-03-17T12:16:59Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483.json', + user_fields: { birthday: null }, + verified: true, + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2//users/900113780483/organization_memberships.json', + }, + httpRes: { error: 'Request failed' }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/search.json?query=example124@email.com', + }, + httpRes: { + data: { + count: 1, + next_page: null, + previous_page: null, + users: [ + { + active: true, + alias: null, + chat_only: false, + created_at: '2020-03-17T10:21:15Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'example124@email.com', + external_id: 'abcd-124', + iana_time_zone: 'America/New_York', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'abcd124', + notes: null, + only_private_comments: false, + organization_id: null, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Eastern Time (US & Canada)', + two_factor_auth_enabled: false, + updated_at: '2020-03-17T12:16:59Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483.json', + user_fields: { birthday: null }, + verified: true, + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/search.json?query=example124@email.com', + }, + httpRes: { + data: { + count: 1, + next_page: null, + previous_page: null, + users: [ + { + active: true, + alias: null, + chat_only: false, + created_at: '2020-03-17T10:21:15Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'example124@email.com', + external_id: 'abcd-124', + iana_time_zone: 'America/New_York', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'abcd124', + notes: null, + only_private_comments: false, + organization_id: null, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Eastern Time (US & Canada)', + two_factor_auth_enabled: false, + updated_at: '2020-03-17T12:16:59Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483.json', + user_fields: { birthday: null }, + verified: true, + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483/organization_memberships.json', + }, + httpRes: { + data: { + count: 1, + next_page: null, + organization_memberships: [ + { + created_at: '2020-03-23T15:56:56Z', + default: true, + id: 900004877903, + organization_id: 900001329943, + updated_at: '2020-03-23T15:56:56Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organization_memberships/900004877903.json', + user_id: 900113780483, + }, + ], + previous_page: null, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/search.json?query=example124@email.com', + }, + httpRes: { + data: { + count: 1, + next_page: null, + previous_page: null, + users: [ + { + active: true, + alias: null, + chat_only: false, + created_at: '2020-03-17T10:21:15Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'example124@email.com', + external_id: 'abcd-124', + iana_time_zone: 'America/New_York', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'abcd124', + notes: null, + only_private_comments: false, + organization_id: null, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Eastern Time (US & Canada)', + two_factor_auth_enabled: false, + updated_at: '2020-03-17T12:16:59Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483.json', + user_fields: { birthday: null }, + verified: true, + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483/organization_memberships.json', + }, + httpRes: { + data: { + count: 1, + next_page: null, + organization_memberships: [ + { + created_at: '2020-03-23T15:56:56Z', + default: true, + id: 900004877903, + organization_id: 900001329943, + updated_at: '2020-03-23T15:56:56Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organization_memberships/900004877903.json', + user_id: 900113780483, + }, + ], + previous_page: null, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjQ=', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + data: { + user_field: { active: true, description: 'country', key: 'country', title: 'country' }, + }, + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjQ=', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjQ=', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + data: { + user_field: { active: true, description: 'country', key: 'country', title: 'country' }, + }, + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjQ=', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjQ=', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + data: { + user_field: { active: true, description: 'country', key: 'country', title: 'country' }, + }, + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjQ=', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjQ=', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/search.json?query=johnwick@example.com', + }, + httpRes: { error: 'Request failed', status: 200 }, + }, + { + httpReq: { + data: { + user: { + email: 'johnwick@example.com', + external_id: '0000000000', + name: 'John Wick', + verified: true, + }, + }, + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjM=', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/create_or_update.json', + }, + httpRes: { + data: { + user: { + active: true, + alias: null, + chat_only: false, + created_at: '2020-03-17T10:21:15Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'example124@email.com', + external_id: 'abcd-124', + iana_time_zone: 'America/New_York', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'abcd124', + notes: null, + only_private_comments: false, + organization_id: 900001329943, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Eastern Time (US & Canada)', + two_factor_auth_enabled: false, + updated_at: '2020-03-23T15:56:56Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483.json', + user_fields: { birthday: null }, + verified: true, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjM=', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/search.json?query=johnwick@example.com', + }, + httpRes: { error: 'Request failed', status: 200 }, + }, + { + httpReq: { + data: { + user: { + email: 'johnwick@example.com', + external_id: '0000000000', + name: 'John Wick', + verified: true, + }, + }, + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjM=', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/create_or_update.json', + }, + httpRes: { + data: { + user: { + active: true, + alias: null, + chat_only: false, + created_at: '2020-03-17T10:21:15Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'example124@email.com', + external_id: 'abcd-124', + iana_time_zone: 'America/New_York', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'abcd124', + notes: null, + only_private_comments: false, + organization_id: 900001329943, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Eastern Time (US & Canada)', + two_factor_auth_enabled: false, + updated_at: '2020-03-23T15:56:56Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483.json', + user_fields: { birthday: null }, + verified: true, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMi90b2tlbjpteUR1bW15QXBpVG9rZW4y', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://blendohelp.zendesk.com/api/v2/organization_fields.json', + }, + httpRes: { error: 'Request failed', status: 200 }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/search.json?query=abcd-144', + }, + httpRes: { + data: { + count: 1, + facets: null, + next_page: null, + previous_page: null, + users: [ + { + active: true, + alias: null, + created_at: '2022-11-24T09:03:54Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'test1000@email.com', + external_id: 'abcd-144', + iana_time_zone: 'Asia/Kolkata', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'name-1000 user', + notes: null, + only_private_comments: false, + organization_id: null, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + result_type: 'user', + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Asia/Kolkata', + two_factor_auth_enabled: false, + updated_at: '2022-11-24T09:03:54Z', + url: 'https://rudderstack6787.zendesk.com/api/v2/users/10865192864273.json', + user_fields: {}, + verified: true, + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483/identities', + }, + httpRes: { + data: { + count: 2, + identities: [ + { + created_at: '2022-11-02T08:03:28Z', + deliverable_state: 'deliverable', + id: 7535981118877, + primary: true, + type: 'email', + undeliverable_count: 0, + updated_at: '2022-11-02T10:23:28Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/7533979645597/identities/7535981118877.json', + user_id: 900113780483, + value: 'example119@email.com', + verified: false, + }, + { + created_at: '2022-11-02T04:23:46Z', + deliverable_state: 'deliverable', + id: 7534173321117, + primary: false, + type: 'email', + undeliverable_count: 0, + updated_at: '2022-11-02T10:23:28Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/7533979645597/identities/7534173321117.json', + user_id: 900113780483, + value: 'example115@email.com', + verified: true, + }, + ], + next_page: null, + previous_page: null, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic cnVkZGVybGFidGVzdDFAZW1haWwuY29tL3Rva2VuOmR1bW15QXBpVG9rZW4=', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabtest1.zendesk.com/api/v2/users/search.json?query=testemail1@email', + }, + httpRes: { data: { count: 0, next_page: null, previous_page: null, users: [] }, status: 200 }, + }, + { + httpReq: { + data: { + user: { + email: 'testemail1@email', + external_id: '0000000000', + name: 'John Wick', + verified: true, + }, + }, + headers: { + Authorization: 'Basic cnVkZGVybGFidGVzdDFAZW1haWwuY29tL3Rva2VuOmR1bW15QXBpVG9rZW4=', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabtest1.zendesk.com/api/v2/users/create_or_update.json', + }, + httpRes: { + data: { + user: { + active: true, + alias: null, + chat_only: false, + created_at: '2020-03-17T10:21:15Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'testemail1@email', + external_id: 'exId-123', + iana_time_zone: 'America/New_York', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'John Wick', + notes: null, + only_private_comments: false, + organization_id: 900001329943, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Eastern Time (US & Canada)', + two_factor_auth_enabled: false, + updated_at: '2020-03-23T15:56:56Z', + url: 'https://rudderlabtest1.zendesk.com/api/v2/users/900113780483.json', + user_fields: { birthday: null }, + verified: true, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic cnVkZGVybGFidGVzdDJAZW1haWwuY29tL3Rva2VuOmR1bW15QXBpVG9rZW4=', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabtest2.zendesk.com/api/v2/users/search.json?query=testemail2@email', + }, + httpRes: { data: { count: 0, next_page: null, previous_page: null, users: [] }, status: 200 }, + }, + { + httpReq: { + data: { + user: { + email: 'testemail2@email', + external_id: '0000000000', + name: 'John Wick', + verified: true, + }, + }, + headers: { + Authorization: 'Basic cnVkZGVybGFidGVzdDJAZW1haWwuY29tL3Rva2VuOmR1bW15QXBpVG9rZW4=', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabtest2.zendesk.com/api/v2/users/create_or_update.json', + }, + httpRes: { data: { user: {} }, status: 200 }, + }, +]; diff --git a/test/integrations/destinations/zendesk/processor/data.ts b/test/integrations/destinations/zendesk/processor/data.ts index d0167582395..4dab6c5d5d9 100644 --- a/test/integrations/destinations/zendesk/processor/data.ts +++ b/test/integrations/destinations/zendesk/processor/data.ts @@ -120,7 +120,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', }, - event: 'Abhishek Track me', + event: 'Rudderlabs Track me', integrations: { All: true }, messageId: '017f5227-ead3-4b7d-9794-1465022327be', originalTimestamp: '2021-03-25T14:36:47.695Z', @@ -186,7 +186,7 @@ export const data = [ apiToken: 'myDummyApiToken3', createUsersAsVerified: true, domain: 'rudderlabshelp', - email: 'abhishek@rudder.com', + email: 'test@rudder.com', removeUsersFromOrganization: false, sendGroupCallsWithoutUserId: false, }, @@ -909,7 +909,7 @@ export const data = [ apiToken: 'myDummyApiToken4', createUsersAsVerified: false, domain: 'rudderlabshelp', - email: 'abhishek@rudder.com', + email: 'test@rudder.com', removeUsersFromOrganization: false, sendGroupCallsWithoutUserId: false, }, @@ -935,7 +935,7 @@ export const data = [ method: 'POST', endpoint: 'https://rudderlabshelp.zendesk.com/api/v2/users/create_or_update.json', headers: { - Authorization: 'Basic YWJoaXNoZWtAcnVkZGVyLmNvbS90b2tlbjpteUR1bW15QXBpVG9rZW40', + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjQ=', 'Content-Type': 'application/json', 'X-Zendesk-Marketplace-Name': 'RudderStack', 'X-Zendesk-Marketplace-Organization-Id': '3339', @@ -1076,7 +1076,7 @@ export const data = [ apiToken: 'myDummyApiToken4', createUsersAsVerified: false, domain: 'rudderlabshelp', - email: 'abhishek@rudder.com', + email: 'test@rudder.com', removeUsersFromOrganization: false, sendGroupCallsWithoutUserId: false, }, @@ -1102,7 +1102,7 @@ export const data = [ method: 'POST', endpoint: 'https://rudderlabshelp.zendesk.com/api/v2/users/create_or_update.json', headers: { - Authorization: 'Basic YWJoaXNoZWtAcnVkZGVyLmNvbS90b2tlbjpteUR1bW15QXBpVG9rZW40', + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjQ=', 'Content-Type': 'application/json', 'X-Zendesk-Marketplace-Name': 'RudderStack', 'X-Zendesk-Marketplace-Organization-Id': '3339', @@ -1243,7 +1243,7 @@ export const data = [ apiToken: 'myDummyApiToken4', createUsersAsVerified: true, domain: 'rudderlabshelp', - email: 'abhishek@rudder.com', + email: 'test@rudder.com', removeUsersFromOrganization: true, sendGroupCallsWithoutUserId: true, }, @@ -1269,7 +1269,7 @@ export const data = [ method: 'POST', endpoint: 'https://rudderlabshelp.zendesk.com/api/v2/users/create_or_update.json', headers: { - Authorization: 'Basic YWJoaXNoZWtAcnVkZGVyLmNvbS90b2tlbjpteUR1bW15QXBpVG9rZW40', + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjQ=', 'Content-Type': 'application/json', 'X-Zendesk-Marketplace-Name': 'RudderStack', 'X-Zendesk-Marketplace-Organization-Id': '3339', @@ -1351,7 +1351,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', }, - event: 'Abhishek Track me', + event: 'Rudderlabs Track me', integrations: { All: true }, messageId: '017f5227-ead3-4b7d-9794-1465022327be', originalTimestamp: '2021-03-25T14:36:47.695Z', @@ -1417,7 +1417,7 @@ export const data = [ apiToken: 'myDummyApiToken3', createUsersAsVerified: true, domain: 'rudderlabshelp', - email: 'abhishek@rudder.com', + email: 'test@rudder.com', removeUsersFromOrganization: false, sendGroupCallsWithoutUserId: false, }, @@ -1442,7 +1442,7 @@ export const data = [ FORM: {}, JSON: { event: { - description: 'Abhishek Track me', + description: 'Rudderlabs Track me', properties: { category: 'category', label: 'label', @@ -1450,12 +1450,12 @@ export const data = [ value: 'value', }, source: 'Rudder', - type: 'Abhishek Track me', + type: 'Rudderlabs Track me', }, profile: { identifiers: [{ type: 'email', value: 'example124@email.com' }], source: 'Rudder', - type: 'Abhishek Track me', + type: 'Rudderlabs Track me', }, }, XML: {}, @@ -1464,7 +1464,7 @@ export const data = [ endpoint: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483/events', files: {}, headers: { - Authorization: 'Basic YWJoaXNoZWtAcnVkZGVyLmNvbS90b2tlbjpteUR1bW15QXBpVG9rZW4z', + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjM=', 'Content-Type': 'application/json', 'X-Zendesk-Marketplace-App-Id': '263241', 'X-Zendesk-Marketplace-Name': 'RudderStack', @@ -1534,7 +1534,7 @@ export const data = [ userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', }, - event: 'Abhishek Track me', + event: 'Rudderlabs Track me', integrations: { All: true }, messageId: '611a63fc-acb5-4a76-b4c3-e9cba27ca554', originalTimestamp: '2021-03-25T14:50:39.716Z', @@ -1600,7 +1600,7 @@ export const data = [ apiToken: 'myDummyApiToken3', createUsersAsVerified: true, domain: 'rudderlabshelp', - email: 'abhishek@rudder.com', + email: 'test@rudder.com', removeUsersFromOrganization: true, sendGroupCallsWithoutUserId: true, }, @@ -1625,7 +1625,7 @@ export const data = [ FORM: {}, JSON: { event: { - description: 'Abhishek Track me', + description: 'Rudderlabs Track me', properties: { category: 'category', label: 'label', @@ -1633,12 +1633,12 @@ export const data = [ value: 'value', }, source: 'Rudder', - type: 'Abhishek Track me', + type: 'Rudderlabs Track me', }, profile: { identifiers: [{ type: 'email', value: 'example124@email.com' }], source: 'Rudder', - type: 'Abhishek Track me', + type: 'Rudderlabs Track me', }, }, XML: {}, @@ -1647,7 +1647,7 @@ export const data = [ endpoint: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483/events', files: {}, headers: { - Authorization: 'Basic YWJoaXNoZWtAcnVkZGVyLmNvbS90b2tlbjpteUR1bW15QXBpVG9rZW4z', + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjM=', 'Content-Type': 'application/json', 'X-Zendesk-Marketplace-App-Id': '263241', 'X-Zendesk-Marketplace-Name': 'RudderStack', @@ -2233,7 +2233,7 @@ export const data = [ ID: 'xxxXXXXXXXXXXXxxxxxxxxxorpz', Name: 'Zendesk', Config: { - apiToken: 'yPJwcLTFSsvIkFhY23SzittHoYADJQ7eKDoxNu4x', + apiToken: 'dummyApiToken', createUsersAsVerified: true, domain: 'rudderlabtest1', email: 'rudderlabtest1@email.com', @@ -2278,8 +2278,7 @@ export const data = [ endpoint: 'https://rudderlabtest1.zendesk.com/api/v2/users/900113780483/events', files: {}, headers: { - Authorization: - 'Basic cnVkZGVybGFidGVzdDFAZW1haWwuY29tL3Rva2VuOnlQSndjTFRGU3N2SWtGaFkyM1N6aXR0SG9ZQURKUTdlS0RveE51NHg=', + Authorization: 'Basic cnVkZGVybGFidGVzdDFAZW1haWwuY29tL3Rva2VuOmR1bW15QXBpVG9rZW4=', 'Content-Type': 'application/json', 'X-Zendesk-Marketplace-App-Id': '263241', 'X-Zendesk-Marketplace-Name': 'RudderStack', @@ -2337,7 +2336,7 @@ export const data = [ ID: 'xxxXXXXXXXXXXXxxxxxxxxxorpz', Name: 'Zendesk', Config: { - apiToken: 'yPJwcLTFSsvIkFhY23SzittHoYADJQ7eKDoxNu4x', + apiToken: 'dummyApiToken', createUsersAsVerified: true, domain: 'rudderlabtest2', email: 'rudderlabtest2@email.com', @@ -2356,7 +2355,7 @@ export const data = [ body: [ { error: - "Failed to fetch user with email: testemail2@email due to Couldn't find user: John Wick", + '{"message":"Failed to fetch user with email: testemail2@email due to Couldn\'t find user: John Wick","destinationResponse":{"status":400,"statTags":{"errorCategory":"network","errorType":"aborted","meta":"instrumentation"},"destinationResponse":"","authErrorCategory":""}}', statTags: { destType: 'ZENDESK', errorCategory: 'network', diff --git a/test/integrations/destinations/zendesk/router/data.ts b/test/integrations/destinations/zendesk/router/data.ts index 1be76b0c4bc..d99ca6df039 100644 --- a/test/integrations/destinations/zendesk/router/data.ts +++ b/test/integrations/destinations/zendesk/router/data.ts @@ -323,7 +323,7 @@ export const data = [ { destination: { Config: { - apiToken: 'yPJwcLTFSsvIkFhY23SzittHoYADJQ7eKDoxNu4x', + apiToken: 'dummyApiToken', createUsersAsVerified: true, domain: 'rudderlabtest2', email: 'rudderlabtest2@email.com', @@ -383,7 +383,7 @@ export const data = [ output: [ { error: - "Failed to fetch user with email: testemail2@email due to Couldn't find user: John Wick", + '{"message":"Failed to fetch user with email: testemail2@email due to Couldn\'t find user: John Wick","destinationResponse":{"status":400,"statTags":{"errorCategory":"network","errorType":"aborted","meta":"instrumentation"},"destinationResponse":"","authErrorCategory":""}}', statTags: { destType: 'ZENDESK', errorCategory: 'network', @@ -401,7 +401,7 @@ export const data = [ batched: false, destination: { Config: { - apiToken: 'yPJwcLTFSsvIkFhY23SzittHoYADJQ7eKDoxNu4x', + apiToken: 'dummyApiToken', createUsersAsVerified: true, domain: 'rudderlabtest2', email: 'rudderlabtest2@email.com', diff --git a/test/integrations/sources/moengage/data.ts b/test/integrations/sources/moengage/data.ts index b1a2b53c759..e8160ae08b9 100644 --- a/test/integrations/sources/moengage/data.ts +++ b/test/integrations/sources/moengage/data.ts @@ -42,8 +42,8 @@ const data = [ id: 'abc123', }, createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', - email: 'ruchira@gmail.com', - name: 'Ruchira Moitra', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', plan: 'Enterprise', }, userAgent: @@ -120,7 +120,7 @@ const data = [ sentAt: '2020-10-16T08:10:12.783Z', timestamp: '2020-10-16T13:40:12.791+05:30', type: 'track', - userId: 'ruchu123', + userId: 'rudder123', }, ], method: 'POST', @@ -172,8 +172,8 @@ const data = [ id: 'abc123', }, createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', - email: 'ruchira@gmail.com', - name: 'Ruchira Moitra', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', plan: 'Enterprise', }, userAgent: @@ -250,7 +250,7 @@ const data = [ sentAt: '2020-10-16T08:10:12.783Z', timestamp: '2020-10-16T13:40:12.791+05:30', type: 'track', - userId: 'ruchu123', + userId: 'rudder123', }, ], }, @@ -333,8 +333,8 @@ const data = [ id: 'abc123', }, createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', - email: 'ruchira@gmail.com', - name: 'Ruchira Moitra', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', plan: 'Enterprise', }, userAgent: @@ -450,7 +450,7 @@ const data = [ sentAt: '2020-10-16T08:10:12.783Z', timestamp: '2020-10-16T13:40:12.791+05:30', type: 'track', - userId: 'ruchu123', + userId: 'rudder123', }, ], }, @@ -533,8 +533,8 @@ const data = [ id: 'abc123', }, createdAt: 'Thu Mar 24 2016 17:46:45 GMT+0000 (UTC)', - email: 'ruchira@gmail.com', - name: 'Ruchira Moitra', + email: 'rudderTest@gmail.com', + name: 'Rudder Test', plan: 'Enterprise', }, userAgent: @@ -650,7 +650,7 @@ const data = [ sentAt: '2020-10-16T08:10:12.783Z', timestamp: '2020-10-16T13:40:12.791+05:30', type: 'track', - userId: 'ruchu123', + userId: 'rudder123', }, ], }, diff --git a/test/integrations/sources/ortto/data.ts b/test/integrations/sources/ortto/data.ts new file mode 100644 index 00000000000..6feed3f43a3 --- /dev/null +++ b/test/integrations/sources/ortto/data.ts @@ -0,0 +1,393 @@ +import utils from '../../../../src/v0/util'; + +const defaultMockFns = () => { + jest.spyOn(utils, 'generateUUID').mockReturnValue('97fcd7b2-cc24-47d7-b776-057b7b199513'); +}; + +export const data = [ + { + name: 'ortto', + description: 'Simple track call', + module: 'source', + version: 'v0', + input: { + request: { + body: [ + { + activity: { + id: '00651b946bfef7e80478efee', + field_id: 'act::s-all', + created: '2023-10-03T04:11:23Z', + attr: { + 'str::is': 'API', + 'str::s-ctx': 'Subscribed via API', + }, + }, + contact: { + contact_id: '00651b946baa9be6b2edad00', + email: 'abhi@example.com', + }, + id: '00651b946cef87c7af64f4f3', + time: '2023-10-03T04:11:24.25726779Z', + webhook_id: '651b8aec8002153e16319fd3', + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + context: { + library: { name: 'unknown', version: 'unknown' }, + integration: { name: 'ortto' }, + traits: { email: 'abhi@example.com' }, + externalId: [ + { + id: '00651b946baa9be6b2edad00', + type: 'orttoPersonId', + }, + ], + }, + event: 'Resubscribe globally', + integrations: { ortto: false }, + type: 'track', + anonymousId: '97fcd7b2-cc24-47d7-b776-057b7b199513', + messageId: '00651b946cef87c7af64f4f3', + originalTimestamp: '2023-10-03T04:11:24.000Z', + properties: { + 'activity.id': '00651b946bfef7e80478efee', + 'activity.created': '2023-10-03T04:11:23Z', + 'activity.attr.str::is': 'API', + 'activity.attr.str::s-ctx': 'Subscribed via API', + webhook_id: '651b8aec8002153e16319fd3', + }, + }, + ], + }, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'ortto', + description: 'Simple track call', + module: 'source', + version: 'v0', + input: { + request: { + body: [ + { + activity: { + id: '00651b946bfef7e80478efee', + field_id: 'act::s-all', + created: '2023-10-03T04:11:23Z', + attr: { + 'str::is': 'API', + 'str::s-ctx': 'Subscribed via API', + }, + }, + contact: { + external_id: 'user_x', + city: { + name: 'Kolkata', + id: 0, + lat: 37751000, + lng: -97822000, + }, + country: { + name: 'United States', + id: 6252001, + lat: 0, + lng: 0, + }, + email: 'xyz@email.com', + first_name: 'Ujjwal', + last_name: 'Ujjwal', + birthday: { + year: 1980, + month: 12, + day: 11, + timezone: 'Australia/Sydney', + }, + phone_number: { + c: '91', + n: '401234567', + }, + }, + id: '00651b946cef87c7af64f4f3', + time: '2023-10-03T04:11:24.25726779Z', + webhook_id: '651b8aec8002153e16319fd3', + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + userId: 'user_x', + context: { + library: { name: 'unknown', version: 'unknown' }, + integration: { name: 'ortto' }, + traits: { + email: 'xyz@email.com', + birthday: '1980-12-11', + firstName: 'Ujjwal', + lastName: 'Ujjwal', + phone: '91401234567', + address: { + city: 'Kolkata', + country: 'United States', + }, + }, + }, + event: 'Resubscribe globally', + integrations: { ortto: false }, + type: 'track', + messageId: '00651b946cef87c7af64f4f3', + originalTimestamp: '2023-10-03T04:11:24.000Z', + properties: { + 'activity.id': '00651b946bfef7e80478efee', + 'activity.created': '2023-10-03T04:11:23Z', + 'activity.attr.str::is': 'API', + 'activity.attr.str::s-ctx': 'Subscribed via API', + 'contact.birthday.timezone': 'Australia/Sydney', + 'contact.city.id': 0, + 'contact.city.lat': 37751000, + 'contact.city.lng': -97822000, + 'contact.country.id': 6252001, + 'contact.country.lat': 0, + 'contact.country.lng': 0, + webhook_id: '651b8aec8002153e16319fd3', + }, + }, + ], + }, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'ortto', + description: 'Simple track call with unknown field id', + module: 'source', + version: 'v0', + input: { + request: { + body: [ + { + activity: { + id: '00651b946bfef7e80478efee', + field_id: 'act::s-ccc', + created: '2023-10-03T04:11:23Z', + attr: { + 'str::is': 'API', + 'str::s-ctx': 'Subscribed via API', + }, + }, + contact: { + external_id: 'user_x', + city: { + name: 'Kolkata', + id: 0, + lat: 37751000, + lng: -97822000, + }, + contact_id: '006524f0b8d370050056e400', + country: { + name: 'United States', + id: 6252001, + lat: 0, + lng: 0, + }, + email: 'xyz@email.com', + first_name: 'Ujjwal', + last_name: 'Ujjwal', + birthday: { + year: 1980, + month: 3, + day: 4, + timezone: 'Australia/Sydney', + }, + phone_number: { + c: '91', + n: '401234567', + }, + }, + id: '00651b946cef87c7af64f4f3', + time: '2023-10-03T04:11:24.25726779Z', + webhook_id: '651b8aec8002153e16319fd3', + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + userId: 'user_x', + context: { + externalId: [ + { + id: '006524f0b8d370050056e400', + type: 'orttoPersonId', + }, + ], + library: { name: 'unknown', version: 'unknown' }, + integration: { name: 'ortto' }, + traits: { + email: 'xyz@email.com', + birthday: '1980-03-04', + firstName: 'Ujjwal', + lastName: 'Ujjwal', + phone: '91401234567', + address: { + city: 'Kolkata', + country: 'United States', + }, + }, + }, + event: 'custom event triggered', + integrations: { ortto: false }, + type: 'track', + messageId: '00651b946cef87c7af64f4f3', + originalTimestamp: '2023-10-03T04:11:24.000Z', + properties: { + 'activity.id': '00651b946bfef7e80478efee', + 'activity.created': '2023-10-03T04:11:23Z', + 'activity.attr.str::is': 'API', + 'activity.attr.str::s-ctx': 'Subscribed via API', + 'contact.birthday.timezone': 'Australia/Sydney', + 'contact.city.id': 0, + 'contact.city.lat': 37751000, + 'contact.city.lng': -97822000, + 'contact.country.id': 6252001, + 'contact.country.lat': 0, + 'contact.country.lng': 0, + webhook_id: '651b8aec8002153e16319fd3', + }, + }, + ], + }, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, + { + name: 'ortto', + description: 'Simple track call with unknown field id', + module: 'source', + version: 'v0', + input: { + request: { + body: [ + { + activity: { + id: '00651b946bfef7e80478efee', + field_id: 'act::test_webhook', + created: '2023-10-03T04:11:23Z', + attr: { + 'str::is': 'API', + 'str::s-ctx': 'Subscribed via API', + }, + }, + contact: { + external_id: 'user_x', + city: { + name: 'Kolkata', + id: 0, + lat: 37751000, + lng: -97822000, + }, + contact_id: '006524f0b8d370050056e400', + country: { + name: 'United States', + id: 6252001, + lat: 0, + lng: 0, + }, + email: 'xyz@email.com', + first_name: 'Ujjwal', + last_name: 'Ujjwal', + birthday: { + year: 1980, + month: 3, + day: 4, + timezone: 'Australia/Sydney', + }, + phone_number: { + c: '91', + n: '401234567', + }, + }, + id: '00651b946cef87c7af64f4f3', + time: '2023-10-03T04:11:24.25726779Z', + webhook_id: '651b8aec8002153e16319fd3', + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + outputToSource: { + body: 'eyJhY3Rpdml0eSI6eyJpZCI6IjAwNjUxYjk0NmJmZWY3ZTgwNDc4ZWZlZSIsImZpZWxkX2lkIjoiYWN0Ojp0ZXN0X3dlYmhvb2siLCJjcmVhdGVkIjoiMjAyMy0xMC0wM1QwNDoxMToyM1oiLCJhdHRyIjp7InN0cjo6aXMiOiJBUEkiLCJzdHI6OnMtY3R4IjoiU3Vic2NyaWJlZCB2aWEgQVBJIn19LCJjb250YWN0Ijp7ImV4dGVybmFsX2lkIjoidXNlcl94IiwiY2l0eSI6eyJuYW1lIjoiS29sa2F0YSIsImlkIjowLCJsYXQiOjM3NzUxMDAwLCJsbmciOi05NzgyMjAwMH0sImNvbnRhY3RfaWQiOiIwMDY1MjRmMGI4ZDM3MDA1MDA1NmU0MDAiLCJjb3VudHJ5Ijp7Im5hbWUiOiJVbml0ZWQgU3RhdGVzIiwiaWQiOjYyNTIwMDEsImxhdCI6MCwibG5nIjowfSwiZW1haWwiOiJ4eXpAZW1haWwuY29tIiwiZmlyc3RfbmFtZSI6IlVqandhbCIsImxhc3RfbmFtZSI6IlVqandhbCIsImJpcnRoZGF5Ijp7InllYXIiOjE5ODAsIm1vbnRoIjozLCJkYXkiOjQsInRpbWV6b25lIjoiQXVzdHJhbGlhL1N5ZG5leSJ9LCJwaG9uZV9udW1iZXIiOnsiYyI6IjkxIiwibiI6IjQwMTIzNDU2NyJ9fSwiaWQiOiIwMDY1MWI5NDZjZWY4N2M3YWY2NGY0ZjMiLCJ0aW1lIjoiMjAyMy0xMC0wM1QwNDoxMToyNC4yNTcyNjc3OVoiLCJ3ZWJob29rX2lkIjoiNjUxYjhhZWM4MDAyMTUzZTE2MzE5ZmQzIn0=', + contentType: 'application/json', + }, + statusCode: 200, + }, + ], + }, + }, + mockFns: () => { + defaultMockFns(); + }, + }, +]; diff --git a/test/integrations/sources/revenuecat/data.ts b/test/integrations/sources/revenuecat/data.ts new file mode 100644 index 00000000000..49637817636 --- /dev/null +++ b/test/integrations/sources/revenuecat/data.ts @@ -0,0 +1,286 @@ +export const data = [ + { + name: 'revenuecat', + description: 'Simple track call', + module: 'source', + version: 'v0', + input: { + request: { + body: [ + { + api_version: '1.0', + event: { + aliases: [ + 'f8e14f51-0c76-49ba-8d67-c229f1875dd9', + '389ad6dd-bb40-4c03-9471-1353da2d55ec', + ], + app_user_id: 'f8e14f51-0c76-49ba-8d67-c229f1875dd9', + commission_percentage: null, + country_code: 'US', + currency: null, + entitlement_id: null, + entitlement_ids: null, + environment: 'SANDBOX', + event_timestamp_ms: 1698617217232, + expiration_at_ms: 1698624417232, + id: '8CF0CD6C-CAF3-41FB-968A-661938235AF0', + is_family_share: null, + offer_code: null, + original_app_user_id: 'f8e14f51-0c76-49ba-8d67-c229f1875dd9', + original_transaction_id: null, + period_type: 'NORMAL', + presented_offering_id: null, + price: null, + price_in_purchased_currency: null, + product_id: 'test_product', + purchased_at_ms: 1698617217232, + store: 'APP_STORE', + subscriber_attributes: { + $displayName: { + updated_at_ms: 1698617217232, + value: 'Mister Mistoffelees', + }, + $email: { + updated_at_ms: 1698617217232, + value: 'tuxedo@revenuecat.com', + }, + $phoneNumber: { + updated_at_ms: 1698617217232, + value: '+19795551234', + }, + my_custom_attribute_1: { + updated_at_ms: 1698617217232, + value: 'catnip', + }, + }, + takehome_percentage: null, + tax_percentage: null, + transaction_id: null, + type: 'TEST', + }, + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + context: { + library: { + name: 'unknown', + version: 'unknown', + }, + integration: { + name: 'RevenueCat', + }, + externalId: [ + { + type: 'revenuecatAppUserId', + id: 'f8e14f51-0c76-49ba-8d67-c229f1875dd9', + }, + ], + }, + integrations: { + RevenueCat: false, + }, + type: 'track', + properties: { + aliases: [ + 'f8e14f51-0c76-49ba-8d67-c229f1875dd9', + '389ad6dd-bb40-4c03-9471-1353da2d55ec', + ], + appUserId: 'f8e14f51-0c76-49ba-8d67-c229f1875dd9', + commissionPercentage: null, + countryCode: 'US', + currency: null, + entitlementId: null, + entitlementIds: null, + environment: 'SANDBOX', + eventTimestampMs: 1698617217232, + expirationAtMs: 1698624417232, + id: '8CF0CD6C-CAF3-41FB-968A-661938235AF0', + isFamilyShare: null, + offerCode: null, + originalAppUserId: 'f8e14f51-0c76-49ba-8d67-c229f1875dd9', + originalTransactionId: null, + periodType: 'NORMAL', + presentedOfferingId: null, + price: null, + priceInPurchasedCurrency: null, + productId: 'test_product', + purchasedAtMs: 1698617217232, + store: 'APP_STORE', + subscriberAttributes: { + $displayName: { + updated_at_ms: 1698617217232, + value: 'Mister Mistoffelees', + }, + $email: { + updated_at_ms: 1698617217232, + value: 'tuxedo@revenuecat.com', + }, + $phoneNumber: { + updated_at_ms: 1698617217232, + value: '+19795551234', + }, + my_custom_attribute_1: { + updated_at_ms: 1698617217232, + value: 'catnip', + }, + }, + takehomePercentage: null, + taxPercentage: null, + transactionId: null, + type: 'TEST', + }, + event: 'TEST', + messageId: '8CF0CD6C-CAF3-41FB-968A-661938235AF0', + originalTimestamp: '2023-10-29T22:06:57.232Z', + sentAt: '2023-10-29T22:06:57.232Z', + }, + ], + }, + }, + ], + }, + }, + }, + { + name: 'revenuecat', + description: 'Initial purchase event', + module: 'source', + version: 'v0', + input: { + request: { + body: [ + { + api_version: '1.0', + event: { + aliases: ['yourCustomerAliasedID', 'yourCustomerAliasedID'], + app_id: 'yourAppID', + app_user_id: 'yourCustomerAppUserID', + commission_percentage: 0.3, + country_code: 'US', + currency: 'USD', + entitlement_id: 'pro_cat', + entitlement_ids: ['pro_cat'], + environment: 'PRODUCTION', + event_timestamp_ms: 1591121855319, + expiration_at_ms: 1591726653000, + id: 'UniqueIdentifierOfEvent', + is_family_share: false, + offer_code: 'free_month', + original_app_user_id: 'OriginalAppUserID', + original_transaction_id: '1530648507000', + period_type: 'NORMAL', + presented_offering_id: 'OfferingID', + price: 2.49, + price_in_purchased_currency: 2.49, + product_id: 'onemonth_no_trial', + purchased_at_ms: 1591121853000, + store: 'APP_STORE', + subscriber_attributes: { + '$Favorite Cat': { + updated_at_ms: 1581121853000, + value: 'Garfield', + }, + }, + takehome_percentage: 0.7, + tax_percentage: 0.3, + transaction_id: '170000869511114', + type: 'INITIAL_PURCHASE', + }, + }, + ], + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + }, + pathSuffix: '', + }, + output: { + response: { + status: 200, + body: [ + { + output: { + batch: [ + { + context: { + library: { + name: 'unknown', + version: 'unknown', + }, + integration: { + name: 'RevenueCat', + }, + externalId: [ + { + type: 'revenuecatAppUserId', + id: 'yourCustomerAppUserID', + }, + ], + }, + integrations: { + RevenueCat: false, + }, + type: 'track', + properties: { + aliases: ['yourCustomerAliasedID', 'yourCustomerAliasedID'], + appId: 'yourAppID', + appUserId: 'yourCustomerAppUserID', + commissionPercentage: 0.3, + countryCode: 'US', + currency: 'USD', + entitlementId: 'pro_cat', + entitlementIds: ['pro_cat'], + environment: 'PRODUCTION', + eventTimestampMs: 1591121855319, + expirationAtMs: 1591726653000, + id: 'UniqueIdentifierOfEvent', + isFamilyShare: false, + offerCode: 'free_month', + originalAppUserId: 'OriginalAppUserID', + originalTransactionId: '1530648507000', + periodType: 'NORMAL', + presentedOfferingId: 'OfferingID', + price: 2.49, + priceInPurchasedCurrency: 2.49, + productId: 'onemonth_no_trial', + purchasedAtMs: 1591121853000, + store: 'APP_STORE', + subscriberAttributes: { + '$Favorite Cat': { + updated_at_ms: 1581121853000, + value: 'Garfield', + }, + }, + takehomePercentage: 0.7, + taxPercentage: 0.3, + transactionId: '170000869511114', + type: 'INITIAL_PURCHASE', + }, + event: 'INITIAL_PURCHASE', + messageId: 'UniqueIdentifierOfEvent', + originalTimestamp: '2020-06-02T18:17:35.319Z', + sentAt: '2020-06-02T18:17:35.319Z', + }, + ], + }, + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/testTypes.ts b/test/integrations/testTypes.ts index 57d9c812e92..51667e8044b 100644 --- a/test/integrations/testTypes.ts +++ b/test/integrations/testTypes.ts @@ -1,3 +1,6 @@ +import { AxiosResponse } from 'axios'; +import MockAdapter from 'axios-mock-adapter'; + export interface requestType { method: string; body?: any; @@ -34,4 +37,10 @@ export interface TestCaseData { input: inputType; output: outputType; mock?: mockType[]; + mockFns?: (mockAdapter: MockAdapter) => {}; } + +export type MockHttpCallsData = { + httpReq: Record; + httpRes: Partial; +}; diff --git a/test/integrations/testUtils.ts b/test/integrations/testUtils.ts index 815b211d20e..f5be8107ed4 100644 --- a/test/integrations/testUtils.ts +++ b/test/integrations/testUtils.ts @@ -1,12 +1,18 @@ import { globSync } from 'glob'; import { join } from 'path'; -import { TestCaseData } from './testTypes'; +import { MockHttpCallsData, TestCaseData } from './testTypes'; +import MockAdapter from 'axios-mock-adapter'; +import isMatch from 'lodash/isMatch'; +import { OptionValues } from 'commander'; -export const getTestDataFilePaths = (dirPath: string, destination: string = ''): string[] => { +export const getTestDataFilePaths = (dirPath: string, opts: OptionValues): string[] => { const globPattern = join(dirPath, '**', 'data.ts'); let testFilePaths = globSync(globPattern); - if (destination) { - testFilePaths = testFilePaths.filter((testFile) => testFile.includes(destination)); + if (opts.destination) { + testFilePaths = testFilePaths.filter((testFile) => testFile.includes(opts.destination)); + } + if (opts.feature) { + testFilePaths = testFilePaths.filter((testFile) => testFile.includes(opts.feature)); } return testFilePaths; }; @@ -14,3 +20,57 @@ export const getTestDataFilePaths = (dirPath: string, destination: string = ''): export const getTestData = (filePath): TestCaseData[] => { return require(filePath).data as TestCaseData[]; }; + +export const getMockHttpCallsData = (filePath): MockHttpCallsData[] => { + return require(filePath).networkCallsData as MockHttpCallsData[]; +}; + +export const getAllTestMockDataFilePaths = (dirPath: string, destination: string): string[] => { + const globPattern = join(dirPath, '**', 'network.ts'); + let testFilePaths = globSync(globPattern); + if (destination) { + testFilePaths = testFilePaths.filter((testFile) => testFile.includes(destination)); + } + return testFilePaths; +}; + +export const addMock = (mock: MockAdapter, axiosMock: MockHttpCallsData) => { + const { url, method, data: reqData, ...opts } = axiosMock.httpReq; + const { data, headers, status } = axiosMock.httpRes; + + const headersAsymMatch = { + asymmetricMatch: function (actual) { + return isMatch(actual, opts.headers); + }, + }; + + switch (method.toLowerCase()) { + case 'get': + // @ts-ignore + mock.onGet(url, reqData, headersAsymMatch).reply(status, data, headers); + break; + case 'delete': + // @ts-ignore + mock.onDelete(url, reqData, headersAsymMatch).reply(status, data, headers); + break; + case 'post': + // @ts-ignore + mock.onPost(url, reqData, headersAsymMatch).reply(status, data, headers); + break; + case 'patch': + // @ts-ignore + mock.onPatch(url, reqData, headersAsymMatch).reply(status, data, headers); + break; + case 'put': + // @ts-ignore + mock.onPut(url, reqData, headersAsymMatch).reply(status, data, headers); + break; + default: + break; + } +}; +export const overrideDestination = (destination, overrideConfigValues) => { + return Object.assign({}, destination, { + Config: { ...destination.Config, ...overrideConfigValues }, + }); +}; diff --git a/test/testHelper.js b/test/testHelper.js index 649f8cab131..5fe97fed674 100644 --- a/test/testHelper.js +++ b/test/testHelper.js @@ -7,6 +7,19 @@ const getFuncTestData = (dirPath, filePath) => { return testData; }; +const responses = []; + +const setResponsesForMockAxiosAdapter = ({url, method, data, options}, {response}) => { + if (process.env.GEN_AXIOS_FOR_TESTS === 'true') { + const reqObj = {url, ...options, method} + if (data) { + reqObj.data = data + } + responses.push(`{httpReq: ${JSON.stringify(reqObj)},httpRes: ${JSON.stringify(response)}},`) + } +} module.exports = { getFuncTestData, + responses, + setResponsesForMockAxiosAdapter };